summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
Diffstat (limited to 'editor')
-rw-r--r--editor/SCsub21
-rw-r--r--editor/animation_track_editor.cpp11
-rw-r--r--editor/code_editor.cpp202
-rw-r--r--editor/code_editor.h16
-rw-r--r--editor/connections_dialog.cpp63
-rw-r--r--editor/connections_dialog.h3
-rw-r--r--editor/create_dialog.cpp1
-rw-r--r--editor/debugger/editor_debugger_node.cpp27
-rw-r--r--editor/debugger/editor_debugger_node.h5
-rw-r--r--editor/debugger/script_editor_debugger.cpp63
-rw-r--r--editor/debugger/script_editor_debugger.h15
-rw-r--r--editor/doc_data.cpp35
-rw-r--r--editor/doc_data.h1
-rw-r--r--editor/editor_about.cpp12
-rw-r--r--editor/editor_audio_buses.cpp2
-rw-r--r--editor/editor_audio_buses.h2
-rw-r--r--editor/editor_autoload_settings.cpp4
-rw-r--r--editor/editor_builders.py1
-rw-r--r--editor/editor_data.cpp18
-rw-r--r--editor/editor_export.cpp301
-rw-r--r--editor/editor_export.h38
-rw-r--r--editor/editor_feature_profile.cpp19
-rw-r--r--editor/editor_feature_profile.h2
-rw-r--r--editor/editor_file_dialog.cpp19
-rw-r--r--editor/editor_file_system.cpp15
-rw-r--r--editor/editor_help.cpp65
-rw-r--r--editor/editor_inspector.cpp69
-rw-r--r--editor/editor_inspector.h3
-rw-r--r--editor/editor_log.cpp10
-rw-r--r--editor/editor_node.cpp56
-rw-r--r--editor/editor_plugin.cpp18
-rw-r--r--editor/editor_plugin.h8
-rw-r--r--editor/editor_properties.cpp144
-rw-r--r--editor/editor_resource_preview.cpp3
-rw-r--r--editor/editor_run.cpp4
-rw-r--r--editor/editor_run_native.cpp8
-rw-r--r--editor/editor_sectioned_inspector.cpp2
-rw-r--r--editor/editor_settings.cpp39
-rw-r--r--editor/editor_settings.h14
-rw-r--r--editor/editor_spin_slider.cpp9
-rw-r--r--editor/editor_themes.cpp31
-rw-r--r--editor/editor_translation_parser.cpp32
-rw-r--r--editor/editor_translation_parser.h3
-rw-r--r--editor/editor_vcs_interface.h2
-rw-r--r--editor/fileserver/editor_file_server.h2
-rw-r--r--editor/filesystem_dock.cpp155
-rw-r--r--editor/filesystem_dock.h27
-rw-r--r--editor/find_in_files.cpp4
-rw-r--r--editor/icons/AutoKey.svg2
-rw-r--r--editor/icons/GuiToggleOff.svg2
-rw-r--r--editor/icons/GuiToggleOn.svg2
-rw-r--r--editor/icons/Rectangle.svg1
-rw-r--r--editor/icons/SCsub10
-rw-r--r--editor/icons/Shortcut.svg (renamed from editor/icons/ShortCut.svg)0
-rw-r--r--editor/import/collada.cpp34
-rw-r--r--editor/import/editor_scene_importer_gltf.cpp158
-rw-r--r--editor/import/resource_importer_layered_texture.cpp115
-rw-r--r--editor/import/resource_importer_layered_texture.h4
-rw-r--r--editor/input_map_editor.cpp72
-rw-r--r--editor/inspector_dock.cpp8
-rw-r--r--editor/inspector_dock.h8
-rw-r--r--editor/localization_editor.cpp2
-rw-r--r--editor/node_3d_editor_gizmos.cpp263
-rw-r--r--editor/node_3d_editor_gizmos.h17
-rw-r--r--editor/plugins/abstract_polygon_2d_editor.cpp2
-rw-r--r--editor/plugins/animation_player_editor_plugin.cpp4
-rw-r--r--editor/plugins/animation_state_machine_editor.cpp6
-rw-r--r--editor/plugins/animation_tree_editor_plugin.cpp2
-rw-r--r--editor/plugins/asset_library_editor_plugin.cpp19
-rw-r--r--editor/plugins/asset_library_editor_plugin.h4
-rw-r--r--editor/plugins/audio_stream_editor_plugin.cpp4
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp56
-rw-r--r--editor/plugins/canvas_item_editor_plugin.h10
-rw-r--r--editor/plugins/debugger_editor_plugin.cpp32
-rw-r--r--editor/plugins/editor_debugger_plugin.cpp124
-rw-r--r--editor/plugins/editor_debugger_plugin.h64
-rw-r--r--editor/plugins/editor_preview_plugins.cpp4
-rw-r--r--editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp201
-rw-r--r--editor/plugins/gpu_particles_collision_sdf_editor_plugin.h74
-rw-r--r--editor/plugins/mesh_instance_3d_editor_plugin.cpp1
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp254
-rw-r--r--editor/plugins/node_3d_editor_plugin.h14
-rw-r--r--editor/plugins/packed_scene_translation_parser_plugin.cpp8
-rw-r--r--editor/plugins/packed_scene_translation_parser_plugin.h2
-rw-r--r--editor/plugins/script_editor_plugin.cpp160
-rw-r--r--editor/plugins/script_editor_plugin.h5
-rw-r--r--editor/plugins/script_text_editor.cpp474
-rw-r--r--editor/plugins/script_text_editor.h54
-rw-r--r--editor/plugins/shader_editor_plugin.cpp166
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.cpp195
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.h25
-rw-r--r--editor/plugins/text_editor.cpp91
-rw-r--r--editor/plugins/text_editor.h23
-rw-r--r--editor/plugins/texture_3d_editor_plugin.cpp213
-rw-r--r--editor/plugins/texture_3d_editor_plugin.h93
-rw-r--r--editor/plugins/texture_region_editor_plugin.cpp2
-rw-r--r--editor/plugins/theme_editor_plugin.cpp10
-rw-r--r--editor/plugins/tile_map_editor_plugin.cpp38
-rw-r--r--editor/plugins/tile_map_editor_plugin.h1
-rw-r--r--editor/plugins/tile_set_editor_plugin.cpp36
-rw-r--r--editor/plugins/visual_shader_editor_plugin.cpp2311
-rw-r--r--editor/plugins/visual_shader_editor_plugin.h141
-rw-r--r--editor/pot_generator.cpp129
-rw-r--r--editor/pot_generator.h19
-rw-r--r--editor/project_export.cpp326
-rw-r--r--editor/project_export.h23
-rw-r--r--editor/project_manager.cpp582
-rw-r--r--editor/project_manager.h78
-rw-r--r--editor/project_settings_editor.cpp550
-rw-r--r--editor/project_settings_editor.h72
-rw-r--r--editor/property_editor.cpp23
-rw-r--r--editor/property_selector.cpp27
-rw-r--r--editor/rename_dialog.cpp47
-rw-r--r--editor/scene_tree_dock.cpp59
-rw-r--r--editor/scene_tree_dock.h3
-rw-r--r--editor/scene_tree_editor.cpp49
-rw-r--r--editor/script_create_dialog.cpp14
-rw-r--r--editor/settings_config_dialog.cpp8
-rw-r--r--editor/shader_globals_editor.cpp14
-rw-r--r--editor/translations/af.po125
-rw-r--r--editor/translations/ar.po1289
-rw-r--r--editor/translations/bg.po178
-rw-r--r--editor/translations/bn.po156
-rw-r--r--editor/translations/ca.po157
-rw-r--r--editor/translations/cs.po300
-rw-r--r--editor/translations/da.po154
-rw-r--r--editor/translations/de.po232
-rw-r--r--editor/translations/editor.pot115
-rw-r--r--editor/translations/el.po243
-rw-r--r--editor/translations/eo.po145
-rw-r--r--editor/translations/es.po195
-rw-r--r--editor/translations/es_AR.po164
-rw-r--r--editor/translations/et.po759
-rw-r--r--editor/translations/eu.po118
-rwxr-xr-xeditor/translations/extract.py222
-rw-r--r--editor/translations/fa.po852
-rw-r--r--editor/translations/fi.po168
-rw-r--r--editor/translations/fil.po155
-rw-r--r--editor/translations/fr.po204
-rw-r--r--editor/translations/ga.po116
-rw-r--r--editor/translations/he.po1294
-rw-r--r--editor/translations/hi.po151
-rw-r--r--editor/translations/hr.po120
-rw-r--r--editor/translations/hu.po2815
-rw-r--r--editor/translations/id.po188
-rw-r--r--editor/translations/is.po116
-rw-r--r--editor/translations/it.po482
-rw-r--r--editor/translations/ja.po273
-rw-r--r--editor/translations/ka.po120
-rw-r--r--editor/translations/ko.po169
-rw-r--r--editor/translations/lt.po284
-rw-r--r--editor/translations/lv.po120
-rw-r--r--editor/translations/mi.po115
-rw-r--r--editor/translations/ml.po115
-rw-r--r--editor/translations/mr.po115
-rw-r--r--editor/translations/ms.po1299
-rw-r--r--editor/translations/nb.po156
-rw-r--r--editor/translations/nl.po193
-rw-r--r--editor/translations/or.po115
-rw-r--r--editor/translations/pl.po232
-rw-r--r--editor/translations/pr.po125
-rw-r--r--editor/translations/pt.po (renamed from editor/translations/pt_PT.po)344
-rw-r--r--editor/translations/pt_BR.po240
-rw-r--r--editor/translations/ro.po1083
-rw-r--r--editor/translations/ru.po334
-rw-r--r--editor/translations/si.po116
-rw-r--r--editor/translations/sk.po1062
-rw-r--r--editor/translations/sl.po194
-rw-r--r--editor/translations/sq.po157
-rw-r--r--editor/translations/sr_Cyrl.po152
-rw-r--r--editor/translations/sr_Latn.po116
-rw-r--r--editor/translations/sv.po423
-rw-r--r--editor/translations/ta.po138
-rw-r--r--editor/translations/te.po128
-rw-r--r--editor/translations/th.po177
-rw-r--r--editor/translations/tr.po216
-rw-r--r--editor/translations/uk.po166
-rw-r--r--editor/translations/ur_PK.po121
-rw-r--r--editor/translations/vi.po405
-rw-r--r--editor/translations/zh_CN.po237
-rw-r--r--editor/translations/zh_HK.po131
-rw-r--r--editor/translations/zh_TW.po867
182 files changed, 18305 insertions, 12394 deletions
diff --git a/editor/SCsub b/editor/SCsub
index 651dd5fffd..a976c4ed12 100644
--- a/editor/SCsub
+++ b/editor/SCsub
@@ -7,7 +7,6 @@ env.editor_sources = []
import os
import os.path
import glob
-from platform_methods import run_in_subprocess
import editor_builders
@@ -61,7 +60,11 @@ if env["tools"]:
docs = sorted(docs)
env.Depends("#editor/doc_data_compressed.gen.h", docs)
- env.CommandNoCache("#editor/doc_data_compressed.gen.h", docs, run_in_subprocess(editor_builders.make_doc_header))
+ env.CommandNoCache(
+ "#editor/doc_data_compressed.gen.h",
+ docs,
+ env.Run(editor_builders.make_doc_header, "Generating documentation header."),
+ )
path = env.Dir(".").abspath
@@ -69,14 +72,18 @@ if env["tools"]:
tlist = glob.glob(path + "/translations/*.po")
env.Depends("#editor/editor_translations.gen.h", tlist)
env.CommandNoCache(
- "#editor/editor_translations.gen.h", tlist, run_in_subprocess(editor_builders.make_editor_translations_header)
+ "#editor/editor_translations.gen.h",
+ tlist,
+ env.Run(editor_builders.make_editor_translations_header, "Generating editor translations header."),
)
# Documentation translations
tlist = glob.glob(env.Dir("#doc").abspath + "/translations/*.po")
env.Depends("#editor/doc_translations.gen.h", tlist)
env.CommandNoCache(
- "#editor/doc_translations.gen.h", tlist, run_in_subprocess(editor_builders.make_doc_translations_header)
+ "#editor/doc_translations.gen.h",
+ tlist,
+ env.Run(editor_builders.make_doc_translations_header, "Generating translations header."),
)
# Fonts
@@ -84,7 +91,11 @@ if env["tools"]:
flist.extend(glob.glob(path + "/../thirdparty/fonts/*.otf"))
flist.sort()
env.Depends("#editor/builtin_fonts.gen.h", flist)
- env.CommandNoCache("#editor/builtin_fonts.gen.h", flist, run_in_subprocess(editor_builders.make_fonts_header))
+ env.CommandNoCache(
+ "#editor/builtin_fonts.gen.h",
+ flist,
+ env.Run(editor_builders.make_fonts_header, "Generating builtin fonts header."),
+ )
env.add_source_files(env.editor_sources, "*.cpp")
diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp
index f3561dc03e..52c984cbc0 100644
--- a/editor/animation_track_editor.cpp
+++ b/editor/animation_track_editor.cpp
@@ -3363,9 +3363,9 @@ void AnimationTrackEditor::_query_insert(const InsertData &p_id) {
}
if (num_tracks == 1) {
- insert_confirm_text->set_text(vformat(TTR("Create NEW track for %s and insert key?"), p_id.query));
+ 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));
+ insert_confirm_text->set_text(vformat(TTR("Create %d new tracks and insert keys?"), num_tracks));
}
insert_confirm_bezier->set_visible(all_bezier);
@@ -4959,11 +4959,6 @@ void AnimationTrackEditor::_scroll_input(const Ref<InputEvent> &p_event) {
box_selection->set_size(rect.size);
box_select_rect = rect;
-
- if (get_local_mouse_position().y < 0) {
- //avoid box selection from going up and lose focus to viewport
- warp_mouse(Vector2(mm->get_position().x, 0));
- }
}
}
@@ -5763,7 +5758,7 @@ AnimationTrackEditor::AnimationTrackEditor() {
box_selection = memnew(Control);
add_child(box_selection);
- box_selection->set_as_toplevel(true);
+ box_selection->set_as_top_level(true);
box_selection->set_mouse_filter(MOUSE_FILTER_IGNORE);
box_selection->hide();
box_selection->connect("draw", callable_mp(this, &AnimationTrackEditor::_box_selection_draw));
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp
index d8648310b6..ede6dde239 100644
--- a/editor/code_editor.cpp
+++ b/editor/code_editor.cpp
@@ -40,7 +40,7 @@
#include "scene/gui/separator.h"
#include "scene/resources/dynamic_font.h"
-void GotoLineDialog::popup_find_line(TextEdit *p_edit) {
+void GotoLineDialog::popup_find_line(CodeEdit *p_edit) {
text_editor = p_edit;
line->set_text(itos(text_editor->cursor_get_line()));
@@ -113,7 +113,7 @@ void FindReplaceBar::_unhandled_input(const Ref<InputEvent> &p_event) {
}
Control *focus_owner = get_focus_owner();
- if (text_edit->has_focus() || (focus_owner && vbc_lineedit->is_a_parent_of(focus_owner))) {
+ if (text_editor->has_focus() || (focus_owner && vbc_lineedit->is_a_parent_of(focus_owner))) {
bool accepted = true;
switch (k->get_keycode()) {
@@ -135,20 +135,20 @@ bool FindReplaceBar::_search(uint32_t p_flags, int p_from_line, int p_from_col)
int line, col;
String text = get_search_text();
- bool found = text_edit->search(text, p_flags, p_from_line, p_from_col, line, col);
+ bool found = text_editor->search(text, p_flags, p_from_line, p_from_col, line, col);
if (found) {
if (!preserve_cursor) {
- text_edit->unfold_line(line);
- text_edit->cursor_set_line(line, false);
- text_edit->cursor_set_column(col + text.length(), false);
- text_edit->center_viewport_to_cursor();
- text_edit->select(line, col, line, col + text.length());
+ 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_edit->set_search_text(text);
- text_edit->set_search_flags(p_flags);
- text_edit->set_current_search_result(line, col);
+ 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;
@@ -158,9 +158,9 @@ bool FindReplaceBar::_search(uint32_t p_flags, int p_from_line, int p_from_col)
results_count = 0;
result_line = -1;
result_col = -1;
- text_edit->set_search_text("");
- text_edit->set_search_flags(p_flags);
- text_edit->set_current_search_result(line, col);
+ text_editor->set_search_text("");
+ text_editor->set_search_flags(p_flags);
+ text_editor->set_current_search_result(line, col);
}
_update_matches_label();
@@ -169,67 +169,67 @@ bool FindReplaceBar::_search(uint32_t p_flags, int p_from_line, int p_from_col)
}
void FindReplaceBar::_replace() {
- bool selection_enabled = text_edit->is_selection_active();
+ bool selection_enabled = text_editor->is_selection_active();
Point2i selection_begin, selection_end;
if (selection_enabled) {
- selection_begin = Point2i(text_edit->get_selection_from_line(), text_edit->get_selection_from_column());
- selection_end = Point2i(text_edit->get_selection_to_line(), text_edit->get_selection_to_column());
+ selection_begin = Point2i(text_editor->get_selection_from_line(), text_editor->get_selection_from_column());
+ selection_end = Point2i(text_editor->get_selection_to_line(), text_editor->get_selection_to_column());
}
String replace_text = get_replace_text();
int search_text_len = get_search_text().length();
- text_edit->begin_complex_operation();
+ text_editor->begin_complex_operation();
if (selection_enabled && is_selection_only()) { // To restrict search_current() to selected region
- text_edit->cursor_set_line(selection_begin.width);
- text_edit->cursor_set_column(selection_begin.height);
+ text_editor->cursor_set_line(selection_begin.width);
+ text_editor->cursor_set_column(selection_begin.height);
}
if (search_current()) {
- text_edit->unfold_line(result_line);
- text_edit->select(result_line, result_col, result_line, result_col + search_text_len);
+ text_editor->unfold_line(result_line);
+ text_editor->select(result_line, result_col, result_line, result_col + search_text_len);
if (selection_enabled && is_selection_only()) {
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_edit->insert_text_at_cursor(replace_text);
+ text_editor->insert_text_at_cursor(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_edit->insert_text_at_cursor(replace_text);
+ text_editor->insert_text_at_cursor(replace_text);
}
}
- text_edit->end_complex_operation();
+ text_editor->end_complex_operation();
results_count = -1;
if (selection_enabled && is_selection_only()) {
// Reselect in order to keep 'Replace' restricted to selection
- text_edit->select(selection_begin.x, selection_begin.y, selection_end.x, selection_end.y);
+ text_editor->select(selection_begin.x, selection_begin.y, selection_end.x, selection_end.y);
} else {
- text_edit->deselect();
+ text_editor->deselect();
}
}
void FindReplaceBar::_replace_all() {
- text_edit->disconnect("text_changed", callable_mp(this, &FindReplaceBar::_editor_text_changed));
+ 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_edit->cursor_get_line(), text_edit->cursor_get_column());
+ Point2i orig_cursor(text_editor->cursor_get_line(), text_editor->cursor_get_column());
Point2i prev_match = Point2(-1, -1);
- bool selection_enabled = text_edit->is_selection_active();
+ bool selection_enabled = text_editor->is_selection_active();
Point2i selection_begin, selection_end;
if (selection_enabled) {
- selection_begin = Point2i(text_edit->get_selection_from_line(), text_edit->get_selection_from_column());
- selection_end = Point2i(text_edit->get_selection_to_line(), text_edit->get_selection_to_column());
+ selection_begin = Point2i(text_editor->get_selection_from_line(), text_editor->get_selection_from_column());
+ selection_end = Point2i(text_editor->get_selection_to_line(), text_editor->get_selection_to_column());
}
- int vsval = text_edit->get_v_scroll();
+ int vsval = text_editor->get_v_scroll();
- text_edit->cursor_set_line(0);
- text_edit->cursor_set_column(0);
+ text_editor->cursor_set_line(0);
+ text_editor->cursor_set_column(0);
String replace_text = get_replace_text();
int search_text_len = get_search_text().length();
@@ -238,11 +238,11 @@ void FindReplaceBar::_replace_all() {
replace_all_mode = true;
- text_edit->begin_complex_operation();
+ text_editor->begin_complex_operation();
if (selection_enabled && is_selection_only()) {
- text_edit->cursor_set_line(selection_begin.width);
- text_edit->cursor_set_column(selection_begin.height);
+ text_editor->cursor_set_line(selection_begin.width);
+ text_editor->cursor_set_column(selection_begin.height);
}
if (search_current()) {
do {
@@ -256,8 +256,8 @@ void FindReplaceBar::_replace_all() {
prev_match = Point2i(result_line, result_col + replace_text.length());
- text_edit->unfold_line(result_line);
- text_edit->select(result_line, result_col, result_line, match_to.y);
+ text_editor->unfold_line(result_line);
+ text_editor->select(result_line, result_col, result_line, match_to.y);
if (selection_enabled && is_selection_only()) {
if (match_from < selection_begin || match_to > selection_end) {
@@ -265,48 +265,48 @@ void FindReplaceBar::_replace_all() {
}
// Replace but adjust selection bounds.
- text_edit->insert_text_at_cursor(replace_text);
+ text_editor->insert_text_at_cursor(replace_text);
if (match_to.x == selection_end.x) {
selection_end.y += replace_text.length() - search_text_len;
}
} else {
// Just replace.
- text_edit->insert_text_at_cursor(replace_text);
+ text_editor->insert_text_at_cursor(replace_text);
}
rc++;
} while (search_next());
}
- text_edit->end_complex_operation();
+ text_editor->end_complex_operation();
replace_all_mode = false;
// Restore editor state (selection, cursor, scroll).
- text_edit->cursor_set_line(orig_cursor.x);
- text_edit->cursor_set_column(orig_cursor.y);
+ text_editor->cursor_set_line(orig_cursor.x);
+ text_editor->cursor_set_column(orig_cursor.y);
if (selection_enabled && is_selection_only()) {
// Reselect.
- text_edit->select(selection_begin.x, selection_begin.y, selection_end.x, selection_end.y);
+ text_editor->select(selection_begin.x, selection_begin.y, selection_end.x, selection_end.y);
} else {
- text_edit->deselect();
+ text_editor->deselect();
}
- text_edit->set_v_scroll(vsval);
+ text_editor->set_v_scroll(vsval);
matches_label->add_theme_color_override("font_color", rc > 0 ? get_theme_color("font_color", "Label") : get_theme_color("error_color", "Editor"));
matches_label->set_text(vformat(TTR("%d replaced."), rc));
- text_edit->call_deferred("connect", "text_changed", Callable(this, "_editor_text_changed"));
+ text_editor->call_deferred("connect", "text_changed", Callable(this, "_editor_text_changed"));
results_count = -1;
}
void FindReplaceBar::_get_search_from(int &r_line, int &r_col) {
- r_line = text_edit->cursor_get_line();
- r_col = text_edit->cursor_get_column();
+ r_line = text_editor->cursor_get_line();
+ r_col = text_editor->cursor_get_column();
- if (text_edit->is_selection_active() && is_selection_only()) {
+ if (text_editor->is_selection_active() && is_selection_only()) {
return;
}
@@ -327,7 +327,7 @@ void FindReplaceBar::_update_results_count() {
return;
}
- String full_text = text_edit->get_text();
+ String full_text = text_editor->get_text();
int from_pos = 0;
@@ -399,7 +399,7 @@ bool FindReplaceBar::search_prev() {
int line, col;
_get_search_from(line, col);
- if (text_edit->is_selection_active()) {
+ if (text_editor->is_selection_active()) {
col--; // Skip currently selected word.
}
@@ -407,9 +407,9 @@ bool FindReplaceBar::search_prev() {
if (col < 0) {
line -= 1;
if (line < 0) {
- line = text_edit->get_line_count() - 1;
+ line = text_editor->get_line_count() - 1;
}
- col = text_edit->get_line(line).length();
+ col = text_editor->get_line(line).length();
}
return _search(flags, line, col);
@@ -440,9 +440,9 @@ bool FindReplaceBar::search_next() {
if (line == result_line && col == result_col) {
col += text.length();
- if (col > text_edit->get_line(line).length()) {
+ if (col > text_editor->get_line(line).length()) {
line += 1;
- if (line >= text_edit->get_line_count()) {
+ if (line >= text_editor->get_line_count()) {
line = 0;
}
col = 0;
@@ -454,10 +454,10 @@ bool FindReplaceBar::search_next() {
void FindReplaceBar::_hide_bar() {
if (replace_text->has_focus() || search_text->has_focus()) {
- text_edit->grab_focus();
+ text_editor->grab_focus();
}
- text_edit->set_search_text("");
+ text_editor->set_search_text("");
result_line = -1;
result_col = -1;
hide();
@@ -477,8 +477,8 @@ void FindReplaceBar::_show_search(bool p_focus_replace, bool p_show_only) {
search_text->call_deferred("grab_focus");
}
- if (text_edit->is_selection_active() && !selection_only->is_pressed()) {
- search_text->set_text(text_edit->get_selection_text());
+ if (text_editor->is_selection_active() && !selection_only->is_pressed()) {
+ search_text->set_text(text_editor->get_selection_text());
}
if (!get_search_text().empty()) {
@@ -511,9 +511,9 @@ void FindReplaceBar::popup_replace() {
hbc_option_replace->show();
}
- selection_only->set_pressed((text_edit->is_selection_active() && text_edit->get_selection_from_line() < text_edit->get_selection_to_line()));
+ selection_only->set_pressed((text_editor->is_selection_active() && text_editor->get_selection_from_line() < text_editor->get_selection_to_line()));
- _show_search(is_visible() || text_edit->is_selection_active());
+ _show_search(is_visible() || text_editor->is_selection_active());
}
void FindReplaceBar::_search_options_changed(bool p_pressed) {
@@ -544,7 +544,7 @@ void FindReplaceBar::_search_text_entered(const String &p_text) {
}
void FindReplaceBar::_replace_text_entered(const String &p_text) {
- if (selection_only->is_pressed() && text_edit->is_selection_active()) {
+ if (selection_only->is_pressed() && text_editor->is_selection_active()) {
_replace_all();
_hide_bar();
} else if (Input::get_singleton()->is_key_pressed(KEY_SHIFT)) {
@@ -579,10 +579,10 @@ void FindReplaceBar::set_error(const String &p_label) {
emit_signal("error", p_label);
}
-void FindReplaceBar::set_text_edit(TextEdit *p_text_edit) {
+void FindReplaceBar::set_text_edit(CodeEdit *p_text_edit) {
results_count = -1;
- text_edit = p_text_edit;
- text_edit->connect("text_changed", callable_mp(this, &FindReplaceBar::_editor_text_changed));
+ text_editor = p_text_edit;
+ text_editor->connect("text_changed", callable_mp(this, &FindReplaceBar::_editor_text_changed));
}
void FindReplaceBar::_bind_methods() {
@@ -932,11 +932,9 @@ void CodeTextEditor::update_editor_settings() {
text_editor->set_v_scroll_speed(EditorSettings::get_singleton()->get("text_editor/navigation/v_scroll_speed"));
text_editor->set_draw_minimap(EditorSettings::get_singleton()->get("text_editor/navigation/show_minimap"));
text_editor->set_minimap_width((int)EditorSettings::get_singleton()->get("text_editor/navigation/minimap_width") * EDSCALE);
- text_editor->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/appearance/show_line_numbers"));
+ text_editor->set_draw_line_numbers(EditorSettings::get_singleton()->get("text_editor/appearance/show_line_numbers"));
text_editor->set_line_numbers_zero_padded(EditorSettings::get_singleton()->get("text_editor/appearance/line_numbers_zero_padded"));
- text_editor->set_bookmark_gutter_enabled(EditorSettings::get_singleton()->get("text_editor/appearance/show_bookmark_gutter"));
- text_editor->set_breakpoint_gutter_enabled(EditorSettings::get_singleton()->get("text_editor/appearance/show_breakpoint_gutter"));
- text_editor->set_draw_info_gutter(EditorSettings::get_singleton()->get("text_editor/appearance/show_info_gutter"));
+ text_editor->set_draw_bookmarks_gutter(EditorSettings::get_singleton()->get("text_editor/appearance/show_bookmark_gutter"));
text_editor->set_hiding_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"));
@@ -1390,11 +1388,11 @@ void CodeTextEditor::goto_line_centered(int p_line) {
}
void CodeTextEditor::set_executing_line(int p_line) {
- text_editor->set_executing_line(p_line);
+ text_editor->set_line_as_executing(p_line, true);
}
void CodeTextEditor::clear_executing_line() {
- text_editor->clear_executing_line();
+ text_editor->clear_executing_lines();
}
Variant CodeTextEditor::get_edit_state() {
@@ -1405,8 +1403,8 @@ Variant CodeTextEditor::get_edit_state() {
state["column"] = text_editor->cursor_get_column();
state["row"] = text_editor->cursor_get_line();
- state["selection"] = get_text_edit()->is_selection_active();
- if (get_text_edit()->is_selection_active()) {
+ state["selection"] = get_text_editor()->is_selection_active();
+ if (get_text_editor()->is_selection_active()) {
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();
@@ -1414,8 +1412,8 @@ Variant CodeTextEditor::get_edit_state() {
}
state["folded_lines"] = text_editor->get_folded_lines();
- state["breakpoints"] = text_editor->get_breakpoints_array();
- state["bookmarks"] = text_editor->get_bookmarks_array();
+ state["breakpoints"] = text_editor->get_breakpointed_lines();
+ state["bookmarks"] = text_editor->get_bookmarked_lines();
Ref<EditorSyntaxHighlighter> syntax_highlighter = text_editor->get_syntax_highlighter();
state["syntax_highlighter"] = syntax_highlighter->_get_name();
@@ -1453,11 +1451,9 @@ void CodeTextEditor::set_edit_state(const Variant &p_state) {
if (state.has("bookmarks")) {
Array bookmarks = state["bookmarks"];
for (int i = 0; i < bookmarks.size(); i++) {
- text_editor->set_line_as_bookmark(bookmarks[i], true);
+ text_editor->set_line_as_bookmarked(bookmarks[i], true);
}
}
-
- text_editor->grab_focus();
}
void CodeTextEditor::set_error(const String &p_error) {
@@ -1593,27 +1589,26 @@ void CodeTextEditor::set_warning_nb(int p_warning_nb) {
void CodeTextEditor::toggle_bookmark() {
int line = text_editor->cursor_get_line();
- text_editor->set_line_as_bookmark(line, !text_editor->is_line_set_as_bookmark(line));
+ text_editor->set_line_as_bookmarked(line, !text_editor->is_line_bookmarked(line));
}
void CodeTextEditor::goto_next_bookmark() {
- List<int> bmarks;
- text_editor->get_bookmarks(&bmarks);
+ Array bmarks = text_editor->get_bookmarked_lines();
if (bmarks.size() <= 0) {
return;
}
int line = text_editor->cursor_get_line();
- if (line >= bmarks[bmarks.size() - 1]) {
+ 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();
} else {
- for (List<int>::Element *E = bmarks.front(); E; E = E->next()) {
- int bline = E->get();
- if (bline > line) {
- text_editor->unfold_line(bline);
- text_editor->cursor_set_line(bline);
+ 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();
return;
}
@@ -1622,23 +1617,22 @@ void CodeTextEditor::goto_next_bookmark() {
}
void CodeTextEditor::goto_prev_bookmark() {
- List<int> bmarks;
- text_editor->get_bookmarks(&bmarks);
+ Array bmarks = text_editor->get_bookmarked_lines();
if (bmarks.size() <= 0) {
return;
}
int line = text_editor->cursor_get_line();
- if (line <= bmarks[0]) {
+ 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();
} else {
- for (List<int>::Element *E = bmarks.back(); E; E = E->prev()) {
- int bline = E->get();
- if (bline < line) {
- text_editor->unfold_line(bline);
- text_editor->cursor_set_line(bline);
+ 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();
return;
}
@@ -1647,12 +1641,7 @@ void CodeTextEditor::goto_prev_bookmark() {
}
void CodeTextEditor::remove_all_bookmarks() {
- List<int> bmarks;
- text_editor->get_bookmarks(&bmarks);
-
- for (List<int>::Element *E = bmarks.front(); E; E = E->next()) {
- text_editor->set_line_as_bookmark(E->get(), false);
- }
+ text_editor->clear_bookmarked_lines();
}
void CodeTextEditor::_bind_methods() {
@@ -1683,7 +1672,7 @@ CodeTextEditor::CodeTextEditor() {
ED_SHORTCUT("script_editor/zoom_out", TTR("Zoom Out"), KEY_MASK_CMD | KEY_MINUS);
ED_SHORTCUT("script_editor/reset_zoom", TTR("Reset Zoom"), KEY_MASK_CMD | KEY_0);
- text_editor = memnew(TextEdit);
+ text_editor = memnew(CodeEdit);
add_child(text_editor);
text_editor->set_v_size_flags(SIZE_EXPAND_FILL);
@@ -1695,7 +1684,7 @@ CodeTextEditor::CodeTextEditor() {
find_replace_bar->set_text_edit(text_editor);
- text_editor->set_show_line_numbers(true);
+ text_editor->set_draw_line_numbers(true);
text_editor->set_brace_matching(true);
text_editor->set_auto_indent(true);
@@ -1778,6 +1767,7 @@ CodeTextEditor::CodeTextEditor() {
cs.push_back("(");
cs.push_back("=");
cs.push_back("$");
+ cs.push_back("@");
text_editor->set_completion(true, cs);
idle->connect("timeout", callable_mp(this, &CodeTextEditor::_text_changed_idle_timeout));
diff --git a/editor/code_editor.h b/editor/code_editor.h
index 450c85c64b..b38170cbf5 100644
--- a/editor/code_editor.h
+++ b/editor/code_editor.h
@@ -34,9 +34,9 @@
#include "editor/editor_plugin.h"
#include "scene/gui/check_box.h"
#include "scene/gui/check_button.h"
+#include "scene/gui/code_edit.h"
#include "scene/gui/dialogs.h"
#include "scene/gui/line_edit.h"
-#include "scene/gui/text_edit.h"
#include "scene/main/timer.h"
class GotoLineDialog : public ConfirmationDialog {
@@ -45,15 +45,15 @@ class GotoLineDialog : public ConfirmationDialog {
Label *line_label;
LineEdit *line;
- TextEdit *text_editor;
+ CodeEdit *text_editor;
virtual void ok_pressed() override;
public:
- void popup_find_line(TextEdit *p_edit);
+ void popup_find_line(CodeEdit *p_edit);
int get_line() const;
- void set_text_editor(TextEdit *p_text_editor);
+ void set_text_editor(CodeEdit *p_text_editor);
GotoLineDialog();
};
@@ -77,7 +77,7 @@ class FindReplaceBar : public HBoxContainer {
HBoxContainer *hbc_button_replace;
HBoxContainer *hbc_option_replace;
- TextEdit *text_edit;
+ CodeEdit *text_editor;
int result_line;
int result_col;
@@ -120,7 +120,7 @@ public:
bool is_selection_only() const;
void set_error(const String &p_label);
- void set_text_edit(TextEdit *p_text_edit);
+ void set_text_edit(CodeEdit *p_text_edit);
void popup_search(bool p_show_only = false);
void popup_replace();
@@ -137,7 +137,7 @@ typedef void (*CodeTextEditorCodeCompleteFunc)(void *p_ud, const String &p_code,
class CodeTextEditor : public VBoxContainer {
GDCLASS(CodeTextEditor, VBoxContainer);
- TextEdit *text_editor;
+ CodeEdit *text_editor;
FindReplaceBar *find_replace_bar;
HBoxContainer *status_bar;
@@ -240,7 +240,7 @@ public:
void set_error(const String &p_error);
void set_error_pos(int p_line, int p_column);
void update_line_and_column() { _line_col_changed(); }
- TextEdit *get_text_edit() { return text_editor; }
+ CodeEdit *get_text_editor() { return text_editor; }
FindReplaceBar *get_find_replace_bar() { return find_replace_bar; }
virtual void apply_code() {}
void goto_error();
diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp
index facd57418d..d1661fd7b3 100644
--- a/editor/connections_dialog.cpp
+++ b/editor/connections_dialog.cpp
@@ -477,11 +477,6 @@ ConnectDialog::ConnectDialog() {
advanced->set_text(TTR("Advanced"));
advanced->connect("pressed", callable_mp(this, &ConnectDialog::_advanced_pressed));
- // Add spacing so the tree and inspector are the same size.
- Control *spacing = memnew(Control);
- spacing->set_custom_minimum_size(Size2(0, 4) * EDSCALE);
- vbc_right->add_child(spacing);
-
deferred = memnew(CheckBox);
deferred->set_h_size_flags(0);
deferred->set_text(TTR("Deferred"));
@@ -528,6 +523,10 @@ struct _ConnectionsDockMethodInfoSort {
}
};
+void ConnectionsDock::_filter_changed(const String &p_text) {
+ update_tree();
+}
+
/*
* Post-ConnectDialog callback for creating/editing connections.
* Creates or edits connections based on state of the ConnectDialog when "Connect" is pressed.
@@ -715,7 +714,7 @@ void ConnectionsDock::_open_connection_dialog(TreeItem &item) {
const String &signalname = signal;
String midname = selectedNode->get_name();
for (int i = 0; i < midname.length(); i++) { //TODO: Regex filter may be cleaner.
- CharType c = midname[i];
+ char32_t c = midname[i];
if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_')) {
if (c == ' ') {
// Replace spaces with underlines.
@@ -755,8 +754,9 @@ void ConnectionsDock::_open_connection_dialog(ConnectDialog::ConnectionData cToE
Node *dst = static_cast<Node *>(cToEdit.target);
if (src && dst) {
+ const String &signalname = cToEdit.signal;
connect_dialog->set_title(TTR("Edit Connection:") + cToEdit.signal);
- connect_dialog->popup_centered();
+ connect_dialog->popup_dialog(signalname);
connect_dialog->init(cToEdit, true);
}
}
@@ -903,6 +903,7 @@ void ConnectionsDock::update_tree() {
String name;
if (!did_script) {
+ // Get script signals (including signals from any base scripts).
Ref<Script> scr = selectedNode->get_script();
if (scr.is_valid()) {
scr->get_script_signal_list(&node_signals2);
@@ -928,15 +929,16 @@ void ConnectionsDock::update_tree() {
icon = get_theme_icon("Object", "EditorIcons");
}
- TreeItem *pitem = nullptr;
+ TreeItem *section_item = nullptr;
+ // Create subsections.
if (node_signals2.size()) {
- pitem = tree->create_item(root);
- pitem->set_text(0, name);
- pitem->set_icon(0, icon);
- pitem->set_selectable(0, false);
- pitem->set_editable(0, false);
- pitem->set_custom_bg_color(0, get_theme_color("prop_subsection", "Editor"));
+ section_item = tree->create_item(root);
+ section_item->set_text(0, name);
+ section_item->set_icon(0, icon);
+ section_item->set_selectable(0, false);
+ section_item->set_editable(0, false);
+ section_item->set_custom_bg_color(0, get_theme_color("prop_subsection", "Editor"));
node_signals2.sort();
}
@@ -946,6 +948,12 @@ void ConnectionsDock::update_tree() {
StringName signal_name = mi.name;
String signaldesc = "(";
PackedStringArray argnames;
+
+ String filter_text = search_box->get_text();
+ if (!filter_text.is_subsequence_ofi(signal_name)) {
+ continue;
+ }
+
if (mi.arguments.size()) {
for (int i = 0; i < mi.arguments.size(); i++) {
PropertyInfo &pi = mi.arguments[i];
@@ -965,13 +973,14 @@ void ConnectionsDock::update_tree() {
}
signaldesc += ")";
- TreeItem *item = tree->create_item(pitem);
- item->set_text(0, String(signal_name) + signaldesc);
+ // Create the children of the subsection - the actual list of signals.
+ TreeItem *signal_item = tree->create_item(section_item);
+ signal_item->set_text(0, String(signal_name) + signaldesc);
Dictionary sinfo;
sinfo["name"] = signal_name;
sinfo["args"] = argnames;
- item->set_metadata(0, sinfo);
- item->set_icon(0, get_theme_icon("Signal", "EditorIcons"));
+ signal_item->set_metadata(0, sinfo);
+ signal_item->set_icon(0, get_theme_icon("Signal", "EditorIcons"));
// Set tooltip with the signal's documentation.
{
@@ -1007,7 +1016,7 @@ void ConnectionsDock::update_tree() {
}
// "::" separators used in make_custom_tooltip for formatting.
- item->set_tooltip(0, String(signal_name) + "::" + signaldesc + "::" + descr);
+ signal_item->set_tooltip(0, String(signal_name) + "::" + signaldesc + "::" + descr);
}
// List existing connections
@@ -1044,11 +1053,11 @@ void ConnectionsDock::update_tree() {
path += ")";
}
- TreeItem *item2 = tree->create_item(item);
- item2->set_text(0, path);
+ TreeItem *connection_item = tree->create_item(signal_item);
+ connection_item->set_text(0, path);
Connection cd = c;
- item2->set_metadata(0, cd);
- item2->set_icon(0, get_theme_icon("Slot", "EditorIcons"));
+ connection_item->set_metadata(0, cd);
+ connection_item->set_icon(0, get_theme_icon("Slot", "EditorIcons"));
}
}
@@ -1069,6 +1078,14 @@ ConnectionsDock::ConnectionsDock(EditorNode *p_editor) {
VBoxContainer *vbc = this;
+ search_box = memnew(LineEdit);
+ search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ search_box->set_placeholder(TTR("Filter signals"));
+ search_box->set_right_icon(get_theme_icon("Search", "EditorIcons"));
+ search_box->set_clear_button_enabled(true);
+ search_box->connect("text_changed", callable_mp(this, &ConnectionsDock::_filter_changed));
+ vbc->add_child(search_box);
+
tree = memnew(ConnectionsDockTree);
tree->set_columns(1);
tree->set_select_mode(Tree::SELECT_ROW);
diff --git a/editor/connections_dialog.h b/editor/connections_dialog.h
index 9da9a8fb2c..48fdb91f5a 100644
--- a/editor/connections_dialog.h
+++ b/editor/connections_dialog.h
@@ -169,9 +169,12 @@ class ConnectionsDock : public VBoxContainer {
PopupMenu *signal_menu;
PopupMenu *slot_menu;
UndoRedo *undo_redo;
+ LineEdit *search_box;
Map<StringName, Map<StringName, String>> descr_cache;
+ void _filter_changed(const String &p_text);
+
void _make_or_edit_connection();
void _connect(ConnectDialog::ConnectionData cToMake);
void _disconnect(TreeItem &item);
diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp
index c0c3a73957..1e3dc01112 100644
--- a/editor/create_dialog.cpp
+++ b/editor/create_dialog.cpp
@@ -707,6 +707,7 @@ CreateDialog::CreateDialog() {
favorite = memnew(Button);
favorite->set_flat(true);
favorite->set_toggle_mode(true);
+ favorite->set_tooltip(TTR("(Un)favorite selected item."));
favorite->connect("pressed", callable_mp(this, &CreateDialog::_favorite_toggled));
search_hb->add_child(favorite);
vbc->add_margin_child(TTR("Search:"), search_hb);
diff --git a/editor/debugger/editor_debugger_node.cpp b/editor/debugger/editor_debugger_node.cpp
index a9c18138d8..b461ac4f35 100644
--- a/editor/debugger/editor_debugger_node.cpp
+++ b/editor/debugger/editor_debugger_node.cpp
@@ -34,6 +34,7 @@
#include "editor/debugger/script_editor_debugger.h"
#include "editor/editor_log.h"
#include "editor/editor_node.h"
+#include "editor/plugins/editor_debugger_plugin.h"
#include "editor/plugins/script_editor_plugin.h"
#include "scene/gui/menu_button.h"
#include "scene/gui/tab_container.h"
@@ -114,6 +115,12 @@ ScriptEditorDebugger *EditorDebuggerNode::_add_debugger() {
tabs->add_theme_style_override("panel", EditorNode::get_singleton()->get_gui_base()->get_theme_stylebox("DebuggerPanel", "EditorStyles"));
}
+ if (!debugger_plugins.empty()) {
+ for (Set<Ref<Script>>::Element *i = debugger_plugins.front(); i; i = i->next()) {
+ node->add_debugger_plugin(i->get());
+ }
+ }
+
return node;
}
@@ -618,3 +625,23 @@ void EditorDebuggerNode::live_debug_reparent_node(const NodePath &p_at, const No
dbg->live_debug_reparent_node(p_at, p_new_place, p_new_name, p_at_pos);
});
}
+
+void EditorDebuggerNode::add_debugger_plugin(const Ref<Script> &p_script) {
+ ERR_FAIL_COND_MSG(debugger_plugins.has(p_script), "Debugger plugin already exists.");
+ ERR_FAIL_COND_MSG(p_script.is_null(), "Debugger plugin script is null");
+ ERR_FAIL_COND_MSG(String(p_script->get_instance_base_type()) == "", "Debugger plugin script has error.");
+ ERR_FAIL_COND_MSG(String(p_script->get_instance_base_type()) != "EditorDebuggerPlugin", "Base type of debugger plugin is not 'EditorDebuggerPlugin'.");
+ ERR_FAIL_COND_MSG(!p_script->is_tool(), "Debugger plugin script is not in tool mode.");
+ debugger_plugins.insert(p_script);
+ for (int i = 0; get_debugger(i); i++) {
+ get_debugger(i)->add_debugger_plugin(p_script);
+ }
+}
+
+void EditorDebuggerNode::remove_debugger_plugin(const Ref<Script> &p_script) {
+ ERR_FAIL_COND_MSG(!debugger_plugins.has(p_script), "Debugger plugin doesn't exists.");
+ debugger_plugins.erase(p_script);
+ for (int i = 0; get_debugger(i); i++) {
+ get_debugger(i)->remove_debugger_plugin(p_script);
+ }
+}
diff --git a/editor/debugger/editor_debugger_node.h b/editor/debugger/editor_debugger_node.h
index ff9601c026..8d70a7f961 100644
--- a/editor/debugger/editor_debugger_node.h
+++ b/editor/debugger/editor_debugger_node.h
@@ -103,6 +103,8 @@ private:
CameraOverride camera_override = OVERRIDE_NONE;
Map<Breakpoint, bool> breakpoints;
+ Set<Ref<Script>> debugger_plugins;
+
ScriptEditorDebugger *_add_debugger();
EditorDebuggerRemoteObject *get_inspected_remote_object();
@@ -186,5 +188,8 @@ public:
Error start(const String &p_protocol = "tcp://");
void stop();
+
+ void add_debugger_plugin(const Ref<Script> &p_script);
+ void remove_debugger_plugin(const Ref<Script> &p_script);
};
#endif // EDITOR_DEBUGGER_NODE_H
diff --git a/editor/debugger/script_editor_debugger.cpp b/editor/debugger/script_editor_debugger.cpp
index 49bf068be7..1fca95b6da 100644
--- a/editor/debugger/script_editor_debugger.cpp
+++ b/editor/debugger/script_editor_debugger.cpp
@@ -44,6 +44,7 @@
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/plugins/canvas_item_editor_plugin.h"
+#include "editor/plugins/editor_debugger_plugin.h"
#include "editor/plugins/node_3d_editor_plugin.h"
#include "editor/property_editor.h"
#include "main/performance.h"
@@ -701,7 +702,28 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
performance_profiler->update_monitors(monitors);
} else {
- WARN_PRINT("unknown message " + p_msg);
+ int colon_index = p_msg.find_char(':');
+ ERR_FAIL_COND_MSG(colon_index < 1, "Invalid message received");
+
+ bool parsed = false;
+ const String cap = p_msg.substr(0, colon_index);
+ Map<StringName, Callable>::Element *element = captures.find(cap);
+ if (element) {
+ Callable &c = element->value();
+ ERR_FAIL_COND_MSG(c.is_null(), "Invalid callable registered: " + cap);
+ Variant cmd = p_msg.substr(colon_index + 1), data = p_data;
+ const Variant *args[2] = { &cmd, &data };
+ Variant retval;
+ Callable::CallError err;
+ c.call(args, 2, retval, err);
+ ERR_FAIL_COND_MSG(err.error != Callable::CallError::CALL_OK, "Error calling 'capture' to callable: " + Variant::get_callable_error_text(c, args, 2, err));
+ ERR_FAIL_COND_MSG(retval.get_type() != Variant::BOOL, "Error calling 'capture' to callable: " + String(c) + ". Return type is not bool.");
+ parsed = retval;
+ }
+
+ if (!parsed) {
+ WARN_PRINT("unknown message " + p_msg);
+ }
}
}
@@ -847,6 +869,7 @@ void ScriptEditorDebugger::start(Ref<RemoteDebuggerPeer> p_peer) {
tabs->set_current_tab(0);
_set_reason_text(TTR("Debug session started."), MESSAGE_SUCCESS);
_update_buttons_state();
+ emit_signal("started");
}
void ScriptEditorDebugger::_update_buttons_state() {
@@ -1395,6 +1418,7 @@ void ScriptEditorDebugger::_bind_methods() {
ClassDB::bind_method(D_METHOD("request_remote_object", "id"), &ScriptEditorDebugger::request_remote_object);
ClassDB::bind_method(D_METHOD("update_remote_object", "id", "property", "value"), &ScriptEditorDebugger::update_remote_object);
+ ADD_SIGNAL(MethodInfo("started"));
ADD_SIGNAL(MethodInfo("stopped"));
ADD_SIGNAL(MethodInfo("stop_requested"));
ADD_SIGNAL(MethodInfo("stack_frame_selected", PropertyInfo(Variant::INT, "frame")));
@@ -1408,6 +1432,43 @@ void ScriptEditorDebugger::_bind_methods() {
ADD_SIGNAL(MethodInfo("remote_tree_updated"));
}
+void ScriptEditorDebugger::add_debugger_plugin(const Ref<Script> &p_script) {
+ if (!debugger_plugins.has(p_script)) {
+ EditorDebuggerPlugin *plugin = memnew(EditorDebuggerPlugin());
+ plugin->attach_debugger(this);
+ plugin->set_script(p_script);
+ tabs->add_child(plugin);
+ debugger_plugins.insert(p_script, plugin);
+ }
+}
+
+void ScriptEditorDebugger::remove_debugger_plugin(const Ref<Script> &p_script) {
+ if (debugger_plugins.has(p_script)) {
+ tabs->remove_child(debugger_plugins[p_script]);
+ debugger_plugins[p_script]->detach_debugger(false);
+ memdelete(debugger_plugins[p_script]);
+ debugger_plugins.erase(p_script);
+ }
+}
+
+void ScriptEditorDebugger::send_message(const String &p_message, const Array &p_args) {
+ _put_msg(p_message, p_args);
+}
+
+void ScriptEditorDebugger::register_message_capture(const StringName &p_name, const Callable &p_callable) {
+ ERR_FAIL_COND_MSG(has_capture(p_name), "Capture already registered: " + p_name);
+ captures.insert(p_name, p_callable);
+}
+
+void ScriptEditorDebugger::unregister_message_capture(const StringName &p_name) {
+ ERR_FAIL_COND_MSG(!has_capture(p_name), "Capture not registered: " + p_name);
+ captures.erase(p_name);
+}
+
+bool ScriptEditorDebugger::has_capture(const StringName &p_name) {
+ return captures.has(p_name);
+}
+
ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) {
editor = p_editor;
diff --git a/editor/debugger/script_editor_debugger.h b/editor/debugger/script_editor_debugger.h
index 6e5699e929..56b34e8e8c 100644
--- a/editor/debugger/script_editor_debugger.h
+++ b/editor/debugger/script_editor_debugger.h
@@ -54,6 +54,7 @@ class EditorVisualProfiler;
class EditorNetworkProfiler;
class EditorPerformanceProfiler;
class SceneDebuggerTree;
+class EditorDebuggerPlugin;
class ScriptEditorDebugger : public MarginContainer {
GDCLASS(ScriptEditorDebugger, MarginContainer);
@@ -146,6 +147,10 @@ private:
EditorDebuggerNode::CameraOverride camera_override;
+ Map<Ref<Script>, EditorDebuggerPlugin *> debugger_plugins;
+
+ Map<StringName, Callable> captures;
+
void _stack_dump_frame_selected();
void _file_selected(const String &p_file);
@@ -253,6 +258,16 @@ public:
bool is_skip_breakpoints();
virtual Size2 get_minimum_size() const override;
+
+ void add_debugger_plugin(const Ref<Script> &p_script);
+ void remove_debugger_plugin(const Ref<Script> &p_script);
+
+ void send_message(const String &p_message, const Array &p_args);
+
+ void register_message_capture(const StringName &p_name, const Callable &p_callable);
+ void unregister_message_capture(const StringName &p_name);
+ bool has_capture(const StringName &p_name);
+
ScriptEditorDebugger(EditorNode *p_editor = nullptr);
~ScriptEditorDebugger();
};
diff --git a/editor/doc_data.cpp b/editor/doc_data.cpp
index 54acbe9559..791b49319a 100644
--- a/editor/doc_data.cpp
+++ b/editor/doc_data.cpp
@@ -316,17 +316,17 @@ void DocData::generate(bool p_basic_types) {
if (name == "ProjectSettings") {
// Special case for project settings, so that settings are not taken from the current project's settings
- if (E->get().name == "script" ||
- ProjectSettings::get_singleton()->get_order(E->get().name) >= ProjectSettings::NO_BUILTIN_ORDER_BASE) {
+ if (E->get().name == "script" || !ProjectSettings::get_singleton()->is_builtin_setting(E->get().name)) {
continue;
}
if (E->get().usage & PROPERTY_USAGE_EDITOR) {
- default_value = ProjectSettings::get_singleton()->property_get_revert(E->get().name);
- default_value_valid = true;
+ if (!ProjectSettings::get_singleton()->get_ignore_value_in_docs(E->get().name)) {
+ default_value = ProjectSettings::get_singleton()->property_get_revert(E->get().name);
+ default_value_valid = true;
+ }
}
} else {
default_value = get_documentation_default_value(name, E->get().name, default_value_valid);
-
if (inherited) {
bool base_default_value_valid = false;
Variant base_default_value = get_documentation_default_value(ClassDB::get_parent_class(name), E->get().name, base_default_value_valid);
@@ -478,6 +478,7 @@ void DocData::generate(bool p_basic_types) {
ConstantDoc constant;
constant.name = E->get();
constant.value = itos(ClassDB::get_integer_constant(name, E->get()));
+ constant.is_value_valid = true;
constant.enumeration = ClassDB::get_integer_constant_enum(name, E->get());
c.constants.push_back(constant);
}
@@ -620,6 +621,7 @@ void DocData::generate(bool p_basic_types) {
constant.name = E->get();
Variant value = Variant::get_constant_value(Variant::Type(i), E->get());
constant.value = value.get_type() == Variant::INT ? itos(value) : value.get_construct_string();
+ constant.is_value_valid = true;
c.constants.push_back(constant);
}
}
@@ -635,7 +637,12 @@ void DocData::generate(bool p_basic_types) {
for (int i = 0; i < GlobalConstants::get_global_constant_count(); i++) {
ConstantDoc cd;
cd.name = GlobalConstants::get_global_constant_name(i);
- cd.value = itos(GlobalConstants::get_global_constant_value(i));
+ if (!GlobalConstants::get_ignore_value_in_docs(i)) {
+ cd.value = itos(GlobalConstants::get_global_constant_value(i));
+ cd.is_value_valid = true;
+ } else {
+ cd.is_value_valid = false;
+ }
cd.enumeration = GlobalConstants::get_global_constant_enum(i);
c.constants.push_back(cd);
}
@@ -715,6 +722,7 @@ void DocData::generate(bool p_basic_types) {
ConstantDoc cd;
cd.name = E->get().first;
cd.value = E->get().second;
+ cd.is_value_valid = true;
c.constants.push_back(cd);
}
@@ -989,6 +997,7 @@ Error DocData::_load(Ref<XMLParser> parser) {
constant2.name = parser->get_attribute_value("name");
ERR_FAIL_COND_V(!parser->has_attribute("value"), ERR_FILE_CORRUPT);
constant2.value = parser->get_attribute_value("value");
+ constant2.is_value_valid = true;
if (parser->has_attribute("enum")) {
constant2.enumeration = parser->get_attribute_value("enum");
}
@@ -1178,10 +1187,18 @@ Error DocData::save_classes(const String &p_default_path, const Map<String, Stri
for (int i = 0; i < c.constants.size(); i++) {
const ConstantDoc &k = c.constants[i];
- if (k.enumeration != String()) {
- _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"" + k.value + "\" enum=\"" + k.enumeration + "\">");
+ if (k.is_value_valid) {
+ if (k.enumeration != String()) {
+ _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"" + k.value + "\" enum=\"" + k.enumeration + "\">");
+ } else {
+ _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"" + k.value + "\">");
+ }
} else {
- _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"" + k.value + "\">");
+ if (k.enumeration != String()) {
+ _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"platform-dependent\" enum=\"" + k.enumeration + "\">");
+ } else {
+ _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"platform-dependent\">");
+ }
}
_write_string(f, 3, k.description.strip_edges().xml_escape());
_write_string(f, 2, "</constant>");
diff --git a/editor/doc_data.h b/editor/doc_data.h
index 1880be81ed..a35cfb59c7 100644
--- a/editor/doc_data.h
+++ b/editor/doc_data.h
@@ -62,6 +62,7 @@ public:
struct ConstantDoc {
String name;
String value;
+ bool is_value_valid;
String enumeration;
String description;
bool operator<(const ConstantDoc &p_const) const {
diff --git a/editor/editor_about.cpp b/editor/editor_about.cpp
index d99726c57c..cbde7d593a 100644
--- a/editor/editor_about.cpp
+++ b/editor/editor_about.cpp
@@ -144,7 +144,10 @@ EditorAbout::EditorAbout() {
List<String> dev_sections;
dev_sections.push_back(TTR("Project Founders"));
dev_sections.push_back(TTR("Lead Developer"));
- dev_sections.push_back(TTR("Project Manager ")); // " " appended to distinguish between 'project supervisor' and 'project list'
+ // TRANSLATORS: This refers to a job title.
+ // The trailing space is used to distinguish with the project list application,
+ // you do not have to keep it in your translation.
+ dev_sections.push_back(TTR("Project Manager "));
dev_sections.push_back(TTR("Developers"));
const char *const *dev_src[] = { AUTHORS_FOUNDERS, AUTHORS_LEAD_DEVELOPERS,
AUTHORS_PROJECT_MANAGERS, AUTHORS_DEVELOPERS };
@@ -155,12 +158,15 @@ EditorAbout::EditorAbout() {
List<String> donor_sections;
donor_sections.push_back(TTR("Platinum Sponsors"));
donor_sections.push_back(TTR("Gold Sponsors"));
+ donor_sections.push_back(TTR("Silver Sponsors"));
+ donor_sections.push_back(TTR("Bronze Sponsors"));
donor_sections.push_back(TTR("Mini Sponsors"));
donor_sections.push_back(TTR("Gold Donors"));
donor_sections.push_back(TTR("Silver Donors"));
donor_sections.push_back(TTR("Bronze Donors"));
- const char *const *donor_src[] = { DONORS_SPONSOR_PLAT, DONORS_SPONSOR_GOLD,
- DONORS_SPONSOR_MINI, DONORS_GOLD, DONORS_SILVER, DONORS_BRONZE };
+ const char *const *donor_src[] = { DONORS_SPONSOR_PLATINUM, DONORS_SPONSOR_GOLD,
+ DONORS_SPONSOR_SILVER, DONORS_SPONSOR_BRONZE, DONORS_SPONSOR_MINI,
+ DONORS_GOLD, DONORS_SILVER, DONORS_BRONZE };
tc->add_child(_populate_list(TTR("Donors"), donor_sections, donor_src, 3));
// License
diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp
index adb09532eb..a3deb95130 100644
--- a/editor/editor_audio_buses.cpp
+++ b/editor/editor_audio_buses.cpp
@@ -846,7 +846,7 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) {
audioprev_hbc->add_child(audio_value_preview_label);
slider->add_child(audio_value_preview_box);
- audio_value_preview_box->set_as_toplevel(true);
+ audio_value_preview_box->set_as_top_level(true);
Ref<StyleBoxFlat> panel_style = memnew(StyleBoxFlat);
panel_style->set_bg_color(Color(0.0f, 0.0f, 0.0f, 0.8f));
audio_value_preview_box->add_theme_style_override("panel", panel_style);
diff --git a/editor/editor_audio_buses.h b/editor/editor_audio_buses.h
index 87c060d1f5..b6cf1183b5 100644
--- a/editor/editor_audio_buses.h
+++ b/editor/editor_audio_buses.h
@@ -230,7 +230,7 @@ private:
render_db_value = n.render_db_value;
}
- _FORCE_INLINE_ AudioNotch operator=(const EditorAudioMeterNotches::AudioNotch &n) {
+ _FORCE_INLINE_ AudioNotch &operator=(const EditorAudioMeterNotches::AudioNotch &n) {
relative_position = n.relative_position;
db_value = n.db_value;
render_db_value = n.render_db_value;
diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp
index 94887fb848..5d101ff2c2 100644
--- a/editor/editor_autoload_settings.cpp
+++ b/editor/editor_autoload_settings.cpp
@@ -688,12 +688,12 @@ bool EditorAutoloadSettings::autoload_add(const String &p_name, const String &p_
const String &path = p_path;
if (!FileAccess::exists(path)) {
- EditorNode::get_singleton()->show_warning(TTR("Can't add autoload:") + "\n" + TTR(vformat("%s is an invalid path. File does not exist.", path)));
+ EditorNode::get_singleton()->show_warning(TTR("Can't add autoload:") + "\n" + vformat(TTR("%s is an invalid path. File does not exist."), path));
return false;
}
if (!path.begins_with("res://")) {
- EditorNode::get_singleton()->show_warning(TTR("Can't add autoload:") + "\n" + TTR(vformat("%s is an invalid path. Not in resource path (res://).", path)));
+ EditorNode::get_singleton()->show_warning(TTR("Can't add autoload:") + "\n" + vformat(TTR("%s is an invalid path. Not in resource path (res://)."), path));
return false;
}
diff --git a/editor/editor_builders.py b/editor/editor_builders.py
index ea32e24f6e..86c5c87a68 100644
--- a/editor/editor_builders.py
+++ b/editor/editor_builders.py
@@ -54,7 +54,6 @@ def make_fonts_header(target, source, env):
g.write("#define _EDITOR_FONTS_H\n")
# saving uncompressed, since freetype will reference from memory pointer
- xl_names = []
for i in range(len(source)):
with open(source[i], "rb") as f:
buf = f.read()
diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp
index 130c330f5a..1002c4917b 100644
--- a/editor/editor_data.cpp
+++ b/editor/editor_data.cpp
@@ -262,7 +262,9 @@ EditorHistory::EditorHistory() {
}
EditorPlugin *EditorData::get_editor(Object *p_object) {
- for (int i = 0; i < editor_plugins.size(); i++) {
+ // We need to iterate backwards so that we can check user-created plugins first.
+ // Otherwise, it would not be possible for plugins to handle CanvasItem and Spatial nodes.
+ for (int i = editor_plugins.size() - 1; i > -1; i--) {
if (editor_plugins[i]->has_main_screen() && editor_plugins[i]->handles(p_object)) {
return editor_plugins[i];
}
@@ -272,7 +274,7 @@ EditorPlugin *EditorData::get_editor(Object *p_object) {
}
EditorPlugin *EditorData::get_subeditor(Object *p_object) {
- for (int i = 0; i < editor_plugins.size(); i++) {
+ for (int i = editor_plugins.size() - 1; i > -1; i--) {
if (!editor_plugins[i]->has_main_screen() && editor_plugins[i]->handles(p_object)) {
return editor_plugins[i];
}
@@ -283,7 +285,7 @@ EditorPlugin *EditorData::get_subeditor(Object *p_object) {
Vector<EditorPlugin *> EditorData::get_subeditors(Object *p_object) {
Vector<EditorPlugin *> sub_plugins;
- for (int i = 0; i < editor_plugins.size(); i++) {
+ for (int i = editor_plugins.size() - 1; i > -1; i--) {
if (!editor_plugins[i]->has_main_screen() && editor_plugins[i]->handles(p_object)) {
sub_plugins.push_back(editor_plugins[i]);
}
@@ -292,7 +294,7 @@ Vector<EditorPlugin *> EditorData::get_subeditors(Object *p_object) {
}
EditorPlugin *EditorData::get_editor(String p_name) {
- for (int i = 0; i < editor_plugins.size(); i++) {
+ for (int i = editor_plugins.size() - 1; i > -1; i--) {
if (editor_plugins[i]->get_name() == p_name) {
return editor_plugins[i];
}
@@ -934,7 +936,13 @@ void EditorData::script_class_save_icon_paths() {
}
}
- ProjectSettings::get_singleton()->set("_global_script_class_icons", d);
+ if (d.empty()) {
+ if (ProjectSettings::get_singleton()->has_setting("_global_script_class_icons")) {
+ ProjectSettings::get_singleton()->clear("_global_script_class_icons");
+ }
+ } else {
+ ProjectSettings::get_singleton()->set("_global_script_class_icons", d);
+ }
ProjectSettings::get_singleton()->save();
}
diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp
index 951bec2c83..0f86385031 100644
--- a/editor/editor_export.cpp
+++ b/editor/editor_export.cpp
@@ -32,6 +32,7 @@
#include "core/crypto/crypto_core.h"
#include "core/io/config_file.h"
+#include "core/io/file_access_encrypted.h"
#include "core/io/file_access_pack.h" // PACK_HEADER_MAGIC, PACK_FORMAT_VERSION
#include "core/io/resource_loader.h"
#include "core/io/resource_saver.h"
@@ -184,42 +185,49 @@ bool EditorExportPreset::has_export_file(const String &p_path) {
return selected_files.has(p_path);
}
-void EditorExportPreset::add_patch(const String &p_path, int p_at_pos) {
- if (p_at_pos < 0) {
- patches.push_back(p_path);
- } else {
- patches.insert(p_at_pos, p_path);
- }
+void EditorExportPreset::set_custom_features(const String &p_custom_features) {
+ custom_features = p_custom_features;
EditorExport::singleton->save_presets();
}
-void EditorExportPreset::remove_patch(int p_idx) {
- patches.remove(p_idx);
+String EditorExportPreset::get_custom_features() const {
+ return custom_features;
+}
+
+void EditorExportPreset::set_enc_in_filter(const String &p_filter) {
+ enc_in_filters = p_filter;
EditorExport::singleton->save_presets();
}
-void EditorExportPreset::set_patch(int p_index, const String &p_path) {
- ERR_FAIL_INDEX(p_index, patches.size());
- patches.write[p_index] = p_path;
+String EditorExportPreset::get_enc_in_filter() const {
+ return enc_in_filters;
+}
+
+void EditorExportPreset::set_enc_ex_filter(const String &p_filter) {
+ enc_ex_filters = p_filter;
EditorExport::singleton->save_presets();
}
-String EditorExportPreset::get_patch(int p_index) {
- ERR_FAIL_INDEX_V(p_index, patches.size(), String());
- return patches[p_index];
+String EditorExportPreset::get_enc_ex_filter() const {
+ return enc_ex_filters;
}
-Vector<String> EditorExportPreset::get_patches() const {
- return patches;
+void EditorExportPreset::set_enc_pck(bool p_enabled) {
+ enc_pck = p_enabled;
+ EditorExport::singleton->save_presets();
}
-void EditorExportPreset::set_custom_features(const String &p_custom_features) {
- custom_features = p_custom_features;
+bool EditorExportPreset::get_enc_pck() const {
+ return enc_pck;
+}
+
+void EditorExportPreset::set_enc_directory(bool p_enabled) {
+ enc_directory = p_enabled;
EditorExport::singleton->save_presets();
}
-String EditorExportPreset::get_custom_features() const {
- return custom_features;
+bool EditorExportPreset::get_enc_directory() const {
+ return enc_directory;
}
void EditorExportPreset::set_script_export_mode(int p_mode) {
@@ -292,20 +300,55 @@ void EditorExportPlatform::gen_debug_flags(Vector<String> &r_flags, int p_flags)
}
}
-Error EditorExportPlatform::_save_pack_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total) {
+Error EditorExportPlatform::_save_pack_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key) {
PackData *pd = (PackData *)p_userdata;
SavedData sd;
sd.path_utf8 = p_path.utf8();
sd.ofs = pd->f->get_position();
sd.size = p_data.size();
+ sd.encrypted = false;
+
+ for (int i = 0; i < p_enc_in_filters.size(); ++i) {
+ if (p_path.matchn(p_enc_in_filters[i]) || p_path.replace("res://", "").matchn(p_enc_in_filters[i])) {
+ sd.encrypted = true;
+ break;
+ }
+ }
- pd->f->store_buffer(p_data.ptr(), p_data.size());
- int pad = _get_pad(PCK_PADDING, sd.size);
+ for (int i = 0; i < p_enc_ex_filters.size(); ++i) {
+ if (p_path.matchn(p_enc_ex_filters[i]) || p_path.replace("res://", "").matchn(p_enc_ex_filters[i])) {
+ sd.encrypted = false;
+ break;
+ }
+ }
+
+ FileAccessEncrypted *fae = nullptr;
+ FileAccess *ftmp = pd->f;
+
+ if (sd.encrypted) {
+ fae = memnew(FileAccessEncrypted);
+ ERR_FAIL_COND_V(!fae, ERR_SKIP);
+
+ Error err = fae->open_and_parse(ftmp, p_key, FileAccessEncrypted::MODE_WRITE_AES256, false);
+ ERR_FAIL_COND_V(err != OK, ERR_SKIP);
+ ftmp = fae;
+ }
+
+ // Store file content.
+ ftmp->store_buffer(p_data.ptr(), p_data.size());
+
+ if (fae) {
+ fae->release();
+ memdelete(fae);
+ }
+
+ int pad = _get_pad(PCK_PADDING, pd->f->get_position());
for (int i = 0; i < pad; i++) {
- pd->f->store_8(0);
+ pd->f->store_8(Math::rand() % 256);
}
+ // Store MD5 of original file.
{
unsigned char hash[16];
CryptoCore::md5(p_data.ptr(), p_data.size(), hash);
@@ -324,7 +367,7 @@ Error EditorExportPlatform::_save_pack_file(void *p_userdata, const String &p_pa
return OK;
}
-Error EditorExportPlatform::_save_zip_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total) {
+Error EditorExportPlatform::_save_zip_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key) {
String path = p_path.replace_first("res://", "");
ZipData *zd = (ZipData *)p_userdata;
@@ -512,10 +555,18 @@ void EditorExportPlugin::add_ios_framework(const String &p_path) {
ios_frameworks.push_back(p_path);
}
+void EditorExportPlugin::add_ios_embedded_framework(const String &p_path) {
+ ios_embedded_frameworks.push_back(p_path);
+}
+
Vector<String> EditorExportPlugin::get_ios_frameworks() const {
return ios_frameworks;
}
+Vector<String> EditorExportPlugin::get_ios_embedded_frameworks() const {
+ return ios_embedded_frameworks;
+}
+
void EditorExportPlugin::add_ios_plist_content(const String &p_plist_content) {
ios_plist_content += p_plist_content + "\n";
}
@@ -592,6 +643,7 @@ void EditorExportPlugin::_bind_methods() {
ClassDB::bind_method(D_METHOD("add_ios_project_static_lib", "path"), &EditorExportPlugin::add_ios_project_static_lib);
ClassDB::bind_method(D_METHOD("add_file", "path", "file", "remap"), &EditorExportPlugin::add_file);
ClassDB::bind_method(D_METHOD("add_ios_framework", "path"), &EditorExportPlugin::add_ios_framework);
+ ClassDB::bind_method(D_METHOD("add_ios_embedded_framework", "path"), &EditorExportPlugin::add_ios_embedded_framework);
ClassDB::bind_method(D_METHOD("add_ios_plist_content", "plist_content"), &EditorExportPlugin::add_ios_plist_content);
ClassDB::bind_method(D_METHOD("add_ios_linker_flags", "flags"), &EditorExportPlugin::add_ios_linker_flags);
ClassDB::bind_method(D_METHOD("add_ios_bundle_file", "path"), &EditorExportPlugin::add_ios_bundle_file);
@@ -685,6 +737,61 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
_edit_filter_list(paths, p_preset->get_include_filter(), false);
_edit_filter_list(paths, p_preset->get_exclude_filter(), true);
+ // Get encryption filters.
+ bool enc_pck = p_preset->get_enc_pck();
+ Vector<String> enc_in_filters;
+ Vector<String> enc_ex_filters;
+ Vector<uint8_t> key;
+
+ if (enc_pck) {
+ Vector<String> enc_in_split = p_preset->get_enc_in_filter().split(",");
+ for (int i = 0; i < enc_in_split.size(); i++) {
+ String f = enc_in_split[i].strip_edges();
+ if (f.empty()) {
+ continue;
+ }
+ enc_in_filters.push_back(f);
+ }
+
+ Vector<String> enc_ex_split = p_preset->get_enc_ex_filter().split(",");
+ for (int i = 0; i < enc_ex_split.size(); i++) {
+ String f = enc_ex_split[i].strip_edges();
+ if (f.empty()) {
+ continue;
+ }
+ enc_ex_filters.push_back(f);
+ }
+
+ // Get encryption key.
+ String script_key = p_preset->get_script_encryption_key().to_lower();
+ key.resize(32);
+ if (script_key.length() == 64) {
+ for (int i = 0; i < 32; i++) {
+ int v = 0;
+ if (i * 2 < script_key.length()) {
+ char32_t ct = script_key[i * 2];
+ if (ct >= '0' && ct <= '9') {
+ ct = ct - '0';
+ } else if (ct >= 'a' && ct <= 'f') {
+ ct = 10 + ct - 'a';
+ }
+ v |= ct << 4;
+ }
+
+ if (i * 2 + 1 < script_key.length()) {
+ char32_t ct = script_key[i * 2 + 1];
+ if (ct >= '0' && ct <= '9') {
+ ct = ct - '0';
+ } else if (ct >= 'a' && ct <= 'f') {
+ ct = 10 + ct - 'a';
+ }
+ v |= ct;
+ }
+ key.write[i] = v;
+ }
+ }
+ }
+
Vector<Ref<EditorExportPlugin>> export_plugins = EditorExport::get_singleton()->get_export_plugins();
for (int i = 0; i < export_plugins.size(); i++) {
export_plugins.write[i]->set_export_preset(p_preset);
@@ -695,7 +802,7 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
}
}
for (int j = 0; j < export_plugins[i]->extra_files.size(); j++) {
- p_func(p_udata, export_plugins[i]->extra_files[j].path, export_plugins[i]->extra_files[j].data, 0, paths.size());
+ p_func(p_udata, export_plugins[i]->extra_files[j].path, export_plugins[i]->extra_files[j].data, 0, paths.size(), enc_in_filters, enc_ex_filters, key);
}
export_plugins.write[i]->_clear();
@@ -747,14 +854,14 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
if (remap == "path") {
String remapped_path = config->get_value("remap", remap);
Vector<uint8_t> array = FileAccess::get_file_as_array(remapped_path);
- err = p_func(p_udata, remapped_path, array, idx, total);
+ err = p_func(p_udata, remapped_path, array, idx, total, enc_in_filters, enc_ex_filters, key);
} else if (remap.begins_with("path.")) {
String feature = remap.get_slice(".", 1);
if (remap_features.has(feature)) {
String remapped_path = config->get_value("remap", remap);
Vector<uint8_t> array = FileAccess::get_file_as_array(remapped_path);
- err = p_func(p_udata, remapped_path, array, idx, total);
+ err = p_func(p_udata, remapped_path, array, idx, total, enc_in_filters, enc_ex_filters, key);
}
}
}
@@ -765,7 +872,7 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
//also save the .import file
Vector<uint8_t> array = FileAccess::get_file_as_array(path + ".import");
- err = p_func(p_udata, path + ".import", array, idx, total);
+ err = p_func(p_udata, path + ".import", array, idx, total, enc_in_filters, enc_ex_filters, key);
if (err != OK) {
return err;
@@ -786,7 +893,7 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
}
for (int j = 0; j < export_plugins[i]->extra_files.size(); j++) {
- p_func(p_udata, export_plugins[i]->extra_files[j].path, export_plugins[i]->extra_files[j].data, idx, total);
+ p_func(p_udata, export_plugins[i]->extra_files[j].path, export_plugins[i]->extra_files[j].data, idx, total, enc_in_filters, enc_ex_filters, key);
if (export_plugins[i]->extra_files[j].remap) {
do_export = false; //if remap, do not
path_remaps.push_back(path);
@@ -806,7 +913,7 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
//just store it as it comes
if (do_export) {
Vector<uint8_t> array = FileAccess::get_file_as_array(path);
- p_func(p_udata, path, array, idx, total);
+ p_func(p_udata, path, array, idx, total, enc_in_filters, enc_ex_filters, key);
}
}
@@ -842,7 +949,7 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
new_file.write[j] = utf8[j];
}
- p_func(p_udata, from + ".remap", new_file, idx, total);
+ p_func(p_udata, from + ".remap", new_file, idx, total, enc_in_filters, enc_ex_filters, key);
}
} else {
//old remap mode, will still work, but it's unused because it's not multiple pck export friendly
@@ -855,11 +962,11 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
String splash = ProjectSettings::get_singleton()->get("application/boot_splash/image");
if (icon != String() && FileAccess::exists(icon)) {
Vector<uint8_t> array = FileAccess::get_file_as_array(icon);
- p_func(p_udata, icon, array, idx, total);
+ p_func(p_udata, icon, array, idx, total, enc_in_filters, enc_ex_filters, key);
}
if (splash != String() && FileAccess::exists(splash) && icon != splash) {
Vector<uint8_t> array = FileAccess::get_file_as_array(splash);
- p_func(p_udata, splash, array, idx, total);
+ p_func(p_udata, splash, array, idx, total, enc_in_filters, enc_ex_filters, key);
}
String config_file = "project.binary";
@@ -868,7 +975,7 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
Vector<uint8_t> data = FileAccess::get_file_as_array(engine_cfb);
DirAccess::remove_file_or_error(engine_cfb);
- p_func(p_udata, "res://" + config_file, data, idx, total);
+ p_func(p_udata, "res://" + config_file, data, idx, total, enc_in_filters, enc_ex_filters, key);
return OK;
}
@@ -944,6 +1051,17 @@ Error EditorExportPlatform::save_pack(const Ref<EditorExportPreset> &p_preset, c
f->store_32(VERSION_MINOR);
f->store_32(VERSION_PATCH);
+ uint32_t pack_flags = 0;
+ bool enc_pck = p_preset->get_enc_pck();
+ bool enc_directory = p_preset->get_enc_directory();
+ if (enc_pck && enc_directory) {
+ pack_flags |= PACK_DIR_ENCRYPTED;
+ }
+ f->store_32(pack_flags); // flags
+
+ uint64_t file_base_ofs = f->get_position();
+ f->store_64(0); // files base
+
for (int i = 0; i < 16; i++) {
//reserved
f->store_32(0);
@@ -951,40 +1069,82 @@ Error EditorExportPlatform::save_pack(const Ref<EditorExportPreset> &p_preset, c
f->store_32(pd.file_ofs.size()); //amount of files
- int64_t header_size = f->get_position();
+ FileAccessEncrypted *fae = nullptr;
+ FileAccess *fhead = f;
+
+ if (enc_pck && enc_directory) {
+ String script_key = p_preset->get_script_encryption_key().to_lower();
+ Vector<uint8_t> key;
+ key.resize(32);
+ if (script_key.length() == 64) {
+ for (int i = 0; i < 32; i++) {
+ int v = 0;
+ if (i * 2 < script_key.length()) {
+ char32_t ct = script_key[i * 2];
+ if (ct >= '0' && ct <= '9') {
+ ct = ct - '0';
+ } else if (ct >= 'a' && ct <= 'f') {
+ ct = 10 + ct - 'a';
+ }
+ v |= ct << 4;
+ }
- //precalculate header size
+ if (i * 2 + 1 < script_key.length()) {
+ char32_t ct = script_key[i * 2 + 1];
+ if (ct >= '0' && ct <= '9') {
+ ct = ct - '0';
+ } else if (ct >= 'a' && ct <= 'f') {
+ ct = 10 + ct - 'a';
+ }
+ v |= ct;
+ }
+ key.write[i] = v;
+ }
+ }
+ fae = memnew(FileAccessEncrypted);
+ ERR_FAIL_COND_V(!fae, ERR_SKIP);
- for (int i = 0; i < pd.file_ofs.size(); i++) {
- header_size += 4; // size of path string (32 bits is enough)
- int string_len = pd.file_ofs[i].path_utf8.length();
- header_size += string_len + _get_pad(4, string_len); ///size of path string
- header_size += 8; // offset to file _with_ header size included
- header_size += 8; // size of file
- header_size += 16; // md5
- }
+ err = fae->open_and_parse(f, key, FileAccessEncrypted::MODE_WRITE_AES256, false);
+ ERR_FAIL_COND_V(err != OK, ERR_SKIP);
- int header_padding = _get_pad(PCK_PADDING, header_size);
+ fhead = fae;
+ }
for (int i = 0; i < pd.file_ofs.size(); i++) {
int string_len = pd.file_ofs[i].path_utf8.length();
int pad = _get_pad(4, string_len);
- f->store_32(string_len + pad);
- f->store_buffer((const uint8_t *)pd.file_ofs[i].path_utf8.get_data(), string_len);
+ fhead->store_32(string_len + pad);
+ fhead->store_buffer((const uint8_t *)pd.file_ofs[i].path_utf8.get_data(), string_len);
for (int j = 0; j < pad; j++) {
- f->store_8(0);
+ fhead->store_8(0);
}
- f->store_64(pd.file_ofs[i].ofs + header_padding + header_size);
- f->store_64(pd.file_ofs[i].size); // pay attention here, this is where file is
- f->store_buffer(pd.file_ofs[i].md5.ptr(), 16); //also save md5 for file
+ fhead->store_64(pd.file_ofs[i].ofs);
+ fhead->store_64(pd.file_ofs[i].size); // pay attention here, this is where file is
+ fhead->store_buffer(pd.file_ofs[i].md5.ptr(), 16); //also save md5 for file
+ uint32_t flags = 0;
+ if (pd.file_ofs[i].encrypted) {
+ flags |= PACK_FILE_ENCRYPTED;
+ }
+ fhead->store_32(flags);
}
+ if (fae) {
+ fae->release();
+ memdelete(fae);
+ }
+
+ int header_padding = _get_pad(PCK_PADDING, f->get_position());
for (int i = 0; i < header_padding; i++) {
- f->store_8(0);
+ f->store_8(Math::rand() % 256);
}
+ uint64_t file_base = f->get_position();
+ f->seek(file_base_ofs);
+ f->store_64(file_base); // update files base
+ f->seek(file_base);
+
// Save the rest of the data.
ftmp = FileAccess::open(tmppath, FileAccess::READ);
@@ -1152,7 +1312,10 @@ void EditorExport::_save() {
config->set_value(section, "include_filter", preset->get_include_filter());
config->set_value(section, "exclude_filter", preset->get_exclude_filter());
config->set_value(section, "export_path", preset->get_export_path());
- config->set_value(section, "patch_list", preset->get_patches());
+ config->set_value(section, "encryption_include_filters", preset->get_enc_in_filter());
+ config->set_value(section, "encryption_exclude_filters", preset->get_enc_ex_filter());
+ config->set_value(section, "encrypt_pck", preset->get_enc_pck());
+ config->set_value(section, "encrypt_directory", preset->get_enc_directory());
config->set_value(section, "script_export_mode", preset->get_script_export_mode());
config->set_value(section, "script_encryption_key", preset->get_script_encryption_key());
@@ -1213,6 +1376,20 @@ String EditorExportPlatform::test_etc2() const {
return String();
}
+String EditorExportPlatform::test_etc2_or_pvrtc() const {
+ String driver = ProjectSettings::get_singleton()->get("rendering/quality/driver/driver_name");
+ bool etc2_supported = ProjectSettings::get_singleton()->get("rendering/vram_compression/import_etc2");
+ bool pvrtc_supported = ProjectSettings::get_singleton()->get("rendering/vram_compression/import_pvrtc");
+
+ if (driver == "GLES2" && !pvrtc_supported) {
+ return TTR("Target platform requires 'PVRTC' texture compression for GLES2. Enable 'Import Pvrtc' in Project Settings.");
+ } else if (driver == "Vulkan" && !etc2_supported && !pvrtc_supported) {
+ // FIXME: Review if this is true for Vulkan.
+ return TTR("Target platform requires 'ETC2' or 'PVRTC' texture compression for Vulkan. Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings.");
+ }
+ return String();
+}
+
int EditorExport::get_export_preset_count() const {
return export_presets.size();
}
@@ -1322,12 +1499,18 @@ void EditorExport::load_config() {
preset->set_exclude_filter(config->get_value(section, "exclude_filter"));
preset->set_export_path(config->get_value(section, "export_path", ""));
- Vector<String> patch_list = config->get_value(section, "patch_list");
-
- for (int i = 0; i < patch_list.size(); i++) {
- preset->add_patch(patch_list[i]);
+ if (config->has_section_key(section, "encrypt_pck")) {
+ preset->set_enc_pck(config->get_value(section, "encrypt_pck"));
+ }
+ if (config->has_section_key(section, "encrypt_directory")) {
+ preset->set_enc_directory(config->get_value(section, "encrypt_directory"));
+ }
+ if (config->has_section_key(section, "encryption_include_filters")) {
+ preset->set_enc_in_filter(config->get_value(section, "encryption_include_filters"));
+ }
+ if (config->has_section_key(section, "encryption_exclude_filters")) {
+ preset->set_enc_ex_filter(config->get_value(section, "encryption_exclude_filters"));
}
-
if (config->has_section_key(section, "script_export_mode")) {
preset->set_script_export_mode(config->get_value(section, "script_export_mode"));
}
diff --git a/editor/editor_export.h b/editor/editor_export.h
index e31b53ad67..55728f0c94 100644
--- a/editor/editor_export.h
+++ b/editor/editor_export.h
@@ -55,7 +55,6 @@ public:
enum ScriptExportMode {
MODE_SCRIPT_TEXT,
MODE_SCRIPT_COMPILED,
- MODE_SCRIPT_ENCRYPTED,
};
private:
@@ -69,8 +68,6 @@ private:
Set<String> selected_files;
bool runnable = false;
- Vector<String> patches;
-
friend class EditorExport;
friend class EditorExportPlatform;
@@ -81,6 +78,11 @@ private:
String custom_features;
+ String enc_in_filters;
+ String enc_ex_filters;
+ bool enc_pck = false;
+ bool enc_directory = false;
+
int script_mode = MODE_SCRIPT_COMPILED;
String script_key;
@@ -117,18 +119,24 @@ public:
void set_exclude_filter(const String &p_exclude);
String get_exclude_filter() const;
- void add_patch(const String &p_path, int p_at_pos = -1);
- void set_patch(int p_index, const String &p_path);
- String get_patch(int p_index);
- void remove_patch(int p_idx);
- Vector<String> get_patches() const;
-
void set_custom_features(const String &p_custom_features);
String get_custom_features() const;
void set_export_path(const String &p_path);
String get_export_path() const;
+ void set_enc_in_filter(const String &p_filter);
+ String get_enc_in_filter() const;
+
+ void set_enc_ex_filter(const String &p_filter);
+ String get_enc_ex_filter() const;
+
+ void set_enc_pck(bool p_enabled);
+ bool get_enc_pck() const;
+
+ void set_enc_directory(bool p_enabled);
+ bool get_enc_directory() const;
+
void set_script_export_mode(int p_mode);
int get_script_export_mode() const;
@@ -156,13 +164,14 @@ class EditorExportPlatform : public Reference {
GDCLASS(EditorExportPlatform, Reference);
public:
- typedef Error (*EditorExportSaveFunction)(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total);
+ typedef Error (*EditorExportSaveFunction)(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key);
typedef Error (*EditorExportSaveSharedObject)(void *p_userdata, const SharedObject &p_so);
private:
struct SavedData {
uint64_t ofs;
uint64_t size;
+ bool encrypted;
Vector<uint8_t> md5;
CharString path_utf8;
@@ -192,8 +201,8 @@ private:
void _export_find_dependencies(const String &p_path, Set<String> &p_paths);
void gen_debug_flags(Vector<String> &r_flags, int p_flags);
- static Error _save_pack_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total);
- static Error _save_zip_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total);
+ static Error _save_pack_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key);
+ static Error _save_zip_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key);
void _edit_files_with_filter(DirAccess *da, const Vector<String> &p_filters, Set<String> &r_list, bool exclude);
void _edit_filter_list(Set<String> &r_list, const String &p_filter, bool exclude);
@@ -260,6 +269,7 @@ public:
virtual Ref<Texture2D> get_run_icon() const { return get_logo(); }
String test_etc2() const; //generic test for etc2 since most platforms use it
+ String test_etc2_or_pvrtc() const; // test for etc2 or pvrtc support for iOS
virtual bool can_export(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const = 0;
virtual List<String> get_binary_extensions(const Ref<EditorExportPreset> &p_preset) const = 0;
@@ -290,6 +300,7 @@ class EditorExportPlugin : public Reference {
bool skipped;
Vector<String> ios_frameworks;
+ Vector<String> ios_embedded_frameworks;
Vector<String> ios_project_static_libs;
String ios_plist_content;
String ios_linker_flags;
@@ -304,6 +315,7 @@ class EditorExportPlugin : public Reference {
_FORCE_INLINE_ void _export_end() {
ios_frameworks.clear();
+ ios_embedded_frameworks.clear();
ios_bundle_files.clear();
ios_plist_content = "";
ios_linker_flags = "";
@@ -322,6 +334,7 @@ protected:
void add_shared_object(const String &p_path, const Vector<String> &tags);
void add_ios_framework(const String &p_path);
+ void add_ios_embedded_framework(const String &p_path);
void add_ios_project_static_lib(const String &p_path);
void add_ios_plist_content(const String &p_plist_content);
void add_ios_linker_flags(const String &p_flags);
@@ -337,6 +350,7 @@ protected:
public:
Vector<String> get_ios_frameworks() const;
+ Vector<String> get_ios_embedded_frameworks() const;
Vector<String> get_ios_project_static_libs() const;
String get_ios_plist_content() const;
String get_ios_linker_flags() const;
diff --git a/editor/editor_feature_profile.cpp b/editor/editor_feature_profile.cpp
index f68cc3b323..7335563dd9 100644
--- a/editor/editor_feature_profile.cpp
+++ b/editor/editor_feature_profile.cpp
@@ -41,9 +41,9 @@ const char *EditorFeatureProfile::feature_names[FEATURE_MAX] = {
TTRC("Script Editor"),
TTRC("Asset Library"),
TTRC("Scene Tree Editing"),
- TTRC("Import Dock"),
TTRC("Node Dock"),
- TTRC("FileSystem and Import Docks")
+ TTRC("FileSystem Dock"),
+ TTRC("Import Dock"),
};
const char *EditorFeatureProfile::feature_identifiers[FEATURE_MAX] = {
@@ -51,9 +51,9 @@ const char *EditorFeatureProfile::feature_identifiers[FEATURE_MAX] = {
"script",
"asset_lib",
"scene_tree",
- "import_dock",
"node_dock",
- "filesystem_dock"
+ "filesystem_dock",
+ "import_dock",
};
void EditorFeatureProfile::set_disable_class(const StringName &p_class, bool p_disabled) {
@@ -271,9 +271,9 @@ void EditorFeatureProfile::_bind_methods() {
BIND_ENUM_CONSTANT(FEATURE_SCRIPT);
BIND_ENUM_CONSTANT(FEATURE_ASSET_LIB);
BIND_ENUM_CONSTANT(FEATURE_SCENE_TREE);
- BIND_ENUM_CONSTANT(FEATURE_IMPORT_DOCK);
BIND_ENUM_CONSTANT(FEATURE_NODE_DOCK);
BIND_ENUM_CONSTANT(FEATURE_FILESYSTEM_DOCK);
+ BIND_ENUM_CONSTANT(FEATURE_IMPORT_DOCK);
BIND_ENUM_CONSTANT(FEATURE_MAX);
}
@@ -678,9 +678,16 @@ void EditorFeatureProfileManager::_update_selected_profile() {
TreeItem *root = class_list->create_item();
TreeItem *features = class_list->create_item(root);
+ TreeItem *last_feature;
features->set_text(0, TTR("Enabled Features:"));
for (int i = 0; i < EditorFeatureProfile::FEATURE_MAX; i++) {
- TreeItem *feature = class_list->create_item(features);
+ TreeItem *feature;
+ if (i == EditorFeatureProfile::FEATURE_IMPORT_DOCK) {
+ feature = class_list->create_item(last_feature);
+ } else {
+ feature = class_list->create_item(features);
+ last_feature = feature;
+ }
feature->set_cell_mode(0, TreeItem::CELL_MODE_CHECK);
feature->set_text(0, TTRGET(EditorFeatureProfile::get_feature_name(EditorFeatureProfile::Feature(i))));
feature->set_selectable(0, true);
diff --git a/editor/editor_feature_profile.h b/editor/editor_feature_profile.h
index 38413e35a2..d0d08c61f4 100644
--- a/editor/editor_feature_profile.h
+++ b/editor/editor_feature_profile.h
@@ -49,9 +49,9 @@ public:
FEATURE_SCRIPT,
FEATURE_ASSET_LIB,
FEATURE_SCENE_TREE,
- FEATURE_IMPORT_DOCK,
FEATURE_NODE_DOCK,
FEATURE_FILESYSTEM_DOCK,
+ FEATURE_IMPORT_DOCK,
FEATURE_MAX
};
diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp
index 85151c6d0a..2140b6bd13 100644
--- a/editor/editor_file_dialog.cpp
+++ b/editor/editor_file_dialog.cpp
@@ -60,7 +60,7 @@ VBoxContainer *EditorFileDialog::get_vbox() {
void EditorFileDialog::_notification(int p_what) {
if (p_what == NOTIFICATION_READY || p_what == NOTIFICATION_THEME_CHANGED) {
- // update icons
+ // Update icons.
mode_thumbnails->set_icon(item_list->get_theme_icon("FileThumbnail", "EditorIcons"));
mode_list->set_icon(item_list->get_theme_icon("FileList", "EditorIcons"));
dir_prev->set_icon(item_list->get_theme_icon("Back", "EditorIcons"));
@@ -94,7 +94,7 @@ void EditorFileDialog::_notification(int p_what) {
}
set_display_mode((DisplayMode)EditorSettings::get_singleton()->get("filesystem/file_dialog/display_mode").operator int());
- // update icons
+ // Update icons.
mode_thumbnails->set_icon(item_list->get_theme_icon("FileThumbnail", "EditorIcons"));
mode_list->set_icon(item_list->get_theme_icon("FileList", "EditorIcons"));
dir_prev->set_icon(item_list->get_theme_icon("Back", "EditorIcons"));
@@ -138,9 +138,7 @@ void EditorFileDialog::_unhandled_input(const Ref<InputEvent> &p_event) {
handled = true;
}
if (ED_IS_SHORTCUT("file_dialog/toggle_hidden_files", p_event)) {
- bool show = !show_hidden_files;
- set_show_hidden_files(show);
- EditorSettings::get_singleton()->set("filesystem/file_dialog/show_hidden_files", show);
+ set_show_hidden_files(!show_hidden_files);
handled = true;
}
if (ED_IS_SHORTCUT("file_dialog/toggle_favorite", p_event)) {
@@ -440,7 +438,7 @@ void EditorFileDialog::_action_pressed() {
}
if (dir_access->file_exists(f) && !disable_overwrite_warning) {
- confirm_save->set_text(TTR("File Exists, Overwrite?"));
+ confirm_save->set_text(TTR("File exists, overwrite?"));
confirm_save->popup_centered(Size2(200, 80));
} else {
_save_to_recent();
@@ -559,7 +557,7 @@ void EditorFileDialog::_item_list_item_rmb_selected(int p_item, const Vector2 &p
continue;
}
Dictionary item_meta = item_list->get_item_metadata(i);
- if (item_meta["path"] == "res://.import") {
+ if (String(item_meta["path"]).begins_with("res://.godot")) {
allow_delete = false;
break;
}
@@ -1385,6 +1383,11 @@ void EditorFileDialog::_bind_methods() {
}
void EditorFileDialog::set_show_hidden_files(bool p_show) {
+ if (p_show == show_hidden_files) {
+ return;
+ }
+
+ EditorSettings::get_singleton()->set("filesystem/file_dialog/show_hidden_files", p_show);
show_hidden_files = p_show;
show_hidden->set_pressed(p_show);
invalidate();
@@ -1646,7 +1649,7 @@ EditorFileDialog::EditorFileDialog() {
filter->connect("item_selected", callable_mp(this, &EditorFileDialog::_filter_selected));
confirm_save = memnew(ConfirmationDialog);
- //confirm_save->set_as_toplevel(true);
+ //confirm_save->set_as_top_level(true);
add_child(confirm_save);
confirm_save->connect("confirmed", callable_mp(this, &EditorFileDialog::_save_confirm_pressed));
diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp
index a5edcf5c22..5607bb3f17 100644
--- a/editor/editor_file_system.cpp
+++ b/editor/editor_file_system.cpp
@@ -1865,13 +1865,14 @@ void EditorFileSystem::_find_group_files(EditorFileSystemDirectory *efd, Map<Str
}
void EditorFileSystem::reimport_files(const Vector<String> &p_files) {
- { //check that .import folder exists
+ {
+ // Ensure that ProjectSettings::IMPORTED_FILES_PATH exists.
DirAccess *da = DirAccess::open("res://");
- if (da->change_dir(".import") != OK) {
- Error err = da->make_dir(".import");
- if (err) {
+ if (da->change_dir(ProjectSettings::IMPORTED_FILES_PATH) != OK) {
+ Error err = da->make_dir_recursive(ProjectSettings::IMPORTED_FILES_PATH);
+ if (err || da->change_dir(ProjectSettings::IMPORTED_FILES_PATH) != OK) {
memdelete(da);
- ERR_FAIL_MSG("Failed to create 'res://.import' folder.");
+ ERR_FAIL_MSG("Failed to create '" + ProjectSettings::IMPORTED_FILES_PATH + "' folder.");
}
}
memdelete(da);
@@ -2055,8 +2056,8 @@ EditorFileSystem::EditorFileSystem() {
scanning_changes_done = false;
DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
- if (da->change_dir("res://.import") != OK) {
- da->make_dir("res://.import");
+ if (da->change_dir(ProjectSettings::IMPORTED_FILES_PATH) != OK) {
+ da->make_dir(ProjectSettings::IMPORTED_FILES_PATH);
}
// This should probably also work on Unix and use the string it returns for FAT32 or exFAT
using_fat32_or_exfat = (da->get_filesystem_type() == "FAT32" || da->get_filesystem_type() == "exFAT");
diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp
index 2a59aadd61..30aebd2b1f 100644
--- a/editor/editor_help.cpp
+++ b/editor/editor_help.cpp
@@ -244,7 +244,7 @@ void EditorHelp::_add_method(const DocData::MethodDoc &p_method, bool p_overview
class_desc->push_cell();
class_desc->push_align(RichTextLabel::ALIGN_RIGHT);
} else {
- static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
+ static const char32_t prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
class_desc->add_text(String(prefix));
}
@@ -761,7 +761,7 @@ void EditorHelp::_update_doc() {
signal_line[cd.signals[i].name] = class_desc->get_line_count() - 2; //gets overridden if description
class_desc->push_font(doc_code_font); // monofont
class_desc->push_color(headline_color);
- static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
+ static const char32_t prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
class_desc->add_text(String(prefix));
_add_text(cd.signals[i].name);
class_desc->pop();
@@ -876,7 +876,7 @@ void EditorHelp::_update_doc() {
class_desc->push_font(doc_code_font);
class_desc->push_color(headline_color);
- static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
+ static const char32_t prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
class_desc->add_text(String(prefix));
_add_text(enum_list[i].name);
class_desc->pop();
@@ -890,7 +890,7 @@ void EditorHelp::_update_doc() {
if (enum_list[i].description != "") {
class_desc->push_font(doc_font);
class_desc->push_color(comment_color);
- static const CharType dash[6] = { ' ', ' ', 0x2013 /* en dash */, ' ', ' ', 0 };
+ static const char32_t dash[6] = { ' ', ' ', 0x2013 /* en dash */, ' ', ' ', 0 };
class_desc->add_text(String(dash));
_add_text(DTR(enum_list[i].description));
class_desc->pop();
@@ -937,12 +937,12 @@ void EditorHelp::_update_doc() {
Vector<float> color = stripped.split_floats(",");
if (color.size() >= 3) {
class_desc->push_color(Color(color[0], color[1], color[2]));
- static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
+ static const char32_t prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
class_desc->add_text(String(prefix));
class_desc->pop();
}
} else {
- static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
+ static const char32_t prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
class_desc->add_text(String(prefix));
}
@@ -960,7 +960,7 @@ void EditorHelp::_update_doc() {
if (constants[i].description != "") {
class_desc->push_font(doc_font);
class_desc->push_color(comment_color);
- static const CharType dash[6] = { ' ', ' ', 0x2013 /* en dash */, ' ', ' ', 0 };
+ static const char32_t dash[6] = { ' ', ' ', 0x2013 /* en dash */, ' ', ' ', 0 };
class_desc->add_text(String(dash));
_add_text(DTR(constants[i].description));
class_desc->pop();
@@ -1002,7 +1002,7 @@ void EditorHelp::_update_doc() {
class_desc->push_cell();
class_desc->push_font(doc_code_font);
- static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
+ static const char32_t prefix[3] = { 0x25CF /* filled circle */, ' ', 0 };
class_desc->add_text(String(prefix));
_add_type(cd.properties[i].type, cd.properties[i].enumeration);
@@ -1252,6 +1252,55 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) {
String bbcode = p_bbcode.dedent().replace("\t", "").replace("\r", "").strip_edges();
+ // Select the correct code examples
+ switch ((int)EDITOR_GET("text_editor/help/class_reference_examples")) {
+ case 0: // GDScript
+ bbcode = bbcode.replace("[gdscript]", "[codeblock]");
+ bbcode = bbcode.replace("[/gdscript]", "[/codeblock]");
+
+ for (int pos = bbcode.find("[csharp]"); pos != -1; pos = bbcode.find("[csharp]")) {
+ if (bbcode.find("[/csharp]") == -1) {
+ WARN_PRINT("Unclosed [csharp] block or parse fail in code (search for tag errors)");
+ break;
+ }
+
+ bbcode.erase(pos, bbcode.find("[/csharp]") + 9 - pos);
+ while (bbcode[pos] == '\n') {
+ bbcode.erase(pos, 1);
+ }
+ }
+ break;
+ case 1: // C#
+ bbcode = bbcode.replace("[csharp]", "[codeblock]");
+ bbcode = bbcode.replace("[/csharp]", "[/codeblock]");
+
+ for (int pos = bbcode.find("[gdscript]"); pos != -1; pos = bbcode.find("[gdscript]")) {
+ if (bbcode.find("[/gdscript]") == -1) {
+ WARN_PRINT("Unclosed [gdscript] block or parse fail in code (search for tag errors)");
+ break;
+ }
+
+ bbcode.erase(pos, bbcode.find("[/gdscript]") + 11 - pos);
+ while (bbcode[pos] == '\n') {
+ bbcode.erase(pos, 1);
+ }
+ }
+ break;
+ case 2: // GDScript and C#
+ bbcode = bbcode.replace("[csharp]", "[b]C#:[/b]\n[codeblock]");
+ bbcode = bbcode.replace("[gdscript]", "[b]GDScript:[/b]\n[codeblock]");
+
+ bbcode = bbcode.replace("[/csharp]", "[/codeblock]");
+ bbcode = bbcode.replace("[/gdscript]", "[/codeblock]");
+ break;
+ }
+
+ // Remove codeblocks (they would be printed otherwise)
+ bbcode = bbcode.replace("[codeblocks]\n", "");
+ bbcode = bbcode.replace("\n[/codeblocks]", "");
+ bbcode = bbcode.replace("[codeblocks]", "");
+ bbcode = bbcode.replace("[/codeblocks]", "");
+
// remove extra new lines around code blocks
bbcode = bbcode.replace("[codeblock]\n", "[codeblock]");
bbcode = bbcode.replace("\n[/codeblock]", "[/codeblock]");
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp
index cf32ffb4e0..9900e8184d 100644
--- a/editor/editor_inspector.cpp
+++ b/editor/editor_inspector.cpp
@@ -48,7 +48,7 @@ Size2 EditorProperty::get_minimum_size() const {
if (!c) {
continue;
}
- if (c->is_set_as_toplevel()) {
+ if (c->is_set_as_top_level()) {
continue;
}
if (!c->is_visible()) {
@@ -117,7 +117,7 @@ void EditorProperty::_notification(int p_what) {
if (!c) {
continue;
}
- if (c->is_set_as_toplevel()) {
+ if (c->is_set_as_top_level()) {
continue;
}
if (c == bottom_editor) {
@@ -179,7 +179,7 @@ void EditorProperty::_notification(int p_what) {
if (!c) {
continue;
}
- if (c->is_set_as_toplevel()) {
+ if (c->is_set_as_top_level()) {
continue;
}
if (c == bottom_editor) {
@@ -1133,7 +1133,7 @@ void EditorInspectorSection::_notification(int p_what) {
if (!c) {
continue;
}
- if (c->is_set_as_toplevel()) {
+ if (c->is_set_as_top_level()) {
continue;
}
if (!c->is_visible_in_tree()) {
@@ -1174,6 +1174,47 @@ void EditorInspectorSection::_notification(int p_what) {
if (arrow.is_valid()) {
draw_texture(arrow, Point2(Math::round(arrow_margin * EDSCALE), (h - arrow->get_height()) / 2).floor());
}
+
+ if (dropping && !vbox->is_visible_in_tree()) {
+ Color accent_color = get_theme_color("accent_color", "Editor");
+ draw_rect(Rect2(Point2(), get_size()), accent_color, false);
+ }
+ }
+
+ if (p_what == NOTIFICATION_DRAG_BEGIN) {
+ Dictionary dd = get_viewport()->gui_get_drag_data();
+
+ // Only allow dropping if the section contains properties which can take the dragged data.
+ bool children_can_drop = false;
+ for (int child_idx = 0; child_idx < vbox->get_child_count(); child_idx++) {
+ Control *editor_property = Object::cast_to<Control>(vbox->get_child(child_idx));
+
+ // Test can_drop_data and can_drop_data_fw, since can_drop_data only works if set up with forwarding or if script attached.
+ if (editor_property && (editor_property->can_drop_data(Point2(), dd) || editor_property->call("can_drop_data_fw", Point2(), dd, this))) {
+ children_can_drop = true;
+ break;
+ }
+ }
+
+ dropping = children_can_drop;
+ update();
+ }
+
+ if (p_what == NOTIFICATION_DRAG_END) {
+ dropping = false;
+ update();
+ }
+
+ if (p_what == NOTIFICATION_MOUSE_ENTER) {
+ if (dropping) {
+ dropping_unfold_timer->start();
+ }
+ }
+
+ if (p_what == NOTIFICATION_MOUSE_EXIT) {
+ if (dropping) {
+ dropping_unfold_timer->stop();
+ }
}
}
@@ -1184,7 +1225,7 @@ Size2 EditorInspectorSection::get_minimum_size() const {
if (!c) {
continue;
}
- if (c->is_set_as_toplevel()) {
+ if (c->is_set_as_top_level()) {
continue;
}
if (!c->is_visible()) {
@@ -1236,14 +1277,11 @@ void EditorInspectorSection::_gui_input(const Ref<InputEvent> &p_event) {
return;
}
- _test_unfold();
-
- bool unfold = !object->editor_is_section_unfolded(section);
- object->editor_set_section_unfold(section, unfold);
- if (unfold) {
- vbox->show();
+ bool should_unfold = !object->editor_is_section_unfolded(section);
+ if (should_unfold) {
+ unfold();
} else {
- vbox->hide();
+ fold();
}
}
}
@@ -1291,6 +1329,13 @@ EditorInspectorSection::EditorInspectorSection() {
foldable = false;
vbox = memnew(VBoxContainer);
vbox_added = false;
+
+ dropping = false;
+ dropping_unfold_timer = memnew(Timer);
+ dropping_unfold_timer->set_wait_time(0.6);
+ dropping_unfold_timer->set_one_shot(true);
+ add_child(dropping_unfold_timer);
+ dropping_unfold_timer->connect("timeout", callable_mp(this, &EditorInspectorSection::unfold));
}
EditorInspectorSection::~EditorInspectorSection() {
diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h
index 95072fd703..36b80a7dd4 100644
--- a/editor/editor_inspector.h
+++ b/editor/editor_inspector.h
@@ -231,6 +231,9 @@ class EditorInspectorSection : public Container {
Color bg_color;
bool foldable;
+ Timer *dropping_unfold_timer;
+ bool dropping;
+
void _test_unfold();
protected:
diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp
index 9595eb8a72..6fbafc7ff3 100644
--- a/editor/editor_log.cpp
+++ b/editor/editor_log.cpp
@@ -79,7 +79,15 @@ void EditorLog::_clear_request() {
}
void EditorLog::_copy_request() {
- log->selection_copy();
+ String text = log->get_selected_text();
+
+ if (text == "") {
+ text = log->get_text();
+ }
+
+ if (text != "") {
+ DisplayServer::get_singleton()->clipboard_set(text);
+ }
}
void EditorLog::clear() {
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 263ed9040a..e18e980fe2 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -123,10 +123,12 @@
#include "editor/plugins/cpu_particles_3d_editor_plugin.h"
#include "editor/plugins/curve_editor_plugin.h"
#include "editor/plugins/debugger_editor_plugin.h"
+#include "editor/plugins/editor_debugger_plugin.h"
#include "editor/plugins/editor_preview_plugins.h"
#include "editor/plugins/gi_probe_editor_plugin.h"
#include "editor/plugins/gpu_particles_2d_editor_plugin.h"
#include "editor/plugins/gpu_particles_3d_editor_plugin.h"
+#include "editor/plugins/gpu_particles_collision_sdf_editor_plugin.h"
#include "editor/plugins/gradient_editor_plugin.h"
#include "editor/plugins/item_list_editor_plugin.h"
#include "editor/plugins/light_occluder_2d_editor_plugin.h"
@@ -156,6 +158,7 @@
#include "editor/plugins/sprite_frames_editor_plugin.h"
#include "editor/plugins/style_box_editor_plugin.h"
#include "editor/plugins/text_editor.h"
+#include "editor/plugins/texture_3d_editor_plugin.h"
#include "editor/plugins/texture_editor_plugin.h"
#include "editor/plugins/texture_layered_editor_plugin.h"
#include "editor/plugins/texture_region_editor_plugin.h"
@@ -456,8 +459,6 @@ void EditorNode::_notification(int p_what) {
editor_selection->update();
- //scene_root->set_size_override(true, Size2(ProjectSettings::get_singleton()->get("display/window/size/width"), ProjectSettings::get_singleton()->get("display/window/size/height")));
-
{ //TODO should only happen on settings changed
int current_filter = GLOBAL_GET("rendering/canvas_textures/default_texture_filter");
if (current_filter != scene_root->get_default_canvas_item_texture_filter()) {
@@ -479,6 +480,8 @@ void EditorNode::_notification(int p_what) {
RS::get_singleton()->screen_space_roughness_limiter_set_active(GLOBAL_GET("rendering/quality/screen_filters/screen_space_roughness_limiter_enabled"), GLOBAL_GET("rendering/quality/screen_filters/screen_space_roughness_limiter_amount"), GLOBAL_GET("rendering/quality/screen_filters/screen_space_roughness_limiter_limit"));
bool glow_bicubic = int(GLOBAL_GET("rendering/quality/glow/upscale_mode")) > 0;
RS::get_singleton()->environment_glow_set_use_bicubic_upscale(glow_bicubic);
+ bool glow_high_quality = GLOBAL_GET("rendering/quality/glow/use_high_quality");
+ RS::get_singleton()->environment_glow_set_use_high_quality(glow_high_quality);
RS::EnvironmentSSRRoughnessQuality ssr_roughness_quality = RS::EnvironmentSSRRoughnessQuality(int(GLOBAL_GET("rendering/quality/screen_space_reflection/roughness_quality")));
RS::get_singleton()->environment_set_ssr_roughness_quality(ssr_roughness_quality);
RS::SubSurfaceScatteringQuality sss_quality = RS::SubSurfaceScatteringQuality(int(GLOBAL_GET("rendering/quality/subsurface_scattering/subsurface_scattering_quality")));
@@ -498,6 +501,10 @@ void EditorNode::_notification(int p_what) {
RS::get_singleton()->environment_set_sdfgi_ray_count(ray_count);
RS::GIProbeQuality gi_probe_quality = RS::GIProbeQuality(int(GLOBAL_GET("rendering/quality/gi_probes/quality")));
RS::get_singleton()->gi_probe_set_quality(gi_probe_quality);
+ RS::get_singleton()->environment_set_volumetric_fog_volume_size(GLOBAL_GET("rendering/volumetric_fog/volume_size"), GLOBAL_GET("rendering/volumetric_fog/volume_depth"));
+ RS::get_singleton()->environment_set_volumetric_fog_filter_active(bool(GLOBAL_GET("rendering/volumetric_fog/use_filter")));
+ RS::get_singleton()->environment_set_volumetric_fog_directional_shadow_shrink_size(GLOBAL_GET("rendering/volumetric_fog/directional_shadow_shrink"));
+ RS::get_singleton()->environment_set_volumetric_fog_positional_shadow_shrink_size(GLOBAL_GET("rendering/volumetric_fog/positional_shadow_shrink"));
}
ResourceImporterTexture::get_singleton()->update_imports();
@@ -1236,7 +1243,10 @@ void EditorNode::_save_scene_with_preview(String p_file, int p_idx) {
img.instance();
img->create(1, 1, 0, Image::FORMAT_RGB8);
} else if (c3d < c2d) {
- img = scene_root->get_texture()->get_data();
+ Ref<ViewportTexture> viewport_texture = scene_root->get_texture();
+ if (viewport_texture->get_width() > 0 && viewport_texture->get_height() > 0) {
+ img = viewport_texture->get_data();
+ }
} else {
// The 3D editor may be disabled as a feature, but scenes can still be opened.
// This check prevents the preview from regenerating in case those scenes are then saved.
@@ -1246,7 +1256,7 @@ void EditorNode::_save_scene_with_preview(String p_file, int p_idx) {
}
}
- if (img.is_valid()) {
+ if (img.is_valid() && img->get_width() > 0 && img->get_height() > 0) {
img = img->duplicate();
save.step(TTR("Creating Thumbnail"), 2);
@@ -2536,6 +2546,8 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
}
} break;
case RUN_PROJECT_DATA_FOLDER: {
+ // ensure_user_data_dir() to prevent the edge case: "Open Project Data Folder" won't work after the project was renamed in ProjectSettingsEditor unless the project is saved
+ OS::get_singleton()->ensure_user_data_dir();
OS::get_singleton()->shell_open(String("file://") + OS::get_singleton()->get_user_data_dir());
} break;
case FILE_EXPLORE_ANDROID_BUILD_TEMPLATES: {
@@ -2810,9 +2822,9 @@ void EditorNode::_discard_changes(const String &p_str) {
}
void EditorNode::_update_file_menu_opened() {
- Ref<ShortCut> close_scene_sc = ED_GET_SHORTCUT("editor/close_scene");
+ Ref<Shortcut> close_scene_sc = ED_GET_SHORTCUT("editor/close_scene");
close_scene_sc->set_name(TTR("Close Scene"));
- Ref<ShortCut> reopen_closed_scene_sc = ED_GET_SHORTCUT("editor/reopen_closed_scene");
+ Ref<Shortcut> reopen_closed_scene_sc = ED_GET_SHORTCUT("editor/reopen_closed_scene");
reopen_closed_scene_sc->set_name(TTR("Reopen Closed Scene"));
PopupMenu *pop = file_menu->get_popup();
pop->set_item_disabled(pop->get_item_index(FILE_OPEN_PREV), previous_scenes.empty());
@@ -3616,6 +3628,7 @@ void EditorNode::register_editor_types() {
// FIXME: Is this stuff obsolete, or should it be ported to new APIs?
ClassDB::register_class<EditorScenePostImport>();
//ClassDB::register_type<EditorImportExport>();
+ ClassDB::register_class<EditorDebuggerPlugin>();
}
void EditorNode::unregister_editor_types() {
@@ -4212,6 +4225,7 @@ void EditorNode::_save_docks_to_config(Ref<ConfigFile> p_layout, const String &p
p_layout->set_value(p_section, "dock_filesystem_split", filesystem_dock->get_split_offset());
p_layout->set_value(p_section, "dock_filesystem_display_mode", filesystem_dock->get_display_mode());
+ p_layout->set_value(p_section, "dock_filesystem_file_sort", filesystem_dock->get_file_sort());
p_layout->set_value(p_section, "dock_filesystem_file_list_display_mode", filesystem_dock->get_file_list_display_mode());
for (int i = 0; i < vsplits.size(); i++) {
@@ -4406,6 +4420,11 @@ void EditorNode::_load_docks_from_config(Ref<ConfigFile> p_layout, const String
filesystem_dock->set_display_mode(dock_filesystem_display_mode);
}
+ if (p_layout->has_section_key(p_section, "dock_filesystem_file_sort")) {
+ FileSystemDock::FileSortOption dock_filesystem_file_sort = FileSystemDock::FileSortOption(int(p_layout->get_value(p_section, "dock_filesystem_file_sort")));
+ filesystem_dock->set_file_sort(dock_filesystem_file_sort);
+ }
+
if (p_layout->has_section_key(p_section, "dock_filesystem_file_list_display_mode")) {
FileSystemDock::FileListDisplayMode dock_filesystem_file_list_display_mode = FileSystemDock::FileListDisplayMode(int(p_layout->get_value(p_section, "dock_filesystem_file_list_display_mode")));
filesystem_dock->set_file_list_display_mode(dock_filesystem_file_list_display_mode);
@@ -4704,10 +4723,10 @@ void EditorNode::_scene_tab_input(const Ref<InputEvent> &p_input) {
scene_tabs_context_menu->add_item(TTR("Play This Scene"), RUN_PLAY_SCENE);
scene_tabs_context_menu->add_separator();
- Ref<ShortCut> close_tab_sc = ED_GET_SHORTCUT("editor/close_scene");
+ Ref<Shortcut> close_tab_sc = ED_GET_SHORTCUT("editor/close_scene");
close_tab_sc->set_name(TTR("Close Tab"));
scene_tabs_context_menu->add_shortcut(close_tab_sc, FILE_CLOSE);
- Ref<ShortCut> undo_close_tab_sc = ED_GET_SHORTCUT("editor/reopen_closed_scene");
+ Ref<Shortcut> undo_close_tab_sc = ED_GET_SHORTCUT("editor/reopen_closed_scene");
undo_close_tab_sc->set_name(TTR("Undo Close Tab"));
scene_tabs_context_menu->add_shortcut(undo_close_tab_sc, FILE_OPEN_PREV);
if (previous_scenes.empty()) {
@@ -5109,7 +5128,6 @@ void EditorNode::_dropped_files(const Vector<String> &p_files, int p_screen) {
void EditorNode::_add_dropped_files_recursive(const Vector<String> &p_files, String to_path) {
DirAccessRef dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
- Vector<String> just_copy = String("ttf,otf").split(",");
for (int i = 0; i < p_files.size(); i++) {
String from = p_files[i];
@@ -5140,9 +5158,6 @@ void EditorNode::_add_dropped_files_recursive(const Vector<String> &p_files, Str
continue;
}
- if (!ResourceFormatImporter::get_singleton()->can_be_imported(from) && (just_copy.find(from.get_extension().to_lower()) == -1)) {
- continue;
- }
dir->copy(from, to);
}
}
@@ -5338,9 +5353,11 @@ void EditorNode::_feature_profile_changed() {
TabContainer *node_tabs = cast_to<TabContainer>(node_dock->get_parent());
TabContainer *fs_tabs = cast_to<TabContainer>(filesystem_dock->get_parent());
if (profile.is_valid()) {
- import_tabs->set_tab_hidden(import_dock->get_index(), profile->is_feature_disabled(EditorFeatureProfile::FEATURE_IMPORT_DOCK));
node_tabs->set_tab_hidden(node_dock->get_index(), profile->is_feature_disabled(EditorFeatureProfile::FEATURE_NODE_DOCK));
- fs_tabs->set_tab_hidden(filesystem_dock->get_index(), profile->is_feature_disabled(EditorFeatureProfile::FEATURE_FILESYSTEM_DOCK));
+ // The Import dock is useless without the FileSystem dock. Ensure the configuration is valid.
+ bool fs_dock_disabled = profile->is_feature_disabled(EditorFeatureProfile::FEATURE_FILESYSTEM_DOCK);
+ fs_tabs->set_tab_hidden(filesystem_dock->get_index(), fs_dock_disabled);
+ import_tabs->set_tab_hidden(import_dock->get_index(), fs_dock_disabled || profile->is_feature_disabled(EditorFeatureProfile::FEATURE_IMPORT_DOCK));
main_editor_buttons[EDITOR_3D]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_3D));
main_editor_buttons[EDITOR_SCRIPT]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_SCRIPT));
@@ -5609,10 +5626,10 @@ EditorNode::EditorNode() {
import_cubemap_array->set_mode(ResourceImporterLayeredTexture::MODE_CUBEMAP_ARRAY);
ResourceFormatImporter::get_singleton()->add_importer(import_cubemap_array);
- /*Ref<ResourceImporterLayeredTexture> import_3d;
+ Ref<ResourceImporterLayeredTexture> import_3d;
import_3d.instance();
import_3d->set_mode(ResourceImporterLayeredTexture::MODE_3D);
- ResourceFormatImporter::get_singleton()->add_importer(import_3d);*/
+ ResourceFormatImporter::get_singleton()->add_importer(import_3d);
Ref<ResourceImporterImage> import_image;
import_image.instance();
@@ -6186,7 +6203,9 @@ EditorNode::EditorNode() {
#else
p->add_shortcut(ED_SHORTCUT("editor/fullscreen_mode", TTR("Toggle Fullscreen"), KEY_MASK_SHIFT | KEY_F11), SETTINGS_TOGGLE_FULLSCREEN);
#endif
-#ifdef WINDOWS_ENABLED
+#if defined(WINDOWS_ENABLED) && defined(WINDOWS_SUBSYSTEM_CONSOLE)
+ // The console can only be toggled if the application was built for the console subsystem,
+ // not the GUI subsystem.
p->add_item(TTR("Toggle System Console"), SETTINGS_TOGGLE_CONSOLE);
#endif
p->add_separator();
@@ -6611,6 +6630,7 @@ EditorNode::EditorNode() {
add_editor_plugin(memnew(CurveEditorPlugin(this)));
add_editor_plugin(memnew(TextureEditorPlugin(this)));
add_editor_plugin(memnew(TextureLayeredEditorPlugin(this)));
+ add_editor_plugin(memnew(Texture3DEditorPlugin(this)));
add_editor_plugin(memnew(AudioStreamEditorPlugin(this)));
add_editor_plugin(memnew(AudioBusesEditorPlugin(audio_bus_editor)));
add_editor_plugin(memnew(Skeleton3DEditorPlugin(this)));
@@ -6618,6 +6638,7 @@ EditorNode::EditorNode() {
add_editor_plugin(memnew(PhysicalBone3DEditorPlugin(this)));
add_editor_plugin(memnew(MeshEditorPlugin(this)));
add_editor_plugin(memnew(MaterialEditorPlugin(this)));
+ add_editor_plugin(memnew(GPUParticlesCollisionSDFEditorPlugin(this)));
for (int i = 0; i < EditorPlugins::get_plugin_count(); i++) {
add_editor_plugin(EditorPlugins::create(i, this));
@@ -6796,6 +6817,7 @@ EditorNode::EditorNode() {
EditorNode::~EditorNode() {
EditorInspector::cleanup_plugins();
+ EditorTranslationParser::get_singleton()->clean_parsers();
remove_print_handler(&print_handler);
memdelete(EditorHelp::get_doc_data());
diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp
index da0a0827d2..e330713cfb 100644
--- a/editor/editor_plugin.cpp
+++ b/editor/editor_plugin.cpp
@@ -234,8 +234,8 @@ String EditorInterface::get_current_path() const {
return EditorNode::get_singleton()->get_filesystem_dock()->get_current_path();
}
-void EditorInterface::inspect_object(Object *p_obj, const String &p_for_property) {
- EditorNode::get_singleton()->push_item(p_obj, p_for_property);
+void EditorInterface::inspect_object(Object *p_obj, const String &p_for_property, bool p_inspector_only) {
+ EditorNode::get_singleton()->push_item(p_obj, p_for_property, p_inspector_only);
}
EditorFileSystem *EditorInterface::get_resource_file_system() {
@@ -301,7 +301,7 @@ bool EditorInterface::is_distraction_free_mode_enabled() const {
EditorInterface *EditorInterface::singleton = nullptr;
void EditorInterface::_bind_methods() {
- ClassDB::bind_method(D_METHOD("inspect_object", "object", "for_property"), &EditorInterface::inspect_object, DEFVAL(String()));
+ ClassDB::bind_method(D_METHOD("inspect_object", "object", "for_property", "inspector_only"), &EditorInterface::inspect_object, DEFVAL(String()), DEFVAL(false));
ClassDB::bind_method(D_METHOD("get_selection"), &EditorInterface::get_selection);
ClassDB::bind_method(D_METHOD("get_editor_settings"), &EditorInterface::get_editor_settings);
ClassDB::bind_method(D_METHOD("get_script_editor"), &EditorInterface::get_script_editor);
@@ -791,7 +791,7 @@ bool EditorPlugin::build() {
return true;
}
-void EditorPlugin::queue_save_layout() const {
+void EditorPlugin::queue_save_layout() {
EditorNode::get_singleton()->save_layout();
}
@@ -811,6 +811,14 @@ ScriptCreateDialog *EditorPlugin::get_script_create_dialog() {
return EditorNode::get_singleton()->get_script_create_dialog();
}
+void EditorPlugin::add_debugger_plugin(const Ref<Script> &p_script) {
+ EditorDebuggerNode::get_singleton()->add_debugger_plugin(p_script);
+}
+
+void EditorPlugin::remove_debugger_plugin(const Ref<Script> &p_script) {
+ EditorDebuggerNode::get_singleton()->remove_debugger_plugin(p_script);
+}
+
void EditorPlugin::_bind_methods() {
ClassDB::bind_method(D_METHOD("add_control_to_container", "container", "control"), &EditorPlugin::add_control_to_container);
ClassDB::bind_method(D_METHOD("add_control_to_bottom_panel", "control", "title"), &EditorPlugin::add_control_to_bottom_panel);
@@ -851,6 +859,8 @@ void EditorPlugin::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_editor_interface"), &EditorPlugin::get_editor_interface);
ClassDB::bind_method(D_METHOD("get_script_create_dialog"), &EditorPlugin::get_script_create_dialog);
+ ClassDB::bind_method(D_METHOD("add_debugger_plugin", "script"), &EditorPlugin::add_debugger_plugin);
+ ClassDB::bind_method(D_METHOD("remove_debugger_plugin", "script"), &EditorPlugin::remove_debugger_plugin);
ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::BOOL, "forward_canvas_gui_input", PropertyInfo(Variant::OBJECT, "event", PROPERTY_HINT_RESOURCE_TYPE, "InputEvent")));
ClassDB::add_virtual_method(get_class_static(), MethodInfo("forward_canvas_draw_over_viewport", PropertyInfo(Variant::OBJECT, "overlay", PROPERTY_HINT_RESOURCE_TYPE, "Control")));
diff --git a/editor/editor_plugin.h b/editor/editor_plugin.h
index 685f69bf3f..dd3bf08678 100644
--- a/editor/editor_plugin.h
+++ b/editor/editor_plugin.h
@@ -33,6 +33,7 @@
#include "core/io/config_file.h"
#include "core/undo_redo.h"
+#include "editor/debugger/editor_debugger_node.h"
#include "editor/editor_inspector.h"
#include "editor/editor_translation_parser.h"
#include "editor/import/editor_import_plugin.h"
@@ -88,7 +89,7 @@ public:
String get_selected_path() const;
String get_current_path() const;
- void inspect_object(Object *p_obj, const String &p_for_property = String());
+ void inspect_object(Object *p_obj, const String &p_for_property = String(), bool p_inspector_only = false);
EditorSelection *get_selection();
//EditorImportExport *get_import_export();
@@ -220,7 +221,7 @@ public:
int update_overlays() const;
- void queue_save_layout() const;
+ void queue_save_layout();
void make_bottom_panel_item_visible(Control *p_item);
void hide_bottom_panel();
@@ -249,6 +250,9 @@ public:
void add_autoload_singleton(const String &p_name, const String &p_path);
void remove_autoload_singleton(const String &p_name);
+ void add_debugger_plugin(const Ref<Script> &p_script);
+ void remove_debugger_plugin(const Ref<Script> &p_script);
+
void enable_plugin();
void disable_plugin();
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp
index 2d50d25ff5..48a9ca90c4 100644
--- a/editor/editor_properties.cpp
+++ b/editor/editor_properties.cpp
@@ -36,6 +36,7 @@
#include "editor_properties_array_dict.h"
#include "editor_scale.h"
#include "scene/main/window.h"
+#include "scene/resources/dynamic_font.h"
///////////////////// NULL /////////////////////////
@@ -613,7 +614,7 @@ public:
const Ref<InputEventMouseButton> mb = p_ev;
- if (mb.is_valid() && mb->get_button_index() == BUTTON_LEFT && mb->is_pressed()) {
+ if (mb.is_valid() && mb->get_button_index() == BUTTON_LEFT && mb->is_pressed() && hovered_index > 0) {
// Toggle the flag.
// We base our choice on the hovered flag, so that it always matches the hovered flag.
if (value & (1 << hovered_index)) {
@@ -946,14 +947,11 @@ void EditorPropertyEasing::_drag_easing(const Ref<InputEvent> &p_ev) {
}
float val = get_edited_object()->get(get_edited_property());
- if (val == 0) {
- return;
- }
bool sg = val < 0;
val = Math::absf(val);
val = Math::log(val) / Math::log((float)2.0);
- //logspace
+ // Logarithmic space.
val += rel * 0.05;
val = Math::pow(2.0f, val);
@@ -961,6 +959,16 @@ void EditorPropertyEasing::_drag_easing(const Ref<InputEvent> &p_ev) {
val = -val;
}
+ // 0 is a singularity, but both positive and negative values
+ // are otherwise allowed. Enforce 0+ as workaround.
+ if (Math::is_zero_approx(val)) {
+ val = 0.00001;
+ }
+
+ // Limit to a reasonable value to prevent the curve going into infinity,
+ // which can cause crashes and other issues.
+ val = CLAMP(val, -1'000'000, 1'000'000);
+
emit_changed(get_edited_property(), val);
easing_draw->update();
}
@@ -1003,7 +1011,18 @@ void EditorPropertyEasing::_draw_easing() {
}
easing_draw->draw_multiline(lines, line_color, 1.0);
- f->draw(ci, Point2(10, 10 + f->get_ascent()), String::num(exp, 2), font_color);
+ // Draw more decimals for small numbers since higher precision is usually required for fine adjustments.
+ int decimals;
+ if (Math::abs(exp) < 0.1 - CMP_EPSILON) {
+ decimals = 4;
+ } else if (Math::abs(exp) < 1 - CMP_EPSILON) {
+ decimals = 3;
+ } else if (Math::abs(exp) < 10 - CMP_EPSILON) {
+ decimals = 2;
+ } else {
+ decimals = 1;
+ }
+ f->draw(ci, Point2(10, 10 + f->get_ascent()), rtos(exp).pad_decimals(decimals), font_color);
}
void EditorPropertyEasing::update_property() {
@@ -1035,6 +1054,11 @@ void EditorPropertyEasing::_spin_value_changed(double p_value) {
if (Math::is_zero_approx(p_value)) {
p_value = 0.00001;
}
+
+ // Limit to a reasonable value to prevent the curve going into infinity,
+ // which can cause crashes and other issues.
+ p_value = CLAMP(p_value, -1'000'000, 1'000'000);
+
emit_changed(get_edited_property(), p_value);
_spin_focus_exited();
}
@@ -1148,7 +1172,7 @@ void EditorPropertyVector2::setup(double p_min, double p_max, double p_step, boo
}
EditorPropertyVector2::EditorPropertyVector2(bool p_force_wide) {
- bool horizontal = EDITOR_GET("interface/inspector/horizontal_vector2_editing");
+ bool horizontal = p_force_wide || bool(EDITOR_GET("interface/inspector/horizontal_vector2_editing"));
BoxContainer *bc;
@@ -1234,7 +1258,7 @@ void EditorPropertyRect2::setup(double p_min, double p_max, double p_step, bool
}
EditorPropertyRect2::EditorPropertyRect2(bool p_force_wide) {
- bool horizontal = !p_force_wide && bool(EDITOR_GET("interface/inspector/horizontal_vector_types_editing"));
+ bool horizontal = p_force_wide || bool(EDITOR_GET("interface/inspector/horizontal_vector_types_editing"));
BoxContainer *bc;
@@ -1329,7 +1353,7 @@ void EditorPropertyVector3::setup(double p_min, double p_max, double p_step, boo
}
EditorPropertyVector3::EditorPropertyVector3(bool p_force_wide) {
- bool horizontal = EDITOR_GET("interface/inspector/horizontal_vector_types_editing");
+ bool horizontal = p_force_wide || bool(EDITOR_GET("interface/inspector/horizontal_vector_types_editing"));
BoxContainer *bc;
@@ -1411,7 +1435,7 @@ void EditorPropertyVector2i::setup(int p_min, int p_max, bool p_no_slider) {
}
EditorPropertyVector2i::EditorPropertyVector2i(bool p_force_wide) {
- bool horizontal = EDITOR_GET("interface/inspector/horizontal_vector2_editing");
+ bool horizontal = p_force_wide || bool(EDITOR_GET("interface/inspector/horizontal_vector2_editing"));
BoxContainer *bc;
@@ -1497,7 +1521,7 @@ void EditorPropertyRect2i::setup(int p_min, int p_max, bool p_no_slider) {
}
EditorPropertyRect2i::EditorPropertyRect2i(bool p_force_wide) {
- bool horizontal = EDITOR_GET("interface/inspector/horizontal_vector_types_editing");
+ bool horizontal = p_force_wide || bool(EDITOR_GET("interface/inspector/horizontal_vector_types_editing"));
BoxContainer *bc;
@@ -1581,7 +1605,7 @@ void EditorPropertyVector3i::setup(int p_min, int p_max, bool p_no_slider) {
}
EditorPropertyVector3i::EditorPropertyVector3i(bool p_force_wide) {
- bool horizontal = EDITOR_GET("interface/inspector/horizontal_vector_types_editing");
+ bool horizontal = p_force_wide || bool(EDITOR_GET("interface/inspector/horizontal_vector_types_editing"));
BoxContainer *bc;
if (p_force_wide) {
@@ -1666,7 +1690,7 @@ void EditorPropertyPlane::setup(double p_min, double p_max, double p_step, bool
}
EditorPropertyPlane::EditorPropertyPlane(bool p_force_wide) {
- bool horizontal = EDITOR_GET("interface/inspector/horizontal_vector_types_editing");
+ bool horizontal = p_force_wide || bool(EDITOR_GET("interface/inspector/horizontal_vector_types_editing"));
BoxContainer *bc;
@@ -2108,6 +2132,11 @@ EditorPropertyTransform::EditorPropertyTransform() {
////////////// COLOR PICKER //////////////////////
void EditorPropertyColor::_color_changed(const Color &p_color) {
+ // Cancel the color change if the current color is identical to the new one.
+ if (get_edited_object()->get(get_edited_property()) == p_color) {
+ return;
+ }
+
emit_changed(get_edited_property(), p_color, "", true);
}
@@ -2919,11 +2948,9 @@ void EditorPropertyResource::_notification(int p_what) {
}
if (p_what == NOTIFICATION_DRAG_BEGIN) {
- if (is_visible_in_tree()) {
- if (_is_drop_valid(get_viewport()->gui_get_drag_data())) {
- dropping = true;
- assign->update();
- }
+ if (_is_drop_valid(get_viewport()->gui_get_drag_data())) {
+ dropping = true;
+ assign->update();
}
}
@@ -2988,6 +3015,8 @@ bool EditorPropertyResource::_is_drop_valid(const Dictionary &p_drag_data) const
allowed_types.append("Texture2D");
} else if (at == "ShaderMaterial") {
allowed_types.append("Shader");
+ } else if (at == "Font") {
+ allowed_types.append("DynamicFontData");
}
}
@@ -3085,6 +3114,13 @@ void EditorPropertyResource::drop_data_fw(const Point2 &p_point, const Variant &
res = mat;
break;
}
+
+ if (at == "Font" && ClassDB::is_parent_class(res->get_class(), "DynamicFontData")) {
+ Ref<DynamicFont> font = memnew(DynamicFont);
+ font->set_font_data(res);
+ res = font;
+ break;
+ }
}
}
@@ -3275,10 +3311,10 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
if ((p_hint == PROPERTY_HINT_RANGE || p_hint == PROPERTY_HINT_EXP_RANGE) && p_hint_text.get_slice_count(",") >= 2) {
greater = false; //if using ranged, assume false by default
lesser = false;
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
if (p_hint_text.get_slice_count(",") >= 3) {
- step = p_hint_text.get_slice(",", 2).to_double();
+ step = p_hint_text.get_slice(",", 2).to_float();
}
hide_slider = false;
exp_range = p_hint == PROPERTY_HINT_EXP_RANGE;
@@ -3378,10 +3414,10 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
bool hide_slider = true;
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
if (p_hint_text.get_slice_count(",") >= 3) {
- step = p_hint_text.get_slice(",", 2).to_double();
+ step = p_hint_text.get_slice(",", 2).to_float();
}
hide_slider = false;
}
@@ -3396,8 +3432,8 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
bool hide_slider = true;
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
hide_slider = false;
}
@@ -3411,10 +3447,10 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
bool hide_slider = true;
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
if (p_hint_text.get_slice_count(",") >= 3) {
- step = p_hint_text.get_slice(",", 2).to_double();
+ step = p_hint_text.get_slice(",", 2).to_float();
}
hide_slider = false;
}
@@ -3428,8 +3464,8 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
bool hide_slider = true;
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
hide_slider = false;
}
@@ -3442,10 +3478,10 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
bool hide_slider = true;
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
if (p_hint_text.get_slice_count(",") >= 3) {
- step = p_hint_text.get_slice(",", 2).to_double();
+ step = p_hint_text.get_slice(",", 2).to_float();
}
hide_slider = false;
}
@@ -3460,8 +3496,8 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
bool hide_slider = true;
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
hide_slider = false;
}
@@ -3476,10 +3512,10 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
bool hide_slider = true;
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
if (p_hint_text.get_slice_count(",") >= 3) {
- step = p_hint_text.get_slice(",", 2).to_double();
+ step = p_hint_text.get_slice(",", 2).to_float();
}
hide_slider = false;
}
@@ -3494,10 +3530,10 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
bool hide_slider = true;
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
if (p_hint_text.get_slice_count(",") >= 3) {
- step = p_hint_text.get_slice(",", 2).to_double();
+ step = p_hint_text.get_slice(",", 2).to_float();
}
hide_slider = false;
}
@@ -3511,10 +3547,10 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
bool hide_slider = true;
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
if (p_hint_text.get_slice_count(",") >= 3) {
- step = p_hint_text.get_slice(",", 2).to_double();
+ step = p_hint_text.get_slice(",", 2).to_float();
}
hide_slider = false;
}
@@ -3528,10 +3564,10 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
bool hide_slider = true;
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
if (p_hint_text.get_slice_count(",") >= 3) {
- step = p_hint_text.get_slice(",", 2).to_double();
+ step = p_hint_text.get_slice(",", 2).to_float();
}
hide_slider = false;
}
@@ -3545,10 +3581,10 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
bool hide_slider = true;
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
if (p_hint_text.get_slice_count(",") >= 3) {
- step = p_hint_text.get_slice(",", 2).to_double();
+ step = p_hint_text.get_slice(",", 2).to_float();
}
hide_slider = false;
}
@@ -3562,10 +3598,10 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ
bool hide_slider = true;
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
- min = p_hint_text.get_slice(",", 0).to_double();
- max = p_hint_text.get_slice(",", 1).to_double();
+ min = p_hint_text.get_slice(",", 0).to_float();
+ max = p_hint_text.get_slice(",", 1).to_float();
if (p_hint_text.get_slice_count(",") >= 3) {
- step = p_hint_text.get_slice(",", 2).to_double();
+ step = p_hint_text.get_slice(",", 2).to_float();
}
hide_slider = false;
}
diff --git a/editor/editor_resource_preview.cpp b/editor/editor_resource_preview.cpp
index d2250fed7a..9723ae188b 100644
--- a/editor/editor_resource_preview.cpp
+++ b/editor/editor_resource_preview.cpp
@@ -30,8 +30,6 @@
#include "editor_resource_preview.h"
-#include "core/method_bind_ext.gen.inc"
-
#include "core/io/resource_loader.h"
#include "core/io/resource_saver.h"
#include "core/message_queue.h"
@@ -164,7 +162,6 @@ void EditorResourcePreview::_generate_preview(Ref<ImageTexture> &r_texture, Ref<
r_texture = generated;
int small_thumbnail_size = EditorNode::get_singleton()->get_theme_base()->get_theme_icon("Object", "EditorIcons")->get_width(); // Kind of a workaround to retrieve the default icon size
- small_thumbnail_size *= EDSCALE;
if (preview_generators[i]->can_generate_small_preview()) {
Ref<Texture2D> generated_small;
diff --git a/editor/editor_run.cpp b/editor/editor_run.cpp
index b49c50fa31..7fada633c9 100644
--- a/editor/editor_run.cpp
+++ b/editor/editor_run.cpp
@@ -192,9 +192,9 @@ Error EditorRun::run(const String &p_scene, const String &p_custom_args, const L
String exec = OS::get_singleton()->get_executable_path();
- printf("Running: %ls", exec.c_str());
+ printf("Running: %s", exec.utf8().get_data());
for (List<String>::Element *E = args.front(); E; E = E->next()) {
- printf(" %ls", E->get().c_str());
+ printf(" %s", E->get().utf8().get_data());
};
printf("\n");
diff --git a/editor/editor_run_native.cpp b/editor/editor_run_native.cpp
index 9a834977fd..639da371bd 100644
--- a/editor/editor_run_native.cpp
+++ b/editor/editor_run_native.cpp
@@ -76,8 +76,10 @@ void EditorRunNative::_notification(int p_what) {
} else {
mb->get_popup()->clear();
mb->show();
- mb->set_tooltip(eep->get_options_tooltip());
- if (dc > 1) {
+ if (dc == 1) {
+ mb->set_tooltip(eep->get_option_tooltip(0));
+ } else {
+ mb->set_tooltip(eep->get_options_tooltip());
for (int i = 0; i < dc; i++) {
mb->get_popup()->add_icon_item(eep->get_option_icon(i), eep->get_option_label(i));
mb->get_popup()->set_item_tooltip(mb->get_popup()->get_item_count() - 1, eep->get_option_tooltip(i));
@@ -121,7 +123,7 @@ void EditorRunNative::_run_native(int p_idx, int p_platform) {
}
if (preset.is_null()) {
- EditorNode::get_singleton()->show_warning(TTR("No runnable export preset found for this platform.\nPlease add a runnable preset in the export menu."));
+ EditorNode::get_singleton()->show_warning(TTR("No runnable export preset found for this platform.\nPlease add a runnable preset in the Export menu or define an existing preset as runnable."));
return;
}
diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp
index eabbf6b0d8..cf19b54cff 100644
--- a/editor/editor_sectioned_inspector.cpp
+++ b/editor/editor_sectioned_inspector.cpp
@@ -238,7 +238,7 @@ void SectionedInspector::update_category_list() {
continue;
}
- if (!filter.empty() && !filter.is_subsequence_ofi(pi.name) && !filter.is_subsequence_ofi(pi.name.replace("/", " ").capitalize())) {
+ if (!filter.empty() && pi.name.findn(filter) == -1 && pi.name.replace("/", " ").capitalize().findn(filter) == -1) {
continue;
}
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp
index 3a1a0d5b01..ac27c4a837 100644
--- a/editor/editor_settings.cpp
+++ b/editor/editor_settings.cpp
@@ -77,7 +77,7 @@ bool EditorSettings::_set_only(const StringName &p_name, const Variant &p_value)
String name = arr[i];
Ref<InputEvent> shortcut = arr[i + 1];
- Ref<ShortCut> sc;
+ Ref<Shortcut> sc;
sc.instance();
sc->set_shortcut(shortcut);
add_shortcut(name, sc);
@@ -120,8 +120,8 @@ bool EditorSettings::_get(const StringName &p_name, Variant &r_ret) const {
if (p_name.operator String() == "shortcuts") {
Array arr;
- for (const Map<String, Ref<ShortCut>>::Element *E = shortcuts.front(); E; E = E->next()) {
- Ref<ShortCut> sc = E->get();
+ for (const Map<String, Ref<Shortcut>>::Element *E = shortcuts.front(); E; E = E->next()) {
+ Ref<Shortcut> sc = E->get();
if (optimize_save) {
if (!sc->has_meta("original")) {
@@ -445,7 +445,6 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
_initial_set("text_editor/appearance/show_line_numbers", true);
_initial_set("text_editor/appearance/line_numbers_zero_padded", false);
_initial_set("text_editor/appearance/show_bookmark_gutter", true);
- _initial_set("text_editor/appearance/show_breakpoint_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);
@@ -495,6 +494,8 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
hints["text_editor/help/help_source_font_size"] = PropertyInfo(Variant::INT, "text_editor/help/help_source_font_size", PROPERTY_HINT_RANGE, "8,48,1");
_initial_set("text_editor/help/help_title_font_size", 23);
hints["text_editor/help/help_title_font_size"] = PropertyInfo(Variant::INT, "text_editor/help/help_title_font_size", PROPERTY_HINT_RANGE, "8,48,1");
+ _initial_set("text_editor/help/class_reference_examples", 0);
+ hints["text_editor/help/class_reference_examples"] = PropertyInfo(Variant::INT, "text_editor/help/class_reference_examples", PROPERTY_HINT_ENUM, "GDScript,C#,GDScript and C#");
/* Editors */
@@ -542,6 +543,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
// 3D: Navigation
_initial_set("editors/3d/navigation/navigation_scheme", 0);
_initial_set("editors/3d/navigation/invert_y_axis", false);
+ _initial_set("editors/3d/navigation/invert_x_axis", false);
hints["editors/3d/navigation/navigation_scheme"] = PropertyInfo(Variant::INT, "editors/3d/navigation/navigation_scheme", PROPERTY_HINT_ENUM, "Godot,Maya,Modo");
_initial_set("editors/3d/navigation/zoom_style", 0);
hints["editors/3d/navigation/zoom_style"] = PropertyInfo(Variant::INT, "editors/3d/navigation/zoom_style", PROPERTY_HINT_ENUM, "Vertical, Horizontal");
@@ -704,8 +706,8 @@ void EditorSettings::_load_default_text_editor_theme() {
_initial_set("text_editor/highlighting/member_variable_color", Color(0.9, 0.31, 0.35));
_initial_set("text_editor/highlighting/mark_color", Color(1.0, 0.4, 0.4, 0.4));
_initial_set("text_editor/highlighting/bookmark_color", Color(0.08, 0.49, 0.98));
- _initial_set("text_editor/highlighting/breakpoint_color", Color(0.8, 0.8, 0.4, 0.2));
- _initial_set("text_editor/highlighting/executing_line_color", Color(0.2, 0.8, 0.2, 0.4));
+ _initial_set("text_editor/highlighting/breakpoint_color", Color(0.9, 0.29, 0.3));
+ _initial_set("text_editor/highlighting/executing_line_color", Color(0.98, 0.89, 0.27));
_initial_set("text_editor/highlighting/code_folding_color", Color(0.8, 0.8, 0.8, 0.8));
_initial_set("text_editor/highlighting/search_result_color", Color(0.05, 0.25, 0.05, 1));
_initial_set("text_editor/highlighting/search_result_border_color", Color(0.41, 0.61, 0.91, 0.38));
@@ -933,6 +935,7 @@ void EditorSettings::create() {
String config_file_name = "editor_settings-" + itos(VERSION_MAJOR) + ".tres";
config_file_path = config_dir.plus_file(config_file_name);
if (!dir->file_exists(config_file_name)) {
+ memdelete(dir);
goto fail;
}
@@ -1477,50 +1480,50 @@ String EditorSettings::get_editor_layouts_config() const {
// Shortcuts
-void EditorSettings::add_shortcut(const String &p_name, Ref<ShortCut> &p_shortcut) {
+void EditorSettings::add_shortcut(const String &p_name, Ref<Shortcut> &p_shortcut) {
shortcuts[p_name] = p_shortcut;
}
bool EditorSettings::is_shortcut(const String &p_name, const Ref<InputEvent> &p_event) const {
- const Map<String, Ref<ShortCut>>::Element *E = shortcuts.find(p_name);
+ const Map<String, Ref<Shortcut>>::Element *E = shortcuts.find(p_name);
ERR_FAIL_COND_V_MSG(!E, false, "Unknown Shortcut: " + p_name + ".");
return E->get()->is_shortcut(p_event);
}
-Ref<ShortCut> EditorSettings::get_shortcut(const String &p_name) const {
- const Map<String, Ref<ShortCut>>::Element *E = shortcuts.find(p_name);
+Ref<Shortcut> EditorSettings::get_shortcut(const String &p_name) const {
+ const Map<String, Ref<Shortcut>>::Element *E = shortcuts.find(p_name);
if (!E) {
- return Ref<ShortCut>();
+ return Ref<Shortcut>();
}
return E->get();
}
void EditorSettings::get_shortcut_list(List<String> *r_shortcuts) {
- for (const Map<String, Ref<ShortCut>>::Element *E = shortcuts.front(); E; E = E->next()) {
+ for (const Map<String, Ref<Shortcut>>::Element *E = shortcuts.front(); E; E = E->next()) {
r_shortcuts->push_back(E->key());
}
}
-Ref<ShortCut> ED_GET_SHORTCUT(const String &p_path) {
+Ref<Shortcut> ED_GET_SHORTCUT(const String &p_path) {
if (!EditorSettings::get_singleton()) {
return nullptr;
}
- Ref<ShortCut> sc = EditorSettings::get_singleton()->get_shortcut(p_path);
+ Ref<Shortcut> sc = EditorSettings::get_singleton()->get_shortcut(p_path);
ERR_FAIL_COND_V_MSG(!sc.is_valid(), sc, "Used ED_GET_SHORTCUT with invalid shortcut: " + p_path + ".");
return sc;
}
-struct ShortCutMapping {
+struct ShortcutMapping {
const char *path;
uint32_t keycode;
};
-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, uint32_t p_keycode) {
#ifdef OSX_ENABLED
// Use Cmd+Backspace as a general replacement for Delete shortcuts on macOS
if (p_keycode == KEY_DELETE) {
@@ -1541,7 +1544,7 @@ Ref<ShortCut> ED_SHORTCUT(const String &p_path, const String &p_name, uint32_t p
}
if (!EditorSettings::get_singleton()) {
- Ref<ShortCut> sc;
+ Ref<Shortcut> sc;
sc.instance();
sc->set_name(p_name);
sc->set_shortcut(ie);
@@ -1549,7 +1552,7 @@ Ref<ShortCut> ED_SHORTCUT(const String &p_path, const String &p_name, uint32_t p
return sc;
}
- Ref<ShortCut> sc = EditorSettings::get_singleton()->get_shortcut(p_path);
+ Ref<Shortcut> sc = EditorSettings::get_singleton()->get_shortcut(p_path);
if (sc.is_valid()) {
sc->set_name(p_name); //keep name (the ones that come from disk have no name)
sc->set_meta("original", ie); //to compare against changes
diff --git a/editor/editor_settings.h b/editor/editor_settings.h
index 13aebb7ea6..c1bb7951fa 100644
--- a/editor/editor_settings.h
+++ b/editor/editor_settings.h
@@ -31,8 +31,7 @@
#ifndef EDITOR_SETTINGS_H
#define EDITOR_SETTINGS_H
-#include "core/object.h"
-
+#include "core/class_db.h"
#include "core/io/config_file.h"
#include "core/os/thread_safe.h"
#include "core/resource.h"
@@ -44,7 +43,6 @@ class EditorPlugin;
class EditorSettings : public Resource {
GDCLASS(EditorSettings, Resource);
-private:
_THREAD_SAFE_CLASS_
public:
@@ -85,7 +83,7 @@ private:
int last_order;
Ref<Resource> clipboard;
- Map<String, Ref<ShortCut>> shortcuts;
+ Map<String, Ref<Shortcut>> shortcuts;
String resource_path;
String settings_dir;
@@ -182,9 +180,9 @@ public:
Vector<String> get_script_templates(const String &p_extension, const String &p_custom_path = String());
String get_editor_layouts_config() const;
- void add_shortcut(const String &p_name, Ref<ShortCut> &p_shortcut);
+ void add_shortcut(const String &p_name, Ref<Shortcut> &p_shortcut);
bool is_shortcut(const String &p_name, const Ref<InputEvent> &p_event) const;
- Ref<ShortCut> get_shortcut(const String &p_name) const;
+ Ref<Shortcut> get_shortcut(const String &p_name) const;
void get_shortcut_list(List<String> *r_shortcuts);
void notify_changes();
@@ -203,7 +201,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_GET_SHORTCUT(const String &p_path);
+Ref<Shortcut> ED_SHORTCUT(const String &p_path, const String &p_name, uint32_t p_keycode = 0);
+Ref<Shortcut> ED_GET_SHORTCUT(const String &p_path);
#endif // EDITOR_SETTINGS_H
diff --git a/editor/editor_spin_slider.cpp b/editor/editor_spin_slider.cpp
index d76a3d2da7..efc966c6c4 100644
--- a/editor/editor_spin_slider.cpp
+++ b/editor/editor_spin_slider.cpp
@@ -356,7 +356,12 @@ String EditorSpinSlider::get_label() const {
}
void EditorSpinSlider::_evaluate_input_text() {
- String text = value_input->get_text();
+ // Replace comma with dot to support it as decimal separator (GH-6028).
+ // This prevents using functions like `pow()`, but using functions
+ // in EditorSpinSlider is a barely known (and barely used) feature.
+ // Instead, we'd rather support German/French keyboard layouts out of the box.
+ const String text = value_input->get_text().replace(",", ".");
+
Ref<Expression> expr;
expr.instance();
Error err = expr->parse(text);
@@ -478,7 +483,7 @@ EditorSpinSlider::EditorSpinSlider() {
grabber = memnew(TextureRect);
add_child(grabber);
grabber->hide();
- grabber->set_as_toplevel(true);
+ grabber->set_as_top_level(true);
grabber->set_mouse_filter(MOUSE_FILTER_STOP);
grabber->connect("mouse_entered", callable_mp(this, &EditorSpinSlider::_grabber_mouse_entered));
grabber->connect("mouse_exited", callable_mp(this, &EditorSpinSlider::_grabber_mouse_exited));
diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp
index a93763810b..79525ced51 100644
--- a/editor/editor_themes.cpp
+++ b/editor/editor_themes.cpp
@@ -85,7 +85,8 @@ static Ref<StyleBoxLine> make_line_stylebox(Color p_color, int p_thickness = 1,
return style;
}
-Ref<ImageTexture> editor_generate_icon(int p_index, bool p_convert_color, float p_scale = EDSCALE, bool p_force_filter = false) {
+#ifdef MODULE_SVG_ENABLED
+static Ref<ImageTexture> editor_generate_icon(int p_index, bool p_convert_color, float p_scale = EDSCALE, bool p_force_filter = false) {
Ref<ImageTexture> icon = memnew(ImageTexture);
Ref<Image> img = memnew(Image);
@@ -99,6 +100,7 @@ Ref<ImageTexture> editor_generate_icon(int p_index, bool p_convert_color, float
return icon;
}
+#endif
#ifndef ADD_CONVERT_COLOR
#define ADD_CONVERT_COLOR(dictionary, old_color, new_color) dictionary[Color::html(old_color)] = Color::html(new_color)
@@ -216,8 +218,15 @@ void editor_register_and_generate_icons(Ref<Theme> p_theme, bool p_dark_theme =
// Generate icons.
if (!p_only_thumbs) {
for (int i = 0; i < editor_icons_count; i++) {
+ float icon_scale = EDSCALE;
+
+ // Always keep the DefaultProjectIcon at the default size
+ if (strcmp(editor_icons_names[i], "DefaultProjectIcon") == 0) {
+ icon_scale = 1.0f;
+ }
+
const int is_exception = exceptions.has(editor_icons_names[i]);
- const Ref<ImageTexture> icon = editor_generate_icon(i, !is_exception);
+ const Ref<ImageTexture> icon = editor_generate_icon(i, !is_exception, icon_scale);
p_theme->set_icon(editor_icons_names[i], "EditorIcons", icon);
}
@@ -866,12 +875,24 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_constant("side_margin", "TabContainer", 0);
theme->set_icon("tab", "TextEdit", theme->get_icon("GuiTab", "EditorIcons"));
theme->set_icon("space", "TextEdit", theme->get_icon("GuiSpace", "EditorIcons"));
- theme->set_icon("folded", "TextEdit", theme->get_icon("GuiTreeArrowRight", "EditorIcons"));
- theme->set_icon("fold", "TextEdit", theme->get_icon("GuiTreeArrowDown", "EditorIcons"));
theme->set_color("font_color", "TextEdit", font_color);
theme->set_color("caret_color", "TextEdit", font_color);
theme->set_color("selection_color", "TextEdit", font_color_selection);
+ // CodeEdit
+ 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", font_color_selection);
+
// H/VSplitContainer
theme->set_stylebox("bg", "VSplitContainer", make_stylebox(theme->get_icon("GuiVsplitBg", "EditorIcons"), 1, 1, 1, 1));
theme->set_stylebox("bg", "HSplitContainer", make_stylebox(theme->get_icon("GuiHsplitBg", "EditorIcons"), 1, 1, 1, 1));
@@ -1177,7 +1198,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
const Color mark_color = Color(error_color.r, error_color.g, error_color.b, 0.3);
const Color bookmark_color = Color(0.08, 0.49, 0.98);
const Color breakpoint_color = error_color;
- const Color executing_line_color = Color(0.2, 0.8, 0.2, 0.4);
+ const Color executing_line_color = Color(0.98, 0.89, 0.27);
const Color code_folding_color = alpha3;
const Color search_result_color = alpha1;
const Color search_result_border_color = Color(0.41, 0.61, 0.91, 0.38);
diff --git a/editor/editor_translation_parser.cpp b/editor/editor_translation_parser.cpp
index 3f4864ad1e..7a90d20000 100644
--- a/editor/editor_translation_parser.cpp
+++ b/editor/editor_translation_parser.cpp
@@ -37,15 +37,30 @@
EditorTranslationParser *EditorTranslationParser::singleton = nullptr;
-Error EditorTranslationParserPlugin::parse_file(const String &p_path, Vector<String> *r_extracted_strings) {
+Error EditorTranslationParserPlugin::parse_file(const String &p_path, Vector<String> *r_ids, Vector<Vector<String>> *r_ids_ctx_plural) {
if (!get_script_instance())
return ERR_UNAVAILABLE;
if (get_script_instance()->has_method("parse_file")) {
- Array extracted_strings;
- get_script_instance()->call("parse_file", p_path, extracted_strings);
- for (int i = 0; i < extracted_strings.size(); i++) {
- r_extracted_strings->append(extracted_strings[i]);
+ Array ids;
+ Array ids_ctx_plural;
+ get_script_instance()->call("parse_file", p_path, ids, ids_ctx_plural);
+
+ // Add user's extracted translatable messages.
+ for (int i = 0; i < ids.size(); i++) {
+ r_ids->append(ids[i]);
+ }
+
+ // Add user's collected translatable messages with context or plurals.
+ for (int i = 0; i < ids_ctx_plural.size(); i++) {
+ Array arr = ids_ctx_plural[i];
+ ERR_FAIL_COND_V_MSG(arr.size() != 3, ERR_INVALID_DATA, "Array entries written into `msgids_context_plural` in `parse_file()` method should have the form [\"message\", \"context\", \"plural message\"]");
+
+ Vector<String> id_ctx_plural;
+ id_ctx_plural.push_back(arr[0]);
+ id_ctx_plural.push_back(arr[1]);
+ id_ctx_plural.push_back(arr[2]);
+ r_ids_ctx_plural->append(id_ctx_plural);
}
return OK;
} else {
@@ -69,7 +84,7 @@ void EditorTranslationParserPlugin::get_recognized_extensions(List<String> *r_ex
}
void EditorTranslationParserPlugin::_bind_methods() {
- ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::NIL, "parse_file", PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::ARRAY, "extracted_strings")));
+ ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::NIL, "parse_file", PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::ARRAY, "msgids"), PropertyInfo(Variant::ARRAY, "msgids_context_plural")));
ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::ARRAY, "get_recognized_extensions"));
}
@@ -147,6 +162,11 @@ void EditorTranslationParser::remove_parser(const Ref<EditorTranslationParserPlu
}
}
+void EditorTranslationParser::clean_parsers() {
+ standard_parsers.clear();
+ custom_parsers.clear();
+}
+
EditorTranslationParser *EditorTranslationParser::get_singleton() {
if (!singleton) {
singleton = memnew(EditorTranslationParser);
diff --git a/editor/editor_translation_parser.h b/editor/editor_translation_parser.h
index 6d00bedfa4..18f49b3803 100644
--- a/editor/editor_translation_parser.h
+++ b/editor/editor_translation_parser.h
@@ -41,7 +41,7 @@ protected:
static void _bind_methods();
public:
- virtual Error parse_file(const String &p_path, Vector<String> *r_extracted_strings);
+ virtual Error parse_file(const String &p_path, Vector<String> *r_ids, Vector<Vector<String>> *r_ids_ctx_plural);
virtual void get_recognized_extensions(List<String> *r_extensions) const;
};
@@ -64,6 +64,7 @@ public:
Ref<EditorTranslationParserPlugin> get_parser(const String &p_extension) const;
void add_parser(const Ref<EditorTranslationParserPlugin> &p_parser, ParserType p_type);
void remove_parser(const Ref<EditorTranslationParserPlugin> &p_parser, ParserType p_type);
+ void clean_parsers();
EditorTranslationParser();
~EditorTranslationParser();
diff --git a/editor/editor_vcs_interface.h b/editor/editor_vcs_interface.h
index ee9e51441d..6ef55f0a46 100644
--- a/editor/editor_vcs_interface.h
+++ b/editor/editor_vcs_interface.h
@@ -31,7 +31,7 @@
#ifndef EDITOR_VCS_INTERFACE_H
#define EDITOR_VCS_INTERFACE_H
-#include "core/object.h"
+#include "core/class_db.h"
#include "core/ustring.h"
#include "scene/gui/panel_container.h"
diff --git a/editor/fileserver/editor_file_server.h b/editor/fileserver/editor_file_server.h
index 9645fbf39e..eefaa503c1 100644
--- a/editor/fileserver/editor_file_server.h
+++ b/editor/fileserver/editor_file_server.h
@@ -31,10 +31,10 @@
#ifndef EDITOR_FILE_SERVER_H
#define EDITOR_FILE_SERVER_H
+#include "core/class_db.h"
#include "core/io/file_access_network.h"
#include "core/io/packet_peer.h"
#include "core/io/tcp_server.h"
-#include "core/object.h"
#include "core/os/thread.h"
class EditorFileServer : public Object {
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp
index 4f37fcf39c..f675f60b7a 100644
--- a/editor/filesystem_dock.cpp
+++ b/editor/filesystem_dock.cpp
@@ -31,6 +31,7 @@
#include "filesystem_dock.h"
#include "core/io/resource_loader.h"
+#include "core/list.h"
#include "core/os/dir_access.h"
#include "core/os/file_access.h"
#include "core/os/keyboard.h"
@@ -46,13 +47,12 @@
#include "scene/resources/packed_scene.h"
#include "servers/display_server.h"
-Ref<Texture2D> FileSystemDock::_get_tree_item_icon(EditorFileSystemDirectory *p_dir, int p_idx) {
+Ref<Texture2D> FileSystemDock::_get_tree_item_icon(bool p_is_valid, String p_file_type) {
Ref<Texture2D> file_icon;
- if (!p_dir->get_file_import_is_valid(p_idx)) {
+ if (!p_is_valid) {
file_icon = get_theme_icon("ImportFail", "EditorIcons");
} else {
- String file_type = p_dir->get_file_type(p_idx);
- file_icon = (has_theme_icon(file_type, "EditorIcons")) ? get_theme_icon(file_type, "EditorIcons") : get_theme_icon("File", "EditorIcons");
+ file_icon = (has_theme_icon(p_file_type, "EditorIcons")) ? get_theme_icon(p_file_type, "EditorIcons") : get_theme_icon("File", "EditorIcons");
}
return file_icon;
}
@@ -94,15 +94,17 @@ bool FileSystemDock::_create_tree(TreeItem *p_parent, EditorFileSystemDirectory
// Create all items for the files in the subdirectory.
if (display_mode == DISPLAY_MODE_TREE_ONLY) {
String main_scene = ProjectSettings::get_singleton()->get("application/run/main_scene");
+
+ // Build the list of the files to display.
+ List<FileInfo> file_list;
for (int i = 0; i < p_dir->get_file_count(); i++) {
String file_type = p_dir->get_file_type(i);
-
if (_is_file_type_disabled_by_feature_profile(file_type)) {
// If type is disabled, file won't be displayed.
continue;
}
- String file_name = p_dir->get_file(i);
+ String file_name = p_dir->get_file(i);
if (searched_string.length() > 0) {
if (file_name.to_lower().find(searched_string) < 0) {
// The searched string is not in the file name, we skip it.
@@ -113,10 +115,27 @@ bool FileSystemDock::_create_tree(TreeItem *p_parent, EditorFileSystemDirectory
}
}
+ FileInfo fi;
+ fi.name = p_dir->get_file(i);
+ fi.type = p_dir->get_file_type(i);
+ fi.import_broken = !p_dir->get_file_import_is_valid(i);
+
+ file_list.push_back(fi);
+ }
+
+ // Sort the file list if needed.
+ if (file_sort == FILE_SORT_TYPE) {
+ file_list.sort_custom<FileInfoExtensionComparator>();
+ }
+
+ // Build the tree.
+ for (List<FileInfo>::Element *E = file_list.front(); E; E = E->next()) {
+ FileInfo fi = E->get();
+
TreeItem *file_item = tree->create_item(subdirectory_item);
- file_item->set_text(0, file_name);
- file_item->set_icon(0, _get_tree_item_icon(p_dir, i));
- String file_metadata = lpath.plus_file(file_name);
+ file_item->set_text(0, fi.name);
+ file_item->set_icon(0, _get_tree_item_icon(!fi.import_broken, fi.type));
+ String file_metadata = lpath.plus_file(fi.name);
file_item->set_metadata(0, file_metadata);
if (!p_select_in_favorites && path == file_metadata) {
file_item->select(0);
@@ -220,7 +239,7 @@ void FileSystemDock::_update_tree(const Vector<String> &p_uncollapsed_paths, boo
int index;
EditorFileSystemDirectory *dir = EditorFileSystem::get_singleton()->find_file(fave, &index);
if (dir) {
- icon = _get_tree_item_icon(dir, index);
+ icon = _get_tree_item_icon(dir->get_file_import_is_valid(index), dir->get_file_type(index));
} else {
icon = get_theme_icon("File", "EditorIcons");
}
@@ -273,9 +292,9 @@ void FileSystemDock::_update_display_mode(bool p_force) {
tree->show();
tree->set_v_size_flags(SIZE_EXPAND_FILL);
if (display_mode == DISPLAY_MODE_TREE_ONLY) {
- tree_search_box->show();
+ toolbar2_hbc->show();
} else {
- tree_search_box->hide();
+ toolbar2_hbc->hide();
}
_update_tree(_compute_uncollapsed_paths());
@@ -286,7 +305,7 @@ void FileSystemDock::_update_display_mode(bool p_force) {
tree->show();
tree->set_v_size_flags(SIZE_EXPAND_FILL);
tree->ensure_cursor_is_visible();
- tree_search_box->hide();
+ toolbar2_hbc->hide();
_update_tree(_compute_uncollapsed_paths());
file_list_vb->show();
@@ -318,10 +337,14 @@ void FileSystemDock::_notification(int p_what) {
files->connect("item_activated", callable_mp(this, &FileSystemDock::_file_list_activate_file));
button_hist_next->connect("pressed", callable_mp(this, &FileSystemDock::_fw_history));
button_hist_prev->connect("pressed", callable_mp(this, &FileSystemDock::_bw_history));
+
tree_search_box->set_right_icon(get_theme_icon("Search", ei));
tree_search_box->set_clear_button_enabled(true);
+ tree_button_sort->set_icon(get_theme_icon("Sort", ei));
+
file_list_search_box->set_right_icon(get_theme_icon("Search", ei));
file_list_search_box->set_clear_button_enabled(true);
+ file_list_button_sort->set_icon(get_theme_icon("Sort", ei));
button_hist_next->set_icon(get_theme_icon("Forward", ei));
button_hist_prev->set_icon(get_theme_icon("Back", ei));
@@ -387,8 +410,11 @@ void FileSystemDock::_notification(int p_what) {
tree_search_box->set_right_icon(get_theme_icon("Search", ei));
tree_search_box->set_clear_button_enabled(true);
+ tree_button_sort->set_icon(get_theme_icon("Sort", ei));
+
file_list_search_box->set_right_icon(get_theme_icon("Search", ei));
file_list_search_box->set_clear_button_enabled(true);
+ file_list_button_sort->set_icon(get_theme_icon("Sort", ei));
// Update always show folders.
bool new_always_show_folders = bool(EditorSettings::get_singleton()->get("docks/filesystem/always_show_folders"));
@@ -660,7 +686,7 @@ void FileSystemDock::_update_file_list(bool p_keep_selection) {
const Color folder_color = get_theme_color("folder_icon_modulate", "FileDialog");
// Build the FileInfo list.
- List<FileInfo> filelist;
+ List<FileInfo> file_list;
if (path == "Favorites") {
// Display the favorites.
Vector<String> favorites = EditorSettings::get_singleton()->get_favorites();
@@ -698,7 +724,7 @@ void FileSystemDock::_update_file_list(bool p_keep_selection) {
}
if (searched_string.length() == 0 || fi.name.to_lower().find(searched_string) >= 0) {
- filelist.push_back(fi);
+ file_list.push_back(fi);
}
}
}
@@ -719,7 +745,7 @@ void FileSystemDock::_update_file_list(bool p_keep_selection) {
if (searched_string.length() > 0) {
// Display the search results.
- _search(EditorFileSystem::get_singleton()->get_filesystem(), &filelist, 128);
+ _search(EditorFileSystem::get_singleton()->get_filesystem(), &file_list, 128);
} else {
if (display_mode == DISPLAY_MODE_TREE_ONLY || always_show_folders) {
// Display folders in the list.
@@ -757,16 +783,21 @@ void FileSystemDock::_update_file_list(bool p_keep_selection) {
fi.type = efd->get_file_type(i);
fi.import_broken = !efd->get_file_import_is_valid(i);
- filelist.push_back(fi);
+ file_list.push_back(fi);
}
}
- filelist.sort();
+ file_list.sort();
+ }
+
+ // Sort the file list if needed.
+ if (file_sort == FILE_SORT_TYPE) {
+ file_list.sort_custom<FileInfoExtensionComparator>();
}
// Fills the ItemList control node from the FileInfos.
String main_scene = ProjectSettings::get_singleton()->get("application/run/main_scene");
String oi = "Object";
- for (List<FileInfo>::Element *E = filelist.front(); E; E = E->next()) {
+ for (List<FileInfo>::Element *E = file_list.front(); E; E = E->next()) {
FileInfo *finfo = &(E->get());
String fname = finfo->name;
String fpath = finfo->path;
@@ -2300,6 +2331,7 @@ void FileSystemDock::_tree_rmb_select(const Vector2 &p_pos) {
// Right click is pressed in the tree.
Vector<String> paths = _tree_get_selected(false);
+ tree_popup->clear();
if (paths.size() == 1) {
if (paths[0].ends_with("/")) {
tree_popup->add_icon_item(get_theme_icon("GuiTreeArrowDown", "EditorIcons"), TTR("Expand All"), FOLDER_EXPAND_ALL);
@@ -2310,7 +2342,6 @@ void FileSystemDock::_tree_rmb_select(const Vector2 &p_pos) {
// Popup.
if (!paths.empty()) {
- tree_popup->clear();
tree_popup->set_size(Size2(1, 1));
_file_and_folders_fill_popup(tree_popup, paths);
tree_popup->set_position(tree->get_screen_position() + p_pos);
@@ -2430,11 +2461,31 @@ void FileSystemDock::_file_list_gui_input(Ref<InputEvent> p_event) {
}
}
-void FileSystemDock::_update_import_dock() {
- if (!import_dock_needs_update) {
+void FileSystemDock::_get_imported_files(const String &p_path, Vector<String> &files) const {
+ if (!p_path.ends_with("/")) {
+ if (FileAccess::exists(p_path + ".import")) {
+ files.push_back(p_path);
+ }
return;
}
+ DirAccess *da = DirAccess::open(p_path);
+ da->list_dir_begin();
+ String n = da->get_next();
+ while (n != String()) {
+ if (n != "." && n != ".." && !n.ends_with(".import")) {
+ String npath = p_path + n + (da->current_is_dir() ? "/" : "");
+ _get_imported_files(npath, files);
+ }
+ n = da->get_next();
+ }
+ da->list_dir_end();
+}
+
+void FileSystemDock::_update_import_dock() {
+ if (!import_dock_needs_update)
+ return;
+
// List selected.
Vector<String> selected;
if (display_mode == DISPLAY_MODE_TREE_ONLY) {
@@ -2444,29 +2495,24 @@ void FileSystemDock::_update_import_dock() {
} else {
// Use the file list.
for (int i = 0; i < files->get_item_count(); i++) {
- if (!files->is_selected(i)) {
+ if (!files->is_selected(i))
continue;
- }
selected.push_back(files->get_item_metadata(i));
}
}
+ // Expand directory selection
+ Vector<String> efiles;
+ for (int i = 0; i < selected.size(); i++) {
+ _get_imported_files(selected[i], efiles);
+ }
+
// Check import.
Vector<String> imports;
String import_type;
- for (int i = 0; i < selected.size(); i++) {
- String fpath = selected[i];
-
- if (fpath.ends_with("/")) {
- imports.clear();
- break;
- }
-
- if (!FileAccess::exists(fpath + ".import")) {
- imports.clear();
- break;
- }
+ for (int i = 0; i < efiles.size(); i++) {
+ String fpath = efiles[i];
Ref<ConfigFile> cf;
cf.instance();
Error err = cf->load(fpath + ".import");
@@ -2501,6 +2547,35 @@ void FileSystemDock::_feature_profile_changed() {
_update_display_mode(true);
}
+void FileSystemDock::set_file_sort(FileSortOption p_file_sort) {
+ for (int i = 0; i != FILE_SORT_MAX; i++) {
+ tree_button_sort->get_popup()->set_item_checked(i, (i == (int)p_file_sort));
+ file_list_button_sort->get_popup()->set_item_checked(i, (i == (int)p_file_sort));
+ }
+ file_sort = p_file_sort;
+
+ // Update everything needed.
+ _update_tree(_compute_uncollapsed_paths());
+ _update_file_list(true);
+}
+
+void FileSystemDock::_file_sort_popup(int p_id) {
+ set_file_sort((FileSortOption)p_id);
+}
+
+MenuButton *FileSystemDock::_create_file_menu_button() {
+ MenuButton *button = memnew(MenuButton);
+ button->set_flat(true);
+ button->set_tooltip(TTR("Sort files"));
+
+ PopupMenu *p = button->get_popup();
+ p->connect("id_pressed", callable_mp(this, &FileSystemDock::_file_sort_popup));
+ p->add_radio_check_item("Sort by Name", FILE_SORT_NAME);
+ p->add_radio_check_item("Sort by Type", FILE_SORT_TYPE);
+ p->set_item_checked(file_sort, true);
+ return button;
+}
+
void FileSystemDock::_bind_methods() {
ClassDB::bind_method(D_METHOD("_update_tree"), &FileSystemDock::_update_tree);
@@ -2578,7 +2653,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) {
button_toggle_display_mode->set_tooltip(TTR("Toggle Split Mode"));
toolbar_hbc->add_child(button_toggle_display_mode);
- HBoxContainer *toolbar2_hbc = memnew(HBoxContainer);
+ toolbar2_hbc = memnew(HBoxContainer);
toolbar2_hbc->add_theme_constant_override("separation", 0);
top_vbc->add_child(toolbar2_hbc);
@@ -2588,6 +2663,9 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) {
tree_search_box->connect("text_changed", callable_mp(this, &FileSystemDock::_search_changed), varray(tree_search_box));
toolbar2_hbc->add_child(tree_search_box);
+ tree_button_sort = _create_file_menu_button();
+ toolbar2_hbc->add_child(tree_button_sort);
+
file_list_popup = memnew(PopupMenu);
add_child(file_list_popup);
@@ -2629,6 +2707,9 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) {
file_list_search_box->connect("text_changed", callable_mp(this, &FileSystemDock::_search_changed), varray(file_list_search_box));
path_hb->add_child(file_list_search_box);
+ file_list_button_sort = _create_file_menu_button();
+ path_hb->add_child(file_list_button_sort);
+
button_file_list_display_mode = memnew(Button);
button_file_list_display_mode->set_flat(true);
path_hb->add_child(button_file_list_display_mode);
diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h
index b0118f11aa..f74e04ac2e 100644
--- a/editor/filesystem_dock.h
+++ b/editor/filesystem_dock.h
@@ -69,6 +69,12 @@ public:
DISPLAY_MODE_SPLIT,
};
+ enum FileSortOption {
+ FILE_SORT_NAME = 0,
+ FILE_SORT_TYPE,
+ FILE_SORT_MAX,
+ };
+
private:
enum FileMenu {
FILE_OPEN,
@@ -95,6 +101,8 @@ private:
FOLDER_COLLAPSE_ALL,
};
+ FileSortOption file_sort = FILE_SORT_NAME;
+
VBoxContainer *scanning_vb;
ProgressBar *scanning_progress;
VSplitContainer *split_box;
@@ -109,8 +117,13 @@ private:
Button *button_hist_next;
Button *button_hist_prev;
LineEdit *current_path;
+
+ HBoxContainer *toolbar2_hbc;
LineEdit *tree_search_box;
+ MenuButton *tree_button_sort;
+
LineEdit *file_list_search_box;
+ MenuButton *file_list_button_sort;
String searched_string;
Vector<String> uncollapsed_paths_before_search;
@@ -173,7 +186,7 @@ private:
ItemList *files;
bool import_dock_needs_update;
- Ref<Texture2D> _get_tree_item_icon(EditorFileSystemDirectory *p_dir, int p_idx);
+ Ref<Texture2D> _get_tree_item_icon(bool p_is_valid, String p_file_type);
bool _create_tree(TreeItem *p_parent, EditorFileSystemDirectory *p_dir, Vector<String> &uncollapsed_paths, bool p_select_in_favorites, bool p_unfold_path = false);
Vector<String> _compute_uncollapsed_paths();
void _update_tree(const Vector<String> &p_uncollapsed_paths = Vector<String>(), bool p_uncollapse_root = false, bool p_select_in_favorites = false, bool p_unfold_path = false);
@@ -195,6 +208,7 @@ private:
void _file_multi_selected(int p_index, bool p_selected);
void _tree_multi_selected(Object *p_item, int p_column, bool p_selected);
+ void _get_imported_files(const String &p_path, Vector<String> &files) const;
void _update_import_dock();
void _get_all_items_in_dir(EditorFileSystemDirectory *efsd, Vector<String> &files, Vector<String> &folders) const;
@@ -237,6 +251,9 @@ private:
void _search_changed(const String &p_text, const Control *p_from);
+ MenuButton *_create_file_menu_button();
+ void _file_sort_popup(int p_id);
+
void _file_and_folders_fill_popup(PopupMenu *p_popup, Vector<String> p_paths, bool p_display_path_dependent_options = true);
void _tree_rmb_select(const Vector2 &p_pos);
void _tree_rmb_empty(const Vector2 &p_pos);
@@ -255,6 +272,11 @@ private:
return NaturalNoCaseComparator()(name, fi.name);
}
};
+ struct FileInfoExtensionComparator {
+ bool operator()(const FileInfo &p_a, const FileInfo &p_b) const {
+ return NaturalNoCaseComparator()(p_a.name.get_extension() + p_a.name.get_basename(), p_b.name.get_extension() + p_b.name.get_basename());
+ }
+ };
void _search(EditorFileSystemDirectory *p_path, List<FileInfo> *matches, int p_max_items);
@@ -298,6 +320,9 @@ public:
void set_display_mode(DisplayMode p_display_mode);
DisplayMode get_display_mode() { return display_mode; }
+ void set_file_sort(FileSortOption p_file_sort);
+ FileSortOption get_file_sort() { return file_sort; }
+
void set_file_list_display_mode(FileListDisplayMode p_mode);
FileListDisplayMode get_file_list_display_mode() { return file_list_display_mode; };
diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp
index bd4bb57dcf..c2ccbdb08c 100644
--- a/editor/find_in_files.cpp
+++ b/editor/find_in_files.cpp
@@ -54,7 +54,7 @@ inline void pop_back(T &container) {
}
// TODO Copied from TextEdit private, would be nice to extract it in a single place
-static bool is_text_char(CharType c) {
+static bool is_text_char(char32_t c) {
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_';
}
@@ -854,7 +854,7 @@ public:
String get_line(FileAccess *f) {
_line_buffer.clear();
- CharType c = f->get_8();
+ char32_t c = f->get_8();
while (!f->eof_reached()) {
if (c == '\n') {
diff --git a/editor/icons/AutoKey.svg b/editor/icons/AutoKey.svg
index 9852d1360e..acc6665baf 100644
--- a/editor/icons/AutoKey.svg
+++ b/editor/icons/AutoKey.svg
@@ -1 +1 @@
-<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#e0e0e0"><path d="m5 3-3 5h-1v4h1.0507812a2.5 2.5 0 0 1 2.4492188-2 2.5 2.5 0 0 1 2.4453125 2h2.1054687a2.5 2.5 0 0 1 2.4492188-2 2.5 2.5 0 0 1 2.445312 2h1.054688v-4h-1l-4-5zm1 1h3l3 4h-8z" stroke-width=".033311"/><circle cx="4.5" cy="12.5" r="1.5"/><circle cx="11.5" cy="12.5" r="1.5"/></g></svg>
+<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#e0e0e0"><circle cx="8" cy="5" r="4"/><path d="m11 13c0 1.6569 1.3431 3 3 3h1v-2h-1c-.55228-.00001-.99999-.44772-1-1 .00001-.55228.44772-.99999 1-1h1v-2h-1c-1.6569 0-3 1.3431-3 3z" fill-opacity=".99608"/><path d="m4 10c-1.6569 0-3 1.3431-3 3v3h2v-3c.0000096-.5523.44772-1 1-1h1v-2z" fill-opacity=".99608"/><path d="m8 10c-3 0-3 3-3 3s0 3 3 3h1v-2h-1s-1 0-1-1h3 1s0-3-3-3zm-1 1h2v1h-2z"/></g></svg>
diff --git a/editor/icons/GuiToggleOff.svg b/editor/icons/GuiToggleOff.svg
index 928b55b201..9644ef176c 100644
--- a/editor/icons/GuiToggleOff.svg
+++ b/editor/icons/GuiToggleOff.svg
@@ -1 +1 @@
-<svg height="26" viewBox="0 0 42 25.999998" width="42" xmlns="http://www.w3.org/2000/svg"><g fill="#e0e0e0"><rect fill-opacity=".188235" height="16" rx="9" stroke-width="55.8958" width="38" x="2" y="5"/><circle cx="10" cy="13" r="5" stroke-width="97.3613"/></g></svg>
+<svg height="16" viewBox="0 0 38 15.999999" width="38" xmlns="http://www.w3.org/2000/svg"><g fill="#e0e0e0"><rect fill-opacity=".188235" height="14" rx="7" stroke-width="55.8958" width="36" x="1" y="1"/><circle cx="8" cy="8" r="5" stroke-width="97.3613"/></g></svg>
diff --git a/editor/icons/GuiToggleOn.svg b/editor/icons/GuiToggleOn.svg
index a79a8290b1..8ab0998f71 100644
--- a/editor/icons/GuiToggleOn.svg
+++ b/editor/icons/GuiToggleOn.svg
@@ -1 +1 @@
-<svg height="26" viewBox="0 0 42 25.999998" width="42" xmlns="http://www.w3.org/2000/svg"><path d="m11 5c-4.986 0-9 3.568-9 8s4.014 8 9 8h20c4.986 0 9-3.568 9-8s-4.014-8-9-8zm21 3a5 5 0 0 1 5 5 5 5 0 0 1 -5 5 5 5 0 0 1 -5-5 5 5 0 0 1 5-5z" fill="#e0e0e0" stroke-width="55.8958"/></svg>
+<svg height="16" viewBox="0 0 38 15.999999" width="38" xmlns="http://www.w3.org/2000/svg"><path d="m8 1c-3.878 0-7 3.122-7 7s3.122 7 7 7h22c3.878 0 7-3.122 7-7s-3.122-7-7-7zm22 2a5 5 0 0 1 5 5 5 5 0 0 1 -5 5 5 5 0 0 1 -5-5 5 5 0 0 1 5-5z" fill="#e0e0e0" stroke-width="55.8958"/></svg>
diff --git a/editor/icons/Rectangle.svg b/editor/icons/Rectangle.svg
new file mode 100644
index 0000000000..415940e68f
--- /dev/null
+++ b/editor/icons/Rectangle.svg
@@ -0,0 +1 @@
+<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><rect fill="none" height="8" rx=".000017" stroke="#e0e0e0" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2" width="12" x="2" y="4"/></svg>
diff --git a/editor/icons/SCsub b/editor/icons/SCsub
index e143276259..dd4243d750 100644
--- a/editor/icons/SCsub
+++ b/editor/icons/SCsub
@@ -4,14 +4,14 @@ Import("env")
import os
-from platform_methods import run_in_subprocess
import editor_icons_builders
-make_editor_icons_builder = Builder(
- action=run_in_subprocess(editor_icons_builders.make_editor_icons_action), suffix=".h", src_suffix=".svg"
-)
-env["BUILDERS"]["MakeEditorIconsBuilder"] = make_editor_icons_builder
+env["BUILDERS"]["MakeEditorIconsBuilder"] = Builder(
+ action=env.Run(editor_icons_builders.make_editor_icons_action, "Generating editor icons header."),
+ suffix=".h",
+ src_suffix=".svg",
+)
# Editor's own icons
icon_sources = Glob("*.svg")
diff --git a/editor/icons/ShortCut.svg b/editor/icons/Shortcut.svg
index 4ef16f0401..4ef16f0401 100644
--- a/editor/icons/ShortCut.svg
+++ b/editor/icons/Shortcut.svg
diff --git a/editor/import/collada.cpp b/editor/import/collada.cpp
index 41e71248a9..8eb68ecdcf 100644
--- a/editor/import/collada.cpp
+++ b/editor/import/collada.cpp
@@ -262,7 +262,7 @@ void Collada::_parse_asset(XMLParser &parser) {
COLLADA_PRINT("up axis: " + parser.get_node_data());
} else if (name == "unit") {
- state.unit_scale = parser.get_attribute_value("meter").to_double();
+ state.unit_scale = parser.get_attribute_value("meter").to_float();
COLLADA_PRINT("unit scale: " + rtos(state.unit_scale));
}
@@ -433,7 +433,7 @@ Transform Collada::_read_transform(XMLParser &parser) {
Vector<float> farr;
farr.resize(16);
for (int i = 0; i < 16; i++) {
- farr.write[i] = array[i].to_double();
+ farr.write[i] = array[i].to_float();
}
return _read_transform_from_array(farr);
@@ -469,7 +469,7 @@ Variant Collada::_parse_param(XMLParser &parser) {
if (parser.get_node_name() == "float") {
parser.read();
if (parser.get_node_type() == XMLParser::NODE_TEXT) {
- data = parser.get_node_data().to_double();
+ data = parser.get_node_data().to_float();
}
} else if (parser.get_node_name() == "float2") {
Vector<float> v2 = _read_float_array(parser);
@@ -735,29 +735,29 @@ void Collada::_parse_camera(XMLParser &parser) {
camera.mode = CameraData::MODE_ORTHOGONAL;
} else if (name == "xfov") {
parser.read();
- camera.perspective.x_fov = parser.get_node_data().to_double();
+ camera.perspective.x_fov = parser.get_node_data().to_float();
} else if (name == "yfov") {
parser.read();
- camera.perspective.y_fov = parser.get_node_data().to_double();
+ camera.perspective.y_fov = parser.get_node_data().to_float();
} else if (name == "xmag") {
parser.read();
- camera.orthogonal.x_mag = parser.get_node_data().to_double();
+ camera.orthogonal.x_mag = parser.get_node_data().to_float();
} else if (name == "ymag") {
parser.read();
- camera.orthogonal.y_mag = parser.get_node_data().to_double();
+ camera.orthogonal.y_mag = parser.get_node_data().to_float();
} else if (name == "aspect_ratio") {
parser.read();
- camera.aspect = parser.get_node_data().to_double();
+ camera.aspect = parser.get_node_data().to_float();
} else if (name == "znear") {
parser.read();
- camera.z_near = parser.get_node_data().to_double();
+ camera.z_near = parser.get_node_data().to_float();
} else if (name == "zfar") {
parser.read();
- camera.z_far = parser.get_node_data().to_double();
+ camera.z_far = parser.get_node_data().to_float();
}
} else if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END && parser.get_node_name() == "camera") {
@@ -806,20 +806,20 @@ void Collada::_parse_light(XMLParser &parser) {
} else if (name == "constant_attenuation") {
parser.read();
- light.constant_att = parser.get_node_data().to_double();
+ light.constant_att = parser.get_node_data().to_float();
} else if (name == "linear_attenuation") {
parser.read();
- light.linear_att = parser.get_node_data().to_double();
+ light.linear_att = parser.get_node_data().to_float();
} else if (name == "quadratic_attenuation") {
parser.read();
- light.quad_att = parser.get_node_data().to_double();
+ light.quad_att = parser.get_node_data().to_float();
} else if (name == "falloff_angle") {
parser.read();
- light.spot_angle = parser.get_node_data().to_double();
+ light.spot_angle = parser.get_node_data().to_float();
} else if (name == "falloff_exponent") {
parser.read();
- light.spot_exp = parser.get_node_data().to_double();
+ light.spot_exp = parser.get_node_data().to_float();
}
} else if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END && parser.get_node_name() == "light") {
@@ -1877,10 +1877,10 @@ void Collada::_parse_animation_clip(XMLParser &parser) {
clip.name = parser.get_attribute_value("id");
}
if (parser.has_attribute("start")) {
- clip.begin = parser.get_attribute_value("start").to_double();
+ clip.begin = parser.get_attribute_value("start").to_float();
}
if (parser.has_attribute("end")) {
- clip.end = parser.get_attribute_value("end").to_double();
+ clip.end = parser.get_attribute_value("end").to_float();
}
while (parser.read() == OK) {
diff --git a/editor/import/editor_scene_importer_gltf.cpp b/editor/import/editor_scene_importer_gltf.cpp
index bb144d2ed6..266df78949 100644
--- a/editor/import/editor_scene_importer_gltf.cpp
+++ b/editor/import/editor_scene_importer_gltf.cpp
@@ -184,8 +184,11 @@ String EditorSceneImporterGLTF::_gen_unique_name(GLTFState &state, const String
String EditorSceneImporterGLTF::_sanitize_bone_name(const String &name) {
String p_name = name.camelcase_to_underscore(true);
- RegEx pattern_del("([^a-zA-Z0-9_ ])+");
- p_name = pattern_del.sub(p_name, "", true);
+ RegEx pattern_nocolon(":");
+ p_name = pattern_nocolon.sub(p_name, "_", true);
+
+ RegEx pattern_noslash("/");
+ p_name = pattern_noslash.sub(p_name, "_", true);
RegEx pattern_nospace(" +");
p_name = pattern_nospace.sub(p_name, "_", true);
@@ -200,8 +203,10 @@ String EditorSceneImporterGLTF::_sanitize_bone_name(const String &name) {
}
String EditorSceneImporterGLTF::_gen_unique_bone_name(GLTFState &state, const GLTFSkeletonIndex skel_i, const String &p_name) {
- const String s_name = _sanitize_bone_name(p_name);
-
+ String s_name = _sanitize_bone_name(p_name);
+ if (s_name.empty()) {
+ s_name = "bone";
+ }
String name;
int index = 1;
while (true) {
@@ -379,13 +384,17 @@ Error EditorSceneImporterGLTF::_parse_buffers(GLTFState &state, const String &p_
Vector<uint8_t> buffer_data;
String uri = buffer["uri"];
- if (uri.findn("data:application/octet-stream;base64") == 0) {
- //embedded data
+ if (uri.begins_with("data:")) { // Embedded data using base64.
+ // Validate data MIME types and throw an error if it's one we don't know/support.
+ if (!uri.begins_with("data:application/octet-stream;base64") &&
+ !uri.begins_with("data:application/gltf-buffer;base64")) {
+ ERR_PRINT("glTF: Got buffer with an unknown URI data type: " + uri);
+ }
buffer_data = _parse_base64_uri(uri);
- } else {
- uri = p_base_path.plus_file(uri).replace("\\", "/"); //fix for windows
+ } else { // Relative path to an external image file.
+ uri = p_base_path.plus_file(uri).replace("\\", "/"); // Fix for Windows.
buffer_data = FileAccess::get_file_as_array(uri);
- ERR_FAIL_COND_V(buffer.size() == 0, ERR_PARSE_ERROR);
+ ERR_FAIL_COND_V_MSG(buffer.size() == 0, ERR_PARSE_ERROR, "glTF: Couldn't load binary file as an array: " + uri);
}
ERR_FAIL_COND_V(!buffer.has("byteLength"), ERR_PARSE_ERROR);
@@ -1226,6 +1235,12 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) {
const Ref<Material> &mat = state.materials[material];
mesh.mesh->surface_set_material(mesh.mesh->get_surface_count() - 1, mat);
+ } else {
+ Ref<StandardMaterial3D> mat;
+ mat.instance();
+ mat->set_flag(StandardMaterial3D::FLAG_ALBEDO_FROM_VERTEX_COLOR, true);
+
+ mesh.mesh->surface_set_material(mesh.mesh->get_surface_count() - 1, mat);
}
}
@@ -1255,12 +1270,28 @@ Error EditorSceneImporterGLTF::_parse_images(GLTFState &state, const String &p_b
return OK;
}
+ // Ref: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#images
+
const Array &images = state.json["images"];
for (int i = 0; i < images.size(); i++) {
const Dictionary &d = images[i];
+ // glTF 2.0 supports PNG and JPEG types, which can be specified as (from spec):
+ // "- a URI to an external file in one of the supported images formats, or
+ // - a URI with embedded base64-encoded data, or
+ // - a reference to a bufferView; in that case mimeType must be defined."
+ // Since mimeType is optional for external files and base64 data, we'll have to
+ // fall back on letting Godot parse the data to figure out if it's PNG or JPEG.
+
+ // We'll assume that we use either URI or bufferView, so let's warn the user
+ // if their image somehow uses both. And fail if it has neither.
+ ERR_CONTINUE_MSG(!d.has("uri") && !d.has("bufferView"), "Invalid image definition in glTF file, it should specific an 'uri' or 'bufferView'.");
+ if (d.has("uri") && d.has("bufferView")) {
+ WARN_PRINT("Invalid image definition in glTF file using both 'uri' and 'bufferView'. 'bufferView' will take precedence.");
+ }
+
String mimetype;
- if (d.has("mimeType")) {
+ if (d.has("mimeType")) { // Should be "image/png" or "image/jpeg".
mimetype = d["mimeType"];
}
@@ -1269,23 +1300,52 @@ Error EditorSceneImporterGLTF::_parse_images(GLTFState &state, const String &p_b
int data_size = 0;
if (d.has("uri")) {
+ // Handles the first two bullet points from the spec (embedded data, or external file).
String uri = d["uri"];
- if (uri.findn("data:application/octet-stream;base64") == 0 ||
- uri.findn("data:" + mimetype + ";base64") == 0) {
- //embedded data
+ if (uri.begins_with("data:")) { // Embedded data using base64.
+ // Validate data MIME types and throw an error if it's one we don't know/support.
+ if (!uri.begins_with("data:application/octet-stream;base64") &&
+ !uri.begins_with("data:application/gltf-buffer;base64") &&
+ !uri.begins_with("data:image/png;base64") &&
+ !uri.begins_with("data:image/jpeg;base64")) {
+ ERR_PRINT("glTF: Got image data with an unknown URI data type: " + uri);
+ }
data = _parse_base64_uri(uri);
data_ptr = data.ptr();
data_size = data.size();
- } else {
- uri = p_base_path.plus_file(uri).replace("\\", "/"); //fix for windows
- Ref<Texture2D> texture = ResourceLoader::load(uri);
- state.images.push_back(texture);
- continue;
+ // mimeType is optional, but if we have it defined in the URI, let's use it.
+ if (mimetype.empty()) {
+ if (uri.begins_with("data:image/png;base64")) {
+ mimetype = "image/png";
+ } else if (uri.begins_with("data:image/jpeg;base64")) {
+ mimetype = "image/jpeg";
+ }
+ }
+ } else { // Relative path to an external image file.
+ uri = p_base_path.plus_file(uri).replace("\\", "/"); // Fix for Windows.
+ // The spec says that if mimeType is defined, we should enforce it.
+ // So we should only rely on ResourceLoader::load if mimeType is not defined,
+ // otherwise we should use the same logic as for buffers.
+ if (mimetype == "image/png" || mimetype == "image/jpeg") {
+ // Load data buffer and rely on PNG and JPEG-specific logic below to load the image.
+ // This makes it possible to load a file with a wrong extension but correct MIME type,
+ // e.g. "foo.jpg" containing PNG data and with MIME type "image/png". ResourceLoader would fail.
+ data = FileAccess::get_file_as_array(uri);
+ ERR_FAIL_COND_V_MSG(data.size() == 0, ERR_PARSE_ERROR, "glTF: Couldn't load image file as an array: " + uri);
+ data_ptr = data.ptr();
+ data_size = data.size();
+ } else {
+ // Good old ResourceLoader will rely on file extension.
+ Ref<Texture2D> texture = ResourceLoader::load(uri);
+ state.images.push_back(texture);
+ continue;
+ }
}
- }
+ } else if (d.has("bufferView")) {
+ // Handles the third bullet point from the spec (bufferView).
+ ERR_FAIL_COND_V_MSG(mimetype.empty(), ERR_FILE_CORRUPT, "glTF: Image specifies 'bufferView' but no 'mimeType', which is invalid.");
- if (d.has("bufferView")) {
const GLTFBufferViewIndex bvi = d["bufferView"];
ERR_FAIL_INDEX_V(bvi, state.buffer_views.size(), ERR_PARAMETER_RANGE_ERROR);
@@ -1301,45 +1361,36 @@ Error EditorSceneImporterGLTF::_parse_images(GLTFState &state, const String &p_b
data_size = bv.byte_length;
}
- ERR_FAIL_COND_V(mimetype == "", ERR_FILE_CORRUPT);
+ Ref<Image> img;
- if (mimetype.findn("png") != -1) {
- //is a png
+ if (mimetype == "image/png") { // Load buffer as PNG.
ERR_FAIL_COND_V(Image::_png_mem_loader_func == nullptr, ERR_UNAVAILABLE);
-
- const Ref<Image> img = Image::_png_mem_loader_func(data_ptr, data_size);
-
- ERR_FAIL_COND_V(img.is_null(), ERR_FILE_CORRUPT);
-
- Ref<ImageTexture> t;
- t.instance();
- t->create_from_image(img);
-
- state.images.push_back(t);
- continue;
- }
-
- if (mimetype.findn("jpeg") != -1) {
- //is a jpg
+ img = Image::_png_mem_loader_func(data_ptr, data_size);
+ } else if (mimetype == "image/jpeg") { // Loader buffer as JPEG.
ERR_FAIL_COND_V(Image::_jpg_mem_loader_func == nullptr, ERR_UNAVAILABLE);
+ img = Image::_jpg_mem_loader_func(data_ptr, data_size);
+ } else {
+ // We can land here if we got an URI with base64-encoded data with application/* MIME type,
+ // and the optional mimeType property was not defined to tell us how to handle this data (or was invalid).
+ // So let's try PNG first, then JPEG.
+ ERR_FAIL_COND_V(Image::_png_mem_loader_func == nullptr, ERR_UNAVAILABLE);
+ img = Image::_png_mem_loader_func(data_ptr, data_size);
+ if (img.is_null()) {
+ ERR_FAIL_COND_V(Image::_jpg_mem_loader_func == nullptr, ERR_UNAVAILABLE);
+ img = Image::_jpg_mem_loader_func(data_ptr, data_size);
+ }
+ }
- const Ref<Image> img = Image::_jpg_mem_loader_func(data_ptr, data_size);
-
- ERR_FAIL_COND_V(img.is_null(), ERR_FILE_CORRUPT);
-
- Ref<ImageTexture> t;
- t.instance();
- t->create_from_image(img);
-
- state.images.push_back(t);
+ ERR_FAIL_COND_V_MSG(img.is_null(), ERR_FILE_CORRUPT, "glTF: Couldn't load image with its given mimetype: " + mimetype);
- continue;
- }
+ Ref<ImageTexture> t;
+ t.instance();
+ t->create_from_image(img);
- ERR_FAIL_V(ERR_FILE_CORRUPT);
+ state.images.push_back(t);
}
- print_verbose("Total images: " + itos(state.images.size()));
+ print_verbose("glTF: Total images: " + itos(state.images.size()));
return OK;
}
@@ -1386,6 +1437,7 @@ Error EditorSceneImporterGLTF::_parse_materials(GLTFState &state) {
if (d.has("name")) {
material->set_name(d["name"]);
}
+ material->set_flag(StandardMaterial3D::FLAG_ALBEDO_FROM_VERTEX_COLOR, true);
if (d.has("pbrMetallicRoughness")) {
const Dictionary &mr = d["pbrMetallicRoughness"];
@@ -1498,7 +1550,7 @@ Error EditorSceneImporterGLTF::_parse_materials(GLTFState &state) {
state.materials.push_back(material);
}
- print_verbose("Total materials: " + itos(state.materials.size()));
+ print_verbose("glTF: Total materials: " + itos(state.materials.size()));
return OK;
}
@@ -3049,6 +3101,8 @@ Node3D *EditorSceneImporterGLTF::_generate_scene(GLTFState &state, const int p_b
}
Node *EditorSceneImporterGLTF::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
+ print_verbose(vformat("glTF: Importing file %s as scene.", p_path));
+
GLTFState state;
if (p_path.to_lower().ends_with("glb")) {
diff --git a/editor/import/resource_importer_layered_texture.cpp b/editor/import/resource_importer_layered_texture.cpp
index f954931cee..ac068c05cf 100644
--- a/editor/import/resource_importer_layered_texture.cpp
+++ b/editor/import/resource_importer_layered_texture.cpp
@@ -51,7 +51,7 @@ String ResourceImporterLayeredTexture::get_importer_name() const {
return "cubemap_array_texture";
} break;
case MODE_3D: {
- return "cubemap_3d_texture";
+ return "3d_texture";
} break;
}
@@ -70,7 +70,7 @@ String ResourceImporterLayeredTexture::get_visible_name() const {
return "CubemapArray";
} break;
case MODE_3D: {
- return "3D";
+ return "Texture3D";
} break;
}
@@ -156,15 +156,103 @@ void ResourceImporterLayeredTexture::get_import_options(List<ImportOption> *r_op
}
void ResourceImporterLayeredTexture::_save_tex(Vector<Ref<Image>> p_images, const String &p_to_path, int p_compress_mode, float p_lossy, Image::CompressMode p_vram_compression, Image::CompressSource p_csource, Image::UsedChannels used_channels, bool p_mipmaps, bool p_force_po2) {
- for (int i = 0; i < p_images.size(); i++) {
- if (p_force_po2) {
- p_images.write[i]->resize_to_po2();
+ Vector<Ref<Image>> mipmap_images; //for 3D
+
+ if (mode == MODE_3D) {
+ //3D saves in its own way
+
+ for (int i = 0; i < p_images.size(); i++) {
+ if (p_images.write[i]->has_mipmaps()) {
+ p_images.write[i]->clear_mipmaps();
+ }
+
+ if (p_force_po2) {
+ p_images.write[i]->resize_to_po2();
+ }
}
if (p_mipmaps) {
- p_images.write[i]->generate_mipmaps();
- } else {
- p_images.write[i]->clear_mipmaps();
+ Vector<Ref<Image>> parent_images = p_images;
+ //create 3D mipmaps, this is horrible, though not used very often
+ int w = p_images[0]->get_width();
+ int h = p_images[0]->get_height();
+ int d = p_images.size();
+
+ while (w > 1 || h > 1 || d > 1) {
+ Vector<Ref<Image>> mipmaps;
+ int mm_w = MAX(1, w >> 1);
+ int mm_h = MAX(1, h >> 1);
+ int mm_d = MAX(1, d >> 1);
+
+ for (int i = 0; i < mm_d; i++) {
+ Ref<Image> mm;
+ mm.instance();
+ mm->create(mm_w, mm_h, false, p_images[0]->get_format());
+ Vector3 pos;
+ pos.z = float(i) * float(d) / float(mm_d) + 0.5;
+ for (int x = 0; x < mm_w; x++) {
+ for (int y = 0; y < mm_h; y++) {
+ pos.x = float(x) * float(w) / float(mm_w) + 0.5;
+ pos.y = float(y) * float(h) / float(mm_h) + 0.5;
+
+ Vector3i posi = Vector3i(pos);
+ Vector3 fract = pos - Vector3(posi);
+ Vector3i posi_n = posi;
+ if (posi_n.x < w - 1) {
+ posi_n.x++;
+ }
+ if (posi_n.y < h - 1) {
+ posi_n.y++;
+ }
+ if (posi_n.z < d - 1) {
+ posi_n.z++;
+ }
+
+ Color c000 = parent_images[posi.z]->get_pixel(posi.x, posi.y);
+ Color c100 = parent_images[posi.z]->get_pixel(posi_n.x, posi.y);
+ Color c010 = parent_images[posi.z]->get_pixel(posi.x, posi_n.y);
+ Color c110 = parent_images[posi.z]->get_pixel(posi_n.x, posi_n.y);
+ Color c001 = parent_images[posi_n.z]->get_pixel(posi.x, posi.y);
+ Color c101 = parent_images[posi_n.z]->get_pixel(posi_n.x, posi.y);
+ Color c011 = parent_images[posi_n.z]->get_pixel(posi.x, posi_n.y);
+ Color c111 = parent_images[posi_n.z]->get_pixel(posi_n.x, posi_n.y);
+
+ Color cx00 = c000.lerp(c100, fract.x);
+ Color cx01 = c001.lerp(c101, fract.x);
+ Color cx10 = c010.lerp(c110, fract.x);
+ Color cx11 = c011.lerp(c111, fract.x);
+
+ Color cy0 = cx00.lerp(cx10, fract.y);
+ Color cy1 = cx01.lerp(cx11, fract.y);
+
+ Color cz = cy0.lerp(cy1, fract.z);
+
+ mm->set_pixel(x, y, cz);
+ }
+ }
+
+ mipmaps.push_back(mm);
+ }
+
+ w = mm_w;
+ h = mm_h;
+ d = mm_d;
+
+ mipmap_images.append_array(mipmaps);
+ parent_images = mipmaps;
+ }
+ }
+ } else {
+ for (int i = 0; i < p_images.size(); i++) {
+ if (p_force_po2) {
+ p_images.write[i]->resize_to_po2();
+ }
+
+ if (p_mipmaps) {
+ p_images.write[i]->generate_mipmaps();
+ } else {
+ p_images.write[i]->clear_mipmaps();
+ }
}
}
@@ -175,13 +263,12 @@ void ResourceImporterLayeredTexture::_save_tex(Vector<Ref<Image>> p_images, cons
f->store_8('L');
f->store_32(StreamTextureLayered::FORMAT_VERSION);
- f->store_32(p_images.size());
+ f->store_32(p_images.size()); //2d layers or 3d depth
f->store_32(mode);
- f->store_32(0); //dataformat
- f->store_32(0); //mipmap limit
+ f->store_32(0);
- //reserved
f->store_32(0);
+ f->store_32(mipmap_images.size()); // amount of mipmaps
f->store_32(0);
f->store_32(0);
@@ -189,6 +276,10 @@ void ResourceImporterLayeredTexture::_save_tex(Vector<Ref<Image>> p_images, cons
ResourceImporterTexture::save_to_stex_format(f, p_images[i], ResourceImporterTexture::CompressMode(p_compress_mode), used_channels, p_vram_compression, p_lossy);
}
+ for (int i = 0; i < mipmap_images.size(); i++) {
+ ResourceImporterTexture::save_to_stex_format(f, mipmap_images[i], ResourceImporterTexture::CompressMode(p_compress_mode), used_channels, p_vram_compression, p_lossy);
+ }
+
f->close();
}
diff --git a/editor/import/resource_importer_layered_texture.h b/editor/import/resource_importer_layered_texture.h
index 2d50889e9e..b54923be00 100644
--- a/editor/import/resource_importer_layered_texture.h
+++ b/editor/import/resource_importer_layered_texture.h
@@ -93,10 +93,6 @@ private:
static const char *compression_formats[];
protected:
- static void _texture_reimport_srgb(const Ref<StreamTexture2D> &p_tex);
- static void _texture_reimport_3d(const Ref<StreamTexture2D> &p_tex);
- static void _texture_reimport_normal(const Ref<StreamTexture2D> &p_tex);
-
static ResourceImporterLayeredTexture *singleton;
public:
diff --git a/editor/input_map_editor.cpp b/editor/input_map_editor.cpp
index 70c354e55a..c67e16d371 100644
--- a/editor/input_map_editor.cpp
+++ b/editor/input_map_editor.cpp
@@ -36,44 +36,44 @@
#include "editor/editor_scale.h"
static const char *_button_descriptions[JOY_SDL_BUTTONS] = {
- "Face Bottom, DualShock Cross, Xbox A, Nintendo B",
- "Face Right, DualShock Circle, Xbox B, Nintendo A",
- "Face Left, DualShock Square, Xbox X, Nintendo Y",
- "Face Top, DualShock Triangle, Xbox Y, Nintendo X",
- "DualShock Select, Xbox Back, Nintendo -",
- "Home, DualShock PS, Guide",
- "Start, Nintendo +",
- "Left Stick, DualShock L3, Xbox L/LS",
- "Right Stick, DualShock R3, Xbox R/RS",
- "Left Shoulder, DualShock L1, Xbox LB",
- "Right Shoulder, DualShock R1, Xbox RB",
- "D-Pad Up",
- "D-Pad Down",
- "D-Pad Left",
- "D-Pad Right"
+ TTRC("Face Bottom, DualShock Cross, Xbox A, Nintendo B"),
+ TTRC("Face Right, DualShock Circle, Xbox B, Nintendo A"),
+ TTRC("Face Left, DualShock Square, Xbox X, Nintendo Y"),
+ TTRC("Face Top, DualShock Triangle, Xbox Y, Nintendo X"),
+ TTRC("DualShock Select, Xbox Back, Nintendo -"),
+ TTRC("Home, DualShock PS, Guide"),
+ TTRC("Start, Nintendo +"),
+ TTRC("Left Stick, DualShock L3, Xbox L/LS"),
+ TTRC("Right Stick, DualShock R3, Xbox R/RS"),
+ TTRC("Left Shoulder, DualShock L1, Xbox LB"),
+ TTRC("Right Shoulder, DualShock R1, Xbox RB"),
+ TTRC("D-Pad Up"),
+ TTRC("D-Pad Down"),
+ TTRC("D-Pad Left"),
+ TTRC("D-Pad Right")
};
static const char *_axis_descriptions[JOY_AXIS_MAX * 2] = {
- "Left Stick Left",
- "Left Stick Right",
- "Left Stick Up",
- "Left Stick Down",
- "Right Stick Left",
- "Right Stick Right",
- "Right Stick Up",
- "Right Stick Down",
- "Joystick 2 Left",
- "Joystick 2 Right, Left Trigger, L2, LT",
- "Joystick 2 Up",
- "Joystick 2 Down, Right Trigger, R2, RT",
- "Joystick 3 Left",
- "Joystick 3 Right",
- "Joystick 3 Up",
- "Joystick 3 Down",
- "Joystick 4 Left",
- "Joystick 4 Right",
- "Joystick 4 Up",
- "Joystick 4 Down",
+ TTRC("Left Stick Left"),
+ TTRC("Left Stick Right"),
+ TTRC("Left Stick Up"),
+ TTRC("Left Stick Down"),
+ TTRC("Right Stick Left"),
+ TTRC("Right Stick Right"),
+ TTRC("Right Stick Up"),
+ TTRC("Right Stick Down"),
+ TTRC("Joystick 2 Left"),
+ TTRC("Joystick 2 Right, Left Trigger, L2, LT"),
+ TTRC("Joystick 2 Up"),
+ TTRC("Joystick 2 Down, Right Trigger, R2, RT"),
+ TTRC("Joystick 3 Left"),
+ TTRC("Joystick 3 Right"),
+ TTRC("Joystick 3 Up"),
+ TTRC("Joystick 3 Down"),
+ TTRC("Joystick 4 Left"),
+ TTRC("Joystick 4 Right"),
+ TTRC("Joystick 4 Up"),
+ TTRC("Joystick 4 Down"),
};
void InputMapEditor::_notification(int p_what) {
@@ -100,7 +100,7 @@ void InputMapEditor::_notification(int p_what) {
}
static bool _validate_action_name(const String &p_name) {
- const CharType *cstr = p_name.c_str();
+ const char32_t *cstr = p_name.get_data();
for (int i = 0; cstr[i]; i++) {
if (cstr[i] == '/' || cstr[i] == ':' || cstr[i] == '"' ||
cstr[i] == '=' || cstr[i] == '\\' || cstr[i] < 32) {
diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp
index 8f1b8838d8..c88cd8ea5f 100644
--- a/editor/inspector_dock.cpp
+++ b/editor/inspector_dock.cpp
@@ -164,7 +164,7 @@ void InspectorDock::_resource_file_selected(String p_file) {
editor->push_item(res.operator->());
}
-void InspectorDock::_save_resource(bool save_as) const {
+void InspectorDock::_save_resource(bool save_as) {
ObjectID current = EditorNode::get_singleton()->get_editor_history()->get_current();
Object *current_obj = current.is_valid() ? ObjectDB::get_instance(current) : nullptr;
@@ -179,7 +179,7 @@ void InspectorDock::_save_resource(bool save_as) const {
}
}
-void InspectorDock::_unref_resource() const {
+void InspectorDock::_unref_resource() {
ObjectID current = EditorNode::get_singleton()->get_editor_history()->get_current();
Object *current_obj = current.is_valid() ? ObjectDB::get_instance(current) : nullptr;
@@ -190,7 +190,7 @@ void InspectorDock::_unref_resource() const {
editor->edit_current();
}
-void InspectorDock::_copy_resource() const {
+void InspectorDock::_copy_resource() {
ObjectID current = EditorNode::get_singleton()->get_editor_history()->get_current();
Object *current_obj = current.is_valid() ? ObjectDB::get_instance(current) : nullptr;
@@ -201,7 +201,7 @@ void InspectorDock::_copy_resource() const {
EditorSettings::get_singleton()->set_resource_clipboard(current_res);
}
-void InspectorDock::_paste_resource() const {
+void InspectorDock::_paste_resource() {
RES r = EditorSettings::get_singleton()->get_resource_clipboard();
if (r.is_valid()) {
editor->push_item(EditorSettings::get_singleton()->get_resource_clipboard().ptr(), String());
diff --git a/editor/inspector_dock.h b/editor/inspector_dock.h
index 551d3d1643..b2dabf19c5 100644
--- a/editor/inspector_dock.h
+++ b/editor/inspector_dock.h
@@ -96,10 +96,10 @@ class InspectorDock : public VBoxContainer {
void _load_resource(const String &p_type = "");
void _open_resource_selector() { _load_resource(); }; // just used to call from arg-less signal
void _resource_file_selected(String p_file);
- void _save_resource(bool save_as) const;
- void _unref_resource() const;
- void _copy_resource() const;
- void _paste_resource() const;
+ void _save_resource(bool save_as);
+ void _unref_resource();
+ void _copy_resource();
+ void _paste_resource();
void _warning_pressed();
void _resource_created();
diff --git a/editor/localization_editor.cpp b/editor/localization_editor.cpp
index 6764f70d9b..e4562c57af 100644
--- a/editor/localization_editor.cpp
+++ b/editor/localization_editor.cpp
@@ -319,7 +319,7 @@ void LocalizationEditor::_translation_filter_option_changed() {
}
}
- f_locales = f_locales.sort();
+ f_locales.sort();
undo_redo->create_action(TTR("Changed Locale Filter"));
undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/locale_filter", f_locales_all);
diff --git a/editor/node_3d_editor_gizmos.cpp b/editor/node_3d_editor_gizmos.cpp
index 2ddcf3d877..397a958d8f 100644
--- a/editor/node_3d_editor_gizmos.cpp
+++ b/editor/node_3d_editor_gizmos.cpp
@@ -41,6 +41,7 @@
#include "scene/3d/decal.h"
#include "scene/3d/gi_probe.h"
#include "scene/3d/gpu_particles_3d.h"
+#include "scene/3d/gpu_particles_collision_3d.h"
#include "scene/3d/light_3d.h"
#include "scene/3d/lightmap_probe.h"
#include "scene/3d/listener_3d.h"
@@ -1912,7 +1913,7 @@ void RayCast3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
Vector<Vector3> lines;
lines.push_back(Vector3());
- lines.push_back(raycast->get_cast_to());
+ lines.push_back(raycast->get_target_position());
const Ref<StandardMaterial3D> material =
get_material(raycast->is_enabled() ? "shape_material" : "shape_material_disabled", p_gizmo);
@@ -2455,6 +2456,266 @@ void GPUParticles3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
////
+////
+
+GPUParticlesCollision3DGizmoPlugin::GPUParticlesCollision3DGizmoPlugin() {
+ Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/particle_collision", Color(0.5, 0.7, 1));
+ create_material("shape_material", gizmo_color);
+ gizmo_color.a = 0.15;
+ create_material("shape_material_internal", gizmo_color);
+
+ create_handle_material("handles");
+}
+
+bool GPUParticlesCollision3DGizmoPlugin::has_gizmo(Node3D *p_spatial) {
+ return (Object::cast_to<GPUParticlesCollision3D>(p_spatial) != nullptr) || (Object::cast_to<GPUParticlesAttractor3D>(p_spatial) != nullptr);
+}
+
+String GPUParticlesCollision3DGizmoPlugin::get_name() const {
+ return "GPUParticlesCollision3D";
+}
+
+int GPUParticlesCollision3DGizmoPlugin::get_priority() const {
+ return -1;
+}
+
+String GPUParticlesCollision3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_idx) const {
+ const Node3D *cs = p_gizmo->get_spatial_node();
+
+ if (Object::cast_to<GPUParticlesCollisionSphere>(cs) || Object::cast_to<GPUParticlesAttractorSphere>(cs)) {
+ return "Radius";
+ }
+
+ if (Object::cast_to<GPUParticlesCollisionBox>(cs) || Object::cast_to<GPUParticlesAttractorBox>(cs) || Object::cast_to<GPUParticlesAttractorVectorField>(cs) || Object::cast_to<GPUParticlesCollisionSDF>(cs) || Object::cast_to<GPUParticlesCollisionHeightField>(cs)) {
+ return "Extents";
+ }
+
+ return "";
+}
+
+Variant GPUParticlesCollision3DGizmoPlugin::get_handle_value(EditorNode3DGizmo *p_gizmo, int p_idx) const {
+ const Node3D *cs = p_gizmo->get_spatial_node();
+
+ if (Object::cast_to<GPUParticlesCollisionSphere>(cs) || Object::cast_to<GPUParticlesAttractorSphere>(cs)) {
+ return p_gizmo->get_spatial_node()->call("get_radius");
+ }
+
+ if (Object::cast_to<GPUParticlesCollisionBox>(cs) || Object::cast_to<GPUParticlesAttractorBox>(cs) || Object::cast_to<GPUParticlesAttractorVectorField>(cs) || Object::cast_to<GPUParticlesCollisionSDF>(cs) || Object::cast_to<GPUParticlesCollisionHeightField>(cs)) {
+ return Vector3(p_gizmo->get_spatial_node()->call("get_extents"));
+ }
+
+ return Variant();
+}
+
+void GPUParticlesCollision3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Camera3D *p_camera, const Point2 &p_point) {
+ Node3D *sn = p_gizmo->get_spatial_node();
+
+ Transform gt = sn->get_global_transform();
+ Transform gi = gt.affine_inverse();
+
+ Vector3 ray_from = p_camera->project_ray_origin(p_point);
+ Vector3 ray_dir = p_camera->project_ray_normal(p_point);
+
+ Vector3 sg[2] = { gi.xform(ray_from), gi.xform(ray_from + ray_dir * 4096) };
+
+ if (Object::cast_to<GPUParticlesCollisionSphere>(sn) || Object::cast_to<GPUParticlesAttractorSphere>(sn)) {
+ Vector3 ra, rb;
+ Geometry3D::get_closest_points_between_segments(Vector3(), Vector3(4096, 0, 0), sg[0], sg[1], ra, rb);
+ float d = ra.x;
+ if (Node3DEditor::get_singleton()->is_snap_enabled()) {
+ d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap());
+ }
+
+ if (d < 0.001) {
+ d = 0.001;
+ }
+
+ sn->call("set_radius", d);
+ }
+
+ if (Object::cast_to<GPUParticlesCollisionBox>(sn) || Object::cast_to<GPUParticlesAttractorBox>(sn) || Object::cast_to<GPUParticlesAttractorVectorField>(sn) || Object::cast_to<GPUParticlesCollisionSDF>(sn) || Object::cast_to<GPUParticlesCollisionHeightField>(sn)) {
+ Vector3 axis;
+ axis[p_idx] = 1.0;
+ Vector3 ra, rb;
+ Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb);
+ float d = ra[p_idx];
+ if (Node3DEditor::get_singleton()->is_snap_enabled()) {
+ d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap());
+ }
+
+ if (d < 0.001) {
+ d = 0.001;
+ }
+
+ Vector3 he = sn->call("get_extents");
+ he[p_idx] = d;
+ sn->call("set_extents", he);
+ }
+}
+
+void GPUParticlesCollision3DGizmoPlugin::commit_handle(EditorNode3DGizmo *p_gizmo, int p_idx, 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)) {
+ if (p_cancel) {
+ sn->call("set_radius", p_restore);
+ return;
+ }
+
+ UndoRedo *ur = Node3DEditor::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Change Radius"));
+ ur->add_do_method(sn, "set_radius", sn->call("get_radius"));
+ ur->add_undo_method(sn, "set_radius", p_restore);
+ ur->commit_action();
+ }
+
+ if (Object::cast_to<GPUParticlesCollisionBox>(sn) || Object::cast_to<GPUParticlesAttractorBox>(sn) || Object::cast_to<GPUParticlesAttractorVectorField>(sn) || Object::cast_to<GPUParticlesCollisionSDF>(sn) || Object::cast_to<GPUParticlesCollisionHeightField>(sn)) {
+ if (p_cancel) {
+ sn->call("set_extents", p_restore);
+ return;
+ }
+
+ UndoRedo *ur = Node3DEditor::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Change Box Shape Extents"));
+ ur->add_do_method(sn, "set_extents", sn->call("get_extents"));
+ ur->add_undo_method(sn, "set_extents", p_restore);
+ ur->commit_action();
+ }
+}
+
+void GPUParticlesCollision3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
+ Node3D *cs = p_gizmo->get_spatial_node();
+
+ print_line("redraw request " + itos(cs != nullptr));
+ p_gizmo->clear();
+
+ const Ref<Material> material =
+ get_material("shape_material", p_gizmo);
+ const Ref<Material> material_internal =
+ get_material("shape_material_internal", p_gizmo);
+
+ Ref<Material> handles_material = get_material("handles");
+
+ if (Object::cast_to<GPUParticlesCollisionSphere>(cs) || Object::cast_to<GPUParticlesAttractorSphere>(cs)) {
+ float r = cs->call("get_radius");
+
+ Vector<Vector3> points;
+
+ for (int i = 0; i <= 360; i++) {
+ float ra = Math::deg2rad((float)i);
+ float rb = Math::deg2rad((float)i + 1);
+ Point2 a = Vector2(Math::sin(ra), Math::cos(ra)) * r;
+ Point2 b = Vector2(Math::sin(rb), Math::cos(rb)) * r;
+
+ points.push_back(Vector3(a.x, 0, a.y));
+ points.push_back(Vector3(b.x, 0, b.y));
+ points.push_back(Vector3(0, a.x, a.y));
+ points.push_back(Vector3(0, b.x, b.y));
+ points.push_back(Vector3(a.x, a.y, 0));
+ points.push_back(Vector3(b.x, b.y, 0));
+ }
+
+ Vector<Vector3> collision_segments;
+
+ for (int i = 0; i < 64; i++) {
+ float ra = i * Math_PI * 2.0 / 64.0;
+ float rb = (i + 1) * Math_PI * 2.0 / 64.0;
+ Point2 a = Vector2(Math::sin(ra), Math::cos(ra)) * r;
+ Point2 b = Vector2(Math::sin(rb), Math::cos(rb)) * r;
+
+ collision_segments.push_back(Vector3(a.x, 0, a.y));
+ collision_segments.push_back(Vector3(b.x, 0, b.y));
+ collision_segments.push_back(Vector3(0, a.x, a.y));
+ collision_segments.push_back(Vector3(0, b.x, b.y));
+ collision_segments.push_back(Vector3(a.x, a.y, 0));
+ collision_segments.push_back(Vector3(b.x, b.y, 0));
+ }
+
+ p_gizmo->add_lines(points, material);
+ p_gizmo->add_collision_segments(collision_segments);
+ Vector<Vector3> handles;
+ handles.push_back(Vector3(r, 0, 0));
+ p_gizmo->add_handles(handles, handles_material);
+ }
+
+ if (Object::cast_to<GPUParticlesCollisionBox>(cs) || Object::cast_to<GPUParticlesAttractorBox>(cs) || Object::cast_to<GPUParticlesAttractorVectorField>(cs) || Object::cast_to<GPUParticlesCollisionSDF>(cs) || Object::cast_to<GPUParticlesCollisionHeightField>(cs)) {
+ Vector<Vector3> lines;
+ AABB aabb;
+ aabb.position = -cs->call("get_extents").operator Vector3();
+ aabb.size = aabb.position * -2;
+
+ for (int i = 0; i < 12; i++) {
+ Vector3 a, b;
+ aabb.get_edge(i, a, b);
+ lines.push_back(a);
+ lines.push_back(b);
+ }
+
+ Vector<Vector3> handles;
+
+ for (int i = 0; i < 3; i++) {
+ Vector3 ax;
+ ax[i] = cs->call("get_extents").operator Vector3()[i];
+ handles.push_back(ax);
+ }
+
+ p_gizmo->add_lines(lines, material);
+ p_gizmo->add_collision_segments(lines);
+ p_gizmo->add_handles(handles, handles_material);
+
+ GPUParticlesCollisionSDF *col_sdf = Object::cast_to<GPUParticlesCollisionSDF>(cs);
+ if (col_sdf) {
+ static const int subdivs[GPUParticlesCollisionSDF::RESOLUTION_MAX] = { 16, 32, 64, 128, 256, 512 };
+ int subdiv = subdivs[col_sdf->get_resolution()];
+ float cell_size = aabb.get_longest_axis_size() / subdiv;
+
+ lines.clear();
+
+ for (int i = 1; i < subdiv; i++) {
+ for (int j = 0; j < 3; j++) {
+ if (cell_size * i > aabb.size[j]) {
+ continue;
+ }
+
+ Vector2 dir;
+ dir[j] = 1.0;
+ Vector2 ta, tb;
+ int j_n1 = (j + 1) % 3;
+ int j_n2 = (j + 2) % 3;
+ ta[j_n1] = 1.0;
+ tb[j_n2] = 1.0;
+
+ for (int k = 0; k < 4; k++) {
+ Vector3 from = aabb.position, to = aabb.position;
+ from[j] += cell_size * i;
+ to[j] += cell_size * i;
+
+ if (k & 1) {
+ to[j_n1] += aabb.size[j_n1];
+ } else {
+ to[j_n2] += aabb.size[j_n2];
+ }
+
+ if (k & 2) {
+ from[j_n1] += aabb.size[j_n1];
+ from[j_n2] += aabb.size[j_n2];
+ }
+
+ lines.push_back(from);
+ lines.push_back(to);
+ }
+ }
+ }
+
+ p_gizmo->add_lines(lines, material_internal);
+ }
+ }
+}
+
+/////
+
+////
+
ReflectionProbeGizmoPlugin::ReflectionProbeGizmoPlugin() {
Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/reflection_probe", Color(0.6, 1, 0.5));
diff --git a/editor/node_3d_editor_gizmos.h b/editor/node_3d_editor_gizmos.h
index c7aae39a45..4826054643 100644
--- a/editor/node_3d_editor_gizmos.h
+++ b/editor/node_3d_editor_gizmos.h
@@ -253,6 +253,23 @@ public:
GPUParticles3DGizmoPlugin();
};
+class GPUParticlesCollision3DGizmoPlugin : public EditorNode3DGizmoPlugin {
+ GDCLASS(GPUParticlesCollision3DGizmoPlugin, EditorNode3DGizmoPlugin);
+
+public:
+ bool has_gizmo(Node3D *p_spatial) override;
+ String get_name() const override;
+ int get_priority() const override;
+ void redraw(EditorNode3DGizmo *p_gizmo) override;
+
+ String get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_idx) const override;
+ Variant get_handle_value(EditorNode3DGizmo *p_gizmo, int p_idx) const override;
+ void set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Camera3D *p_camera, const Point2 &p_point) override;
+ void commit_handle(EditorNode3DGizmo *p_gizmo, int p_idx, const Variant &p_restore, bool p_cancel = false) override;
+
+ GPUParticlesCollision3DGizmoPlugin();
+};
+
class ReflectionProbeGizmoPlugin : public EditorNode3DGizmoPlugin {
GDCLASS(ReflectionProbeGizmoPlugin, EditorNode3DGizmoPlugin);
diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp
index 49e67f3605..7a3fb1ff52 100644
--- a/editor/plugins/abstract_polygon_2d_editor.cpp
+++ b/editor/plugins/abstract_polygon_2d_editor.cpp
@@ -287,7 +287,7 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event)
pre_move_edit = vertices2;
edited_point = PosVertex(insert.polygon, insert.vertex + 1, xform.affine_inverse().xform(insert.pos));
vertices2.insert(edited_point.vertex, edited_point.pos);
- selected_point = edited_point;
+ selected_point = Vertex(edited_point.polygon, edited_point.vertex);
edge_point = PosVertex();
undo_redo->create_action(TTR("Insert Point"));
diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp
index e2f35e29d8..6e4a39d3f0 100644
--- a/editor/plugins/animation_player_editor_plugin.cpp
+++ b/editor/plugins/animation_player_editor_plugin.cpp
@@ -411,7 +411,7 @@ void AnimationPlayerEditor::_animation_remove() {
String current = animation->get_item_text(animation->get_selected());
- delete_dialog->set_text(TTR("Delete Animation '" + current + "'?"));
+ delete_dialog->set_text(vformat(TTR("Delete Animation '%s'?"), current));
delete_dialog->popup_centered();
}
@@ -744,7 +744,7 @@ void AnimationPlayerEditor::_dialog_action(String p_path) {
}
void AnimationPlayerEditor::_scale_changed(const String &p_scale) {
- player->set_speed_scale(p_scale.to_double());
+ player->set_speed_scale(p_scale.to_float());
}
void AnimationPlayerEditor::_update_animation() {
diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp
index 26006d85c9..885ec17cb3 100644
--- a/editor/plugins/animation_state_machine_editor.cpp
+++ b/editor/plugins/animation_state_machine_editor.cpp
@@ -386,6 +386,12 @@ void AnimationNodeStateMachineEditor::_state_machine_gui_input(const Ref<InputEv
over_text = over_text_now;
}
}
+
+ Ref<InputEventPanGesture> pan_gesture = p_event;
+ if (pan_gesture.is_valid()) {
+ h_scroll->set_value(h_scroll->get_value() + h_scroll->get_page() * pan_gesture->get_delta().x / 8);
+ v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() * pan_gesture->get_delta().y / 8);
+ }
}
void AnimationNodeStateMachineEditor::_file_opened(const String &p_file) {
diff --git a/editor/plugins/animation_tree_editor_plugin.cpp b/editor/plugins/animation_tree_editor_plugin.cpp
index dc813896ff..269c54ba2b 100644
--- a/editor/plugins/animation_tree_editor_plugin.cpp
+++ b/editor/plugins/animation_tree_editor_plugin.cpp
@@ -79,7 +79,7 @@ void AnimationTreeEditor::_update_path() {
group.instance();
Button *b = memnew(Button);
- b->set_text("root");
+ b->set_text("Root");
b->set_toggle_mode(true);
b->set_button_group(group);
b->set_pressed(true);
diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp
index 28ac85457b..5742becf3a 100644
--- a/editor/plugins/asset_library_editor_plugin.cpp
+++ b/editor/plugins/asset_library_editor_plugin.cpp
@@ -910,7 +910,11 @@ void EditorAssetLibrary::_search(int p_page) {
_api_request("asset", REQUESTING_SEARCH, args);
}
-void EditorAssetLibrary::_search_text_entered(const String &p_text) {
+void EditorAssetLibrary::_search_text_changed(const String &p_text) {
+ filter_debounce_timer->start();
+}
+
+void EditorAssetLibrary::_filter_debounce_timer_timeout() {
_search();
}
@@ -1299,10 +1303,15 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) {
filter = memnew(LineEdit);
search_hb->add_child(filter);
filter->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- filter->connect("text_entered", callable_mp(this, &EditorAssetLibrary::_search_text_entered));
- search = memnew(Button(TTR("Search")));
- search->connect("pressed", callable_mp(this, &EditorAssetLibrary::_search), make_binds(0));
- search_hb->add_child(search);
+ filter->connect("text_changed", callable_mp(this, &EditorAssetLibrary::_search_text_changed));
+
+ // Perform a search automatically if the user hasn't entered any text for a certain duration.
+ // This way, the user doesn't need to press Enter to initiate their search.
+ filter_debounce_timer = memnew(Timer);
+ filter_debounce_timer->set_one_shot(true);
+ filter_debounce_timer->set_wait_time(0.25);
+ filter_debounce_timer->connect("timeout", callable_mp(this, &EditorAssetLibrary::_filter_debounce_timer_timeout));
+ search_hb->add_child(filter_debounce_timer);
if (!p_templates_only) {
search_hb->add_child(memnew(VSeparator));
diff --git a/editor/plugins/asset_library_editor_plugin.h b/editor/plugins/asset_library_editor_plugin.h
index 3fca8a1084..f7ad53f87b 100644
--- a/editor/plugins/asset_library_editor_plugin.h
+++ b/editor/plugins/asset_library_editor_plugin.h
@@ -183,10 +183,10 @@ class EditorAssetLibrary : public PanelContainer {
Label *library_loading;
Label *library_error;
LineEdit *filter;
+ Timer *filter_debounce_timer;
OptionButton *categories;
OptionButton *repository;
OptionButton *sort;
- Button *search;
HBoxContainer *error_hb;
TextureRect *error_tr;
Label *error_label;
@@ -280,10 +280,12 @@ class EditorAssetLibrary : public PanelContainer {
void _search(int p_page = 0);
void _rerun_search(int p_ignore);
+ void _search_text_changed(const String &p_text = "");
void _search_text_entered(const String &p_text = "");
void _api_request(const String &p_request, RequestType p_request_type, const String &p_arguments = "");
void _http_request_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data);
void _http_download_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data);
+ void _filter_debounce_timer_timeout();
void _repository_changed(int p_repository_id);
void _support_toggled(int p_support);
diff --git a/editor/plugins/audio_stream_editor_plugin.cpp b/editor/plugins/audio_stream_editor_plugin.cpp
index b0f65af245..231f5588a4 100644
--- a/editor/plugins/audio_stream_editor_plugin.cpp
+++ b/editor/plugins/audio_stream_editor_plugin.cpp
@@ -44,8 +44,8 @@ void AudioStreamEditor::_notification(int p_what) {
if (p_what == NOTIFICATION_THEME_CHANGED || p_what == NOTIFICATION_ENTER_TREE) {
_play_button->set_icon(get_theme_icon("MainPlay", "EditorIcons"));
_stop_button->set_icon(get_theme_icon("Stop", "EditorIcons"));
- _preview->set_frame_color(get_theme_color("dark_color_2", "Editor"));
- set_frame_color(get_theme_color("dark_color_1", "Editor"));
+ _preview->set_color(get_theme_color("dark_color_2", "Editor"));
+ set_color(get_theme_color("dark_color_1", "Editor"));
_indicator->update();
_preview->update();
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index f3508cedbd..c06580df26 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -548,7 +548,7 @@ void CanvasItemEditor::_expand_encompassing_rect_using_children(Rect2 &r_rect, c
const CanvasItem *canvas_item = Object::cast_to<CanvasItem>(p_node);
for (int i = p_node->get_child_count() - 1; i >= 0; i--) {
- if (canvas_item && !canvas_item->is_set_as_toplevel()) {
+ if (canvas_item && !canvas_item->is_set_as_top_level()) {
_expand_encompassing_rect_using_children(r_rect, p_node->get_child(i), r_first, p_parent_xform * canvas_item->get_transform(), p_canvas_xform);
} else {
const CanvasLayer *canvas_layer = Object::cast_to<CanvasLayer>(p_node);
@@ -591,7 +591,7 @@ void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos, Node *p_no
for (int i = p_node->get_child_count() - 1; i >= 0; i--) {
if (canvas_item) {
- if (!canvas_item->is_set_as_toplevel()) {
+ if (!canvas_item->is_set_as_top_level()) {
_find_canvas_items_at_pos(p_pos, p_node->get_child(i), r_items, p_parent_xform * canvas_item->get_transform(), p_canvas_xform);
} else {
_find_canvas_items_at_pos(p_pos, p_node->get_child(i), r_items, canvas_item->get_transform(), p_canvas_xform);
@@ -767,7 +767,7 @@ void CanvasItemEditor::_find_canvas_items_in_rect(const Rect2 &p_rect, Node *p_n
if (!lock_children || !editable) {
for (int i = p_node->get_child_count() - 1; i >= 0; i--) {
if (canvas_item) {
- if (!canvas_item->is_set_as_toplevel()) {
+ if (!canvas_item->is_set_as_top_level()) {
_find_canvas_items_in_rect(p_rect, p_node->get_child(i), r_items, p_parent_xform * canvas_item->get_transform(), p_canvas_xform);
} else {
_find_canvas_items_in_rect(p_rect, p_node->get_child(i), r_items, canvas_item->get_transform(), p_canvas_xform);
@@ -863,10 +863,11 @@ Vector2 CanvasItemEditor::_position_to_anchor(const Control *p_control, Vector2
ERR_FAIL_COND_V(!p_control, Vector2());
Rect2 parent_rect = p_control->get_parent_anchorable_rect();
- ERR_FAIL_COND_V(parent_rect.size.x == 0, Vector2());
- ERR_FAIL_COND_V(parent_rect.size.y == 0, Vector2());
- return (p_control->get_transform().xform(position) - parent_rect.position) / parent_rect.size;
+ Vector2 output = Vector2();
+ output.x = (parent_rect.size.x == 0) ? 0.0 : (p_control->get_transform().xform(position).x - parent_rect.position.x) / parent_rect.size.x;
+ output.y = (parent_rect.size.y == 0) ? 0.0 : (p_control->get_transform().xform(position).y - parent_rect.position.y) / parent_rect.size.y;
+ return output;
}
void CanvasItemEditor::_save_canvas_item_ik_chain(const CanvasItem *p_canvas_item, List<float> *p_bones_length, List<Dictionary> *p_bones_state) {
@@ -2598,6 +2599,27 @@ void CanvasItemEditor::_gui_input_viewport(const Ref<InputEvent> &p_event) {
}
void CanvasItemEditor::_update_cursor() {
+ // Compute an eventual rotation of the cursor
+ CursorShape rotation_array[4] = { CURSOR_HSIZE, CURSOR_BDIAGSIZE, CURSOR_VSIZE, CURSOR_FDIAGSIZE };
+ int rotation_array_index = 0;
+
+ List<CanvasItem *> selection = _get_edited_canvas_items();
+ if (selection.size() == 1) {
+ float angle = Math::fposmod((double)selection[0]->get_global_transform_with_canvas().get_rotation(), Math_PI);
+ if (angle > Math_PI * 7.0 / 8.0) {
+ rotation_array_index = 0;
+ } else if (angle > Math_PI * 5.0 / 8.0) {
+ rotation_array_index = 1;
+ } else if (angle > Math_PI * 3.0 / 8.0) {
+ rotation_array_index = 2;
+ } else if (angle > Math_PI * 1.0 / 8.0) {
+ rotation_array_index = 3;
+ } else {
+ rotation_array_index = 0;
+ }
+ }
+
+ // Choose the correct cursor
CursorShape c = CURSOR_ARROW;
switch (drag_type) {
case DRAG_NONE:
@@ -2620,22 +2642,28 @@ void CanvasItemEditor::_update_cursor() {
break;
case DRAG_LEFT:
case DRAG_RIGHT:
+ c = rotation_array[rotation_array_index];
+ break;
case DRAG_V_GUIDE:
c = CURSOR_HSIZE;
break;
case DRAG_TOP:
case DRAG_BOTTOM:
+ c = rotation_array[(rotation_array_index + 2) % 4];
+ break;
case DRAG_H_GUIDE:
c = CURSOR_VSIZE;
break;
case DRAG_TOP_LEFT:
case DRAG_BOTTOM_RIGHT:
+ c = rotation_array[(rotation_array_index + 3) % 4];
+ break;
case DRAG_DOUBLE_GUIDE:
c = CURSOR_FDIAGSIZE;
break;
case DRAG_TOP_RIGHT:
case DRAG_BOTTOM_LEFT:
- c = CURSOR_BDIAGSIZE;
+ c = rotation_array[(rotation_array_index + 1) % 4];
break;
case DRAG_MOVE:
c = CURSOR_MOVE;
@@ -3598,7 +3626,7 @@ void CanvasItemEditor::_draw_invisible_nodes_positions(Node *p_node, const Trans
Transform2D parent_xform = p_parent_xform;
Transform2D canvas_xform = p_canvas_xform;
- if (canvas_item && !canvas_item->is_set_as_toplevel()) {
+ if (canvas_item && !canvas_item->is_set_as_top_level()) {
parent_xform = parent_xform * canvas_item->get_transform();
} else {
CanvasLayer *cl = Object::cast_to<CanvasLayer>(p_node);
@@ -3667,7 +3695,7 @@ void CanvasItemEditor::_draw_locks_and_groups(Node *p_node, const Transform2D &p
Transform2D parent_xform = p_parent_xform;
Transform2D canvas_xform = p_canvas_xform;
- if (canvas_item && !canvas_item->is_set_as_toplevel()) {
+ if (canvas_item && !canvas_item->is_set_as_top_level()) {
parent_xform = parent_xform * canvas_item->get_transform();
} else {
CanvasLayer *cl = Object::cast_to<CanvasLayer>(p_node);
@@ -3803,12 +3831,12 @@ void CanvasItemEditor::_draw_viewport() {
_draw_grid();
_draw_ruler_tool();
- _draw_selection();
_draw_axis();
if (editor->get_edited_scene()) {
_draw_locks_and_groups(editor->get_edited_scene());
_draw_invisible_nodes_positions(editor->get_edited_scene());
}
+ _draw_selection();
RID ci = viewport->get_canvas_item();
RenderingServer::get_singleton()->canvas_item_add_set_transform(ci, Transform2D());
@@ -4001,6 +4029,12 @@ void CanvasItemEditor::_notification(int p_what) {
key_scale_button->set_icon(get_theme_icon("KeyScale", "EditorIcons"));
key_insert_button->set_icon(get_theme_icon("Key", "EditorIcons"));
key_auto_insert_button->set_icon(get_theme_icon("AutoKey", "EditorIcons"));
+ // Use a different color for the active autokey icon to make them easier
+ // to distinguish from the other key icons at the top. On a light theme,
+ // the icon will be dark, so we need to lighten it before blending it
+ // with the red color.
+ const Color key_auto_color = EditorSettings::get_singleton()->is_dark_theme() ? Color(1, 1, 1) : Color(4.25, 4.25, 4.25);
+ key_auto_insert_button->add_theme_color_override("icon_color_pressed", key_auto_color.lerp(Color(1, 0, 0), 0.55));
animation_menu->set_icon(get_theme_icon("GuiTabMenuHl", "EditorIcons"));
zoom_minus->set_icon(get_theme_icon("ZoomLess", "EditorIcons"));
@@ -6235,7 +6269,7 @@ void CanvasItemEditorViewport::_perform_drop_data() {
files_str += error_files[i].get_file().get_basename() + ",";
}
files_str = files_str.substr(0, files_str.length() - 1);
- accept->set_text(vformat(TTR("Error instancing scene from %s"), files_str.c_str()));
+ accept->set_text(vformat(TTR("Error instancing scene from %s"), files_str.get_data()));
accept->popup_centered();
}
}
diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h
index ea58fb1e36..859e80befe 100644
--- a/editor/plugins/canvas_item_editor_plugin.h
+++ b/editor/plugins/canvas_item_editor_plugin.h
@@ -400,11 +400,11 @@ private:
Ref<Texture2D> select_handle;
Ref<Texture2D> anchor_handle;
- Ref<ShortCut> drag_pivot_shortcut;
- Ref<ShortCut> set_pivot_shortcut;
- Ref<ShortCut> multiply_grid_step_shortcut;
- Ref<ShortCut> divide_grid_step_shortcut;
- Ref<ShortCut> pan_view_shortcut;
+ Ref<Shortcut> drag_pivot_shortcut;
+ Ref<Shortcut> set_pivot_shortcut;
+ Ref<Shortcut> multiply_grid_step_shortcut;
+ Ref<Shortcut> divide_grid_step_shortcut;
+ Ref<Shortcut> pan_view_shortcut;
bool _is_node_locked(const Node *p_node);
bool _is_node_movable(const Node *p_node, bool p_popup_warning = false);
diff --git a/editor/plugins/debugger_editor_plugin.cpp b/editor/plugins/debugger_editor_plugin.cpp
index 0a4d173923..0747e42045 100644
--- a/editor/plugins/debugger_editor_plugin.cpp
+++ b/editor/plugins/debugger_editor_plugin.cpp
@@ -47,7 +47,7 @@ DebuggerEditorPlugin::DebuggerEditorPlugin(EditorNode *p_editor, MenuButton *p_d
ED_SHORTCUT("debugger/keep_debugger_open", TTR("Keep Debugger Open"));
ED_SHORTCUT("debugger/debug_with_external_editor", TTR("Debug with External Editor"));
- // File Server for deploy with remote fs.
+ // File Server for deploy with remote filesystem.
file_server = memnew(EditorFileServer);
EditorDebuggerNode *debugger = memnew(EditorDebuggerNode);
@@ -59,19 +59,31 @@ DebuggerEditorPlugin::DebuggerEditorPlugin(EditorNode *p_editor, MenuButton *p_d
PopupMenu *p = debug_menu->get_popup();
p->set_hide_on_checkable_item_selection(false);
p->add_check_shortcut(ED_SHORTCUT("editor/deploy_with_remote_debug", TTR("Deploy with Remote Debug")), RUN_DEPLOY_REMOTE_DEBUG);
- p->set_item_tooltip(p->get_item_count() - 1, TTR("When exporting or deploying, the resulting executable will attempt to connect to the IP of this computer in order to be debugged."));
- p->add_check_shortcut(ED_SHORTCUT("editor/small_deploy_with_network_fs", TTR("Small Deploy with Network FS")), RUN_FILE_SERVER);
- p->set_item_tooltip(p->get_item_count() - 1, TTR("When this option is enabled, export or deploy will produce a minimal executable.\nThe filesystem will be provided from the project by the editor over the network.\nOn Android, deploy will use the USB cable for faster performance. This option speeds up testing for games with a large footprint."));
+ p->set_item_tooltip(
+ p->get_item_count() - 1,
+ TTR("When this option is enabled, using one-click deploy will make the executable attempt to connect to this computer's IP so the running project can be debugged.\nThis option is intended to be used for remote debugging (typically with a mobile device).\nYou don't need to enable it to use the GDScript debugger locally."));
+ p->add_check_shortcut(ED_SHORTCUT("editor/small_deploy_with_network_fs", TTR("Small Deploy with Network Filesystem")), RUN_FILE_SERVER);
+ p->set_item_tooltip(
+ p->get_item_count() - 1,
+ TTR("When this option is enabled, using one-click deploy for Android will only export an executable without the project data.\nThe filesystem will be provided from the project by the editor over the network.\nOn Android, deploying will use the USB cable for faster performance. This option speeds up testing for projects with large assets."));
p->add_separator();
p->add_check_shortcut(ED_SHORTCUT("editor/visible_collision_shapes", TTR("Visible Collision Shapes")), RUN_DEBUG_COLLISONS);
- p->set_item_tooltip(p->get_item_count() - 1, TTR("Collision shapes and raycast nodes (for 2D and 3D) will be visible on the running game if this option is turned on."));
+ p->set_item_tooltip(
+ p->get_item_count() - 1,
+ TTR("When this option is enabled, collision shapes and raycast nodes (for 2D and 3D) will be visible in the running project."));
p->add_check_shortcut(ED_SHORTCUT("editor/visible_navigation", TTR("Visible Navigation")), RUN_DEBUG_NAVIGATION);
- p->set_item_tooltip(p->get_item_count() - 1, TTR("Navigation meshes and polygons will be visible on the running game if this option is turned on."));
+ p->set_item_tooltip(
+ p->get_item_count() - 1,
+ TTR("When this option is enabled, navigation meshes and polygons will be visible in the running project."));
p->add_separator();
- p->add_check_shortcut(ED_SHORTCUT("editor/sync_scene_changes", TTR("Sync Scene Changes")), RUN_LIVE_DEBUG);
- p->set_item_tooltip(p->get_item_count() - 1, TTR("When this option is turned on, any changes made to the scene in the editor will be replicated in the running game.\nWhen used remotely on a device, this is more efficient with network filesystem."));
- p->add_check_shortcut(ED_SHORTCUT("editor/sync_script_changes", TTR("Sync Script Changes")), RUN_RELOAD_SCRIPTS);
- p->set_item_tooltip(p->get_item_count() - 1, TTR("When this option is turned on, any script that is saved will be reloaded on the running game.\nWhen used remotely on a device, this is more efficient with network filesystem."));
+ p->add_check_shortcut(ED_SHORTCUT("editor/sync_scene_changes", TTR("Synchronize Scene Changes")), RUN_LIVE_DEBUG);
+ p->set_item_tooltip(
+ p->get_item_count() - 1,
+ TTR("When this option is enabled, any changes made to the scene in the editor will be replicated in the running project.\nWhen used remotely on a device, this is more efficient when the network filesystem option is enabled."));
+ p->add_check_shortcut(ED_SHORTCUT("editor/sync_script_changes", TTR("Synchronize Script Changes")), RUN_RELOAD_SCRIPTS);
+ p->set_item_tooltip(
+ p->get_item_count() - 1,
+ TTR("When this option is enabled, any script that is saved will be reloaded in the running project.\nWhen used remotely on a device, this is more efficient when the network filesystem option is enabled."));
// Multi-instance, start/stop
instances_menu = memnew(PopupMenu);
diff --git a/editor/plugins/editor_debugger_plugin.cpp b/editor/plugins/editor_debugger_plugin.cpp
new file mode 100644
index 0000000000..b775e871e2
--- /dev/null
+++ b/editor/plugins/editor_debugger_plugin.cpp
@@ -0,0 +1,124 @@
+/*************************************************************************/
+/* editor_debugger_plugin.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2020 Godot Engine contributors (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_debugger_plugin.h"
+
+#include "editor/debugger/script_editor_debugger.h"
+
+void EditorDebuggerPlugin::_breaked(bool p_really_did, bool p_can_debug) {
+ if (p_really_did) {
+ emit_signal("breaked", p_can_debug);
+ } else {
+ emit_signal("continued");
+ }
+}
+
+void EditorDebuggerPlugin::_started() {
+ emit_signal("started");
+}
+
+void EditorDebuggerPlugin::_stopped() {
+ emit_signal("stopped");
+}
+
+void EditorDebuggerPlugin::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("send_message", "message", "data"), &EditorDebuggerPlugin::send_message);
+ ClassDB::bind_method(D_METHOD("register_message_capture", "name", "callable"), &EditorDebuggerPlugin::register_message_capture);
+ ClassDB::bind_method(D_METHOD("unregister_message_capture", "name"), &EditorDebuggerPlugin::unregister_message_capture);
+ ClassDB::bind_method(D_METHOD("has_capture", "name"), &EditorDebuggerPlugin::has_capture);
+ ClassDB::bind_method(D_METHOD("is_breaked"), &EditorDebuggerPlugin::is_breaked);
+ ClassDB::bind_method(D_METHOD("is_debuggable"), &EditorDebuggerPlugin::is_debuggable);
+ ClassDB::bind_method(D_METHOD("is_session_active"), &EditorDebuggerPlugin::is_session_active);
+
+ ADD_SIGNAL(MethodInfo("started"));
+ ADD_SIGNAL(MethodInfo("stopped"));
+ ADD_SIGNAL(MethodInfo("breaked", PropertyInfo(Variant::BOOL, "can_debug")));
+ ADD_SIGNAL(MethodInfo("continued"));
+}
+
+void EditorDebuggerPlugin::attach_debugger(ScriptEditorDebugger *p_debugger) {
+ debugger = p_debugger;
+ if (debugger) {
+ debugger->connect("started", callable_mp(this, &EditorDebuggerPlugin::_started));
+ debugger->connect("stopped", callable_mp(this, &EditorDebuggerPlugin::_stopped));
+ debugger->connect("breaked", callable_mp(this, &EditorDebuggerPlugin::_breaked));
+ }
+}
+
+void EditorDebuggerPlugin::detach_debugger(bool p_call_debugger) {
+ if (debugger) {
+ debugger->disconnect("started", callable_mp(this, &EditorDebuggerPlugin::_started));
+ debugger->disconnect("stopped", callable_mp(this, &EditorDebuggerPlugin::_stopped));
+ debugger->disconnect("breaked", callable_mp(this, &EditorDebuggerPlugin::_breaked));
+ if (p_call_debugger && get_script_instance()) {
+ debugger->remove_debugger_plugin(get_script_instance()->get_script());
+ }
+ debugger = nullptr;
+ }
+}
+
+void EditorDebuggerPlugin::send_message(const String &p_message, const Array &p_args) {
+ ERR_FAIL_COND_MSG(!debugger, "Plugin is not attached to debugger");
+ debugger->send_message(p_message, p_args);
+}
+
+void EditorDebuggerPlugin::register_message_capture(const StringName &p_name, const Callable &p_callable) {
+ ERR_FAIL_COND_MSG(!debugger, "Plugin is not attached to debugger");
+ debugger->register_message_capture(p_name, p_callable);
+}
+
+void EditorDebuggerPlugin::unregister_message_capture(const StringName &p_name) {
+ ERR_FAIL_COND_MSG(!debugger, "Plugin is not attached to debugger");
+ debugger->unregister_message_capture(p_name);
+}
+
+bool EditorDebuggerPlugin::has_capture(const StringName &p_name) {
+ ERR_FAIL_COND_V_MSG(!debugger, false, "Plugin is not attached to debugger");
+ return debugger->has_capture(p_name);
+}
+
+bool EditorDebuggerPlugin::is_breaked() {
+ ERR_FAIL_COND_V_MSG(!debugger, false, "Plugin is not attached to debugger");
+ return debugger->is_breaked();
+}
+
+bool EditorDebuggerPlugin::is_debuggable() {
+ ERR_FAIL_COND_V_MSG(!debugger, false, "Plugin is not attached to debugger");
+ return debugger->is_debuggable();
+}
+
+bool EditorDebuggerPlugin::is_session_active() {
+ ERR_FAIL_COND_V_MSG(!debugger, false, "Plugin is not attached to debugger");
+ return debugger->is_session_active();
+}
+
+EditorDebuggerPlugin::~EditorDebuggerPlugin() {
+ detach_debugger(true);
+}
diff --git a/editor/plugins/editor_debugger_plugin.h b/editor/plugins/editor_debugger_plugin.h
new file mode 100644
index 0000000000..10fd1151de
--- /dev/null
+++ b/editor/plugins/editor_debugger_plugin.h
@@ -0,0 +1,64 @@
+/*************************************************************************/
+/* editor_debugger_plugin.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2020 Godot Engine contributors (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_DEBUGGER_PLUGIN_H
+#define EDITOR_DEBUGGER_PLUGIN_H
+
+#include "scene/gui/control.h"
+
+class ScriptEditorDebugger;
+
+class EditorDebuggerPlugin : public Control {
+ GDCLASS(EditorDebuggerPlugin, Control);
+
+private:
+ ScriptEditorDebugger *debugger = nullptr;
+
+ void _breaked(bool p_really_did, bool p_can_debug);
+ void _started();
+ void _stopped();
+
+protected:
+ static void _bind_methods();
+
+public:
+ void attach_debugger(ScriptEditorDebugger *p_debugger);
+ void detach_debugger(bool p_call_debugger);
+ void send_message(const String &p_message, const Array &p_args);
+ void register_message_capture(const StringName &p_name, const Callable &p_callable);
+ void unregister_message_capture(const StringName &p_name);
+ bool has_capture(const StringName &p_name);
+ bool is_breaked();
+ bool is_debuggable();
+ bool is_session_active();
+ ~EditorDebuggerPlugin();
+};
+
+#endif // EDITOR_DEBUGGER_PLUGIN_H
diff --git a/editor/plugins/editor_preview_plugins.cpp b/editor/plugins/editor_preview_plugins.cpp
index 2889cb50a0..3cf4dc5ac8 100644
--- a/editor/plugins/editor_preview_plugins.cpp
+++ b/editor/plugins/editor_preview_plugins.cpp
@@ -466,7 +466,7 @@ EditorMaterialPreviewPlugin::~EditorMaterialPreviewPlugin() {
///////////////////////////////////////////////////////////////////////////
-static bool _is_text_char(CharType c) {
+static bool _is_text_char(char32_t c) {
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_';
}
@@ -525,7 +525,7 @@ Ref<Texture2D> EditorScriptPreviewPlugin::generate(const RES &p_from, const Size
bool prev_is_text = false;
bool in_keyword = false;
for (int i = 0; i < code.length(); i++) {
- CharType c = code[i];
+ char32_t c = code[i];
if (c > 32) {
if (col < thumbnail_size) {
Color color = text_color;
diff --git a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp
new file mode 100644
index 0000000000..0288645f91
--- /dev/null
+++ b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp
@@ -0,0 +1,201 @@
+/*************************************************************************/
+/* gpu_particles_collision_sdf_editor_plugin.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2020 Godot Engine contributors (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 "gpu_particles_collision_sdf_editor_plugin.h"
+
+void GPUParticlesCollisionSDFEditorPlugin::_bake() {
+ if (col_sdf) {
+ if (col_sdf->get_texture().is_null() || !col_sdf->get_texture()->get_path().is_resource_file()) {
+ String path = get_tree()->get_edited_scene_root()->get_filename();
+ if (path == String()) {
+ path = "res://" + col_sdf->get_name() + "_data.exr";
+ } else {
+ String ext = path.get_extension();
+ path = path.get_basename() + "." + col_sdf->get_name() + "_data.exr";
+ }
+ probe_file->set_current_path(path);
+ probe_file->popup_file_dialog();
+ return;
+ }
+
+ _sdf_save_path_and_bake(col_sdf->get_texture()->get_path());
+ }
+}
+
+void GPUParticlesCollisionSDFEditorPlugin::edit(Object *p_object) {
+ GPUParticlesCollisionSDF *s = Object::cast_to<GPUParticlesCollisionSDF>(p_object);
+ if (!s) {
+ return;
+ }
+
+ col_sdf = s;
+}
+
+bool GPUParticlesCollisionSDFEditorPlugin::handles(Object *p_object) const {
+ return p_object->is_class("GPUParticlesCollisionSDF");
+}
+
+void GPUParticlesCollisionSDFEditorPlugin::_notification(int p_what) {
+ if (p_what == NOTIFICATION_PROCESS) {
+ if (!col_sdf) {
+ return;
+ }
+
+ const Vector3i size = col_sdf->get_estimated_cell_size();
+ String text = vformat(String::utf8("%d × %d × %d"), size.x, size.y, size.z);
+ int data_size = 2;
+
+ const double size_mb = size.x * size.y * size.z * data_size / (1024.0 * 1024.0);
+ text += " - " + vformat(TTR("VRAM Size: %s MB"), String::num(size_mb, 2));
+
+ if (bake_info->get_text() == text) {
+ return;
+ }
+
+ // Color the label depending on the estimated performance level.
+ Color color;
+ if (size_mb <= 16.0 + CMP_EPSILON) {
+ // Fast.
+ color = bake_info->get_theme_color("success_color", "Editor");
+ } else if (size_mb <= 64.0 + CMP_EPSILON) {
+ // Medium.
+ color = bake_info->get_theme_color("warning_color", "Editor");
+ } else {
+ // Slow.
+ color = bake_info->get_theme_color("error_color", "Editor");
+ }
+ bake_info->add_theme_color_override("font_color", color);
+
+ bake_info->set_text(text);
+ }
+}
+
+void GPUParticlesCollisionSDFEditorPlugin::make_visible(bool p_visible) {
+ if (p_visible) {
+ bake_hb->show();
+ set_process(true);
+ } else {
+ bake_hb->hide();
+ set_process(false);
+ }
+}
+
+EditorProgress *GPUParticlesCollisionSDFEditorPlugin::tmp_progress = nullptr;
+
+void GPUParticlesCollisionSDFEditorPlugin::bake_func_begin(int p_steps) {
+ ERR_FAIL_COND(tmp_progress != nullptr);
+
+ tmp_progress = memnew(EditorProgress("bake_sdf", TTR("Bake SDF"), p_steps));
+}
+
+void GPUParticlesCollisionSDFEditorPlugin::bake_func_step(int p_step, const String &p_description) {
+ ERR_FAIL_COND(tmp_progress == nullptr);
+ tmp_progress->step(p_description, p_step, false);
+}
+
+void GPUParticlesCollisionSDFEditorPlugin::bake_func_end() {
+ ERR_FAIL_COND(tmp_progress == nullptr);
+ memdelete(tmp_progress);
+ tmp_progress = nullptr;
+}
+
+void GPUParticlesCollisionSDFEditorPlugin::_sdf_save_path_and_bake(const String &p_path) {
+ probe_file->hide();
+ if (col_sdf) {
+ Ref<Image> bake_img = col_sdf->bake();
+ if (bake_img.is_null()) {
+ EditorNode::get_singleton()->show_warning("Bake Error.");
+ return;
+ }
+
+ Ref<ConfigFile> config;
+
+ config.instance();
+ if (FileAccess::exists(p_path + ".import")) {
+ config->load(p_path + ".import");
+ }
+
+ config->set_value("remap", "importer", "3d_texture");
+ config->set_value("remap", "type", "StreamTexture3D");
+ if (!config->has_section_key("params", "compress/mode")) {
+ config->set_value("params", "compress/mode", 3); //user may want another compression, so leave it be
+ }
+ config->set_value("params", "compress/channel_pack", 1);
+ config->set_value("params", "mipmaps/generate", false);
+ config->set_value("params", "slices/horizontal", 1);
+ config->set_value("params", "slices/vertical", bake_img->get_meta("depth"));
+
+ config->save(p_path + ".import");
+
+ Error err = bake_img->save_exr(p_path, false);
+ ERR_FAIL_COND(err);
+ ResourceLoader::import(p_path);
+ Ref<Texture> t = ResourceLoader::load(p_path); //if already loaded, it will be updated on refocus?
+ ERR_FAIL_COND(t.is_null());
+
+ col_sdf->set_texture(t);
+ }
+}
+
+void GPUParticlesCollisionSDFEditorPlugin::_bind_methods() {
+}
+
+GPUParticlesCollisionSDFEditorPlugin::GPUParticlesCollisionSDFEditorPlugin(EditorNode *p_node) {
+ editor = p_node;
+ bake_hb = memnew(HBoxContainer);
+ bake_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ bake_hb->hide();
+ bake = memnew(Button);
+ bake->set_flat(true);
+ bake->set_icon(editor->get_gui_base()->get_theme_icon("Bake", "EditorIcons"));
+ bake->set_text(TTR("Bake SDF"));
+ bake->connect("pressed", callable_mp(this, &GPUParticlesCollisionSDFEditorPlugin::_bake));
+ bake_hb->add_child(bake);
+ bake_info = memnew(Label);
+ bake_info->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ bake_info->set_clip_text(true);
+ bake_hb->add_child(bake_info);
+
+ add_control_to_container(CONTAINER_SPATIAL_EDITOR_MENU, bake_hb);
+ col_sdf = nullptr;
+ probe_file = memnew(EditorFileDialog);
+ probe_file->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE);
+ probe_file->add_filter("*.exr");
+ probe_file->connect("file_selected", callable_mp(this, &GPUParticlesCollisionSDFEditorPlugin::_sdf_save_path_and_bake));
+ get_editor_interface()->get_base_control()->add_child(probe_file);
+ probe_file->set_title(TTR("Select path for SDF Texture"));
+
+ GPUParticlesCollisionSDF::bake_begin_function = bake_func_begin;
+ GPUParticlesCollisionSDF::bake_step_function = bake_func_step;
+ GPUParticlesCollisionSDF::bake_end_function = bake_func_end;
+}
+
+GPUParticlesCollisionSDFEditorPlugin::~GPUParticlesCollisionSDFEditorPlugin() {
+}
diff --git a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.h b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.h
new file mode 100644
index 0000000000..0cdc70a62b
--- /dev/null
+++ b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.h
@@ -0,0 +1,74 @@
+/*************************************************************************/
+/* gpu_particles_collision_sdf_editor_plugin.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2020 Godot Engine contributors (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 GPU_PARTICLES_COLLISION_SDF_EDITOR_PLUGIN_H
+#define GPU_PARTICLES_COLLISION_SDF_EDITOR_PLUGIN_H
+
+#include "editor/editor_node.h"
+#include "editor/editor_plugin.h"
+#include "scene/3d/gpu_particles_collision_3d.h"
+#include "scene/resources/material.h"
+
+class GPUParticlesCollisionSDFEditorPlugin : public EditorPlugin {
+ GDCLASS(GPUParticlesCollisionSDFEditorPlugin, EditorPlugin);
+
+ GPUParticlesCollisionSDF *col_sdf;
+
+ HBoxContainer *bake_hb;
+ Label *bake_info;
+ Button *bake;
+ EditorNode *editor;
+
+ EditorFileDialog *probe_file;
+
+ static EditorProgress *tmp_progress;
+ static void bake_func_begin(int p_steps);
+ static void bake_func_step(int p_step, const String &p_description);
+ static void bake_func_end();
+
+ void _bake();
+ void _sdf_save_path_and_bake(const String &p_path);
+
+protected:
+ static void _bind_methods();
+ void _notification(int p_what);
+
+public:
+ virtual String get_name() const override { return "GPUParticlesCollisionSDF"; }
+ bool has_main_screen() const override { return false; }
+ virtual void edit(Object *p_object) override;
+ virtual bool handles(Object *p_object) const override;
+ virtual void make_visible(bool p_visible) override;
+
+ GPUParticlesCollisionSDFEditorPlugin(EditorNode *p_node);
+ ~GPUParticlesCollisionSDFEditorPlugin();
+};
+
+#endif // GPU_PARTICLES_COLLISION_SDF_EDITOR_PLUGIN_H
diff --git a/editor/plugins/mesh_instance_3d_editor_plugin.cpp b/editor/plugins/mesh_instance_3d_editor_plugin.cpp
index 1b65987af0..5b241deab0 100644
--- a/editor/plugins/mesh_instance_3d_editor_plugin.cpp
+++ b/editor/plugins/mesh_instance_3d_editor_plugin.cpp
@@ -138,6 +138,7 @@ void MeshInstance3DEditor::_menu_option(int p_option) {
CollisionShape3D *cshape = memnew(CollisionShape3D);
cshape->set_shape(shape);
+ cshape->set_transform(node->get_transform());
Node *owner = node->get_owner();
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index ced0b9f984..a4eab6ab4a 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -900,12 +900,15 @@ bool Node3DEditorViewport::_gizmo_select(const Vector2 &p_screenpos, bool p_high
}
float dist = r.distance_to(gt.origin);
-
- if (dist > gs * (GIZMO_CIRCLE_SIZE - GIZMO_RING_HALF_WIDTH) && dist < gs * (GIZMO_CIRCLE_SIZE + GIZMO_RING_HALF_WIDTH)) {
- float d = ray_pos.distance_to(r);
- if (d < col_d) {
- col_d = d;
- col_axis = i;
+ Vector3 r_dir = (r - gt.origin).normalized();
+
+ if (_get_camera_normal().dot(r_dir) <= 0.005) {
+ if (dist > gs * (GIZMO_CIRCLE_SIZE - GIZMO_RING_HALF_WIDTH) && dist < gs * (GIZMO_CIRCLE_SIZE + GIZMO_RING_HALF_WIDTH)) {
+ float d = ray_pos.distance_to(r);
+ if (d < col_d) {
+ col_d = d;
+ col_axis = i;
+ }
}
}
}
@@ -2059,7 +2062,12 @@ void Node3DEditorViewport::_nav_pan(Ref<InputEventWithModifiers> p_event, const
camera_transform.translate(cursor.pos);
camera_transform.basis.rotate(Vector3(1, 0, 0), -cursor.x_rot);
camera_transform.basis.rotate(Vector3(0, 1, 0), -cursor.y_rot);
- Vector3 translation(-p_relative.x * pan_speed, p_relative.y * pan_speed, 0);
+ const bool invert_x_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_x_axis");
+ const bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis");
+ Vector3 translation(
+ (invert_x_axis ? -1 : 1) * -p_relative.x * pan_speed,
+ (invert_y_axis ? -1 : 1) * p_relative.y * pan_speed,
+ 0);
translation *= cursor.distance / DISTANCE_DEFAULT;
camera_transform.translate(translation);
cursor.pos = camera_transform.origin;
@@ -2100,17 +2108,24 @@ void Node3DEditorViewport::_nav_orbit(Ref<InputEventWithModifiers> p_event, cons
_menu_option(VIEW_PERSPECTIVE);
}
- real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/navigation_feel/orbit_sensitivity");
- real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel);
- bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis");
+ const real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/navigation_feel/orbit_sensitivity");
+ const real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel);
+ const bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis");
+ const bool invert_x_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_x_axis");
if (invert_y_axis) {
cursor.x_rot -= p_relative.y * radians_per_pixel;
} else {
cursor.x_rot += p_relative.y * radians_per_pixel;
}
- cursor.y_rot += p_relative.x * radians_per_pixel;
+ // Clamp the Y rotation to roughly -90..90 degrees so the user can't look upside-down and end up disoriented.
cursor.x_rot = CLAMP(cursor.x_rot, -1.57, 1.57);
+
+ if (invert_x_axis) {
+ cursor.y_rot -= p_relative.x * radians_per_pixel;
+ } else {
+ cursor.y_rot += p_relative.x * radians_per_pixel;
+ }
name = "";
_update_name();
}
@@ -2125,21 +2140,23 @@ void Node3DEditorViewport::_nav_look(Ref<InputEventWithModifiers> p_event, const
_menu_option(VIEW_PERSPECTIVE);
}
- real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/freelook/freelook_sensitivity");
- real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel);
- bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis");
+ const real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/freelook/freelook_sensitivity");
+ const real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel);
+ const bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis");
// Note: do NOT assume the camera has the "current" transform, because it is interpolated and may have "lag".
- Transform prev_camera_transform = to_camera_transform(cursor);
+ const Transform prev_camera_transform = to_camera_transform(cursor);
if (invert_y_axis) {
cursor.x_rot -= p_relative.y * radians_per_pixel;
} else {
cursor.x_rot += p_relative.y * radians_per_pixel;
}
- cursor.y_rot += p_relative.x * radians_per_pixel;
+ // Clamp the Y rotation to roughly -90..90 degrees so the user can't look upside-down and end up disoriented.
cursor.x_rot = CLAMP(cursor.x_rot, -1.57, 1.57);
+ cursor.y_rot += p_relative.x * radians_per_pixel;
+
// Look is like the opposite of Orbit: the focus point rotates around the camera
Transform camera_transform = to_camera_transform(cursor);
Vector3 pos = camera_transform.xform(Vector3(0, 0, 0));
@@ -2232,7 +2249,7 @@ Point2i Node3DEditorViewport::_get_warped_mouse_motion(const Ref<InputEventMouse
}
static bool is_shortcut_pressed(const String &p_path) {
- Ref<ShortCut> shortcut = ED_GET_SHORTCUT(p_path);
+ Ref<Shortcut> shortcut = ED_GET_SHORTCUT(p_path);
if (shortcut.is_null()) {
return false;
}
@@ -2388,18 +2405,18 @@ void Node3DEditorViewport::_notification(int p_what) {
}
Transform t = sp->get_global_gizmo_transform();
+ VisualInstance3D *vi = Object::cast_to<VisualInstance3D>(sp);
+ AABB new_aabb = vi ? vi->get_aabb() : _calculate_spatial_bounds(sp);
exist = true;
- if (se->last_xform == t && !se->last_xform_dirty) {
+ if (se->last_xform == t && se->aabb == new_aabb && !se->last_xform_dirty) {
continue;
}
changed = true;
se->last_xform_dirty = false;
se->last_xform = t;
- VisualInstance3D *vi = Object::cast_to<VisualInstance3D>(sp);
-
- se->aabb = vi ? vi->get_aabb() : _calculate_spatial_bounds(sp);
+ se->aabb = new_aabb;
t.translate(se->aabb.position);
@@ -2447,12 +2464,14 @@ void Node3DEditorViewport::_notification(int p_what) {
subviewport_container->set_stretch_shrink(shrink ? 2 : 1);
}
- //update msaa if changed
+ // Update MSAA, screen-space AA and debanding if changed
- int msaa_mode = ProjectSettings::get_singleton()->get("rendering/quality/screen_filters/msaa");
+ const int msaa_mode = ProjectSettings::get_singleton()->get("rendering/quality/screen_filters/msaa");
viewport->set_msaa(Viewport::MSAA(msaa_mode));
- int ssaa_mode = GLOBAL_GET("rendering/quality/screen_filters/screen_space_aa");
+ const int ssaa_mode = GLOBAL_GET("rendering/quality/screen_filters/screen_space_aa");
viewport->set_screen_space_aa(Viewport::ScreenSpaceAA(ssaa_mode));
+ const bool use_debanding = GLOBAL_GET("rendering/quality/screen_filters/use_debanding");
+ viewport->set_use_debanding(use_debanding);
bool show_info = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_INFORMATION));
if (show_info != info_label->is_visible()) {
@@ -3111,6 +3130,14 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) {
RS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_plane_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF);
RS::get_singleton()->instance_set_layer_mask(scale_plane_gizmo_instance[i], layer);
}
+
+ // Rotation white outline
+ rotate_gizmo_instance[3] = RS::get_singleton()->instance_create();
+ RS::get_singleton()->instance_set_base(rotate_gizmo_instance[3], spatial_editor->get_rotate_gizmo(3)->get_rid());
+ RS::get_singleton()->instance_set_scenario(rotate_gizmo_instance[3], get_tree()->get_root()->get_world_3d()->get_scenario());
+ RS::get_singleton()->instance_set_visible(rotate_gizmo_instance[3], false);
+ RS::get_singleton()->instance_geometry_set_cast_shadows_setting(rotate_gizmo_instance[3], RS::SHADOW_CASTING_SETTING_OFF);
+ RS::get_singleton()->instance_set_layer_mask(rotate_gizmo_instance[3], layer);
}
void Node3DEditorViewport::_finish_gizmo_instances() {
@@ -3121,6 +3148,8 @@ void Node3DEditorViewport::_finish_gizmo_instances() {
RS::get_singleton()->free(scale_gizmo_instance[i]);
RS::get_singleton()->free(scale_plane_gizmo_instance[i]);
}
+ // Rotation white outline
+ RS::get_singleton()->free(rotate_gizmo_instance[3]);
}
void Node3DEditorViewport::_toggle_camera_preview(bool p_activate) {
@@ -3212,6 +3241,8 @@ void Node3DEditorViewport::update_transform_gizmo_view() {
RenderingServer::get_singleton()->instance_set_visible(scale_gizmo_instance[i], false);
RenderingServer::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], false);
}
+ // Rotation white outline
+ RenderingServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[3], false);
return;
}
@@ -3250,6 +3281,9 @@ void Node3DEditorViewport::update_transform_gizmo_view() {
RenderingServer::get_singleton()->instance_set_transform(scale_plane_gizmo_instance[i], xform);
RenderingServer::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE));
}
+ // Rotation white outline
+ RenderingServer::get_singleton()->instance_set_transform(rotate_gizmo_instance[3], xform);
+ RenderingServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[3], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_ROTATE));
}
void Node3DEditorViewport::set_state(const Dictionary &p_state) {
@@ -3534,7 +3568,7 @@ Vector3 Node3DEditorViewport::_get_instance_position(const Point2 &p_pos) const
return point + offset;
}
-AABB Node3DEditorViewport::_calculate_spatial_bounds(const Node3D *p_parent, bool p_exclude_toplevel_transform) {
+AABB Node3DEditorViewport::_calculate_spatial_bounds(const Node3D *p_parent, bool p_exclude_top_level_transform) {
AABB bounds;
const MeshInstance3D *mesh_instance = Object::cast_to<MeshInstance3D>(p_parent);
@@ -3559,7 +3593,7 @@ AABB Node3DEditorViewport::_calculate_spatial_bounds(const Node3D *p_parent, boo
bounds = AABB(Vector3(-0.2, -0.2, -0.2), Vector3(0.4, 0.4, 0.4));
}
- if (!p_exclude_toplevel_transform) {
+ if (!p_exclude_top_level_transform) {
bounds = p_parent->get_transform().xform(bounds);
}
@@ -3715,7 +3749,7 @@ void Node3DEditorViewport::_perform_drop_data() {
files_str += error_files[i].get_file().get_basename() + ",";
}
files_str = files_str.substr(0, files_str.length() - 1);
- accept->set_text(vformat(TTR("Error instancing scene from %s"), files_str.c_str()));
+ accept->set_text(vformat(TTR("Error instancing scene from %s"), files_str.get_data()));
accept->popup_centered();
}
}
@@ -4389,7 +4423,7 @@ void Node3DEditor::select_gizmo_highlight_axis(int p_axis) {
for (int i = 0; i < 3; i++) {
move_gizmo[i]->surface_set_material(0, i == p_axis ? gizmo_color_hl[i] : gizmo_color[i]);
move_plane_gizmo[i]->surface_set_material(0, (i + 6) == p_axis ? plane_gizmo_color_hl[i] : plane_gizmo_color[i]);
- rotate_gizmo[i]->surface_set_material(0, (i + 3) == p_axis ? gizmo_color_hl[i] : gizmo_color[i]);
+ rotate_gizmo[i]->surface_set_material(0, (i + 3) == p_axis ? rotate_gizmo_color_hl[i] : rotate_gizmo_color[i]);
scale_gizmo[i]->surface_set_material(0, (i + 9) == p_axis ? gizmo_color_hl[i] : gizmo_color[i]);
scale_plane_gizmo[i]->surface_set_material(0, (i + 12) == p_axis ? plane_gizmo_color_hl[i] : plane_gizmo_color[i]);
}
@@ -4689,9 +4723,9 @@ void Node3DEditor::edit(Node3D *p_spatial) {
}
void Node3DEditor::_snap_changed() {
- snap_translate_value = snap_translate->get_text().to_double();
- snap_rotate_value = snap_rotate->get_text().to_double();
- snap_scale_value = snap_scale->get_text().to_double();
+ snap_translate_value = snap_translate->get_text().to_float();
+ snap_rotate_value = snap_rotate->get_text().to_float();
+ snap_scale_value = snap_scale->get_text().to_float();
}
void Node3DEditor::_snap_update() {
@@ -4708,9 +4742,9 @@ void Node3DEditor::_xform_dialog_action() {
Vector3 translate;
for (int i = 0; i < 3; i++) {
- translate[i] = xform_translate[i]->get_text().to_double();
- rotate[i] = Math::deg2rad(xform_rotate[i]->get_text().to_double());
- scale[i] = xform_scale[i]->get_text().to_double();
+ translate[i] = xform_translate[i]->get_text().to_float();
+ rotate[i] = Math::deg2rad(xform_rotate[i]->get_text().to_float());
+ scale[i] = xform_scale[i]->get_text().to_float();
}
t.basis.scale(scale);
@@ -5273,37 +5307,122 @@ void Node3DEditor::_init_indicators() {
Ref<SurfaceTool> surftool = memnew(SurfaceTool);
surftool->begin(Mesh::PRIMITIVE_TRIANGLES);
- Vector3 circle[5] = {
- ivec * 0.02 + ivec2 * 0.02 + ivec2 * GIZMO_CIRCLE_SIZE,
- ivec * -0.02 + ivec2 * 0.02 + ivec2 * GIZMO_CIRCLE_SIZE,
- ivec * -0.02 + ivec2 * -0.02 + ivec2 * GIZMO_CIRCLE_SIZE,
- ivec * 0.02 + ivec2 * -0.02 + ivec2 * GIZMO_CIRCLE_SIZE,
- ivec * 0.02 + ivec2 * 0.02 + ivec2 * GIZMO_CIRCLE_SIZE,
- };
+ int n = 128; // number of circle segments
+ int m = 6; // number of thickness segments
- for (int k = 0; k < 64; k++) {
- Basis ma(ivec, Math_PI * 2 * float(k) / 64);
- Basis mb(ivec, Math_PI * 2 * float(k + 1) / 64);
+ for (int j = 0; j < n; ++j) {
+ Basis basis = Basis(ivec, (Math_PI * 2.0f * j) / n);
- for (int j = 0; j < 4; j++) {
- Vector3 points[4] = {
- ma.xform(circle[j]),
- mb.xform(circle[j]),
- mb.xform(circle[j + 1]),
- ma.xform(circle[j + 1]),
- };
- surftool->add_vertex(points[0]);
- surftool->add_vertex(points[1]);
- surftool->add_vertex(points[2]);
+ Vector3 vertex = basis.xform(ivec2 * GIZMO_CIRCLE_SIZE);
- surftool->add_vertex(points[0]);
- surftool->add_vertex(points[2]);
- surftool->add_vertex(points[3]);
+ for (int k = 0; k < m; ++k) {
+ Vector2 ofs = Vector2(Math::cos((Math_PI * 2.0 * k) / m), Math::sin((Math_PI * 2.0 * k) / m));
+ Vector3 normal = ivec * ofs.x + ivec2 * ofs.y;
+
+ surftool->add_normal(basis.xform(normal));
+ surftool->add_vertex(vertex);
}
}
- surftool->set_material(mat);
- surftool->commit(rotate_gizmo[i]);
+ for (int j = 0; j < n; ++j) {
+ for (int k = 0; k < m; ++k) {
+ int current_ring = j * m;
+ int next_ring = ((j + 1) % n) * m;
+ int current_segment = k;
+ int next_segment = (k + 1) % m;
+
+ surftool->add_index(current_ring + next_segment);
+ surftool->add_index(current_ring + current_segment);
+ surftool->add_index(next_ring + current_segment);
+
+ surftool->add_index(next_ring + current_segment);
+ surftool->add_index(next_ring + next_segment);
+ surftool->add_index(current_ring + next_segment);
+ }
+ }
+
+ Ref<Shader> rotate_shader = memnew(Shader);
+
+ rotate_shader->set_code("\n"
+ "shader_type spatial; \n"
+ "render_mode unshaded, depth_test_disabled; \n"
+ "uniform vec4 albedo; \n"
+ "\n"
+ "mat3 orthonormalize(mat3 m) { \n"
+ " vec3 x = normalize(m[0]); \n"
+ " vec3 y = normalize(m[1] - x * dot(x, m[1])); \n"
+ " vec3 z = m[2] - x * dot(x, m[2]); \n"
+ " z = normalize(z - y * (dot(y,m[2]))); \n"
+ " return mat3(x,y,z); \n"
+ "} \n"
+ "\n"
+ "void vertex() { \n"
+ " mat3 mv = orthonormalize(mat3(MODELVIEW_MATRIX)); \n"
+ " vec3 n = mv * VERTEX; \n"
+ " float orientation = dot(vec3(0,0,-1),n); \n"
+ " if (orientation <= 0.005) { \n"
+ " VERTEX += NORMAL*0.02; \n"
+ " } \n"
+ "} \n"
+ "\n"
+ "void fragment() { \n"
+ " ALBEDO = albedo.rgb; \n"
+ " ALPHA = albedo.a; \n"
+ "}");
+
+ Ref<ShaderMaterial> rotate_mat = memnew(ShaderMaterial);
+ rotate_mat->set_render_priority(Material::RENDER_PRIORITY_MAX);
+ rotate_mat->set_shader(rotate_shader);
+ rotate_mat->set_shader_param("albedo", col);
+ rotate_gizmo_color[i] = rotate_mat;
+
+ Array arrays = surftool->commit_to_arrays();
+ rotate_gizmo[i]->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, arrays);
+ rotate_gizmo[i]->surface_set_material(0, rotate_mat);
+
+ Ref<ShaderMaterial> rotate_mat_hl = rotate_mat->duplicate();
+ rotate_mat_hl->set_shader_param("albedo", Color(col.r, col.g, col.b, 1.0));
+ rotate_gizmo_color_hl[i] = rotate_mat_hl;
+
+ if (i == 2) { // Rotation white outline
+ Ref<ShaderMaterial> border_mat = rotate_mat->duplicate();
+
+ Ref<Shader> border_shader = memnew(Shader);
+ border_shader->set_code("\n"
+ "shader_type spatial; \n"
+ "render_mode unshaded, depth_test_disabled; \n"
+ "uniform vec4 albedo; \n"
+ "\n"
+ "mat3 orthonormalize(mat3 m) { \n"
+ " vec3 x = normalize(m[0]); \n"
+ " vec3 y = normalize(m[1] - x * dot(x, m[1])); \n"
+ " vec3 z = m[2] - x * dot(x, m[2]); \n"
+ " z = normalize(z - y * (dot(y,m[2]))); \n"
+ " return mat3(x,y,z); \n"
+ "} \n"
+ "\n"
+ "void vertex() { \n"
+ " mat3 mv = orthonormalize(mat3(MODELVIEW_MATRIX)); \n"
+ " mv = inverse(mv); \n"
+ " VERTEX += NORMAL*0.008; \n"
+ " vec3 camera_dir_local = mv * vec3(0,0,1); \n"
+ " vec3 camera_up_local = mv * vec3(0,1,0); \n"
+ " mat3 rotation_matrix = mat3(cross(camera_dir_local, camera_up_local), camera_up_local, camera_dir_local); \n"
+ " VERTEX = rotation_matrix * VERTEX; \n"
+ "} \n"
+ "\n"
+ "void fragment() { \n"
+ " ALBEDO = albedo.rgb; \n"
+ " ALPHA = albedo.a; \n"
+ "}");
+
+ border_mat->set_shader(border_shader);
+ border_mat->set_shader_param("albedo", Color(0.75, 0.75, 0.75, col.a / 3.0));
+
+ rotate_gizmo[3] = Ref<ArrayMesh>(memnew(ArrayMesh));
+ rotate_gizmo[3]->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, arrays);
+ rotate_gizmo[3]->surface_set_material(0, border_mat);
+ }
}
// Scale
@@ -5407,7 +5526,7 @@ void Node3DEditor::_update_gizmos_menu() {
}
String plugin_name = gizmo_plugins_by_name[i]->get_name();
const int plugin_state = gizmo_plugins_by_name[i]->get_state();
- gizmos_menu->add_multistate_item(TTR(plugin_name), 3, plugin_state, i);
+ gizmos_menu->add_multistate_item(plugin_name, 3, plugin_state, i);
const int idx = gizmos_menu->get_item_index(i);
gizmos_menu->set_item_tooltip(
idx,
@@ -5975,6 +6094,7 @@ void Node3DEditor::_register_all_gizmos() {
add_gizmo_plugin(Ref<VehicleWheel3DGizmoPlugin>(memnew(VehicleWheel3DGizmoPlugin)));
add_gizmo_plugin(Ref<VisibilityNotifier3DGizmoPlugin>(memnew(VisibilityNotifier3DGizmoPlugin)));
add_gizmo_plugin(Ref<GPUParticles3DGizmoPlugin>(memnew(GPUParticles3DGizmoPlugin)));
+ add_gizmo_plugin(Ref<GPUParticlesCollision3DGizmoPlugin>(memnew(GPUParticlesCollision3DGizmoPlugin)));
add_gizmo_plugin(Ref<CPUParticles3DGizmoPlugin>(memnew(CPUParticles3DGizmoPlugin)));
add_gizmo_plugin(Ref<ReflectionProbeGizmoPlugin>(memnew(ReflectionProbeGizmoPlugin)));
add_gizmo_plugin(Ref<DecalGizmoPlugin>(memnew(DecalGizmoPlugin)));
@@ -6432,9 +6552,9 @@ Vector3 Node3DEditor::snap_point(Vector3 p_target, Vector3 p_start) const {
float Node3DEditor::get_translate_snap() const {
float snap_value;
if (Input::get_singleton()->is_key_pressed(KEY_SHIFT)) {
- snap_value = snap_translate->get_text().to_double() / 10.0;
+ snap_value = snap_translate->get_text().to_float() / 10.0;
} else {
- snap_value = snap_translate->get_text().to_double();
+ snap_value = snap_translate->get_text().to_float();
}
return snap_value;
@@ -6443,9 +6563,9 @@ float Node3DEditor::get_translate_snap() const {
float Node3DEditor::get_rotate_snap() const {
float snap_value;
if (Input::get_singleton()->is_key_pressed(KEY_SHIFT)) {
- snap_value = snap_rotate->get_text().to_double() / 3.0;
+ snap_value = snap_rotate->get_text().to_float() / 3.0;
} else {
- snap_value = snap_rotate->get_text().to_double();
+ snap_value = snap_rotate->get_text().to_float();
}
return snap_value;
@@ -6454,9 +6574,9 @@ float Node3DEditor::get_rotate_snap() const {
float Node3DEditor::get_scale_snap() const {
float snap_value;
if (Input::get_singleton()->is_key_pressed(KEY_SHIFT)) {
- snap_value = snap_scale->get_text().to_double() / 2.0;
+ snap_value = snap_scale->get_text().to_float() / 2.0;
} else {
- snap_value = snap_scale->get_text().to_double();
+ snap_value = snap_scale->get_text().to_float();
}
return snap_value;
@@ -6693,7 +6813,7 @@ void EditorNode3DGizmoPlugin::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_material", "name", "gizmo"), &EditorNode3DGizmoPlugin::get_material); //, DEFVAL(Ref<EditorNode3DGizmo>()));
BIND_VMETHOD(MethodInfo(Variant::STRING, "get_name"));
- BIND_VMETHOD(MethodInfo(Variant::STRING, "get_priority"));
+ BIND_VMETHOD(MethodInfo(Variant::INT, "get_priority"));
BIND_VMETHOD(MethodInfo(Variant::BOOL, "can_be_hidden"));
BIND_VMETHOD(MethodInfo(Variant::BOOL, "is_selectable_when_hidden"));
diff --git a/editor/plugins/node_3d_editor_plugin.h b/editor/plugins/node_3d_editor_plugin.h
index 6a8af38742..e4a384449b 100644
--- a/editor/plugins/node_3d_editor_plugin.h
+++ b/editor/plugins/node_3d_editor_plugin.h
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#ifndef SPATIAL_EDITOR_PLUGIN_H
-#define SPATIAL_EDITOR_PLUGIN_H
+#ifndef NODE_3D_EDITOR_PLUGIN_H
+#define NODE_3D_EDITOR_PLUGIN_H
#include "editor/editor_node.h"
#include "editor/editor_plugin.h"
@@ -412,7 +412,7 @@ private:
real_t zoom_indicator_delay;
- RID move_gizmo_instance[3], move_plane_gizmo_instance[3], rotate_gizmo_instance[3], scale_gizmo_instance[3], scale_plane_gizmo_instance[3];
+ RID move_gizmo_instance[3], move_plane_gizmo_instance[3], rotate_gizmo_instance[4], scale_gizmo_instance[3], scale_plane_gizmo_instance[3];
String last_message;
String message;
@@ -450,7 +450,7 @@ private:
Point2i _get_warped_mouse_motion(const Ref<InputEventMouseMotion> &p_ev_mouse_motion) const;
Vector3 _get_instance_position(const Point2 &p_pos) const;
- static AABB _calculate_spatial_bounds(const Node3D *p_parent, bool p_exclude_toplevel_transform = true);
+ static AABB _calculate_spatial_bounds(const Node3D *p_parent, bool p_exclude_top_level_transform = true);
void _create_preview(const Vector<String> &files) const;
void _remove_preview();
bool _cyclical_dependency_exists(const String &p_target_scene_path, Node *p_desired_node);
@@ -600,11 +600,13 @@ private:
bool grid_enable[3]; //should be always visible if true
bool grid_enabled;
- Ref<ArrayMesh> move_gizmo[3], move_plane_gizmo[3], rotate_gizmo[3], scale_gizmo[3], scale_plane_gizmo[3];
+ Ref<ArrayMesh> move_gizmo[3], move_plane_gizmo[3], rotate_gizmo[4], scale_gizmo[3], scale_plane_gizmo[3];
Ref<StandardMaterial3D> gizmo_color[3];
Ref<StandardMaterial3D> plane_gizmo_color[3];
+ Ref<ShaderMaterial> rotate_gizmo_color[3];
Ref<StandardMaterial3D> gizmo_color_hl[3];
Ref<StandardMaterial3D> plane_gizmo_color_hl[3];
+ Ref<ShaderMaterial> rotate_gizmo_color_hl[3];
int over_gizmo_handle;
float snap_translate_value;
@@ -888,4 +890,4 @@ public:
virtual ~EditorNode3DGizmoPlugin();
};
-#endif
+#endif // NODE_3D_EDITOR_PLUGIN_H
diff --git a/editor/plugins/packed_scene_translation_parser_plugin.cpp b/editor/plugins/packed_scene_translation_parser_plugin.cpp
index 52af0008b7..608b5c3104 100644
--- a/editor/plugins/packed_scene_translation_parser_plugin.cpp
+++ b/editor/plugins/packed_scene_translation_parser_plugin.cpp
@@ -37,7 +37,7 @@ void PackedSceneEditorTranslationParserPlugin::get_recognized_extensions(List<St
ResourceLoader::get_recognized_extensions_for_type("PackedScene", r_extensions);
}
-Error PackedSceneEditorTranslationParserPlugin::parse_file(const String &p_path, Vector<String> *r_extracted_strings) {
+Error PackedSceneEditorTranslationParserPlugin::parse_file(const String &p_path, Vector<String> *r_ids, Vector<Vector<String>> *r_ids_ctx_plural) {
// Parse specific scene Node's properties (see in constructor) that are auto-translated by the engine when set. E.g Label's text property.
// These properties are translated with the tr() function in the C++ code when being set or updated.
@@ -71,8 +71,10 @@ Error PackedSceneEditorTranslationParserPlugin::parse_file(const String &p_path,
String extension = s->get_language()->get_extension();
if (EditorTranslationParser::get_singleton()->can_parse(extension)) {
Vector<String> temp;
- EditorTranslationParser::get_singleton()->get_parser(extension)->parse_file(s->get_path(), &temp);
+ Vector<Vector<String>> ids_context_plural;
+ EditorTranslationParser::get_singleton()->get_parser(extension)->parse_file(s->get_path(), &temp, &ids_context_plural);
parsed_strings.append_array(temp);
+ r_ids_ctx_plural->append_array(ids_context_plural);
}
} else if (property_name == "filters") {
// Extract FileDialog's filters property with values in format "*.png ; PNG Images","*.gd ; GDScript Files".
@@ -93,7 +95,7 @@ Error PackedSceneEditorTranslationParserPlugin::parse_file(const String &p_path,
}
}
- r_extracted_strings->append_array(parsed_strings);
+ r_ids->append_array(parsed_strings);
return OK;
}
diff --git a/editor/plugins/packed_scene_translation_parser_plugin.h b/editor/plugins/packed_scene_translation_parser_plugin.h
index 2bd4dae995..a0ffdf692c 100644
--- a/editor/plugins/packed_scene_translation_parser_plugin.h
+++ b/editor/plugins/packed_scene_translation_parser_plugin.h
@@ -40,7 +40,7 @@ class PackedSceneEditorTranslationParserPlugin : public EditorTranslationParserP
Set<String> lookup_properties;
public:
- virtual Error parse_file(const String &p_path, Vector<String> *r_extracted_strings) override;
+ virtual Error parse_file(const String &p_path, Vector<String> *r_ids, Vector<Vector<String>> *r_ids_ctx_plural) override;
virtual void get_recognized_extensions(List<String> *r_extensions) const override;
PackedSceneEditorTranslationParserPlugin();
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index 71830d0464..be8ddf789b 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -696,18 +696,21 @@ void ScriptEditor::_close_tab(int p_idx, bool p_save, bool p_history_back) {
Node *tselected = tab_container->get_child(selected);
- ScriptEditorBase *current = Object::cast_to<ScriptEditorBase>(tab_container->get_child(selected));
+ ScriptEditorBase *current = Object::cast_to<ScriptEditorBase>(tselected);
if (current) {
Ref<Script> script = current->get_edited_resource();
- if (p_save) {
- // Do not try to save internal scripts
- if (!script.is_valid() || !(script->get_path() == "" || script->get_path().find("local://") != -1 || script->get_path().find("::") != -1)) {
+ if (p_save && script.is_valid()) {
+ // Do not try to save internal scripts, but prompt to save in-memory
+ // scripts which are not saved to disk yet (have empty path).
+ if (script->get_path().find("local://") == -1 && script->get_path().find("::") == -1) {
_menu_option(FILE_SAVE);
}
}
-
- if (script != nullptr) {
- previous_scripts.push_back(script->get_path());
+ if (script.is_valid()) {
+ if (!script->get_path().empty()) {
+ // Only saved scripts can be restored.
+ previous_scripts.push_back(script->get_path());
+ }
notify_script_close(script);
}
}
@@ -779,8 +782,10 @@ void ScriptEditor::_close_docs_tab() {
void ScriptEditor::_copy_script_path() {
ScriptEditorBase *se = _get_current_editor();
- RES script = se->get_edited_resource();
- DisplayServer::get_singleton()->clipboard_set(script->get_path());
+ if (se) {
+ RES script = se->get_edited_resource();
+ DisplayServer::get_singleton()->clipboard_set(script->get_path());
+ }
}
void ScriptEditor::_close_other_tabs() {
@@ -1038,17 +1043,19 @@ void ScriptEditor::_file_dialog_action(String p_file) {
} break;
case FILE_SAVE_AS: {
ScriptEditorBase *current = _get_current_editor();
+ if (current) {
+ RES resource = current->get_edited_resource();
+ String path = ProjectSettings::get_singleton()->localize_path(p_file);
+ Error err = _save_text_file(resource, path);
- String path = ProjectSettings::get_singleton()->localize_path(p_file);
- Error err = _save_text_file(current->get_edited_resource(), path);
+ if (err != OK) {
+ editor->show_accept(TTR("Error saving file!"), TTR("OK"));
+ return;
+ }
- if (err != OK) {
- editor->show_accept(TTR("Error saving file!"), TTR("OK"));
- return;
+ resource->set_path(path);
+ _update_script_names();
}
-
- ((Resource *)current->get_edited_resource().ptr())->set_path(path);
- _update_script_names();
} break;
case THEME_SAVE_AS: {
if (!EditorSettings::get_singleton()->save_text_editor_theme_as(p_file)) {
@@ -1240,13 +1247,14 @@ void ScriptEditor::_menu_option(int p_option) {
}
}
- Ref<TextFile> text_file = current->get_edited_resource();
+ RES resource = current->get_edited_resource();
+ Ref<TextFile> text_file = resource;
if (text_file != nullptr) {
current->apply_code();
_save_text_file(text_file, text_file->get_path());
break;
}
- editor->save_resource(current->get_edited_resource());
+ editor->save_resource(resource);
} break;
case FILE_SAVE_AS: {
@@ -1264,7 +1272,8 @@ void ScriptEditor::_menu_option(int p_option) {
}
}
- Ref<TextFile> text_file = current->get_edited_resource();
+ RES resource = current->get_edited_resource();
+ Ref<TextFile> text_file = resource;
if (text_file != nullptr) {
file_dialog->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE);
file_dialog->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
@@ -1280,8 +1289,8 @@ void ScriptEditor::_menu_option(int p_option) {
break;
}
- editor->push_item(Object::cast_to<Object>(current->get_edited_resource().ptr()));
- editor->save_resource_as(current->get_edited_resource());
+ editor->push_item(resource.ptr());
+ editor->save_resource_as(resource);
} break;
@@ -1465,6 +1474,7 @@ void ScriptEditor::_notification(int p_what) {
editor->connect("stop_pressed", callable_mp(this, &ScriptEditor::_editor_stop));
editor->connect("script_add_function_request", callable_mp(this, &ScriptEditor::_add_callback));
editor->connect("resource_saved", callable_mp(this, &ScriptEditor::_res_saved_callback));
+ editor->get_filesystem_dock()->connect("file_removed", callable_mp(this, &ScriptEditor::_file_removed));
script_list->connect("item_selected", callable_mp(this, &ScriptEditor::_script_selected));
members_overview->connect("item_selected", callable_mp(this, &ScriptEditor::_members_overview_selected));
@@ -1472,6 +1482,7 @@ void ScriptEditor::_notification(int p_what) {
script_split->connect("dragged", callable_mp(this, &ScriptEditor::_script_split_dragged));
EditorSettings::get_singleton()->connect("settings_changed", callable_mp(this, &ScriptEditor::_editor_settings_changed));
+ EditorFileSystem::get_singleton()->connect("filesystem_changed", callable_mp(this, &ScriptEditor::_filesystem_changed));
[[fallthrough]];
}
case NOTIFICATION_THEME_CHANGED: {
@@ -1574,13 +1585,14 @@ void ScriptEditor::get_breakpoints(List<String> *p_breakpoints) {
continue;
}
- List<int> bpoints;
- se->get_breakpoints(&bpoints);
String base = script->get_path();
- ERR_CONTINUE(base.begins_with("local://") || base == "");
+ if (base.begins_with("local://") || base == "") {
+ continue;
+ }
- for (List<int>::Element *E = bpoints.front(); E; E = E->next()) {
- p_breakpoints->push_back(base + ":" + itos(E->get() + 1));
+ Array bpoints = se->get_breakpoints();
+ for (int j = 0; j < bpoints.size(); j++) {
+ p_breakpoints->push_back(base + ":" + itos((int)bpoints[j] + 1));
}
}
}
@@ -1630,6 +1642,8 @@ void ScriptEditor::ensure_select_current() {
if (tab_container->get_child_count() && tab_container->get_current_tab() >= 0) {
ScriptEditorBase *se = _get_current_editor();
if (se) {
+ se->enable_editor();
+
if (!grab_focus_block && is_visible_in_tree()) {
se->ensure_focus();
}
@@ -1840,6 +1854,12 @@ void ScriptEditor::_update_script_names() {
if (se) {
Ref<Texture2D> icon = se->get_theme_icon();
String path = se->get_edited_resource()->get_path();
+ bool saved = !path.empty();
+ if (saved) {
+ // The script might be deleted, moved, or renamed, so make sure
+ // to update original path to previously edited resource.
+ se->set_meta("_edit_res_path", path);
+ }
bool built_in = !path.is_resource_file();
String name;
@@ -1858,7 +1878,7 @@ void ScriptEditor::_update_script_names() {
_ScriptEditorItemData sd;
sd.icon = icon;
sd.name = name;
- sd.tooltip = path;
+ sd.tooltip = saved ? path : TTR("Unsaved file.");
sd.index = i;
sd.used = used.has(se->get_edited_resource());
sd.category = 0;
@@ -1891,6 +1911,9 @@ void ScriptEditor::_update_script_names() {
sd.name = path;
} break;
}
+ if (!saved) {
+ sd.name = se->get_name();
+ }
sedata.push_back(sd);
}
@@ -1898,14 +1921,18 @@ void ScriptEditor::_update_script_names() {
Vector<String> disambiguated_script_names;
Vector<String> full_script_paths;
for (int j = 0; j < sedata.size(); j++) {
- disambiguated_script_names.append(sedata[j].name);
+ disambiguated_script_names.append(sedata[j].name.replace("(*)", ""));
full_script_paths.append(sedata[j].tooltip);
}
EditorNode::disambiguate_filenames(full_script_paths, disambiguated_script_names);
for (int j = 0; j < sedata.size(); j++) {
- sedata.write[j].name = disambiguated_script_names[j];
+ if (sedata[j].name.ends_with("(*)")) {
+ sedata.write[j].name = disambiguated_script_names[j] + "(*)";
+ } else {
+ sedata.write[j].name = disambiguated_script_names[j];
+ }
}
EditorHelp *eh = Object::cast_to<EditorHelp>(tab_container->get_child(i));
@@ -1974,6 +2001,11 @@ void ScriptEditor::_update_script_names() {
script_list->select(index);
script_name_label->set_text(sedata_filtered[i].name);
script_icon->set_texture(sedata_filtered[i].icon);
+ ScriptEditorBase *se = _get_current_editor();
+ if (se) {
+ se->enable_editor();
+ _update_selected_editor_menu();
+ }
}
}
@@ -2062,15 +2094,15 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra
Ref<Script> script = p_resource;
- // refuse to open built-in if scene is not loaded
-
- // see if already has it
+ // Don't open dominant script if using an external editor.
+ const bool use_external_editor =
+ EditorSettings::get_singleton()->get("text_editor/external/use_external_editor") ||
+ (script.is_valid() && script->get_language()->overrides_external_editor());
+ const bool open_dominant = EditorSettings::get_singleton()->get("text_editor/files/open_dominant_script_on_scene_change");
- bool open_dominant = EditorSettings::get_singleton()->get("text_editor/files/open_dominant_script_on_scene_change");
+ const bool should_open = (open_dominant && !use_external_editor) || !EditorNode::get_singleton()->is_changing_scene();
- const bool should_open = open_dominant || !EditorNode::get_singleton()->is_changing_scene();
-
- if (script != nullptr && script->get_language()->overrides_external_editor()) {
+ if (script.is_valid() && script->get_language()->overrides_external_editor()) {
if (should_open) {
Error err = script->get_language()->open_in_external_editor(script, p_line >= 0 ? p_line : 0, p_col);
if (err != OK) {
@@ -2080,10 +2112,10 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra
return false;
}
- if ((EditorDebuggerNode::get_singleton()->get_dump_stack_script() != p_resource || EditorDebuggerNode::get_singleton()->get_debug_with_external_editor()) &&
+ if (use_external_editor &&
+ (EditorDebuggerNode::get_singleton()->get_dump_stack_script() != p_resource || EditorDebuggerNode::get_singleton()->get_debug_with_external_editor()) &&
p_resource->get_path().is_resource_file() &&
- p_resource->get_class_name() != StringName("VisualScript") &&
- bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor"))) {
+ p_resource->get_class_name() != StringName("VisualScript")) {
String path = EditorSettings::get_singleton()->get("text_editor/external/exec_path");
String flags = EditorSettings::get_singleton()->get("text_editor/external/exec_flags");
@@ -2148,6 +2180,8 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra
if ((script != nullptr && se->get_edited_resource() == p_resource) || se->get_edited_resource()->get_path() == p_resource->get_path()) {
if (should_open) {
+ se->enable_editor();
+
if (tab_container->get_current_tab() != i) {
_go_to_tab(i);
_update_script_names();
@@ -2178,6 +2212,8 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra
}
ERR_FAIL_COND_V(!se, false);
+ se->set_edited_resource(p_resource);
+
if (p_resource->get_class_name() != StringName("VisualScript")) {
bool highlighter_set = false;
for (int i = 0; i < syntax_highlighters.size(); i++) {
@@ -2198,7 +2234,14 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra
}
tab_container->add_child(se);
- se->set_edited_resource(p_resource);
+
+ if (p_grab_focus) {
+ se->enable_editor();
+ }
+
+ // If we delete a script within the filesystem, the original resource path
+ // is lost, so keep it as metadata to figure out the exact tab to delete.
+ se->set_meta("_edit_res_path", p_resource->get_path());
se->set_tooltip_request_func("_get_debug_tooltip", this);
if (se->get_edit_menu()) {
se->get_edit_menu()->hide();
@@ -2208,6 +2251,7 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra
if (p_grab_focus) {
_go_to_tab(tab_container->get_tab_count() - 1);
+ _add_recent_script(p_resource->get_path());
}
_sort_list_on_update = true;
@@ -2232,7 +2276,6 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra
}
notify_script_changed(p_resource);
- _add_recent_script(p_resource->get_path());
return true;
}
@@ -2373,6 +2416,23 @@ void ScriptEditor::_editor_settings_changed() {
ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/files/auto_reload_and_parse_scripts_on_save", true));
}
+void ScriptEditor::_filesystem_changed() {
+ _update_script_names();
+}
+
+void ScriptEditor::_file_removed(const String &p_removed_file) {
+ for (int i = 0; i < tab_container->get_child_count(); i++) {
+ ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i));
+ if (!se) {
+ continue;
+ }
+ if (se->get_meta("_edit_res_path") == p_removed_file) {
+ // The script is deleted with no undo, so just close the tab.
+ _close_tab(i, false, false);
+ }
+ }
+}
+
void ScriptEditor::_autosave_scripts() {
save_all_scripts();
}
@@ -2704,7 +2764,7 @@ void ScriptEditor::set_window_layout(Ref<ConfigFile> p_layout) {
if (!scr.is_valid()) {
continue;
}
- if (!edit(scr)) {
+ if (!edit(scr, false)) {
continue;
}
} else {
@@ -2713,7 +2773,7 @@ void ScriptEditor::set_window_layout(Ref<ConfigFile> p_layout) {
if (error != OK || !text_file.is_valid()) {
continue;
}
- if (!edit(text_file)) {
+ if (!edit(text_file, false)) {
continue;
}
}
@@ -2945,13 +3005,13 @@ Array ScriptEditor::_get_open_script_editors() const {
}
void ScriptEditor::set_scene_root_script(Ref<Script> p_script) {
- bool open_dominant = EditorSettings::get_singleton()->get("text_editor/files/open_dominant_script_on_scene_change");
-
- if (bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor"))) {
- return;
- }
+ // Don't open dominant script if using an external editor.
+ const bool use_external_editor =
+ EditorSettings::get_singleton()->get("text_editor/external/use_external_editor") ||
+ (p_script.is_valid() && p_script->get_language()->overrides_external_editor());
+ const bool open_dominant = EditorSettings::get_singleton()->get("text_editor/files/open_dominant_script_on_scene_change");
- if (open_dominant && p_script.is_valid()) {
+ if (open_dominant && !use_external_editor && p_script.is_valid()) {
edit(p_script);
}
}
diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h
index 3891af4091..c2b0b458eb 100644
--- a/editor/plugins/script_editor_plugin.h
+++ b/editor/plugins/script_editor_plugin.h
@@ -134,6 +134,7 @@ public:
virtual RES get_edited_resource() const = 0;
virtual Vector<String> get_functions() = 0;
virtual void set_edited_resource(const RES &p_res) = 0;
+ virtual void enable_editor() = 0;
virtual void reload_text() = 0;
virtual String get_name() = 0;
virtual Ref<Texture2D> get_theme_icon() = 0;
@@ -150,7 +151,7 @@ public:
virtual void ensure_focus() = 0;
virtual void tag_saved_version() = 0;
virtual void reload(bool p_soft) {}
- virtual void get_breakpoints(List<int> *p_breakpoints) = 0;
+ virtual Array get_breakpoints() = 0;
virtual void add_callback(const String &p_function, PackedStringArray p_args) = 0;
virtual void update_settings() = 0;
virtual void set_debugger_active(bool p_active) = 0;
@@ -370,6 +371,8 @@ class ScriptEditor : public PanelContainer {
void _save_layout();
void _editor_settings_changed();
+ void _filesystem_changed();
+ void _file_removed(const String &p_file);
void _autosave_scripts();
void _update_autosave_timer();
diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp
index 1e03d9dfab..7feb7cb3d3 100644
--- a/editor/plugins/script_text_editor.cpp
+++ b/editor/plugins/script_text_editor.cpp
@@ -111,7 +111,7 @@ ConnectionInfoDialog::ConnectionInfoDialog() {
Vector<String> ScriptTextEditor::get_functions() {
String errortxt;
int line = -1, col;
- TextEdit *te = code_editor->get_text_edit();
+ CodeEdit *te = code_editor->get_text_editor();
String text = te->get_text();
List<String> fnc;
@@ -130,9 +130,9 @@ void ScriptTextEditor::apply_code() {
if (script.is_null()) {
return;
}
- script->set_source_code(code_editor->get_text_edit()->get_text());
+ script->set_source_code(code_editor->get_text_editor()->get_text());
script->update_exports();
- code_editor->get_text_edit()->get_syntax_highlighter()->update_cache();
+ code_editor->get_text_editor()->get_syntax_highlighter()->update_cache();
}
RES ScriptTextEditor::get_edited_resource() const {
@@ -140,25 +140,46 @@ RES ScriptTextEditor::get_edited_resource() const {
}
void ScriptTextEditor::set_edited_resource(const RES &p_res) {
- ERR_FAIL_COND(!script.is_null());
+ ERR_FAIL_COND(script.is_valid());
+ ERR_FAIL_COND(p_res.is_null());
script = p_res;
- _set_theme_for_script();
- code_editor->get_text_edit()->set_text(script->get_source_code());
- code_editor->get_text_edit()->clear_undo_history();
- code_editor->get_text_edit()->tag_saved_version();
+ code_editor->get_text_editor()->set_text(script->get_source_code());
+ code_editor->get_text_editor()->clear_undo_history();
+ code_editor->get_text_editor()->tag_saved_version();
emit_signal("name_changed");
code_editor->update_line_and_column();
+}
+
+void ScriptTextEditor::enable_editor() {
+ if (editor_enabled) {
+ return;
+ }
+
+ editor_enabled = true;
+
+ _enable_code_editor();
+ _set_theme_for_script();
_validate_script();
}
void ScriptTextEditor::_load_theme_settings() {
- TextEdit *text_edit = code_editor->get_text_edit();
+ CodeEdit *text_edit = code_editor->get_text_editor();
text_edit->clear_keywords();
+ Color updated_safe_line_number_color = EDITOR_GET("text_editor/highlighting/safe_line_number_color");
+ if (updated_safe_line_number_color != safe_line_number_color) {
+ safe_line_number_color = updated_safe_line_number_color;
+ for (int i = 0; i < text_edit->get_line_count(); i++) {
+ if (text_edit->get_line_gutter_item_color(i, line_number_gutter) != default_line_number_color) {
+ text_edit->set_line_gutter_item_color(i, line_number_gutter, safe_line_number_color);
+ }
+ }
+ }
+
Color background_color = EDITOR_GET("text_editor/highlighting/background_color");
Color completion_background_color = EDITOR_GET("text_editor/highlighting/completion_background_color");
Color completion_selected_color = EDITOR_GET("text_editor/highlighting/completion_selected_color");
@@ -167,7 +188,6 @@ void ScriptTextEditor::_load_theme_settings() {
Color completion_font_color = EDITOR_GET("text_editor/highlighting/completion_font_color");
Color text_color = EDITOR_GET("text_editor/highlighting/text_color");
Color line_number_color = EDITOR_GET("text_editor/highlighting/line_number_color");
- Color safe_line_number_color = EDITOR_GET("text_editor/highlighting/safe_line_number_color");
Color caret_color = EDITOR_GET("text_editor/highlighting/caret_color");
Color caret_background_color = EDITOR_GET("text_editor/highlighting/caret_background_color");
Color text_selected_color = EDITOR_GET("text_editor/highlighting/text_selected_color");
@@ -192,7 +212,6 @@ void ScriptTextEditor::_load_theme_settings() {
text_edit->add_theme_color_override("completion_font_color", completion_font_color);
text_edit->add_theme_color_override("font_color", text_color);
text_edit->add_theme_color_override("line_number_color", line_number_color);
- text_edit->add_theme_color_override("safe_line_number_color", safe_line_number_color);
text_edit->add_theme_color_override("caret_color", caret_color);
text_edit->add_theme_color_override("caret_background_color", caret_background_color);
text_edit->add_theme_color_override("font_color_selected", text_selected_color);
@@ -222,7 +241,7 @@ void ScriptTextEditor::_set_theme_for_script() {
return;
}
- TextEdit *text_edit = code_editor->get_text_edit();
+ CodeEdit *text_edit = code_editor->get_text_editor();
text_edit->get_syntax_highlighter()->update_cache();
/* add keywords for auto completion */
@@ -273,10 +292,10 @@ void ScriptTextEditor::_show_warnings_panel(bool p_show) {
void ScriptTextEditor::_warning_clicked(Variant p_line) {
if (p_line.get_type() == Variant::INT) {
- code_editor->get_text_edit()->cursor_set_line(p_line.operator int64_t());
+ code_editor->get_text_editor()->cursor_set_line(p_line.operator int64_t());
} else if (p_line.get_type() == Variant::DICTIONARY) {
Dictionary meta = p_line.operator Dictionary();
- code_editor->get_text_edit()->insert_at("# warning-ignore:" + meta["code"].operator String(), meta["line"].operator int64_t() - 1);
+ code_editor->get_text_editor()->insert_at("# warning-ignore:" + meta["code"].operator String(), meta["line"].operator int64_t() - 1);
_validate_script();
}
}
@@ -284,7 +303,7 @@ void ScriptTextEditor::_warning_clicked(Variant p_line) {
void ScriptTextEditor::reload_text() {
ERR_FAIL_COND(script.is_null());
- TextEdit *te = code_editor->get_text_edit();
+ CodeEdit *te = code_editor->get_text_editor();
int column = te->cursor_get_column();
int row = te->cursor_get_line();
int h = te->get_h_scroll();
@@ -301,29 +320,21 @@ void ScriptTextEditor::reload_text() {
code_editor->update_line_and_column();
}
-void ScriptTextEditor::_notification(int p_what) {
- switch (p_what) {
- case NOTIFICATION_READY:
- _load_theme_settings();
- break;
- }
-}
-
void ScriptTextEditor::add_callback(const String &p_function, PackedStringArray p_args) {
- String code = code_editor->get_text_edit()->get_text();
+ String code = code_editor->get_text_editor()->get_text();
int pos = script->get_language()->find_function(p_function, code);
if (pos == -1) {
//does not exist
- code_editor->get_text_edit()->deselect();
- pos = code_editor->get_text_edit()->get_line_count() + 2;
+ code_editor->get_text_editor()->deselect();
+ 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_edit()->cursor_set_line(pos + 1);
- code_editor->get_text_edit()->cursor_set_column(1000000); //none shall be that big
- code_editor->get_text_edit()->insert_text_at_cursor("\n\n" + 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_edit()->cursor_set_line(pos);
- code_editor->get_text_edit()->cursor_set_column(1);
+ code_editor->get_text_editor()->cursor_set_line(pos);
+ code_editor->get_text_editor()->cursor_set_column(1);
}
bool ScriptTextEditor::show_members_overview() {
@@ -331,11 +342,15 @@ bool ScriptTextEditor::show_members_overview() {
}
void ScriptTextEditor::update_settings() {
+ code_editor->get_text_editor()->set_gutter_draw(connection_gutter, EditorSettings::get_singleton()->get("text_editor/appearance/show_info_gutter"));
code_editor->update_editor_settings();
}
bool ScriptTextEditor::is_unsaved() {
- return code_editor->get_text_edit()->get_version() != code_editor->get_text_edit()->get_saved_version();
+ const bool unsaved =
+ code_editor->get_text_editor()->get_version() != code_editor->get_text_editor()->get_saved_version() ||
+ script->get_path().empty(); // In memory.
+ return unsaved;
}
Variant ScriptTextEditor::get_edit_state() {
@@ -352,6 +367,10 @@ void ScriptTextEditor::set_edit_state(const Variant &p_state) {
_change_syntax_highlighter(idx);
}
}
+
+ if (editor_enabled) {
+ ensure_focus();
+ }
}
void ScriptTextEditor::_convert_case(CodeTextEditor::CaseStyle p_case) {
@@ -375,7 +394,7 @@ void ScriptTextEditor::convert_indent_to_tabs() {
}
void ScriptTextEditor::tag_saved_version() {
- code_editor->get_text_edit()->tag_saved_version();
+ code_editor->get_text_editor()->tag_saved_version();
}
void ScriptTextEditor::goto_line(int p_line, bool p_with_error) {
@@ -399,7 +418,7 @@ void ScriptTextEditor::clear_executing_line() {
}
void ScriptTextEditor::ensure_focus() {
- code_editor->get_text_edit()->grab_focus();
+ code_editor->get_text_editor()->grab_focus();
}
String ScriptTextEditor::get_name() {
@@ -408,6 +427,9 @@ String ScriptTextEditor::get_name() {
if (script->get_path().find("local://") == -1 && script->get_path().find("::") == -1) {
name = script->get_path().get_file();
if (is_unsaved()) {
+ if (script->get_path().empty()) {
+ name = TTR("[unsaved]");
+ }
name += "(*)";
}
} else if (script->get_name() != "") {
@@ -430,7 +452,7 @@ Ref<Texture2D> ScriptTextEditor::get_theme_icon() {
void ScriptTextEditor::_validate_script() {
String errortxt;
int line = -1, col;
- TextEdit *te = code_editor->get_text_edit();
+ CodeEdit *te = code_editor->get_text_editor();
String text = te->get_text();
List<String> fnc;
@@ -494,7 +516,7 @@ void ScriptTextEditor::_validate_script() {
ScriptLanguage::Warning w = E->get();
Dictionary ignore_meta;
- ignore_meta["line"] = w.line;
+ ignore_meta["line"] = w.start_line;
ignore_meta["code"] = w.string_code.to_lower();
warnings_panel->push_cell();
warnings_panel->push_meta(ignore_meta);
@@ -506,9 +528,9 @@ void ScriptTextEditor::_validate_script() {
warnings_panel->pop(); // Cell.
warnings_panel->push_cell();
- warnings_panel->push_meta(w.line - 1);
+ warnings_panel->push_meta(w.start_line - 1);
warnings_panel->push_color(warnings_panel->get_theme_color("warning_color", "Editor"));
- warnings_panel->add_text(TTR("Line") + " " + itos(w.line));
+ warnings_panel->add_text(TTR("Line") + " " + itos(w.start_line));
warnings_panel->add_text(" (" + w.string_code + "):");
warnings_panel->pop(); // Color.
warnings_panel->pop(); // Meta goto.
@@ -527,16 +549,16 @@ void ScriptTextEditor::_validate_script() {
te->set_line_as_marked(i, line == i);
if (highlight_safe) {
if (safe_lines.has(i + 1)) {
- te->set_line_as_safe(i, true);
+ te->set_line_gutter_item_color(i, line_number_gutter, safe_line_number_color);
last_is_safe = true;
} else if (last_is_safe && (te->is_line_comment(i) || te->get_line(i).strip_edges().empty())) {
- te->set_line_as_safe(i, true);
+ te->set_line_gutter_item_color(i, line_number_gutter, safe_line_number_color);
} else {
- te->set_line_as_safe(i, false);
+ te->set_line_gutter_item_color(i, line_number_gutter, default_line_number_color);
last_is_safe = false;
}
} else {
- te->set_line_as_safe(i, false);
+ te->set_line_gutter_item_color(line, 1, default_line_number_color);
}
}
@@ -553,7 +575,7 @@ void ScriptTextEditor::_update_bookmark_list() {
bookmarks_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_next_bookmark"), BOOKMARK_GOTO_NEXT);
bookmarks_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_previous_bookmark"), BOOKMARK_GOTO_PREV);
- Array bookmark_list = code_editor->get_text_edit()->get_bookmarks_array();
+ Array bookmark_list = code_editor->get_text_editor()->get_bookmarked_lines();
if (bookmark_list.size() == 0) {
return;
}
@@ -563,7 +585,7 @@ void ScriptTextEditor::_update_bookmark_list() {
for (int i = 0; i < bookmark_list.size(); i++) {
// Strip edges to remove spaces or tabs.
// Also replace any tabs by spaces, since we can't print tabs in the menu.
- String line = code_editor->get_text_edit()->get_line(bookmark_list[i]).replace("\t", " ").strip_edges();
+ String line = code_editor->get_text_editor()->get_line(bookmark_list[i]).replace("\t", " ").strip_edges();
// Limit the size of the line if too big.
if (line.length() > 50) {
@@ -580,7 +602,7 @@ void ScriptTextEditor::_bookmark_item_pressed(int p_idx) {
_edit_option(bookmarks_menu->get_item_id(p_idx));
} else {
code_editor->goto_line(bookmarks_menu->get_item_metadata(p_idx));
- code_editor->get_text_edit()->call_deferred("center_viewport_to_cursor"); //Need to be deferred, because goto uses call_deferred().
+ code_editor->get_text_editor()->call_deferred("center_viewport_to_cursor"); //Need to be deferred, because goto uses call_deferred().
}
}
@@ -691,7 +713,7 @@ void ScriptTextEditor::_code_complete_script(const String &p_code, List<ScriptCo
String hint;
Error err = script->get_language()->complete_code(p_code, script->get_path(), base, r_options, r_force, hint);
if (err == OK) {
- code_editor->get_text_edit()->set_code_hint(hint);
+ code_editor->get_text_editor()->set_code_hint(hint);
}
}
@@ -704,7 +726,7 @@ void ScriptTextEditor::_update_breakpoint_list() {
breakpoints_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_next_breakpoint"), DEBUG_GOTO_NEXT_BREAKPOINT);
breakpoints_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_previous_breakpoint"), DEBUG_GOTO_PREV_BREAKPOINT);
- Array breakpoint_list = code_editor->get_text_edit()->get_breakpoints_array();
+ Array breakpoint_list = code_editor->get_text_editor()->get_breakpointed_lines();
if (breakpoint_list.size() == 0) {
return;
}
@@ -714,7 +736,7 @@ void ScriptTextEditor::_update_breakpoint_list() {
for (int i = 0; i < breakpoint_list.size(); i++) {
// Strip edges to remove spaces or tabs.
// Also replace any tabs by spaces, since we can't print tabs in the menu.
- String line = code_editor->get_text_edit()->get_line(breakpoint_list[i]).replace("\t", " ").strip_edges();
+ String line = code_editor->get_text_editor()->get_line(breakpoint_list[i]).replace("\t", " ").strip_edges();
// Limit the size of the line if too big.
if (line.length() > 50) {
@@ -731,12 +753,12 @@ 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_edit()->call_deferred("center_viewport_to_cursor"); //Need to be deferred, because goto uses call_deferred().
+ code_editor->get_text_editor()->call_deferred("center_viewport_to_cursor"); //Need to be deferred, because goto uses call_deferred().
}
}
void ScriptTextEditor::_breakpoint_toggled(int p_row) {
- EditorDebuggerNode::get_singleton()->set_breakpoint(script->get_path(), p_row + 1, code_editor->get_text_edit()->is_line_set_as_breakpoint(p_row));
+ EditorDebuggerNode::get_singleton()->set_breakpoint(script->get_path(), p_row + 1, code_editor->get_text_editor()->is_line_breakpointed(p_row));
}
void ScriptTextEditor::_lookup_symbol(const String &p_symbol, int p_row, int p_column) {
@@ -758,7 +780,7 @@ void ScriptTextEditor::_lookup_symbol(const String &p_symbol, int p_row, int p_c
EditorNode::get_singleton()->load_resource(p_symbol);
}
- } else if (script->get_language()->lookup_code(code_editor->get_text_edit()->get_text_for_lookup_completion(), p_symbol, script->get_path(), base, result) == OK) {
+ } else if (script->get_language()->lookup_code(code_editor->get_text_editor()->get_text_for_lookup_completion(), p_symbol, script->get_path(), base, result) == OK) {
_goto_line(p_row);
result.class_name = result.class_name.trim_prefix("_");
@@ -853,7 +875,7 @@ void ScriptTextEditor::_lookup_symbol(const String &p_symbol, int p_row, int p_c
}
void ScriptTextEditor::_validate_symbol(const String &p_symbol) {
- TextEdit *text_edit = code_editor->get_text_edit();
+ CodeEdit *text_edit = code_editor->get_text_editor();
Node *base = get_tree()->get_edited_scene_root();
if (base) {
@@ -861,7 +883,7 @@ void ScriptTextEditor::_validate_symbol(const String &p_symbol) {
}
ScriptLanguage::LookupResult result;
- if (ScriptServer::is_global_class(p_symbol) || p_symbol.is_resource_file() || script->get_language()->lookup_code(code_editor->get_text_edit()->get_text_for_lookup_completion(), p_symbol, script->get_path(), base, result) == OK || (ProjectSettings::get_singleton()->has_autoload(p_symbol) && ProjectSettings::get_singleton()->get_autoload(p_symbol).is_singleton)) {
+ if (ScriptServer::is_global_class(p_symbol) || p_symbol.is_resource_file() || script->get_language()->lookup_code(code_editor->get_text_editor()->get_text_for_lookup_completion(), p_symbol, script->get_path(), base, result) == OK || (ProjectSettings::get_singleton()->has_autoload(p_symbol) && ProjectSettings::get_singleton()->get_autoload(p_symbol).is_singleton)) {
text_edit->set_highlighted_word(p_symbol);
} else if (p_symbol.is_rel_path()) {
String path = _get_absolute_path(p_symbol);
@@ -889,8 +911,15 @@ void ScriptTextEditor::update_toggle_scripts_button() {
}
void ScriptTextEditor::_update_connected_methods() {
- TextEdit *text_edit = code_editor->get_text_edit();
- text_edit->clear_info_icons();
+ CodeEdit *text_edit = code_editor->get_text_editor();
+ for (int i = 0; i < text_edit->get_line_count(); i++) {
+ if (text_edit->get_line_gutter_metadata(i, connection_gutter) == "") {
+ continue;
+ }
+ text_edit->set_line_gutter_metadata(i, connection_gutter, "");
+ text_edit->set_line_gutter_icon(i, connection_gutter, nullptr);
+ text_edit->set_line_gutter_clickable(i, connection_gutter, false);
+ }
missing_connections.clear();
if (!script_is_valid) {
@@ -930,8 +959,10 @@ void ScriptTextEditor::_update_connected_methods() {
for (int j = 0; j < functions.size(); j++) {
String name = functions[j].get_slice(":", 0);
if (name == connection.callable.get_method()) {
- line = functions[j].get_slice(":", 1).to_int();
- text_edit->set_line_info_icon(line - 1, get_parent_control()->get_theme_icon("Slot", "EditorIcons"), connection.callable.get_method());
+ line = functions[j].get_slice(":", 1).to_int() - 1;
+ text_edit->set_line_gutter_metadata(line, connection_gutter, connection.callable.get_method());
+ text_edit->set_line_gutter_icon(line, connection_gutter, get_parent_control()->get_theme_icon("Slot", "EditorIcons"));
+ text_edit->set_line_gutter_clickable(line, connection_gutter, true);
methods_found.insert(connection.callable.get_method());
break;
}
@@ -961,18 +992,41 @@ void ScriptTextEditor::_update_connected_methods() {
}
}
-void ScriptTextEditor::_lookup_connections(int p_row, String p_method) {
+void ScriptTextEditor::_update_gutter_indexes() {
+ for (int i = 0; i < code_editor->get_text_editor()->get_gutter_count(); i++) {
+ if (code_editor->get_text_editor()->get_gutter_name(i) == "connection_gutter") {
+ connection_gutter = i;
+ continue;
+ }
+
+ if (code_editor->get_text_editor()->get_gutter_name(i) == "line_numbers") {
+ line_number_gutter = i;
+ continue;
+ }
+ }
+}
+
+void ScriptTextEditor::_gutter_clicked(int p_line, int p_gutter) {
+ if (p_gutter != connection_gutter) {
+ return;
+ }
+
+ String method = code_editor->get_text_editor()->get_line_gutter_metadata(p_line, p_gutter);
+ if (method == "") {
+ return;
+ }
+
Node *base = get_tree()->get_edited_scene_root();
if (!base) {
return;
}
Vector<Node *> nodes = _find_all_node_for_script(base, base, script);
- connection_info_dialog->popup_connections(p_method, nodes);
+ connection_info_dialog->popup_connections(method, nodes);
}
void ScriptTextEditor::_edit_option(int p_op) {
- TextEdit *tx = code_editor->get_text_edit();
+ CodeEdit *tx = code_editor->get_text_editor();
switch (p_op) {
case EDIT_UNDO: {
@@ -1096,7 +1150,7 @@ void ScriptTextEditor::_edit_option(int p_op) {
} break;
case EDIT_EVALUATE: {
Expression expression;
- Vector<String> lines = code_editor->get_text_edit()->get_selection_text().split("\n");
+ Vector<String> lines = code_editor->get_text_editor()->get_selection_text().split("\n");
PackedStringArray results;
for (int i = 0; i < lines.size(); i++) {
@@ -1115,9 +1169,9 @@ void ScriptTextEditor::_edit_option(int p_op) {
}
}
- code_editor->get_text_edit()->begin_complex_operation(); //prevents creating a two-step undo
- code_editor->get_text_edit()->insert_text_at_cursor(String("\n").join(results));
- code_editor->get_text_edit()->end_complex_operation();
+ 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()->end_complex_operation();
} break;
case SEARCH_FIND: {
code_editor->get_find_replace_bar()->popup_search();
@@ -1132,14 +1186,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_edit()->get_selection_text();
+ String selected_text = code_editor->get_text_editor()->get_selection_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("search_in_files_requested", selected_text);
} break;
case REPLACE_IN_FILES: {
- String selected_text = code_editor->get_text_edit()->get_selection_text();
+ String selected_text = code_editor->get_text_editor()->get_selection_text();
emit_signal("replace_in_files_requested", selected_text);
} break;
@@ -1164,24 +1218,22 @@ void ScriptTextEditor::_edit_option(int p_op) {
} break;
case DEBUG_TOGGLE_BREAKPOINT: {
int line = tx->cursor_get_line();
- bool dobreak = !tx->is_line_set_as_breakpoint(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);
} break;
case DEBUG_REMOVE_ALL_BREAKPOINTS: {
- List<int> bpoints;
- tx->get_breakpoints(&bpoints);
+ Array bpoints = tx->get_breakpointed_lines();
- for (List<int>::Element *E = bpoints.front(); E; E = E->next()) {
- int line = E->get();
- bool dobreak = !tx->is_line_set_as_breakpoint(line);
+ for (int i = 0; i < bpoints.size(); i++) {
+ int line = bpoints[i];
+ 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);
}
} break;
case DEBUG_GOTO_NEXT_BREAKPOINT: {
- List<int> bpoints;
- tx->get_breakpoints(&bpoints);
+ Array bpoints = tx->get_breakpointed_lines();
if (bpoints.size() <= 0) {
return;
}
@@ -1189,13 +1241,13 @@ void ScriptTextEditor::_edit_option(int p_op) {
int line = tx->cursor_get_line();
// wrap around
- if (line >= bpoints[bpoints.size() - 1]) {
+ if (line >= (int)bpoints[bpoints.size() - 1]) {
tx->unfold_line(bpoints[0]);
tx->cursor_set_line(bpoints[0]);
tx->center_viewport_to_cursor();
} else {
- for (List<int>::Element *E = bpoints.front(); E; E = E->next()) {
- int bline = E->get();
+ for (int i = 0; i < bpoints.size(); i++) {
+ int bline = bpoints[i];
if (bline > line) {
tx->unfold_line(bline);
tx->cursor_set_line(bline);
@@ -1207,21 +1259,20 @@ void ScriptTextEditor::_edit_option(int p_op) {
} break;
case DEBUG_GOTO_PREV_BREAKPOINT: {
- List<int> bpoints;
- tx->get_breakpoints(&bpoints);
+ Array bpoints = tx->get_breakpointed_lines();
if (bpoints.size() <= 0) {
return;
}
int line = tx->cursor_get_line();
// wrap around
- if (line <= bpoints[0]) {
+ 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();
} else {
- for (List<int>::Element *E = bpoints.back(); E; E = E->prev()) {
- int bline = E->get();
+ for (int i = bpoints.size(); i >= 0; i--) {
+ int bline = bpoints[i];
if (bline < line) {
tx->unfold_line(bline);
tx->cursor_set_line(bline);
@@ -1274,26 +1325,41 @@ void ScriptTextEditor::_edit_option_toggle_inline_comment() {
}
void ScriptTextEditor::add_syntax_highlighter(Ref<EditorSyntaxHighlighter> p_highlighter) {
+ ERR_FAIL_COND(p_highlighter.is_null());
+
highlighters[p_highlighter->_get_name()] = p_highlighter;
highlighter_menu->add_radio_check_item(p_highlighter->_get_name());
}
void ScriptTextEditor::set_syntax_highlighter(Ref<EditorSyntaxHighlighter> p_highlighter) {
- TextEdit *te = code_editor->get_text_edit();
- p_highlighter->_set_edited_resource(script);
- te->set_syntax_highlighter(p_highlighter);
- highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text(p_highlighter->_get_name()), true);
-}
+ ERR_FAIL_COND(p_highlighter.is_null());
-void ScriptTextEditor::_change_syntax_highlighter(int p_idx) {
Map<String, Ref<EditorSyntaxHighlighter>>::Element *el = highlighters.front();
while (el != nullptr) {
- highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text(el->key()), false);
+ int highlighter_index = highlighter_menu->get_item_idx_from_text(el->key());
+ highlighter_menu->set_item_checked(highlighter_index, el->value() == p_highlighter);
el = el->next();
}
+
+ CodeEdit *te = code_editor->get_text_editor();
+ p_highlighter->_set_edited_resource(script);
+ te->set_syntax_highlighter(p_highlighter);
+}
+
+void ScriptTextEditor::_change_syntax_highlighter(int p_idx) {
set_syntax_highlighter(highlighters[highlighter_menu->get_item_text(p_idx)]);
}
+void ScriptTextEditor::_notification(int p_what) {
+ switch (p_what) {
+ case NOTIFICATION_THEME_CHANGED: {
+ code_editor->get_text_editor()->set_gutter_width(connection_gutter, code_editor->get_text_editor()->get_row_height());
+ } break;
+ default:
+ break;
+ }
+}
+
void ScriptTextEditor::_bind_methods() {
ClassDB::bind_method("_update_connected_methods", &ScriptTextEditor::_update_connected_methods);
@@ -1313,7 +1379,7 @@ void ScriptTextEditor::clear_edit_menu() {
}
void ScriptTextEditor::reload(bool p_soft) {
- TextEdit *te = code_editor->get_text_edit();
+ CodeEdit *te = code_editor->get_text_editor();
Ref<Script> scr = script;
if (scr.is_null()) {
return;
@@ -1324,12 +1390,12 @@ void ScriptTextEditor::reload(bool p_soft) {
scr->get_language()->reload_tool_script(scr, soft);
}
-void ScriptTextEditor::get_breakpoints(List<int> *p_breakpoints) {
- code_editor->get_text_edit()->get_breakpoints(p_breakpoints);
+Array ScriptTextEditor::get_breakpoints() {
+ return code_editor->get_text_editor()->get_breakpointed_lines();
}
void ScriptTextEditor::set_tooltip_request_func(String p_method, Object *p_obj) {
- code_editor->get_text_edit()->set_tooltip_request_func(p_obj, p_method, this);
+ code_editor->get_text_editor()->set_tooltip_request_func(p_obj, p_method, this);
}
void ScriptTextEditor::set_debugger_active(bool p_active) {
@@ -1375,7 +1441,7 @@ 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) {
Dictionary d = p_data;
- TextEdit *te = code_editor->get_text_edit();
+ CodeEdit *te = code_editor->get_text_editor();
int row, col;
te->_get_mouse_pos(p_point, row, col);
@@ -1448,7 +1514,7 @@ void ScriptTextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
Point2 local_pos;
bool create_menu = false;
- TextEdit *tx = code_editor->get_text_edit();
+ CodeEdit *tx = code_editor->get_text_editor();
if (mb.is_valid() && mb->get_button_index() == BUTTON_RIGHT && mb->is_pressed()) {
local_pos = mb->get_global_position() - tx->get_global_position();
create_menu = true;
@@ -1501,7 +1567,7 @@ void ScriptTextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
base = _find_node_for_script(base, base, script);
}
ScriptLanguage::LookupResult result;
- if (script->get_language()->lookup_code(code_editor->get_text_edit()->get_text_for_lookup_completion(), word_at_pos, script->get_path(), base, result) == OK) {
+ if (script->get_language()->lookup_code(code_editor->get_text_editor()->get_text_for_lookup_completion(), word_at_pos, script->get_path(), base, result) == OK) {
open_docs = true;
}
}
@@ -1549,17 +1615,17 @@ void ScriptTextEditor::_color_changed(const Color &p_color) {
new_args = String("(" + rtos(p_color.r) + ", " + rtos(p_color.g) + ", " + rtos(p_color.b) + ", " + rtos(p_color.a) + ")");
}
- String line = code_editor->get_text_edit()->get_line(color_position.x);
+ String line = code_editor->get_text_editor()->get_line(color_position.x);
int color_args_pos = line.find(color_args, color_position.y);
String line_with_replaced_args = line;
line_with_replaced_args.erase(color_args_pos, color_args.length());
line_with_replaced_args = line_with_replaced_args.insert(color_args_pos, new_args);
color_args = new_args;
- code_editor->get_text_edit()->begin_complex_operation();
- code_editor->get_text_edit()->set_line(color_position.x, line_with_replaced_args);
- code_editor->get_text_edit()->end_complex_operation();
- code_editor->get_text_edit()->update();
+ code_editor->get_text_editor()->begin_complex_operation();
+ code_editor->get_text_editor()->set_line(color_position.x, line_with_replaced_args);
+ code_editor->get_text_editor()->end_complex_operation();
+ code_editor->get_text_editor()->update();
}
void ScriptTextEditor::_make_context_menu(bool p_selection, bool p_color, bool p_foldable, bool p_open_docs, bool p_goto_definition, Vector2 p_pos) {
@@ -1606,64 +1672,44 @@ void ScriptTextEditor::_make_context_menu(bool p_selection, bool p_color, bool p
context_menu->popup();
}
-ScriptTextEditor::ScriptTextEditor() {
- theme_loaded = false;
- script_is_valid = false;
+void ScriptTextEditor::_enable_code_editor() {
+ ERR_FAIL_COND(code_editor->get_parent());
VSplitContainer *editor_box = memnew(VSplitContainer);
add_child(editor_box);
editor_box->set_anchors_and_margins_preset(Control::PRESET_WIDE);
editor_box->set_v_size_flags(SIZE_EXPAND_FILL);
- code_editor = memnew(CodeTextEditor);
editor_box->add_child(code_editor);
- code_editor->add_theme_constant_override("separation", 2);
- code_editor->set_anchors_and_margins_preset(Control::PRESET_WIDE);
+ code_editor->connect("show_warnings_panel", callable_mp(this, &ScriptTextEditor::_show_warnings_panel));
code_editor->connect("validate_script", callable_mp(this, &ScriptTextEditor::_validate_script));
code_editor->connect("load_theme_settings", callable_mp(this, &ScriptTextEditor::_load_theme_settings));
- code_editor->set_code_complete_func(_code_complete_scripts, this);
- code_editor->get_text_edit()->connect("breakpoint_toggled", callable_mp(this, &ScriptTextEditor::_breakpoint_toggled));
- code_editor->get_text_edit()->connect("symbol_lookup", callable_mp(this, &ScriptTextEditor::_lookup_symbol));
- code_editor->get_text_edit()->connect("symbol_validate", callable_mp(this, &ScriptTextEditor::_validate_symbol));
- code_editor->get_text_edit()->connect("info_clicked", callable_mp(this, &ScriptTextEditor::_lookup_connections));
- code_editor->set_v_size_flags(SIZE_EXPAND_FILL);
+ code_editor->get_text_editor()->connect("breakpoint_toggled", callable_mp(this, &ScriptTextEditor::_breakpoint_toggled));
+ code_editor->get_text_editor()->connect("symbol_lookup", callable_mp(this, &ScriptTextEditor::_lookup_symbol));
+ code_editor->get_text_editor()->connect("symbol_validate", callable_mp(this, &ScriptTextEditor::_validate_symbol));
+ code_editor->get_text_editor()->connect("gutter_added", callable_mp(this, &ScriptTextEditor::_update_gutter_indexes));
+ code_editor->get_text_editor()->connect("gutter_removed", callable_mp(this, &ScriptTextEditor::_update_gutter_indexes));
+ code_editor->get_text_editor()->connect("gutter_clicked", callable_mp(this, &ScriptTextEditor::_gutter_clicked));
+ code_editor->get_text_editor()->connect("gui_input", callable_mp(this, &ScriptTextEditor::_text_edit_gui_input));
code_editor->show_toggle_scripts_button();
+ _update_gutter_indexes();
- warnings_panel = memnew(RichTextLabel);
editor_box->add_child(warnings_panel);
warnings_panel->add_theme_font_override(
"normal_font", EditorNode::get_singleton()->get_gui_base()->get_theme_font("main", "EditorFonts"));
- warnings_panel->set_custom_minimum_size(Size2(0, 100 * EDSCALE));
- warnings_panel->set_h_size_flags(SIZE_EXPAND_FILL);
- warnings_panel->set_meta_underline(true);
- warnings_panel->set_selection_enabled(true);
- warnings_panel->set_focus_mode(FOCUS_CLICK);
- warnings_panel->hide();
-
- code_editor->connect("show_warnings_panel", callable_mp(this, &ScriptTextEditor::_show_warnings_panel));
warnings_panel->connect("meta_clicked", callable_mp(this, &ScriptTextEditor::_warning_clicked));
- update_settings();
-
- code_editor->get_text_edit()->set_callhint_settings(
- EditorSettings::get_singleton()->get("text_editor/completion/put_callhint_tooltip_below_current_line"),
- EditorSettings::get_singleton()->get("text_editor/completion/callhint_tooltip_offset"));
-
- code_editor->get_text_edit()->set_select_identifiers_on_hover(true);
- code_editor->get_text_edit()->set_context_menu_enabled(false);
- code_editor->get_text_edit()->connect("gui_input", callable_mp(this, &ScriptTextEditor::_text_edit_gui_input));
-
- context_menu = memnew(PopupMenu);
add_child(context_menu);
context_menu->connect("id_pressed", callable_mp(this, &ScriptTextEditor::_edit_option));
- color_panel = memnew(PopupPanel);
add_child(color_panel);
+
color_picker = memnew(ColorPicker);
color_picker->set_deferred_mode(true);
- color_panel->add_child(color_picker);
color_picker->connect("color_changed", callable_mp(this, &ScriptTextEditor::_color_changed));
+ color_panel->add_child(color_picker);
+
// get default color picker mode from editor settings
int default_color_mode = EDITOR_GET("interface/inspector/default_color_picker_mode");
if (default_color_mode == 1) {
@@ -1672,12 +1718,27 @@ ScriptTextEditor::ScriptTextEditor() {
color_picker->set_raw_mode(true);
}
- edit_hb = memnew(HBoxContainer);
+ quick_open = memnew(ScriptEditorQuickOpen);
+ quick_open->connect("goto_line", callable_mp(this, &ScriptTextEditor::_goto_line));
+ add_child(quick_open);
- edit_menu = memnew(MenuButton);
- edit_menu->set_text(TTR("Edit"));
- edit_menu->set_switch_on_hover(true);
+ goto_line_dialog = memnew(GotoLineDialog);
+ add_child(goto_line_dialog);
+
+ add_child(connection_info_dialog);
+
+ edit_hb->add_child(search_menu);
+ search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find"), SEARCH_FIND);
+ search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_next"), SEARCH_FIND_NEXT);
+ search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_previous"), SEARCH_FIND_PREV);
+ search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/replace"), SEARCH_REPLACE);
+ search_menu->get_popup()->add_separator();
+ search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_in_files"), SEARCH_IN_FILES);
+ search_menu->get_popup()->add_separator();
+ search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/contextual_help"), HELP_CONTEXTUAL);
+ search_menu->get_popup()->connect("id_pressed", callable_mp(this, &ScriptTextEditor::_edit_option));
+ edit_hb->add_child(edit_menu);
edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO);
edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO);
edit_menu->get_popup()->add_separator();
@@ -1707,8 +1768,6 @@ ScriptTextEditor::ScriptTextEditor() {
edit_menu->get_popup()->connect("id_pressed", callable_mp(this, &ScriptTextEditor::_edit_option));
edit_menu->get_popup()->add_separator();
- PopupMenu *convert_case = memnew(PopupMenu);
- convert_case->set_name("convert_case");
edit_menu->get_popup()->add_child(convert_case);
edit_menu->get_popup()->add_submenu_item(TTR("Convert Case"), "convert_case");
convert_case->add_shortcut(ED_SHORTCUT("script_text_editor/convert_to_uppercase", TTR("Uppercase"), KEY_MASK_SHIFT | KEY_F4), EDIT_TO_UPPERCASE);
@@ -1716,12 +1775,83 @@ ScriptTextEditor::ScriptTextEditor() {
convert_case->add_shortcut(ED_SHORTCUT("script_text_editor/capitalize", TTR("Capitalize"), KEY_MASK_SHIFT | KEY_F6), EDIT_CAPITALIZE);
convert_case->connect("id_pressed", callable_mp(this, &ScriptTextEditor::_edit_option));
- highlighter_menu = memnew(PopupMenu);
- highlighter_menu->set_name("highlighter_menu");
edit_menu->get_popup()->add_child(highlighter_menu);
edit_menu->get_popup()->add_submenu_item(TTR("Syntax Highlighter"), "highlighter_menu");
highlighter_menu->connect("id_pressed", callable_mp(this, &ScriptTextEditor::_change_syntax_highlighter));
+ _load_theme_settings();
+
+ search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/replace_in_files"), REPLACE_IN_FILES);
+ edit_hb->add_child(goto_menu);
+ goto_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_function"), SEARCH_LOCATE_FUNCTION);
+ goto_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_line"), SEARCH_GOTO_LINE);
+ goto_menu->get_popup()->add_separator();
+
+ goto_menu->get_popup()->add_child(bookmarks_menu);
+ goto_menu->get_popup()->add_submenu_item(TTR("Bookmarks"), "Bookmarks");
+ _update_bookmark_list();
+ bookmarks_menu->connect("about_to_popup", callable_mp(this, &ScriptTextEditor::_update_bookmark_list));
+ bookmarks_menu->connect("index_pressed", callable_mp(this, &ScriptTextEditor::_bookmark_item_pressed));
+
+ goto_menu->get_popup()->add_child(breakpoints_menu);
+ goto_menu->get_popup()->add_submenu_item(TTR("Breakpoints"), "Breakpoints");
+ _update_breakpoint_list();
+ breakpoints_menu->connect("about_to_popup", callable_mp(this, &ScriptTextEditor::_update_breakpoint_list));
+ breakpoints_menu->connect("index_pressed", callable_mp(this, &ScriptTextEditor::_breakpoint_item_pressed));
+
+ goto_menu->get_popup()->connect("id_pressed", callable_mp(this, &ScriptTextEditor::_edit_option));
+}
+
+ScriptTextEditor::ScriptTextEditor() {
+ code_editor = memnew(CodeTextEditor);
+ code_editor->add_theme_constant_override("separation", 2);
+ code_editor->set_anchors_and_margins_preset(Control::PRESET_WIDE);
+ code_editor->set_code_complete_func(_code_complete_scripts, this);
+ code_editor->set_v_size_flags(SIZE_EXPAND_FILL);
+
+ code_editor->get_text_editor()->set_draw_breakpoints_gutter(true);
+ code_editor->get_text_editor()->set_draw_executing_lines_gutter(true);
+
+ connection_gutter = 1;
+ code_editor->get_text_editor()->add_gutter(connection_gutter);
+ code_editor->get_text_editor()->set_gutter_name(connection_gutter, "connection_gutter");
+ code_editor->get_text_editor()->set_gutter_draw(connection_gutter, false);
+ code_editor->get_text_editor()->set_gutter_overwritable(connection_gutter, true);
+ code_editor->get_text_editor()->set_gutter_type(connection_gutter, TextEdit::GUTTER_TPYE_ICON);
+
+ warnings_panel = memnew(RichTextLabel);
+ warnings_panel->set_custom_minimum_size(Size2(0, 100 * EDSCALE));
+ warnings_panel->set_h_size_flags(SIZE_EXPAND_FILL);
+ warnings_panel->set_meta_underline(true);
+ warnings_panel->set_selection_enabled(true);
+ warnings_panel->set_focus_mode(FOCUS_CLICK);
+ warnings_panel->hide();
+
+ update_settings();
+
+ code_editor->get_text_editor()->set_callhint_settings(
+ EditorSettings::get_singleton()->get("text_editor/completion/put_callhint_tooltip_below_current_line"),
+ EditorSettings::get_singleton()->get("text_editor/completion/callhint_tooltip_offset"));
+
+ code_editor->get_text_editor()->set_select_identifiers_on_hover(true);
+ code_editor->get_text_editor()->set_context_menu_enabled(false);
+
+ context_menu = memnew(PopupMenu);
+
+ color_panel = memnew(PopupPanel);
+
+ edit_hb = memnew(HBoxContainer);
+
+ edit_menu = memnew(MenuButton);
+ edit_menu->set_text(TTR("Edit"));
+ edit_menu->set_switch_on_hover(true);
+
+ convert_case = memnew(PopupMenu);
+ convert_case->set_name("convert_case");
+
+ highlighter_menu = memnew(PopupMenu);
+ highlighter_menu->set_name("highlighter_menu");
+
Ref<EditorPlainTextSyntaxHighlighter> plain_highlighter;
plain_highlighter.instance();
add_syntax_highlighter(plain_highlighter);
@@ -1732,64 +1862,42 @@ ScriptTextEditor::ScriptTextEditor() {
set_syntax_highlighter(highlighter);
search_menu = memnew(MenuButton);
- edit_hb->add_child(search_menu);
search_menu->set_text(TTR("Search"));
search_menu->set_switch_on_hover(true);
- search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find"), SEARCH_FIND);
- search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_next"), SEARCH_FIND_NEXT);
- search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_previous"), SEARCH_FIND_PREV);
- search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/replace"), SEARCH_REPLACE);
- search_menu->get_popup()->add_separator();
- search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_in_files"), SEARCH_IN_FILES);
- search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/replace_in_files"), REPLACE_IN_FILES);
- search_menu->get_popup()->add_separator();
- search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/contextual_help"), HELP_CONTEXTUAL);
- search_menu->get_popup()->connect("id_pressed", callable_mp(this, &ScriptTextEditor::_edit_option));
-
- edit_hb->add_child(edit_menu);
-
- MenuButton *goto_menu = memnew(MenuButton);
- edit_hb->add_child(goto_menu);
+ goto_menu = memnew(MenuButton);
goto_menu->set_text(TTR("Go To"));
goto_menu->set_switch_on_hover(true);
- goto_menu->get_popup()->connect("id_pressed", callable_mp(this, &ScriptTextEditor::_edit_option));
-
- goto_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_function"), SEARCH_LOCATE_FUNCTION);
- goto_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_line"), SEARCH_GOTO_LINE);
- goto_menu->get_popup()->add_separator();
bookmarks_menu = memnew(PopupMenu);
bookmarks_menu->set_name("Bookmarks");
- goto_menu->get_popup()->add_child(bookmarks_menu);
- goto_menu->get_popup()->add_submenu_item(TTR("Bookmarks"), "Bookmarks");
- _update_bookmark_list();
- bookmarks_menu->connect("about_to_popup", callable_mp(this, &ScriptTextEditor::_update_bookmark_list));
- bookmarks_menu->connect("index_pressed", callable_mp(this, &ScriptTextEditor::_bookmark_item_pressed));
breakpoints_menu = memnew(PopupMenu);
breakpoints_menu->set_name("Breakpoints");
- goto_menu->get_popup()->add_child(breakpoints_menu);
- goto_menu->get_popup()->add_submenu_item(TTR("Breakpoints"), "Breakpoints");
- _update_breakpoint_list();
- breakpoints_menu->connect("about_to_popup", callable_mp(this, &ScriptTextEditor::_update_breakpoint_list));
- breakpoints_menu->connect("index_pressed", callable_mp(this, &ScriptTextEditor::_breakpoint_item_pressed));
-
- quick_open = memnew(ScriptEditorQuickOpen);
- add_child(quick_open);
- quick_open->connect("goto_line", callable_mp(this, &ScriptTextEditor::_goto_line));
-
- goto_line_dialog = memnew(GotoLineDialog);
- add_child(goto_line_dialog);
connection_info_dialog = memnew(ConnectionInfoDialog);
- add_child(connection_info_dialog);
- code_editor->get_text_edit()->set_drag_forwarding(this);
+ code_editor->get_text_editor()->set_drag_forwarding(this);
}
ScriptTextEditor::~ScriptTextEditor() {
highlighters.clear();
+
+ if (!editor_enabled) {
+ memdelete(code_editor);
+ memdelete(warnings_panel);
+ memdelete(context_menu);
+ memdelete(color_panel);
+ memdelete(edit_hb);
+ memdelete(edit_menu);
+ memdelete(convert_case);
+ memdelete(highlighter_menu);
+ memdelete(search_menu);
+ memdelete(goto_menu);
+ memdelete(bookmarks_menu);
+ memdelete(breakpoints_menu);
+ memdelete(connection_info_dialog);
+ }
}
static ScriptEditorBase *create_editor(const RES &p_resource) {
diff --git a/editor/plugins/script_text_editor.h b/editor/plugins/script_text_editor.h
index 6d7f84d746..1e436fbe65 100644
--- a/editor/plugins/script_text_editor.h
+++ b/editor/plugins/script_text_editor.h
@@ -39,8 +39,8 @@
class ConnectionInfoDialog : public AcceptDialog {
GDCLASS(ConnectionInfoDialog, AcceptDialog);
- Label *method;
- Tree *tree;
+ Label *method = nullptr;
+ Tree *tree = nullptr;
virtual void ok_pressed() override;
@@ -53,11 +53,12 @@ public:
class ScriptTextEditor : public ScriptEditorBase {
GDCLASS(ScriptTextEditor, ScriptEditorBase);
- CodeTextEditor *code_editor;
- RichTextLabel *warnings_panel;
+ CodeTextEditor *code_editor = nullptr;
+ RichTextLabel *warnings_panel = nullptr;
Ref<Script> script;
- bool script_is_valid;
+ bool script_is_valid = false;
+ bool editor_enabled = false;
Vector<String> functions;
@@ -65,25 +66,35 @@ class ScriptTextEditor : public ScriptEditorBase {
Vector<String> member_keywords;
- HBoxContainer *edit_hb;
+ HBoxContainer *edit_hb = nullptr;
- MenuButton *edit_menu;
- MenuButton *search_menu;
- PopupMenu *bookmarks_menu;
- PopupMenu *breakpoints_menu;
- PopupMenu *highlighter_menu;
- PopupMenu *context_menu;
+ MenuButton *edit_menu = nullptr;
+ MenuButton *search_menu = nullptr;
+ MenuButton *goto_menu = nullptr;
+ PopupMenu *bookmarks_menu = nullptr;
+ PopupMenu *breakpoints_menu = nullptr;
+ PopupMenu *highlighter_menu = nullptr;
+ PopupMenu *context_menu = nullptr;
+ PopupMenu *convert_case = nullptr;
- GotoLineDialog *goto_line_dialog;
- ScriptEditorQuickOpen *quick_open;
- ConnectionInfoDialog *connection_info_dialog;
+ GotoLineDialog *goto_line_dialog = nullptr;
+ ScriptEditorQuickOpen *quick_open = nullptr;
+ ConnectionInfoDialog *connection_info_dialog = nullptr;
- PopupPanel *color_panel;
- ColorPicker *color_picker;
+ int connection_gutter = -1;
+ void _gutter_clicked(int p_line, int p_gutter);
+ void _update_gutter_indexes();
+
+ int line_number_gutter = -1;
+ Color default_line_number_color = Color(1, 1, 1);
+ Color safe_line_number_color = Color(1, 1, 1);
+
+ PopupPanel *color_panel = nullptr;
+ ColorPicker *color_picker = nullptr;
Vector2 color_position;
String color_args;
- bool theme_loaded;
+ bool theme_loaded = false;
enum {
EDIT_UNDO,
@@ -132,6 +143,8 @@ class ScriptTextEditor : public ScriptEditorBase {
LOOKUP_SYMBOL,
};
+ void _enable_code_editor();
+
protected:
void _update_breakpoint_list();
void _breakpoint_item_pressed(int p_idx);
@@ -165,8 +178,6 @@ protected:
void _lookup_symbol(const String &p_symbol, int p_row, int p_column);
void _validate_symbol(const String &p_symbol);
- void _lookup_connections(int p_row, String p_method);
-
void _convert_case(CodeTextEditor::CaseStyle p_case);
Variant get_drag_data_fw(const Point2 &p_point, Control *p_from);
@@ -185,6 +196,7 @@ public:
virtual void apply_code() override;
virtual RES get_edited_resource() const override;
virtual void set_edited_resource(const RES &p_res) override;
+ virtual void enable_editor() override;
virtual Vector<String> get_functions() override;
virtual void reload_text() override;
virtual String get_name() override;
@@ -206,7 +218,7 @@ public:
virtual void clear_executing_line() override;
virtual void reload(bool p_soft) override;
- virtual void get_breakpoints(List<int> *p_breakpoints) override;
+ virtual Array get_breakpoints() override;
virtual void add_callback(const String &p_function, PackedStringArray p_args) override;
virtual void update_settings() override;
diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp
index 60ba3802fb..29db284b44 100644
--- a/editor/plugins/shader_editor_plugin.cpp
+++ b/editor/plugins/shader_editor_plugin.cpp
@@ -55,8 +55,8 @@ void ShaderTextEditor::set_edited_shader(const Ref<Shader> &p_shader) {
_load_theme_settings();
- get_text_edit()->set_text(p_shader->get_code());
- get_text_edit()->clear_undo_history();
+ get_text_editor()->set_text(p_shader->get_code());
+ get_text_editor()->clear_undo_history();
_validate_script();
_line_col_changed();
@@ -65,7 +65,7 @@ void ShaderTextEditor::set_edited_shader(const Ref<Shader> &p_shader) {
void ShaderTextEditor::reload_text() {
ERR_FAIL_COND(shader.is_null());
- TextEdit *te = get_text_edit();
+ CodeEdit *te = get_text_editor();
int column = te->cursor_get_column();
int row = te->cursor_get_line();
int h = te->get_h_scroll();
@@ -107,65 +107,76 @@ void ShaderTextEditor::_load_theme_settings() {
Color search_result_color = EDITOR_GET("text_editor/highlighting/search_result_color");
Color search_result_border_color = EDITOR_GET("text_editor/highlighting/search_result_border_color");
- get_text_edit()->add_theme_color_override("background_color", background_color);
- get_text_edit()->add_theme_color_override("completion_background_color", completion_background_color);
- get_text_edit()->add_theme_color_override("completion_selected_color", completion_selected_color);
- get_text_edit()->add_theme_color_override("completion_existing_color", completion_existing_color);
- get_text_edit()->add_theme_color_override("completion_scroll_color", completion_scroll_color);
- get_text_edit()->add_theme_color_override("completion_font_color", completion_font_color);
- get_text_edit()->add_theme_color_override("font_color", text_color);
- get_text_edit()->add_theme_color_override("line_number_color", line_number_color);
- get_text_edit()->add_theme_color_override("caret_color", caret_color);
- get_text_edit()->add_theme_color_override("caret_background_color", caret_background_color);
- get_text_edit()->add_theme_color_override("font_color_selected", text_selected_color);
- get_text_edit()->add_theme_color_override("selection_color", selection_color);
- get_text_edit()->add_theme_color_override("brace_mismatch_color", brace_mismatch_color);
- get_text_edit()->add_theme_color_override("current_line_color", current_line_color);
- get_text_edit()->add_theme_color_override("line_length_guideline_color", line_length_guideline_color);
- get_text_edit()->add_theme_color_override("word_highlighted_color", word_highlighted_color);
- get_text_edit()->add_theme_color_override("mark_color", mark_color);
- get_text_edit()->add_theme_color_override("bookmark_color", bookmark_color);
- get_text_edit()->add_theme_color_override("breakpoint_color", breakpoint_color);
- get_text_edit()->add_theme_color_override("executing_line_color", executing_line_color);
- get_text_edit()->add_theme_color_override("code_folding_color", code_folding_color);
- get_text_edit()->add_theme_color_override("search_result_color", search_result_color);
- get_text_edit()->add_theme_color_override("search_result_border_color", search_result_border_color);
+ get_text_editor()->add_theme_color_override("background_color", background_color);
+ get_text_editor()->add_theme_color_override("completion_background_color", completion_background_color);
+ get_text_editor()->add_theme_color_override("completion_selected_color", completion_selected_color);
+ get_text_editor()->add_theme_color_override("completion_existing_color", completion_existing_color);
+ get_text_editor()->add_theme_color_override("completion_scroll_color", completion_scroll_color);
+ get_text_editor()->add_theme_color_override("completion_font_color", completion_font_color);
+ get_text_editor()->add_theme_color_override("font_color", text_color);
+ get_text_editor()->add_theme_color_override("line_number_color", line_number_color);
+ get_text_editor()->add_theme_color_override("caret_color", caret_color);
+ get_text_editor()->add_theme_color_override("caret_background_color", caret_background_color);
+ get_text_editor()->add_theme_color_override("font_color_selected", text_selected_color);
+ get_text_editor()->add_theme_color_override("selection_color", selection_color);
+ get_text_editor()->add_theme_color_override("brace_mismatch_color", brace_mismatch_color);
+ get_text_editor()->add_theme_color_override("current_line_color", current_line_color);
+ get_text_editor()->add_theme_color_override("line_length_guideline_color", line_length_guideline_color);
+ get_text_editor()->add_theme_color_override("word_highlighted_color", word_highlighted_color);
+ get_text_editor()->add_theme_color_override("mark_color", mark_color);
+ get_text_editor()->add_theme_color_override("bookmark_color", bookmark_color);
+ get_text_editor()->add_theme_color_override("breakpoint_color", breakpoint_color);
+ get_text_editor()->add_theme_color_override("executing_line_color", executing_line_color);
+ get_text_editor()->add_theme_color_override("code_folding_color", code_folding_color);
+ get_text_editor()->add_theme_color_override("search_result_color", search_result_color);
+ get_text_editor()->add_theme_color_override("search_result_border_color", search_result_border_color);
syntax_highlighter->set_number_color(EDITOR_GET("text_editor/highlighting/number_color"));
syntax_highlighter->set_symbol_color(EDITOR_GET("text_editor/highlighting/symbol_color"));
syntax_highlighter->set_function_color(EDITOR_GET("text_editor/highlighting/function_color"));
syntax_highlighter->set_member_variable_color(EDITOR_GET("text_editor/highlighting/member_variable_color"));
+ syntax_highlighter->clear_keyword_colors();
+
List<String> keywords;
ShaderLanguage::get_keyword_list(&keywords);
+ const Color keyword_color = EDITOR_GET("text_editor/highlighting/keyword_color");
+
+ for (List<String>::Element *E = keywords.front(); E; E = E->next()) {
+ syntax_highlighter->add_keyword_color(E->get(), keyword_color);
+ }
+
+ // Colorize built-ins like `COLOR` differently to make them easier
+ // to distinguish from keywords at a quick glance.
+ List<String> built_ins;
if (shader.is_valid()) {
for (const Map<StringName, ShaderLanguage::FunctionInfo>::Element *E = ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(shader->get_mode())).front(); E; E = E->next()) {
for (const Map<StringName, ShaderLanguage::BuiltInInfo>::Element *F = E->get().built_ins.front(); F; F = F->next()) {
- keywords.push_back(F->key());
+ built_ins.push_back(F->key());
}
}
for (int i = 0; i < ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader->get_mode())).size(); i++) {
- keywords.push_back(ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader->get_mode()))[i]);
+ built_ins.push_back(ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader->get_mode()))[i]);
}
}
- const Color keyword_color = EDITOR_GET("text_editor/highlighting/keyword_color");
- syntax_highlighter->clear_keyword_colors();
- for (List<String>::Element *E = keywords.front(); E; E = E->next()) {
- syntax_highlighter->add_keyword_color(E->get(), keyword_color);
+ const Color member_variable_color = EDITOR_GET("text_editor/highlighting/member_variable_color");
+
+ for (List<String>::Element *E = built_ins.front(); E; E = E->next()) {
+ syntax_highlighter->add_keyword_color(E->get(), member_variable_color);
}
- //colorize comments
+ // Colorize comments.
const Color comment_color = EDITOR_GET("text_editor/highlighting/comment_color");
syntax_highlighter->clear_color_regions();
syntax_highlighter->add_color_region("/*", "*/", comment_color, false);
- syntax_highlighter->add_color_region("//", "", comment_color, false);
+ syntax_highlighter->add_color_region("//", "", comment_color, true);
}
void ShaderTextEditor::_check_shader_mode() {
- String type = ShaderLanguage::get_shader_type(get_text_edit()->get_text());
+ String type = ShaderLanguage::get_shader_type(get_text_editor()->get_text());
Shader::Mode mode;
@@ -178,7 +189,7 @@ void ShaderTextEditor::_check_shader_mode() {
}
if (shader->get_mode() != mode) {
- shader->set_code(get_text_edit()->get_text());
+ shader->set_code(get_text_editor()->get_text());
_load_theme_settings();
}
}
@@ -196,13 +207,13 @@ void ShaderTextEditor::_code_complete_script(const String &p_code, List<ScriptCo
sl.complete(p_code, ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(shader->get_mode())), ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader->get_mode())), ShaderTypes::get_singleton()->get_types(), _get_global_variable_type, r_options, calltip);
- get_text_edit()->set_code_hint(calltip);
+ get_text_editor()->set_code_hint(calltip);
}
void ShaderTextEditor::_validate_script() {
_check_shader_mode();
- String code = get_text_edit()->get_text();
+ String code = get_text_editor()->get_text();
//List<StringName> params;
//shader->get_param_list(&params);
@@ -214,14 +225,14 @@ void ShaderTextEditor::_validate_script() {
String error_text = "error(" + itos(sl.get_error_line()) + "): " + sl.get_error_text();
set_error(error_text);
set_error_pos(sl.get_error_line() - 1, 0);
- for (int i = 0; i < get_text_edit()->get_line_count(); i++) {
- get_text_edit()->set_line_as_marked(i, false);
+ for (int i = 0; i < get_text_editor()->get_line_count(); i++) {
+ get_text_editor()->set_line_as_marked(i, false);
}
- get_text_edit()->set_line_as_marked(sl.get_error_line() - 1, true);
+ get_text_editor()->set_line_as_marked(sl.get_error_line() - 1, true);
} else {
- for (int i = 0; i < get_text_edit()->get_line_count(); i++) {
- get_text_edit()->set_line_as_marked(i, false);
+ for (int i = 0; i < get_text_editor()->get_line_count(); i++) {
+ get_text_editor()->set_line_as_marked(i, false);
}
set_error("");
}
@@ -234,7 +245,7 @@ void ShaderTextEditor::_bind_methods() {
ShaderTextEditor::ShaderTextEditor() {
syntax_highlighter.instance();
- get_text_edit()->set_syntax_highlighter(syntax_highlighter);
+ get_text_editor()->set_syntax_highlighter(syntax_highlighter);
}
/*** SCRIPT EDITOR ******/
@@ -242,22 +253,22 @@ ShaderTextEditor::ShaderTextEditor() {
void ShaderEditor::_menu_option(int p_option) {
switch (p_option) {
case EDIT_UNDO: {
- shader_editor->get_text_edit()->undo();
+ shader_editor->get_text_editor()->undo();
} break;
case EDIT_REDO: {
- shader_editor->get_text_edit()->redo();
+ shader_editor->get_text_editor()->redo();
} break;
case EDIT_CUT: {
- shader_editor->get_text_edit()->cut();
+ shader_editor->get_text_editor()->cut();
} break;
case EDIT_COPY: {
- shader_editor->get_text_edit()->copy();
+ shader_editor->get_text_editor()->copy();
} break;
case EDIT_PASTE: {
- shader_editor->get_text_edit()->paste();
+ shader_editor->get_text_editor()->paste();
} break;
case EDIT_SELECT_ALL: {
- shader_editor->get_text_edit()->select_all();
+ shader_editor->get_text_editor()->select_all();
} break;
case EDIT_MOVE_LINE_UP: {
shader_editor->move_lines_up();
@@ -270,7 +281,7 @@ void ShaderEditor::_menu_option(int p_option) {
return;
}
- TextEdit *tx = shader_editor->get_text_edit();
+ CodeEdit *tx = shader_editor->get_text_editor();
tx->indent_left();
} break;
@@ -279,7 +290,7 @@ void ShaderEditor::_menu_option(int p_option) {
return;
}
- TextEdit *tx = shader_editor->get_text_edit();
+ CodeEdit *tx = shader_editor->get_text_editor();
tx->indent_right();
} break;
@@ -298,7 +309,7 @@ void ShaderEditor::_menu_option(int p_option) {
} break;
case EDIT_COMPLETE: {
- shader_editor->get_text_edit()->query_code_comple();
+ shader_editor->get_text_editor()->query_code_comple();
} break;
case SEARCH_FIND: {
shader_editor->get_find_replace_bar()->popup_search();
@@ -313,7 +324,7 @@ void ShaderEditor::_menu_option(int p_option) {
shader_editor->get_find_replace_bar()->popup_replace();
} break;
case SEARCH_GOTO_LINE: {
- goto_line_dialog->popup_find_line(shader_editor->get_text_edit());
+ goto_line_dialog->popup_find_line(shader_editor->get_text_editor());
} break;
case BOOKMARK_TOGGLE: {
shader_editor->toggle_bookmark();
@@ -332,7 +343,7 @@ void ShaderEditor::_menu_option(int p_option) {
} break;
}
if (p_option != SEARCH_FIND && p_option != SEARCH_REPLACE && p_option != SEARCH_GOTO_LINE) {
- shader_editor->get_text_edit()->call_deferred("grab_focus");
+ shader_editor->get_text_editor()->call_deferred("grab_focus");
}
}
@@ -347,28 +358,11 @@ void ShaderEditor::_params_changed() {
}
void ShaderEditor::_editor_settings_changed() {
- shader_editor->get_text_edit()->set_auto_brace_completion(EditorSettings::get_singleton()->get("text_editor/completion/auto_brace_complete"));
- shader_editor->get_text_edit()->set_scroll_pass_end_of_file(EditorSettings::get_singleton()->get("text_editor/cursor/scroll_past_end_of_file"));
- shader_editor->get_text_edit()->set_indent_size(EditorSettings::get_singleton()->get("text_editor/indent/size"));
- shader_editor->get_text_edit()->set_indent_using_spaces(EditorSettings::get_singleton()->get("text_editor/indent/type"));
- shader_editor->get_text_edit()->set_auto_indent(EditorSettings::get_singleton()->get("text_editor/indent/auto_indent"));
- shader_editor->get_text_edit()->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/indent/draw_tabs"));
- shader_editor->get_text_edit()->set_draw_spaces(EditorSettings::get_singleton()->get("text_editor/indent/draw_spaces"));
- shader_editor->get_text_edit()->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/appearance/show_line_numbers"));
- shader_editor->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlighting/highlight_all_occurrences"));
- shader_editor->get_text_edit()->set_highlight_current_line(EditorSettings::get_singleton()->get("text_editor/highlighting/highlight_current_line"));
- shader_editor->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink"));
- shader_editor->get_text_edit()->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink_speed"));
- shader_editor->get_text_edit()->add_theme_constant_override("line_spacing", EditorSettings::get_singleton()->get("text_editor/theme/line_spacing"));
- shader_editor->get_text_edit()->cursor_set_block_mode(EditorSettings::get_singleton()->get("text_editor/cursor/block_caret"));
- shader_editor->get_text_edit()->set_smooth_scroll_enabled(EditorSettings::get_singleton()->get("text_editor/navigation/smooth_scrolling"));
- shader_editor->get_text_edit()->set_v_scroll_speed(EditorSettings::get_singleton()->get("text_editor/navigation/v_scroll_speed"));
- shader_editor->get_text_edit()->set_draw_minimap(EditorSettings::get_singleton()->get("text_editor/navigation/show_minimap"));
- shader_editor->get_text_edit()->set_minimap_width((int)EditorSettings::get_singleton()->get("text_editor/navigation/minimap_width") * EDSCALE);
- shader_editor->get_text_edit()->set_show_line_length_guidelines(EditorSettings::get_singleton()->get("text_editor/appearance/show_line_length_guidelines"));
- shader_editor->get_text_edit()->set_line_length_guideline_soft_column(EditorSettings::get_singleton()->get("text_editor/appearance/line_length_guideline_soft_column"));
- shader_editor->get_text_edit()->set_line_length_guideline_hard_column(EditorSettings::get_singleton()->get("text_editor/appearance/line_length_guideline_hard_column"));
- shader_editor->get_text_edit()->set_breakpoint_gutter_enabled(false);
+ shader_editor->update_editor_settings();
+
+ shader_editor->get_text_editor()->add_theme_constant_override("line_spacing", EditorSettings::get_singleton()->get("text_editor/theme/line_spacing"));
+ shader_editor->get_text_editor()->set_draw_breakpoints_gutter(false);
+ shader_editor->get_text_editor()->set_draw_executing_lines_gutter(false);
}
void ShaderEditor::_bind_methods() {
@@ -455,7 +449,7 @@ void ShaderEditor::save_external_data(const String &p_str) {
void ShaderEditor::apply_shaders() {
if (shader.is_valid()) {
String shader_code = shader->get_code();
- String editor_code = shader_editor->get_text_edit()->get_text();
+ String editor_code = shader_editor->get_text_editor()->get_text();
if (shader_code != editor_code) {
shader->set_code(editor_code);
shader->set_edited(true);
@@ -469,7 +463,7 @@ void ShaderEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
if (mb.is_valid()) {
if (mb->get_button_index() == BUTTON_RIGHT && mb->is_pressed()) {
int col, row;
- TextEdit *tx = shader_editor->get_text_edit();
+ 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"));
@@ -496,7 +490,7 @@ void ShaderEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
Ref<InputEventKey> k = ev;
if (k.is_valid() && k->is_pressed() && k->get_keycode() == KEY_MENU) {
- TextEdit *tx = shader_editor->get_text_edit();
+ 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()));
context_menu->grab_focus();
}
@@ -510,7 +504,7 @@ void ShaderEditor::_update_bookmark_list() {
bookmarks_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_next_bookmark"), BOOKMARK_GOTO_NEXT);
bookmarks_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_previous_bookmark"), BOOKMARK_GOTO_PREV);
- Array bookmark_list = shader_editor->get_text_edit()->get_bookmarks_array();
+ Array bookmark_list = shader_editor->get_text_editor()->get_bookmarked_lines();
if (bookmark_list.size() == 0) {
return;
}
@@ -518,7 +512,7 @@ void ShaderEditor::_update_bookmark_list() {
bookmarks_menu->add_separator();
for (int i = 0; i < bookmark_list.size(); i++) {
- String line = shader_editor->get_text_edit()->get_line(bookmark_list[i]).strip_edges();
+ String line = shader_editor->get_text_editor()->get_line(bookmark_list[i]).strip_edges();
// Limit the size of the line if too big.
if (line.length() > 50) {
line = line.substr(0, 50);
@@ -570,13 +564,13 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) {
shader_editor->connect("script_changed", callable_mp(this, &ShaderEditor::apply_shaders));
EditorSettings::get_singleton()->connect("settings_changed", callable_mp(this, &ShaderEditor::_editor_settings_changed));
- shader_editor->get_text_edit()->set_callhint_settings(
+ shader_editor->get_text_editor()->set_callhint_settings(
EditorSettings::get_singleton()->get("text_editor/completion/put_callhint_tooltip_below_current_line"),
EditorSettings::get_singleton()->get("text_editor/completion/callhint_tooltip_offset"));
- shader_editor->get_text_edit()->set_select_identifiers_on_hover(true);
- shader_editor->get_text_edit()->set_context_menu_enabled(false);
- shader_editor->get_text_edit()->connect("gui_input", callable_mp(this, &ShaderEditor::_text_edit_gui_input));
+ shader_editor->get_text_editor()->set_select_identifiers_on_hover(true);
+ shader_editor->get_text_editor()->set_context_menu_enabled(false);
+ shader_editor->get_text_editor()->connect("gui_input", callable_mp(this, &ShaderEditor::_text_edit_gui_input));
shader_editor->update_editor_settings();
diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp
index 516c14329c..5007983581 100644
--- a/editor/plugins/sprite_frames_editor_plugin.cpp
+++ b/editor/plugins/sprite_frames_editor_plugin.cpp
@@ -36,6 +36,8 @@
#include "editor/editor_settings.h"
#include "scene/3d/sprite_3d.h"
#include "scene/gui/center_container.h"
+#include "scene/gui/margin_container.h"
+#include "scene/gui/panel_container.h"
void SpriteFramesEditor::_gui_input(Ref<InputEvent> p_event) {
}
@@ -140,8 +142,27 @@ void SpriteFramesEditor::_sheet_preview_input(const Ref<InputEvent> &p_event) {
}
}
+void SpriteFramesEditor::_sheet_scroll_input(const Ref<InputEvent> &p_event) {
+ const Ref<InputEventMouseButton> mb = p_event;
+
+ if (mb.is_valid()) {
+ // Zoom in/out using Ctrl + mouse wheel. This is done on the ScrollContainer
+ // to allow performing this action anywhere, even if the cursor isn't
+ // hovering the texture in the workspace.
+ if (mb->get_button_index() == BUTTON_WHEEL_UP && mb->is_pressed() && mb->get_control()) {
+ _sheet_zoom_in();
+ // Don't scroll up after zooming in.
+ accept_event();
+ } else if (mb->get_button_index() == BUTTON_WHEEL_DOWN && mb->is_pressed() && mb->get_control()) {
+ _sheet_zoom_out();
+ // Don't scroll down after zooming out.
+ accept_event();
+ }
+ }
+}
+
void SpriteFramesEditor::_sheet_add_frames() {
- Size2i size = split_sheet_preview->get_size();
+ Size2i size = split_sheet_preview->get_texture()->get_size();
int h = split_sheet_h->get_value();
int v = split_sheet_v->get_value();
@@ -180,6 +201,28 @@ void SpriteFramesEditor::_sheet_add_frames() {
undo_redo->commit_action();
}
+void SpriteFramesEditor::_sheet_zoom_in() {
+ if (sheet_zoom < max_sheet_zoom) {
+ sheet_zoom *= scale_ratio;
+ Size2 texture_size = split_sheet_preview->get_texture()->get_size();
+ split_sheet_preview->set_custom_minimum_size(texture_size * sheet_zoom);
+ }
+}
+
+void SpriteFramesEditor::_sheet_zoom_out() {
+ if (sheet_zoom > min_sheet_zoom) {
+ sheet_zoom /= scale_ratio;
+ Size2 texture_size = split_sheet_preview->get_texture()->get_size();
+ split_sheet_preview->set_custom_minimum_size(texture_size * sheet_zoom);
+ }
+}
+
+void SpriteFramesEditor::_sheet_zoom_reset() {
+ sheet_zoom = 1.f;
+ Size2 texture_size = split_sheet_preview->get_texture()->get_size();
+ split_sheet_preview->set_custom_minimum_size(texture_size * sheet_zoom);
+}
+
void SpriteFramesEditor::_sheet_select_clear_all_frames() {
bool should_clear = true;
for (int i = 0; i < split_sheet_h->get_value() * split_sheet_v->get_value(); i++) {
@@ -207,15 +250,18 @@ void SpriteFramesEditor::_prepare_sprite_sheet(const String &p_file) {
EditorNode::get_singleton()->show_warning(TTR("Unable to load images"));
ERR_FAIL_COND(!texture.is_valid());
}
- if (texture != split_sheet_preview->get_texture()) {
- //different texture, reset to 4x4
- split_sheet_h->set_value(4);
- split_sheet_v->set_value(4);
- }
+ bool new_texture = texture != split_sheet_preview->get_texture();
frames_selected.clear();
last_frame_selected = -1;
split_sheet_preview->set_texture(texture);
+ if (new_texture) {
+ //different texture, reset to 4x4
+ split_sheet_h->set_value(4);
+ split_sheet_v->set_value(4);
+ //reset zoom
+ _sheet_zoom_reset();
+ }
split_sheet_dialog->popup_centered_ratio(0.65);
}
@@ -231,8 +277,14 @@ void SpriteFramesEditor::_notification(int p_what) {
move_up->set_icon(get_theme_icon("MoveLeft", "EditorIcons"));
move_down->set_icon(get_theme_icon("MoveRight", "EditorIcons"));
_delete->set_icon(get_theme_icon("Remove", "EditorIcons"));
+ zoom_out->set_icon(get_theme_icon("ZoomLess", "EditorIcons"));
+ zoom_1->set_icon(get_theme_icon("ZoomReset", "EditorIcons"));
+ zoom_in->set_icon(get_theme_icon("ZoomMore", "EditorIcons"));
new_anim->set_icon(get_theme_icon("New", "EditorIcons"));
remove_anim->set_icon(get_theme_icon("Remove", "EditorIcons"));
+ split_sheet_zoom_out->set_icon(get_theme_icon("ZoomLess", "EditorIcons"));
+ split_sheet_zoom_1->set_icon(get_theme_icon("ZoomReset", "EditorIcons"));
+ split_sheet_zoom_in->set_icon(get_theme_icon("ZoomMore", "EditorIcons"));
[[fallthrough]];
}
case NOTIFICATION_THEME_CHANGED: {
@@ -458,7 +510,7 @@ void SpriteFramesEditor::_animation_select() {
}
if (frames->has_animation(edited_anim)) {
- double value = anim_speed->get_line_edit()->get_text().to_double();
+ double value = anim_speed->get_line_edit()->get_text().to_float();
if (!Math::is_equal_approx(value, frames->get_animation_speed(edited_anim))) {
_animation_fps_changed(value);
}
@@ -636,6 +688,54 @@ void SpriteFramesEditor::_animation_fps_changed(double p_value) {
undo_redo->commit_action();
}
+void SpriteFramesEditor::_tree_input(const Ref<InputEvent> &p_event) {
+ const Ref<InputEventMouseButton> mb = p_event;
+
+ if (mb.is_valid()) {
+ if (mb->get_button_index() == BUTTON_WHEEL_UP && mb->is_pressed() && mb->get_control()) {
+ _zoom_in();
+ // Don't scroll up after zooming in.
+ accept_event();
+ } else if (mb->get_button_index() == BUTTON_WHEEL_DOWN && mb->is_pressed() && mb->get_control()) {
+ _zoom_out();
+ // Don't scroll down after zooming out.
+ accept_event();
+ }
+ }
+}
+
+void SpriteFramesEditor::_zoom_in() {
+ // Do not zoom in or out with no visible frames
+ if (frames->get_frame_count(edited_anim) <= 0) {
+ return;
+ }
+ if (thumbnail_zoom < max_thumbnail_zoom) {
+ thumbnail_zoom *= scale_ratio;
+ int thumbnail_size = (int)(thumbnail_default_size * thumbnail_zoom);
+ tree->set_fixed_column_width(thumbnail_size * 3 / 2);
+ tree->set_fixed_icon_size(Size2(thumbnail_size, thumbnail_size));
+ }
+}
+
+void SpriteFramesEditor::_zoom_out() {
+ // Do not zoom in or out with no visible frames
+ if (frames->get_frame_count(edited_anim) <= 0) {
+ return;
+ }
+ if (thumbnail_zoom > min_thumbnail_zoom) {
+ thumbnail_zoom /= scale_ratio;
+ int thumbnail_size = (int)(thumbnail_default_size * thumbnail_zoom);
+ tree->set_fixed_column_width(thumbnail_size * 3 / 2);
+ tree->set_fixed_icon_size(Size2(thumbnail_size, thumbnail_size));
+ }
+}
+
+void SpriteFramesEditor::_zoom_reset() {
+ thumbnail_zoom = 1.0f;
+ tree->set_fixed_column_width(thumbnail_default_size * 3 / 2);
+ tree->set_fixed_icon_size(Size2(thumbnail_default_size, thumbnail_default_size));
+}
+
void SpriteFramesEditor::_update_library(bool p_skip_selector) {
updating = true;
@@ -727,6 +827,9 @@ void SpriteFramesEditor::edit(SpriteFrames *p_frames) {
}
_update_library();
+ // Clear zoom and split sheet texture
+ split_sheet_preview->set_texture(Ref<Texture2D>());
+ _zoom_reset();
} else {
hide();
}
@@ -892,11 +995,16 @@ SpriteFramesEditor::SpriteFramesEditor() {
animations->connect("item_edited", callable_mp(this, &SpriteFramesEditor::_animation_name_edited));
animations->set_allow_reselect(true);
+ HBoxContainer *hbc_anim_speed = memnew(HBoxContainer);
+ hbc_anim_speed->add_child(memnew(Label(TTR("Speed:"))));
+ vbc_animlist->add_child(hbc_anim_speed);
anim_speed = memnew(SpinBox);
- vbc_animlist->add_margin_child(TTR("Speed (FPS):"), anim_speed);
+ anim_speed->set_suffix(TTR("FPS"));
anim_speed->set_min(0);
anim_speed->set_max(100);
anim_speed->set_step(0.01);
+ anim_speed->set_h_size_flags(SIZE_EXPAND_FILL);
+ hbc_anim_speed->add_child(anim_speed);
anim_speed->connect("value_changed", callable_mp(this, &SpriteFramesEditor::_animation_fps_changed));
anim_loop = memnew(CheckButton);
@@ -965,6 +1073,24 @@ SpriteFramesEditor::SpriteFramesEditor() {
_delete->set_tooltip(TTR("Delete"));
hbc->add_child(_delete);
+ hbc->add_spacer();
+
+ zoom_out = memnew(Button);
+ zoom_out->connect("pressed", callable_mp(this, &SpriteFramesEditor::_zoom_out));
+ zoom_out->set_flat(true);
+ zoom_out->set_tooltip(TTR("Zoom Out"));
+ hbc->add_child(zoom_out);
+ zoom_1 = memnew(Button);
+ zoom_1->connect("pressed", callable_mp(this, &SpriteFramesEditor::_zoom_reset));
+ zoom_1->set_flat(true);
+ zoom_1->set_tooltip(TTR("Zoom Reset"));
+ hbc->add_child(zoom_1);
+ zoom_in = memnew(Button);
+ zoom_in->connect("pressed", callable_mp(this, &SpriteFramesEditor::_zoom_in));
+ zoom_in->set_flat(true);
+ zoom_in->set_tooltip(TTR("Zoom In"));
+ hbc->add_child(zoom_in);
+
file = memnew(EditorFileDialog);
add_child(file);
@@ -972,13 +1098,11 @@ SpriteFramesEditor::SpriteFramesEditor() {
tree->set_v_size_flags(SIZE_EXPAND_FILL);
tree->set_icon_mode(ItemList::ICON_MODE_TOP);
- int thumbnail_size = 96;
tree->set_max_columns(0);
tree->set_icon_mode(ItemList::ICON_MODE_TOP);
- tree->set_fixed_column_width(thumbnail_size * 3 / 2);
tree->set_max_text_lines(2);
- tree->set_fixed_icon_size(Size2(thumbnail_size, thumbnail_size));
tree->set_drag_forwarding(this);
+ tree->connect("gui_input", callable_mp(this, &SpriteFramesEditor::_tree_input));
sub_vb->add_child(tree);
@@ -1042,8 +1166,13 @@ SpriteFramesEditor::SpriteFramesEditor() {
split_sheet_vb->add_child(split_sheet_hb);
+ PanelContainer *split_sheet_panel = memnew(PanelContainer);
+ split_sheet_panel->set_h_size_flags(SIZE_EXPAND_FILL);
+ split_sheet_panel->set_v_size_flags(SIZE_EXPAND_FILL);
+ split_sheet_vb->add_child(split_sheet_panel);
+
split_sheet_preview = memnew(TextureRect);
- split_sheet_preview->set_expand(false);
+ split_sheet_preview->set_expand(true);
split_sheet_preview->set_mouse_filter(MOUSE_FILTER_PASS);
split_sheet_preview->connect("draw", callable_mp(this, &SpriteFramesEditor::_sheet_preview_draw));
split_sheet_preview->connect("gui_input", callable_mp(this, &SpriteFramesEditor::_sheet_preview_input));
@@ -1051,20 +1180,58 @@ SpriteFramesEditor::SpriteFramesEditor() {
splite_sheet_scroll = memnew(ScrollContainer);
splite_sheet_scroll->set_enable_h_scroll(true);
splite_sheet_scroll->set_enable_v_scroll(true);
- splite_sheet_scroll->set_v_size_flags(SIZE_EXPAND_FILL);
+ splite_sheet_scroll->connect("gui_input", callable_mp(this, &SpriteFramesEditor::_sheet_scroll_input));
+ split_sheet_panel->add_child(splite_sheet_scroll);
CenterContainer *cc = memnew(CenterContainer);
cc->add_child(split_sheet_preview);
cc->set_h_size_flags(SIZE_EXPAND_FILL);
cc->set_v_size_flags(SIZE_EXPAND_FILL);
splite_sheet_scroll->add_child(cc);
- split_sheet_vb->add_child(splite_sheet_scroll);
+ MarginContainer *split_sheet_zoom_margin = memnew(MarginContainer);
+ split_sheet_panel->add_child(split_sheet_zoom_margin);
+ split_sheet_zoom_margin->set_h_size_flags(0);
+ split_sheet_zoom_margin->set_v_size_flags(0);
+ split_sheet_zoom_margin->add_theme_constant_override("margin_top", 5);
+ split_sheet_zoom_margin->add_theme_constant_override("margin_left", 5);
+ HBoxContainer *split_sheet_zoom_hb = memnew(HBoxContainer);
+ split_sheet_zoom_margin->add_child(split_sheet_zoom_hb);
+
+ split_sheet_zoom_out = memnew(Button);
+ split_sheet_zoom_out->set_flat(true);
+ split_sheet_zoom_out->set_focus_mode(FOCUS_NONE);
+ split_sheet_zoom_out->set_tooltip(TTR("Zoom Out"));
+ split_sheet_zoom_out->connect("pressed", callable_mp(this, &SpriteFramesEditor::_sheet_zoom_out));
+ split_sheet_zoom_hb->add_child(split_sheet_zoom_out);
+ split_sheet_zoom_1 = memnew(Button);
+ split_sheet_zoom_1->set_flat(true);
+ split_sheet_zoom_1->set_focus_mode(FOCUS_NONE);
+ split_sheet_zoom_1->set_tooltip(TTR("Zoom Reset"));
+ split_sheet_zoom_1->connect("pressed", callable_mp(this, &SpriteFramesEditor::_sheet_zoom_reset));
+ split_sheet_zoom_hb->add_child(split_sheet_zoom_1);
+ split_sheet_zoom_in = memnew(Button);
+ split_sheet_zoom_in->set_flat(true);
+ split_sheet_zoom_in->set_focus_mode(FOCUS_NONE);
+ split_sheet_zoom_in->set_tooltip(TTR("Zoom In"));
+ split_sheet_zoom_in->connect("pressed", callable_mp(this, &SpriteFramesEditor::_sheet_zoom_in));
+ split_sheet_zoom_hb->add_child(split_sheet_zoom_in);
file_split_sheet = memnew(EditorFileDialog);
file_split_sheet->set_title(TTR("Create Frames from Sprite Sheet"));
file_split_sheet->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE);
add_child(file_split_sheet);
file_split_sheet->connect("file_selected", callable_mp(this, &SpriteFramesEditor::_prepare_sprite_sheet));
+
+ // Config scale.
+ scale_ratio = 1.2f;
+ thumbnail_default_size = 96;
+ thumbnail_zoom = 1.0f;
+ max_thumbnail_zoom = 8.0f;
+ min_thumbnail_zoom = 0.1f;
+ sheet_zoom = 1.0f;
+ max_sheet_zoom = 16.0f;
+ min_sheet_zoom = 0.01f;
+ _zoom_reset();
}
void SpriteFramesEditorPlugin::edit(Object *p_object) {
diff --git a/editor/plugins/sprite_frames_editor_plugin.h b/editor/plugins/sprite_frames_editor_plugin.h
index ee743fe60d..0dce93f55a 100644
--- a/editor/plugins/sprite_frames_editor_plugin.h
+++ b/editor/plugins/sprite_frames_editor_plugin.h
@@ -36,6 +36,7 @@
#include "scene/2d/animated_sprite_2d.h"
#include "scene/gui/dialogs.h"
#include "scene/gui/file_dialog.h"
+#include "scene/gui/scroll_container.h"
#include "scene/gui/split_container.h"
#include "scene/gui/texture_rect.h"
#include "scene/gui/tree.h"
@@ -52,6 +53,9 @@ class SpriteFramesEditor : public HSplitContainer {
Button *empty2;
Button *move_up;
Button *move_down;
+ Button *zoom_out;
+ Button *zoom_1;
+ Button *zoom_in;
ItemList *tree;
bool loading_scene;
int sel;
@@ -79,10 +83,22 @@ class SpriteFramesEditor : public HSplitContainer {
TextureRect *split_sheet_preview;
SpinBox *split_sheet_h;
SpinBox *split_sheet_v;
+ Button *split_sheet_zoom_out;
+ Button *split_sheet_zoom_1;
+ Button *split_sheet_zoom_in;
EditorFileDialog *file_split_sheet;
Set<int> frames_selected;
int last_frame_selected;
+ float scale_ratio;
+ int thumbnail_default_size;
+ float thumbnail_zoom;
+ float max_thumbnail_zoom;
+ float min_thumbnail_zoom;
+ float sheet_zoom;
+ float max_sheet_zoom;
+ float min_sheet_zoom;
+
void _load_pressed();
void _load_scene_pressed();
void _file_load_request(const Vector<String> &p_path, int p_at_pos = -1);
@@ -103,6 +119,11 @@ class SpriteFramesEditor : public HSplitContainer {
void _animation_loop_changed();
void _animation_fps_changed(double p_value);
+ void _tree_input(const Ref<InputEvent> &p_event);
+ void _zoom_in();
+ void _zoom_out();
+ void _zoom_reset();
+
bool updating;
UndoRedo *undo_redo;
@@ -117,7 +138,11 @@ class SpriteFramesEditor : public HSplitContainer {
void _sheet_preview_draw();
void _sheet_spin_changed(double);
void _sheet_preview_input(const Ref<InputEvent> &p_event);
+ void _sheet_scroll_input(const Ref<InputEvent> &p_event);
void _sheet_add_frames();
+ void _sheet_zoom_in();
+ void _sheet_zoom_out();
+ void _sheet_zoom_reset();
void _sheet_select_clear_all_frames();
protected:
diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp
index d602d152fe..8935b698b6 100644
--- a/editor/plugins/text_editor.cpp
+++ b/editor/plugins/text_editor.cpp
@@ -34,27 +34,32 @@
#include "editor/editor_node.h"
void TextEditor::add_syntax_highlighter(Ref<EditorSyntaxHighlighter> p_highlighter) {
+ ERR_FAIL_COND(p_highlighter.is_null());
+
highlighters[p_highlighter->_get_name()] = p_highlighter;
highlighter_menu->add_radio_check_item(p_highlighter->_get_name());
}
void TextEditor::set_syntax_highlighter(Ref<EditorSyntaxHighlighter> p_highlighter) {
- TextEdit *te = code_editor->get_text_edit();
- te->set_syntax_highlighter(p_highlighter);
- highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text(p_highlighter->_get_name()), true);
-}
+ ERR_FAIL_COND(p_highlighter.is_null());
-void TextEditor::_change_syntax_highlighter(int p_idx) {
Map<String, Ref<EditorSyntaxHighlighter>>::Element *el = highlighters.front();
while (el != nullptr) {
- highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text(el->key()), false);
+ int highlighter_index = highlighter_menu->get_item_idx_from_text(el->key());
+ highlighter_menu->set_item_checked(highlighter_index, el->value() == p_highlighter);
el = el->next();
}
+
+ CodeEdit *te = code_editor->get_text_editor();
+ te->set_syntax_highlighter(p_highlighter);
+}
+
+void TextEditor::_change_syntax_highlighter(int p_idx) {
set_syntax_highlighter(highlighters[highlighter_menu->get_item_text(p_idx)]);
}
void TextEditor::_load_theme_settings() {
- TextEdit *text_edit = code_editor->get_text_edit();
+ CodeEdit *text_edit = code_editor->get_text_editor();
text_edit->get_syntax_highlighter()->update_cache();
Color background_color = EDITOR_GET("text_editor/highlighting/background_color");
@@ -114,6 +119,9 @@ String TextEditor::get_name() {
if (text_file->get_path().find("local://") == -1 && text_file->get_path().find("::") == -1) {
name = text_file->get_path().get_file();
if (is_unsaved()) {
+ if (text_file->get_path().empty()) {
+ name = TTR("[unsaved]");
+ }
name += "(*)";
}
} else if (text_file->get_name() != "") {
@@ -126,7 +134,7 @@ String TextEditor::get_name() {
}
Ref<Texture2D> TextEditor::get_theme_icon() {
- return EditorNode::get_singleton()->get_object_icon(text_file.operator->(), "");
+ return EditorNode::get_singleton()->get_object_icon(text_file.ptr(), "");
}
RES TextEditor::get_edited_resource() const {
@@ -134,31 +142,43 @@ RES TextEditor::get_edited_resource() const {
}
void TextEditor::set_edited_resource(const RES &p_res) {
- ERR_FAIL_COND(!text_file.is_null());
+ ERR_FAIL_COND(text_file.is_valid());
+ ERR_FAIL_COND(p_res.is_null());
text_file = p_res;
- code_editor->get_text_edit()->set_text(text_file->get_text());
- code_editor->get_text_edit()->clear_undo_history();
- code_editor->get_text_edit()->tag_saved_version();
+ code_editor->get_text_editor()->set_text(text_file->get_text());
+ code_editor->get_text_editor()->clear_undo_history();
+ code_editor->get_text_editor()->tag_saved_version();
emit_signal("name_changed");
code_editor->update_line_and_column();
}
+void TextEditor::enable_editor() {
+ if (editor_enabled) {
+ return;
+ }
+
+ editor_enabled = true;
+
+ _load_theme_settings();
+}
+
void TextEditor::add_callback(const String &p_function, PackedStringArray p_args) {
}
void TextEditor::set_debugger_active(bool p_active) {
}
-void TextEditor::get_breakpoints(List<int> *p_breakpoints) {
+Array TextEditor::get_breakpoints() {
+ return Array();
}
void TextEditor::reload_text() {
ERR_FAIL_COND(text_file.is_null());
- TextEdit *te = code_editor->get_text_edit();
+ CodeEdit *te = code_editor->get_text_editor();
int column = te->cursor_get_column();
int row = te->cursor_get_line();
int h = te->get_h_scroll();
@@ -188,7 +208,7 @@ void TextEditor::_update_bookmark_list() {
bookmarks_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_next_bookmark"), BOOKMARK_GOTO_NEXT);
bookmarks_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_previous_bookmark"), BOOKMARK_GOTO_PREV);
- Array bookmark_list = code_editor->get_text_edit()->get_bookmarks_array();
+ Array bookmark_list = code_editor->get_text_editor()->get_bookmarked_lines();
if (bookmark_list.size() == 0) {
return;
}
@@ -196,7 +216,7 @@ void TextEditor::_update_bookmark_list() {
bookmarks_menu->add_separator();
for (int i = 0; i < bookmark_list.size(); i++) {
- String line = code_editor->get_text_edit()->get_line(bookmark_list[i]).strip_edges();
+ String line = code_editor->get_text_editor()->get_line(bookmark_list[i]).strip_edges();
// Limit the size of the line if too big.
if (line.length() > 50) {
line = line.substr(0, 50);
@@ -216,11 +236,14 @@ void TextEditor::_bookmark_item_pressed(int p_idx) {
}
void TextEditor::apply_code() {
- text_file->set_text(code_editor->get_text_edit()->get_text());
+ text_file->set_text(code_editor->get_text_editor()->get_text());
}
bool TextEditor::is_unsaved() {
- return code_editor->get_text_edit()->get_version() != code_editor->get_text_edit()->get_saved_version();
+ const bool unsaved =
+ code_editor->get_text_editor()->get_version() != code_editor->get_text_editor()->get_saved_version() ||
+ text_file->get_path().empty(); // In memory.
+ return unsaved;
}
Variant TextEditor::get_edit_state() {
@@ -237,6 +260,8 @@ void TextEditor::set_edit_state(const Variant &p_state) {
_change_syntax_highlighter(idx);
}
}
+
+ ensure_focus();
}
void TextEditor::trim_trailing_whitespace() {
@@ -256,7 +281,7 @@ void TextEditor::convert_indent_to_tabs() {
}
void TextEditor::tag_saved_version() {
- code_editor->get_text_edit()->tag_saved_version();
+ code_editor->get_text_editor()->tag_saved_version();
}
void TextEditor::goto_line(int p_line, bool p_with_error) {
@@ -276,7 +301,7 @@ void TextEditor::clear_executing_line() {
}
void TextEditor::ensure_focus() {
- code_editor->get_text_edit()->grab_focus();
+ code_editor->get_text_editor()->grab_focus();
}
Vector<String> TextEditor::get_functions() {
@@ -292,7 +317,7 @@ void TextEditor::update_settings() {
}
void TextEditor::set_tooltip_request_func(String p_method, Object *p_obj) {
- code_editor->get_text_edit()->set_tooltip_request_func(p_obj, p_method, this);
+ code_editor->get_text_editor()->set_tooltip_request_func(p_obj, p_method, this);
}
Control *TextEditor::get_edit_menu() {
@@ -303,16 +328,8 @@ void TextEditor::clear_edit_menu() {
memdelete(edit_hb);
}
-void TextEditor::_notification(int p_what) {
- switch (p_what) {
- case NOTIFICATION_READY:
- _load_theme_settings();
- break;
- }
-}
-
void TextEditor::_edit_option(int p_op) {
- TextEdit *tx = code_editor->get_text_edit();
+ CodeEdit *tx = code_editor->get_text_editor();
switch (p_op) {
case EDIT_UNDO: {
@@ -400,14 +417,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_edit()->get_selection_text();
+ String selected_text = code_editor->get_text_editor()->get_selection_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("search_in_files_requested", selected_text);
} break;
case REPLACE_IN_FILES: {
- String selected_text = code_editor->get_text_edit()->get_selection_text();
+ String selected_text = code_editor->get_text_editor()->get_selection_text();
emit_signal("replace_in_files_requested", selected_text);
} break;
@@ -454,7 +471,7 @@ void TextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
if (mb.is_valid()) {
if (mb->get_button_index() == BUTTON_RIGHT) {
int col, row;
- TextEdit *tx = code_editor->get_text_edit();
+ 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"));
@@ -487,7 +504,7 @@ void TextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
Ref<InputEventKey> k = ev;
if (k.is_valid() && k->is_pressed() && k->get_keycode() == KEY_MENU) {
- TextEdit *tx = code_editor->get_text_edit();
+ CodeEdit *tx = code_editor->get_text_editor();
int line = tx->cursor_get_line();
_make_context_menu(tx->is_selection_active(), tx->can_fold(line), tx->is_folded(line), (get_global_transform().inverse() * tx->get_global_transform()).xform(tx->_get_cursor_pixel_pos()));
context_menu->grab_focus();
@@ -536,8 +553,8 @@ TextEditor::TextEditor() {
update_settings();
- code_editor->get_text_edit()->set_context_menu_enabled(false);
- code_editor->get_text_edit()->connect("gui_input", callable_mp(this, &TextEditor::_text_edit_gui_input));
+ code_editor->get_text_editor()->set_context_menu_enabled(false);
+ code_editor->get_text_editor()->connect("gui_input", callable_mp(this, &TextEditor::_text_edit_gui_input));
context_menu = memnew(PopupMenu);
add_child(context_menu);
@@ -633,7 +650,7 @@ TextEditor::TextEditor() {
goto_line_dialog = memnew(GotoLineDialog);
add_child(goto_line_dialog);
- code_editor->get_text_edit()->set_drag_forwarding(this);
+ code_editor->get_text_editor()->set_drag_forwarding(this);
}
TextEditor::~TextEditor() {
diff --git a/editor/plugins/text_editor.h b/editor/plugins/text_editor.h
index 5299776b56..ea425bd033 100644
--- a/editor/plugins/text_editor.h
+++ b/editor/plugins/text_editor.h
@@ -37,18 +37,19 @@ class TextEditor : public ScriptEditorBase {
GDCLASS(TextEditor, ScriptEditorBase);
private:
- CodeTextEditor *code_editor;
+ CodeTextEditor *code_editor = nullptr;
Ref<TextFile> text_file;
+ bool editor_enabled = false;
- HBoxContainer *edit_hb;
- MenuButton *edit_menu;
- PopupMenu *highlighter_menu;
- MenuButton *search_menu;
- PopupMenu *bookmarks_menu;
- PopupMenu *context_menu;
+ HBoxContainer *edit_hb = nullptr;
+ MenuButton *edit_menu = nullptr;
+ PopupMenu *highlighter_menu = nullptr;
+ MenuButton *search_menu = nullptr;
+ PopupMenu *bookmarks_menu = nullptr;
+ PopupMenu *context_menu = nullptr;
- GotoLineDialog *goto_line_dialog;
+ GotoLineDialog *goto_line_dialog = nullptr;
enum {
EDIT_UNDO,
@@ -88,8 +89,6 @@ private:
protected:
static void _bind_methods();
- void _notification(int p_what);
-
void _edit_option(int p_op);
void _make_context_menu(bool p_selection, bool p_can_fold, bool p_is_folded, Vector2 p_position);
void _text_edit_gui_input(const Ref<InputEvent> &ev);
@@ -113,14 +112,14 @@ public:
virtual Ref<Texture2D> get_theme_icon() override;
virtual RES get_edited_resource() const override;
virtual void set_edited_resource(const RES &p_res) override;
- void set_edited_file(const Ref<TextFile> &p_file);
+ virtual void enable_editor() override;
virtual void reload_text() override;
virtual void apply_code() override;
virtual bool is_unsaved() override;
virtual Variant get_edit_state() override;
virtual void set_edit_state(const Variant &p_state) override;
virtual Vector<String> get_functions() override;
- virtual void get_breakpoints(List<int> *p_breakpoints) override;
+ virtual Array get_breakpoints() override;
virtual void goto_line(int p_line, bool p_with_error = false) override;
void goto_line_selection(int p_line, int p_begin, int p_end);
virtual void set_executing_line(int p_line) override;
diff --git a/editor/plugins/texture_3d_editor_plugin.cpp b/editor/plugins/texture_3d_editor_plugin.cpp
new file mode 100644
index 0000000000..ba2eef8484
--- /dev/null
+++ b/editor/plugins/texture_3d_editor_plugin.cpp
@@ -0,0 +1,213 @@
+/*************************************************************************/
+/* texture_3d_editor_plugin.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2020 Godot Engine contributors (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 "texture_3d_editor_plugin.h"
+
+#include "core/io/resource_loader.h"
+#include "core/project_settings.h"
+#include "editor/editor_settings.h"
+
+void Texture3DEditor::_gui_input(Ref<InputEvent> p_event) {
+}
+
+void Texture3DEditor::_texture_rect_draw() {
+ texture_rect->draw_rect(Rect2(Point2(), texture_rect->get_size()), Color(1, 1, 1, 1));
+}
+
+void Texture3DEditor::_notification(int p_what) {
+ if (p_what == NOTIFICATION_READY) {
+ //get_scene()->connect("node_removed",this,"_node_removed");
+ }
+ if (p_what == NOTIFICATION_RESIZED) {
+ _texture_rect_update_area();
+ }
+
+ if (p_what == NOTIFICATION_DRAW) {
+ Ref<Texture2D> checkerboard = get_theme_icon("Checkerboard", "EditorIcons");
+ Size2 size = get_size();
+
+ draw_texture_rect(checkerboard, Rect2(Point2(), size), true);
+ }
+}
+
+void Texture3DEditor::_changed_callback(Object *p_changed, const char *p_prop) {
+ if (!is_visible()) {
+ return;
+ }
+ update();
+}
+
+void Texture3DEditor::_update_material() {
+ material->set_shader_param("layer", (layer->get_value() + 0.5) / texture->get_depth());
+ material->set_shader_param("tex", texture->get_rid());
+
+ String format = Image::get_format_name(texture->get_format());
+
+ String text;
+ text = itos(texture->get_width()) + "x" + itos(texture->get_height()) + "x" + itos(texture->get_depth()) + " " + format;
+
+ info->set_text(text);
+}
+
+void Texture3DEditor::_make_shaders() {
+ String shader_3d = ""
+ "shader_type canvas_item;\n"
+ "uniform sampler3D tex;\n"
+ "uniform float layer;\n"
+ "void fragment() {\n"
+ " COLOR = textureLod(tex,vec3(UV,layer),0.0);\n"
+ "}";
+
+ shader.instance();
+ shader->set_code(shader_3d);
+ material.instance();
+ material->set_shader(shader);
+}
+
+void Texture3DEditor::_texture_rect_update_area() {
+ Size2 size = get_size();
+ int tex_width = texture->get_width() * size.height / texture->get_height();
+ int tex_height = size.height;
+
+ if (tex_width > size.width) {
+ tex_width = size.width;
+ tex_height = texture->get_height() * tex_width / texture->get_width();
+ }
+
+ // Prevent the texture from being unpreviewable after the rescale, so that we can still see something
+ if (tex_height <= 0) {
+ tex_height = 1;
+ }
+ if (tex_width <= 0) {
+ tex_width = 1;
+ }
+
+ int ofs_x = (size.width - tex_width) / 2;
+ int ofs_y = (size.height - tex_height) / 2;
+
+ texture_rect->set_position(Vector2(ofs_x, ofs_y));
+ texture_rect->set_size(Vector2(tex_width, tex_height));
+}
+
+void Texture3DEditor::edit(Ref<Texture3D> p_texture) {
+ if (!texture.is_null()) {
+ texture->remove_change_receptor(this);
+ }
+
+ texture = p_texture;
+
+ if (!texture.is_null()) {
+ if (shader.is_null()) {
+ _make_shaders();
+ }
+
+ texture->add_change_receptor(this);
+ update();
+ texture_rect->set_material(material);
+ setting = true;
+ layer->set_max(texture->get_depth() - 1);
+ layer->set_value(0);
+ layer->show();
+ _update_material();
+ setting = false;
+ _texture_rect_update_area();
+ } else {
+ hide();
+ }
+}
+
+void Texture3DEditor::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("_gui_input"), &Texture3DEditor::_gui_input);
+ ClassDB::bind_method(D_METHOD("_layer_changed"), &Texture3DEditor::_layer_changed);
+}
+
+Texture3DEditor::Texture3DEditor() {
+ set_texture_repeat(TextureRepeat::TEXTURE_REPEAT_ENABLED);
+ set_custom_minimum_size(Size2(1, 150));
+ texture_rect = memnew(Control);
+ texture_rect->connect("draw", callable_mp(this, &Texture3DEditor::_texture_rect_draw));
+ texture_rect->set_mouse_filter(MOUSE_FILTER_IGNORE);
+ add_child(texture_rect);
+
+ layer = memnew(SpinBox);
+ layer->set_step(1);
+ layer->set_max(100);
+ add_child(layer);
+ layer->set_anchor(MARGIN_RIGHT, 1);
+ layer->set_anchor(MARGIN_LEFT, 1);
+ layer->set_h_grow_direction(GROW_DIRECTION_BEGIN);
+ layer->set_modulate(Color(1, 1, 1, 0.8));
+ info = memnew(Label);
+ add_child(info);
+ info->set_anchor(MARGIN_RIGHT, 1);
+ info->set_anchor(MARGIN_LEFT, 1);
+ info->set_anchor(MARGIN_BOTTOM, 1);
+ info->set_anchor(MARGIN_TOP, 1);
+ info->set_h_grow_direction(GROW_DIRECTION_BEGIN);
+ info->set_v_grow_direction(GROW_DIRECTION_BEGIN);
+ info->add_theme_color_override("font_color", Color(1, 1, 1, 1));
+ info->add_theme_color_override("font_color_shadow", Color(0, 0, 0, 0.5));
+ info->add_theme_color_override("font_color_shadow", Color(0, 0, 0, 0.5));
+ info->add_theme_constant_override("shadow_as_outline", 1);
+ info->add_theme_constant_override("shadow_offset_x", 2);
+ info->add_theme_constant_override("shadow_offset_y", 2);
+
+ setting = false;
+ layer->connect("value_changed", Callable(this, "_layer_changed"));
+}
+
+Texture3DEditor::~Texture3DEditor() {
+ if (!texture.is_null()) {
+ texture->remove_change_receptor(this);
+ }
+}
+
+//
+bool EditorInspectorPlugin3DTexture::can_handle(Object *p_object) {
+ return Object::cast_to<Texture3D>(p_object) != nullptr;
+}
+
+void EditorInspectorPlugin3DTexture::parse_begin(Object *p_object) {
+ Texture3D *texture = Object::cast_to<Texture3D>(p_object);
+ if (!texture) {
+ return;
+ }
+ Ref<Texture3D> m(texture);
+
+ Texture3DEditor *editor = memnew(Texture3DEditor);
+ editor->edit(m);
+ add_custom_control(editor);
+}
+
+Texture3DEditorPlugin::Texture3DEditorPlugin(EditorNode *p_node) {
+ Ref<EditorInspectorPlugin3DTexture> plugin;
+ plugin.instance();
+ add_inspector_plugin(plugin);
+}
diff --git a/editor/plugins/texture_3d_editor_plugin.h b/editor/plugins/texture_3d_editor_plugin.h
new file mode 100644
index 0000000000..4fbf47ecfe
--- /dev/null
+++ b/editor/plugins/texture_3d_editor_plugin.h
@@ -0,0 +1,93 @@
+/*************************************************************************/
+/* texture_3d_editor_plugin.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2020 Godot Engine contributors (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 TEXTURE_3D_EDITOR_PLUGIN_H
+#define TEXTURE_3D_EDITOR_PLUGIN_H
+
+#include "editor/editor_node.h"
+#include "editor/editor_plugin.h"
+#include "scene/resources/shader.h"
+#include "scene/resources/texture.h"
+
+class Texture3DEditor : public Control {
+ GDCLASS(Texture3DEditor, Control);
+
+ SpinBox *layer;
+ Label *info;
+ Ref<Texture3D> texture;
+
+ Ref<Shader> shader;
+ Ref<ShaderMaterial> material;
+
+ Control *texture_rect;
+
+ void _make_shaders();
+
+ void _update_material();
+ bool setting;
+ void _layer_changed(double) {
+ if (!setting) {
+ _update_material();
+ }
+ }
+
+ void _texture_rect_update_area();
+ void _texture_rect_draw();
+
+protected:
+ void _notification(int p_what);
+ void _gui_input(Ref<InputEvent> p_event);
+ void _changed_callback(Object *p_changed, const char *p_prop) override;
+ static void _bind_methods();
+
+public:
+ void edit(Ref<Texture3D> p_texture);
+ Texture3DEditor();
+ ~Texture3DEditor();
+};
+
+class EditorInspectorPlugin3DTexture : public EditorInspectorPlugin {
+ GDCLASS(EditorInspectorPlugin3DTexture, EditorInspectorPlugin);
+
+public:
+ virtual bool can_handle(Object *p_object) override;
+ virtual void parse_begin(Object *p_object) override;
+};
+
+class Texture3DEditorPlugin : public EditorPlugin {
+ GDCLASS(Texture3DEditorPlugin, EditorPlugin);
+
+public:
+ virtual String get_name() const override { return "Texture3D"; }
+
+ Texture3DEditorPlugin(EditorNode *p_node);
+};
+
+#endif // TEXTURE_EDITOR_PLUGIN_H
diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp
index 762f42abeb..6e722607f7 100644
--- a/editor/plugins/texture_region_editor_plugin.cpp
+++ b/editor/plugins/texture_region_editor_plugin.cpp
@@ -875,7 +875,7 @@ void TextureRegionEditor::_changed_callback(Object *p_changed, const char *p_pro
if (!is_visible()) {
return;
}
- if (p_prop == StringName("atlas") || p_prop == StringName("texture")) {
+ if (p_prop == StringName("atlas") || p_prop == StringName("texture") || p_prop == StringName("region")) {
_edit_region();
}
}
diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp
index 43ace737c0..932ded6938 100644
--- a/editor/plugins/theme_editor_plugin.cpp
+++ b/editor/plugins/theme_editor_plugin.cpp
@@ -206,8 +206,8 @@ void ThemeEditor::_save_template_cbk(String fname) {
file->store_line("; [value] examples:");
file->store_line("; ");
file->store_line("; Type.item = 6 ; numeric constant. ");
- file->store_line("; Type.item = #FF00FF ; HTML color ");
- file->store_line("; Type.item = #55FF00FF ; HTML color with alpha 55.");
+ file->store_line("; Type.item = #FF00FF ; HTML color (magenta).");
+ file->store_line("; Type.item = #FF00FF55 ; HTML color (magenta with alpha 0x55).");
file->store_line("; Type.item = icon(image.png) ; icon in a png file (relative to theme file).");
file->store_line("; Type.item = font(font.xres) ; font in a resource (relative to theme file).");
file->store_line("; Type.item = sbox(stylebox.xres) ; stylebox in a resource (relative to theme file).");
@@ -629,7 +629,7 @@ ThemeEditor::ThemeEditor() {
ScrollContainer *scroll = memnew(ScrollContainer);
add_child(scroll);
scroll->set_enable_v_scroll(true);
- scroll->set_enable_h_scroll(false);
+ scroll->set_enable_h_scroll(true);
scroll->set_v_size_flags(SIZE_EXPAND_FILL);
MarginContainer *root_container = memnew(MarginContainer);
@@ -828,7 +828,7 @@ ThemeEditor::ThemeEditor() {
type_hbc->add_child(type_edit);
type_menu = memnew(MenuButton);
type_menu->set_flat(false);
- type_menu->set_text("..");
+ type_menu->set_text("...");
type_hbc->add_child(type_menu);
type_menu->get_popup()->connect("id_pressed", callable_mp(this, &ThemeEditor::_type_menu_cbk));
@@ -846,7 +846,7 @@ ThemeEditor::ThemeEditor() {
name_hbc->add_child(name_edit);
name_menu = memnew(MenuButton);
type_menu->set_flat(false);
- name_menu->set_text("..");
+ name_menu->set_text("...");
name_hbc->add_child(name_menu);
name_menu->get_popup()->connect("about_to_popup", callable_mp(this, &ThemeEditor::_name_menu_about_to_show));
diff --git a/editor/plugins/tile_map_editor_plugin.cpp b/editor/plugins/tile_map_editor_plugin.cpp
index 307a8a9001..cb3c0c8be0 100644
--- a/editor/plugins/tile_map_editor_plugin.cpp
+++ b/editor/plugins/tile_map_editor_plugin.cpp
@@ -65,7 +65,7 @@ void TileMapEditor::_notification(int p_what) {
paint_button->set_icon(get_theme_icon("Edit", "EditorIcons"));
line_button->set_icon(get_theme_icon("CurveLinear", "EditorIcons"));
- rectangle_button->set_icon(get_theme_icon("RectangleShape2D", "EditorIcons"));
+ rectangle_button->set_icon(get_theme_icon("Rectangle", "EditorIcons"));
bucket_fill_button->set_icon(get_theme_icon("Bucket", "EditorIcons"));
picker_button->set_icon(get_theme_icon("ColorPick", "EditorIcons"));
select_button->set_icon(get_theme_icon("ActionCopy", "EditorIcons"));
@@ -89,6 +89,25 @@ void TileMapEditor::_notification(int p_what) {
case NOTIFICATION_EXIT_TREE: {
get_tree()->disconnect("node_removed", callable_mp(this, &TileMapEditor::_node_removed));
} break;
+
+ case NOTIFICATION_APPLICATION_FOCUS_OUT: {
+ if (tool == TOOL_PAINTING) {
+ Vector<int> ids = get_selected_tiles();
+
+ if (ids.size() > 0 && ids[0] != TileMap::INVALID_CELL) {
+ _set_cell(over_tile, ids, flip_h, flip_v, transpose);
+ _finish_undo();
+
+ paint_undo.clear();
+ }
+
+ tool = TOOL_NONE;
+ _update_button_tool();
+ }
+
+ // set flag to ignore over_tile on refocus
+ refocus_over_tile = true;
+ } break;
}
}
@@ -802,7 +821,6 @@ void TileMapEditor::_draw_cell(Control *p_viewport, int p_cell, const Point2i &p
r.size = node->get_tileset()->autotile_get_size(p_cell);
r.position += (r.size + Vector2(spacing, spacing)) * offset;
}
- Size2 sc = p_xform.get_scale();
Size2 cell_size = node->get_cell_size();
bool centered_texture = node->is_centered_textures_enabled();
bool compatibility_mode_enabled = node->is_compatibility_mode_enabled();
@@ -838,12 +856,12 @@ void TileMapEditor::_draw_cell(Control *p_viewport, int p_cell, const Point2i &p
}
if (p_flip_h) {
- sc.x *= -1.0;
+ rect.size.x *= -1.0;
tile_ofs.x *= -1.0;
}
if (p_flip_v) {
- sc.y *= -1.0;
+ rect.size.y *= -1.0;
tile_ofs.y *= -1.0;
}
@@ -886,17 +904,17 @@ void TileMapEditor::_draw_cell(Control *p_viewport, int p_cell, const Point2i &p
rect.position += tile_ofs;
}
- rect.position = p_xform.xform(rect.position);
- rect.size *= sc;
-
Color modulate = node->get_tileset()->tile_get_modulate(p_cell);
modulate.a = 0.5;
+ Transform2D old_transform = p_viewport->get_viewport_transform();
+ p_viewport->draw_set_transform_matrix(p_xform); // Take into account TileMap transformation when displaying cell
if (r.has_no_area()) {
p_viewport->draw_texture_rect(t, rect, false, modulate, p_transpose);
} else {
p_viewport->draw_texture_rect_region(t, rect, r, modulate, p_transpose);
}
+ p_viewport->draw_set_transform_matrix(old_transform);
}
void TileMapEditor::_draw_fill_preview(Control *p_viewport, int p_cell, const Point2i &p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Point2i &p_autotile_coord, const Transform2D &p_xform) {
@@ -1300,6 +1318,12 @@ bool TileMapEditor::forward_gui_input(const Ref<InputEvent> &p_event) {
CanvasItemEditor::get_singleton()->update_viewport();
}
+ if (refocus_over_tile) {
+ // editor lost focus; forget last tile position
+ old_over_tile = new_over_tile;
+ refocus_over_tile = false;
+ }
+
int tile_under = node->get_cell(over_tile.x, over_tile.y);
String tile_name = "none";
diff --git a/editor/plugins/tile_map_editor_plugin.h b/editor/plugins/tile_map_editor_plugin.h
index 996e904853..f57616db1f 100644
--- a/editor/plugins/tile_map_editor_plugin.h
+++ b/editor/plugins/tile_map_editor_plugin.h
@@ -119,6 +119,7 @@ class TileMapEditor : public VBoxContainer {
Rect2i rectangle;
Point2i over_tile;
+ bool refocus_over_tile = false;
bool *bucket_cache_visited;
Rect2i bucket_cache_rect;
diff --git a/editor/plugins/tile_set_editor_plugin.cpp b/editor/plugins/tile_set_editor_plugin.cpp
index 7fb751e3ed..684d8f0f10 100644
--- a/editor/plugins/tile_set_editor_plugin.cpp
+++ b/editor/plugins/tile_set_editor_plugin.cpp
@@ -342,11 +342,13 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) {
left_container->add_child(tileset_toolbar_container);
tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE] = memnew(Button);
+ tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->set_flat(true);
tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tileset_toolbar_button_pressed), varray(TOOL_TILESET_ADD_TEXTURE));
tileset_toolbar_container->add_child(tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]);
tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->set_tooltip(TTR("Add Texture(s) to TileSet."));
tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE] = memnew(Button);
+ tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->set_flat(true);
tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tileset_toolbar_button_pressed), varray(TOOL_TILESET_REMOVE_TEXTURE));
tileset_toolbar_container->add_child(tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]);
tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->set_tooltip(TTR("Remove selected Texture from TileSet."));
@@ -405,12 +407,14 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) {
tools[SELECT_NEXT] = memnew(Button);
tool_hb->add_child(tools[SELECT_NEXT]);
tool_hb->move_child(tools[SELECT_NEXT], WORKSPACE_CREATE_SINGLE);
+ tools[SELECT_NEXT]->set_flat(true);
tools[SELECT_NEXT]->set_shortcut(ED_SHORTCUT("tileset_editor/next_shape", TTR("Next Coordinate"), KEY_PAGEDOWN));
tools[SELECT_NEXT]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(SELECT_NEXT));
tools[SELECT_NEXT]->set_tooltip(TTR("Select the next shape, subtile, or Tile."));
tools[SELECT_PREVIOUS] = memnew(Button);
tool_hb->add_child(tools[SELECT_PREVIOUS]);
tool_hb->move_child(tools[SELECT_PREVIOUS], WORKSPACE_CREATE_SINGLE);
+ tools[SELECT_PREVIOUS]->set_flat(true);
tools[SELECT_PREVIOUS]->set_shortcut(ED_SHORTCUT("tileset_editor/previous_shape", TTR("Previous Coordinate"), KEY_PAGEUP));
tools[SELECT_PREVIOUS]->set_tooltip(TTR("Select the previous shape, subtile, or Tile."));
tools[SELECT_PREVIOUS]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(SELECT_PREVIOUS));
@@ -467,6 +471,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) {
tools[TOOL_SELECT] = memnew(Button);
toolbar->add_child(tools[TOOL_SELECT]);
+ tools[TOOL_SELECT]->set_flat(true);
tools[TOOL_SELECT]->set_toggle_mode(true);
tools[TOOL_SELECT]->set_button_group(tg);
tools[TOOL_SELECT]->set_pressed(true);
@@ -475,20 +480,24 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) {
separator_bitmask = memnew(VSeparator);
toolbar->add_child(separator_bitmask);
tools[BITMASK_COPY] = memnew(Button);
+ tools[BITMASK_COPY]->set_flat(true);
tools[BITMASK_COPY]->set_tooltip(TTR("Copy bitmask."));
tools[BITMASK_COPY]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(BITMASK_COPY));
toolbar->add_child(tools[BITMASK_COPY]);
tools[BITMASK_PASTE] = memnew(Button);
+ tools[BITMASK_PASTE]->set_flat(true);
tools[BITMASK_PASTE]->set_tooltip(TTR("Paste bitmask."));
tools[BITMASK_PASTE]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(BITMASK_PASTE));
toolbar->add_child(tools[BITMASK_PASTE]);
tools[BITMASK_CLEAR] = memnew(Button);
+ tools[BITMASK_CLEAR]->set_flat(true);
tools[BITMASK_CLEAR]->set_tooltip(TTR("Erase bitmask."));
tools[BITMASK_CLEAR]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(BITMASK_CLEAR));
toolbar->add_child(tools[BITMASK_CLEAR]);
tools[SHAPE_NEW_RECTANGLE] = memnew(Button);
toolbar->add_child(tools[SHAPE_NEW_RECTANGLE]);
+ tools[SHAPE_NEW_RECTANGLE]->set_flat(true);
tools[SHAPE_NEW_RECTANGLE]->set_toggle_mode(true);
tools[SHAPE_NEW_RECTANGLE]->set_button_group(tg);
tools[SHAPE_NEW_RECTANGLE]->set_tooltip(TTR("Create a new rectangle."));
@@ -496,6 +505,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) {
tools[SHAPE_NEW_POLYGON] = memnew(Button);
toolbar->add_child(tools[SHAPE_NEW_POLYGON]);
+ tools[SHAPE_NEW_POLYGON]->set_flat(true);
tools[SHAPE_NEW_POLYGON]->set_toggle_mode(true);
tools[SHAPE_NEW_POLYGON]->set_button_group(tg);
tools[SHAPE_NEW_POLYGON]->set_tooltip(TTR("Create a new polygon."));
@@ -504,12 +514,14 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) {
separator_shape_toggle = memnew(VSeparator);
toolbar->add_child(separator_shape_toggle);
tools[SHAPE_TOGGLE_TYPE] = memnew(Button);
+ tools[SHAPE_TOGGLE_TYPE]->set_flat(true);
tools[SHAPE_TOGGLE_TYPE]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(SHAPE_TOGGLE_TYPE));
toolbar->add_child(tools[SHAPE_TOGGLE_TYPE]);
separator_delete = memnew(VSeparator);
toolbar->add_child(separator_delete);
tools[SHAPE_DELETE] = memnew(Button);
+ tools[SHAPE_DELETE]->set_flat(true);
tools[SHAPE_DELETE]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(SHAPE_DELETE));
toolbar->add_child(tools[SHAPE_DELETE]);
@@ -534,11 +546,13 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) {
separator_grid = memnew(VSeparator);
toolbar->add_child(separator_grid);
tools[SHAPE_KEEP_INSIDE_TILE] = memnew(Button);
+ tools[SHAPE_KEEP_INSIDE_TILE]->set_flat(true);
tools[SHAPE_KEEP_INSIDE_TILE]->set_toggle_mode(true);
tools[SHAPE_KEEP_INSIDE_TILE]->set_pressed(true);
tools[SHAPE_KEEP_INSIDE_TILE]->set_tooltip(TTR("Keep polygon inside region Rect."));
toolbar->add_child(tools[SHAPE_KEEP_INSIDE_TILE]);
tools[TOOL_GRID_SNAP] = memnew(Button);
+ tools[TOOL_GRID_SNAP]->set_flat(true);
tools[TOOL_GRID_SNAP]->set_toggle_mode(true);
tools[TOOL_GRID_SNAP]->set_tooltip(TTR("Enable snap and show grid (configurable via the Inspector)."));
tools[TOOL_GRID_SNAP]->connect("toggled", callable_mp(this, &TileSetEditor::_on_grid_snap_toggled));
@@ -549,19 +563,23 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) {
toolbar->add_child(separator);
tools[ZOOM_OUT] = memnew(Button);
+ tools[ZOOM_OUT]->set_flat(true);
tools[ZOOM_OUT]->connect("pressed", callable_mp(this, &TileSetEditor::_zoom_out));
toolbar->add_child(tools[ZOOM_OUT]);
tools[ZOOM_OUT]->set_tooltip(TTR("Zoom Out"));
tools[ZOOM_1] = memnew(Button);
+ tools[ZOOM_1]->set_flat(true);
tools[ZOOM_1]->connect("pressed", callable_mp(this, &TileSetEditor::_zoom_reset));
toolbar->add_child(tools[ZOOM_1]);
tools[ZOOM_1]->set_tooltip(TTR("Zoom Reset"));
tools[ZOOM_IN] = memnew(Button);
+ tools[ZOOM_IN]->set_flat(true);
tools[ZOOM_IN]->connect("pressed", callable_mp(this, &TileSetEditor::_zoom_in));
toolbar->add_child(tools[ZOOM_IN]);
tools[ZOOM_IN]->set_tooltip(TTR("Zoom In"));
tools[VISIBLE_INFO] = memnew(Button);
+ tools[VISIBLE_INFO]->set_flat(true);
tools[VISIBLE_INFO]->set_toggle_mode(true);
tools[VISIBLE_INFO]->set_tooltip(TTR("Display Tile Names (Hold Alt Key)"));
toolbar->add_child(tools[VISIBLE_INFO]);
@@ -698,7 +716,7 @@ void TileSetEditor::_on_tileset_toolbar_confirm() {
List<int> ids;
tileset->get_tile_list(&ids);
- undo_redo->create_action(TTR(option == TOOL_TILESET_MERGE_SCENE ? "Merge Tileset from Scene" : "Create Tileset from Scene"));
+ undo_redo->create_action(option == TOOL_TILESET_MERGE_SCENE ? TTR("Merge Tileset from Scene") : TTR("Create Tileset from Scene"));
undo_redo->add_do_method(this, "_undo_redo_import_scene", scene, option == TOOL_TILESET_MERGE_SCENE);
undo_redo->add_undo_method(tileset.ptr(), "clear");
for (List<int>::Element *E = ids.front(); E; E = E->next()) {
@@ -3091,6 +3109,7 @@ Vector2 TileSetEditor::snap_point(const Vector2 &point) {
anchor += tileset->tile_get_region(get_current_tile()).position;
anchor += WORKSPACE_MARGIN;
Rect2 region(anchor, tile_size);
+ Rect2 tile_region(tileset->tile_get_region(get_current_tile()).position + WORKSPACE_MARGIN, tileset->tile_get_region(get_current_tile()).size);
if (tileset->tile_get_tile_mode(get_current_tile()) == TileSet::SINGLE_TILE) {
region.position = tileset->tile_get_region(get_current_tile()).position + WORKSPACE_MARGIN;
region.size = tileset->tile_get_region(get_current_tile()).size;
@@ -3100,6 +3119,7 @@ Vector2 TileSetEditor::snap_point(const Vector2 &point) {
p.x = Math::snap_scalar_separation(snap_offset.x, snap_step.x, p.x, snap_separation.x);
p.y = Math::snap_scalar_separation(snap_offset.y, snap_step.y, p.y, snap_separation.y);
}
+
if (tools[SHAPE_KEEP_INSIDE_TILE]->is_pressed()) {
if (p.x < region.position.x) {
p.x = region.position.x;
@@ -3114,6 +3134,20 @@ Vector2 TileSetEditor::snap_point(const Vector2 &point) {
p.y = region.position.y + region.size.y;
}
}
+
+ if (p.x < tile_region.position.x) {
+ p.x = tile_region.position.x;
+ }
+ if (p.y < tile_region.position.y) {
+ p.y = tile_region.position.y;
+ }
+ if (p.x > (tile_region.position.x + tile_region.size.x)) {
+ p.x = (tile_region.position.x + tile_region.size.x);
+ }
+ if (p.y > (tile_region.position.y + tile_region.size.y)) {
+ p.y = (tile_region.position.y + tile_region.size.y);
+ }
+
return p;
}
diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp
index d987f6f7c0..ddcba18a78 100644
--- a/editor/plugins/visual_shader_editor_plugin.cpp
+++ b/editor/plugins/visual_shader_editor_plugin.cpp
@@ -47,6 +47,27 @@
#include "servers/display_server.h"
#include "servers/rendering/shader_types.h"
+struct FloatConstantDef {
+ String name;
+ float value;
+ String desc;
+};
+
+static FloatConstantDef float_constant_defs[] = {
+ { "E", Math_E, TTR("E constant (2.718282). Represents the base of the natural logarithm.") },
+ { "Epsilon", CMP_EPSILON, TTR("Epsilon constant (0.00001). Smallest possible scalar number.") },
+ { "Phi", 1.618034f, TTR("Phi constant (1.618034). Golden ratio.") },
+ { "Pi/4", Math_PI / 4, TTR("Pi/4 constant (0.785398) or 45 degrees.") },
+ { "Pi/2", Math_PI / 2, TTR("Pi/2 constant (1.570796) or 90 degrees.") },
+ { "Pi", Math_PI, TTR("Pi constant (3.141593) or 180 degrees.") },
+ { "Tau", Math_TAU, TTR("Tau constant (6.283185) or 360 degrees.") },
+ { "Sqrt2", Math_SQRT2, TTR("Sqrt2 constant (1.414214). Square root of 2.") }
+};
+
+const int MAX_FLOAT_CONST_DEFS = sizeof(float_constant_defs) / sizeof(FloatConstantDef);
+
+///////////////////
+
Control *VisualShaderNodePlugin::create_editor(const Ref<Resource> &p_parent_resource, const Ref<VisualShaderNode> &p_node) {
if (get_script_instance()) {
return get_script_instance()->call("create_editor", p_parent_resource, p_node);
@@ -60,6 +81,694 @@ void VisualShaderNodePlugin::_bind_methods() {
///////////////////
+static Ref<StyleBoxEmpty> make_empty_stylebox(float p_margin_left = -1, float p_margin_top = -1, float p_margin_right = -1, float p_margin_bottom = -1) {
+ Ref<StyleBoxEmpty> style(memnew(StyleBoxEmpty));
+ style->set_default_margin(MARGIN_LEFT, p_margin_left * EDSCALE);
+ style->set_default_margin(MARGIN_RIGHT, p_margin_right * EDSCALE);
+ style->set_default_margin(MARGIN_BOTTOM, p_margin_bottom * EDSCALE);
+ style->set_default_margin(MARGIN_TOP, p_margin_top * EDSCALE);
+ return style;
+}
+
+///////////////////
+
+VisualShaderGraphPlugin::VisualShaderGraphPlugin() {
+}
+
+void VisualShaderGraphPlugin::_bind_methods() {
+ ClassDB::bind_method("add_node", &VisualShaderGraphPlugin::add_node);
+ ClassDB::bind_method("remove_node", &VisualShaderGraphPlugin::remove_node);
+ ClassDB::bind_method("connect_nodes", &VisualShaderGraphPlugin::connect_nodes);
+ ClassDB::bind_method("disconnect_nodes", &VisualShaderGraphPlugin::disconnect_nodes);
+ ClassDB::bind_method("set_node_position", &VisualShaderGraphPlugin::set_node_position);
+ ClassDB::bind_method("set_node_size", &VisualShaderGraphPlugin::set_node_size);
+ ClassDB::bind_method("show_port_preview", &VisualShaderGraphPlugin::show_port_preview);
+ ClassDB::bind_method("update_node", &VisualShaderGraphPlugin::update_node);
+ ClassDB::bind_method("update_node_deferred", &VisualShaderGraphPlugin::update_node_deferred);
+ ClassDB::bind_method("set_input_port_default_value", &VisualShaderGraphPlugin::set_input_port_default_value);
+ ClassDB::bind_method("set_uniform_name", &VisualShaderGraphPlugin::set_uniform_name);
+ ClassDB::bind_method("set_expression", &VisualShaderGraphPlugin::set_expression);
+ ClassDB::bind_method("update_curve", &VisualShaderGraphPlugin::update_curve);
+ ClassDB::bind_method("update_constant", &VisualShaderGraphPlugin::update_constant);
+}
+
+void VisualShaderGraphPlugin::register_shader(VisualShader *p_shader) {
+ visual_shader = Ref<VisualShader>(p_shader);
+}
+
+void VisualShaderGraphPlugin::set_connections(List<VisualShader::Connection> &p_connections) {
+ connections = p_connections;
+}
+
+void VisualShaderGraphPlugin::show_port_preview(VisualShader::Type p_type, int p_node_id, int p_port_id) {
+ if (visual_shader->get_shader_type() == p_type && links.has(p_node_id)) {
+ for (Map<int, Port>::Element *E = links[p_node_id].output_ports.front(); E; E = E->next()) {
+ E->value().preview_button->set_pressed(false);
+ }
+
+ if (links[p_node_id].preview_visible && !is_dirty() && links[p_node_id].preview_box != nullptr) {
+ links[p_node_id].graph_node->remove_child(links[p_node_id].preview_box);
+ memdelete(links[p_node_id].preview_box);
+ links[p_node_id].graph_node->set_size(Vector2(-1, -1));
+ links[p_node_id].preview_visible = false;
+ }
+
+ if (p_port_id != -1) {
+ if (is_dirty()) {
+ links[p_node_id].preview_pos = links[p_node_id].graph_node->get_child_count();
+ }
+
+ VBoxContainer *vbox = memnew(VBoxContainer);
+ links[p_node_id].graph_node->add_child(vbox);
+ if (links[p_node_id].preview_pos != -1) {
+ links[p_node_id].graph_node->move_child(vbox, links[p_node_id].preview_pos);
+ }
+
+ Control *offset = memnew(Control);
+ offset->set_custom_minimum_size(Size2(0, 5 * EDSCALE));
+ vbox->add_child(offset);
+
+ VisualShaderNodePortPreview *port_preview = memnew(VisualShaderNodePortPreview);
+ port_preview->setup(visual_shader, visual_shader->get_shader_type(), p_node_id, p_port_id);
+ port_preview->set_h_size_flags(Control::SIZE_SHRINK_CENTER);
+ vbox->add_child(port_preview);
+ links[p_node_id].preview_visible = true;
+ links[p_node_id].preview_box = vbox;
+ links[p_node_id].output_ports[p_port_id].preview_button->set_pressed(true);
+ }
+ }
+}
+
+void VisualShaderGraphPlugin::update_node_deferred(VisualShader::Type p_type, int p_node_id) {
+ call_deferred("update_node", p_type, p_node_id);
+}
+
+void VisualShaderGraphPlugin::update_node(VisualShader::Type p_type, int p_node_id) {
+ if (p_type != visual_shader->get_shader_type() || !links.has(p_node_id)) {
+ return;
+ }
+ remove_node(p_type, p_node_id);
+ add_node(p_type, p_node_id);
+}
+
+void VisualShaderGraphPlugin::set_input_port_default_value(VisualShader::Type p_type, int p_node_id, int p_port_id, Variant p_value) {
+ if (p_type != visual_shader->get_shader_type() || !links.has(p_node_id)) {
+ return;
+ }
+
+ Button *button = links[p_node_id].input_ports[p_port_id].default_input_button;
+
+ switch (p_value.get_type()) {
+ case Variant::COLOR: {
+ button->set_custom_minimum_size(Size2(30, 0) * EDSCALE);
+ if (!button->is_connected("draw", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_draw_color_over_button))) {
+ button->connect("draw", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_draw_color_over_button), varray(button, p_value));
+ }
+ } break;
+ case Variant::BOOL: {
+ button->set_text(((bool)p_value) ? "true" : "false");
+ } break;
+ case Variant::INT:
+ case Variant::FLOAT: {
+ button->set_text(String::num(p_value, 4));
+ } break;
+ case Variant::VECTOR3: {
+ Vector3 v = p_value;
+ button->set_text(String::num(v.x, 3) + "," + String::num(v.y, 3) + "," + String::num(v.z, 3));
+ } break;
+ default: {
+ }
+ }
+}
+
+void VisualShaderGraphPlugin::set_uniform_name(VisualShader::Type p_type, int p_node_id, const String &p_name) {
+ if (visual_shader->get_shader_type() == p_type && links.has(p_node_id) && links[p_node_id].uniform_name != nullptr) {
+ links[p_node_id].uniform_name->set_text(p_name);
+ }
+}
+
+void VisualShaderGraphPlugin::update_curve(int p_node_id) {
+ if (links.has(p_node_id) && links[p_node_id].curve_editor) {
+ if (((VisualShaderNodeCurveTexture *)links[p_node_id].visual_node)->get_texture().is_valid()) {
+ links[p_node_id].curve_editor->set_curve(((VisualShaderNodeCurveTexture *)links[p_node_id].visual_node)->get_texture()->get_curve());
+ }
+ }
+}
+
+int VisualShaderGraphPlugin::get_constant_index(float p_constant) const {
+ for (int i = 0; i < MAX_FLOAT_CONST_DEFS; i++) {
+ if (Math::is_equal_approx(p_constant, float_constant_defs[i].value)) {
+ return i + 1;
+ }
+ }
+ 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;
+ }
+ links[p_node_id].expression_edit->set_text(p_expression);
+}
+
+void VisualShaderGraphPlugin::update_node_size(int p_node_id) {
+ if (!links.has(p_node_id)) {
+ return;
+ }
+ links[p_node_id].graph_node->set_size(Size2(-1, -1));
+}
+
+void VisualShaderGraphPlugin::register_default_input_button(int p_node_id, int p_port_id, Button *p_button) {
+ 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;
+}
+
+void VisualShaderGraphPlugin::register_curve_editor(int p_node_id, CurveEditor *p_curve_editor) {
+ links[p_node_id].curve_editor = p_curve_editor;
+}
+
+void VisualShaderGraphPlugin::update_uniform_refs() {
+ for (Map<int, Link>::Element *E = links.front(); E; E = E->next()) {
+ VisualShaderNodeUniformRef *ref = Object::cast_to<VisualShaderNodeUniformRef>(E->get().visual_node);
+ if (ref) {
+ remove_node(E->get().type, E->key());
+ add_node(E->get().type, E->key());
+ }
+ }
+}
+
+VisualShader::Type VisualShaderGraphPlugin::get_shader_type() const {
+ return visual_shader->get_shader_type();
+}
+
+void VisualShaderGraphPlugin::set_node_position(VisualShader::Type p_type, int p_id, const Vector2 &p_position) {
+ if (visual_shader->get_shader_type() == p_type && links.has(p_id)) {
+ links[p_id].graph_node->set_offset(p_position);
+ }
+}
+
+void VisualShaderGraphPlugin::set_node_size(VisualShader::Type p_type, int p_id, const Vector2 &p_size) {
+ if (visual_shader->get_shader_type() == p_type && links.has(p_id)) {
+ links[p_id].graph_node->set_size(p_size);
+ }
+}
+
+bool VisualShaderGraphPlugin::is_preview_visible(int p_id) const {
+ return links[p_id].preview_visible;
+}
+
+void VisualShaderGraphPlugin::clear_links() {
+ links.clear();
+}
+
+bool VisualShaderGraphPlugin::is_dirty() const {
+ return dirty;
+}
+
+void VisualShaderGraphPlugin::make_dirty(bool p_enabled) {
+ dirty = 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 });
+}
+
+void VisualShaderGraphPlugin::register_output_port(int p_node_id, int p_port, TextureButton *p_button) {
+ links[p_node_id].output_ports.insert(p_port, { p_button });
+}
+
+void VisualShaderGraphPlugin::register_uniform_name(int p_node_id, LineEdit *p_uniform_name) {
+ links[p_node_id].uniform_name = p_uniform_name;
+}
+
+void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
+ if (p_type != visual_shader->get_shader_type()) {
+ return;
+ }
+
+ Control *offset;
+
+ static Ref<StyleBoxEmpty> label_style = make_empty_stylebox(2, 1, 2, 1);
+
+ static const Color type_color[6] = {
+ Color(0.38, 0.85, 0.96), // scalar (float)
+ Color(0.49, 0.78, 0.94), // scalar (int)
+ Color(0.84, 0.49, 0.93), // vector
+ Color(0.55, 0.65, 0.94), // boolean
+ Color(0.96, 0.66, 0.43), // transform
+ Color(1.0, 1.0, 0.0), // sampler
+ };
+
+ Ref<VisualShaderNode> vsnode = visual_shader->get_node(p_type, p_id);
+
+ Ref<VisualShaderNodeResizableBase> resizable_node = Object::cast_to<VisualShaderNodeResizableBase>(vsnode.ptr());
+ bool is_resizable = !resizable_node.is_null();
+ Size2 size = Size2(0, 0);
+
+ Ref<VisualShaderNodeGroupBase> group_node = Object::cast_to<VisualShaderNodeGroupBase>(vsnode.ptr());
+ bool is_group = !group_node.is_null();
+
+ Ref<VisualShaderNodeExpression> expression_node = Object::cast_to<VisualShaderNodeExpression>(group_node.ptr());
+ bool is_expression = !expression_node.is_null();
+ String expression = "";
+
+ GraphNode *node = memnew(GraphNode);
+ register_link(p_type, p_id, vsnode.ptr(), node);
+
+ if (is_resizable) {
+ size = resizable_node->get_size();
+
+ node->set_resizable(true);
+ node->connect("resize_request", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_node_resized), varray((int)p_type, p_id));
+ }
+ if (is_expression) {
+ expression = expression_node->get_expression();
+ }
+
+ node->set_offset(visual_shader->get_node_position(p_type, p_id));
+ node->set_title(vsnode->get_caption());
+ node->set_name(itos(p_id));
+
+ if (p_id >= 2) {
+ node->set_show_close_button(true);
+ node->connect("close_request", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_delete_node_request), varray(p_type, p_id), CONNECT_DEFERRED);
+ }
+
+ node->connect("dragged", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_node_dragged), varray(p_id));
+
+ Control *custom_editor = nullptr;
+ int port_offset = 0;
+
+ if (is_group) {
+ port_offset += 2;
+ }
+
+ Ref<VisualShaderNodeUniform> uniform = vsnode;
+ if (uniform.is_valid()) {
+ VisualShaderEditor::get_singleton()->graph->add_child(node);
+ VisualShaderEditor::get_singleton()->_update_created_node(node);
+
+ LineEdit *uniform_name = memnew(LineEdit);
+ register_uniform_name(p_id, uniform_name);
+ uniform_name->set_text(uniform->get_uniform_name());
+ node->add_child(uniform_name);
+ uniform_name->connect("text_entered", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_uniform_line_edit_changed), varray(p_id));
+ uniform_name->connect("focus_exited", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_uniform_line_edit_focus_out), varray(uniform_name, p_id));
+
+ if (vsnode->get_input_port_count() == 0 && vsnode->get_output_port_count() == 1 && vsnode->get_output_port_name(0) == "") {
+ //shortcut
+ VisualShaderNode::PortType port_right = vsnode->get_output_port_type(0);
+ node->set_slot(0, false, VisualShaderNode::PORT_TYPE_SCALAR, Color(), true, port_right, type_color[port_right]);
+ if (!vsnode->is_use_prop_slots()) {
+ return;
+ }
+ }
+ port_offset++;
+ }
+
+ for (int i = 0; i < VisualShaderEditor::get_singleton()->plugins.size(); i++) {
+ vsnode->set_meta("id", p_id);
+ vsnode->set_meta("shader_type", (int)p_type);
+ custom_editor = VisualShaderEditor::get_singleton()->plugins.write[i]->create_editor(visual_shader, vsnode);
+ vsnode->remove_meta("id");
+ vsnode->remove_meta("shader_type");
+ if (custom_editor) {
+ if (vsnode->is_show_prop_names()) {
+ custom_editor->call_deferred("_show_prop_names", true);
+ }
+ break;
+ }
+ }
+
+ Ref<VisualShaderNodeCurveTexture> curve = vsnode;
+ if (curve.is_valid()) {
+ if (curve->get_texture().is_valid() && !curve->get_texture()->is_connected("changed", callable_mp(VisualShaderEditor::get_singleton()->get_graph_plugin(), &VisualShaderGraphPlugin::update_curve))) {
+ curve->get_texture()->connect("changed", callable_mp(VisualShaderEditor::get_singleton()->get_graph_plugin(), &VisualShaderGraphPlugin::update_curve), varray(p_id));
+ }
+
+ HBoxContainer *hbox = memnew(HBoxContainer);
+ custom_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ hbox->add_child(custom_editor);
+ custom_editor = hbox;
+ }
+
+ Ref<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) {
+ port_offset++;
+ node->add_child(custom_editor);
+
+ if (curve.is_valid()) {
+ VisualShaderEditor::get_singleton()->graph->add_child(node);
+ VisualShaderEditor::get_singleton()->_update_created_node(node);
+
+ CurveEditor *curve_editor = memnew(CurveEditor);
+ node->add_child(curve_editor);
+ register_curve_editor(p_id, curve_editor);
+ curve_editor->set_custom_minimum_size(Size2(300, 0));
+ curve_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ if (curve->get_texture().is_valid()) {
+ curve_editor->set_curve(curve->get_texture()->get_curve());
+ }
+
+ TextureButton *preview = memnew(TextureButton);
+ preview->set_toggle_mode(true);
+ preview->set_normal_texture(VisualShaderEditor::get_singleton()->get_theme_icon("GuiVisibilityHidden", "EditorIcons"));
+ preview->set_pressed_texture(VisualShaderEditor::get_singleton()->get_theme_icon("GuiVisibilityVisible", "EditorIcons"));
+ preview->set_v_size_flags(Control::SIZE_SHRINK_CENTER);
+
+ register_output_port(p_id, 0, preview);
+
+ preview->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_preview_select_port), varray(p_id, 0), CONNECT_DEFERRED);
+ custom_editor->add_child(preview);
+
+ 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]);
+
+ VisualShaderEditor::get_singleton()->call_deferred("_set_node_size", (int)p_type, p_id, size);
+ }
+ if (vsnode->is_use_prop_slots()) {
+ 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);
+
+ Button *add_input_btn = memnew(Button);
+ add_input_btn->set_text(TTR("Add Input"));
+ add_input_btn->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_add_input_port), varray(p_id, group_node->get_free_input_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "input" + itos(group_node->get_free_input_port_id())), CONNECT_DEFERRED);
+ hb2->add_child(add_input_btn);
+
+ hb2->add_spacer();
+
+ Button *add_output_btn = memnew(Button);
+ add_output_btn->set_text(TTR("Add Output"));
+ add_output_btn->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_add_output_port), varray(p_id, group_node->get_free_output_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "output" + itos(group_node->get_free_output_port_id())), CONNECT_DEFERRED);
+ hb2->add_child(add_output_btn);
+
+ node->add_child(hb2);
+ }
+ }
+
+ for (int i = 0; i < MAX(vsnode->get_input_port_count(), vsnode->get_output_port_count()); i++) {
+ if (vsnode->is_port_separator(i)) {
+ node->add_child(memnew(HSeparator));
+ port_offset++;
+ }
+
+ bool valid_left = i < vsnode->get_input_port_count();
+ VisualShaderNode::PortType port_left = VisualShaderNode::PORT_TYPE_SCALAR;
+ bool port_left_used = false;
+ String name_left;
+ if (valid_left) {
+ name_left = vsnode->get_input_port_name(i);
+ port_left = vsnode->get_input_port_type(i);
+ for (List<VisualShader::Connection>::Element *E = connections.front(); E; E = E->next()) {
+ if (E->get().to_node == p_id && E->get().to_port == i) {
+ port_left_used = true;
+ }
+ }
+ }
+
+ bool valid_right = i < vsnode->get_output_port_count();
+ VisualShaderNode::PortType port_right = VisualShaderNode::PORT_TYPE_SCALAR;
+ String name_right;
+ if (valid_right) {
+ name_right = vsnode->get_output_port_name(i);
+ port_right = vsnode->get_output_port_type(i);
+ }
+
+ HBoxContainer *hb = memnew(HBoxContainer);
+ hb->add_theme_constant_override("separation", 7 * EDSCALE);
+
+ Variant default_value;
+
+ if (valid_left && !port_left_used) {
+ default_value = vsnode->get_input_port_default_value(i);
+ }
+
+ Button *button = memnew(Button);
+ hb->add_child(button);
+ register_default_input_button(p_id, i, button);
+ button->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_edit_port_default_input), varray(button, p_id, i));
+ if (default_value.get_type() != Variant::NIL) { // only a label
+ set_input_port_default_value(p_type, p_id, i, default_value);
+ } else {
+ button->hide();
+ }
+
+ if (i == 0 && custom_editor) {
+ hb->add_child(custom_editor);
+ custom_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ } else {
+ if (valid_left) {
+ if (is_group) {
+ OptionButton *type_box = memnew(OptionButton);
+ hb->add_child(type_box);
+ type_box->add_item(TTR("Float"));
+ type_box->add_item(TTR("Int"));
+ type_box->add_item(TTR("Vector"));
+ type_box->add_item(TTR("Boolean"));
+ type_box->add_item(TTR("Transform"));
+ type_box->add_item(TTR("Sampler"));
+ type_box->select(group_node->get_input_port_type(i));
+ type_box->set_custom_minimum_size(Size2(100 * EDSCALE, 0));
+ type_box->connect("item_selected", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_change_input_port_type), varray(p_id, i), CONNECT_DEFERRED);
+
+ LineEdit *name_box = memnew(LineEdit);
+ hb->add_child(name_box);
+ name_box->set_custom_minimum_size(Size2(65 * EDSCALE, 0));
+ name_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ name_box->set_text(name_left);
+ name_box->connect("text_entered", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_change_input_port_name), varray(name_box, p_id, i));
+ name_box->connect("focus_exited", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_port_name_focus_out), varray(name_box, p_id, i, false));
+
+ Button *remove_btn = memnew(Button);
+ remove_btn->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon("Remove", "EditorIcons"));
+ remove_btn->set_tooltip(TTR("Remove") + " " + name_left);
+ remove_btn->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_remove_input_port), varray(p_id, i), CONNECT_DEFERRED);
+ hb->add_child(remove_btn);
+ } else {
+ Label *label = memnew(Label);
+ label->set_text(name_left);
+ label->add_theme_style_override("normal", label_style); //more compact
+ hb->add_child(label);
+
+ if (vsnode->get_input_port_default_hint(i) != "" && !port_left_used) {
+ Label *hint_label = memnew(Label);
+ hint_label->set_text("[" + vsnode->get_input_port_default_hint(i) + "]");
+ hint_label->add_theme_color_override("font_color", VisualShaderEditor::get_singleton()->get_theme_color("font_color_readonly", "TextEdit"));
+ hint_label->add_theme_style_override("normal", label_style);
+ hb->add_child(hint_label);
+ }
+ }
+ }
+
+ if (!is_group) {
+ hb->add_spacer();
+ }
+
+ if (valid_right) {
+ if (is_group) {
+ Button *remove_btn = memnew(Button);
+ remove_btn->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon("Remove", "EditorIcons"));
+ remove_btn->set_tooltip(TTR("Remove") + " " + name_left);
+ remove_btn->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_remove_output_port), varray(p_id, i), CONNECT_DEFERRED);
+ hb->add_child(remove_btn);
+
+ LineEdit *name_box = memnew(LineEdit);
+ hb->add_child(name_box);
+ name_box->set_custom_minimum_size(Size2(65 * EDSCALE, 0));
+ name_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ name_box->set_text(name_right);
+ name_box->connect("text_entered", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_change_output_port_name), varray(name_box, p_id, i));
+ name_box->connect("focus_exited", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_port_name_focus_out), varray(name_box, p_id, i, true));
+
+ OptionButton *type_box = memnew(OptionButton);
+ hb->add_child(type_box);
+ type_box->add_item(TTR("Float"));
+ type_box->add_item(TTR("Int"));
+ type_box->add_item(TTR("Vector"));
+ type_box->add_item(TTR("Boolean"));
+ type_box->add_item(TTR("Transform"));
+ type_box->select(group_node->get_output_port_type(i));
+ type_box->set_custom_minimum_size(Size2(100 * EDSCALE, 0));
+ type_box->connect("item_selected", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_change_output_port_type), varray(p_id, i), CONNECT_DEFERRED);
+ } else {
+ Label *label = memnew(Label);
+ label->set_text(name_right);
+ label->add_theme_style_override("normal", label_style); //more compact
+ hb->add_child(label);
+ }
+ }
+ }
+
+ if (valid_right && visual_shader->get_shader_type() == VisualShader::TYPE_FRAGMENT && port_right != VisualShaderNode::PORT_TYPE_TRANSFORM && port_right != VisualShaderNode::PORT_TYPE_SAMPLER) {
+ TextureButton *preview = memnew(TextureButton);
+ preview->set_toggle_mode(true);
+ preview->set_normal_texture(VisualShaderEditor::get_singleton()->get_theme_icon("GuiVisibilityHidden", "EditorIcons"));
+ preview->set_pressed_texture(VisualShaderEditor::get_singleton()->get_theme_icon("GuiVisibilityVisible", "EditorIcons"));
+ preview->set_v_size_flags(Control::SIZE_SHRINK_CENTER);
+
+ register_output_port(p_id, i, preview);
+
+ preview->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_preview_select_port), varray(p_id, i), CONNECT_DEFERRED);
+ hb->add_child(preview);
+ }
+
+ if (is_group) {
+ offset = memnew(Control);
+ offset->set_custom_minimum_size(Size2(0, 5 * EDSCALE));
+ node->add_child(offset);
+ port_offset++;
+ }
+
+ node->add_child(hb);
+
+ node->set_slot(i + port_offset, valid_left, port_left, type_color[port_left], valid_right, port_right, type_color[port_right]);
+ }
+
+ if (vsnode->get_output_port_for_preview() >= 0) {
+ show_port_preview(p_type, p_id, vsnode->get_output_port_for_preview());
+ }
+
+ offset = memnew(Control);
+ offset->set_custom_minimum_size(Size2(0, 4 * EDSCALE));
+ node->add_child(offset);
+
+ 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("error_color", "Editor"));
+ error_label->set_text(error);
+ node->add_child(error_label);
+ }
+
+ if (is_expression) {
+ CodeEdit *expression_box = memnew(CodeEdit);
+ Ref<CodeHighlighter> expression_syntax_highlighter;
+ expression_syntax_highlighter.instance();
+ expression_node->set_control(expression_box, 0);
+ node->add_child(expression_box);
+ register_expression_edit(p_id, expression_box);
+
+ Color background_color = EDITOR_GET("text_editor/highlighting/background_color");
+ Color text_color = EDITOR_GET("text_editor/highlighting/text_color");
+ Color keyword_color = EDITOR_GET("text_editor/highlighting/keyword_color");
+ Color comment_color = EDITOR_GET("text_editor/highlighting/comment_color");
+ Color symbol_color = EDITOR_GET("text_editor/highlighting/symbol_color");
+ Color function_color = EDITOR_GET("text_editor/highlighting/function_color");
+ Color number_color = EDITOR_GET("text_editor/highlighting/number_color");
+ Color members_color = EDITOR_GET("text_editor/highlighting/member_variable_color");
+
+ expression_box->set_syntax_highlighter(expression_syntax_highlighter);
+ expression_box->add_theme_color_override("background_color", background_color);
+
+ for (List<String>::Element *E = VisualShaderEditor::get_singleton()->keyword_list.front(); E; E = E->next()) {
+ expression_syntax_highlighter->add_keyword_color(E->get(), keyword_color);
+ }
+
+ expression_box->add_theme_font_override("font", VisualShaderEditor::get_singleton()->get_theme_font("expression", "EditorFonts"));
+ expression_box->add_theme_color_override("font_color", text_color);
+ expression_syntax_highlighter->set_number_color(number_color);
+ expression_syntax_highlighter->set_symbol_color(symbol_color);
+ expression_syntax_highlighter->set_function_color(function_color);
+ expression_syntax_highlighter->set_member_variable_color(members_color);
+ expression_syntax_highlighter->add_color_region("/*", "*/", comment_color, false);
+ expression_syntax_highlighter->add_color_region("//", "", comment_color, true);
+
+ expression_box->set_text(expression);
+ expression_box->set_context_menu_enabled(false);
+ expression_box->set_draw_line_numbers(true);
+
+ expression_box->connect("focus_exited", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_expression_focus_out), varray(expression_box, p_id));
+ }
+
+ if (!uniform.is_valid()) {
+ VisualShaderEditor::get_singleton()->graph->add_child(node);
+ VisualShaderEditor::get_singleton()->_update_created_node(node);
+ if (is_resizable) {
+ VisualShaderEditor::get_singleton()->call_deferred("_set_node_size", (int)p_type, p_id, size);
+ }
+ }
+}
+
+void VisualShaderGraphPlugin::remove_node(VisualShader::Type p_type, int p_id) {
+ if (visual_shader->get_shader_type() == p_type && links.has(p_id)) {
+ links[p_id].graph_node->get_parent()->remove_child(links[p_id].graph_node);
+ memdelete(links[p_id].graph_node);
+ links.erase(p_id);
+ }
+}
+
+void VisualShaderGraphPlugin::connect_nodes(VisualShader::Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) {
+ if (visual_shader->get_shader_type() == p_type) {
+ VisualShaderEditor::get_singleton()->graph->connect_node(itos(p_from_node), p_from_port, itos(p_to_node), p_to_port);
+ if (links[p_to_node].input_ports.has(p_to_port) && links[p_to_node].input_ports[p_to_port].default_input_button != nullptr) {
+ links[p_to_node].input_ports[p_to_port].default_input_button->hide();
+ }
+ }
+}
+
+void VisualShaderGraphPlugin::disconnect_nodes(VisualShader::Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) {
+ if (visual_shader->get_shader_type() == p_type) {
+ VisualShaderEditor::get_singleton()->graph->disconnect_node(itos(p_from_node), p_from_port, itos(p_to_node), p_to_port);
+ if (links[p_to_node].input_ports.has(p_to_port) && links[p_to_node].input_ports[p_to_port].default_input_button != nullptr && links[p_to_node].visual_node->get_input_port_default_value(p_to_port).get_type() != Variant::NIL) {
+ links[p_to_node].input_ports[p_to_port].default_input_button->show();
+ set_input_port_default_value(p_type, p_to_node, p_to_port, links[p_to_node].visual_node->get_input_port_default_value(p_to_port));
+ }
+ }
+}
+
+VisualShaderGraphPlugin::~VisualShaderGraphPlugin() {
+}
+
+/////////////////
+
void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
bool changed = false;
if (p_visual_shader) {
@@ -71,6 +780,7 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
}
}
visual_shader = Ref<VisualShader>(p_visual_shader);
+ graph_plugin->register_shader(visual_shader.ptr());
if (!visual_shader->is_connected("changed", callable_mp(this, &VisualShaderEditor::_update_preview))) {
visual_shader->connect("changed", callable_mp(this, &VisualShaderEditor::_update_preview));
}
@@ -81,6 +791,7 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
}
#endif
visual_shader->set_graph_offset(graph->get_scroll_ofs() / EDSCALE);
+ _set_mode(visual_shader->get_mode());
} else {
if (visual_shader.is_valid()) {
if (visual_shader->is_connected("changed", callable_mp(this, &VisualShaderEditor::_update_preview))) {
@@ -97,8 +808,8 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
_clear_buffer();
_update_options_menu();
_update_preview();
+ _update_graph();
}
- _update_graph();
}
}
@@ -168,34 +879,18 @@ bool VisualShaderEditor::_is_available(int p_mode) {
if (p_mode != -1) {
switch (current_mode) {
- case VisualShader::TYPE_VERTEX:
+ case 0: // Vertex or Emit
current_mode = 1;
break;
- case VisualShader::TYPE_FRAGMENT:
+ case 1: // Fragment or Process
current_mode = 2;
break;
- case VisualShader::TYPE_LIGHT:
+ case 2: // Light or End
current_mode = 4;
break;
default:
break;
}
-
- int temp_mode = 0;
-
- if (p_mode & VisualShader::TYPE_FRAGMENT) {
- temp_mode |= 2;
- }
-
- if (p_mode & VisualShader::TYPE_LIGHT) {
- temp_mode |= 4;
- }
-
- if (temp_mode == 0) {
- temp_mode |= 1;
- }
-
- p_mode = temp_mode;
}
return (p_mode == -1 || (p_mode & current_mode) != 0);
@@ -404,6 +1099,21 @@ void VisualShaderEditor::_update_options_menu() {
}
}
+void VisualShaderEditor::_set_mode(int p_which) {
+ if (p_which == VisualShader::MODE_PARTICLES) {
+ edit_type_standart->set_visible(false);
+ edit_type_particles->set_visible(true);
+ edit_type = edit_type_particles;
+ particles_mode = true;
+ } else {
+ edit_type_particles->set_visible(false);
+ edit_type_standart->set_visible(true);
+ edit_type = edit_type_standart;
+ particles_mode = false;
+ }
+ visual_shader->set_shader_type(get_current_shader_type());
+}
+
Size2 VisualShaderEditor::get_minimum_size() const {
return Size2(10, 200);
}
@@ -418,15 +1128,6 @@ void VisualShaderEditor::_draw_color_over_button(Object *obj, Color p_color) {
button->draw_rect(Rect2(normal->get_offset(), button->get_size() - normal->get_minimum_size()), p_color);
}
-static Ref<StyleBoxEmpty> make_empty_stylebox(float p_margin_left = -1, float p_margin_top = -1, float p_margin_right = -1, float p_margin_bottom = -1) {
- Ref<StyleBoxEmpty> style(memnew(StyleBoxEmpty));
- style->set_default_margin(MARGIN_LEFT, p_margin_left * EDSCALE);
- style->set_default_margin(MARGIN_RIGHT, p_margin_right * EDSCALE);
- style->set_default_margin(MARGIN_BOTTOM, p_margin_bottom * EDSCALE);
- style->set_default_margin(MARGIN_TOP, p_margin_top * EDSCALE);
- return style;
-}
-
void VisualShaderEditor::_update_created_node(GraphNode *node) {
if (EditorSettings::get_singleton()->get("interface/theme/use_graph_node_headers")) {
Ref<StyleBoxFlat> sb = node->get_theme_stylebox("frame", "GraphNode");
@@ -450,6 +1151,69 @@ void VisualShaderEditor::_update_created_node(GraphNode *node) {
}
}
+void VisualShaderEditor::_update_uniforms(bool p_update_refs) {
+ VisualShaderNodeUniformRef::clear_uniforms();
+
+ for (int t = 0; t < VisualShader::TYPE_MAX; t++) {
+ Vector<int> tnodes = visual_shader->get_node_list((VisualShader::Type)t);
+ for (int i = 0; i < tnodes.size(); i++) {
+ Ref<VisualShaderNode> vsnode = visual_shader->get_node((VisualShader::Type)t, tnodes[i]);
+ Ref<VisualShaderNodeUniform> uniform = vsnode;
+
+ if (uniform.is_valid()) {
+ Ref<VisualShaderNodeFloatUniform> float_uniform = vsnode;
+ Ref<VisualShaderNodeIntUniform> int_uniform = vsnode;
+ Ref<VisualShaderNodeVec3Uniform> vec3_uniform = vsnode;
+ Ref<VisualShaderNodeColorUniform> color_uniform = vsnode;
+ Ref<VisualShaderNodeBooleanUniform> bool_uniform = vsnode;
+ Ref<VisualShaderNodeTransformUniform> transform_uniform = vsnode;
+
+ VisualShaderNodeUniformRef::UniformType uniform_type;
+ if (float_uniform.is_valid()) {
+ uniform_type = VisualShaderNodeUniformRef::UniformType::UNIFORM_TYPE_FLOAT;
+ } else if (int_uniform.is_valid()) {
+ uniform_type = VisualShaderNodeUniformRef::UniformType::UNIFORM_TYPE_INT;
+ } else if (bool_uniform.is_valid()) {
+ uniform_type = VisualShaderNodeUniformRef::UniformType::UNIFORM_TYPE_BOOLEAN;
+ } else if (vec3_uniform.is_valid()) {
+ uniform_type = VisualShaderNodeUniformRef::UniformType::UNIFORM_TYPE_VECTOR;
+ } else if (transform_uniform.is_valid()) {
+ uniform_type = VisualShaderNodeUniformRef::UniformType::UNIFORM_TYPE_TRANSFORM;
+ } else if (color_uniform.is_valid()) {
+ uniform_type = VisualShaderNodeUniformRef::UniformType::UNIFORM_TYPE_COLOR;
+ } else {
+ uniform_type = VisualShaderNodeUniformRef::UniformType::UNIFORM_TYPE_SAMPLER;
+ }
+ VisualShaderNodeUniformRef::add_uniform(uniform->get_uniform_name(), uniform_type);
+ }
+ }
+ }
+ if (p_update_refs) {
+ graph_plugin->update_uniform_refs();
+ }
+}
+
+void VisualShaderEditor::_update_uniform_refs(Set<String> &p_deleted_names) {
+ for (int i = 0; i < VisualShader::TYPE_MAX; i++) {
+ VisualShader::Type type = VisualShader::Type(i);
+
+ Vector<int> nodes = visual_shader->get_node_list(type);
+ for (int j = 0; j < nodes.size(); j++) {
+ if (j > 0) {
+ Ref<VisualShaderNodeUniformRef> ref = visual_shader->get_node(type, nodes[j]);
+ if (ref.is_valid()) {
+ if (p_deleted_names.has(ref->get_uniform_name())) {
+ undo_redo->add_do_method(ref.ptr(), "set_uniform_name", "[None]");
+ undo_redo->add_undo_method(ref.ptr(), "set_uniform_name", ref->get_uniform_name());
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", VisualShader::Type(i), nodes[j]);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", VisualShader::Type(i), nodes[j]);
+ }
+ }
+ }
+ }
+ }
+}
+
void VisualShaderEditor::_update_graph() {
if (updating) {
return;
@@ -461,7 +1225,8 @@ void VisualShaderEditor::_update_graph() {
graph->set_scroll_ofs(visual_shader->get_graph_offset() * EDSCALE);
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
+
graph->clear_connections();
//erase all nodes
for (int i = 0; i < graph->get_child_count(); i++) {
@@ -473,397 +1238,23 @@ void VisualShaderEditor::_update_graph() {
}
}
- static const Color type_color[6] = {
- Color(0.38, 0.85, 0.96), // scalar (float)
- Color(0.49, 0.78, 0.94), // scalar (int)
- Color(0.84, 0.49, 0.93), // vector
- Color(0.55, 0.65, 0.94), // boolean
- Color(0.96, 0.66, 0.43), // transform
- Color(1.0, 1.0, 0.0), // sampler
- };
-
List<VisualShader::Connection> connections;
visual_shader->get_node_connections(type, &connections);
-
- Ref<StyleBoxEmpty> label_style = make_empty_stylebox(2, 1, 2, 1);
+ graph_plugin->set_connections(connections);
Vector<int> nodes = visual_shader->get_node_list(type);
- Control *offset;
-
- for (int n_i = 0; n_i < nodes.size(); n_i++) {
- Vector2 position = visual_shader->get_node_position(type, nodes[n_i]);
- Ref<VisualShaderNode> vsnode = visual_shader->get_node(type, nodes[n_i]);
-
- Ref<VisualShaderNodeGroupBase> group_node = Object::cast_to<VisualShaderNodeGroupBase>(vsnode.ptr());
- bool is_group = !group_node.is_null();
- Size2 size = Size2(0, 0);
-
- Ref<VisualShaderNodeExpression> expression_node = Object::cast_to<VisualShaderNodeExpression>(group_node.ptr());
- bool is_expression = !expression_node.is_null();
- String expression = "";
-
- GraphNode *node = memnew(GraphNode);
-
- if (is_group) {
- size = group_node->get_size();
-
- node->set_resizable(true);
- node->connect("resize_request", callable_mp(this, &VisualShaderEditor::_node_resized), varray((int)type, nodes[n_i]));
- }
- if (is_expression) {
- expression = expression_node->get_expression();
- }
-
- node->set_offset(position);
-
- node->set_title(vsnode->get_caption());
- node->set_name(itos(nodes[n_i]));
-
- if (nodes[n_i] >= 2) {
- node->set_show_close_button(true);
- node->connect("close_request", callable_mp(this, &VisualShaderEditor::_delete_request), varray(nodes[n_i]), CONNECT_DEFERRED);
- }
-
- node->connect("dragged", callable_mp(this, &VisualShaderEditor::_node_dragged), varray(nodes[n_i]));
-
- Control *custom_editor = nullptr;
- int port_offset = 0;
-
- if (is_group) {
- port_offset += 2;
- }
-
- Ref<VisualShaderNodeUniform> uniform = vsnode;
- Ref<VisualShaderNodeFloatUniform> float_uniform = vsnode;
- Ref<VisualShaderNodeIntUniform> int_uniform = vsnode;
- Ref<VisualShaderNodeVec3Uniform> vec3_uniform = vsnode;
- Ref<VisualShaderNodeColorUniform> color_uniform = vsnode;
- Ref<VisualShaderNodeBooleanUniform> bool_uniform = vsnode;
- Ref<VisualShaderNodeTransformUniform> transform_uniform = vsnode;
- if (uniform.is_valid()) {
- graph->add_child(node);
- _update_created_node(node);
-
- LineEdit *uniform_name = memnew(LineEdit);
- uniform_name->set_text(uniform->get_uniform_name());
- node->add_child(uniform_name);
- uniform_name->connect("text_entered", callable_mp(this, &VisualShaderEditor::_line_edit_changed), varray(uniform_name, nodes[n_i]));
- uniform_name->connect("focus_exited", callable_mp(this, &VisualShaderEditor::_line_edit_focus_out), varray(uniform_name, nodes[n_i]));
-
- String error = vsnode->get_warning(visual_shader->get_mode(), type);
- if (error != String()) {
- offset = memnew(Control);
- offset->set_custom_minimum_size(Size2(0, 4 * EDSCALE));
- node->add_child(offset);
- Label *error_label = memnew(Label);
- error_label->add_theme_color_override("font_color", get_theme_color("error_color", "Editor"));
- error_label->set_text(error);
- node->add_child(error_label);
- }
-
- 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]);
- if (!float_uniform.is_valid() && !int_uniform.is_valid() && !vec3_uniform.is_valid() && !color_uniform.is_valid() && !bool_uniform.is_valid() && !transform_uniform.is_valid()) {
- continue;
- }
- }
- port_offset++;
- }
-
- for (int i = 0; i < plugins.size(); i++) {
- custom_editor = plugins.write[i]->create_editor(visual_shader, vsnode);
- if (custom_editor) {
- break;
- }
- }
-
- if (custom_editor && !float_uniform.is_valid() && !int_uniform.is_valid() && !vec3_uniform.is_valid() && !bool_uniform.is_valid() && !transform_uniform.is_valid() && vsnode->get_output_port_count() > 0 && vsnode->get_output_port_name(0) == "" && (vsnode->get_input_port_count() == 0 || vsnode->get_input_port_name(0) == "")) {
- //will be embedded in first port
- } else if (custom_editor) {
- port_offset++;
- node->add_child(custom_editor);
- if (color_uniform.is_valid()) {
- custom_editor->call_deferred("_show_prop_names", true);
- }
- if (float_uniform.is_valid() || int_uniform.is_valid() || vec3_uniform.is_valid() || bool_uniform.is_valid() || transform_uniform.is_valid()) {
- custom_editor->call_deferred("_show_prop_names", true);
- continue;
- }
- custom_editor = nullptr;
- }
-
- if (is_group) {
- offset = memnew(Control);
- offset->set_custom_minimum_size(Size2(0, 6 * EDSCALE));
- node->add_child(offset);
+ _update_uniforms(false);
- if (group_node->is_editable()) {
- HBoxContainer *hb2 = memnew(HBoxContainer);
+ graph_plugin->clear_links();
+ graph_plugin->make_dirty(true);
- Button *add_input_btn = memnew(Button);
- add_input_btn->set_text(TTR("Add Input"));
- add_input_btn->connect("pressed", callable_mp(this, &VisualShaderEditor::_add_input_port), varray(nodes[n_i], group_node->get_free_input_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "input" + itos(group_node->get_free_input_port_id())), CONNECT_DEFERRED);
- hb2->add_child(add_input_btn);
-
- hb2->add_spacer();
-
- Button *add_output_btn = memnew(Button);
- add_output_btn->set_text(TTR("Add Output"));
- add_output_btn->connect("pressed", callable_mp(this, &VisualShaderEditor::_add_output_port), varray(nodes[n_i], group_node->get_free_output_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "output" + itos(group_node->get_free_output_port_id())), CONNECT_DEFERRED);
- hb2->add_child(add_output_btn);
-
- node->add_child(hb2);
- }
- }
-
- for (int i = 0; i < MAX(vsnode->get_input_port_count(), vsnode->get_output_port_count()); i++) {
- if (vsnode->is_port_separator(i)) {
- node->add_child(memnew(HSeparator));
- port_offset++;
- }
-
- bool valid_left = i < vsnode->get_input_port_count();
- VisualShaderNode::PortType port_left = VisualShaderNode::PORT_TYPE_SCALAR;
- bool port_left_used = false;
- String name_left;
- if (valid_left) {
- name_left = vsnode->get_input_port_name(i);
- port_left = vsnode->get_input_port_type(i);
- for (List<VisualShader::Connection>::Element *E = connections.front(); E; E = E->next()) {
- if (E->get().to_node == nodes[n_i] && E->get().to_port == i) {
- port_left_used = true;
- }
- }
- }
-
- bool valid_right = i < vsnode->get_output_port_count();
- VisualShaderNode::PortType port_right = VisualShaderNode::PORT_TYPE_SCALAR;
- String name_right;
- if (valid_right) {
- name_right = vsnode->get_output_port_name(i);
- port_right = vsnode->get_output_port_type(i);
- }
-
- HBoxContainer *hb = memnew(HBoxContainer);
- hb->add_theme_constant_override("separation", 7 * EDSCALE);
-
- Variant default_value;
-
- if (valid_left && !port_left_used) {
- default_value = vsnode->get_input_port_default_value(i);
- }
-
- if (default_value.get_type() != Variant::NIL) { // only a label
- Button *button = memnew(Button);
- hb->add_child(button);
- button->connect("pressed", callable_mp(this, &VisualShaderEditor::_edit_port_default_input), varray(button, nodes[n_i], i));
-
- switch (default_value.get_type()) {
- case Variant::COLOR: {
- button->set_custom_minimum_size(Size2(30, 0) * EDSCALE);
- button->connect("draw", callable_mp(this, &VisualShaderEditor::_draw_color_over_button), varray(button, default_value));
- } break;
- case Variant::BOOL: {
- button->set_text(((bool)default_value) ? "true" : "false");
- } break;
- case Variant::INT:
- case Variant::FLOAT: {
- button->set_text(String::num(default_value, 4));
- } break;
- case Variant::VECTOR3: {
- Vector3 v = default_value;
- button->set_text(String::num(v.x, 3) + "," + String::num(v.y, 3) + "," + String::num(v.z, 3));
- } break;
- default: {
- }
- }
- }
-
- if (i == 0 && custom_editor) {
- hb->add_child(custom_editor);
- custom_editor->set_h_size_flags(SIZE_EXPAND_FILL);
- } else {
- if (valid_left) {
- if (is_group) {
- OptionButton *type_box = memnew(OptionButton);
- hb->add_child(type_box);
- type_box->add_item(TTR("Float"));
- type_box->add_item(TTR("Int"));
- type_box->add_item(TTR("Vector"));
- type_box->add_item(TTR("Boolean"));
- type_box->add_item(TTR("Transform"));
- type_box->add_item(TTR("Sampler"));
- type_box->select(group_node->get_input_port_type(i));
- type_box->set_custom_minimum_size(Size2(100 * EDSCALE, 0));
- type_box->connect("item_selected", callable_mp(this, &VisualShaderEditor::_change_input_port_type), varray(nodes[n_i], i), CONNECT_DEFERRED);
-
- LineEdit *name_box = memnew(LineEdit);
- hb->add_child(name_box);
- name_box->set_custom_minimum_size(Size2(65 * EDSCALE, 0));
- name_box->set_h_size_flags(SIZE_EXPAND_FILL);
- name_box->set_text(name_left);
- name_box->connect("text_entered", callable_mp(this, &VisualShaderEditor::_change_input_port_name), varray(name_box, nodes[n_i], i));
- name_box->connect("focus_exited", callable_mp(this, &VisualShaderEditor::_port_name_focus_out), varray(name_box, nodes[n_i], i, false));
-
- Button *remove_btn = memnew(Button);
- remove_btn->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon("Remove", "EditorIcons"));
- remove_btn->set_tooltip(TTR("Remove") + " " + name_left);
- remove_btn->connect("pressed", callable_mp(this, &VisualShaderEditor::_remove_input_port), varray(nodes[n_i], i), CONNECT_DEFERRED);
- hb->add_child(remove_btn);
- } else {
- Label *label = memnew(Label);
- label->set_text(name_left);
- label->add_theme_style_override("normal", label_style); //more compact
- hb->add_child(label);
-
- if (vsnode->get_input_port_default_hint(i) != "" && !port_left_used) {
- Label *hint_label = memnew(Label);
- hint_label->set_text("[" + vsnode->get_input_port_default_hint(i) + "]");
- hint_label->add_theme_color_override("font_color", get_theme_color("font_color_readonly", "TextEdit"));
- hint_label->add_theme_style_override("normal", label_style);
- hb->add_child(hint_label);
- }
- }
- }
-
- if (!is_group) {
- hb->add_spacer();
- }
-
- if (valid_right) {
- if (is_group) {
- Button *remove_btn = memnew(Button);
- remove_btn->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon("Remove", "EditorIcons"));
- remove_btn->set_tooltip(TTR("Remove") + " " + name_left);
- remove_btn->connect("pressed", callable_mp(this, &VisualShaderEditor::_remove_output_port), varray(nodes[n_i], i), CONNECT_DEFERRED);
- hb->add_child(remove_btn);
-
- LineEdit *name_box = memnew(LineEdit);
- hb->add_child(name_box);
- name_box->set_custom_minimum_size(Size2(65 * EDSCALE, 0));
- name_box->set_h_size_flags(SIZE_EXPAND_FILL);
- name_box->set_text(name_right);
- name_box->connect("text_entered", callable_mp(this, &VisualShaderEditor::_change_output_port_name), varray(name_box, nodes[n_i], i));
- name_box->connect("focus_exited", callable_mp(this, &VisualShaderEditor::_port_name_focus_out), varray(name_box, nodes[n_i], i, true));
-
- OptionButton *type_box = memnew(OptionButton);
- hb->add_child(type_box);
- type_box->add_item(TTR("Float"));
- type_box->add_item(TTR("Int"));
- type_box->add_item(TTR("Vector"));
- type_box->add_item(TTR("Boolean"));
- type_box->add_item(TTR("Transform"));
- type_box->select(group_node->get_output_port_type(i));
- type_box->set_custom_minimum_size(Size2(100 * EDSCALE, 0));
- type_box->connect("item_selected", callable_mp(this, &VisualShaderEditor::_change_output_port_type), varray(nodes[n_i], i), CONNECT_DEFERRED);
- } else {
- Label *label = memnew(Label);
- label->set_text(name_right);
- label->add_theme_style_override("normal", label_style); //more compact
- hb->add_child(label);
- }
- }
- }
-
- if (valid_right && edit_type->get_selected() == VisualShader::TYPE_FRAGMENT && port_right != VisualShaderNode::PORT_TYPE_TRANSFORM && port_right != VisualShaderNode::PORT_TYPE_SAMPLER) {
- TextureButton *preview = memnew(TextureButton);
- preview->set_toggle_mode(true);
- preview->set_normal_texture(get_theme_icon("GuiVisibilityHidden", "EditorIcons"));
- preview->set_pressed_texture(get_theme_icon("GuiVisibilityVisible", "EditorIcons"));
- preview->set_v_size_flags(SIZE_SHRINK_CENTER);
-
- if (vsnode->get_output_port_for_preview() == i) {
- preview->set_pressed(true);
- }
-
- preview->connect("pressed", callable_mp(this, &VisualShaderEditor::_preview_select_port), varray(nodes[n_i], i), CONNECT_DEFERRED);
- hb->add_child(preview);
- }
-
- if (is_group) {
- offset = memnew(Control);
- offset->set_custom_minimum_size(Size2(0, 5 * EDSCALE));
- node->add_child(offset);
- port_offset++;
- }
-
- node->add_child(hb);
-
- node->set_slot(i + port_offset, valid_left, port_left, type_color[port_left], valid_right, port_right, type_color[port_right]);
- }
-
- if (vsnode->get_output_port_for_preview() >= 0) {
- int port_type = vsnode->get_output_port_type(vsnode->get_output_port_for_preview());
-
- if (port_type != VisualShaderNode::PORT_TYPE_TRANSFORM && port_type != VisualShaderNode::PORT_TYPE_SAMPLER) {
- offset = memnew(Control);
- offset->set_custom_minimum_size(Size2(0, 5 * EDSCALE));
- node->add_child(offset);
-
- VisualShaderNodePortPreview *port_preview = memnew(VisualShaderNodePortPreview);
- port_preview->setup(visual_shader, type, nodes[n_i], vsnode->get_output_port_for_preview());
- port_preview->set_h_size_flags(SIZE_SHRINK_CENTER);
- node->add_child(port_preview);
- }
- }
-
- offset = memnew(Control);
- offset->set_custom_minimum_size(Size2(0, 4 * EDSCALE));
- node->add_child(offset);
-
- String error = vsnode->get_warning(visual_shader->get_mode(), type);
- if (error != String()) {
- Label *error_label = memnew(Label);
- error_label->add_theme_color_override("font_color", get_theme_color("error_color", "Editor"));
- error_label->set_text(error);
- node->add_child(error_label);
- }
-
- if (is_expression) {
- TextEdit *expression_box = memnew(TextEdit);
- Ref<CodeHighlighter> expression_syntax_highlighter;
- expression_syntax_highlighter.instance();
- expression_node->set_control(expression_box, 0);
- node->add_child(expression_box);
-
- Color background_color = EDITOR_GET("text_editor/highlighting/background_color");
- Color text_color = EDITOR_GET("text_editor/highlighting/text_color");
- Color keyword_color = EDITOR_GET("text_editor/highlighting/keyword_color");
- Color comment_color = EDITOR_GET("text_editor/highlighting/comment_color");
- Color symbol_color = EDITOR_GET("text_editor/highlighting/symbol_color");
-
- expression_box->set_syntax_highlighter(expression_syntax_highlighter);
- expression_box->add_theme_color_override("background_color", background_color);
-
- for (List<String>::Element *E = keyword_list.front(); E; E = E->next()) {
- expression_syntax_highlighter->add_keyword_color(E->get(), keyword_color);
- }
-
- expression_box->add_theme_font_override("font", get_theme_font("expression", "EditorFonts"));
- expression_box->add_theme_color_override("font_color", text_color);
- expression_syntax_highlighter->set_symbol_color(symbol_color);
- expression_syntax_highlighter->add_color_region("/*", "*/", comment_color, false);
- expression_syntax_highlighter->add_color_region("//", "", comment_color, false);
-
- expression_box->set_text(expression);
- expression_box->set_context_menu_enabled(false);
- expression_box->set_show_line_numbers(true);
-
- expression_box->connect("focus_exited", callable_mp(this, &VisualShaderEditor::_expression_focus_out), varray(expression_box, nodes[n_i]));
- }
-
- if (!uniform.is_valid()) {
- graph->add_child(node);
- _update_created_node(node);
- if (is_group) {
- call_deferred("_set_node_size", (int)type, nodes[n_i], size);
- }
- }
+ for (int n_i = 0; n_i < nodes.size(); n_i++) {
+ graph_plugin->add_node(type, nodes[n_i]);
}
+ graph_plugin->make_dirty(false);
+
for (List<VisualShader::Connection>::Element *E = connections.front(); E; E = E->next()) {
int from = E->get().from_node;
int from_idx = E->get().from_port;
@@ -874,110 +1265,112 @@ void VisualShaderEditor::_update_graph() {
}
}
+VisualShader::Type VisualShaderEditor::get_current_shader_type() const {
+ VisualShader::Type type;
+ if (particles_mode) {
+ type = VisualShader::Type(edit_type->get_selected() + 3);
+ } else {
+ type = VisualShader::Type(edit_type->get_selected());
+ }
+ return type;
+}
+
void VisualShaderEditor::_add_input_port(int p_node, int p_port, int p_port_type, const String &p_name) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNodeExpression> node = visual_shader->get_node(type, p_node);
if (node.is_null()) {
return;
}
- undo_redo->create_action(TTR("Add input port"));
+ undo_redo->create_action(TTR("Add Input Port"));
undo_redo->add_do_method(node.ptr(), "add_input_port", p_port, p_port_type, p_name);
undo_redo->add_undo_method(node.ptr(), "remove_input_port", p_port);
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
- undo_redo->add_do_method(this, "_rebuild");
- undo_redo->add_undo_method(this, "_rebuild");
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type, p_node);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type, p_node);
undo_redo->commit_action();
}
void VisualShaderEditor::_add_output_port(int p_node, int p_port, int p_port_type, const String &p_name) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node);
if (node.is_null()) {
return;
}
- undo_redo->create_action(TTR("Add output port"));
+ undo_redo->create_action(TTR("Add Output Port"));
undo_redo->add_do_method(node.ptr(), "add_output_port", p_port, p_port_type, p_name);
undo_redo->add_undo_method(node.ptr(), "remove_output_port", p_port);
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
- undo_redo->add_do_method(this, "_rebuild");
- undo_redo->add_undo_method(this, "_rebuild");
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type, p_node);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type, p_node);
undo_redo->commit_action();
}
void VisualShaderEditor::_change_input_port_type(int p_type, int p_node, int p_port) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node);
if (node.is_null()) {
return;
}
- undo_redo->create_action(TTR("Change input port type"));
+ undo_redo->create_action(TTR("Change Input Port Type"));
undo_redo->add_do_method(node.ptr(), "set_input_port_type", p_port, p_type);
undo_redo->add_undo_method(node.ptr(), "set_input_port_type", p_port, node->get_input_port_type(p_port));
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
- undo_redo->add_do_method(this, "_rebuild");
- undo_redo->add_undo_method(this, "_rebuild");
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type, p_node);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type, p_node);
undo_redo->commit_action();
}
void VisualShaderEditor::_change_output_port_type(int p_type, int p_node, int p_port) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node);
if (node.is_null()) {
return;
}
- undo_redo->create_action(TTR("Change output port type"));
+ undo_redo->create_action(TTR("Change Output Port Type"));
undo_redo->add_do_method(node.ptr(), "set_output_port_type", p_port, p_type);
undo_redo->add_undo_method(node.ptr(), "set_output_port_type", p_port, node->get_output_port_type(p_port));
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
- undo_redo->add_do_method(this, "_rebuild");
- undo_redo->add_undo_method(this, "_rebuild");
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type, p_node);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type, p_node);
undo_redo->commit_action();
}
void VisualShaderEditor::_change_input_port_name(const String &p_text, Object *line_edit, int p_node_id, int p_port_id) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node_id);
ERR_FAIL_COND(!node.is_valid());
- undo_redo->create_action(TTR("Change input port name"));
+ undo_redo->create_action(TTR("Change Input Port Name"));
undo_redo->add_do_method(node.ptr(), "set_input_port_name", p_port_id, p_text);
undo_redo->add_undo_method(node.ptr(), "set_input_port_name", p_port_id, node->get_input_port_name(p_port_id));
- undo_redo->add_do_method(this, "_rebuild");
- undo_redo->add_undo_method(this, "_rebuild");
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type, p_node_id);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type, p_node_id);
undo_redo->commit_action();
}
void VisualShaderEditor::_change_output_port_name(const String &p_text, Object *line_edit, int p_node_id, int p_port_id) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node_id);
ERR_FAIL_COND(!node.is_valid());
- undo_redo->create_action(TTR("Change output port name"));
+ undo_redo->create_action(TTR("Change Output Port Name"));
undo_redo->add_do_method(node.ptr(), "set_output_port_name", p_port_id, p_text);
undo_redo->add_undo_method(node.ptr(), "set_output_port_name", p_port_id, node->get_output_port_name(p_port_id));
- undo_redo->add_do_method(this, "_rebuild");
- undo_redo->add_undo_method(this, "_rebuild");
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type, p_node_id);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type, p_node_id);
undo_redo->commit_action();
}
void VisualShaderEditor::_remove_input_port(int p_node, int p_port) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node);
if (node.is_null()) {
return;
}
- undo_redo->create_action(TTR("Remove input port"));
+ undo_redo->create_action(TTR("Remove Input Port"));
List<VisualShader::Connection> conns;
visual_shader->get_node_connections(type, &conns);
@@ -991,12 +1384,21 @@ void VisualShaderEditor::_remove_input_port(int p_node, int p_port) {
if (to_port == p_port) {
undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port);
undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes_forced", type, from_node, from_port, to_node, to_port);
+
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, from_node, from_port, to_node, to_port);
} else if (to_port > p_port) {
undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port);
undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes_forced", type, from_node, from_port, to_node, to_port);
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, from_node, from_port, to_node, to_port);
+
undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes_forced", type, from_node, from_port, to_node, to_port - 1);
undo_redo->add_undo_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port - 1);
+
+ undo_redo->add_do_method(graph_plugin.ptr(), "connect_nodes", type, from_node, from_port, to_node, to_port - 1);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port - 1);
}
}
}
@@ -1004,23 +1406,20 @@ void VisualShaderEditor::_remove_input_port(int p_node, int p_port) {
undo_redo->add_do_method(node.ptr(), "remove_input_port", p_port);
undo_redo->add_undo_method(node.ptr(), "add_input_port", p_port, (int)node->get_input_port_type(p_port), node->get_input_port_name(p_port));
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
-
- undo_redo->add_do_method(this, "_rebuild");
- undo_redo->add_undo_method(this, "_rebuild");
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type, p_node);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type, p_node);
undo_redo->commit_action();
}
void VisualShaderEditor::_remove_output_port(int p_node, int p_port) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node);
if (node.is_null()) {
return;
}
- undo_redo->create_action(TTR("Remove output port"));
+ undo_redo->create_action(TTR("Remove Output Port"));
List<VisualShader::Connection> conns;
visual_shader->get_node_connections(type, &conns);
@@ -1034,12 +1433,21 @@ void VisualShaderEditor::_remove_output_port(int p_node, int p_port) {
if (from_port == p_port) {
undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port);
undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes_forced", type, from_node, from_port, to_node, to_port);
+
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, from_node, from_port, to_node, to_port);
} else if (from_port > p_port) {
undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port);
undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes_forced", type, from_node, from_port, to_node, to_port);
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, from_node, from_port, to_node, to_port);
+
undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes_forced", type, from_node, from_port - 1, to_node, to_port);
undo_redo->add_undo_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_port - 1, to_node, to_port);
+
+ undo_redo->add_do_method(graph_plugin.ptr(), "connect_nodes", type, from_node, from_port - 1, to_node, to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "disconnect_nodes", type, from_node, from_port - 1, to_node, to_port);
}
}
}
@@ -1047,62 +1455,58 @@ void VisualShaderEditor::_remove_output_port(int p_node, int p_port) {
undo_redo->add_do_method(node.ptr(), "remove_output_port", p_port);
undo_redo->add_undo_method(node.ptr(), "add_output_port", p_port, (int)node->get_output_port_type(p_port), node->get_output_port_name(p_port));
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
-
- undo_redo->add_do_method(this, "_rebuild");
- undo_redo->add_undo_method(this, "_rebuild");
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type, p_node);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type, p_node);
undo_redo->commit_action();
}
-void VisualShaderEditor::_expression_focus_out(Object *text_edit, int p_node) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+void VisualShaderEditor::_expression_focus_out(Object *code_edit, int p_node) {
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNodeExpression> node = visual_shader->get_node(type, p_node);
if (node.is_null()) {
return;
}
- TextEdit *expression_box = Object::cast_to<TextEdit>(text_edit);
+ CodeEdit *expression_box = Object::cast_to<CodeEdit>(code_edit);
if (node->get_expression() == expression_box->get_text()) {
return;
}
- undo_redo->create_action(TTR("Set expression"));
+ undo_redo->create_action(TTR("Set VisualShader Expression"));
undo_redo->add_do_method(node.ptr(), "set_expression", expression_box->get_text());
undo_redo->add_undo_method(node.ptr(), "set_expression", node->get_expression());
- undo_redo->add_do_method(this, "_rebuild");
- undo_redo->add_undo_method(this, "_rebuild");
+ undo_redo->add_do_method(graph_plugin.ptr(), "set_expression", type, p_node, expression_box->get_text());
+ undo_redo->add_undo_method(graph_plugin.ptr(), "set_expression", type, p_node, node->get_expression());
undo_redo->commit_action();
}
-void VisualShaderEditor::_rebuild() {
- if (visual_shader != nullptr) {
- EditorNode::get_singleton()->get_log()->clear();
- visual_shader->rebuild();
- }
-}
-
void VisualShaderEditor::_set_node_size(int p_type, int p_node, const Vector2 &p_size) {
VisualShader::Type type = VisualShader::Type(p_type);
- Ref<VisualShaderNode> node = visual_shader->get_node(type, p_node);
+ Ref<VisualShaderNodeResizableBase> node = visual_shader->get_node(type, p_node);
if (node.is_null()) {
return;
}
- Ref<VisualShaderNodeGroupBase> group_node = Object::cast_to<VisualShaderNodeGroupBase>(node.ptr());
-
- if (group_node.is_null()) {
- return;
+ Size2 size = p_size;
+ if (!node->is_allow_v_resize()) {
+ size.y = 0;
}
- Vector2 size = p_size;
+ node->set_size(size);
- group_node->set_size(size);
+ if (get_current_shader_type() == type) {
+ Ref<VisualShaderNodeExpression> expression_node = Object::cast_to<VisualShaderNodeExpression>(node.ptr());
+ Control *text_box = nullptr;
+ if (!expression_node.is_null()) {
+ text_box = expression_node->get_control(0);
+ if (text_box) {
+ text_box->set_custom_minimum_size(Size2(0, 0));
+ }
+ }
- GraphNode *gn = nullptr;
- if (edit_type->get_selected() == p_type) { // check - otherwise the error will be emitted
+ GraphNode *gn = nullptr;
Node *node2 = graph->get_node(itos(p_node));
gn = Object::cast_to<GraphNode>(node2);
if (!gn) {
@@ -1111,84 +1515,88 @@ void VisualShaderEditor::_set_node_size(int p_type, int p_node, const Vector2 &p
gn->set_custom_minimum_size(size);
gn->set_size(Size2(1, 1));
- }
- Ref<VisualShaderNodeExpression> expression_node = Object::cast_to<VisualShaderNodeExpression>(node.ptr());
- if (!expression_node.is_null()) {
- Control *text_box = expression_node->get_control(0);
- Size2 box_size = size;
- if (gn != nullptr) {
- if (box_size.x < 150 * EDSCALE || box_size.y < 0) {
- box_size.x = gn->get_size().x;
+ if (!expression_node.is_null() && text_box) {
+ Size2 box_size = size;
+ if (gn != nullptr) {
+ if (box_size.x < 150 * EDSCALE || box_size.y < 0) {
+ box_size.x = gn->get_size().x;
+ }
}
+ box_size.x -= text_box->get_margin(MARGIN_LEFT);
+ box_size.x -= 28 * EDSCALE;
+ box_size.y -= text_box->get_margin(MARGIN_TOP);
+ box_size.y -= 28 * EDSCALE;
+ text_box->set_custom_minimum_size(Size2(box_size.x, box_size.y));
+ text_box->set_size(Size2(1, 1));
}
- box_size.x -= text_box->get_margin(MARGIN_LEFT);
- box_size.x -= 28 * EDSCALE;
- box_size.y -= text_box->get_margin(MARGIN_TOP);
- box_size.y -= 28 * EDSCALE;
- text_box->set_custom_minimum_size(Size2(box_size.x, box_size.y));
- text_box->set_size(Size2(1, 1));
}
}
void VisualShaderEditor::_node_resized(const Vector2 &p_new_size, int p_type, int p_node) {
- VisualShader::Type type = VisualShader::Type(p_type);
- Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node);
+ Ref<VisualShaderNodeResizableBase> node = visual_shader->get_node(VisualShader::Type(p_type), p_node);
if (node.is_null()) {
return;
}
- undo_redo->create_action(TTR("Resize VisualShader node"), UndoRedo::MERGE_ENDS);
+ undo_redo->create_action(TTR("Resize VisualShader Node"), UndoRedo::MERGE_ENDS);
undo_redo->add_do_method(this, "_set_node_size", p_type, p_node, p_new_size);
undo_redo->add_undo_method(this, "_set_node_size", p_type, p_node, node->get_size());
undo_redo->commit_action();
}
void VisualShaderEditor::_preview_select_port(int p_node, int p_port) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNode> node = visual_shader->get_node(type, p_node);
if (node.is_null()) {
return;
}
-
+ int prev_port = node->get_output_port_for_preview();
if (node->get_output_port_for_preview() == p_port) {
p_port = -1; //toggle it
}
- undo_redo->create_action(TTR("Set Uniform Name"));
+ undo_redo->create_action(p_port == -1 ? TTR("Hide Port Preview") : TTR("Show Port Preview"));
undo_redo->add_do_method(node.ptr(), "set_output_port_for_preview", p_port);
- undo_redo->add_undo_method(node.ptr(), "set_output_port_for_preview", node->get_output_port_for_preview());
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
+ undo_redo->add_undo_method(node.ptr(), "set_output_port_for_preview", prev_port);
+ undo_redo->add_do_method(graph_plugin.ptr(), "show_port_preview", (int)type, p_node, p_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "show_port_preview", (int)type, p_node, prev_port);
undo_redo->commit_action();
}
-void VisualShaderEditor::_line_edit_changed(const String &p_text, Object *line_edit, int p_node_id) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+void VisualShaderEditor::_uniform_line_edit_changed(const String &p_text, int p_node_id) {
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNodeUniform> node = visual_shader->get_node(type, p_node_id);
ERR_FAIL_COND(!node.is_valid());
String validated_name = visual_shader->validate_uniform_name(p_text, node);
- updating = true;
+ if (validated_name == node->get_uniform_name()) {
+ return;
+ }
+
undo_redo->create_action(TTR("Set Uniform Name"));
undo_redo->add_do_method(node.ptr(), "set_uniform_name", validated_name);
undo_redo->add_undo_method(node.ptr(), "set_uniform_name", node->get_uniform_name());
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
- undo_redo->commit_action();
- updating = false;
+ 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(this, "_update_uniforms", true);
+ undo_redo->add_undo_method(this, "_update_uniforms", true);
- Object::cast_to<LineEdit>(line_edit)->set_text(validated_name);
+ Set<String> changed_names;
+ changed_names.insert(node->get_uniform_name());
+ _update_uniform_refs(changed_names);
+
+ undo_redo->commit_action();
}
-void VisualShaderEditor::_line_edit_focus_out(Object *line_edit, int p_node_id) {
- String text = Object::cast_to<LineEdit>(line_edit)->get_text();
- _line_edit_changed(text, line_edit, p_node_id);
+void VisualShaderEditor::_uniform_line_edit_focus_out(Object *line_edit, int p_node_id) {
+ _uniform_line_edit_changed(Object::cast_to<LineEdit>(line_edit)->get_text(), p_node_id);
}
void VisualShaderEditor::_port_name_focus_out(Object *line_edit, int p_node_id, int p_port_id, bool p_output) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node_id);
ERR_FAIL_COND(!node.is_valid());
@@ -1239,7 +1647,7 @@ void VisualShaderEditor::_port_name_focus_out(Object *line_edit, int p_node_id,
}
void VisualShaderEditor::_port_edited() {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
Variant value = property_editor->get_variant();
Ref<VisualShaderNode> vsn = visual_shader->get_node(type, editing_node);
@@ -1248,15 +1656,15 @@ void VisualShaderEditor::_port_edited() {
undo_redo->create_action(TTR("Set Input Default Port"));
undo_redo->add_do_method(vsn.ptr(), "set_input_port_default_value", editing_port, value);
undo_redo->add_undo_method(vsn.ptr(), "set_input_port_default_value", editing_port, vsn->get_input_port_default_value(editing_port));
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
+ undo_redo->add_do_method(graph_plugin.ptr(), "set_input_port_default_value", type, editing_node, editing_port, value);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "set_input_port_default_value", type, editing_node, editing_port, vsn->get_input_port_default_value(editing_port));
undo_redo->commit_action();
property_editor->hide();
}
void VisualShaderEditor::_edit_port_default_input(Object *p_button, int p_node, int p_port) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
Ref<VisualShaderNode> vsn = visual_shader->get_node(type, p_node);
@@ -1286,9 +1694,29 @@ void VisualShaderEditor::_add_custom_node(const String &p_path) {
}
}
-void VisualShaderEditor::_add_texture_node(const String &p_path) {
- VisualShaderNodeTexture *texture = (VisualShaderNodeTexture *)_add_node(texture_node_option_idx, -1);
- texture->set_texture(ResourceLoader::load(p_path));
+void VisualShaderEditor::_add_cubemap_node(const String &p_path) {
+ VisualShaderNodeCubemap *cubemap = (VisualShaderNodeCubemap *)_add_node(cubemap_node_option_idx, -1);
+ cubemap->set_cube_map(ResourceLoader::load(p_path));
+}
+
+void VisualShaderEditor::_add_texture2d_node(const String &p_path) {
+ VisualShaderNodeTexture *texture2d = (VisualShaderNodeTexture *)_add_node(texture2d_node_option_idx, -1);
+ texture2d->set_texture(ResourceLoader::load(p_path));
+}
+
+void VisualShaderEditor::_add_texture2d_array_node(const String &p_path) {
+ VisualShaderNodeTexture2DArray *texture2d_array = (VisualShaderNodeTexture2DArray *)_add_node(texture2d_array_node_option_idx, -1);
+ texture2d_array->set_texture_array(ResourceLoader::load(p_path));
+}
+
+void VisualShaderEditor::_add_texture3d_node(const String &p_path) {
+ VisualShaderNodeTexture3D *texture3d = (VisualShaderNodeTexture3D *)_add_node(texture3d_node_option_idx, -1);
+ texture3d->set_texture(ResourceLoader::load(p_path));
+}
+
+void VisualShaderEditor::_add_curve_node(const String &p_path) {
+ VisualShaderNodeCurveTexture *curve = (VisualShaderNodeCurveTexture *)_add_node(curve_node_option_idx, -1);
+ curve->set_texture(ResourceLoader::load(p_path));
}
VisualShaderNode *VisualShaderEditor::_add_node(int p_idx, int p_op_idx) {
@@ -1398,7 +1826,7 @@ VisualShaderNode *VisualShaderEditor::_add_node(int p_idx, int p_op_idx) {
VisualShaderNodeMultiplyAdd *fmaFunc = Object::cast_to<VisualShaderNodeMultiplyAdd>(vsn);
if (fmaFunc) {
- fmaFunc->set_type((VisualShaderNodeMultiplyAdd::Type)p_op_idx);
+ fmaFunc->set_op_type((VisualShaderNodeMultiplyAdd::OpType)p_op_idx);
}
}
@@ -1422,13 +1850,15 @@ VisualShaderNode *VisualShaderEditor::_add_node(int p_idx, int p_op_idx) {
}
saved_node_pos_dirty = false;
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
int id_to_use = visual_shader->get_valid_node_id(type);
undo_redo->create_action(TTR("Add Node to Visual Shader"));
undo_redo->add_do_method(visual_shader.ptr(), "add_node", type, vsnode, position, id_to_use);
undo_redo->add_undo_method(visual_shader.ptr(), "remove_node", type, id_to_use);
+ undo_redo->add_do_method(graph_plugin.ptr(), "add_node", type, id_to_use);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "remove_node", type, id_to_use);
VisualShaderNodeExpression *expr = Object::cast_to<VisualShaderNodeExpression>(vsnode.ptr());
if (expr) {
@@ -1443,6 +1873,8 @@ VisualShaderNode *VisualShaderEditor::_add_node(int p_idx, int p_op_idx) {
if (visual_shader->is_port_types_compatible(vsnode->get_output_port_type(_from_slot), visual_shader->get_node(type, to_node)->get_input_port_type(to_slot))) {
undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes", type, _from_node, _from_slot, to_node, to_slot);
undo_redo->add_undo_method(visual_shader.ptr(), "disconnect_nodes", type, _from_node, _from_slot, to_node, to_slot);
+ undo_redo->add_do_method(graph_plugin.ptr(), "connect_nodes", type, _from_node, _from_slot, to_node, to_slot);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "disconnect_nodes", type, _from_node, _from_slot, to_node, to_slot);
}
}
} else if (from_node != -1 && from_slot != -1) {
@@ -1451,33 +1883,56 @@ VisualShaderNode *VisualShaderEditor::_add_node(int p_idx, int p_op_idx) {
int _to_slot = 0;
if (visual_shader->is_port_types_compatible(visual_shader->get_node(type, from_node)->get_output_port_type(from_slot), vsnode->get_input_port_type(_to_slot))) {
- undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes", type, from_node, from_slot, _to_node, _to_slot);
undo_redo->add_undo_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_slot, _to_node, _to_slot);
+ undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes", type, from_node, from_slot, _to_node, _to_slot);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "disconnect_nodes", type, from_node, from_slot, _to_node, _to_slot);
+ undo_redo->add_do_method(graph_plugin.ptr(), "connect_nodes", type, from_node, from_slot, _to_node, _to_slot);
}
}
}
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
+ VisualShaderNodeUniform *uniform = Object::cast_to<VisualShaderNodeUniform>(vsnode.ptr());
+ if (uniform) {
+ undo_redo->add_do_method(this, "_update_uniforms", true);
+ undo_redo->add_undo_method(this, "_update_uniforms", true);
+ }
+
+ VisualShaderNodeCurveTexture *curve = Object::cast_to<VisualShaderNodeCurveTexture>(vsnode.ptr());
+ if (curve) {
+ graph_plugin->call_deferred("update_curve", id_to_use);
+ }
+
undo_redo->commit_action();
return vsnode.ptr();
}
void VisualShaderEditor::_node_dragged(const Vector2 &p_from, const Vector2 &p_to, int p_node) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
+ drag_buffer.push_back({ type, p_node, p_from, p_to });
+ if (!drag_dirty) {
+ call_deferred("_nodes_dragged");
+ }
+ drag_dirty = true;
+}
- updating = true;
- undo_redo->create_action(TTR("Node Moved"));
- undo_redo->add_do_method(visual_shader.ptr(), "set_node_position", type, p_node, p_to);
- undo_redo->add_undo_method(visual_shader.ptr(), "set_node_position", type, p_node, p_from);
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
+void VisualShaderEditor::_nodes_dragged() {
+ drag_dirty = false;
+
+ undo_redo->create_action(TTR("Node(s) Moved"));
+
+ for (List<DragOp>::Element *E = drag_buffer.front(); E; E = E->next()) {
+ undo_redo->add_do_method(visual_shader.ptr(), "set_node_position", E->get().type, E->get().node, E->get().to);
+ undo_redo->add_undo_method(visual_shader.ptr(), "set_node_position", E->get().type, E->get().node, E->get().from);
+ undo_redo->add_do_method(graph_plugin.ptr(), "set_node_position", E->get().type, E->get().node, E->get().to);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "set_node_position", E->get().type, E->get().node, E->get().from);
+ }
+
+ drag_buffer.clear();
undo_redo->commit_action();
- updating = false;
}
void VisualShaderEditor::_connection_request(const String &p_from, int p_from_index, const String &p_to, int p_to_index) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
int from = p_from.to_int();
int to = p_to.to_int();
@@ -1495,32 +1950,32 @@ void VisualShaderEditor::_connection_request(const String &p_from, int p_from_in
if (E->get().to_node == to && E->get().to_port == p_to_index) {
undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
}
}
undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes", type, from, p_from_index, to, p_to_index);
undo_redo->add_undo_method(visual_shader.ptr(), "disconnect_nodes", type, from, p_from_index, to, p_to_index);
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
+ undo_redo->add_do_method(graph_plugin.ptr(), "connect_nodes", type, from, p_from_index, to, p_to_index);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "disconnect_nodes", type, from, p_from_index, to, p_to_index);
undo_redo->commit_action();
}
void VisualShaderEditor::_disconnection_request(const String &p_from, int p_from_index, const String &p_to, int p_to_index) {
graph->disconnect_node(p_from, p_from_index, p_to, p_to_index);
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
int from = p_from.to_int();
int to = p_to.to_int();
- //updating = true; seems graph edit can handle this, no need to protect
undo_redo->create_action(TTR("Nodes Disconnected"));
undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, from, p_from_index, to, p_to_index);
undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, from, p_from_index, to, p_to_index);
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, from, p_from_index, to, p_to_index);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, from, p_from_index, to, p_to_index);
undo_redo->commit_action();
- //updating = false;
}
void VisualShaderEditor::_connection_to_empty(const String &p_from, int p_from_slot, const Vector2 &p_release_position) {
@@ -1535,47 +1990,117 @@ void VisualShaderEditor::_connection_from_empty(const String &p_to, int p_to_slo
_show_members_dialog(true);
}
-void VisualShaderEditor::_delete_request(int which) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
- Ref<VisualShaderNode> node = Ref<VisualShaderNode>(visual_shader->get_node(type, which));
+void VisualShaderEditor::_delete_nodes(int p_type, const List<int> &p_nodes) {
+ VisualShader::Type type = VisualShader::Type(p_type);
+ List<VisualShader::Connection> conns;
+ visual_shader->get_node_connections(type, &conns);
- undo_redo->create_action(TTR("Delete Node"));
- undo_redo->add_do_method(visual_shader.ptr(), "remove_node", type, which);
- undo_redo->add_undo_method(visual_shader.ptr(), "add_node", type, node, visual_shader->get_node_position(type, which), which);
+ for (const List<int>::Element *F = p_nodes.front(); F; F = F->next()) {
+ for (List<VisualShader::Connection>::Element *E = conns.front(); E; E = E->next()) {
+ if (E->get().from_node == F->get() || E->get().to_node == F->get()) {
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ }
+ }
+ }
- undo_redo->add_do_method(this, "_clear_buffer");
- undo_redo->add_undo_method(this, "_clear_buffer");
+ Set<String> uniform_names;
- // restore size, inputs and outputs if node is group
- VisualShaderNodeGroupBase *group = Object::cast_to<VisualShaderNodeGroupBase>(node.ptr());
- if (group) {
- undo_redo->add_undo_method(group, "set_size", group->get_size());
- undo_redo->add_undo_method(group, "set_inputs", group->get_inputs());
- undo_redo->add_undo_method(group, "set_outputs", group->get_outputs());
+ for (const List<int>::Element *F = p_nodes.front(); F; F = F->next()) {
+ Ref<VisualShaderNode> node = visual_shader->get_node(type, F->get());
+
+ undo_redo->add_do_method(visual_shader.ptr(), "remove_node", type, F->get());
+ undo_redo->add_undo_method(visual_shader.ptr(), "add_node", type, node, visual_shader->get_node_position(type, F->get()), F->get());
+ undo_redo->add_undo_method(graph_plugin.ptr(), "add_node", type, F->get());
+
+ undo_redo->add_do_method(this, "_clear_buffer");
+ undo_redo->add_undo_method(this, "_clear_buffer");
+
+ // restore size, inputs and outputs if node is group
+ VisualShaderNodeGroupBase *group = Object::cast_to<VisualShaderNodeGroupBase>(node.ptr());
+ if (group) {
+ undo_redo->add_undo_method(group, "set_size", group->get_size());
+ undo_redo->add_undo_method(group, "set_inputs", group->get_inputs());
+ undo_redo->add_undo_method(group, "set_outputs", group->get_outputs());
+ }
+
+ // restore expression text if node is expression
+ VisualShaderNodeExpression *expression = Object::cast_to<VisualShaderNodeExpression>(node.ptr());
+ if (expression) {
+ undo_redo->add_undo_method(expression, "set_expression", expression->get_expression());
+ }
+
+ VisualShaderNodeUniform *uniform = Object::cast_to<VisualShaderNodeUniform>(node.ptr());
+ if (uniform) {
+ uniform_names.insert(uniform->get_uniform_name());
+ }
}
- // restore expression text if node is expression
- VisualShaderNodeExpression *expression = Object::cast_to<VisualShaderNodeExpression>(node.ptr());
- if (expression) {
- undo_redo->add_undo_method(expression, "set_expression", expression->get_expression());
+ List<VisualShader::Connection> used_conns;
+ for (const List<int>::Element *F = p_nodes.front(); F; F = F->next()) {
+ for (List<VisualShader::Connection>::Element *E = conns.front(); E; E = E->next()) {
+ if (E->get().from_node == F->get() || E->get().to_node == F->get()) {
+ bool cancel = false;
+ for (List<VisualShader::Connection>::Element *R = used_conns.front(); R; R = R->next()) {
+ if (R->get().from_node == E->get().from_node && R->get().from_port == E->get().from_port && R->get().to_node == E->get().to_node && R->get().to_port == E->get().to_port) {
+ cancel = true; // to avoid ERR_ALREADY_EXISTS warning
+ break;
+ }
+ }
+ if (!cancel) {
+ undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ used_conns.push_back(E->get());
+ }
+ }
+ }
}
- List<VisualShader::Connection> conns;
- visual_shader->get_node_connections(type, &conns);
+ // delete nodes from the graph
+ for (const List<int>::Element *F = p_nodes.front(); F; F = F->next()) {
+ undo_redo->add_do_method(graph_plugin.ptr(), "remove_node", type, F->get());
+ }
- for (List<VisualShader::Connection>::Element *E = conns.front(); E; E = E->next()) {
- if (E->get().from_node == which || E->get().to_node == which) {
- undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ // update uniform refs if any uniform has been deleted
+ if (uniform_names.size() > 0) {
+ undo_redo->add_do_method(this, "_update_uniforms", true);
+ undo_redo->add_undo_method(this, "_update_uniforms", true);
+
+ _update_uniform_refs(uniform_names);
+ }
+}
+
+void VisualShaderEditor::_delete_node_request(int p_type, int p_node) {
+ List<int> to_erase;
+ to_erase.push_back(p_node);
+
+ undo_redo->create_action(TTR("Delete VisualShader Node"));
+ _delete_nodes(p_type, to_erase);
+ undo_redo->commit_action();
+}
+
+void VisualShaderEditor::_delete_nodes_request() {
+ List<int> to_erase;
+
+ for (int i = 0; i < graph->get_child_count(); i++) {
+ GraphNode *gn = Object::cast_to<GraphNode>(graph->get_child(i));
+ if (gn) {
+ if (gn->is_selected() && gn->is_close_button_visible()) {
+ to_erase.push_back(gn->get_name().operator String().to_int());
+ }
}
}
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
+ if (to_erase.empty()) {
+ return;
+ }
+
+ undo_redo->create_action(TTR("Delete VisualShader Node(s)"));
+ _delete_nodes(get_current_shader_type(), to_erase);
undo_redo->commit_action();
}
void VisualShaderEditor::_node_selected(Object *p_node) {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
+ VisualShader::Type type = get_current_shader_type();
GraphNode *gn = Object::cast_to<GraphNode>(p_node);
ERR_FAIL_COND(!gn);
@@ -1701,6 +2226,9 @@ void VisualShaderEditor::_notification(int p_what) {
Color keyword_color = EDITOR_GET("text_editor/highlighting/keyword_color");
Color comment_color = EDITOR_GET("text_editor/highlighting/comment_color");
Color symbol_color = EDITOR_GET("text_editor/highlighting/symbol_color");
+ Color function_color = EDITOR_GET("text_editor/highlighting/function_color");
+ Color number_color = EDITOR_GET("text_editor/highlighting/number_color");
+ Color members_color = EDITOR_GET("text_editor/highlighting/member_variable_color");
preview_text->add_theme_color_override("background_color", background_color);
@@ -1710,10 +2238,13 @@ void VisualShaderEditor::_notification(int p_what) {
preview_text->add_theme_font_override("font", get_theme_font("expression", "EditorFonts"));
preview_text->add_theme_color_override("font_color", text_color);
+ syntax_highlighter->set_number_color(number_color);
syntax_highlighter->set_symbol_color(symbol_color);
+ syntax_highlighter->set_function_color(function_color);
+ syntax_highlighter->set_member_variable_color(members_color);
syntax_highlighter->clear_color_regions();
syntax_highlighter->add_color_region("/*", "*/", comment_color, false);
- syntax_highlighter->add_color_region("//", "", comment_color, false);
+ syntax_highlighter->add_color_region("//", "", comment_color, true);
error_text->add_theme_font_override("font", get_theme_font("status_source", "EditorFonts"));
error_text->add_theme_color_override("font_color", get_theme_color("error_color", "Editor"));
@@ -1823,12 +2354,13 @@ void VisualShaderEditor::_dup_paste_nodes(int p_type, int p_pasted_type, List<in
Ref<VisualShaderNode> dupli = node->duplicate();
undo_redo->add_do_method(visual_shader.ptr(), "add_node", type, dupli, visual_shader->get_node_position(pasted_type, E->get()) + p_offset, id_from);
- undo_redo->add_undo_method(visual_shader.ptr(), "remove_node", type, id_from);
+ undo_redo->add_do_method(graph_plugin.ptr(), "add_node", type, id_from);
// duplicate size, inputs and outputs if node is group
Ref<VisualShaderNodeGroupBase> group = Object::cast_to<VisualShaderNodeGroupBase>(node.ptr());
if (!group.is_null()) {
undo_redo->add_do_method(dupli.ptr(), "set_size", group->get_size());
+ undo_redo->add_do_method(graph_plugin.ptr(), "set_node_size", type, id_from, group->get_size());
undo_redo->add_do_method(dupli.ptr(), "set_inputs", group->get_inputs());
undo_redo->add_do_method(dupli.ptr(), "set_outputs", group->get_outputs());
}
@@ -1849,12 +2381,19 @@ void VisualShaderEditor::_dup_paste_nodes(int p_type, int p_pasted_type, List<in
continue;
}
if (connection_remap.has(E->get().from_node) && connection_remap.has(E->get().to_node)) {
- undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes_forced", type, connection_remap[E->get().from_node], E->get().from_port, connection_remap[E->get().to_node], E->get().to_port);
+ undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes", type, connection_remap[E->get().from_node], E->get().from_port, connection_remap[E->get().to_node], E->get().to_port);
+ undo_redo->add_do_method(graph_plugin.ptr(), "connect_nodes", type, connection_remap[E->get().from_node], E->get().from_port, connection_remap[E->get().to_node], E->get().to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "disconnect_nodes", type, connection_remap[E->get().from_node], E->get().from_port, connection_remap[E->get().to_node], E->get().to_port);
}
}
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
+ id_from = base_id;
+ for (List<int>::Element *E = r_nodes.front(); E; E = E->next()) {
+ undo_redo->add_undo_method(visual_shader.ptr(), "remove_node", type, id_from);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "remove_node", type, id_from);
+ id_from++;
+ }
+
undo_redo->commit_action();
if (p_select) {
@@ -1879,7 +2418,7 @@ void VisualShaderEditor::_clear_buffer() {
}
void VisualShaderEditor::_duplicate_nodes() {
- int type = edit_type->get_selected();
+ int type = get_current_shader_type();
List<int> nodes;
Set<int> excluded;
@@ -1890,13 +2429,13 @@ void VisualShaderEditor::_duplicate_nodes() {
return;
}
- undo_redo->create_action(TTR("Duplicate Nodes"));
+ undo_redo->create_action(TTR("Duplicate VisualShader Node(s)"));
_dup_paste_nodes(type, type, nodes, excluded, Vector2(10, 10) * EDSCALE, true);
}
void VisualShaderEditor::_copy_nodes() {
- copy_type = edit_type->get_selected();
+ copy_type = get_current_shader_type();
_clear_buffer();
@@ -1908,9 +2447,7 @@ void VisualShaderEditor::_paste_nodes(bool p_use_custom_position, const Vector2
return;
}
- int type = edit_type->get_selected();
-
- undo_redo->create_action(TTR("Paste Nodes"));
+ int type = get_current_shader_type();
float scale = graph->get_zoom();
@@ -1921,117 +2458,130 @@ void VisualShaderEditor::_paste_nodes(bool p_use_custom_position, const Vector2
mpos = graph->get_local_mouse_position();
}
+ undo_redo->create_action(TTR("Paste VisualShader Node(s)"));
+
_dup_paste_nodes(type, copy_type, copy_nodes_buffer, copy_nodes_excluded_buffer, (graph->get_scroll_ofs() / scale + mpos / scale - selection_center), false);
_dup_update_excluded(type, copy_nodes_excluded_buffer); // to prevent selection of previous copies at new paste
}
-void VisualShaderEditor::_delete_nodes() {
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
- List<int> to_erase;
+void VisualShaderEditor::_mode_selected(int p_id) {
+ visual_shader->set_shader_type(particles_mode ? VisualShader::Type(p_id + 3) : VisualShader::Type(p_id));
+ _update_options_menu();
+ _update_graph();
+}
- for (int i = 0; i < graph->get_child_count(); i++) {
- GraphNode *gn = Object::cast_to<GraphNode>(graph->get_child(i));
- if (gn) {
- if (gn->is_selected() && gn->is_close_button_visible()) {
- to_erase.push_back(gn->get_name().operator String().to_int());
- }
- }
- }
+void VisualShaderEditor::_input_select_item(Ref<VisualShaderNodeInput> p_input, String p_name) {
+ String prev_name = p_input->get_input_name();
- if (to_erase.empty()) {
+ if (p_name == prev_name) {
return;
}
- undo_redo->create_action(TTR("Delete Nodes"));
+ bool type_changed = p_input->get_input_type_by_name(p_name) != p_input->get_input_type_by_name(prev_name);
- for (List<int>::Element *F = to_erase.front(); F; F = F->next()) {
- Ref<VisualShaderNode> node = visual_shader->get_node(type, F->get());
+ UndoRedo *undo_redo = EditorNode::get_singleton()->get_undo_redo();
+ undo_redo->create_action(TTR("Visual Shader Input Type Changed"));
- undo_redo->add_do_method(visual_shader.ptr(), "remove_node", type, F->get());
- undo_redo->add_undo_method(visual_shader.ptr(), "add_node", type, node, visual_shader->get_node_position(type, F->get()), F->get());
+ undo_redo->add_do_method(p_input.ptr(), "set_input_name", p_name);
+ undo_redo->add_undo_method(p_input.ptr(), "set_input_name", prev_name);
+
+ // update output port
+ for (int type_id = 0; type_id < VisualShader::TYPE_MAX; type_id++) {
+ VisualShader::Type type = VisualShader::Type(type_id);
+ int id = visual_shader->find_node_id(type, p_input);
+ if (id != VisualShader::NODE_ID_INVALID) {
+ if (type_changed) {
+ List<VisualShader::Connection> conns;
+ visual_shader->get_node_connections(type, &conns);
+ for (List<VisualShader::Connection>::Element *E = conns.front(); E; E = E->next()) {
+ if (E->get().from_node == id) {
+ if (visual_shader->is_port_types_compatible(p_input->get_input_type_by_name(p_name), visual_shader->get_node(type, E->get().to_node)->get_input_port_type(E->get().to_port))) {
+ undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ continue;
+ }
+ undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ }
+ }
+ }
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type_id, id);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type_id, id);
+ break;
+ }
+ }
- undo_redo->add_do_method(this, "_clear_buffer");
- undo_redo->add_undo_method(this, "_clear_buffer");
+ undo_redo->commit_action();
+}
- // restore size, inputs and outputs if node is group
- VisualShaderNodeGroupBase *group = Object::cast_to<VisualShaderNodeGroupBase>(node.ptr());
- if (group) {
- undo_redo->add_undo_method(group, "set_size", group->get_size());
- undo_redo->add_undo_method(group, "set_inputs", group->get_inputs());
- undo_redo->add_undo_method(group, "set_outputs", group->get_outputs());
- }
+void VisualShaderEditor::_uniform_select_item(Ref<VisualShaderNodeUniformRef> p_uniform_ref, String p_name) {
+ String prev_name = p_uniform_ref->get_uniform_name();
- // restore expression text if node is expression
- VisualShaderNodeExpression *expression = Object::cast_to<VisualShaderNodeExpression>(node.ptr());
- if (expression) {
- undo_redo->add_undo_method(expression, "set_expression", expression->get_expression());
- }
+ if (p_name == prev_name) {
+ return;
}
- List<VisualShader::Connection> conns;
- visual_shader->get_node_connections(type, &conns);
+ bool type_changed = p_uniform_ref->get_uniform_type_by_name(p_name) != p_uniform_ref->get_uniform_type_by_name(prev_name);
- List<VisualShader::Connection> used_conns;
- for (List<int>::Element *F = to_erase.front(); F; F = F->next()) {
- for (List<VisualShader::Connection>::Element *E = conns.front(); E; E = E->next()) {
- if (E->get().from_node == F->get() || E->get().to_node == F->get()) {
- bool cancel = false;
- for (List<VisualShader::Connection>::Element *R = used_conns.front(); R; R = R->next()) {
- if (R->get().from_node == E->get().from_node && R->get().from_port == E->get().from_port && R->get().to_node == E->get().to_node && R->get().to_port == E->get().to_port) {
- cancel = true; // to avoid ERR_ALREADY_EXISTS warning
- break;
+ UndoRedo *undo_redo = EditorNode::get_singleton()->get_undo_redo();
+ undo_redo->create_action(TTR("UniformRef Name Changed"));
+
+ undo_redo->add_do_method(p_uniform_ref.ptr(), "set_uniform_name", p_name);
+ undo_redo->add_undo_method(p_uniform_ref.ptr(), "set_uniform_name", prev_name);
+
+ // update output port
+ for (int type_id = 0; type_id < VisualShader::TYPE_MAX; type_id++) {
+ VisualShader::Type type = VisualShader::Type(type_id);
+ int id = visual_shader->find_node_id(type, p_uniform_ref);
+ if (id != VisualShader::NODE_ID_INVALID) {
+ if (type_changed) {
+ List<VisualShader::Connection> conns;
+ visual_shader->get_node_connections(type, &conns);
+ for (List<VisualShader::Connection>::Element *E = conns.front(); E; E = E->next()) {
+ if (E->get().from_node == id) {
+ if (visual_shader->is_port_types_compatible(p_uniform_ref->get_uniform_type_by_name(p_name), visual_shader->get_node(type, E->get().to_node)->get_input_port_type(E->get().to_port))) {
+ continue;
+ }
+ undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
}
}
- if (!cancel) {
- undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
- used_conns.push_back(E->get());
- }
}
+ undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type_id, id);
+ undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type_id, id);
+ break;
}
}
- undo_redo->add_do_method(this, "_update_graph");
- undo_redo->add_undo_method(this, "_update_graph");
undo_redo->commit_action();
}
-void VisualShaderEditor::_mode_selected(int p_id) {
- _update_options_menu();
- _update_graph();
-}
-
-void VisualShaderEditor::_input_select_item(Ref<VisualShaderNodeInput> input, String name) {
- String prev_name = input->get_input_name();
-
- if (name == prev_name) {
+void VisualShaderEditor::_float_constant_selected(int p_index, int p_node) {
+ if (p_index == 0) {
+ graph_plugin->update_node_size(p_node);
return;
}
- bool type_changed = input->get_input_type_by_name(name) != input->get_input_type_by_name(prev_name);
+ --p_index;
- UndoRedo *undo_redo = EditorNode::get_singleton()->get_undo_redo();
- undo_redo->create_action(TTR("Visual Shader Input Type Changed"));
-
- undo_redo->add_do_method(input.ptr(), "set_input_name", name);
- undo_redo->add_undo_method(input.ptr(), "set_input_name", prev_name);
+ ERR_FAIL_INDEX(p_index, MAX_FLOAT_CONST_DEFS);
- if (type_changed) {
- //restore connections if type changed
- VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
- int id = visual_shader->find_node_id(type, input);
- List<VisualShader::Connection> conns;
- visual_shader->get_node_connections(type, &conns);
- for (List<VisualShader::Connection>::Element *E = conns.front(); E; E = E->next()) {
- if (E->get().from_node == id) {
- undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
- }
- }
+ VisualShader::Type type = get_current_shader_type();
+ Ref<VisualShaderNodeFloatConstant> node = visual_shader->get_node(type, p_node);
+ if (!node.is_valid()) {
+ return;
}
- undo_redo->add_do_method(VisualShaderEditor::get_singleton(), "_update_graph");
- undo_redo->add_undo_method(VisualShaderEditor::get_singleton(), "_update_graph");
-
+ undo_redo->create_action(TTR("Set constant"));
+ undo_redo->add_do_method(node.ptr(), "set_constant", float_constant_defs[p_index].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();
}
@@ -2120,7 +2670,7 @@ void VisualShaderEditor::_node_menu_id_pressed(int p_idx) {
_paste_nodes(true, menu_point);
break;
case NodeMenuOptions::DELETE:
- _delete_nodes();
+ _delete_nodes_request();
break;
case NodeMenuOptions::DUPLICATE:
_duplicate_nodes();
@@ -2195,10 +2745,30 @@ void VisualShaderEditor::drop_data_fw(const Point2 &p_point, const Variant &p_da
_add_custom_node(arr[i]);
j++;
}
+ } else if (type == "CurveTexture") {
+ saved_node_pos = p_point + Vector2(0, j * 210 * EDSCALE);
+ saved_node_pos_dirty = true;
+ _add_curve_node(arr[i]);
+ j++;
} else if (ClassDB::get_parent_class(type) == "Texture2D") {
saved_node_pos = p_point + Vector2(0, j * 210 * EDSCALE);
saved_node_pos_dirty = true;
- _add_texture_node(arr[i]);
+ _add_texture2d_node(arr[i]);
+ j++;
+ } else if (type == "Texture2DArray") {
+ saved_node_pos = p_point + Vector2(0, j * 210 * EDSCALE);
+ saved_node_pos_dirty = true;
+ _add_texture2d_array_node(arr[i]);
+ j++;
+ } else if (ClassDB::get_parent_class(type) == "Texture3D") {
+ saved_node_pos = p_point + Vector2(0, j * 210 * EDSCALE);
+ saved_node_pos_dirty = true;
+ _add_texture3d_node(arr[i]);
+ j++;
+ } else if (type == "Cubemap") {
+ saved_node_pos = p_point + Vector2(0, j * 210 * EDSCALE);
+ saved_node_pos_dirty = true;
+ _add_cubemap_node(arr[i]);
j++;
}
}
@@ -2254,14 +2824,18 @@ void VisualShaderEditor::_update_preview() {
}
void VisualShaderEditor::_bind_methods() {
- ClassDB::bind_method("_rebuild", &VisualShaderEditor::_rebuild);
ClassDB::bind_method("_update_graph", &VisualShaderEditor::_update_graph);
ClassDB::bind_method("_update_options_menu", &VisualShaderEditor::_update_options_menu);
ClassDB::bind_method("_add_node", &VisualShaderEditor::_add_node);
ClassDB::bind_method("_node_changed", &VisualShaderEditor::_node_changed);
ClassDB::bind_method("_input_select_item", &VisualShaderEditor::_input_select_item);
+ ClassDB::bind_method("_uniform_select_item", &VisualShaderEditor::_uniform_select_item);
ClassDB::bind_method("_set_node_size", &VisualShaderEditor::_set_node_size);
ClassDB::bind_method("_clear_buffer", &VisualShaderEditor::_clear_buffer);
+ ClassDB::bind_method("_update_uniforms", &VisualShaderEditor::_update_uniforms);
+ ClassDB::bind_method("_set_mode", &VisualShaderEditor::_set_mode);
+ ClassDB::bind_method("_nodes_dragged", &VisualShaderEditor::_nodes_dragged);
+ ClassDB::bind_method("_float_constant_selected", &VisualShaderEditor::_float_constant_selected);
ClassDB::bind_method(D_METHOD("get_drag_data_fw"), &VisualShaderEditor::get_drag_data_fw);
ClassDB::bind_method(D_METHOD("can_drop_data_fw"), &VisualShaderEditor::can_drop_data_fw);
@@ -2313,8 +2887,8 @@ VisualShaderEditor::VisualShaderEditor() {
graph->connect("scroll_offset_changed", callable_mp(this, &VisualShaderEditor::_scroll_changed));
graph->connect("duplicate_nodes_request", callable_mp(this, &VisualShaderEditor::_duplicate_nodes));
graph->connect("copy_nodes_request", callable_mp(this, &VisualShaderEditor::_copy_nodes));
- graph->connect("paste_nodes_request", callable_mp(this, &VisualShaderEditor::_paste_nodes));
- graph->connect("delete_nodes_request", callable_mp(this, &VisualShaderEditor::_delete_nodes));
+ graph->connect("paste_nodes_request", callable_mp(this, &VisualShaderEditor::_paste_nodes), varray(false, Point2()));
+ graph->connect("delete_nodes_request", callable_mp(this, &VisualShaderEditor::_delete_nodes_request));
graph->connect("gui_input", callable_mp(this, &VisualShaderEditor::_graph_gui_input));
graph->connect("connection_to_empty", callable_mp(this, &VisualShaderEditor::_connection_to_empty));
graph->connect("connection_from_empty", callable_mp(this, &VisualShaderEditor::_connection_from_empty));
@@ -2341,14 +2915,26 @@ VisualShaderEditor::VisualShaderEditor() {
graph->get_zoom_hbox()->add_child(vs);
graph->get_zoom_hbox()->move_child(vs, 0);
- edit_type = memnew(OptionButton);
- edit_type->add_item(TTR("Vertex"));
- edit_type->add_item(TTR("Fragment"));
- edit_type->add_item(TTR("Light"));
- edit_type->select(1);
- edit_type->connect("item_selected", callable_mp(this, &VisualShaderEditor::_mode_selected));
- graph->get_zoom_hbox()->add_child(edit_type);
- graph->get_zoom_hbox()->move_child(edit_type, 0);
+ edit_type_standart = memnew(OptionButton);
+ edit_type_standart->add_item(TTR("Vertex"));
+ edit_type_standart->add_item(TTR("Fragment"));
+ edit_type_standart->add_item(TTR("Light"));
+ edit_type_standart->select(1);
+ edit_type_standart->connect("item_selected", callable_mp(this, &VisualShaderEditor::_mode_selected));
+
+ edit_type_particles = memnew(OptionButton);
+ edit_type_particles->add_item(TTR("Emit"));
+ edit_type_particles->add_item(TTR("Process"));
+ edit_type_particles->add_item(TTR("End"));
+ edit_type_particles->select(0);
+ edit_type_particles->connect("item_selected", callable_mp(this, &VisualShaderEditor::_mode_selected));
+
+ edit_type = edit_type_standart;
+
+ graph->get_zoom_hbox()->add_child(edit_type_particles);
+ graph->get_zoom_hbox()->move_child(edit_type_particles, 0);
+ graph->get_zoom_hbox()->add_child(edit_type_standart);
+ graph->get_zoom_hbox()->move_child(edit_type_standart, 0);
add_node = memnew(Button);
add_node->set_flat(true);
@@ -2371,14 +2957,14 @@ VisualShaderEditor::VisualShaderEditor() {
preview_vbox = memnew(VBoxContainer);
preview_vbox->set_visible(preview_showed);
main_box->add_child(preview_vbox);
- preview_text = memnew(TextEdit);
+ preview_text = memnew(CodeEdit);
syntax_highlighter.instance();
preview_vbox->add_child(preview_text);
preview_text->set_h_size_flags(SIZE_EXPAND_FILL);
preview_text->set_v_size_flags(SIZE_EXPAND_FILL);
preview_text->set_custom_minimum_size(Size2(400 * EDSCALE, 0));
preview_text->set_syntax_highlighter(syntax_highlighter);
- preview_text->set_show_line_numbers(true);
+ preview_text->set_draw_line_numbers(true);
preview_text->set_readonly(true);
error_text = memnew(Label);
@@ -2527,6 +3113,7 @@ VisualShaderEditor::VisualShaderEditor() {
// INPUT
// SPATIAL-FOR-ALL
+
const String input_param_shader_modes = TTR("'%s' input parameter for all shader modes.");
add_options.push_back(AddOption("Camera", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "camera"), "camera", VisualShaderNode::PORT_TYPE_TRANSFORM, -1, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("InvCamera", "Input", "All", "VisualShaderNodeInput", vformat(input_param_shader_modes, "inv_camera"), "inv_camera", VisualShaderNode::PORT_TYPE_TRANSFORM, -1, Shader::MODE_SPATIAL));
@@ -2557,124 +3144,157 @@ VisualShaderEditor::VisualShaderEditor() {
const String input_param_for_fragment_shader_mode = TTR("'%s' input parameter for fragment shader mode.");
const String input_param_for_light_shader_mode = TTR("'%s' input parameter for light shader mode.");
const String input_param_for_vertex_shader_mode = TTR("'%s' input parameter for vertex shader mode.");
+ const String input_param_for_emit_shader_mode = TTR("'%s' input parameter for emit shader mode.");
+ const String input_param_for_process_shader_mode = TTR("'%s' input parameter for process shader mode.");
+ const String input_param_for_end_shader_mode = TTR("'%s' input parameter for end shader mode.");
+ const String input_param_for_emit_and_process_shader_mode = TTR("'%s' input parameter for emit and process shader mode.");
const String input_param_for_vertex_and_fragment_shader_mode = TTR("'%s' input parameter for vertex and fragment shader mode.");
- add_options.push_back(AddOption("Alpha", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Binormal", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "binormal"), "binormal", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Color", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("DepthTexture", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "depth_texture"), "depth_texture", VisualShaderNode::PORT_TYPE_SAMPLER, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("FragCoord", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "fragcoord"), "fragcoord", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("FrontFacing", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "front_facing"), "front_facing", VisualShaderNode::PORT_TYPE_BOOLEAN, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("PointCoord", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "point_coord"), "point_coord", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("ScreenTexture", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_texture"), "screen_texture", VisualShaderNode::PORT_TYPE_SAMPLER, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("ScreenUV", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_uv"), "screen_uv", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Side", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "side"), "side", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Tangent", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "tangent"), "tangent", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("UV", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "uv"), "uv", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("UV2", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "uv2"), "uv2", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Vertex", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "vertex"), "vertex", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("View", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "view"), "view", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL));
-
- add_options.push_back(AddOption("Albedo", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "albedo"), "albedo", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Attenuation", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "attenuation"), "attenuation", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Diffuse", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "diffuse"), "diffuse", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("FragCoord", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "fragcoord"), "fragcoord", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Light", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light"), "light", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("LightColor", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_color"), "light_color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Roughness", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "roughness"), "roughness", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_LIGHT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Specular", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "specular"), "specular", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Transmission", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "transmission"), "transmission", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("View", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "view"), "view", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_SPATIAL));
-
- add_options.push_back(AddOption("Alpha", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Binormal", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "binormal"), "binormal", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Color", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("ModelView", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "modelview"), "modelview", VisualShaderNode::PORT_TYPE_TRANSFORM, VisualShader::TYPE_VERTEX, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("PointSize", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "point_size"), "point_size", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Tangent", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_mode, "tangent"), "tangent", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("UV", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "uv"), "uv", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("UV2", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "uv2"), "uv2", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_SPATIAL));
- add_options.push_back(AddOption("Vertex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "vertex"), "vertex", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Alpha", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Binormal", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "binormal"), "binormal", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Color", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("DepthTexture", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "depth_texture"), "depth_texture", VisualShaderNode::PORT_TYPE_SAMPLER, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("FragCoord", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "fragcoord"), "fragcoord", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("FrontFacing", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "front_facing"), "front_facing", VisualShaderNode::PORT_TYPE_BOOLEAN, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("PointCoord", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "point_coord"), "point_coord", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("ScreenTexture", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_texture"), "screen_texture", VisualShaderNode::PORT_TYPE_SAMPLER, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("ScreenUV", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_uv"), "screen_uv", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Side", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "side"), "side", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Tangent", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "tangent"), "tangent", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("UV", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "uv"), "uv", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("UV2", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "uv2"), "uv2", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Vertex", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "vertex"), "vertex", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("View", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "view"), "view", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL));
+
+ add_options.push_back(AddOption("Albedo", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "albedo"), "albedo", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Attenuation", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "attenuation"), "attenuation", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Diffuse", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "diffuse"), "diffuse", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("FragCoord", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "fragcoord"), "fragcoord", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Light", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light"), "light", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("LightColor", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_color"), "light_color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Metallic", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "metallic"), "metallic", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Roughness", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "roughness"), "roughness", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Specular", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "specular"), "specular", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Transmission", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "transmission"), "transmission", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("View", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "view"), "view", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
+
+ add_options.push_back(AddOption("Alpha", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Binormal", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "binormal"), "binormal", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Color", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("ModelView", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "modelview"), "modelview", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("PointSize", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "point_size"), "point_size", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Tangent", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_mode, "tangent"), "tangent", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("UV", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "uv"), "uv", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("UV2", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "uv2"), "uv2", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("Vertex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "vertex"), "vertex", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL));
// CANVASITEM INPUTS
- add_options.push_back(AddOption("FragCoord", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "fragcoord"), "fragcoord", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("LightPass", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "light_pass"), "light_pass", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("NormalTexture", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "normal_texture"), "normal_texture", VisualShaderNode::PORT_TYPE_SAMPLER, VisualShader::TYPE_FRAGMENT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("PointCoord", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "point_coord"), "point_coord", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("ScreenPixelSize", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_pixel_size"), "screen_pixel_size", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("ScreenTexture", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_texture"), "screen_texture", VisualShaderNode::PORT_TYPE_SAMPLER, VisualShader::TYPE_FRAGMENT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("ScreenUV", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "screen_uv"), "screen_uv", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("Texture", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "texture"), "texture", VisualShaderNode::PORT_TYPE_SAMPLER, VisualShader::TYPE_FRAGMENT, Shader::MODE_CANVAS_ITEM));
-
- add_options.push_back(AddOption("FragCoord", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "fragcoord"), "fragcoord", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("LightAlpha", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_alpha"), "light_alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("LightColor", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_color"), "light_color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("LightHeight", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_height"), "light_height", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("LightUV", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_uv"), "light_uv", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("LightVector", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_vec"), "light_vec", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("Normal", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "normal"), "normal", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("PointCoord", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "point_coord"), "point_coord", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("ScreenUV", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "screen_uv"), "screen_uv", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("ShadowAlpha", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "shadow_alpha"), "shadow_alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("ShadowColor", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "shadow_color"), "shadow_color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("ShadowVec", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "shadow_vec"), "shadow_vec", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("Texture", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "texture"), "texture", VisualShaderNode::PORT_TYPE_SAMPLER, VisualShader::TYPE_LIGHT, Shader::MODE_CANVAS_ITEM));
-
- add_options.push_back(AddOption("Extra", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "extra"), "extra", VisualShaderNode::PORT_TYPE_TRANSFORM, VisualShader::TYPE_VERTEX, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("LightPass", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "light_pass"), "light_pass", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("PointSize", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "point_size"), "point_size", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("Projection", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "projection"), "projection", VisualShaderNode::PORT_TYPE_TRANSFORM, VisualShader::TYPE_VERTEX, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("Vertex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "vertex"), "vertex", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_CANVAS_ITEM));
- add_options.push_back(AddOption("World", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "world"), "world", VisualShaderNode::PORT_TYPE_TRANSFORM, VisualShader::TYPE_VERTEX, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("FragCoord", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "fragcoord"), "fragcoord", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("LightPass", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "light_pass"), "light_pass", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("NormalTexture", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "normal_texture"), "normal_texture", VisualShaderNode::PORT_TYPE_SAMPLER, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("PointCoord", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "point_coord"), "point_coord", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("ScreenPixelSize", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_pixel_size"), "screen_pixel_size", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("ScreenTexture", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_texture"), "screen_texture", VisualShaderNode::PORT_TYPE_SAMPLER, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("ScreenUV", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "screen_uv"), "screen_uv", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("Texture", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "texture"), "texture", VisualShaderNode::PORT_TYPE_SAMPLER, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM));
+
+ add_options.push_back(AddOption("FragCoord", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "fragcoord"), "fragcoord", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("LightAlpha", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_alpha"), "light_alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("LightColor", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_color"), "light_color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("LightHeight", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_height"), "light_height", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("LightUV", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_uv"), "light_uv", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("LightVector", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_vec"), "light_vec", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("Normal", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "normal"), "normal", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("PointCoord", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "point_coord"), "point_coord", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("ScreenUV", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "screen_uv"), "screen_uv", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("ShadowAlpha", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "shadow_alpha"), "shadow_alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("ShadowColor", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "shadow_color"), "shadow_color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("ShadowVec", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "shadow_vec"), "shadow_vec", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("Texture", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "texture"), "texture", VisualShaderNode::PORT_TYPE_SAMPLER, TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM));
+
+ add_options.push_back(AddOption("Extra", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "extra"), "extra", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("LightPass", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "light_pass"), "light_pass", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("PointSize", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "point_size"), "point_size", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("Projection", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "projection"), "projection", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("Vertex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "vertex"), "vertex", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
+ add_options.push_back(AddOption("World", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "world"), "world", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM));
// PARTICLES INPUTS
- add_options.push_back(AddOption("Active", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "active"), "active", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
- add_options.push_back(AddOption("Alpha", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
- add_options.push_back(AddOption("Color", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
- add_options.push_back(AddOption("Custom", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "custom"), "custom", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
- add_options.push_back(AddOption("CustomAlpha", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "custom_alpha"), "custom_alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
- add_options.push_back(AddOption("Delta", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "delta"), "delta", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
- add_options.push_back(AddOption("EmissionTransform", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "emission_transform"), "emission_transform", VisualShaderNode::PORT_TYPE_TRANSFORM, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
- add_options.push_back(AddOption("Index", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "index"), "index", VisualShaderNode::PORT_TYPE_SCALAR_INT, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
- add_options.push_back(AddOption("LifeTime", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "lifetime"), "lifetime", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
- add_options.push_back(AddOption("Restart", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "restart"), "restart", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
- add_options.push_back(AddOption("Time", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
- add_options.push_back(AddOption("Transform", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "transform"), "transform", VisualShaderNode::PORT_TYPE_TRANSFORM, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
- add_options.push_back(AddOption("Velocity", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "velocity"), "velocity", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Active", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "active"), "active", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Alpha", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Color", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Custom", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom"), "custom", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("CustomAlpha", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom_alpha"), "custom_alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Delta", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "delta"), "delta", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("EmissionTransform", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "emission_transform"), "emission_transform", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Index", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "index"), "index", VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("LifeTime", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "lifetime"), "lifetime", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Restart", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "restart"), "restart", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Time", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Transform", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "transform"), "transform", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Velocity", "Input", "Emit", "VisualShaderNodeInput", vformat(input_param_shader_modes, "velocity"), "velocity", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_EMIT, Shader::MODE_PARTICLES));
+
+ add_options.push_back(AddOption("Active", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "active"), "active", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Alpha", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Color", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Custom", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom"), "custom", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("CustomAlpha", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom_alpha"), "custom_alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Delta", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "delta"), "delta", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("EmissionTransform", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "emission_transform"), "emission_transform", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Index", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "index"), "index", VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("LifeTime", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "lifetime"), "lifetime", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Restart", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "restart"), "restart", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Time", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Transform", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "transform"), "transform", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Velocity", "Input", "Process", "VisualShaderNodeInput", vformat(input_param_shader_modes, "velocity"), "velocity", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_PROCESS, Shader::MODE_PARTICLES));
+
+ add_options.push_back(AddOption("Active", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "active"), "active", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Alpha", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Color", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Custom", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom"), "custom", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("CustomAlpha", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "custom_alpha"), "custom_alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Delta", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "delta"), "delta", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("EmissionTransform", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "emission_transform"), "emission_transform", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Index", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "index"), "index", VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("LifeTime", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "lifetime"), "lifetime", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Restart", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "restart"), "restart", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Time", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Transform", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "transform"), "transform", VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
+ add_options.push_back(AddOption("Velocity", "Input", "End", "VisualShaderNodeInput", vformat(input_param_shader_modes, "velocity"), "velocity", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_END, Shader::MODE_PARTICLES));
// SKY INPUTS
- add_options.push_back(AddOption("AtCubeMapPass", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "at_cubemap_pass"), "at_cubemap_pass", VisualShaderNode::PORT_TYPE_BOOLEAN, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("AtHalfResPass", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "at_half_res_pass"), "at_half_res_pass", VisualShaderNode::PORT_TYPE_BOOLEAN, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("AtQuarterResPass", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "at_quarter_res_pass"), "at_quarter_res_pass", VisualShaderNode::PORT_TYPE_BOOLEAN, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("EyeDir", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "eyedir"), "eyedir", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("HalfResColor", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "half_res_color"), "half_res_color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("HalfResAlpha", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "half_res_alpha"), "half_res_alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light0Color", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light0_color"), "light0_color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light0Direction", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light0_direction"), "light0_direction", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light0Enabled", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light0_enabled"), "light0_enabled", VisualShaderNode::PORT_TYPE_BOOLEAN, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light0Energy", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light0_energy"), "light0_energy", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light1Color", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light1_color"), "light1_color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light1Direction", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light1_direction"), "light1_direction", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light1Enabled", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light1_enabled"), "light1_enabled", VisualShaderNode::PORT_TYPE_BOOLEAN, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light1Energy", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light1_energy"), "light1_energy", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light2Color", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light2_color"), "light2_color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light2Direction", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light2_direction"), "light2_direction", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light2Enabled", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light2_enabled"), "light2_enabled", VisualShaderNode::PORT_TYPE_BOOLEAN, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light2Energy", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light2_energy"), "light2_energy", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light3Color", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light3_color"), "light3_color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light3Direction", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light3_direction"), "light3_direction", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light3Enabled", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light3_enabled"), "light3_enabled", VisualShaderNode::PORT_TYPE_BOOLEAN, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Light3Energy", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light3_energy"), "light3_energy", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Position", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "position"), "position", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("QuarterResColor", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "quarter_res_color"), "quarter_res_color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("QuarterResAlpha", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "quarter_res_alpha"), "quarter_res_alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Radiance", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "radiance"), "radiance", VisualShaderNode::PORT_TYPE_SAMPLER, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("ScreenUV", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_uv"), "screen_uv", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("SkyCoords", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "sky_coords"), "sky_coords", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
- add_options.push_back(AddOption("Time", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("AtCubeMapPass", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "at_cubemap_pass"), "at_cubemap_pass", VisualShaderNode::PORT_TYPE_BOOLEAN, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("AtHalfResPass", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "at_half_res_pass"), "at_half_res_pass", VisualShaderNode::PORT_TYPE_BOOLEAN, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("AtQuarterResPass", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "at_quarter_res_pass"), "at_quarter_res_pass", VisualShaderNode::PORT_TYPE_BOOLEAN, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("EyeDir", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "eyedir"), "eyedir", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("HalfResColor", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "half_res_color"), "half_res_color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("HalfResAlpha", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "half_res_alpha"), "half_res_alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light0Color", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light0_color"), "light0_color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light0Direction", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light0_direction"), "light0_direction", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light0Enabled", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light0_enabled"), "light0_enabled", VisualShaderNode::PORT_TYPE_BOOLEAN, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light0Energy", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light0_energy"), "light0_energy", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light1Color", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light1_color"), "light1_color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light1Direction", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light1_direction"), "light1_direction", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light1Enabled", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light1_enabled"), "light1_enabled", VisualShaderNode::PORT_TYPE_BOOLEAN, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light1Energy", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light1_energy"), "light1_energy", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light2Color", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light2_color"), "light2_color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light2Direction", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light2_direction"), "light2_direction", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light2Enabled", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light2_enabled"), "light2_enabled", VisualShaderNode::PORT_TYPE_BOOLEAN, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light2Energy", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light2_energy"), "light2_energy", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light3Color", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light3_color"), "light3_color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light3Direction", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light3_direction"), "light3_direction", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light3Enabled", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light3_enabled"), "light3_enabled", VisualShaderNode::PORT_TYPE_BOOLEAN, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Light3Energy", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "light3_energy"), "light3_energy", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Position", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "position"), "position", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("QuarterResColor", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "quarter_res_color"), "quarter_res_color", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("QuarterResAlpha", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "quarter_res_alpha"), "quarter_res_alpha", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Radiance", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "radiance"), "radiance", VisualShaderNode::PORT_TYPE_SAMPLER, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("ScreenUV", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "screen_uv"), "screen_uv", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("SkyCoords", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "sky_coords"), "sky_coords", VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
+ add_options.push_back(AddOption("Time", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_shader_mode, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SKY));
// SCALAR
@@ -2685,15 +3305,9 @@ VisualShaderEditor::VisualShaderEditor() {
//CONSTANTS
- add_options.push_back(AddOption("E", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("E constant (2.718282). Represents the base of the natural logarithm."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_E));
- add_options.push_back(AddOption("Epsilon", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Epsilon constant (0.00001). Smallest possible scalar number."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, CMP_EPSILON));
- add_options.push_back(AddOption("Phi", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Phi constant (1.618034). Golden ratio."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, 1.618034f));
- add_options.push_back(AddOption("Pi/4", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Pi/4 constant (0.785398) or 45 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_PI / 4));
- add_options.push_back(AddOption("Pi/2", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Pi/2 constant (1.570796) or 90 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_PI / 2));
- add_options.push_back(AddOption("Pi", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Pi constant (3.141593) or 180 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_PI));
- add_options.push_back(AddOption("Tau", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Tau constant (6.283185) or 360 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_TAU));
- add_options.push_back(AddOption("Sqrt2", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Sqrt2 constant (1.414214). Square root of 2."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_SQRT2));
-
+ for (int i = 0; i < MAX_FLOAT_CONST_DEFS; i++) {
+ add_options.push_back(AddOption(float_constant_defs[i].name, "Scalar", "Constants", "VisualShaderNodeFloatConstant", float_constant_defs[i].desc, -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, float_constant_defs[i].value));
+ }
// FUNCTIONS
add_options.push_back(AddOption("Abs", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the absolute value of the parameter."), VisualShaderNodeFloatFunc::FUNC_ABS, VisualShaderNode::PORT_TYPE_SCALAR));
@@ -2721,7 +3335,7 @@ VisualShaderEditor::VisualShaderEditor() {
add_options.push_back(AddOption("Max", "Scalar", "Functions", "VisualShaderNodeFloatOp", TTR("Returns the greater of two values."), VisualShaderNodeFloatOp::OP_MAX, VisualShaderNode::PORT_TYPE_SCALAR));
add_options.push_back(AddOption("Min", "Scalar", "Functions", "VisualShaderNodeFloatOp", TTR("Returns the lesser of two values."), VisualShaderNodeFloatOp::OP_MIN, VisualShaderNode::PORT_TYPE_SCALAR));
add_options.push_back(AddOption("Mix", "Scalar", "Functions", "VisualShaderNodeScalarInterp", TTR("Linear interpolation between two scalars."), -1, VisualShaderNode::PORT_TYPE_SCALAR));
- add_options.push_back(AddOption("MultiplyAdd", "Scalar", "Functions", "VisualShaderNodeMultiplyAdd", TTR("Performs a fused multiply-add operation (a * b + c) on scalars."), VisualShaderNodeMultiplyAdd::TYPE_SCALAR, VisualShaderNode::PORT_TYPE_SCALAR));
+ add_options.push_back(AddOption("MultiplyAdd", "Scalar", "Functions", "VisualShaderNodeMultiplyAdd", TTR("Performs a fused multiply-add operation (a * b + c) on scalars."), VisualShaderNodeMultiplyAdd::OP_TYPE_SCALAR, VisualShaderNode::PORT_TYPE_SCALAR));
add_options.push_back(AddOption("Negate", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the opposite value of the parameter."), VisualShaderNodeFloatFunc::FUNC_NEGATE, VisualShaderNode::PORT_TYPE_SCALAR));
add_options.push_back(AddOption("Negate", "Scalar", "Functions", "VisualShaderNodeIntFunc", TTR("Returns the opposite value of the parameter."), VisualShaderNodeIntFunc::FUNC_NEGATE, VisualShaderNode::PORT_TYPE_SCALAR_INT));
add_options.push_back(AddOption("OneMinus", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("1.0 - scalar"), VisualShaderNodeFloatFunc::FUNC_ONEMINUS, VisualShaderNode::PORT_TYPE_SCALAR));
@@ -2759,15 +3373,22 @@ VisualShaderEditor::VisualShaderEditor() {
add_options.push_back(AddOption("IntUniform", "Scalar", "Variables", "VisualShaderNodeIntUniform", TTR("Scalar integer uniform."), -1, VisualShaderNode::PORT_TYPE_SCALAR_INT));
// TEXTURES
-
+ cubemap_node_option_idx = add_options.size();
add_options.push_back(AddOption("CubeMap", "Textures", "Functions", "VisualShaderNodeCubemap", TTR("Perform the cubic texture lookup."), -1, -1));
- texture_node_option_idx = add_options.size();
- add_options.push_back(AddOption("Texture2D", "Textures", "Functions", "VisualShaderNodeTexture", TTR("Perform the texture lookup."), -1, -1));
- add_options.push_back(AddOption("CubeMapUniform", "Textures", "Variables", "VisualShaderNodeCubemapUniform", TTR("Cubic texture uniform lookup."), -1, -1));
+ curve_node_option_idx = add_options.size();
+ add_options.push_back(AddOption("CurveTexture", "Textures", "Functions", "VisualShaderNodeCurveTexture", TTR("Perform the curve texture lookup."), -1, -1));
+ texture2d_node_option_idx = add_options.size();
+ add_options.push_back(AddOption("Texture2D", "Textures", "Functions", "VisualShaderNodeTexture", TTR("Perform the 2D texture lookup."), -1, -1));
+ texture2d_array_node_option_idx = add_options.size();
add_options.push_back(AddOption("Texture2DArray", "Textures", "Functions", "VisualShaderNodeTexture2DArray", TTR("Perform the 2D-array texture lookup."), -1, -1, -1, -1, -1));
+ texture3d_node_option_idx = add_options.size();
+ add_options.push_back(AddOption("Texture3D", "Textures", "Functions", "VisualShaderNodeTexture3D", TTR("Perform the 3D texture lookup."), -1, -1));
+
+ add_options.push_back(AddOption("CubeMapUniform", "Textures", "Variables", "VisualShaderNodeCubemapUniform", TTR("Cubic texture uniform lookup."), -1, -1));
add_options.push_back(AddOption("TextureUniform", "Textures", "Variables", "VisualShaderNodeTextureUniform", TTR("2D texture uniform lookup."), -1, -1));
- add_options.push_back(AddOption("TextureUniformTriplanar", "Textures", "Variables", "VisualShaderNodeTextureUniformTriplanar", TTR("2D texture uniform lookup with triplanar."), -1, -1, VisualShader::TYPE_FRAGMENT | VisualShader::TYPE_LIGHT, Shader::MODE_SPATIAL));
+ add_options.push_back(AddOption("TextureUniformTriplanar", "Textures", "Variables", "VisualShaderNodeTextureUniformTriplanar", TTR("2D texture uniform lookup with triplanar."), -1, -1, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL));
add_options.push_back(AddOption("Texture2DArrayUniform", "Textures", "Variables", "VisualShaderNodeTexture2DArrayUniform", TTR("2D array of textures uniform lookup."), -1, -1, -1, -1, -1));
+ add_options.push_back(AddOption("Texture3DUniform", "Textures", "Variables", "VisualShaderNodeTexture3DUniform", TTR("3D texture uniform lookup."), -1, -1, -1, -1, -1));
// TRANSFORM
@@ -2824,7 +3445,7 @@ VisualShaderEditor::VisualShaderEditor() {
add_options.push_back(AddOption("Min", "Vector", "Functions", "VisualShaderNodeVectorOp", TTR("Returns the lesser of two values."), VisualShaderNodeVectorOp::OP_MIN, VisualShaderNode::PORT_TYPE_VECTOR));
add_options.push_back(AddOption("Mix", "Vector", "Functions", "VisualShaderNodeVectorInterp", TTR("Linear interpolation between two vectors."), -1, VisualShaderNode::PORT_TYPE_VECTOR));
add_options.push_back(AddOption("MixS", "Vector", "Functions", "VisualShaderNodeVectorScalarMix", TTR("Linear interpolation between two vectors using scalar."), -1, VisualShaderNode::PORT_TYPE_VECTOR));
- add_options.push_back(AddOption("MultiplyAdd", "Vector", "Functions", "VisualShaderNodeMultiplyAdd", TTR("Performs a fused multiply-add operation (a * b + c) on vectors."), VisualShaderNodeMultiplyAdd::TYPE_VECTOR, VisualShaderNode::PORT_TYPE_VECTOR));
+ add_options.push_back(AddOption("MultiplyAdd", "Vector", "Functions", "VisualShaderNodeMultiplyAdd", TTR("Performs a fused multiply-add operation (a * b + c) on vectors."), VisualShaderNodeMultiplyAdd::OP_TYPE_VECTOR, VisualShaderNode::PORT_TYPE_VECTOR));
add_options.push_back(AddOption("Negate", "Vector", "Functions", "VisualShaderNodeVectorFunc", TTR("Returns the opposite value of the parameter."), VisualShaderNodeVectorFunc::FUNC_NEGATE, VisualShaderNode::PORT_TYPE_VECTOR));
add_options.push_back(AddOption("Normalize", "Vector", "Functions", "VisualShaderNodeVectorFunc", TTR("Calculates the normalize product of vector."), VisualShaderNodeVectorFunc::FUNC_NORMALIZE, VisualShaderNode::PORT_TYPE_VECTOR));
add_options.push_back(AddOption("OneMinus", "Vector", "Functions", "VisualShaderNodeVectorFunc", TTR("1.0 - vector"), VisualShaderNodeVectorFunc::FUNC_ONEMINUS, VisualShaderNode::PORT_TYPE_VECTOR));
@@ -2862,16 +3483,17 @@ VisualShaderEditor::VisualShaderEditor() {
add_options.push_back(AddOption("Expression", "Special", "", "VisualShaderNodeExpression", TTR("Custom Godot Shader Language expression, with custom amount of input and output ports. This is a direct injection of code into the vertex/fragment/light function, do not use it to write the function declarations inside.")));
add_options.push_back(AddOption("Fresnel", "Special", "", "VisualShaderNodeFresnel", TTR("Returns falloff based on the dot product of surface normal and view direction of camera (pass associated inputs to it)."), -1, VisualShaderNode::PORT_TYPE_SCALAR));
add_options.push_back(AddOption("GlobalExpression", "Special", "", "VisualShaderNodeGlobalExpression", TTR("Custom Godot Shader Language expression, which is placed on top of the resulted shader. You can place various function definitions inside and call it later in the Expressions. You can also declare varyings, uniforms and constants.")));
+ add_options.push_back(AddOption("UniformRef", "Special", "", "VisualShaderNodeUniformRef", TTR("A reference to an existing uniform.")));
- add_options.push_back(AddOption("ScalarDerivativeFunc", "Special", "Common", "VisualShaderNodeScalarDerivativeFunc", TTR("(Fragment/Light mode only) Scalar derivative function."), -1, VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT | VisualShader::TYPE_LIGHT, -1, -1, true));
- add_options.push_back(AddOption("VectorDerivativeFunc", "Special", "Common", "VisualShaderNodeVectorDerivativeFunc", TTR("(Fragment/Light mode only) Vector derivative function."), -1, VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT | VisualShader::TYPE_LIGHT, -1, -1, true));
+ add_options.push_back(AddOption("ScalarDerivativeFunc", "Special", "Common", "VisualShaderNodeScalarDerivativeFunc", TTR("(Fragment/Light mode only) Scalar derivative function."), -1, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, -1, -1, true));
+ add_options.push_back(AddOption("VectorDerivativeFunc", "Special", "Common", "VisualShaderNodeVectorDerivativeFunc", TTR("(Fragment/Light mode only) Vector derivative function."), -1, VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, -1, -1, true));
- add_options.push_back(AddOption("DdX", "Special", "Derivative", "VisualShaderNodeVectorDerivativeFunc", TTR("(Fragment/Light mode only) (Vector) Derivative in 'x' using local differencing."), VisualShaderNodeVectorDerivativeFunc::FUNC_X, VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT | VisualShader::TYPE_LIGHT, -1, -1, true));
- add_options.push_back(AddOption("DdXS", "Special", "Derivative", "VisualShaderNodeScalarDerivativeFunc", TTR("(Fragment/Light mode only) (Scalar) Derivative in 'x' using local differencing."), VisualShaderNodeScalarDerivativeFunc::FUNC_X, VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT | VisualShader::TYPE_LIGHT, -1, -1, true));
- add_options.push_back(AddOption("DdY", "Special", "Derivative", "VisualShaderNodeVectorDerivativeFunc", TTR("(Fragment/Light mode only) (Vector) Derivative in 'y' using local differencing."), VisualShaderNodeVectorDerivativeFunc::FUNC_Y, VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT | VisualShader::TYPE_LIGHT, -1, -1, true));
- add_options.push_back(AddOption("DdYS", "Special", "Derivative", "VisualShaderNodeScalarDerivativeFunc", TTR("(Fragment/Light mode only) (Scalar) Derivative in 'y' using local differencing."), VisualShaderNodeScalarDerivativeFunc::FUNC_Y, VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT | VisualShader::TYPE_LIGHT, -1, -1, true));
- add_options.push_back(AddOption("Sum", "Special", "Derivative", "VisualShaderNodeVectorDerivativeFunc", TTR("(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and 'y'."), VisualShaderNodeVectorDerivativeFunc::FUNC_SUM, VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_FRAGMENT | VisualShader::TYPE_LIGHT, -1, -1, true));
- add_options.push_back(AddOption("SumS", "Special", "Derivative", "VisualShaderNodeScalarDerivativeFunc", TTR("(Fragment/Light mode only) (Scalar) Sum of absolute derivative in 'x' and 'y'."), VisualShaderNodeScalarDerivativeFunc::FUNC_SUM, VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT | VisualShader::TYPE_LIGHT, -1, -1, true));
+ add_options.push_back(AddOption("DdX", "Special", "Derivative", "VisualShaderNodeVectorDerivativeFunc", TTR("(Fragment/Light mode only) (Vector) Derivative in 'x' using local differencing."), VisualShaderNodeVectorDerivativeFunc::FUNC_X, VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, -1, -1, true));
+ add_options.push_back(AddOption("DdXS", "Special", "Derivative", "VisualShaderNodeScalarDerivativeFunc", TTR("(Fragment/Light mode only) (Scalar) Derivative in 'x' using local differencing."), VisualShaderNodeScalarDerivativeFunc::FUNC_X, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, -1, -1, true));
+ add_options.push_back(AddOption("DdY", "Special", "Derivative", "VisualShaderNodeVectorDerivativeFunc", TTR("(Fragment/Light mode only) (Vector) Derivative in 'y' using local differencing."), VisualShaderNodeVectorDerivativeFunc::FUNC_Y, VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, -1, -1, true));
+ add_options.push_back(AddOption("DdYS", "Special", "Derivative", "VisualShaderNodeScalarDerivativeFunc", TTR("(Fragment/Light mode only) (Scalar) Derivative in 'y' using local differencing."), VisualShaderNodeScalarDerivativeFunc::FUNC_Y, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, -1, -1, true));
+ add_options.push_back(AddOption("Sum", "Special", "Derivative", "VisualShaderNodeVectorDerivativeFunc", TTR("(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and 'y'."), VisualShaderNodeVectorDerivativeFunc::FUNC_SUM, VisualShaderNode::PORT_TYPE_VECTOR, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, -1, -1, true));
+ add_options.push_back(AddOption("SumS", "Special", "Derivative", "VisualShaderNodeScalarDerivativeFunc", TTR("(Fragment/Light mode only) (Scalar) Sum of absolute derivative in 'x' and 'y'."), VisualShaderNodeScalarDerivativeFunc::FUNC_SUM, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, -1, -1, true));
custom_node_option_idx = add_options.size();
/////////////////////////////////////////////////////////////////////
@@ -2891,12 +3513,16 @@ VisualShaderEditor::VisualShaderEditor() {
default_plugin.instance();
add_plugin(default_plugin);
+ graph_plugin.instance();
+
property_editor = memnew(CustomPropertyEditor);
add_child(property_editor);
property_editor->connect("variant_changed", callable_mp(this, &VisualShaderEditor::_port_edited));
}
+/////////////////
+
void VisualShaderEditorPlugin::edit(Object *p_object) {
visual_shader_editor->edit(Object::cast_to<VisualShader>(p_object));
}
@@ -2980,9 +3606,59 @@ public:
}
};
+////////////////
+
+class VisualShaderNodePluginUniformRefEditor : public OptionButton {
+ GDCLASS(VisualShaderNodePluginUniformRefEditor, OptionButton);
+
+ Ref<VisualShaderNodeUniformRef> uniform_ref;
+
+public:
+ void _notification(int p_what) {
+ if (p_what == NOTIFICATION_READY) {
+ connect("item_selected", callable_mp(this, &VisualShaderNodePluginUniformRefEditor::_item_selected));
+ }
+ }
+
+ void _item_selected(int p_item) {
+ VisualShaderEditor::get_singleton()->call_deferred("_uniform_select_item", uniform_ref, get_item_text(p_item));
+ }
+
+ void setup(const Ref<VisualShaderNodeUniformRef> &p_uniform_ref) {
+ uniform_ref = p_uniform_ref;
+
+ Ref<Texture2D> type_icon[7] = {
+ EditorNode::get_singleton()->get_gui_base()->get_theme_icon("float", "EditorIcons"),
+ EditorNode::get_singleton()->get_gui_base()->get_theme_icon("int", "EditorIcons"),
+ EditorNode::get_singleton()->get_gui_base()->get_theme_icon("bool", "EditorIcons"),
+ EditorNode::get_singleton()->get_gui_base()->get_theme_icon("Vector3", "EditorIcons"),
+ EditorNode::get_singleton()->get_gui_base()->get_theme_icon("Transform", "EditorIcons"),
+ EditorNode::get_singleton()->get_gui_base()->get_theme_icon("Color", "EditorIcons"),
+ EditorNode::get_singleton()->get_gui_base()->get_theme_icon("ImageTexture", "EditorIcons"),
+ };
+
+ add_item("[None]");
+ int to_select = -1;
+ for (int i = 0; i < p_uniform_ref->get_uniforms_count(); i++) {
+ if (p_uniform_ref->get_uniform_name() == p_uniform_ref->get_uniform_name_by_index(i)) {
+ to_select = i + 1;
+ }
+ add_icon_item(type_icon[p_uniform_ref->get_uniform_type_by_index(i)], p_uniform_ref->get_uniform_name_by_index(i));
+ }
+
+ if (to_select >= 0) {
+ select(to_select);
+ }
+ }
+};
+
+////////////////
+
class VisualShaderNodePluginDefaultEditor : public VBoxContainer {
GDCLASS(VisualShaderNodePluginDefaultEditor, VBoxContainer);
Ref<Resource> parent_resource;
+ int node_id;
+ VisualShader::Type shader_type;
public:
void _property_changed(const String &p_property, const Variant &p_value, const String &p_field = "", bool p_changing = false) {
@@ -3011,8 +3687,13 @@ public:
} else {
undo_redo->add_undo_method(this, "_open_inspector", (RES)parent_resource.ptr());
}
- undo_redo->add_do_method(this, "_refresh_request");
- undo_redo->add_undo_method(this, "_refresh_request");
+ }
+ 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();
@@ -3028,10 +3709,6 @@ public:
}
}
- void _refresh_request() {
- VisualShaderEditor::get_singleton()->call_deferred("_update_graph");
- }
-
void _resource_selected(const String &p_path, RES p_resource) {
_open_inspector(p_resource);
}
@@ -3057,6 +3734,9 @@ public:
node = p_node;
properties = p_properties;
+ node_id = (int)p_node->get_meta("id");
+ shader_type = VisualShader::Type((int)p_node->get_meta("shader_type"));
+
for (int i = 0; i < p_properties.size(); i++) {
HBoxContainer *hbox = memnew(HBoxContainer);
hbox->set_h_size_flags(SIZE_EXPAND_FILL);
@@ -3084,17 +3764,22 @@ public:
properties[i]->set_name_split_ratio(0);
}
node->connect("changed", callable_mp(this, &VisualShaderNodePluginDefaultEditor::_node_changed));
- node->connect("editor_refresh_request", callable_mp(this, &VisualShaderNodePluginDefaultEditor::_refresh_request), varray(), CONNECT_DEFERRED);
}
static void _bind_methods() {
- ClassDB::bind_method("_refresh_request", &VisualShaderNodePluginDefaultEditor::_refresh_request); // Used by UndoRedo.
ClassDB::bind_method("_open_inspector", &VisualShaderNodePluginDefaultEditor::_open_inspector); // Used by UndoRedo.
ClassDB::bind_method("_show_prop_names", &VisualShaderNodePluginDefaultEditor::_show_prop_names); // Used with call_deferred.
}
};
Control *VisualShaderNodePluginDefault::create_editor(const Ref<Resource> &p_parent_resource, const Ref<VisualShaderNode> &p_node) {
+ if (p_node->is_class("VisualShaderNodeUniformRef")) {
+ //create input
+ VisualShaderNodePluginUniformRefEditor *uniform_editor = memnew(VisualShaderNodePluginUniformRefEditor);
+ uniform_editor->setup(p_node);
+ return uniform_editor;
+ }
+
if (p_node->is_class("VisualShaderNodeInput")) {
//create input
VisualShaderNodePluginInputEditor *input_editor = memnew(VisualShaderNodePluginInputEditor);
@@ -3170,6 +3855,10 @@ void EditorPropertyShaderMode::_option_selected(int p_which) {
//do is easy
undo_redo->add_do_method(visual_shader.ptr(), "set_mode", p_which);
undo_redo->add_undo_method(visual_shader.ptr(), "set_mode", visual_shader->get_mode());
+
+ undo_redo->add_do_method(VisualShaderEditor::get_singleton(), "_set_mode", p_which);
+ undo_redo->add_undo_method(VisualShaderEditor::get_singleton(), "_set_mode", visual_shader->get_mode());
+
//now undo is hell
//1. restore connections to output
diff --git a/editor/plugins/visual_shader_editor_plugin.h b/editor/plugins/visual_shader_editor_plugin.h
index 0601b35131..73bebcd192 100644
--- a/editor/plugins/visual_shader_editor_plugin.h
+++ b/editor/plugins/visual_shader_editor_plugin.h
@@ -33,6 +33,7 @@
#include "editor/editor_node.h"
#include "editor/editor_plugin.h"
+#include "editor/plugins/curve_editor_plugin.h"
#include "editor/property_editor.h"
#include "scene/gui/button.h"
#include "scene/gui/graph_edit.h"
@@ -50,8 +51,83 @@ public:
virtual Control *create_editor(const Ref<Resource> &p_parent_resource, const Ref<VisualShaderNode> &p_node);
};
+class VisualShaderGraphPlugin : public Reference {
+ GDCLASS(VisualShaderGraphPlugin, Reference);
+
+private:
+ struct InputPort {
+ Button *default_input_button;
+ };
+
+ struct Port {
+ TextureButton *preview_button;
+ };
+
+ struct Link {
+ VisualShader::Type type;
+ VisualShaderNode *visual_node;
+ GraphNode *graph_node;
+ bool preview_visible;
+ int preview_pos;
+ Map<int, InputPort> input_ports;
+ Map<int, Port> output_ports;
+ VBoxContainer *preview_box;
+ LineEdit *uniform_name;
+ OptionButton *const_op;
+ CodeEdit *expression_edit;
+ CurveEditor *curve_editor;
+ };
+
+ Ref<VisualShader> visual_shader;
+ Map<int, Link> links;
+ List<VisualShader::Connection> connections;
+ bool dirty = false;
+
+protected:
+ static void _bind_methods();
+
+public:
+ void register_shader(VisualShader *p_visual_shader);
+ void set_connections(List<VisualShader::Connection> &p_connections);
+ void register_link(VisualShader::Type p_type, int p_id, VisualShaderNode *p_visual_node, GraphNode *p_graph_node);
+ 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, CurveEditor *p_curve_editor);
+ void clear_links();
+ void set_shader_type(VisualShader::Type p_type);
+ bool is_preview_visible(int p_id) const;
+ bool is_dirty() const;
+ void make_dirty(bool p_enabled);
+ void update_node(VisualShader::Type p_type, int p_id);
+ void update_node_deferred(VisualShader::Type p_type, int p_node_id);
+ void add_node(VisualShader::Type p_type, int p_id);
+ void remove_node(VisualShader::Type p_type, int p_id);
+ void connect_nodes(VisualShader::Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port);
+ void disconnect_nodes(VisualShader::Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port);
+ void show_port_preview(VisualShader::Type p_type, int p_node_id, int p_port_id);
+ void set_node_position(VisualShader::Type p_type, int p_id, const Vector2 &p_position);
+ void set_node_size(VisualShader::Type p_type, int p_id, const Vector2 &p_size);
+ void refresh_node_ports(VisualShader::Type p_type, int p_node);
+ void set_input_port_default_value(VisualShader::Type p_type, int p_node_id, int p_port_id, Variant p_value);
+ void update_uniform_refs();
+ 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_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);
+ VisualShader::Type get_shader_type() const;
+
+ VisualShaderGraphPlugin();
+ ~VisualShaderGraphPlugin();
+};
+
class VisualShaderEditor : public VBoxContainer {
GDCLASS(VisualShaderEditor, VBoxContainer);
+ friend class VisualShaderGraphPlugin;
CustomPropertyEditor *property_editor;
int editing_node;
@@ -63,7 +139,9 @@ class VisualShaderEditor : public VBoxContainer {
Button *add_node;
Button *preview_shader;
- OptionButton *edit_type;
+ OptionButton *edit_type = nullptr;
+ OptionButton *edit_type_standart;
+ OptionButton *edit_type_particles;
PanelContainer *error_panel;
Label *error_label;
@@ -71,7 +149,7 @@ class VisualShaderEditor : public VBoxContainer {
bool pending_update_preview;
bool shader_error;
VBoxContainer *preview_vbox;
- TextEdit *preview_text;
+ CodeEdit *preview_text;
Ref<CodeHighlighter> syntax_highlighter;
Label *error_text;
@@ -84,6 +162,19 @@ class VisualShaderEditor : public VBoxContainer {
MenuButton *tools;
bool preview_showed;
+ bool particles_mode;
+
+ enum TypeFlags {
+ TYPE_FLAGS_VERTEX = 1,
+ TYPE_FLAGS_FRAGMENT = 2,
+ TYPE_FLAGS_LIGHT = 4,
+ };
+
+ enum ParticlesTypeFlags {
+ TYPE_FLAGS_EMIT = 1,
+ TYPE_FLAGS_PROCESS = 2,
+ TYPE_FLAGS_END = 4
+ };
enum ToolsMenuOptions {
EXPAND_ALL,
@@ -162,16 +253,28 @@ class VisualShaderEditor : public VBoxContainer {
};
Vector<AddOption> add_options;
- int texture_node_option_idx;
+ int cubemap_node_option_idx;
+ int texture2d_node_option_idx;
+ int texture2d_array_node_option_idx;
+ int texture3d_node_option_idx;
int custom_node_option_idx;
+ int curve_node_option_idx;
List<String> keyword_list;
+ List<VisualShaderNodeUniformRef> uniform_refs;
+
void _draw_color_over_button(Object *obj, Color p_color);
void _add_custom_node(const String &p_path);
- void _add_texture_node(const String &p_path);
+ void _add_cubemap_node(const String &p_path);
+ void _add_texture2d_node(const String &p_path);
+ void _add_texture2d_array_node(const String &p_path);
+ void _add_texture3d_node(const String &p_path);
+ void _add_curve_node(const String &p_path);
+
VisualShaderNode *_add_node(int p_idx, int p_op_idx = -1);
void _update_options_menu();
+ void _set_mode(int p_which);
void _show_preview_text();
void _update_preview();
@@ -179,7 +282,16 @@ class VisualShaderEditor : public VBoxContainer {
static VisualShaderEditor *singleton;
+ struct DragOp {
+ VisualShader::Type type;
+ int node;
+ Vector2 from;
+ Vector2 to;
+ };
+ List<DragOp> drag_buffer;
+ bool drag_dirty = false;
void _node_dragged(const Vector2 &p_from, const Vector2 &p_to, int p_node);
+ void _nodes_dragged();
bool updating;
void _connection_request(const String &p_from, int p_from_index, const String &p_to, int p_to_index);
@@ -188,8 +300,9 @@ class VisualShaderEditor : public VBoxContainer {
void _scroll_changed(const Vector2 &p_scroll);
void _node_selected(Object *p_node);
- void _delete_request(int);
- void _delete_nodes();
+ void _delete_nodes(int p_type, const List<int> &p_nodes);
+ void _delete_node_request(int p_type, int p_node);
+ void _delete_nodes_request();
void _removed_from_graph();
@@ -206,8 +319,8 @@ class VisualShaderEditor : public VBoxContainer {
void _connection_to_empty(const String &p_from, int p_from_slot, const Vector2 &p_release_position);
void _connection_from_empty(const String &p_to, int p_to_slot, const Vector2 &p_release_position);
- void _line_edit_changed(const String &p_text, Object *line_edit, int p_node_id);
- void _line_edit_focus_out(Object *line_edit, int p_node_id);
+ void _uniform_line_edit_changed(const String &p_text, int p_node_id);
+ void _uniform_line_edit_focus_out(Object *line_edit, int p_node_id);
void _port_name_focus_out(Object *line_edit, int p_node_id, int p_port_id, bool p_output);
@@ -227,11 +340,16 @@ class VisualShaderEditor : public VBoxContainer {
void _paste_nodes(bool p_use_custom_position = false, const Vector2 &p_custom_position = Vector2());
Vector<Ref<VisualShaderNodePlugin>> plugins;
+ Ref<VisualShaderGraphPlugin> graph_plugin;
void _mode_selected(int p_id);
- void _rebuild();
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);
+
+ VisualShader::Type get_current_shader_type() const;
void _add_input_port(int p_node, int p_port, int p_port_type, const String &p_name);
void _remove_input_port(int p_node, int p_port);
@@ -243,7 +361,7 @@ class VisualShaderEditor : public VBoxContainer {
void _change_output_port_type(int p_type, int p_node, int p_port);
void _change_output_port_name(const String &p_text, Object *line_edit, int p_node, int p_port);
- void _expression_focus_out(Object *text_edit, int p_node);
+ void _expression_focus_out(Object *code_edit, int p_node);
void _set_node_size(int p_type, int p_node, const Size2 &p_size);
void _node_resized(const Vector2 &p_new_size, int p_type, int p_node);
@@ -267,6 +385,8 @@ class VisualShaderEditor : public VBoxContainer {
bool _is_available(int p_mode);
void _update_created_node(GraphNode *node);
+ void _update_uniforms(bool p_update_refs);
+ void _update_uniform_refs(Set<String> &p_names);
protected:
void _notification(int p_what);
@@ -278,6 +398,7 @@ public:
void remove_plugin(const Ref<VisualShaderNodePlugin> &p_plugin);
static VisualShaderEditor *get_singleton() { return singleton; }
+ VisualShaderGraphPlugin *get_graph_plugin() { return graph_plugin.ptr(); }
void clear_custom_types();
void add_custom_type(const String &p_name, const Ref<Script> &p_script, const String &p_description, int p_return_icon_type, const String &p_category, bool p_highend);
diff --git a/editor/pot_generator.cpp b/editor/pot_generator.cpp
index f9b8722aad..f09750efdc 100644
--- a/editor/pot_generator.cpp
+++ b/editor/pot_generator.cpp
@@ -31,23 +31,25 @@
#include "pot_generator.h"
#include "core/error_macros.h"
-#include "core/os/file_access.h"
#include "core/project_settings.h"
#include "editor_translation_parser.h"
#include "plugins/packed_scene_translation_parser_plugin.h"
POTGenerator *POTGenerator::singleton = nullptr;
-//#define DEBUG_POT
-
#ifdef DEBUG_POT
-void _print_all_translation_strings(const OrderedHashMap<String, Set<String>> &p_all_translation_strings) {
- for (auto E_pair = p_all_translation_strings.front(); E_pair; E_pair = E_pair.next()) {
- String msg = static_cast<String>(E_pair.key()) + " : ";
- for (Set<String>::Element *E = E_pair.value().front(); E; E = E->next()) {
- msg += E->get() + " ";
+void POTGenerator::_print_all_translation_strings() {
+ for (auto E = all_translation_strings.front(); E; E = E.next()) {
+ Vector<MsgidData> v_md = all_translation_strings[E.key()];
+ for (int i = 0; i < v_md.size(); i++) {
+ print_line("++++++");
+ print_line("msgid: " + E.key());
+ print_line("context: " + v_md[i].ctx);
+ print_line("msgid_plural: " + v_md[i].plural);
+ for (Set<String>::Element *E = v_md[i].locations.front(); E; E = E->next()) {
+ print_line("location: " + E->get());
+ }
}
- print_line(msg);
}
}
#endif
@@ -65,27 +67,27 @@ void POTGenerator::generate_pot(const String &p_file) {
// Collect all translatable strings according to files order in "POT Generation" setting.
for (int i = 0; i < files.size(); i++) {
- Vector<String> translation_strings;
+ Vector<String> msgids;
+ Vector<Vector<String>> msgids_context_plural;
String file_path = files[i];
String file_extension = file_path.get_extension();
if (EditorTranslationParser::get_singleton()->can_parse(file_extension)) {
- EditorTranslationParser::get_singleton()->get_parser(file_extension)->parse_file(file_path, &translation_strings);
+ EditorTranslationParser::get_singleton()->get_parser(file_extension)->parse_file(file_path, &msgids, &msgids_context_plural);
} else {
ERR_PRINT("Unrecognized file extension " + file_extension + " in generate_pot()");
return;
}
- // Store translation strings parsed in this iteration along with their corresponding source file - to write into POT later on.
- for (int j = 0; j < translation_strings.size(); j++) {
- all_translation_strings[translation_strings[j]].insert(file_path);
+ for (int j = 0; j < msgids_context_plural.size(); j++) {
+ Vector<String> entry = msgids_context_plural[j];
+ _add_new_msgid(entry[0], entry[1], entry[2], file_path);
+ }
+ for (int j = 0; j < msgids.size(); j++) {
+ _add_new_msgid(msgids[j], "", "", file_path);
}
}
-#ifdef DEBUG_POT
- _print_all_translation_strings(all_translation_strings);
-#endif
-
_write_to_pot(p_file);
}
@@ -119,35 +121,86 @@ void POTGenerator::_write_to_pot(const String &p_file) {
file->store_string(header);
- for (OrderedHashMap<String, Set<String>>::Element E_pair = all_translation_strings.front(); E_pair; E_pair = E_pair.next()) {
- String msg = E_pair.key();
+ for (OrderedHashMap<String, Vector<MsgidData>>::Element E_pair = all_translation_strings.front(); E_pair; E_pair = E_pair.next()) {
+ String msgid = E_pair.key();
+ Vector<MsgidData> v_msgid_data = E_pair.value();
+ for (int i = 0; i < v_msgid_data.size(); i++) {
+ String context = v_msgid_data[i].ctx;
+ String plural = v_msgid_data[i].plural;
+ const Set<String> &locations = v_msgid_data[i].locations;
+
+ // Write file locations.
+ for (Set<String>::Element *E = locations.front(); E; E = E->next()) {
+ file->store_line("#: " + E->get().trim_prefix("res://"));
+ }
- // Write file locations.
- for (Set<String>::Element *E = E_pair.value().front(); E; E = E->next()) {
- file->store_line("#: " + E->get().trim_prefix("res://"));
- }
+ // Write context.
+ if (!context.empty()) {
+ file->store_line("msgctxt \"" + context + "\"");
+ }
- // Split \\n and \n.
- Vector<String> temp = msg.split("\\n");
- Vector<String> msg_lines;
- for (int i = 0; i < temp.size(); i++) {
- msg_lines.append_array(temp[i].split("\n"));
- if (i < temp.size() - 1) {
- // Add \n.
- msg_lines.set(msg_lines.size() - 1, msg_lines[msg_lines.size() - 1] + "\\n");
+ // Write msgid.
+ _write_msgid(file, msgid, false);
+
+ // Write msgid_plural
+ if (!plural.empty()) {
+ _write_msgid(file, plural, true);
+ file->store_line("msgstr[0] \"\"");
+ file->store_line("msgstr[1] \"\"\n");
+ } else {
+ file->store_line("msgstr \"\"\n");
}
}
+ }
- // Write msgid.
- file->store_string("msgid ");
- for (int i = 0; i < msg_lines.size(); i++) {
- file->store_line("\"" + msg_lines[i] + "\"");
+ file->close();
+}
+
+void POTGenerator::_write_msgid(FileAccess *r_file, const String &p_id, bool p_plural) {
+ // Split \\n and \n.
+ Vector<String> temp = p_id.split("\\n");
+ Vector<String> msg_lines;
+ for (int i = 0; i < temp.size(); i++) {
+ msg_lines.append_array(temp[i].split("\n"));
+ if (i < temp.size() - 1) {
+ // Add \n.
+ msg_lines.set(msg_lines.size() - 1, msg_lines[msg_lines.size() - 1] + "\\n");
}
+ }
- file->store_line("msgstr \"\"\n");
+ if (p_plural) {
+ r_file->store_string("msgid_plural ");
+ } else {
+ r_file->store_string("msgid ");
}
- file->close();
+ for (int i = 0; i < msg_lines.size(); i++) {
+ r_file->store_line("\"" + msg_lines[i] + "\"");
+ }
+}
+
+void POTGenerator::_add_new_msgid(const String &p_msgid, const String &p_context, const String &p_plural, const String &p_location) {
+ // Insert new location if msgid under same context exists already.
+ if (all_translation_strings.has(p_msgid)) {
+ Vector<MsgidData> &v_mdata = all_translation_strings[p_msgid];
+ for (int i = 0; i < v_mdata.size(); i++) {
+ if (v_mdata[i].ctx == p_context) {
+ if (!v_mdata[i].plural.empty() && !p_plural.empty() && v_mdata[i].plural != p_plural) {
+ WARN_PRINT("Redefinition of plural message (msgid_plural), under the same message (msgid) and context (msgctxt)");
+ }
+ v_mdata.write[i].locations.insert(p_location);
+ return;
+ }
+ }
+ }
+
+ // Add a new entry of msgid, context, plural and location - context and plural might be empty if the inserted msgid doesn't associated
+ // context or plurals.
+ MsgidData mdata;
+ mdata.ctx = p_context;
+ mdata.plural = p_plural;
+ mdata.locations.insert(p_location);
+ all_translation_strings[p_msgid].push_back(mdata);
}
POTGenerator *POTGenerator::get_singleton() {
diff --git a/editor/pot_generator.h b/editor/pot_generator.h
index abe1a21d41..8853b784ed 100644
--- a/editor/pot_generator.h
+++ b/editor/pot_generator.h
@@ -32,14 +32,29 @@
#define POT_GENERATOR_H
#include "core/ordered_hash_map.h"
+#include "core/os/file_access.h"
#include "core/set.h"
+//#define DEBUG_POT
+
class POTGenerator {
static POTGenerator *singleton;
- // Stores all translatable strings and the source files containing them.
- OrderedHashMap<String, Set<String>> all_translation_strings;
+
+ struct MsgidData {
+ String ctx;
+ String plural;
+ Set<String> locations;
+ };
+ // Store msgid as key and the additional data around the msgid - if it's under a context, has plurals and its file locations.
+ OrderedHashMap<String, Vector<MsgidData>> all_translation_strings;
void _write_to_pot(const String &p_file);
+ void _write_msgid(FileAccess *r_file, const String &p_id, bool p_plural);
+ void _add_new_msgid(const String &p_msgid, const String &p_context, const String &p_plural, const String &p_location);
+
+#ifdef DEBUG_POT
+ void _print_all_translation_strings();
+#endif
public:
static POTGenerator *get_singleton();
diff --git a/editor/project_export.cpp b/editor/project_export.cpp
index f45161d87b..71522bb253 100644
--- a/editor/project_export.cpp
+++ b/editor/project_export.cpp
@@ -51,10 +51,6 @@
void ProjectExportDialog::_theme_changed() {
duplicate_preset->set_icon(presets->get_theme_icon("Duplicate", "EditorIcons"));
delete_preset->set_icon(presets->get_theme_icon("Remove", "EditorIcons"));
- Control *panel = custom_feature_display->get_parent_control();
- if (panel) {
- panel->add_theme_style_override("panel", patches->get_theme_stylebox("bg", "Tree"));
- }
}
void ProjectExportDialog::_notification(int p_what) {
@@ -68,7 +64,6 @@ void ProjectExportDialog::_notification(int p_what) {
duplicate_preset->set_icon(presets->get_theme_icon("Duplicate", "EditorIcons"));
delete_preset->set_icon(presets->get_theme_icon("Remove", "EditorIcons"));
connect("confirmed", callable_mp(this, &ProjectExportDialog::_export_pck_zip));
- custom_feature_display->get_parent_control()->add_theme_style_override("panel", patches->get_theme_stylebox("bg", "Tree"));
} break;
}
}
@@ -205,7 +200,6 @@ void ProjectExportDialog::_edit_preset(int p_index) {
duplicate_preset->set_disabled(true);
delete_preset->set_disabled(true);
sections->hide();
- patches->clear();
export_error->hide();
export_templates_error->hide();
return;
@@ -241,34 +235,6 @@ void ProjectExportDialog::_edit_preset(int p_index) {
include_filters->set_text(current->get_include_filter());
exclude_filters->set_text(current->get_exclude_filter());
- patches->clear();
- TreeItem *patch_root = patches->create_item();
- Vector<String> patchlist = current->get_patches();
- for (int i = 0; i < patchlist.size(); i++) {
- TreeItem *patch = patches->create_item(patch_root);
- patch->set_cell_mode(0, TreeItem::CELL_MODE_CHECK);
- String file = patchlist[i].get_file();
- patch->set_editable(0, true);
- patch->set_text(0, file.get_file().replace("*", ""));
- if (file.ends_with("*")) {
- patch->set_checked(0, true);
- }
- patch->set_tooltip(0, patchlist[i]);
- patch->set_metadata(0, i);
- patch->add_button(0, presets->get_theme_icon("Remove", "EditorIcons"), 0);
- patch->add_button(0, presets->get_theme_icon("folder", "FileDialog"), 1);
- }
-
- TreeItem *patch_add = patches->create_item(patch_root);
- patch_add->set_metadata(0, patchlist.size());
- if (patchlist.size() == 0) {
- patch_add->set_text(0, TTR("Add initial export..."));
- } else {
- patch_add->set_text(0, TTR("Add previous patches..."));
- }
-
- patch_add->add_button(0, presets->get_theme_icon("folder", "FileDialog"), 1);
-
_fill_resource_tree();
bool needs_templates;
@@ -310,6 +276,24 @@ void ProjectExportDialog::_edit_preset(int p_index) {
_update_export_all();
child_controls_changed();
+ String enc_in_filters_str = current->get_enc_in_filter();
+ String enc_ex_filters_str = current->get_enc_ex_filter();
+ if (!updating_enc_filters) {
+ enc_in_filters->set_text(enc_in_filters_str);
+ enc_ex_filters->set_text(enc_ex_filters_str);
+ }
+
+ bool enc_pck_mode = current->get_enc_pck();
+ enc_pck->set_pressed(enc_pck_mode);
+
+ enc_directory->set_disabled(!enc_pck_mode);
+ enc_in_filters->set_editable(enc_pck_mode);
+ enc_ex_filters->set_editable(enc_pck_mode);
+ script_key->set_editable(enc_pck_mode);
+
+ bool enc_directory_mode = current->get_enc_directory();
+ enc_directory->set_pressed(enc_directory_mode);
+
int script_export_mode = current->get_script_export_mode();
script_mode->select(script_export_mode);
@@ -317,7 +301,7 @@ void ProjectExportDialog::_edit_preset(int p_index) {
if (!updating_script_key) {
script_key->set_text(key);
}
- if (script_export_mode == EditorExportPreset::MODE_SCRIPT_ENCRYPTED) {
+ if (enc_pck_mode) {
script_key->set_editable(true);
bool key_valid = _validate_script_encryption_key(key);
@@ -383,74 +367,6 @@ void ProjectExportDialog::_tab_changed(int) {
_update_feature_list();
}
-void ProjectExportDialog::_patch_button_pressed(Object *p_item, int p_column, int p_id) {
- TreeItem *ti = (TreeItem *)p_item;
-
- patch_index = ti->get_metadata(0);
-
- Ref<EditorExportPreset> current = get_current_preset();
- ERR_FAIL_COND(current.is_null());
-
- if (p_id == 0) {
- Vector<String> patches = current->get_patches();
- ERR_FAIL_INDEX(patch_index, patches.size());
- patch_erase->set_text(vformat(TTR("Delete patch '%s' from list?"), patches[patch_index].get_file()));
- patch_erase->popup_centered();
- } else {
- patch_dialog->popup_file_dialog();
- }
-}
-
-void ProjectExportDialog::_patch_edited() {
- TreeItem *item = patches->get_edited();
- if (!item) {
- return;
- }
- int index = item->get_metadata(0);
-
- Ref<EditorExportPreset> current = get_current_preset();
- ERR_FAIL_COND(current.is_null());
-
- Vector<String> patches = current->get_patches();
-
- ERR_FAIL_INDEX(index, patches.size());
-
- String patch = patches[index].replace("*", "");
-
- if (item->is_checked(0)) {
- patch += "*";
- }
-
- current->set_patch(index, patch);
-}
-
-void ProjectExportDialog::_patch_selected(const String &p_path) {
- Ref<EditorExportPreset> current = get_current_preset();
- ERR_FAIL_COND(current.is_null());
-
- Vector<String> patches = current->get_patches();
-
- if (patch_index >= patches.size()) {
- current->add_patch(ProjectSettings::get_singleton()->get_resource_path().path_to(p_path) + "*");
- } else {
- String enabled = patches[patch_index].ends_with("*") ? String("*") : String();
- current->set_patch(patch_index, ProjectSettings::get_singleton()->get_resource_path().path_to(p_path) + enabled);
- }
-
- _update_current_preset();
-}
-
-void ProjectExportDialog::_patch_deleted() {
- Ref<EditorExportPreset> current = get_current_preset();
- ERR_FAIL_COND(current.is_null());
-
- Vector<String> patches = current->get_patches();
- if (patch_index < patches.size()) {
- current->remove_patch(patch_index);
- _update_current_preset();
- }
-}
-
void ProjectExportDialog::_update_parameters(const String &p_edited_property) {
_update_current_preset();
}
@@ -519,6 +435,56 @@ void ProjectExportDialog::_export_path_changed(const StringName &p_property, con
_update_presets();
}
+void ProjectExportDialog::_enc_filters_changed(const String &p_filters) {
+ if (updating) {
+ return;
+ }
+
+ Ref<EditorExportPreset> current = get_current_preset();
+ ERR_FAIL_COND(current.is_null());
+
+ current->set_enc_in_filter(enc_in_filters->get_text());
+ current->set_enc_ex_filter(enc_ex_filters->get_text());
+
+ updating_enc_filters = true;
+ _update_current_preset();
+ updating_enc_filters = false;
+}
+
+void ProjectExportDialog::_open_key_help_link() {
+ OS::get_singleton()->shell_open("https://docs.godotengine.org/en/latest/development/compiling/compiling_with_script_encryption_key.html");
+}
+
+void ProjectExportDialog::_enc_pck_changed(bool p_pressed) {
+ if (updating) {
+ return;
+ }
+
+ Ref<EditorExportPreset> current = get_current_preset();
+ ERR_FAIL_COND(current.is_null());
+
+ current->set_enc_pck(p_pressed);
+ enc_directory->set_disabled(!p_pressed);
+ enc_in_filters->set_editable(p_pressed);
+ enc_ex_filters->set_editable(p_pressed);
+ script_key->set_editable(p_pressed);
+
+ _update_current_preset();
+}
+
+void ProjectExportDialog::_enc_directory_changed(bool p_pressed) {
+ if (updating) {
+ return;
+ }
+
+ Ref<EditorExportPreset> current = get_current_preset();
+ ERR_FAIL_COND(current.is_null());
+
+ current->set_enc_directory(p_pressed);
+
+ _update_current_preset();
+}
+
void ProjectExportDialog::_script_export_mode_changed(int p_mode) {
if (updating) {
return;
@@ -595,10 +561,6 @@ void ProjectExportDialog::_duplicate_preset() {
preset->set_export_filter(current->get_export_filter());
preset->set_include_filter(current->get_include_filter());
preset->set_exclude_filter(current->get_exclude_filter());
- Vector<String> list = current->get_patches();
- for (int i = 0; i < list.size(); i++) {
- preset->add_patch(list[i]);
- }
preset->set_custom_features(current->get_custom_features());
for (const List<PropertyInfo>::Element *E = current->get_properties().front(); E; E = E->next()) {
@@ -650,21 +612,6 @@ Variant ProjectExportDialog::get_drag_data_fw(const Point2 &p_point, Control *p_
return d;
}
- } else if (p_from == patches) {
- TreeItem *item = patches->get_item_at_position(p_point);
-
- if (item && item->get_cell_mode(0) == TreeItem::CELL_MODE_CHECK) {
- int metadata = item->get_metadata(0);
- Dictionary d;
- d["type"] = "export_patch";
- d["patch"] = metadata;
-
- Label *label = memnew(Label);
- label->set_text(item->get_text(0));
- patches->set_drag_preview(label);
-
- return d;
- }
}
return Variant();
@@ -680,19 +627,6 @@ bool ProjectExportDialog::can_drop_data_fw(const Point2 &p_point, const Variant
if (presets->get_item_at_position(p_point, true) < 0 && !presets->is_pos_at_end_of_items(p_point)) {
return false;
}
- } else if (p_from == patches) {
- Dictionary d = p_data;
- if (!d.has("type") || String(d["type"]) != "export_patch") {
- return false;
- }
-
- patches->set_drop_mode_flags(Tree::DROP_MODE_ON_ITEM);
-
- TreeItem *item = patches->get_item_at_position(p_point);
-
- if (!item) {
- return false;
- }
}
return true;
@@ -729,33 +663,6 @@ void ProjectExportDialog::drop_data_fw(const Point2 &p_point, const Variant &p_d
} else {
_edit_preset(presets->get_item_count() - 1);
}
- } else if (p_from == patches) {
- Dictionary d = p_data;
- if (!d.has("type") || String(d["type"]) != "export_patch") {
- return;
- }
-
- int from_pos = d["patch"];
-
- TreeItem *item = patches->get_item_at_position(p_point);
- if (!item) {
- return;
- }
-
- int to_pos = item->get_cell_mode(0) == TreeItem::CELL_MODE_CHECK ? int(item->get_metadata(0)) : -1;
-
- if (to_pos == from_pos) {
- return;
- } else if (to_pos > from_pos) {
- to_pos--;
- }
-
- Ref<EditorExportPreset> preset = get_current_preset();
- String patch = preset->get_patch(from_pos);
- preset->remove_patch(from_pos);
- preset->add_patch(patch, to_pos);
-
- _update_current_preset();
}
}
@@ -1148,47 +1055,11 @@ ProjectExportDialog::ProjectExportDialog() {
exclude_filters);
exclude_filters->connect("text_changed", callable_mp(this, &ProjectExportDialog::_filter_changed));
- // Patch packages.
-
- VBoxContainer *patch_vb = memnew(VBoxContainer);
- sections->add_child(patch_vb);
- patch_vb->set_name(TTR("Patches"));
-
- // FIXME: Patching support doesn't seem properly implemented yet, so we hide it.
- // The rest of the code is still kept for now, in the hope that it will be made
- // functional and reactivated.
- patch_vb->hide();
-
- patches = memnew(Tree);
- patch_vb->add_child(patches);
- patches->set_v_size_flags(Control::SIZE_EXPAND_FILL);
- patches->set_hide_root(true);
- patches->connect("button_pressed", callable_mp(this, &ProjectExportDialog::_patch_button_pressed));
- patches->connect("item_edited", callable_mp(this, &ProjectExportDialog::_patch_edited));
-#ifndef _MSC_VER
-#warning must reimplement drag forward
-#endif
- //patches->set_drag_forwarding(this);
- patches->set_edit_checkbox_cell_only_when_checkbox_is_pressed(true);
-
- HBoxContainer *patches_hb = memnew(HBoxContainer);
- patch_vb->add_child(patches_hb);
- patches_hb->add_spacer();
- patch_export = memnew(Button);
- patch_export->set_text(TTR("Make Patch"));
- patches_hb->add_child(patch_export);
- patches_hb->add_spacer();
-
- patch_dialog = memnew(EditorFileDialog);
- patch_dialog->add_filter("*.pck ; " + TTR("Pack File"));
- patch_dialog->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE);
- patch_dialog->connect("file_selected", callable_mp(this, &ProjectExportDialog::_patch_selected));
- add_child(patch_dialog);
-
- patch_erase = memnew(ConfirmationDialog);
- patch_erase->get_ok()->set_text(TTR("Delete"));
- patch_erase->connect("confirmed", callable_mp(this, &ProjectExportDialog::_patch_deleted));
- add_child(patch_erase);
+ script_mode = memnew(OptionButton);
+ resources_vb->add_margin_child(TTR("Script Export Mode:"), script_mode);
+ script_mode->add_item(TTR("Text"), (int)EditorExportPreset::MODE_SCRIPT_TEXT);
+ script_mode->add_item(TTR("Compiled"), (int)EditorExportPreset::MODE_SCRIPT_COMPILED);
+ script_mode->connect("item_selected", callable_mp(this, &ProjectExportDialog::_script_export_mode_changed));
// Feature tags.
@@ -1205,23 +1076,50 @@ ProjectExportDialog::ProjectExportDialog() {
// Script export parameters.
updating_script_key = false;
+ updating_enc_filters = false;
+
+ VBoxContainer *sec_vb = memnew(VBoxContainer);
+ sec_vb->set_name(TTR("Encryption"));
+
+ enc_pck = memnew(CheckButton);
+ enc_pck->connect("toggled", callable_mp(this, &ProjectExportDialog::_enc_pck_changed));
+ enc_pck->set_text(TTR("Encrypt exported PCK"));
+ sec_vb->add_child(enc_pck);
+
+ enc_directory = memnew(CheckButton);
+ enc_directory->connect("toggled", callable_mp(this, &ProjectExportDialog::_enc_directory_changed));
+ enc_directory->set_text("Encrypt index (file names and info).");
+ sec_vb->add_child(enc_directory);
+
+ enc_in_filters = memnew(LineEdit);
+ enc_in_filters->connect("text_changed", callable_mp(this, &ProjectExportDialog::_enc_filters_changed));
+ sec_vb->add_margin_child(
+ TTR("Filters to include files/folders\n(comma-separated, e.g: *.tscn, *.tres, scenes/*)"),
+ enc_in_filters);
+
+ enc_ex_filters = memnew(LineEdit);
+ enc_ex_filters->connect("text_changed", callable_mp(this, &ProjectExportDialog::_enc_filters_changed));
+ sec_vb->add_margin_child(
+ TTR("Filters to exclude files/folders\n(comma-separated, e.g: *.stex, *.import, music/*)"),
+ enc_ex_filters);
- VBoxContainer *script_vb = memnew(VBoxContainer);
- script_vb->set_name(TTR("Script"));
- script_mode = memnew(OptionButton);
- script_vb->add_margin_child(TTR("Script Export Mode:"), script_mode);
- script_mode->add_item(TTR("Text"), (int)EditorExportPreset::MODE_SCRIPT_TEXT);
- script_mode->add_item(TTR("Compiled"), (int)EditorExportPreset::MODE_SCRIPT_COMPILED);
- script_mode->add_item(TTR("Encrypted (Provide Key Below)"), (int)EditorExportPreset::MODE_SCRIPT_ENCRYPTED);
- script_mode->connect("item_selected", callable_mp(this, &ProjectExportDialog::_script_export_mode_changed));
script_key = memnew(LineEdit);
script_key->connect("text_changed", callable_mp(this, &ProjectExportDialog::_script_encryption_key_changed));
script_key_error = memnew(Label);
script_key_error->set_text("- " + TTR("Invalid Encryption Key (must be 64 characters long)"));
script_key_error->add_theme_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_theme_color("error_color", "Editor"));
- script_vb->add_margin_child(TTR("Script Encryption Key (256-bits as hex):"), script_key);
- script_vb->add_child(script_key_error);
- sections->add_child(script_vb);
+ sec_vb->add_margin_child(TTR("Encryption Key (256-bits as hex):"), script_key);
+ sec_vb->add_child(script_key_error);
+ sections->add_child(sec_vb);
+
+ Label *sec_info = memnew(Label);
+ sec_info->set_text(TTR("Note: Encryption key needs to be stored in the binary,\nyou need to build the export templates from source."));
+ sec_vb->add_child(sec_info);
+
+ LinkButton *sec_more_info = memnew(LinkButton);
+ sec_more_info->set_text(TTR("More Info..."));
+ sec_more_info->connect("pressed", callable_mp(this, &ProjectExportDialog::_open_key_help_link));
+ sec_vb->add_child(sec_more_info);
sections->connect("tab_changed", callable_mp(this, &ProjectExportDialog::_tab_changed));
diff --git a/editor/project_export.h b/editor/project_export.h
index cfa00773d8..026daac2ad 100644
--- a/editor/project_export.h
+++ b/editor/project_export.h
@@ -87,12 +87,6 @@ private:
StringName editor_icons;
- Tree *patches;
- Button *patch_export;
- int patch_index;
- EditorFileDialog *patch_dialog;
- ConfirmationDialog *patch_erase;
-
Button *export_button;
Button *export_all_button;
AcceptDialog *export_all_dialog;
@@ -109,9 +103,6 @@ private:
String default_filename;
- void _patch_selected(const String &p_path);
- void _patch_deleted();
-
void _runnable_pressed();
void _update_parameters(const String &p_edited_property);
void _name_changed(const String &p_string);
@@ -133,9 +124,6 @@ private:
bool _fill_tree(EditorFileSystemDirectory *p_dir, TreeItem *p_item, Ref<EditorExportPreset> &current, bool p_only_scenes);
void _tree_changed();
- void _patch_button_pressed(Object *p_item, int p_column, int p_id);
- void _patch_edited();
-
Variant get_drag_data_fw(const Point2 &p_point, Control *p_from);
bool can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) const;
void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from);
@@ -145,6 +133,11 @@ private:
CheckBox *export_debug;
CheckBox *export_pck_zip_debug;
+ CheckButton *enc_pck;
+ CheckButton *enc_directory;
+ LineEdit *enc_in_filters;
+ LineEdit *enc_ex_filters;
+
void _open_export_template_manager();
void _export_pck_zip();
@@ -161,10 +154,16 @@ private:
void _custom_features_changed(const String &p_text);
bool updating_script_key;
+ bool updating_enc_filters;
+ void _enc_pck_changed(bool p_pressed);
+ void _enc_directory_changed(bool p_pressed);
+ void _enc_filters_changed(const String &p_text);
void _script_export_mode_changed(int p_mode);
void _script_encryption_key_changed(const String &p_key);
bool _validate_script_encryption_key(const String &p_key);
+ void _open_key_help_link();
+
void _tab_changed(int);
protected:
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp
index a68742a985..6393aa30ed 100644
--- a/editor/project_manager.cpp
+++ b/editor/project_manager.cpp
@@ -330,6 +330,7 @@ private:
return;
}
}
+
String sp = p.simplify_path();
project_path->set_text(sp);
_path_text_changed(sp);
@@ -411,7 +412,7 @@ private:
_test_path();
if (p_text == "") {
- set_message(TTR("It would be a good idea to name your project."), MESSAGE_WARNING);
+ set_message(TTR("It would be a good idea to name your project."), MESSAGE_ERROR);
}
}
@@ -475,10 +476,12 @@ private:
set_message(TTR("Couldn't create project.godot in project path."), MESSAGE_ERROR);
} else {
f->store_line("[gd_resource type=\"Environment\" load_steps=2 format=2]");
+ f->store_line("");
f->store_line("[sub_resource type=\"Sky\" id=1]");
+ f->store_line("");
f->store_line("[resource]");
f->store_line("background_mode = 2");
- f->store_line("background_sky = SubResource( 1 )");
+ f->store_line("sky = SubResource( 1 )");
memdelete(f);
}
}
@@ -1010,7 +1013,7 @@ public:
void update_dock_menu();
void load_projects();
void set_search_term(String p_search_term);
- void set_order_option(ProjectListFilter::FilterOption p_option);
+ void set_order_option(int p_option);
void sort_projects();
int get_project_count() const;
void select_project(int p_index);
@@ -1043,7 +1046,7 @@ private:
static void load_project_data(const String &p_property_key, Item &p_item, bool p_favorite);
String _search_term;
- ProjectListFilter::FilterOption _order_option;
+ FilterOption _order_option;
Set<String> _selected_project_keys;
String _last_clicked; // Project key
VBoxContainer *_scroll_children;
@@ -1053,7 +1056,7 @@ private:
};
struct ProjectListComparator {
- ProjectListFilter::FilterOption order_option;
+ FilterOption order_option;
// operator<
_FORCE_INLINE_ bool operator()(const ProjectList::Item &a, const ProjectList::Item &b) const {
@@ -1064,9 +1067,9 @@ struct ProjectListComparator {
return false;
}
switch (order_option) {
- case ProjectListFilter::FILTER_PATH:
+ case PATH:
return a.project_key < b.project_key;
- case ProjectListFilter::FILTER_EDIT_DATE:
+ case EDIT_DATE:
return a.last_edited > b.last_edited;
default:
return a.project_name < b.project_name;
@@ -1075,8 +1078,7 @@ struct ProjectListComparator {
};
ProjectList::ProjectList() {
- _order_option = ProjectListFilter::FILTER_EDIT_DATE;
-
+ _order_option = FilterOption::NAME;
_scroll_children = memnew(VBoxContainer);
_scroll_children->set_h_size_flags(Control::SIZE_EXPAND_FILL);
add_child(_scroll_children);
@@ -1236,8 +1238,6 @@ void ProjectList::load_projects() {
create_project_item_control(i);
}
- sort_projects();
-
set_v_scroll(0);
update_icons_async();
@@ -1389,12 +1389,13 @@ void ProjectList::set_search_term(String p_search_term) {
_search_term = p_search_term;
}
-void ProjectList::set_order_option(ProjectListFilter::FilterOption p_option) {
- if (_order_option != p_option) {
- _order_option = p_option;
- EditorSettings::get_singleton()->set("project_manager/sorting_order", (int)_order_option);
- EditorSettings::get_singleton()->save();
- }
+void ProjectList::set_order_option(int p_option) {
+ FilterOption selected = (FilterOption)p_option;
+ EditorSettings::get_singleton()->set("project_manager/sorting_order", p_option);
+ EditorSettings::get_singleton()->save();
+ _order_option = selected;
+
+ sort_projects();
}
void ProjectList::sort_projects() {
@@ -1796,6 +1797,9 @@ void ProjectList::_bind_methods() {
void ProjectManager::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_ENTER_TREE: {
+ search_box->set_right_icon(get_theme_icon("Search", "EditorIcons"));
+ search_box->set_clear_button_enabled(true);
+
Engine::get_singleton()->set_editor_hint(false);
} break;
case NOTIFICATION_RESIZED: {
@@ -1804,6 +1808,10 @@ void ProjectManager::_notification(int p_what) {
}
} break;
case NOTIFICATION_READY: {
+ int default_sorting = (int)EditorSettings::get_singleton()->get("project_manager/sorting_order");
+ filter_option->select(default_sorting);
+ _project_list->set_order_option(default_sorting);
+
if (_project_list->get_project_count() == 0 && StreamPeerSSL::is_available()) {
open_templates->popup_centered();
}
@@ -1811,7 +1819,7 @@ void ProjectManager::_notification(int p_what) {
if (_project_list->get_project_count() >= 1) {
// Focus on the search box immediately to allow the user
// to search without having to reach for their mouse
- project_filter->search_box->grab_focus();
+ search_box->grab_focus();
}
} break;
case NOTIFICATION_VISIBILITY_CHANGED: {
@@ -1831,7 +1839,7 @@ void ProjectManager::_dim_window() {
// No transition is applied, as the effect needs to be visible immediately
float c = 0.5f;
Color dim_color = Color(c, c, c);
- gui_base->set_modulate(dim_color);
+ set_modulate(dim_color);
}
void ProjectManager::_update_project_buttons() {
@@ -1851,7 +1859,7 @@ void ProjectManager::_update_project_buttons() {
rename_btn->set_disabled(empty_selection || is_missing_project_selected);
run_btn->set_disabled(empty_selection || is_missing_project_selected);
- erase_missing_btn->set_visible(_project_list->is_any_project_missing());
+ erase_missing_btn->set_disabled(!_project_list->is_any_project_missing());
}
void ProjectManager::_unhandled_input(const Ref<InputEvent> &p_ev) {
@@ -1928,7 +1936,7 @@ void ProjectManager::_unhandled_input(const Ref<InputEvent> &p_ev) {
} break;
case KEY_F: {
if (k->get_command()) {
- this->project_filter->search_box->grab_focus();
+ this->search_box->grab_focus();
} else {
keycode_handled = false;
}
@@ -1945,8 +1953,7 @@ void ProjectManager::_unhandled_input(const Ref<InputEvent> &p_ev) {
}
void ProjectManager::_load_recent_projects() {
- _project_list->set_order_option(project_order_filter->get_filter_option());
- _project_list->set_search_term(project_filter->get_search_term());
+ _project_list->set_search_term(search_box->get_text().strip_edges());
_project_list->load_projects();
_update_project_buttons();
@@ -1968,7 +1975,7 @@ void ProjectManager::_on_projects_updated() {
}
void ProjectManager::_on_project_created(const String &dir) {
- project_filter->clear();
+ search_box->clear();
int i = _project_list->refresh_project(dir);
_project_list->select_project(i);
_project_list->ensure_project_visible(i);
@@ -2086,7 +2093,8 @@ void ProjectManager::_run_project_confirm() {
const String &selected = selected_list[i].project_key;
String path = EditorSettings::get_singleton()->get("projects/" + selected);
- if (!DirAccess::exists(path + "/.import")) {
+ // `.right(6)` on `IMPORTED_FILES_PATH` strips away the leading "res://".
+ if (!DirAccess::exists(path.plus_file(ProjectSettings::IMPORTED_FILES_PATH.right(6)))) {
run_error_diag->set_text(TTR("Can't run project: Assets need to be imported.\nPlease edit the project to trigger the initial import."));
run_error_diag->popup_centered();
return;
@@ -2111,7 +2119,6 @@ void ProjectManager::_run_project_confirm() {
}
}
-// When you press the "Run" button
void ProjectManager::_run_project() {
const Set<String> &selected_list = _project_list->get_selected_project_keys();
@@ -2224,8 +2231,6 @@ void ProjectManager::_erase_missing_projects() {
void ProjectManager::_language_selected(int p_id) {
String lang = language_btn->get_item_metadata(p_id);
EditorSettings::get_singleton()->set("interface/editor/editor_language", lang);
- language_btn->set_text(lang);
- language_btn->set_icon(get_theme_icon("Environment", "EditorIcons"));
language_restart_ask->set_text(TTR("Language changed.\nThe interface will update after restarting the editor or project manager."));
language_restart_ask->popup_centered();
@@ -2302,13 +2307,14 @@ void ProjectManager::_scan_multiple_folders(PackedStringArray p_files) {
}
}
-void ProjectManager::_on_order_option_changed() {
- _project_list->set_order_option(project_order_filter->get_filter_option());
- _project_list->sort_projects();
+void ProjectManager::_on_order_option_changed(int p_idx) {
+ if (is_inside_tree()) {
+ _project_list->set_order_option(p_idx);
+ }
}
-void ProjectManager::_on_filter_option_changed() {
- _project_list->set_search_term(project_filter->get_search_term());
+void ProjectManager::_on_search_term_changed(const String &p_term) {
+ _project_list->set_search_term(p_term);
_project_list->sort_projects();
// Select the first visible project in the list.
@@ -2339,7 +2345,6 @@ ProjectManager::ProjectManager() {
{
int display_scale = EditorSettings::get_singleton()->get("interface/editor/display_scale");
- float custom_display_scale = EditorSettings::get_singleton()->get("interface/editor/custom_display_scale");
switch (display_scale) {
case 0: {
@@ -2370,9 +2375,8 @@ ProjectManager::ProjectManager() {
case 6:
editor_set_scale(2.0);
break;
-
default: {
- editor_set_scale(custom_display_scale);
+ editor_set_scale(EditorSettings::get_singleton()->get("interface/editor/custom_display_scale"));
} break;
}
@@ -2383,28 +2387,27 @@ ProjectManager::ProjectManager() {
DisplayServer::get_singleton()->window_set_size(DisplayServer::get_singleton()->window_get_size() * MAX(1, EDSCALE));
}
+ String cp;
+ cp += 0xA9;
+ // TRANSLATORS: This refers to the application where users manage their Godot projects.
+ DisplayServer::get_singleton()->window_set_title(VERSION_NAME + String(" - ") + TTR("Project Manager") + " - " + cp + " 2007-2020 Juan Linietsky, Ariel Manzur & Godot Contributors");
+
FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("filesystem/file_dialog/show_hidden_files"));
set_anchors_and_margins_preset(Control::PRESET_WIDE);
set_theme(create_custom_theme());
- gui_base = memnew(Control);
- add_child(gui_base);
- gui_base->set_anchors_and_margins_preset(Control::PRESET_WIDE);
+ set_anchors_and_margins_preset(Control::PRESET_WIDE);
Panel *panel = memnew(Panel);
- gui_base->add_child(panel);
+ add_child(panel);
panel->set_anchors_and_margins_preset(Control::PRESET_WIDE);
- panel->add_theme_style_override("panel", gui_base->get_theme_stylebox("Background", "EditorStyles"));
+ panel->add_theme_style_override("panel", get_theme_stylebox("Background", "EditorStyles"));
VBoxContainer *vb = memnew(VBoxContainer);
panel->add_child(vb);
vb->set_anchors_and_margins_preset(Control::PRESET_WIDE, Control::PRESET_MODE_MINSIZE, 8 * EDSCALE);
- String cp;
- cp += 0xA9;
- DisplayServer::get_singleton()->window_set_title(VERSION_NAME + String(" - ") + TTR("Project Manager") + " - " + cp + " 2007-2020 Juan Linietsky, Ariel Manzur & Godot Contributors");
-
Control *center_box = memnew(Control);
center_box->set_v_size_flags(Control::SIZE_EXPAND_FILL);
vb->add_child(center_box);
@@ -2414,218 +2417,231 @@ ProjectManager::ProjectManager() {
tabs->set_anchors_and_margins_preset(Control::PRESET_WIDE);
tabs->set_tab_align(TabContainer::ALIGN_LEFT);
- HBoxContainer *tree_hb = memnew(HBoxContainer);
- projects_hb = tree_hb;
-
+ HBoxContainer *projects_hb = memnew(HBoxContainer);
projects_hb->set_name(TTR("Projects"));
+ tabs->add_child(projects_hb);
- tabs->add_child(tree_hb);
-
- VBoxContainer *search_tree_vb = memnew(VBoxContainer);
- tree_hb->add_child(search_tree_vb);
- search_tree_vb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
-
- HBoxContainer *sort_filters = memnew(HBoxContainer);
- Label *sort_label = memnew(Label);
- sort_label->set_text(TTR("Sort:"));
- sort_filters->add_child(sort_label);
- Vector<String> sort_filter_titles;
- sort_filter_titles.push_back(TTR("Name"));
- sort_filter_titles.push_back(TTR("Path"));
- sort_filter_titles.push_back(TTR("Last Edited"));
- project_order_filter = memnew(ProjectListFilter);
- project_order_filter->add_filter_option();
- project_order_filter->_setup_filters(sort_filter_titles);
- project_order_filter->set_filter_size(150);
- sort_filters->add_child(project_order_filter);
- project_order_filter->connect("filter_changed", callable_mp(this, &ProjectManager::_on_order_option_changed));
- project_order_filter->set_custom_minimum_size(Size2(180, 10) * EDSCALE);
-
- int projects_sorting_order = (int)EditorSettings::get_singleton()->get("project_manager/sorting_order");
- project_order_filter->set_filter_option((ProjectListFilter::FilterOption)projects_sorting_order);
-
- sort_filters->add_spacer(true);
-
- project_filter = memnew(ProjectListFilter);
- project_filter->add_search_box();
- project_filter->connect("filter_changed", callable_mp(this, &ProjectManager::_on_filter_option_changed));
- project_filter->set_custom_minimum_size(Size2(280, 10) * EDSCALE);
- sort_filters->add_child(project_filter);
-
- search_tree_vb->add_child(sort_filters);
-
- PanelContainer *pc = memnew(PanelContainer);
- pc->add_theme_style_override("panel", gui_base->get_theme_stylebox("bg", "Tree"));
- search_tree_vb->add_child(pc);
- pc->set_v_size_flags(Control::SIZE_EXPAND_FILL);
-
- _project_list = memnew(ProjectList);
- _project_list->connect(ProjectList::SIGNAL_SELECTION_CHANGED, callable_mp(this, &ProjectManager::_update_project_buttons));
- _project_list->connect(ProjectList::SIGNAL_PROJECT_ASK_OPEN, callable_mp(this, &ProjectManager::_open_selected_projects_ask));
- pc->add_child(_project_list);
- _project_list->set_enable_h_scroll(false);
-
- VBoxContainer *tree_vb = memnew(VBoxContainer);
- tree_hb->add_child(tree_vb);
-
- Button *open = memnew(Button);
- open->set_text(TTR("Edit"));
- tree_vb->add_child(open);
- open->connect("pressed", callable_mp(this, &ProjectManager::_open_selected_projects_ask));
- open_btn = open;
-
- Button *run = memnew(Button);
- run->set_text(TTR("Run"));
- tree_vb->add_child(run);
- run->connect("pressed", callable_mp(this, &ProjectManager::_run_project));
- run_btn = run;
-
- tree_vb->add_child(memnew(HSeparator));
-
- Button *scan = memnew(Button);
- scan->set_text(TTR("Scan"));
- tree_vb->add_child(scan);
- scan->connect("pressed", callable_mp(this, &ProjectManager::_scan_projects));
-
- tree_vb->add_child(memnew(HSeparator));
-
- scan_dir = memnew(FileDialog);
- scan_dir->set_access(FileDialog::ACCESS_FILESYSTEM);
- scan_dir->set_file_mode(FileDialog::FILE_MODE_OPEN_DIR);
- scan_dir->set_title(TTR("Select a Folder to Scan")); // must be after mode or it's overridden
- scan_dir->set_current_dir(EditorSettings::get_singleton()->get("filesystem/directories/default_project_path"));
- gui_base->add_child(scan_dir);
- scan_dir->connect("dir_selected", callable_mp(this, &ProjectManager::_scan_begin));
-
- Button *create = memnew(Button);
- create->set_text(TTR("New Project"));
- tree_vb->add_child(create);
- create->connect("pressed", callable_mp(this, &ProjectManager::_new_project));
-
- Button *import = memnew(Button);
- import->set_text(TTR("Import"));
- tree_vb->add_child(import);
- import->connect("pressed", callable_mp(this, &ProjectManager::_import_project));
-
- Button *rename = memnew(Button);
- rename->set_text(TTR("Rename"));
- tree_vb->add_child(rename);
- rename->connect("pressed", callable_mp(this, &ProjectManager::_rename_project));
- rename_btn = rename;
-
- Button *erase = memnew(Button);
- erase->set_text(TTR("Remove"));
- tree_vb->add_child(erase);
- erase->connect("pressed", callable_mp(this, &ProjectManager::_erase_project));
- erase_btn = erase;
-
- Button *erase_missing = memnew(Button);
- erase_missing->set_text(TTR("Remove Missing"));
- tree_vb->add_child(erase_missing);
- erase_missing->connect("pressed", callable_mp(this, &ProjectManager::_erase_missing_projects));
- erase_missing_btn = erase_missing;
-
- tree_vb->add_spacer();
+ {
+ // Projects + search bar
+ VBoxContainer *search_tree_vb = memnew(VBoxContainer);
+ projects_hb->add_child(search_tree_vb);
+ search_tree_vb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- if (StreamPeerSSL::is_available()) {
- asset_library = memnew(EditorAssetLibrary(true));
- asset_library->set_name(TTR("Templates"));
- tabs->add_child(asset_library);
- asset_library->connect("install_asset", callable_mp(this, &ProjectManager::_install_project));
- } else {
- WARN_PRINT("Asset Library not available, as it requires SSL to work.");
- }
+ HBoxContainer *hb = memnew(HBoxContainer);
+ hb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ search_tree_vb->add_child(hb);
- HBoxContainer *settings_hb = memnew(HBoxContainer);
- settings_hb->set_alignment(BoxContainer::ALIGN_END);
- settings_hb->set_h_grow_direction(Control::GROW_DIRECTION_BEGIN);
+ search_box = memnew(LineEdit);
+ search_box->set_placeholder(TTR("Search"));
+ search_box->set_tooltip(TTR("The search box filters projects by name and last path component.\nTo filter projects by name and full path, the query must contain at least one `/` character."));
+ search_box->connect("text_changed", callable_mp(this, &ProjectManager::_on_search_term_changed));
+ search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ hb->add_child(search_box);
- Label *version_label = memnew(Label);
- String hash = String(VERSION_HASH);
- if (hash.length() != 0) {
- hash = "." + hash.left(9);
- }
- version_label->set_text("v" VERSION_FULL_BUILD "" + hash);
- // Fade out the version label to be less prominent, but still readable
- version_label->set_self_modulate(Color(1, 1, 1, 0.6));
- version_label->set_align(Label::ALIGN_CENTER);
- settings_hb->add_child(version_label);
+ hb->add_spacer();
- language_btn = memnew(OptionButton);
- language_btn->set_flat(true);
- language_btn->set_focus_mode(Control::FOCUS_NONE);
+ Label *sort_label = memnew(Label);
+ sort_label->set_text(TTR("Sort:"));
+ hb->add_child(sort_label);
- Vector<String> editor_languages;
- List<PropertyInfo> editor_settings_properties;
- EditorSettings::get_singleton()->get_property_list(&editor_settings_properties);
- for (List<PropertyInfo>::Element *E = editor_settings_properties.front(); E; E = E->next()) {
- PropertyInfo &pi = E->get();
- if (pi.name == "interface/editor/editor_language") {
- editor_languages = pi.hint_string.split(",");
- }
- }
- String current_lang = EditorSettings::get_singleton()->get("interface/editor/editor_language");
- for (int i = 0; i < editor_languages.size(); i++) {
- String lang = editor_languages[i];
- String lang_name = TranslationServer::get_singleton()->get_locale_name(lang);
- language_btn->add_item(lang_name + " [" + lang + "]", i);
- language_btn->set_item_metadata(i, lang);
- if (current_lang == lang) {
- language_btn->select(i);
- language_btn->set_text(lang);
- }
- }
- language_btn->set_icon(get_theme_icon("Environment", "EditorIcons"));
+ filter_option = memnew(OptionButton);
+ filter_option->set_clip_text(true);
+ filter_option->set_custom_minimum_size(Size2(150 * EDSCALE, 10 * EDSCALE));
+ filter_option->connect("item_selected", callable_mp(this, &ProjectManager::_on_order_option_changed));
+ hb->add_child(filter_option);
- settings_hb->add_child(language_btn);
- language_btn->connect("item_selected", callable_mp(this, &ProjectManager::_language_selected));
+ Vector<String> sort_filter_titles;
+ sort_filter_titles.push_back(TTR("Name"));
+ sort_filter_titles.push_back(TTR("Path"));
+ sort_filter_titles.push_back(TTR("Last Edited"));
- center_box->add_child(settings_hb);
- settings_hb->set_anchors_and_margins_preset(Control::PRESET_TOP_RIGHT);
+ for (int i = 0; i < sort_filter_titles.size(); i++) {
+ filter_option->add_item(sort_filter_titles[i]);
+ }
- //////////////////////////////////////////////////////////////
+ PanelContainer *pc = memnew(PanelContainer);
+ pc->add_theme_style_override("panel", get_theme_stylebox("bg", "Tree"));
+ pc->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+ search_tree_vb->add_child(pc);
- language_restart_ask = memnew(ConfirmationDialog);
- language_restart_ask->get_ok()->set_text(TTR("Restart Now"));
- language_restart_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_restart_confirm));
- language_restart_ask->get_cancel()->set_text(TTR("Continue"));
- gui_base->add_child(language_restart_ask);
+ _project_list = memnew(ProjectList);
+ _project_list->connect(ProjectList::SIGNAL_SELECTION_CHANGED, callable_mp(this, &ProjectManager::_update_project_buttons));
+ _project_list->connect(ProjectList::SIGNAL_PROJECT_ASK_OPEN, callable_mp(this, &ProjectManager::_open_selected_projects_ask));
+ _project_list->set_enable_h_scroll(false);
+ pc->add_child(_project_list);
+ }
- erase_missing_ask = memnew(ConfirmationDialog);
- erase_missing_ask->get_ok()->set_text(TTR("Remove All"));
- erase_missing_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_erase_missing_projects_confirm));
- gui_base->add_child(erase_missing_ask);
+ {
+ // Project tab side bar
+ VBoxContainer *tree_vb = memnew(VBoxContainer);
+ tree_vb->set_custom_minimum_size(Size2(120, 120));
+ projects_hb->add_child(tree_vb);
+
+ Button *create = memnew(Button);
+ create->set_text(TTR("New Project"));
+ create->connect("pressed", callable_mp(this, &ProjectManager::_new_project));
+ tree_vb->add_child(create);
+
+ Button *import = memnew(Button);
+ import->set_text(TTR("Import"));
+ import->connect("pressed", callable_mp(this, &ProjectManager::_import_project));
+ tree_vb->add_child(import);
+
+ Button *scan = memnew(Button);
+ scan->set_text(TTR("Scan"));
+ scan->connect("pressed", callable_mp(this, &ProjectManager::_scan_projects));
+ tree_vb->add_child(scan);
+
+ tree_vb->add_child(memnew(HSeparator));
+
+ open_btn = memnew(Button);
+ open_btn->set_text(TTR("Edit"));
+ open_btn->connect("pressed", callable_mp(this, &ProjectManager::_open_selected_projects_ask));
+ tree_vb->add_child(open_btn);
+
+ run_btn = memnew(Button);
+ run_btn->set_text(TTR("Run"));
+ run_btn->connect("pressed", callable_mp(this, &ProjectManager::_run_project));
+ tree_vb->add_child(run_btn);
+
+ rename_btn = memnew(Button);
+ rename_btn->set_text(TTR("Rename"));
+ rename_btn->connect("pressed", callable_mp(this, &ProjectManager::_rename_project));
+ tree_vb->add_child(rename_btn);
+
+ erase_btn = memnew(Button);
+ erase_btn->set_text(TTR("Remove"));
+ erase_btn->connect("pressed", callable_mp(this, &ProjectManager::_erase_project));
+ tree_vb->add_child(erase_btn);
+
+ erase_missing_btn = memnew(Button);
+ erase_missing_btn->set_text(TTR("Remove Missing"));
+ erase_missing_btn->connect("pressed", callable_mp(this, &ProjectManager::_erase_missing_projects));
+ tree_vb->add_child(erase_missing_btn);
+ }
- erase_ask = memnew(ConfirmationDialog);
- erase_ask->get_ok()->set_text(TTR("Remove"));
- erase_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_erase_project_confirm));
- gui_base->add_child(erase_ask);
+ {
+ // Version info and language options
+ HBoxContainer *settings_hb = memnew(HBoxContainer);
+ settings_hb->set_alignment(BoxContainer::ALIGN_END);
+ settings_hb->set_h_grow_direction(Control::GROW_DIRECTION_BEGIN);
+
+ Label *version_label = memnew(Label);
+ String hash = String(VERSION_HASH);
+ if (hash.length() != 0) {
+ hash = "." + hash.left(9);
+ }
+ version_label->set_text("v" VERSION_FULL_BUILD "" + hash);
+ version_label->set_self_modulate(Color(1, 1, 1, 0.6));
+ version_label->set_align(Label::ALIGN_CENTER);
+ settings_hb->add_child(version_label);
+
+ language_btn = memnew(OptionButton);
+ language_btn->set_flat(true);
+ language_btn->set_icon(get_theme_icon("Environment", "EditorIcons"));
+ language_btn->set_focus_mode(Control::FOCUS_NONE);
+ language_btn->connect("item_selected", callable_mp(this, &ProjectManager::_language_selected));
+
+ Vector<String> editor_languages;
+ List<PropertyInfo> editor_settings_properties;
+ EditorSettings::get_singleton()->get_property_list(&editor_settings_properties);
+ for (List<PropertyInfo>::Element *E = editor_settings_properties.front(); E; E = E->next()) {
+ PropertyInfo &pi = E->get();
+ if (pi.name == "interface/editor/editor_language") {
+ editor_languages = pi.hint_string.split(",");
+ break;
+ }
+ }
- multi_open_ask = memnew(ConfirmationDialog);
- multi_open_ask->get_ok()->set_text(TTR("Edit"));
- multi_open_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_open_selected_projects));
- gui_base->add_child(multi_open_ask);
+ String current_lang = EditorSettings::get_singleton()->get("interface/editor/editor_language");
+ language_btn->set_text(current_lang);
- multi_run_ask = memnew(ConfirmationDialog);
- multi_run_ask->get_ok()->set_text(TTR("Run"));
- multi_run_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_run_project_confirm));
- gui_base->add_child(multi_run_ask);
+ for (int i = 0; i < editor_languages.size(); i++) {
+ String lang = editor_languages[i];
+ String lang_name = TranslationServer::get_singleton()->get_locale_name(lang);
+ language_btn->add_item(lang_name + " [" + lang + "]", i);
+ language_btn->set_item_metadata(i, lang);
+ if (current_lang == lang) {
+ language_btn->select(i);
+ }
+ }
- multi_scan_ask = memnew(ConfirmationDialog);
- multi_scan_ask->get_ok()->set_text(TTR("Scan"));
- gui_base->add_child(multi_scan_ask);
+ settings_hb->add_child(language_btn);
+ center_box->add_child(settings_hb);
+ settings_hb->set_anchors_and_margins_preset(Control::PRESET_TOP_RIGHT);
+ }
- ask_update_settings = memnew(ConfirmationDialog);
- ask_update_settings->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_confirm_update_settings));
- gui_base->add_child(ask_update_settings);
+ if (StreamPeerSSL::is_available()) {
+ asset_library = memnew(EditorAssetLibrary(true));
+ asset_library->set_name(TTR("Templates"));
+ tabs->add_child(asset_library);
+ asset_library->connect("install_asset", callable_mp(this, &ProjectManager::_install_project));
+ } else {
+ WARN_PRINT("Asset Library not available, as it requires SSL to work.");
+ }
- OS::get_singleton()->set_low_processor_usage_mode(true);
+ {
+ // Dialogs
+ language_restart_ask = memnew(ConfirmationDialog);
+ language_restart_ask->get_ok()->set_text(TTR("Restart Now"));
+ language_restart_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_restart_confirm));
+ language_restart_ask->get_cancel()->set_text(TTR("Continue"));
+ add_child(language_restart_ask);
+
+ scan_dir = memnew(FileDialog);
+ scan_dir->set_access(FileDialog::ACCESS_FILESYSTEM);
+ scan_dir->set_file_mode(FileDialog::FILE_MODE_OPEN_DIR);
+ scan_dir->set_title(TTR("Select a Folder to Scan")); // must be after mode or it's overridden
+ scan_dir->set_current_dir(EditorSettings::get_singleton()->get("filesystem/directories/default_project_path"));
+ add_child(scan_dir);
+ scan_dir->connect("dir_selected", callable_mp(this, &ProjectManager::_scan_begin));
+
+ erase_missing_ask = memnew(ConfirmationDialog);
+ erase_missing_ask->get_ok()->set_text(TTR("Remove All"));
+ erase_missing_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_erase_missing_projects_confirm));
+ add_child(erase_missing_ask);
+
+ erase_ask = memnew(ConfirmationDialog);
+ erase_ask->get_ok()->set_text(TTR("Remove"));
+ erase_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_erase_project_confirm));
+ add_child(erase_ask);
+
+ multi_open_ask = memnew(ConfirmationDialog);
+ multi_open_ask->get_ok()->set_text(TTR("Edit"));
+ multi_open_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_open_selected_projects));
+ add_child(multi_open_ask);
+
+ multi_run_ask = memnew(ConfirmationDialog);
+ multi_run_ask->get_ok()->set_text(TTR("Run"));
+ multi_run_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_run_project_confirm));
+ add_child(multi_run_ask);
+
+ multi_scan_ask = memnew(ConfirmationDialog);
+ multi_scan_ask->get_ok()->set_text(TTR("Scan"));
+ add_child(multi_scan_ask);
+
+ ask_update_settings = memnew(ConfirmationDialog);
+ ask_update_settings->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_confirm_update_settings));
+ add_child(ask_update_settings);
+
+ npdialog = memnew(ProjectDialog);
+ npdialog->connect("projects_updated", callable_mp(this, &ProjectManager::_on_projects_updated));
+ npdialog->connect("project_created", callable_mp(this, &ProjectManager::_on_project_created));
+ add_child(npdialog);
+
+ run_error_diag = memnew(AcceptDialog);
+ run_error_diag->set_title(TTR("Can't run project"));
+ add_child(run_error_diag);
- npdialog = memnew(ProjectDialog);
- gui_base->add_child(npdialog);
+ dialog_error = memnew(AcceptDialog);
+ add_child(dialog_error);
- npdialog->connect("projects_updated", callable_mp(this, &ProjectManager::_on_projects_updated));
- npdialog->connect("project_created", callable_mp(this, &ProjectManager::_on_project_created));
+ open_templates = memnew(ConfirmationDialog);
+ open_templates->set_text(TTR("You currently don't have any projects.\nWould you like to explore official example projects in the Asset Library?"));
+ open_templates->get_ok()->set_text(TTR("Open Asset Library"));
+ open_templates->connect("confirmed", callable_mp(this, &ProjectManager::_open_asset_library));
+ add_child(open_templates);
+ }
_load_recent_projects();
@@ -2635,18 +2651,7 @@ ProjectManager::ProjectManager() {
SceneTree::get_singleton()->get_root()->connect("files_dropped", callable_mp(this, &ProjectManager::_files_dropped));
- run_error_diag = memnew(AcceptDialog);
- gui_base->add_child(run_error_diag);
- run_error_diag->set_title(TTR("Can't run project"));
-
- dialog_error = memnew(AcceptDialog);
- gui_base->add_child(dialog_error);
-
- open_templates = memnew(ConfirmationDialog);
- open_templates->set_text(TTR("You currently don't have any projects.\nWould you like to explore official example projects in the Asset Library?"));
- open_templates->get_ok()->set_text(TTR("Open Asset Library"));
- open_templates->connect("confirmed", callable_mp(this, &ProjectManager::_open_asset_library));
- add_child(open_templates);
+ OS::get_singleton()->set_low_processor_usage_mode(true);
}
ProjectManager::~ProjectManager() {
@@ -2654,82 +2659,3 @@ ProjectManager::~ProjectManager() {
EditorSettings::destroy();
}
}
-
-void ProjectListFilter::_setup_filters(Vector<String> options) {
- filter_option->clear();
- for (int i = 0; i < options.size(); i++) {
- filter_option->add_item(options[i]);
- }
-}
-
-void ProjectListFilter::_search_text_changed(const String &p_newtext) {
- emit_signal("filter_changed");
-}
-
-String ProjectListFilter::get_search_term() {
- return search_box->get_text().strip_edges();
-}
-
-ProjectListFilter::FilterOption ProjectListFilter::get_filter_option() {
- return _current_filter;
-}
-
-void ProjectListFilter::set_filter_option(FilterOption option) {
- filter_option->select((int)option);
- _filter_option_selected(0);
-}
-
-void ProjectListFilter::_filter_option_selected(int p_idx) {
- FilterOption selected = (FilterOption)(filter_option->get_selected());
- if (_current_filter != selected) {
- _current_filter = selected;
- if (is_inside_tree()) {
- emit_signal("filter_changed");
- }
- }
-}
-
-void ProjectListFilter::_notification(int p_what) {
- if (p_what == NOTIFICATION_ENTER_TREE && has_search_box) {
- search_box->set_right_icon(get_theme_icon("Search", "EditorIcons"));
- search_box->set_clear_button_enabled(true);
- }
-}
-
-void ProjectListFilter::_bind_methods() {
- ADD_SIGNAL(MethodInfo("filter_changed"));
-}
-
-void ProjectListFilter::add_filter_option() {
- filter_option = memnew(OptionButton);
- filter_option->set_clip_text(true);
- filter_option->connect("item_selected", callable_mp(this, &ProjectListFilter::_filter_option_selected));
- add_child(filter_option);
-}
-
-void ProjectListFilter::add_search_box() {
- search_box = memnew(LineEdit);
- search_box->set_placeholder(TTR("Search"));
- search_box->set_tooltip(
- TTR("The search box filters projects by name and last path component.\nTo filter projects by name and full path, the query must contain at least one `/` character."));
- search_box->connect("text_changed", callable_mp(this, &ProjectListFilter::_search_text_changed));
- search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- add_child(search_box);
-
- has_search_box = true;
-}
-
-void ProjectListFilter::set_filter_size(int h_size) {
- filter_option->set_custom_minimum_size(Size2(h_size * EDSCALE, 10 * EDSCALE));
-}
-
-ProjectListFilter::ProjectListFilter() {
- _current_filter = FILTER_NAME;
- has_search_box = false;
-}
-
-void ProjectListFilter::clear() {
- if (has_search_box) {
- search_box->clear();
- }
-}
diff --git a/editor/project_manager.h b/editor/project_manager.h
index 66b38d0746..407dba0c94 100644
--- a/editor/project_manager.h
+++ b/editor/project_manager.h
@@ -39,22 +39,31 @@
class ProjectDialog;
class ProjectList;
-class ProjectListFilter;
+
+enum FilterOption {
+ NAME,
+ PATH,
+ EDIT_DATE,
+};
class ProjectManager : public Control {
GDCLASS(ProjectManager, Control);
- Button *erase_btn;
- Button *erase_missing_btn;
+ TabContainer *tabs;
+
+ ProjectList *_project_list;
+
+ LineEdit *search_box;
+ OptionButton *filter_option;
+
+ Button *run_btn;
Button *open_btn;
Button *rename_btn;
- Button *run_btn;
+ Button *erase_btn;
+ Button *erase_missing_btn;
EditorAssetLibrary *asset_library;
- ProjectListFilter *project_filter;
- ProjectListFilter *project_order_filter;
-
FileDialog *scan_dir;
ConfirmationDialog *language_restart_ask;
ConfirmationDialog *erase_ask;
@@ -64,18 +73,12 @@ class ProjectManager : public Control {
ConfirmationDialog *multi_scan_ask;
ConfirmationDialog *ask_update_settings;
ConfirmationDialog *open_templates;
+
AcceptDialog *run_error_diag;
AcceptDialog *dialog_error;
ProjectDialog *npdialog;
- HBoxContainer *projects_hb;
- TabContainer *tabs;
- ProjectList *_project_list;
-
OptionButton *language_btn;
- Control *gui_base;
-
- bool importing;
void _open_asset_library();
void _scan_projects();
@@ -94,14 +97,13 @@ class ProjectManager : public Control {
void _language_selected(int p_id);
void _restart_confirm();
void _exit_dialog();
- void _scan_begin(const String &p_base);
-
void _confirm_update_settings();
void _load_recent_projects();
void _on_project_created(const String &dir);
void _on_projects_updated();
- void _update_scroll_position(const String &dir);
+ void _scan_multiple_folders(PackedStringArray p_files);
+ void _scan_begin(const String &p_base);
void _scan_dir(const String &path, List<String> *r_projects);
void _install_project(const String &p_zip_path, const String &p_title);
@@ -109,10 +111,9 @@ class ProjectManager : public Control {
void _dim_window();
void _unhandled_input(const Ref<InputEvent> &p_ev);
void _files_dropped(PackedStringArray p_files, int p_screen);
- void _scan_multiple_folders(PackedStringArray p_files);
- void _on_order_option_changed();
- void _on_filter_option_changed();
+ void _on_order_option_changed(int p_idx);
+ void _on_search_term_changed(const String &p_term);
protected:
void _notification(int p_what);
@@ -123,41 +124,4 @@ public:
~ProjectManager();
};
-class ProjectListFilter : public HBoxContainer {
- GDCLASS(ProjectListFilter, HBoxContainer);
-
-public:
- enum FilterOption {
- FILTER_NAME,
- FILTER_PATH,
- FILTER_EDIT_DATE,
- };
-
-private:
- friend class ProjectManager;
-
- OptionButton *filter_option;
- LineEdit *search_box;
- bool has_search_box;
- FilterOption _current_filter;
-
- void _search_text_changed(const String &p_newtext);
- void _filter_option_selected(int p_idx);
-
-protected:
- void _notification(int p_what);
- static void _bind_methods();
-
-public:
- void _setup_filters(Vector<String> options);
- void add_filter_option();
- void add_search_box();
- void set_filter_size(int h_size);
- String get_search_term();
- FilterOption get_filter_option();
- void set_filter_option(FilterOption);
- ProjectListFilter();
- void clear();
-};
-
#endif // PROJECT_MANAGER_H
diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp
index 0257e31ee7..b6621d0d1e 100644
--- a/editor/project_settings_editor.cpp
+++ b/editor/project_settings_editor.cpp
@@ -30,8 +30,6 @@
#include "project_settings_editor.h"
-#include "core/global_constants.h"
-#include "core/os/keyboard.h"
#include "core/project_settings.h"
#include "editor/editor_export.h"
#include "editor/editor_node.h"
@@ -48,175 +46,163 @@ void ProjectSettingsEditor::popup_project_settings() {
popup_centered_clamped(Size2(900, 700) * EDSCALE, 0.8);
}
- globals_editor->update_category_list();
+ _add_feature_overrides();
+ inspector->update_category_list();
+
localization_editor->update_translations();
autoload_settings->update_autoload();
plugin_settings->update_plugins();
- set_process_unhandled_input(true);
}
-void ProjectSettingsEditor::_unhandled_input(const Ref<InputEvent> &p_event) {
- const Ref<InputEventKey> k = p_event;
-
- if (k.is_valid() && k->is_pressed()) {
- if (k->get_keycode_with_modifiers() == (KEY_MASK_CMD | KEY_F)) {
- if (search_button->is_pressed()) {
- search_box->grab_focus();
- search_box->select_all();
- } else {
- // This toggles the search bar display while giving the button its "pressed" appearance
- search_button->set_pressed(true);
- }
-
- set_input_as_handled();
- }
- }
+void ProjectSettingsEditor::queue_save() {
+ timer->start();
}
-void ProjectSettingsEditor::_notification(int p_what) {
- switch (p_what) {
- case NOTIFICATION_VISIBILITY_CHANGED: {
- if (!is_visible()) {
- EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "project_settings", Rect2(get_position(), get_size()));
- set_process_unhandled_input(false);
- }
- } break;
- case NOTIFICATION_ENTER_TREE: {
- globals_editor->edit(ProjectSettings::get_singleton());
-
- search_button->set_icon(get_theme_icon("Search", "EditorIcons"));
- search_box->set_right_icon(get_theme_icon("Search", "EditorIcons"));
- search_box->set_clear_button_enabled(true);
-
- restart_close_button->set_icon(get_theme_icon("Close", "EditorIcons"));
- restart_container->add_theme_style_override("panel", get_theme_stylebox("bg", "Tree"));
- restart_icon->set_texture(get_theme_icon("StatusWarning", "EditorIcons"));
- restart_label->add_theme_color_override("font_color", get_theme_color("warning_color", "Editor"));
-
- } break;
- case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
- search_button->set_icon(get_theme_icon("Search", "EditorIcons"));
- search_box->set_right_icon(get_theme_icon("Search", "EditorIcons"));
- search_box->set_clear_button_enabled(true);
- } break;
- }
+void ProjectSettingsEditor::set_plugins_page() {
+ tab_container->set_current_tab(plugin_settings->get_index());
}
void ProjectSettingsEditor::update_plugins() {
plugin_settings->update_plugins();
}
-void ProjectSettingsEditor::_item_selected(const String &p_path) {
- const String &selected_path = p_path;
- if (selected_path == String()) {
- return;
- }
- category->set_text(globals_editor->get_current_section());
- property->set_text(selected_path);
- popup_copy_to_feature->set_disabled(false);
+void ProjectSettingsEditor::_setting_edited(const String &p_name) {
+ queue_save();
}
-void ProjectSettingsEditor::_item_adds(String) {
- _item_add();
+void ProjectSettingsEditor::_advanced_pressed() {
+ if (advanced->is_pressed()) {
+ _update_advanced_bar();
+ advanced_bar->show();
+ } else {
+ advanced_bar->hide();
+ }
}
-void ProjectSettingsEditor::_item_add() {
- // Initialize the property with the default value for the given type.
- // The type list starts at 1 (as we exclude Nil), so add 1 to the selected value.
- Callable::CallError ce;
- const Variant value = Variant::construct(Variant::Type(type->get_selected() + 1), nullptr, 0, ce);
-
- String catname = category->get_text().strip_edges();
- String propname = property->get_text().strip_edges();
-
- if (propname.empty()) {
+void ProjectSettingsEditor::_setting_selected(const String &p_path) {
+ if (p_path == String()) {
return;
}
- if (catname.empty()) {
- catname = "global";
- }
+ category_box->set_text(inspector->get_current_section());
+ property_box->set_text(p_path);
- String name = catname + "/" + propname;
+ if (advanced_bar->is_visible()) {
+ _update_advanced_bar(); // set_text doesn't trigger text_changed
+ }
+}
- undo_redo->create_action(TTR("Add Global Property"));
+void ProjectSettingsEditor::_add_setting() {
+ String setting = _get_setting_name();
- undo_redo->add_do_property(ProjectSettings::get_singleton(), name, value);
+ // Initialize the property with the default value for the given type.
+ // The type list starts at 1 (as we exclude Nil), so add 1 to the selected value.
+ Callable::CallError ce;
+ const Variant value = Variant::construct(Variant::Type(type->get_selected() + 1), nullptr, 0, ce);
- if (ProjectSettings::get_singleton()->has_setting(name)) {
- undo_redo->add_undo_property(ProjectSettings::get_singleton(), name, ProjectSettings::get_singleton()->get(name));
- } else {
- undo_redo->add_undo_property(ProjectSettings::get_singleton(), name, Variant());
- }
+ undo_redo->create_action(TTR("Add Project Setting"));
+ undo_redo->add_do_property(ps, setting, value);
+ undo_redo->add_undo_property(ps, setting, ps->has_setting(setting) ? ps->get(setting) : Variant());
- undo_redo->add_do_method(globals_editor, "update_category_list");
- undo_redo->add_undo_method(globals_editor, "update_category_list");
- undo_redo->add_do_method(this, "_settings_changed");
- undo_redo->add_undo_method(this, "_settings_changed");
+ undo_redo->add_do_method(inspector, "update_category_list");
+ undo_redo->add_undo_method(inspector, "update_category_list");
+ undo_redo->add_do_method(this, "queue_save");
+ undo_redo->add_undo_method(this, "queue_save");
undo_redo->commit_action();
- globals_editor->set_current_section(catname);
-
- _settings_changed();
+ inspector->set_current_section(setting.get_slice("/", 1));
}
-void ProjectSettingsEditor::_item_del() {
- String path = globals_editor->get_inspector()->get_selected_path();
- if (path == String()) {
- EditorNode::get_singleton()->show_warning(TTR("Select a setting item first!"));
- return;
- }
-
- String property = globals_editor->get_current_section().plus_file(path);
-
- if (!ProjectSettings::get_singleton()->has_setting(property)) {
- EditorNode::get_singleton()->show_warning(vformat(TTR("No property '%s' exists."), property));
- return;
- }
+void ProjectSettingsEditor::_delete_setting(bool p_confirmed) {
+ String setting = _get_setting_name();
+ Variant value = ps->get(setting);
+ int order = ps->get_order(setting);
- if (ProjectSettings::get_singleton()->get_order(property) < ProjectSettings::NO_BUILTIN_ORDER_BASE) {
- EditorNode::get_singleton()->show_warning(vformat(TTR("Setting '%s' is internal, and it can't be deleted."), property));
+ if (!p_confirmed) {
+ del_confirmation->set_text(vformat(TTR("Are you sure you want to delete '%s'?"), setting));
+ del_confirmation->popup_centered();
return;
}
undo_redo->create_action(TTR("Delete Item"));
- Variant value = ProjectSettings::get_singleton()->get(property);
- int order = ProjectSettings::get_singleton()->get_order(property);
+ undo_redo->add_do_method(ps, "clear", setting);
+ undo_redo->add_undo_method(ps, "set", setting, value);
+ undo_redo->add_undo_method(ps, "set_order", setting, order);
- undo_redo->add_do_method(ProjectSettings::get_singleton(), "clear", property);
- undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set", property, value);
- undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set_order", property, order);
-
- undo_redo->add_do_method(globals_editor, "update_category_list");
- undo_redo->add_undo_method(globals_editor, "update_category_list");
-
- undo_redo->add_do_method(this, "_settings_changed");
- undo_redo->add_undo_method(this, "_settings_changed");
+ undo_redo->add_do_method(inspector, "update_category_list");
+ undo_redo->add_undo_method(inspector, "update_category_list");
+ undo_redo->add_do_method(this, "queue_save");
+ undo_redo->add_undo_method(this, "queue_save");
undo_redo->commit_action();
+
+ property_box->clear();
}
-void ProjectSettingsEditor::_save() {
- Error err = ProjectSettings::get_singleton()->save();
- message->set_text(err != OK ? TTR("Error saving settings.") : TTR("Settings saved OK."));
- message->popup_centered(Size2(300, 100) * EDSCALE);
+void ProjectSettingsEditor::_text_field_changed(const String &p_text) {
+ _update_advanced_bar();
}
-void ProjectSettingsEditor::_settings_prop_edited(const String &p_name) {
- // Method needed to discard the mandatory argument of the property_edited signal
- _settings_changed();
+void ProjectSettingsEditor::_feature_selected(int p_index) {
+ _update_advanced_bar();
}
-void ProjectSettingsEditor::_settings_changed() {
- timer->start();
+void ProjectSettingsEditor::_update_advanced_bar() {
+ const String property_text = property_box->get_text().strip_edges();
+
+ String error_msg = "";
+ bool disable_add = true;
+ bool disable_del = true;
+
+ if (!property_box->get_text().empty()) {
+ const String setting = _get_setting_name();
+ bool setting_exists = ps->has_setting(setting);
+ if (setting_exists) {
+ error_msg = TTR(" - Cannot add already existing setting.");
+
+ disable_del = ps->is_builtin_setting(setting);
+ if (disable_del) {
+ String msg = TTR(" - Cannot delete built-in setting.");
+ error_msg += (error_msg == "") ? msg : "\n" + msg;
+ }
+ } else {
+ bool bad_category = false; // Allow empty string.
+ Vector<String> cats = category_box->get_text().strip_edges().split("/");
+ for (int i = 0; i < cats.size(); i++) {
+ if (!cats[i].is_valid_identifier()) {
+ bad_category = true;
+ error_msg = TTR(" - Invalid category name.");
+ break;
+ }
+ }
+
+ disable_add = bad_category;
+
+ if (!property_text.is_valid_identifier()) {
+ disable_add = true;
+ String msg = TTR(" - Invalid property name.");
+ error_msg += (error_msg == "") ? msg : "\n" + msg;
+ }
+ }
+ }
+
+ add_button->set_disabled(disable_add);
+ del_button->set_disabled(disable_del);
+
+ error_label->set_text(error_msg);
+ error_label->set_visible(error_msg != "");
}
-void ProjectSettingsEditor::queue_save() {
- _settings_changed();
+String ProjectSettingsEditor::_get_setting_name() const {
+ const String cat = category_box->get_text();
+ const String name = (cat.empty() ? "global" : cat.strip_edges()).plus_file(property_box->get_text().strip_edges());
+ const String feature = feature_override->get_item_text(feature_override->get_selected());
+
+ return (feature == "") ? name : (name + "." + feature);
}
-void ProjectSettingsEditor::_copy_to_platform_about_to_show() {
+void ProjectSettingsEditor::_add_feature_overrides() {
Set<String> presets;
presets.insert("bptc");
@@ -230,25 +216,26 @@ void ProjectSettingsEditor::_copy_to_platform_about_to_show() {
presets.insert("standalone");
presets.insert("32");
presets.insert("64");
- // Not available as an export platform yet, so it needs to be added manually
- presets.insert("Server");
+ presets.insert("Server"); // Not available as an export platform yet, so it needs to be added manually
+
+ EditorExport *ee = EditorExport::get_singleton();
- for (int i = 0; i < EditorExport::get_singleton()->get_export_platform_count(); i++) {
+ for (int i = 0; i < ee->get_export_platform_count(); i++) {
List<String> p;
- EditorExport::get_singleton()->get_export_platform(i)->get_platform_features(&p);
+ ee->get_export_platform(i)->get_platform_features(&p);
for (List<String>::Element *E = p.front(); E; E = E->next()) {
presets.insert(E->get());
}
}
- for (int i = 0; i < EditorExport::get_singleton()->get_export_preset_count(); i++) {
+ for (int i = 0; i < ee->get_export_preset_count(); i++) {
List<String> p;
- EditorExport::get_singleton()->get_export_preset(i)->get_platform()->get_preset_features(EditorExport::get_singleton()->get_export_preset(i), &p);
+ ee->get_export_preset(i)->get_platform()->get_preset_features(ee->get_export_preset(i), &p);
for (List<String>::Element *E = p.front(); E; E = E->next()) {
presets.insert(E->get());
}
- String custom = EditorExport::get_singleton()->get_export_preset(i)->get_custom_features();
+ String custom = ee->get_export_preset(i)->get_custom_features();
Vector<String> custom_list = custom.split(",");
for (int j = 0; j < custom_list.size(); j++) {
String f = custom_list[j].strip_edges();
@@ -258,70 +245,14 @@ void ProjectSettingsEditor::_copy_to_platform_about_to_show() {
}
}
- popup_copy_to_feature->get_popup()->clear();
- int id = 0;
+ feature_override->clear();
+ feature_override->add_item("", 0); // So it is always on top.
+ int id = 1;
for (Set<String>::Element *E = presets.front(); E; E = E->next()) {
- popup_copy_to_feature->get_popup()->add_item(E->get(), id++);
+ feature_override->add_item(E->get(), id++);
}
}
-void ProjectSettingsEditor::_copy_to_platform(int p_which) {
- String path = globals_editor->get_inspector()->get_selected_path();
- if (path == String()) {
- EditorNode::get_singleton()->show_warning(TTR("Select a setting item first!"));
- return;
- }
-
- String property = globals_editor->get_current_section().plus_file(path);
-
- undo_redo->create_action(TTR("Override for Feature"));
-
- Variant value = ProjectSettings::get_singleton()->get(property);
- if (property.find(".") != -1) { //overwriting overwrite, keep overwrite
- undo_redo->add_do_method(ProjectSettings::get_singleton(), "clear", property);
- undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set", property, value);
- }
-
- String feature = popup_copy_to_feature->get_popup()->get_item_text(p_which);
- String new_path = property + "." + feature;
-
- undo_redo->add_do_method(ProjectSettings::get_singleton(), "set", new_path, value);
- if (ProjectSettings::get_singleton()->has_setting(new_path)) {
- undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set", new_path, ProjectSettings::get_singleton()->get(new_path));
- }
-
- undo_redo->add_do_method(globals_editor, "update_category_list");
- undo_redo->add_undo_method(globals_editor, "update_category_list");
-
- undo_redo->add_do_method(this, "_settings_changed");
- undo_redo->add_undo_method(this, "_settings_changed");
-
- undo_redo->commit_action();
-}
-
-void ProjectSettingsEditor::_toggle_search_bar(bool p_pressed) {
- globals_editor->get_inspector()->set_use_filter(p_pressed);
-
- if (p_pressed) {
- search_bar->show();
- add_prop_bar->hide();
- search_box->grab_focus();
- search_box->select_all();
- } else {
- search_box->clear();
- search_bar->hide();
- add_prop_bar->show();
- }
-}
-
-void ProjectSettingsEditor::set_plugins_page() {
- tab_container->set_current_tab(plugin_settings->get_index());
-}
-
-TabContainer *ProjectSettingsEditor::get_tabs() {
- return tab_container;
-}
-
void ProjectSettingsEditor::_editor_restart() {
EditorNode::get_singleton()->save_all_scenes();
EditorNode::get_singleton()->restart_editor();
@@ -335,17 +266,48 @@ void ProjectSettingsEditor::_editor_restart_close() {
restart_container->hide();
}
-void ProjectSettingsEditor::_bind_methods() {
- ClassDB::bind_method(D_METHOD("_unhandled_input"), &ProjectSettingsEditor::_unhandled_input);
- ClassDB::bind_method(D_METHOD("_save"), &ProjectSettingsEditor::_save);
+void ProjectSettingsEditor::_notification(int p_what) {
+ switch (p_what) {
+ case NOTIFICATION_VISIBILITY_CHANGED: {
+ if (!is_visible()) {
+ EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "project_settings", Rect2(get_position(), get_size()));
+ if (advanced->is_pressed()) {
+ advanced->set_pressed(false);
+ advanced_bar->hide();
+ }
+ }
+ } break;
+ case NOTIFICATION_ENTER_TREE: {
+ inspector->edit(ps);
+
+ error_label->add_theme_color_override("font_color", error_label->get_theme_color("error_color", "Editor"));
+ add_button->set_icon(get_theme_icon("Add", "EditorIcons"));
+ del_button->set_icon(get_theme_icon("Remove", "EditorIcons"));
+
+ search_box->set_right_icon(get_theme_icon("Search", "EditorIcons"));
+ search_box->set_clear_button_enabled(true);
- ClassDB::bind_method(D_METHOD("get_tabs"), &ProjectSettingsEditor::get_tabs);
+ restart_close_button->set_icon(get_theme_icon("Close", "EditorIcons"));
+ restart_container->add_theme_style_override("panel", get_theme_stylebox("bg", "Tree"));
+ restart_icon->set_texture(get_theme_icon("StatusWarning", "EditorIcons"));
+ restart_label->add_theme_color_override("font_color", get_theme_color("warning_color", "Editor"));
+ } break;
+ case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
+ search_box->set_right_icon(get_theme_icon("Search", "EditorIcons"));
+ search_box->set_clear_button_enabled(true);
+ } break;
+ }
+}
+
+void ProjectSettingsEditor::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("queue_save"), &ProjectSettingsEditor::queue_save);
}
ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
singleton = this;
set_title(TTR("Project Settings (project.godot)"));
+ ps = ProjectSettings::get_singleton();
undo_redo = &p_data->get_undo_redo();
data = p_data;
@@ -354,103 +316,109 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
tab_container->set_use_hidden_tabs_for_min_size(true);
add_child(tab_container);
- VBoxContainer *props_base = memnew(VBoxContainer);
- props_base->set_name(TTR("General"));
- props_base->set_alignment(BoxContainer::ALIGN_BEGIN);
- props_base->set_v_size_flags(Control::SIZE_EXPAND_FILL);
- tab_container->add_child(props_base);
-
- HBoxContainer *hbc = memnew(HBoxContainer);
- hbc->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- props_base->add_child(hbc);
-
- search_button = memnew(Button);
- search_button->set_text(TTR("Search"));
- search_button->set_toggle_mode(true);
- search_button->set_pressed(false);
- search_button->connect("toggled", callable_mp(this, &ProjectSettingsEditor::_toggle_search_bar));
- hbc->add_child(search_button);
-
- hbc->add_child(memnew(VSeparator));
-
- add_prop_bar = memnew(HBoxContainer);
- add_prop_bar->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- hbc->add_child(add_prop_bar);
-
- Label *l = memnew(Label);
- l->set_text(TTR("Category:"));
- add_prop_bar->add_child(l);
-
- category = memnew(LineEdit);
- category->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- category->connect("text_entered", callable_mp(this, &ProjectSettingsEditor::_item_adds));
- add_prop_bar->add_child(category);
-
- l = memnew(Label);
- l->set_text(TTR("Property:"));
- add_prop_bar->add_child(l);
-
- property = memnew(LineEdit);
- property->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- property->connect("text_entered", callable_mp(this, &ProjectSettingsEditor::_item_adds));
- add_prop_bar->add_child(property);
-
- l = memnew(Label);
- l->set_text(TTR("Type:"));
- add_prop_bar->add_child(l);
-
- type = memnew(OptionButton);
- type->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- add_prop_bar->add_child(type);
-
- // Start at 1 to avoid adding "Nil" as an option
- for (int i = 1; i < Variant::VARIANT_MAX; i++) {
- type->add_item(Variant::get_type_name(Variant::Type(i)));
+ VBoxContainer *general_editor = memnew(VBoxContainer);
+ general_editor->set_name(TTR("General"));
+ general_editor->set_alignment(BoxContainer::ALIGN_BEGIN);
+ general_editor->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+ tab_container->add_child(general_editor);
+
+ VBoxContainer *header = memnew(VBoxContainer);
+ header->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ general_editor->add_child(header);
+
+ {
+ // Search bar.
+ search_bar = memnew(HBoxContainer);
+ search_bar->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ header->add_child(search_bar);
+
+ search_box = memnew(LineEdit);
+ search_box->set_placeholder(TTR("Search"));
+ search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ search_bar->add_child(search_box);
+
+ advanced = memnew(CheckButton);
+ advanced->set_text(TTR("Advanced"));
+ advanced->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_advanced_pressed));
+ search_bar->add_child(advanced);
}
- Button *add = memnew(Button);
- add->set_text(TTR("Add"));
- add->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_item_add));
- add_prop_bar->add_child(add);
-
- search_bar = memnew(HBoxContainer);
- search_bar->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- search_bar->hide();
- hbc->add_child(search_bar);
-
- search_box = memnew(LineEdit);
- search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- search_bar->add_child(search_box);
+ {
+ // Advanced bar.
+ advanced_bar = memnew(VBoxContainer);
+ advanced_bar->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ advanced_bar->hide();
+ header->add_child(advanced_bar);
+
+ advanced_bar->add_child(memnew(HSeparator));
+
+ HBoxContainer *hbc = memnew(HBoxContainer);
+ hbc->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ advanced_bar->add_margin_child(TTR("Add or Remove Custom Project Settings:"), hbc, true);
+
+ category_box = memnew(LineEdit);
+ category_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ category_box->connect("text_changed", callable_mp(this, &ProjectSettingsEditor::_text_field_changed));
+ category_box->set_placeholder(TTR("Category"));
+ hbc->add_child(category_box);
+
+ Label *l = memnew(Label);
+ l->set_text("/");
+ hbc->add_child(l);
+
+ property_box = memnew(LineEdit);
+ property_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ property_box->set_placeholder(TTR("Property"));
+ property_box->connect("text_changed", callable_mp(this, &ProjectSettingsEditor::_text_field_changed));
+ hbc->add_child(property_box);
+
+ l = memnew(Label);
+ l->set_text(TTR("Type:"));
+ hbc->add_child(l);
+
+ type = memnew(OptionButton);
+ type->set_custom_minimum_size(Size2(100, 0) * EDSCALE);
+ hbc->add_child(type);
+
+ // Start at 1 to avoid adding "Nil" as an option
+ for (int i = 1; i < Variant::VARIANT_MAX; i++) {
+ type->add_item(Variant::get_type_name(Variant::Type(i)));
+ }
- globals_editor = memnew(SectionedInspector);
- globals_editor->get_inspector()->set_undo_redo(EditorNode::get_singleton()->get_undo_redo());
- globals_editor->set_v_size_flags(Control::SIZE_EXPAND_FILL);
- globals_editor->register_search_box(search_box);
- globals_editor->get_inspector()->connect("property_selected", callable_mp(this, &ProjectSettingsEditor::_item_selected));
- globals_editor->get_inspector()->connect("property_edited", callable_mp(this, &ProjectSettingsEditor::_settings_prop_edited));
- globals_editor->get_inspector()->connect("restart_requested", callable_mp(this, &ProjectSettingsEditor::_editor_restart_request));
- props_base->add_child(globals_editor);
+ l = memnew(Label);
+ l->set_text(TTR("Feature Override:"));
+ hbc->add_child(l);
- Button *del = memnew(Button);
- del->set_text(TTR("Delete"));
- del->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_item_del));
- hbc->add_child(del);
+ feature_override = memnew(OptionButton);
+ feature_override->set_custom_minimum_size(Size2(100, 0) * EDSCALE);
+ feature_override->connect("item_selected", callable_mp(this, &ProjectSettingsEditor::_feature_selected));
+ hbc->add_child(feature_override);
- add_prop_bar->add_child(memnew(VSeparator));
+ add_button = memnew(Button);
+ add_button->set_flat(true);
+ add_button->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_add_setting));
+ hbc->add_child(add_button);
- popup_copy_to_feature = memnew(MenuButton);
- popup_copy_to_feature->set_text(TTR("Override For..."));
- popup_copy_to_feature->set_disabled(true);
- add_prop_bar->add_child(popup_copy_to_feature);
+ del_button = memnew(Button);
+ del_button->set_flat(true);
+ del_button->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_delete_setting), varray(false));
+ hbc->add_child(del_button);
- popup_copy_to_feature->get_popup()->connect("id_pressed", callable_mp(this, &ProjectSettingsEditor::_copy_to_platform));
- popup_copy_to_feature->get_popup()->connect("about_to_popup", callable_mp(this, &ProjectSettingsEditor::_copy_to_platform_about_to_show));
+ error_label = memnew(Label);
+ advanced_bar->add_child(error_label);
+ }
- get_ok()->set_text(TTR("Close"));
- set_hide_on_ok(true);
+ inspector = memnew(SectionedInspector);
+ inspector->get_inspector()->set_undo_redo(EditorNode::get_singleton()->get_undo_redo());
+ inspector->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+ inspector->register_search_box(search_box);
+ inspector->get_inspector()->connect("property_selected", callable_mp(this, &ProjectSettingsEditor::_setting_selected));
+ inspector->get_inspector()->connect("property_edited", callable_mp(this, &ProjectSettingsEditor::_setting_edited));
+ inspector->get_inspector()->connect("restart_requested", callable_mp(this, &ProjectSettingsEditor::_editor_restart_request));
+ general_editor->add_child(inspector);
restart_container = memnew(PanelContainer);
- props_base->add_child(restart_container);
+ general_editor->add_child(restart_container);
HBoxContainer *restart_hb = memnew(HBoxContainer);
restart_container->hide();
@@ -475,27 +443,24 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
restart_close_button->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_editor_restart_close));
restart_hb->add_child(restart_close_button);
- message = memnew(AcceptDialog);
- add_child(message);
-
inputmap_editor = memnew(InputMapEditor);
inputmap_editor->set_name(TTR("Input Map"));
- inputmap_editor->connect("inputmap_changed", callable_mp(this, &ProjectSettingsEditor::_settings_changed));
+ inputmap_editor->connect("inputmap_changed", callable_mp(this, &ProjectSettingsEditor::queue_save));
tab_container->add_child(inputmap_editor);
localization_editor = memnew(LocalizationEditor);
localization_editor->set_name(TTR("Localization"));
- localization_editor->connect("localization_changed", callable_mp(this, &ProjectSettingsEditor::_settings_changed));
+ localization_editor->connect("localization_changed", callable_mp(this, &ProjectSettingsEditor::queue_save));
tab_container->add_child(localization_editor);
autoload_settings = memnew(EditorAutoloadSettings);
autoload_settings->set_name(TTR("AutoLoad"));
- autoload_settings->connect("autoload_changed", callable_mp(this, &ProjectSettingsEditor::_settings_changed));
+ autoload_settings->connect("autoload_changed", callable_mp(this, &ProjectSettingsEditor::queue_save));
tab_container->add_child(autoload_settings);
shaders_global_variables_editor = memnew(ShaderGlobalsEditor);
shaders_global_variables_editor->set_name(TTR("Shader Globals"));
- shaders_global_variables_editor->connect("globals_changed", callable_mp(this, &ProjectSettingsEditor::_settings_changed));
+ shaders_global_variables_editor->connect("globals_changed", callable_mp(this, &ProjectSettingsEditor::queue_save));
tab_container->add_child(shaders_global_variables_editor);
plugin_settings = memnew(EditorPluginSettings);
@@ -504,7 +469,14 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
timer = memnew(Timer);
timer->set_wait_time(1.5);
- timer->connect("timeout", callable_mp(ProjectSettings::get_singleton(), &ProjectSettings::save));
+ timer->connect("timeout", callable_mp(ps, &ProjectSettings::save));
timer->set_one_shot(true);
add_child(timer);
+
+ del_confirmation = memnew(ConfirmationDialog);
+ del_confirmation->connect("confirmed", callable_mp(this, &ProjectSettingsEditor::_delete_setting), varray(true));
+ add_child(del_confirmation);
+
+ get_ok()->set_text(TTR("Close"));
+ set_hide_on_ok(true);
}
diff --git a/editor/project_settings_editor.h b/editor/project_settings_editor.h
index c99c2fe9a2..4ecd28e514 100644
--- a/editor/project_settings_editor.h
+++ b/editor/project_settings_editor.h
@@ -35,12 +35,11 @@
#include "editor/editor_data.h"
#include "editor/editor_plugin_settings.h"
#include "editor/editor_sectioned_inspector.h"
+#include "editor/input_map_editor.h"
+#include "editor/localization_editor.h"
+#include "editor/shader_globals_editor.h"
#include "editor_autoload_settings.h"
-#include "input_map_editor.h"
-#include "localization_editor.h"
-#include "scene/gui/dialogs.h"
#include "scene/gui/tab_container.h"
-#include "shader_globals_editor.h"
class ProjectSettingsEditor : public AcceptDialog {
GDCLASS(ProjectSettingsEditor, AcceptDialog);
@@ -53,28 +52,33 @@ class ProjectSettingsEditor : public AcceptDialog {
INPUT_MOUSE_BUTTON
};
- TabContainer *tab_container;
- AcceptDialog *message;
+ static ProjectSettingsEditor *singleton;
+ ProjectSettings *ps;
Timer *timer;
- HBoxContainer *search_bar;
- Button *search_button;
- LineEdit *search_box;
- HBoxContainer *add_prop_bar;
- LineEdit *category;
- LineEdit *property;
- OptionButton *type;
-
- SectionedInspector *globals_editor;
-
- MenuButton *popup_copy_to_feature;
-
+ TabContainer *tab_container;
+ SectionedInspector *inspector;
InputMapEditor *inputmap_editor;
LocalizationEditor *localization_editor;
EditorAutoloadSettings *autoload_settings;
ShaderGlobalsEditor *shaders_global_variables_editor;
EditorPluginSettings *plugin_settings;
+ HBoxContainer *search_bar;
+ LineEdit *search_box;
+ CheckButton *advanced;
+
+ VBoxContainer *advanced_bar;
+ LineEdit *category_box;
+ LineEdit *property_box;
+ Button *add_button;
+ Button *del_button;
+ OptionButton *type;
+ OptionButton *feature_override;
+ Label *error_label;
+
+ ConfirmationDialog *del_confirmation;
+
Label *restart_label;
TextureRect *restart_icon;
PanelContainer *restart_container;
@@ -83,30 +87,25 @@ class ProjectSettingsEditor : public AcceptDialog {
EditorData *data;
UndoRedo *undo_redo;
- void _item_selected(const String &);
- void _item_adds(String);
- void _item_add();
- void _item_del();
- void _save();
-
- void _settings_prop_edited(const String &p_name);
- void _settings_changed();
-
- void _copy_to_platform(int p_which);
- void _copy_to_platform_about_to_show();
-
- void _toggle_search_bar(bool p_pressed);
+ void _advanced_pressed();
+ void _update_advanced_bar();
+ void _text_field_changed(const String &p_text);
+ void _feature_selected(int p_index);
- ProjectSettingsEditor();
-
- static ProjectSettingsEditor *singleton;
+ String _get_setting_name() const;
+ void _setting_edited(const String &p_name);
+ void _setting_selected(const String &p_path);
+ void _add_setting();
+ void _delete_setting(bool p_confirmed);
void _editor_restart_request();
void _editor_restart();
void _editor_restart_close();
+ void _add_feature_overrides();
+ ProjectSettingsEditor();
+
protected:
- void _unhandled_input(const Ref<InputEvent> &p_event);
void _notification(int p_what);
static void _bind_methods();
@@ -117,8 +116,7 @@ public:
void update_plugins();
EditorAutoloadSettings *get_autoload_settings() { return autoload_settings; }
-
- TabContainer *get_tabs();
+ TabContainer *get_tabs() { return tab_container; }
void queue_save();
diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp
index c9115fb870..7f1b5347cf 100644
--- a/editor/property_editor.cpp
+++ b/editor/property_editor.cpp
@@ -368,18 +368,18 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
float min = 0, max = 100, step = type == Variant::FLOAT ? .01 : 1;
if (c >= 1) {
if (!hint_text.get_slice(",", 0).empty()) {
- min = hint_text.get_slice(",", 0).to_double();
+ min = hint_text.get_slice(",", 0).to_float();
}
}
if (c >= 2) {
if (!hint_text.get_slice(",", 1).empty()) {
- max = hint_text.get_slice(",", 1).to_double();
+ max = hint_text.get_slice(",", 1).to_float();
}
}
if (c >= 3) {
if (!hint_text.get_slice(",", 2).empty()) {
- step = hint_text.get_slice(",", 2).to_double();
+ step = hint_text.get_slice(",", 2).to_float();
}
}
@@ -1590,7 +1590,7 @@ real_t CustomPropertyEditor::_parse_real_expression(String text) {
Error err = expr->parse(text);
real_t out;
if (err != OK) {
- out = value_editor[0]->get_text().to_double();
+ out = value_editor[0]->get_text().to_float();
} else {
out = expr->execute(Array(), nullptr, false);
}
@@ -1697,13 +1697,18 @@ void CustomPropertyEditor::config_value_editors(int p_amount, int p_columns, int
int cell_width = 95;
int cell_height = 25;
int cell_margin = 5;
- int hor_spacing = 5; // Spacing between labels and their values
-
int rows = ((p_amount - 1) / p_columns) + 1;
set_size(Size2(cell_margin + p_label_w + (cell_width + cell_margin + p_label_w) * p_columns, cell_margin + (cell_height + cell_margin) * rows) * EDSCALE);
for (int i = 0; i < MAX_VALUE_EDITORS; i++) {
+ value_label[i]->get_parent()->remove_child(value_label[i]);
+ value_editor[i]->get_parent()->remove_child(value_editor[i]);
+
+ int box_id = i / p_columns;
+ value_hboxes[box_id]->add_child(value_label[i]);
+ value_hboxes[box_id]->add_child(value_editor[i]);
+
if (i < MAX_VALUE_EDITORS / 4) {
if (i <= p_amount / 4) {
value_hboxes[i]->show();
@@ -1712,16 +1717,10 @@ void CustomPropertyEditor::config_value_editors(int p_amount, int p_columns, int
}
}
- int c = i % p_columns;
- int r = i / p_columns;
-
if (i < p_amount) {
value_editor[i]->show();
value_label[i]->show();
value_label[i]->set_text(i < p_strings.size() ? p_strings[i] : String(""));
- value_editor[i]->set_position(Point2(cell_margin + p_label_w + hor_spacing + (cell_width + cell_margin + p_label_w + hor_spacing) * c, cell_margin + (cell_height + cell_margin) * r) * EDSCALE);
- value_editor[i]->set_size(Size2(cell_width, cell_height));
- value_label[i]->set_position(Point2(cell_margin + (cell_width + cell_margin + p_label_w + hor_spacing) * c, cell_margin + (cell_height + cell_margin) * r) * EDSCALE);
value_editor[i]->set_editable(!read_only);
} else {
value_editor[i]->hide();
diff --git a/editor/property_selector.cpp b/editor/property_selector.cpp
index c6c93fae83..27b11e4fb5 100644
--- a/editor/property_selector.cpp
+++ b/editor/property_selector.cpp
@@ -84,6 +84,9 @@ void PropertySelector::_update_search() {
TreeItem *root = search_options->create_item();
+ // Allow using spaces in place of underscores in the search string (makes the search more fault-tolerant).
+ const String search_text = search_box->get_text().replace(" ", "_");
+
if (properties) {
List<PropertyInfo> props;
@@ -167,7 +170,7 @@ void PropertySelector::_update_search() {
continue;
}
- if (search_box->get_text() != String() && E->get().name.find(search_box->get_text()) == -1) {
+ if (search_box->get_text() != String() && E->get().name.findn(search_text) == -1) {
continue;
}
@@ -180,7 +183,7 @@ void PropertySelector::_update_search() {
item->set_metadata(0, E->get().name);
item->set_icon(0, type_icons[E->get().type]);
- if (!found && search_box->get_text() != String() && E->get().name.find(search_box->get_text()) != -1) {
+ if (!found && search_box->get_text() != String() && E->get().name.findn(search_text) != -1) {
item->select(0);
found = true;
}
@@ -255,7 +258,7 @@ void PropertySelector::_update_search() {
continue;
}
- if (search_box->get_text() != String() && name.find(search_box->get_text()) == -1) {
+ if (search_box->get_text() != String() && name.findn(search_text) == -1) {
continue;
}
@@ -270,29 +273,29 @@ void PropertySelector::_update_search() {
} else if (mi.return_val.type != Variant::NIL) {
desc = Variant::get_type_name(mi.return_val.type);
} else {
- desc = "void ";
+ desc = "void";
}
- desc += " " + mi.name + " ( ";
+ desc += vformat(" %s(", mi.name);
for (int i = 0; i < mi.arguments.size(); i++) {
if (i > 0) {
desc += ", ";
}
+ desc += mi.arguments[i].name;
+
if (mi.arguments[i].type == Variant::NIL) {
- desc += "var ";
+ desc += ": Variant";
} else if (mi.arguments[i].name.find(":") != -1) {
- desc += mi.arguments[i].name.get_slice(":", 1) + " ";
+ desc += vformat(": %s", mi.arguments[i].name.get_slice(":", 1));
mi.arguments[i].name = mi.arguments[i].name.get_slice(":", 0);
} else {
- desc += Variant::get_type_name(mi.arguments[i].type) + " ";
+ desc += vformat(": %s", Variant::get_type_name(mi.arguments[i].type));
}
-
- desc += mi.arguments[i].name;
}
- desc += " )";
+ desc += ")";
if (E->get().flags & METHOD_FLAG_CONST) {
desc += " const";
@@ -306,7 +309,7 @@ void PropertySelector::_update_search() {
item->set_metadata(0, name);
item->set_selectable(0, true);
- if (!found && search_box->get_text() != String() && name.find(search_box->get_text()) != -1) {
+ if (!found && search_box->get_text() != String() && name.findn(search_text) != -1) {
item->select(0);
found = true;
}
diff --git a/editor/rename_dialog.cpp b/editor/rename_dialog.cpp
index 6a54894f40..23990bca07 100644
--- a/editor/rename_dialog.cpp
+++ b/editor/rename_dialog.cpp
@@ -61,18 +61,16 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
// ---- 1st & 2nd row
Label *lbl_search = memnew(Label);
- lbl_search->set_text(TTR("Search"));
+ lbl_search->set_text(TTR("Search:"));
lne_search = memnew(LineEdit);
- lne_search->set_placeholder(TTR("Search"));
lne_search->set_name("lne_search");
lne_search->set_h_size_flags(Control::SIZE_EXPAND_FILL);
Label *lbl_replace = memnew(Label);
- lbl_replace->set_text(TTR("Replace"));
+ lbl_replace->set_text(TTR("Replace:"));
lne_replace = memnew(LineEdit);
- lne_replace->set_placeholder(TTR("Replace"));
lne_replace->set_name("lne_replace");
lne_replace->set_h_size_flags(Control::SIZE_EXPAND_FILL);
@@ -84,18 +82,16 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
// ---- 3rd & 4th row
Label *lbl_prefix = memnew(Label);
- lbl_prefix->set_text(TTR("Prefix"));
+ lbl_prefix->set_text(TTR("Prefix:"));
lne_prefix = memnew(LineEdit);
- lne_prefix->set_placeholder(TTR("Prefix"));
lne_prefix->set_name("lne_prefix");
lne_prefix->set_h_size_flags(Control::SIZE_EXPAND_FILL);
Label *lbl_suffix = memnew(Label);
- lbl_suffix->set_text(TTR("Suffix"));
+ lbl_suffix->set_text(TTR("Suffix:"));
lne_suffix = memnew(LineEdit);
- lne_suffix->set_placeholder(TTR("Suffix"));
lne_suffix->set_name("lne_suffix");
lne_suffix->set_h_size_flags(Control::SIZE_EXPAND_FILL);
@@ -106,8 +102,6 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
// -- Feature Tabs
- const int feature_min_height = 160 * EDSCALE;
-
cbut_regex = memnew(CheckButton);
cbut_regex->set_text(TTR("Use Regular Expressions"));
vbc->add_child(cbut_regex);
@@ -118,13 +112,13 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
tabc_features = memnew(TabContainer);
tabc_features->set_tab_align(TabContainer::ALIGN_LEFT);
+ tabc_features->set_use_hidden_tabs_for_min_size(true);
vbc->add_child(tabc_features);
// ---- Tab Substitute
VBoxContainer *vbc_substitute = memnew(VBoxContainer);
vbc_substitute->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- vbc_substitute->set_custom_minimum_size(Size2(0, feature_min_height));
vbc_substitute->set_name(TTR("Substitute"));
tabc_features->add_child(vbc_substitute);
@@ -141,7 +135,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
but_insert_name = memnew(Button);
but_insert_name->set_text("NAME");
- but_insert_name->set_tooltip(String("${NAME}\n") + TTR("Node name"));
+ but_insert_name->set_tooltip(String("${NAME}\n") + TTR("Node name."));
but_insert_name->set_focus_mode(Control::FOCUS_NONE);
but_insert_name->connect("pressed", callable_mp(this, &RenameDialog::_insert_text), make_binds("${NAME}"));
but_insert_name->set_h_size_flags(Control::SIZE_EXPAND_FILL);
@@ -151,7 +145,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
but_insert_parent = memnew(Button);
but_insert_parent->set_text("PARENT");
- but_insert_parent->set_tooltip(String("${PARENT}\n") + TTR("Node's parent name, if available"));
+ but_insert_parent->set_tooltip(String("${PARENT}\n") + TTR("Node's parent name, if available."));
but_insert_parent->set_focus_mode(Control::FOCUS_NONE);
but_insert_parent->connect("pressed", callable_mp(this, &RenameDialog::_insert_text), make_binds("${PARENT}"));
but_insert_parent->set_h_size_flags(Control::SIZE_EXPAND_FILL);
@@ -161,7 +155,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
but_insert_type = memnew(Button);
but_insert_type->set_text("TYPE");
- but_insert_type->set_tooltip(String("${TYPE}\n") + TTR("Node type"));
+ but_insert_type->set_tooltip(String("${TYPE}\n") + TTR("Node type."));
but_insert_type->set_focus_mode(Control::FOCUS_NONE);
but_insert_type->connect("pressed", callable_mp(this, &RenameDialog::_insert_text), make_binds("${TYPE}"));
but_insert_type->set_h_size_flags(Control::SIZE_EXPAND_FILL);
@@ -171,7 +165,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
but_insert_scene = memnew(Button);
but_insert_scene->set_text("SCENE");
- but_insert_scene->set_tooltip(String("${SCENE}\n") + TTR("Current scene name"));
+ but_insert_scene->set_tooltip(String("${SCENE}\n") + TTR("Current scene name."));
but_insert_scene->set_focus_mode(Control::FOCUS_NONE);
but_insert_scene->connect("pressed", callable_mp(this, &RenameDialog::_insert_text), make_binds("${SCENE}"));
but_insert_scene->set_h_size_flags(Control::SIZE_EXPAND_FILL);
@@ -181,7 +175,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
but_insert_root = memnew(Button);
but_insert_root->set_text("ROOT");
- but_insert_root->set_tooltip(String("${ROOT}\n") + TTR("Root node name"));
+ but_insert_root->set_tooltip(String("${ROOT}\n") + TTR("Root node name."));
but_insert_root->set_focus_mode(Control::FOCUS_NONE);
but_insert_root->connect("pressed", callable_mp(this, &RenameDialog::_insert_text), make_binds("${ROOT}"));
but_insert_root->set_h_size_flags(Control::SIZE_EXPAND_FILL);
@@ -199,7 +193,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
chk_per_level_counter = memnew(CheckBox);
chk_per_level_counter->set_text(TTR("Per-level Counter"));
- chk_per_level_counter->set_tooltip(TTR("If set the counter restarts for each group of child nodes"));
+ chk_per_level_counter->set_tooltip(TTR("If set, the counter restarts for each group of child nodes."));
vbc_substitute->add_child(chk_per_level_counter);
HBoxContainer *hbc_count_options = memnew(HBoxContainer);
@@ -207,22 +201,22 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
Label *lbl_count_start = memnew(Label);
lbl_count_start->set_text(TTR("Start"));
- lbl_count_start->set_tooltip(TTR("Initial value for the counter"));
+ lbl_count_start->set_tooltip(TTR("Initial value for the counter."));
hbc_count_options->add_child(lbl_count_start);
spn_count_start = memnew(SpinBox);
- spn_count_start->set_tooltip(TTR("Initial value for the counter"));
+ spn_count_start->set_tooltip(TTR("Initial value for the counter."));
spn_count_start->set_step(1);
spn_count_start->set_min(0);
hbc_count_options->add_child(spn_count_start);
Label *lbl_count_step = memnew(Label);
lbl_count_step->set_text(TTR("Step"));
- lbl_count_step->set_tooltip(TTR("Amount by which counter is incremented for each node"));
+ lbl_count_step->set_tooltip(TTR("Amount by which counter is incremented for each node."));
hbc_count_options->add_child(lbl_count_step);
spn_count_step = memnew(SpinBox);
- spn_count_step->set_tooltip(TTR("Amount by which counter is incremented for each node"));
+ spn_count_step->set_tooltip(TTR("Amount by which counter is incremented for each node."));
spn_count_step->set_step(1);
hbc_count_options->add_child(spn_count_step);
@@ -241,7 +235,6 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
VBoxContainer *vbc_process = memnew(VBoxContainer);
vbc_process->set_h_size_flags(Control::SIZE_EXPAND_FILL);
vbc_process->set_name(TTR("Post-Process"));
- vbc_process->set_custom_minimum_size(Size2(0, feature_min_height));
tabc_features->add_child(vbc_process);
cbut_process = memnew(CheckBox);
@@ -285,18 +278,14 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
vbc->add_child(sep_preview);
lbl_preview_title = memnew(Label);
- lbl_preview_title->set_text(TTR("Preview"));
vbc->add_child(lbl_preview_title);
lbl_preview = memnew(Label);
- lbl_preview->set_text("");
- lbl_preview->add_theme_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_theme_color("error_color", "Editor"));
vbc->add_child(lbl_preview);
// ---- Dialog related
set_min_size(Size2(383, 0));
- //set_as_toplevel(true);
get_ok()->set_text(TTR("Rename"));
Button *but_reset = add_button(TTR("Reset"));
@@ -307,7 +296,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
cbut_collapse_features->connect("toggled", callable_mp(this, &RenameDialog::_features_toggled));
- // Substitite Buttons
+ // Substitute Buttons
lne_search->connect("focus_entered", callable_mp(this, &RenameDialog::_update_substitute));
lne_search->connect("focus_exited", callable_mp(this, &RenameDialog::_update_substitute));
@@ -391,7 +380,7 @@ void RenameDialog::_update_preview(String new_text) {
String new_name = _apply_rename(preview_node, spn_count_start->get_value());
if (!has_errors) {
- lbl_preview_title->set_text(TTR("Preview"));
+ lbl_preview_title->set_text(TTR("Preview:"));
lbl_preview->set_text(new_name);
if (new_name == preview_node->get_name()) {
@@ -482,7 +471,7 @@ void RenameDialog::_error_handler(void *p_self, const char *p_func, const char *
}
self->has_errors = true;
- self->lbl_preview_title->set_text(TTR("Regular Expression Error"));
+ self->lbl_preview_title->set_text(TTR("Regular Expression Error:"));
self->lbl_preview->add_theme_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_theme_color("error_color", "Editor"));
self->lbl_preview->set_text(vformat(TTR("At character %s"), err_str));
}
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index 13fb74987c..c4e90ca3ff 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -1100,6 +1100,7 @@ void SceneTreeDock::_notification(int p_what) {
node_shortcuts_toggle->set_name("NodeShortcutsToggle");
node_shortcuts_toggle->set_icon(get_theme_icon("Favorites", "EditorIcons"));
node_shortcuts_toggle->set_toggle_mode(true);
+ node_shortcuts_toggle->set_tooltip(TTR("Switch to Favorite Nodes"));
node_shortcuts_toggle->set_pressed(EDITOR_GET("_use_favorites_root_selection"));
node_shortcuts_toggle->set_anchors_and_margins_preset(Control::PRESET_CENTER_RIGHT);
node_shortcuts_toggle->connect("pressed", callable_mp(this, &SceneTreeDock::_update_create_root_dialog));
@@ -1114,7 +1115,7 @@ void SceneTreeDock::_notification(int p_what) {
beginner_node_shortcuts->set_name("BeginnerNodeShortcuts");
node_shortcuts->add_child(beginner_node_shortcuts);
- Button *button_2d = memnew(Button);
+ button_2d = memnew(Button);
beginner_node_shortcuts->add_child(button_2d);
button_2d->set_text(TTR("2D Scene"));
button_2d->set_icon(get_theme_icon("Node2D", "EditorIcons"));
@@ -1126,7 +1127,7 @@ void SceneTreeDock::_notification(int p_what) {
button_3d->set_icon(get_theme_icon("Node3D", "EditorIcons"));
button_3d->connect("pressed", callable_mp(this, &SceneTreeDock::_tool_selected), make_binds(TOOL_CREATE_3D_SCENE, false));
- Button *button_ui = memnew(Button);
+ button_ui = memnew(Button);
beginner_node_shortcuts->add_child(button_ui);
button_ui->set_text(TTR("User Interface"));
button_ui->set_icon(get_theme_icon("Control", "EditorIcons"));
@@ -1136,11 +1137,11 @@ void SceneTreeDock::_notification(int p_what) {
favorite_node_shortcuts->set_name("FavoriteNodeShortcuts");
node_shortcuts->add_child(favorite_node_shortcuts);
- Button *button_custom = memnew(Button);
+ button_custom = memnew(Button);
node_shortcuts->add_child(button_custom);
button_custom->set_text(TTR("Other Node"));
button_custom->set_icon(get_theme_icon("Add", "EditorIcons"));
- button_custom->connect("pressed", callable_mp(this, &SceneTreeDock::_tool_selected), make_binds(TOOL_NEW, false));
+ button_custom->connect("pressed", callable_bind(callable_mp(this, &SceneTreeDock::_tool_selected), TOOL_NEW, false));
node_shortcuts->add_spacer();
create_root_dialog->add_child(node_shortcuts);
@@ -1159,6 +1160,10 @@ void SceneTreeDock::_notification(int p_what) {
button_instance->set_icon(get_theme_icon("Instance", "EditorIcons"));
button_create_script->set_icon(get_theme_icon("ScriptCreate", "EditorIcons"));
button_detach_script->set_icon(get_theme_icon("ScriptRemove", "EditorIcons"));
+ button_2d->set_icon(get_theme_icon("Node2D", "EditorIcons"));
+ button_3d->set_icon(get_theme_icon("Node3D", "EditorIcons"));
+ button_ui->set_icon(get_theme_icon("Control", "EditorIcons"));
+ button_custom->set_icon(get_theme_icon("Add", "EditorIcons"));
filter->set_right_icon(get_theme_icon("Search", "EditorIcons"));
filter->set_clear_button_enabled(true);
@@ -1313,32 +1318,50 @@ void SceneTreeDock::perform_node_renames(Node *p_base, List<Pair<NodePath, NodeP
if (si) {
List<PropertyInfo> properties;
si->get_property_list(&properties);
+ NodePath root_path = p_base->get_path();
for (List<PropertyInfo>::Element *E = properties.front(); E; E = E->next()) {
String propertyname = E->get().name;
Variant p = p_base->get(propertyname);
if (p.get_type() == Variant::NODE_PATH) {
- // Goes through all paths to check if its matching
+ NodePath root_path_new = root_path;
for (List<Pair<NodePath, NodePath>>::Element *F = p_renames->front(); F; F = F->next()) {
- NodePath root_path = p_base->get_path();
+ if (root_path == F->get().first) {
+ root_path_new = F->get().second;
+ break;
+ }
+ }
+ // Goes through all paths to check if its matching
+ for (List<Pair<NodePath, NodePath>>::Element *F = p_renames->front(); F; F = F->next()) {
NodePath rel_path_old = root_path.rel_path_to(F->get().first);
- NodePath rel_path_new = F->get().second;
-
- // if not empty, get new relative path
- if (F->get().second != NodePath()) {
- rel_path_new = root_path.rel_path_to(F->get().second);
- }
-
// if old path detected, then it needs to be replaced with the new one
if (p == rel_path_old) {
+ NodePath rel_path_new = F->get().second;
+
+ // if not empty, get new relative path
+ if (!rel_path_new.is_empty()) {
+ rel_path_new = root_path_new.rel_path_to(F->get().second);
+ }
+
editor_data->get_undo_redo().add_do_property(p_base, propertyname, rel_path_new);
editor_data->get_undo_redo().add_undo_property(p_base, propertyname, rel_path_old);
p_base->set(propertyname, rel_path_new);
break;
}
+
+ // update if the node itself moved up/down the tree hirarchy
+ if (root_path == F->get().first) {
+ NodePath abs_path = NodePath(String(root_path).plus_file(p)).simplified();
+ NodePath rel_path_new = F->get().second.rel_path_to(abs_path);
+
+ editor_data->get_undo_redo().add_do_property(p_base, propertyname, rel_path_new);
+ editor_data->get_undo_redo().add_undo_property(p_base, propertyname, p);
+
+ p_base->set(propertyname, rel_path_new);
+ }
}
}
}
@@ -2084,8 +2107,12 @@ void SceneTreeDock::replace_node(Node *p_node, Node *p_by_node, bool p_keep_prop
}
if (E->get().name == "__meta__") {
- if (Object::cast_to<CanvasItem>(newnode)) {
- Dictionary metadata = n->get(E->get().name);
+ Dictionary metadata = n->get(E->get().name);
+ if (metadata.has("_editor_description_")) {
+ newnode->set_meta("_editor_description_", metadata["_editor_description_"]);
+ }
+
+ if (Object::cast_to<CanvasItem>(newnode) || Object::cast_to<Node3D>(newnode)) {
if (metadata.has("_edit_group_") && metadata["_edit_group_"]) {
newnode->set_meta("_edit_group_", true);
}
@@ -2717,7 +2744,7 @@ void SceneTreeDock::_update_create_root_dialog() {
if (l != String()) {
Button *button = memnew(Button);
favorite_nodes->add_child(button);
- button->set_text(TTR(l));
+ button->set_text(l);
String name = l.get_slicec(' ', 0);
if (ScriptServer::is_global_class(name)) {
name = ScriptServer::get_global_class_native_base(name);
diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h
index 150c1976ef..c2c877bf68 100644
--- a/editor/scene_tree_dock.h
+++ b/editor/scene_tree_dock.h
@@ -110,7 +110,10 @@ class SceneTreeDock : public VBoxContainer {
Button *button_create_script;
Button *button_detach_script;
+ Button *button_2d;
Button *button_3d;
+ Button *button_ui;
+ Button *button_custom;
HBoxContainer *button_hb;
Button *edit_local, *edit_remote;
diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp
index 7404c9779b..3dee4a229f 100644
--- a/editor/scene_tree_editor.cpp
+++ b/editor/scene_tree_editor.cpp
@@ -251,34 +251,42 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) {
if (can_rename) { //should be can edit..
String warning = p_node->get_configuration_warning();
- if (warning != String()) {
+ if (!warning.empty()) {
item->add_button(0, get_theme_icon("NodeWarning", "EditorIcons"), BUTTON_WARNING, false, TTR("Node configuration warning:") + "\n" + p_node->get_configuration_warning());
}
int num_connections = p_node->get_persistent_signal_connection_count();
int num_groups = p_node->get_persistent_group_count();
+ String msg_temp;
+ if (num_connections >= 1) {
+ Array arr;
+ arr.push_back(num_connections);
+ msg_temp += TTRN("Node has one connection.", "Node has {num} connections.", num_connections).format(arr, "{num}");
+ msg_temp += " ";
+ }
+ if (num_groups >= 1) {
+ Array arr;
+ arr.push_back(num_groups);
+ msg_temp += TTRN("Node is in one group.", "Node is in {num} groups.", num_groups).format(arr, "{num}");
+ }
+ if (num_connections >= 1 || num_groups >= 1) {
+ msg_temp += "\n" + TTR("Click to show signals dock.");
+ }
+
+ Ref<Texture2D> icon_temp;
+ auto signal_temp = BUTTON_SIGNALS;
if (num_connections >= 1 && num_groups >= 1) {
- item->add_button(
- 0,
- get_theme_icon("SignalsAndGroups", "EditorIcons"),
- BUTTON_SIGNALS,
- false,
- vformat(TTR("Node has %s connection(s) and %s group(s).\nClick to show signals dock."), num_connections, num_groups));
+ icon_temp = get_theme_icon("SignalsAndGroups", "EditorIcons");
} else if (num_connections >= 1) {
- item->add_button(
- 0,
- get_theme_icon("Signals", "EditorIcons"),
- BUTTON_SIGNALS,
- false,
- vformat(TTR("Node has %s connection(s).\nClick to show signals dock."), num_connections));
+ icon_temp = get_theme_icon("Signals", "EditorIcons");
} else if (num_groups >= 1) {
- item->add_button(
- 0,
- get_theme_icon("Groups", "EditorIcons"),
- BUTTON_GROUPS,
- false,
- vformat(TTR("Node is in %s group(s).\nClick to show groups dock."), num_groups));
+ icon_temp = get_theme_icon("Groups", "EditorIcons");
+ signal_temp = BUTTON_GROUPS;
+ }
+
+ if (num_connections >= 1 || num_groups >= 1) {
+ item->add_button(0, icon_temp, signal_temp, false, msg_temp);
}
}
@@ -769,6 +777,9 @@ void SceneTreeEditor::_renamed() {
return;
}
+ // Trim leading/trailing whitespace to prevent node names from containing accidental whitespace, which would make it more difficult to get the node via `get_node()`.
+ new_name = new_name.strip_edges();
+
if (!undo_redo) {
n->set_name(new_name);
which->set_metadata(0, n->get_path());
diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp
index ffdf8208b8..90efb11b7d 100644
--- a/editor/script_create_dialog.cpp
+++ b/editor/script_create_dialog.cpp
@@ -603,7 +603,7 @@ void ScriptCreateDialog::_path_entered(const String &p_path) {
}
void ScriptCreateDialog::_msg_script_valid(bool valid, const String &p_msg) {
- error_label->set_text("- " + TTR(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 {
@@ -612,7 +612,7 @@ void ScriptCreateDialog::_msg_script_valid(bool valid, const String &p_msg) {
}
void ScriptCreateDialog::_msg_path_valid(bool valid, const String &p_msg) {
- path_error_label->set_text("- " + TTR(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 {
@@ -722,6 +722,15 @@ void ScriptCreateDialog::_update_dialog() {
}
get_ok()->set_disabled(!script_ok);
+
+ Callable entered_call = callable_mp(this, &ScriptCreateDialog::_path_entered);
+ if (script_ok) {
+ if (!file_path->is_connected("text_entered", entered_call)) {
+ file_path->connect("text_entered", entered_call);
+ }
+ } else if (file_path->is_connected("text_entered", entered_call)) {
+ file_path->disconnect("text_entered", entered_call);
+ }
}
void ScriptCreateDialog::_bind_methods() {
@@ -849,7 +858,6 @@ ScriptCreateDialog::ScriptCreateDialog() {
hb->connect("sort_children", callable_mp(this, &ScriptCreateDialog::_path_hbox_sorted));
file_path = memnew(LineEdit);
file_path->connect("text_changed", callable_mp(this, &ScriptCreateDialog::_path_changed));
- file_path->connect("text_entered", callable_mp(this, &ScriptCreateDialog::_path_entered));
file_path->set_h_size_flags(Control::SIZE_EXPAND_FILL);
hb->add_child(file_path);
path_button = memnew(Button);
diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp
index 9f286bd8f6..5da682a148 100644
--- a/editor/settings_config_dialog.cpp
+++ b/editor/settings_config_dialog.cpp
@@ -202,7 +202,7 @@ void EditorSettingsDialog::_update_shortcuts() {
Map<String, TreeItem *> sections;
for (List<String>::Element *E = slist.front(); E; E = E->next()) {
- Ref<ShortCut> sc = EditorSettings::get_singleton()->get_shortcut(E->get());
+ Ref<Shortcut> sc = EditorSettings::get_singleton()->get_shortcut(E->get());
if (!sc->has_meta("original")) {
continue;
}
@@ -268,7 +268,7 @@ void EditorSettingsDialog::_shortcut_button_pressed(Object *p_item, int p_column
ERR_FAIL_COND(!ti);
String item = ti->get_metadata(0);
- Ref<ShortCut> sc = EditorSettings::get_singleton()->get_shortcut(item);
+ Ref<Shortcut> sc = EditorSettings::get_singleton()->get_shortcut(item);
if (p_idx == 0) {
press_a_key_label->set_text(TTR("Press a Key..."));
@@ -335,7 +335,7 @@ void EditorSettingsDialog::_press_a_key_confirm() {
ie->set_alt(last_wait_for_key->get_alt());
ie->set_metakey(last_wait_for_key->get_metakey());
- Ref<ShortCut> sc = EditorSettings::get_singleton()->get_shortcut(shortcut_configured);
+ Ref<Shortcut> sc = EditorSettings::get_singleton()->get_shortcut(shortcut_configured);
undo_redo->create_action(TTR("Change Shortcut") + " '" + shortcut_configured + "'");
undo_redo->add_do_method(sc.ptr(), "set_shortcut", ie);
@@ -405,6 +405,7 @@ EditorSettingsDialog::EditorSettingsDialog() {
tab_general->add_child(hbc);
search_box = memnew(LineEdit);
+ search_box->set_placeholder(TTR("Search"));
search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
hbc->add_child(search_box);
@@ -449,6 +450,7 @@ EditorSettingsDialog::EditorSettingsDialog() {
tab_shortcuts->add_child(hbc);
shortcut_search_box = memnew(LineEdit);
+ shortcut_search_box->set_placeholder(TTR("Search"));
shortcut_search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
hbc->add_child(shortcut_search_box);
shortcut_search_box->connect("text_changed", callable_mp(this, &EditorSettingsDialog::_filter_shortcuts));
diff --git a/editor/shader_globals_editor.cpp b/editor/shader_globals_editor.cpp
index aa88b0ef39..915aec6d9a 100644
--- a/editor/shader_globals_editor.cpp
+++ b/editor/shader_globals_editor.cpp
@@ -284,7 +284,13 @@ static Variant create_var(RS::GlobalVariableType p_type) {
return Vector3i();
}
case RS::GLOBAL_VAR_TYPE_UVEC4: {
- return Rect2i();
+ Vector<int> v4;
+ v4.resize(4);
+ v4.write[0] = 0;
+ v4.write[1] = 0;
+ v4.write[2] = 0;
+ v4.write[3] = 0;
+ return v4;
}
case RS::GLOBAL_VAR_TYPE_FLOAT: {
return 0.0;
@@ -324,7 +330,7 @@ static Variant create_var(RS::GlobalVariableType p_type) {
}
case RS::GLOBAL_VAR_TYPE_MAT4: {
Vector<real_t> xform;
- xform.resize(4);
+ xform.resize(16);
xform.write[0] = 1;
xform.write[1] = 0;
xform.write[2] = 0;
@@ -437,6 +443,9 @@ void ShaderGlobalsEditor::_notification(int p_what) {
inspector->edit(interface);
}
}
+ if (p_what == NOTIFICATION_PREDELETE) {
+ inspector->edit(nullptr);
+ }
}
ShaderGlobalsEditor::ShaderGlobalsEditor() {
@@ -474,6 +483,5 @@ ShaderGlobalsEditor::ShaderGlobalsEditor() {
}
ShaderGlobalsEditor::~ShaderGlobalsEditor() {
- inspector->edit(nullptr);
memdelete(interface);
}
diff --git a/editor/translations/af.po b/editor/translations/af.po
index daa0737106..19a9e724ba 100644
--- a/editor/translations/af.po
+++ b/editor/translations/af.po
@@ -545,6 +545,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -732,7 +733,7 @@ msgstr "Pas Letterkas"
msgid "Whole Words"
msgstr "Hele Woorde"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Vervang"
@@ -936,6 +937,11 @@ msgid "Signals"
msgstr "Seine"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Eienskappe"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -977,7 +983,7 @@ msgid "Recent:"
msgstr "Onlangse:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Soek:"
@@ -1164,6 +1170,9 @@ msgstr "Projek Stigters"
msgid "Lead Developer"
msgstr "Hoof Ontwikkelaar"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
#, fuzzy
msgid "Project Manager "
@@ -1186,6 +1195,16 @@ msgid "Gold Sponsors"
msgstr "Goue Borge"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Silver Skenkers"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Brons Skenkers"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini Borge"
@@ -1674,16 +1693,17 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
#, fuzzy
msgid "Node Dock"
msgstr "Nodus Naam:"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Deursoek Klasse"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1969,7 +1989,7 @@ msgstr "Gidse & Lêers:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Voorskou:"
@@ -2403,10 +2423,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2833,22 +2849,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2857,8 +2877,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2867,32 +2887,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2954,7 +2974,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Soek"
@@ -3359,7 +3379,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -5178,7 +5199,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7854,7 +7875,7 @@ msgid "New Animation"
msgstr "Optimaliseer Animasie"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9907,6 +9928,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Projek Bestuurder"
@@ -10344,11 +10366,16 @@ msgid "Batch Rename"
msgstr "Pas Letterkas"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Vervang"
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10396,7 +10423,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10456,7 +10483,7 @@ msgid "Reset"
msgstr "Herset Zoem"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10565,6 +10592,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Skrap"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "Skrap"
@@ -12232,6 +12264,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12444,6 +12482,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index 5a0b6d1e17..6335b82b15 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -41,12 +41,16 @@
# Anas <anas.ghamdi61@gmail.com>, 2020.
# R-K <raouf9005@gmail.com>, 2020.
# HeroFight dev <abdkafi2002@gmail.com>, 2020.
+# أحمد مصطفى الطبراني <eltabaraniahmed@gmail.com>, 2020.
+# ChemicalInk <aladdinalkhafaji@gmail.com>, 2020.
+# Musab Alasaifer <mousablasefer@gmail.com>, 2020.
+# Yassine Oudjana <y.oudjana@protonmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
-"Last-Translator: Airbus5717 <Abdussamadf350@gmail.com>\n"
+"PO-Revision-Date: 2020-09-12 00:46+0000\n"
+"Last-Translator: Yassine Oudjana <y.oudjana@protonmail.com>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/"
"godot/ar/>\n"
"Language: ar\n"
@@ -55,12 +59,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "معامل type خاطئ لدالة Convert, استخدم احدى الثوابت من مجموعة TYPE_*."
+msgstr "معامل خاطئ لدالة ()Convert, استخدم احدى الثوابت من مجموعة TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
@@ -154,11 +158,11 @@ msgstr "أدخل المفتاح هنا"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
-msgstr "استنساخ المفاتيح المحدد(ة)"
+msgstr "تكرار المفتاح(المفاتيح) المحدد(ة)"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr "إمسح المفاتيح المحدد(ة)"
+msgstr "إمسح المفتاح(المفاتيح) المحدد(ة)"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
@@ -182,7 +186,7 @@ msgstr "تغيير وقت الإطار الرئيسي للحركة"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
-msgstr "تغيير إنتقالية التحريك"
+msgstr "تغيير إنتقالية الرسوم المتحركة"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
@@ -251,11 +255,11 @@ msgstr "شريط ضبط الحركة"
#: editor/animation_track_editor.cpp
msgid "Animation length (frames)"
-msgstr "مدة الحركة (frames)"
+msgstr "مدة الحركة (بالإطارات)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
-msgstr "مدة الحركة (seconds)"
+msgstr "مدة الحركة (بالثواني)"
#: editor/animation_track_editor.cpp
msgid "Add Track"
@@ -378,7 +382,7 @@ msgstr "حذف مسار التحريك"
#: editor/animation_track_editor.cpp
msgid "Create NEW track for %s and insert key?"
-msgstr "أنشئ مسار جديد لـ %s و أدخل مفتاح؟"
+msgstr "أنشئ مسار جديد لـ %s و إدخال مفتاح؟"
#: editor/animation_track_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
@@ -442,11 +446,11 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr "مسارات الحركة يمكنها فقط أن تشير إلى عقد مشغّل الحركة."
+msgstr "مسارات الحركة يمكنها فقط أن تشير إلى عُقد مشغّل الحركة."
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
-msgstr "مشغل الحركة لا يمكنه تحريك نفسه, فقط الاعبين الأخرين."
+msgstr "مشغل الحركة لا يمكنه أن يحرك نفسه, فقط الاعبين الأخرين."
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
@@ -454,11 +458,11 @@ msgstr "لا يمكن إضافة مقطع جديد بدون جذر"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr "مقطع غير متوافق مع منحنى بيزير Bezier (خصائص فرعية غير متوافقة)"
+msgstr "مقطع غير متوافق مع منحنى بيزر (Bezier) (خصائص فرعية غير متوافقة)"
#: editor/animation_track_editor.cpp
msgid "Add Bezier Track"
-msgstr "إضافة مسار لمنحنى بريزير"
+msgstr "إضافة مسار لمنحنى بيزر"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
@@ -466,7 +470,7 @@ msgstr "مسار المقطع غير صالح, إذن لا يمكن إضافة
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
-msgstr "المقطع ليس من نوع مكاني (Spatial), لا يمكن إضافة مفتاح."
+msgstr "المقطع ليس من نوع مكاني (Spatial), لا يمكن إضافة مفتاح"
#: editor/animation_track_editor.cpp
msgid "Add Transform Track Key"
@@ -494,7 +498,7 @@ msgstr "مفتاح حركة التحريك"
#: editor/animation_track_editor.cpp
msgid "Clipboard is empty"
-msgstr "ذاكرة التخزين المؤقت (Clipboard) فارغة"
+msgstr "الحافظة (Clipboard) فارغة"
#: editor/animation_track_editor.cpp
msgid "Paste Tracks"
@@ -507,7 +511,7 @@ msgstr "مفتاح تكبير حركة"
#: editor/animation_track_editor.cpp
msgid ""
"This option does not work for Bezier editing, as it's only a single track."
-msgstr "هذا الخيار لا يعمل لتعديل خط (Bezier), لأنه فقط مقطع واحد."
+msgstr "هذا الخيار لا يعمل لتعديل منحنى بيزر (Bezier), لأنه فقط مقطع واحد."
#: editor/animation_track_editor.cpp
msgid ""
@@ -521,12 +525,14 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
-"هذا الانيميشن ينتمي الى مشهد مستورد، لذا فإن أي تغييرات في المسارات "
-"المستوردة لن يتم حفظها.\n"
+"هذه الحركة (رسوم متحركة) تنتمي الى مشهد مستورد، لذا فإن أي تغييرات في "
+"المسارات المستوردة لن يتم حفظها.\n"
"\n"
"لتشغيل الامكانية لإضافة مسارات خاصة، انتقل إلى إعدادات استيراد المشهد واضبط "
-"\"Animation > Storage\" إلى \"Files\"، شغل \"Animation > Keep Custom Tracks"
-"\"، ثم ..."
+"\"رسوم متحركة > تخزين\" إلى \"ملفات\"،\n"
+"شغل \"رسوم متحركة > أحتفظ بالمقاطع (المسارات) المخصصة\"، ثم اعد الاستيراد.\n"
+"يمكنك ايضاً استخدام إعدادات استيراد مسبقة تقوم باستيراد الرسم المتحرك الى "
+"ملفات متفرقة."
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
@@ -557,6 +563,7 @@ msgid "Seconds"
msgstr "ثواني"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "إطار خلال ثانية"
@@ -592,7 +599,7 @@ msgstr "تكرير المحدد"
#: editor/animation_track_editor.cpp
msgid "Duplicate Transposed"
-msgstr "نسخ محمّل"
+msgstr "نقل مكرر"
#: editor/animation_track_editor.cpp
msgid "Delete Selection"
@@ -620,7 +627,7 @@ msgstr "إختار العقدة التي سوف يتم تحريكها:"
#: editor/animation_track_editor.cpp
msgid "Use Bezier Curves"
-msgstr "إستعمل منحنيات بيزية"
+msgstr "إستعمل منحنيات بيزر"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -735,7 +742,7 @@ msgstr "قضية تشابه"
msgid "Whole Words"
msgstr "كل الكلمات"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "إستبدال"
@@ -793,7 +800,7 @@ msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
msgstr ""
-"لم يتم العثور على الدالة المستهدفة. حدّد دالة سليمة أو أرفق كود للعقدة "
+"لم يتم العثور على الدالة المستهدفة. حدّد دالة سليمة أو أرفق نص برمجي للعقدة "
"المستهدفة."
#: editor/connections_dialog.cpp
@@ -919,15 +926,20 @@ msgstr "تعديل الإتصال:"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
-msgstr "هل أنت(ي) متأكد(ة) أنك تود إزالة كل الإتصالات من الإشارة \"%s\"؟"
+msgstr "هل أنت متأكد أنك تود إزالة كل الإتصالات من الإشارة \"%s\"؟"
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
msgstr "الإشارات"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "تنقية البلاطات"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
-msgstr "هل أنت(ي) متأكد(ة) أنك تود إزالة كل الإتصالات من هذه الإشارة؟"
+msgstr "هل أنت متأكد أنك تود إزالة كل الإتصالات من هذه الإشارة؟"
#: editor/connections_dialog.cpp
msgid "Disconnect All"
@@ -963,7 +975,7 @@ msgid "Recent:"
msgstr "الحالي:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "بحث:"
@@ -988,7 +1000,7 @@ msgstr "البحث عن بديل لـ:"
#: editor/dependency_editor.cpp
msgid "Dependencies For:"
-msgstr "تابعة لـ:"
+msgstr "تبعيات لـ:"
#: editor/dependency_editor.cpp
msgid ""
@@ -1093,7 +1105,7 @@ msgstr "اخطاء في التحميل!"
#: editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr "إمسح نهائيا %d عنصر(عناصر)؟ (بلا رجعة!)"
+msgstr "هل تريد حذف %d عنصر (عناصر) نهائيًا؟ (لا تراجع!)"
#: editor/dependency_editor.cpp
msgid "Show Dependencies"
@@ -1129,11 +1141,11 @@ msgstr "تغيير قيمة في القاموس"
#: editor/editor_about.cpp
msgid "Thanks from the Godot community!"
-msgstr "شكراً من مجتمع Godot!"
+msgstr "شكراً من مجتمع غودوت!"
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
-msgstr "المسهامين في محرك Godot"
+msgstr "المسهامين في محرك غودوت"
#: editor/editor_about.cpp
msgid "Project Founders"
@@ -1143,6 +1155,9 @@ msgstr "مؤسسون المشروع"
msgid "Lead Developer"
msgstr "قائد المطوريين"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "مدير المشروع "
@@ -1164,6 +1179,14 @@ msgid "Gold Sponsors"
msgstr "الرعاة الذهبيين"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "المانحين الفضيين"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "المانحين البرنزيين"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "الرعاة الصغار"
@@ -1198,9 +1221,9 @@ msgid ""
"is an exhaustive list of all such third-party components with their "
"respective copyright statements and license terms."
msgstr ""
-"محرك \"Godot\" يعتمد على عدد من المكتبات و المكونات البرمجية لملاك اخرين و "
-"لكنها مجانية و مفتوحة المصدر، و كلها متفقة مع شروط الاستخدام لرخصة \"MIT\". "
-"في ما يلي قائمة تحوي جميع هذه المكونات اضافة الى حقوق النشر و شروط الاستخدام "
+"محرك غودوت يعتمد على عدد من المكتبات و المكونات البرمجية لملاك اخرين و لكنها "
+"مجانية و مفتوحة المصدر، و كلها متفقة مع شروط الاستخدام لرخصة \"MIT\". في ما "
+"يلي قائمة تحوي جميع هذه المكونات اضافة الى حقوق النشر و شروط الاستخدام "
"الخاصة بها."
#: editor/editor_about.cpp
@@ -1221,7 +1244,7 @@ msgstr "حدث خطأ عندفتح ملف الحزمة بسبب أن الملف
#: editor/editor_asset_installer.cpp
msgid "%s (Already Exists)"
-msgstr "%s (موجود أصلاً!)"
+msgstr "%s (موجود بالفعل!)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1266,39 +1289,39 @@ msgstr "أضف تأثير"
#: editor/editor_audio_buses.cpp
msgid "Rename Audio Bus"
-msgstr "إعادة تسمية بيوس الصوت"
+msgstr "إعادة تسمية مسار الصوت"
#: editor/editor_audio_buses.cpp
msgid "Change Audio Bus Volume"
-msgstr "تغيير حجم صوت البيوس"
+msgstr "تغيير حجم صوت مسار الصوت"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
-msgstr "تبديل بيوس الصوت إلي فردي"
+msgstr "تبديل مسار الصوت إلي فردي"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Mute"
-msgstr "تبديل بيوس الصوت إلي صامت"
+msgstr "تبديل مسار الصوت إلي صامت"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Bypass Effects"
-msgstr "تبديل بيوس الصوت إلي موثرات التبديل"
+msgstr "تبديل مسار الصوت إلي موثرات التبديل"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
-msgstr "حدد بيوس الصوت للإرسال"
+msgstr "حدد مسار الصوت للإرسال"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus Effect"
-msgstr "أضف موثرات إلي بيوس الصوت"
+msgstr "أضف موثرات إلي مسار الصوت"
#: editor/editor_audio_buses.cpp
msgid "Move Bus Effect"
-msgstr "حرك مؤثر البيوس"
+msgstr "حرك ثأثير مسار الصوت"
#: editor/editor_audio_buses.cpp
msgid "Delete Bus Effect"
-msgstr "مسح تأثير البيوس"
+msgstr "مسح تأثير مسار الصوت"
#: editor/editor_audio_buses.cpp
msgid "Drag & drop to rearrange."
@@ -1318,7 +1341,7 @@ msgstr "تخطي"
#: editor/editor_audio_buses.cpp
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
@@ -1339,31 +1362,31 @@ msgstr "الصوت"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
-msgstr "أضف بيوس الصوت"
+msgstr "أضف مسار الصوت"
#: editor/editor_audio_buses.cpp
msgid "Master bus can't be deleted!"
-msgstr "البيوس الأساسي لا يمكن مسحة!"
+msgstr "مسار الصوت الأساسي لا يمكن مسحة!"
#: editor/editor_audio_buses.cpp
msgid "Delete Audio Bus"
-msgstr "إمسح بيوس الصوت"
+msgstr "إمسح مسار الصوت"
#: editor/editor_audio_buses.cpp
msgid "Duplicate Audio Bus"
-msgstr "تكرير بيوس الصوت"
+msgstr "تكرار مسار الصوت"
#: editor/editor_audio_buses.cpp
msgid "Reset Bus Volume"
-msgstr "إرجاع صوت البيس"
+msgstr "إرجاع صوت المسار"
#: editor/editor_audio_buses.cpp
msgid "Move Audio Bus"
-msgstr "تحريك بيوس الصوت"
+msgstr "تحريك مسار الصوت"
#: editor/editor_audio_buses.cpp
msgid "Save Audio Bus Layout As..."
-msgstr "إحفظ نسق بيوس الصوت كـ..."
+msgstr "حفظ تخطيط مسار الصوت كـ…"
#: editor/editor_audio_buses.cpp
msgid "Location for New Layout..."
@@ -1371,7 +1394,7 @@ msgstr "المكان للنسق الجديد..."
#: editor/editor_audio_buses.cpp
msgid "Open Audio Bus Layout"
-msgstr "إفتح نسق بيوس الصوت"
+msgstr "إفتح نسق مسار الصوت"
#: editor/editor_audio_buses.cpp
msgid "There is no '%s' file."
@@ -1383,15 +1406,15 @@ msgstr "المخطط"
#: editor/editor_audio_buses.cpp
msgid "Invalid file, not an audio bus layout."
-msgstr "ملف خطأ، ليس ملف نسق بيوس الصوت."
+msgstr "ملف خطأ، ليس ملف نسق مسار الصوت."
#: editor/editor_audio_buses.cpp
msgid "Error saving file: %s"
-msgstr "خطأ !خطأ في تسجيل الملف: s%"
+msgstr "خطأ في تحميل الملف: s%"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
-msgstr "أضف بيوس"
+msgstr "أضف مسار"
#: editor/editor_audio_buses.cpp
msgid "Add a new Audio Bus to this layout."
@@ -1405,7 +1428,7 @@ msgstr "تحميل"
#: editor/editor_audio_buses.cpp
msgid "Load an existing Bus Layout."
-msgstr "تحميل نسق بيوس موجود مسبقاً."
+msgstr "تحميل نسق مسار موجود مسبقاً."
#: editor/editor_audio_buses.cpp
msgid "Save As"
@@ -1413,7 +1436,7 @@ msgstr "حفظ بأسم"
#: editor/editor_audio_buses.cpp
msgid "Save this Bus Layout to a file."
-msgstr "إحفظ نسق البيوس هذا إلي ملف."
+msgstr "إحفظ نسق هذا مسار إلي ملف."
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
@@ -1421,11 +1444,11 @@ msgstr "تحميل الإفتراضي"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr "تحميل نسق البيوس الإفتراضي."
+msgstr "تحميل نسق المسار الإفتراضي."
#: editor/editor_audio_buses.cpp
msgid "Create a new Bus Layout."
-msgstr "أنشئ نسق بيوس جديد."
+msgstr "أنشئ نسق مسار جديد."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
@@ -1473,7 +1496,7 @@ msgstr "ازالة التحميل التلقائي"
#: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp
msgid "Enable"
-msgstr "تمكين"
+msgstr "تفعيل"
#: editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
@@ -1481,7 +1504,7 @@ msgstr "اعادة ترتيب التحميلات التلقائية"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr "لا يمكن اضافة التحميل التلقائي"
+msgstr "لا يمكن إضافة التحميل التلقائي:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1639,16 +1662,17 @@ msgid "Scene Tree Editing"
msgstr "تعديل شجرة المشهد"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "رصيف الاستيراد"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "رصيف العُقد"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "رصيف نظام الملفات و الاستيراد"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "نظام الملفات"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "رصيف الاستيراد"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1676,7 +1700,7 @@ msgstr "(المُحرر مُعطّل)"
#: editor/editor_feature_profile.cpp
msgid "Class Options:"
-msgstr "إعدادات الصف Class:"
+msgstr "إعدادات الصف (Class):"
#: editor/editor_feature_profile.cpp
msgid "Enable Contextual Editor"
@@ -1745,7 +1769,7 @@ msgstr "إعدادات الصف Class"
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
-msgstr "اسم مَلف profile جديد:"
+msgstr "اسم مَلف (profile) جديد:"
#: editor/editor_feature_profile.cpp
msgid "Erase Profile"
@@ -1910,7 +1934,7 @@ msgstr "الوجهات والملفات:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "إستعراض:"
@@ -1975,11 +1999,11 @@ msgstr "الافتراضي:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr "قائمة الطرق"
+msgstr "الطُرق"
#: editor/editor_help.cpp
msgid "Theme Properties"
-msgstr "خصائص الثمة"
+msgstr "خصائص الثِمة"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2007,7 +2031,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Method Descriptions"
-msgstr "أوصاف الدوال Method"
+msgstr "أوصاف الدوال"
#: editor/editor_help.cpp
msgid ""
@@ -2084,7 +2108,7 @@ msgstr "خاصية"
#: editor/editor_help_search.cpp
msgid "Theme Property"
-msgstr "خاصية الموضوع Theme"
+msgstr "خاصية الموضوع (Theme)"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
@@ -2229,7 +2253,7 @@ msgstr "حفظ المشهد"
#: editor/editor_node.cpp
msgid "Analyzing"
-msgstr "يحلل"
+msgstr "جاري التحليل"
#: editor/editor_node.cpp
msgid "Creating Thumbnail"
@@ -2237,7 +2261,7 @@ msgstr "ينشئ الصورة المصغرة"
#: editor/editor_node.cpp
msgid "This operation can't be done without a tree root."
-msgstr "هذه العملية لا يمكنها الإكتمال من غير جذر شجرة ."
+msgstr "هذه العملية لا يمكنها الإكتمال من غير شجرة رئيسة."
#: editor/editor_node.cpp
msgid ""
@@ -2342,10 +2366,6 @@ msgid "There is no defined scene to run."
msgstr "ليس هناك مشهد محدد ليتم تشغيله."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "المشهد الحالي لم يتم حفظه. الرجاء حفظ المشهد قبل تشغيله و اختباره."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "لا يمكن بدء عملية جانبية!"
@@ -2387,7 +2407,7 @@ msgstr "يتطلب حفظ المشهد توافر عُقدة رئيسة."
#: editor/editor_node.cpp
msgid "Save Scene As..."
-msgstr "حفظ المشهد كـ..."
+msgstr "حفظ المشهد كـ…"
#: editor/editor_node.cpp
msgid "No"
@@ -2498,31 +2518,33 @@ msgstr "غير قادر علي تفعيل إضافة البرنامج المُس
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
msgstr ""
-"غير قادر علي إيجاد منطقة الكود من أجل إضافة البرنامج في: 'res://addons/%s'."
+"غير قادر علي إيجاد منطقة النص البرمجي من أجل إضافة البرنامج في: 'res://"
+"addons/%s'."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s'."
-msgstr "غير قادر علي تحميل كود الإضافة من المسار: '%s'."
+msgstr "غير قادر علي تحميل النص البرمجي للإضافة من المسار: '%s'."
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' There seems to be an error in "
"the code, please check the syntax."
msgstr ""
-"غير قادر علي تحميل كود الإضافة من المسار: '%s' يبدو أن الكود يوجد فيه "
-"أخطاء , الرجاء مراجعة الكود."
+"غير قادر علي تحميل النص البرمجي الإضافب من المسار: '%s' يبدو أن شِفرة "
+"البرمجية يوجد بها أخطاء , الرجاء مراجعة الشِفرة البرمجية."
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
msgstr ""
-"غير قادر علي تحميل كود الإضافة من المسار: '%s' النوع الأساسي ليس إضافة "
-"المُعدل."
+"غير قادر علي تحميل النص البرمجي الإضافي من المسار: '%s' النوع الأساسي ليس "
+"إضافة المُعدل."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
msgstr ""
-"غير قادر علي تحميل كود الإضافة من المسار: '%s' الكود ليس في وضع الأداة."
+"غير قادر علي تحميل النص البرمجي الإضافي من المسار: '%s' النص البرمجي ليس في "
+"وضع الأداة."
#: editor/editor_node.cpp
msgid ""
@@ -2703,15 +2725,15 @@ msgstr "حفظ جميع المشاهد"
#: editor/editor_node.cpp
msgid "Convert To..."
-msgstr "تحويل الي..."
+msgstr "تحويل إلى..."
#: editor/editor_node.cpp
msgid "MeshLibrary..."
-msgstr "مكتبة الميش..."
+msgstr "مكتبة مجسّمات..."
#: editor/editor_node.cpp
msgid "TileSet..."
-msgstr "مجموعة البلاط..."
+msgstr "مجموعة بلاط..."
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
@@ -2725,7 +2747,7 @@ msgstr "إعادة تراجع"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
-msgstr "ادوات لكل-المشهد او لمشاريع متنوعه."
+msgstr "أدوات مشروع أو مشهد متنوعة."
#: editor/editor_node.cpp editor/project_manager.cpp
#: editor/script_create_dialog.cpp
@@ -2738,7 +2760,7 @@ msgstr "إعدادات المشروع..."
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Version Control"
-msgstr "التحكم في الإصدار"
+msgstr "التحكم بالإصدار"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Set Up Version Control"
@@ -2762,7 +2784,7 @@ msgstr "فتح مجلد بيانات المشروع"
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
-msgstr "ادوات"
+msgstr "أدوات"
#: editor/editor_node.cpp
msgid "Orphan Resource Explorer..."
@@ -2770,7 +2792,7 @@ msgstr "متصفح الموارد أورفان..."
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr "غادر إلى قائمه المشاريع"
+msgstr "العودة إلى قائمة المشاريع"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
@@ -2783,63 +2805,72 @@ msgstr "نشر مع تصحيح الأخطاء عن بعد"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"حينما يتم التصدير أو النشر، ملف التشغيل الناتج سوف يحاول الإتصال إلي عنوان "
-"الأي بي الخاص بهذا الكمبيوتر من أجل تصحيح الأخطاء."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "نشر مصغر مع نظام شبكات الملفات"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
-"حينما يتم تفعيل هذا الإعداد، التصدير او النشر سوف ينتج ملف تشغيل بالحد "
-"الأدني.\n"
+"حينما يتم تفعيل هذا الإعداد، التصدير أو النشر سوف ينتج ملف تشغيل بالحد "
+"الأدنى (مبسط).\n"
"نظام الملفات سوف يتم توفيره بواسطة المُعدل من خلال الشبكة.\n"
-"علي الأندرويد، النشر سوف يستخدم وصلة اليو اس بي من أجل أداء أسرع. هذا "
-"الأعداد يسرع الإختبار للإلعاب مع الملفات الكثيرة."
+"على الأندرويد، النشر سوف يستخدم وصلة اليو إس بي من أجل أداء أسرع. هذا "
+"الإعداد يسرّع إختبار الألعاب ذو الحجم الكبير."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "أشكال إصطدام ظاهرة"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
-"أشكال الإصطدام و وعقد الراي كاست (من أجل 2D و 3D) سوف تكون ظاهرة في اللعبة "
-"العاملة إذا كان هذا الإعداد مُفعل."
+"أشكال الإصطدام و عُقد الراي كاست (من أجل 2D و 3D) سوف تكون ظاهرة في اللعبة "
+"العاملة إذا كان هذا الإعداد مُفعّل."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "الإنتقال المرئي"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
-msgstr "ميشات التنقل والبوليجين سوف يكونون ظاهرين حينما يتم تفعيل هذا الإعداد."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
+msgstr ""
+"مجسمات التنقل والأشكال المضلعة سوف تكون ظاهرة حينما يتم تفعيل هذا الإعداد."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "مزامنة تغييرات المشهد"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"حينما يكون هذا الإعداد مُفعل، أي تغيير يحدث في المشهد من خلال المُعدل سوف يتم "
"تطبيقة في اللعبة العاملة.\n"
@@ -2847,32 +2878,34 @@ msgstr ""
"الملفات."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "مزامنة تغييرات الكود"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
-"حينما يكون هذا الإعداد مُفعل، أي كود يتم حفظه سيتم إعادة تشغيلة في اللعبة "
-"العاملة.\n"
-"حينما يتم إستخدامة عن بعد علي جهاز، سيكون هذا أكثر فعالية مع نظام شبكات "
+"حينما يكون هذا الإعداد مُفعل، أي نص برمجي يتم حفظه سيتم إعادة تحميله في "
+"اللعبة العاملة.\n"
+"حينما يتم إستخدامه عن بُعد على جهاز، سيكون هذا أكثر فعالية مع نظام شبكات "
"الملفات."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
-msgstr "المُعدل"
+msgstr "المحرّر"
#: editor/editor_node.cpp
msgid "Editor Settings..."
-msgstr "إعدادات المحرّر"
+msgstr "إعدادات المحرّر…"
#: editor/editor_node.cpp
msgid "Editor Layout"
-msgstr "نسق المُعدل"
+msgstr "تنسيق المحرّر"
#: editor/editor_node.cpp
msgid "Take Screenshot"
@@ -2880,11 +2913,11 @@ msgstr "أخذ صورة للشاشة"
#: editor/editor_node.cpp
msgid "Screenshots are stored in the Editor Data/Settings Folder."
-msgstr "لقطات الشاشة تكون محفوظة في مجلّد البيانات/الإعدادت داخل المحرّر"
+msgstr "لقطات الشاشة تكون محفوظة في مجلّد بيانات/إعدادات المحرّر."
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr "إلغاء/تفعيل وضع الشاشة الكاملة"
+msgstr "تفعيل/إلغاء وضع الشاشة الكاملة"
#: editor/editor_node.cpp
msgid "Toggle System Console"
@@ -2892,11 +2925,11 @@ msgstr "إظهار/إخفاء وحدة التحكم بالنظام"
#: editor/editor_node.cpp
msgid "Open Editor Data/Settings Folder"
-msgstr "فتح مجلّد البيانات/الإعدادت المحرّر"
+msgstr "فتح مجلّد بيانات/إعدادات المحرّر"
#: editor/editor_node.cpp
msgid "Open Editor Data Folder"
-msgstr "افتح ملف بيانات المحرر"
+msgstr "فتح مجلّد بيانات المحرّر"
#: editor/editor_node.cpp
msgid "Open Editor Settings Folder"
@@ -2904,7 +2937,7 @@ msgstr "فتح مجلّد إعدادات المحرّر"
#: editor/editor_node.cpp
msgid "Manage Editor Features..."
-msgstr "إدارة ميّزات المحرّر"
+msgstr "إدارة ميّزات المحرّر…"
#: editor/editor_node.cpp
msgid "Manage Export Templates..."
@@ -2919,7 +2952,7 @@ msgstr "مساعدة"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "بحث"
@@ -2934,7 +2967,7 @@ msgstr "الأسئلة و الأجوبة"
#: editor/editor_node.cpp
msgid "Report a Bug"
-msgstr "إرسال تقرير عن bug أو خلل في شيء ما"
+msgstr "إرسال تقرير عن خلل برمجي"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -2946,7 +2979,7 @@ msgstr "المجتمع"
#: editor/editor_node.cpp
msgid "About"
-msgstr "عن"
+msgstr "عن هذا التطبيق"
#: editor/editor_node.cpp
msgid "Play the project."
@@ -2958,11 +2991,11 @@ msgstr "تشغيل"
#: editor/editor_node.cpp
msgid "Pause the scene execution for debugging."
-msgstr "إيقاف جلسة المشهد من أجل تنقيح الكبوات البرمجية debugging."
+msgstr "إيقاف المشهد الحالي من أجل المعالجة البرمجية."
#: editor/editor_node.cpp
msgid "Pause Scene"
-msgstr "إيقاف مؤقت للمشهد"
+msgstr "إيقاف مؤقّت للمشهد"
#: editor/editor_node.cpp
msgid "Stop the scene."
@@ -2970,7 +3003,7 @@ msgstr "إيقاف المشهد."
#: editor/editor_node.cpp
msgid "Play the edited scene."
-msgstr "تشغيل المشهد المُعدل."
+msgstr "تشغيل المشهد المُعدّل."
#: editor/editor_node.cpp
msgid "Play Scene"
@@ -2995,7 +3028,7 @@ msgstr "حفظ و إعادة تشغيل"
#: editor/editor_node.cpp
msgid "Spins when the editor window redraws."
-msgstr "يدور حينما يتم إعادة رسم نافذة المحرّر"
+msgstr "قم بالتدوير أثناء إعادة رسم نافذة المحرّر."
#: editor/editor_node.cpp
msgid "Update Continuously"
@@ -3015,7 +3048,7 @@ msgstr "نظام الملفات"
#: editor/editor_node.cpp
msgid "Inspector"
-msgstr "مُراقب"
+msgstr "المُراقب"
#: editor/editor_node.cpp
msgid "Expand Bottom Panel"
@@ -3100,27 +3133,27 @@ msgstr "حدد"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
-msgstr "فتح المُعدل 2D"
+msgstr "فتح المُحرر 2D"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
-msgstr "فتح المُعدل 3D"
+msgstr "فتح المُحرر 3D"
#: editor/editor_node.cpp
msgid "Open Script Editor"
-msgstr "فتح مُعدل الكود"
+msgstr "فتح محرر النص البرمجي"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
-msgstr "فتح مكتبة الأصول"
+msgstr "فتح مكتبة المُلحقات"
#: editor/editor_node.cpp
msgid "Open the next Editor"
-msgstr "فتح في المُعدل التالي"
+msgstr "فتح في المُحرر التالي"
#: editor/editor_node.cpp
msgid "Open the previous Editor"
-msgstr "إفتح المُعدل السابق"
+msgstr "إفتح المُحرر السابق"
#: editor/editor_node.h
msgid "Warning!"
@@ -3237,7 +3270,7 @@ msgstr "إلحاق..."
#: editor/editor_properties.cpp
msgid "Invalid RID"
-msgstr "إسم RID غير صالح."
+msgstr "RID غير صالح"
#: editor/editor_properties.cpp
msgid ""
@@ -3334,9 +3367,11 @@ msgid "Add Key/Value Pair"
msgstr "إضافة زوج مفتاح/قيمة"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"لا يوجد إعداد تصدير مسبق عامل لهذه المنصة.\n"
"من فضلك أضف إعداد تصدير عامل في قائمة التصدير."
@@ -3585,7 +3620,7 @@ msgstr "حدد ملف القالب"
#: editor/export_template_manager.cpp
msgid "Godot Export Templates"
-msgstr "إدارة قوالب التصدير Godot"
+msgstr "إدارة قوالب التصدير لغودوت"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
@@ -3709,11 +3744,11 @@ msgstr "مشهد جديد..."
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "New Script..."
-msgstr "فتح السكريبت..."
+msgstr "فتح النص البرمجي..."
#: editor/filesystem_dock.cpp
msgid "New Resource..."
-msgstr "مورد جديد..."
+msgstr "مصدر جديد..."
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
@@ -3734,7 +3769,7 @@ msgstr "إعادة التسمية"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
-msgstr "‪المجلد/الملف السابق"
+msgstr "المجلد/الملف السابق"
#: editor/filesystem_dock.cpp
msgid "Next Folder/File"
@@ -3794,7 +3829,7 @@ msgstr "مجلد:"
#: editor/find_in_files.cpp
msgid "Filters:"
-msgstr "فلتر:"
+msgstr "تنقيات:"
#: editor/find_in_files.cpp
msgid ""
@@ -3823,7 +3858,7 @@ msgstr "إيجاد: "
#: editor/find_in_files.cpp
msgid "Replace: "
-msgstr "إستبدال:"
+msgstr "إستبدال: "
#: editor/find_in_files.cpp
msgid "Replace all (no undo)"
@@ -3896,7 +3931,7 @@ msgstr "إستيراد كمشهد واحد"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Animations"
-msgstr "إستيراد مع إنميشن منفصلة"
+msgstr "إستيراد مع رسوم متحركة منفصلة"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials"
@@ -3912,15 +3947,15 @@ msgstr "إستيراد مع عناصر+موارد منفصلة"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Animations"
-msgstr "إستيراد مع عناصر + إنميشن منفصلة"
+msgstr "إستيراد مع عناصر + رسوم متحركة منفصلة"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials+Animations"
-msgstr "إستيراد مع مصادر+ إنميشن منفصلة"
+msgstr "إستيراد مع مصادر+ رسوم متحركة منفصلة"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials+Animations"
-msgstr "إستيراد مع عناصر + مصادر + إنميشين منفصلين"
+msgstr "إستيراد مع عناصر + مصادر + رسوم متحركة منفصلين"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes"
@@ -3945,23 +3980,23 @@ msgstr "انشاء خارطة الضوء"
#: editor/import/resource_importer_scene.cpp
msgid "Generating for Mesh: "
-msgstr "انشاء من اجل الميش: "
+msgstr "انشاء من اجل المجسم: "
#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script..."
-msgstr "تشغيل الكود المُخصص..."
+msgstr "تشغيل النص البرمجي المُخصص..."
#: editor/import/resource_importer_scene.cpp
msgid "Couldn't load post-import script:"
-msgstr "لا يمكن تحميل الكود المستورد أو المطبوع:"
+msgstr "لا يمكن تحميل النص البرمجي المستورد أو المطبوع:"
#: editor/import/resource_importer_scene.cpp
msgid "Invalid/broken script for post-import (check console):"
-msgstr "كود مستورد-ملصق متضرر/خاطئ (تحقق من وحدة التحكم):"
+msgstr "النص البرمجي مستورد-ملصق متضرر/خاطئ (تحقق من وحدة التحكم):"
#: editor/import/resource_importer_scene.cpp
msgid "Error running post-import script:"
-msgstr "خطأ في تشغيل الكود الملصق- المستورد:"
+msgstr "خطأ في تشغيل النص البرمجي الملصق- المستورد:"
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
@@ -3981,15 +4016,15 @@ msgstr "حدد كإفتراضي من أجل '%s'"
#: editor/import_dock.cpp
msgid "Clear Default for '%s'"
-msgstr "إخلاء الإفتراضي لـ '%s'"
+msgstr "إخلاء الإفتراضي ل '%s'"
#: editor/import_dock.cpp
msgid "Import As:"
-msgstr "إستيراد كـ:"
+msgstr "إستيراد ك:"
#: editor/import_dock.cpp
msgid "Preset"
-msgstr "إعداد مُسبق..."
+msgstr "إعداد مُسبق"
#: editor/import_dock.cpp
msgid "Reimport"
@@ -4430,38 +4465,38 @@ msgstr "إلغاء/تفعيل التشغيل التلقائي"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
-msgstr "إسم الحركة الجديد:"
+msgstr "إسم رسم المتحرك جديد:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
-msgstr "حركة جديدة"
+msgstr "رسم متحرك جديدة"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Animation Name:"
-msgstr "تغيير إسم الحركة:"
+msgstr "تغيير إسم الرسم المتحرك:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Animation?"
-msgstr "مسح الحركة؟"
+msgstr "مسح الرسم المتحرك؟"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Remove Animation"
-msgstr "مسح الحركة"
+msgstr "مسح الرسم المتحرك"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Invalid animation name!"
-msgstr "خطأ: إسم الرسوم المتحركة خاطئ!"
+msgstr "إسم الرسم المتحرك خاطئ!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation name already exists!"
-msgstr "اسم الحركة موجود بالفعل!"
+msgstr "إسم الرسم المتحرك موجود بالفعل!"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Rename Animation"
-msgstr "إعادة تسمية الحركة"
+msgstr "إعادة تسمية الرسم المتحرك"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
@@ -4473,23 +4508,23 @@ msgstr "تغيير وقت الدمج"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load Animation"
-msgstr "تحميل حركة"
+msgstr "تحميل الرسم المتحرك"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Duplicate Animation"
-msgstr "تكرير الحركة"
+msgstr "تكرار الرسم المتحرك"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation to copy!"
-msgstr "لا حركة رسومية لنسخها!"
+msgstr "لا رسم متحرك لنسخها!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation resource on clipboard!"
-msgstr "لا يوجد مورد لرسومية متحركة في الحافظة clipboard!"
+msgstr "لا يوجد مورد لرسم متحرك في الحافظة clipboard!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
-msgstr "الحركة الرسومية المُلصقة"
+msgstr "تم لصق الرسوم المتحركة"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Paste Animation"
@@ -4501,39 +4536,39 @@ msgstr "لا رسومات متحركة لتحريرها!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
-msgstr "تشغيل الحركة المختارة بشكل عكسي من الموقع الحالي. (زر A)"
+msgstr "تشغيل الرسم المتحرك المختار بشكل عكسي من الموقع الحالي. (زر A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr "تشيل الحركة المختارة بشكل عكسي من النهاية. (Shift+ش)"
+msgstr "تشغيل الرسم المتحرك المختار بشكل عكسي من النهاية. (Shift+A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Stop animation playback. (S)"
-msgstr "إيقاف تشغيل الحركة. (س)"
+msgstr "إيقاف تشغيل الرسم المتحرك. (S)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from start. (Shift+D)"
-msgstr "تشغيل الحركة المحددة من البداية. (Shift+ي)"
+msgstr "تشغيل الرسم المتحرك المحدد من البداية. (Shift+D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from current pos. (D)"
-msgstr "تشغيل الحركة المختارة من الموقع الحالي. (زر D)"
+msgstr "تشغيل الرسم المتحرك المختار من الموقع الحالي. (D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation position (in seconds)."
-msgstr "موقع الحركة (بالثواني)."
+msgstr "موقع الرسم المتحرك (بالثواني)."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Scale animation playback globally for the node."
-msgstr "تكبير تشغيل الحركة عالمياً من العقدة."
+msgstr "تكبير تشغيل الرسم المتحرك عالمياً من العقدة."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
-msgstr "أدوات الحركة"
+msgstr "أدوات الرسم المتحرك"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation"
-msgstr "صورة متحركة"
+msgstr "الرسم المتحرك"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Edit Transitions..."
@@ -4605,11 +4640,11 @@ msgstr "تثبيت مُشغّل الرسوميات المتحركة"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
-msgstr "إنشاء حركة جديدة"
+msgstr "إنشاء رسوم متحركة جديدة"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Name:"
-msgstr "إسم الحركة:"
+msgstr "إسم الرسم المتحرك:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
@@ -4722,17 +4757,16 @@ msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Transition: "
-msgstr "التحريك "
+msgstr "الانتقال: "
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Play Mode:"
-msgstr "وضع السحب"
+msgstr "وضع اللعب:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "AnimationTree"
-msgstr "مسارات التحريك"
+msgstr "شجرة التحريك"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "New name:"
@@ -4860,7 +4894,7 @@ msgstr "عقدة التنقل"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Import Animations..."
-msgstr "إستيراد الحركة..."
+msgstr "إستيراد الرسوم المتحركة..."
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Node Filters"
@@ -4899,14 +4933,12 @@ msgid "Request failed, return code:"
msgstr "فشل إتمام الطلب٫ الرمز الذي تم إرجاعه:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Request failed."
msgstr "فشل الطلب."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Cannot save response to:"
-msgstr "لا يمكن المسح:"
+msgstr "لا يمكن الحفظ بسبب:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Write error."
@@ -4917,19 +4949,16 @@ msgid "Request failed, too many redirects"
msgstr "فشل الطلب٫ السبب هو اعادة التحويل مرات اكثر من اللازم"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Redirect loop."
msgstr "اعادة توجيه حلقة التكرار."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Request failed, timeout"
-msgstr "فشل إتمام الطلب٫ الرمز الذي تم إرجاعه:"
+msgstr "فشل الطلب ، انتهت المهلة"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Timeout."
-msgstr "الوقت"
+msgstr "انتهت المهلة."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
@@ -4952,14 +4981,12 @@ msgid "Asset Download Error:"
msgstr "خطأ في تنزيل الأصول:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Downloading (%s / %s)..."
-msgstr "جاري التنزيل"
+msgstr "جاري التنزيل (%s / %s)..."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Downloading..."
-msgstr "جاري التنزيل"
+msgstr "‫جاري التنزيل..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving..."
@@ -4971,12 +4998,11 @@ msgstr "خطأ في إنشاء الطلب"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Idle"
-msgstr "عاطل"
+msgstr "الخمول (idle)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Install..."
-msgstr "تثبيت"
+msgstr "تثبيت..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
@@ -5007,24 +5033,20 @@ msgid "Name (Z-A)"
msgstr "الاسم (ترتيب ألف بائي معكوس)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (A-Z)"
-msgstr "الرخصة"
+msgstr "الرخصة (أ-ي)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (Z-A)"
-msgstr "الرخصة"
+msgstr "الرخصة (ي-أ)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "First"
msgstr "الأول"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Previous"
-msgstr "التبويب السابق"
+msgstr "السابق"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Next"
@@ -5043,14 +5065,12 @@ msgid "No results for \"%s\"."
msgstr "لا نتائج من أجل \"%s\"."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Import..."
-msgstr "إستيراد"
+msgstr "استيراد..."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Plugins..."
-msgstr "إضافات"
+msgstr "إضافات..."
#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
msgid "Sort:"
@@ -5066,9 +5086,8 @@ msgid "Site:"
msgstr "الموقع:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Support"
-msgstr "الدعم..."
+msgstr "الدعم"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Official"
@@ -5079,9 +5098,8 @@ msgid "Testing"
msgstr "أختبار"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Loading..."
-msgstr "تحميل"
+msgstr "جاري التحميل..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
@@ -5114,7 +5132,7 @@ msgid "Bake Lightmaps"
msgstr "إعداد خرائط الضوء"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "استعراض"
@@ -5594,9 +5612,8 @@ msgid "Scale mask for inserting keys."
msgstr "قناع التحجيم لأجل إدخال المفاتيح."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Insert keys (based on mask)."
-msgstr "أدخل مفتاح (مسارات موجودة بالفعل)"
+msgstr "أدخل المفاتيح (على أساس القناع)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5639,9 +5656,8 @@ msgid "Divide grid step by 2"
msgstr "قسم خطوة الشبكة بـ 2"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Pan View"
-msgstr "أظهر"
+msgstr "إظهار شامل"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -5666,9 +5682,8 @@ msgid "Error instancing scene from %s"
msgstr "خطأ في توضيح المشهد من %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Change Default Type"
-msgstr "غير النوع الإفتراضي"
+msgstr "تغير النوع الإفتراضي"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5753,9 +5768,8 @@ msgid "Emission Colors"
msgstr "الوان الإنبعاث"
#: editor/plugins/cpu_particles_editor_plugin.cpp
-#, fuzzy
msgid "CPUParticles"
-msgstr "جسيمات"
+msgstr "جزيئات وحدة المعالجة المركزية"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -5816,9 +5830,8 @@ msgid "Right Linear"
msgstr "الخط اليميني"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Load Preset"
-msgstr "تحميل الإعداد المعد مسبقاً"
+msgstr "تحميل إعداد مسبق"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Remove Curve Point"
@@ -5974,9 +5987,8 @@ msgstr ""
"هذا هو الخيار الأكثر دقة (لكنه الأبطئ) لأجل للكشف عن وقوع التصادم."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Single Convex Collision Sibling"
-msgstr "إنشاء متصادم محدب قريب"
+msgstr "إنشاء شقيق تصادم محدب مفرد"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -5987,9 +5999,8 @@ msgstr ""
"هذا هو الخيار الأسرع (لكنه الأقل دقة) للكشف عن وقوع التصادم."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Multiple Convex Collision Siblings"
-msgstr "إنشاء متصادم محدب قريب"
+msgstr "إنشاء أشقاء تصادم محدب متعددة"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6044,16 +6055,16 @@ msgid "Remove item %d?"
msgstr "مسح العنصر %d؟"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid ""
"Update from existing scene?:\n"
"%s"
-msgstr "تحديث من المشهد"
+msgstr ""
+"التحديث من المشهد المتواجد؟:\n"
+"%s"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid "Mesh Library"
-msgstr "مكتبة الميش..."
+msgstr "مكتبة المجسم"
#: editor/plugins/mesh_library_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
@@ -6171,12 +6182,10 @@ msgstr "إنشاء مُضلع التنقل"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "Convert to CPUParticles"
-msgstr "تحويل إلي %s"
+msgstr "تحويل إلى %s"
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Generating Visibility Rect"
msgstr "توليد Rect الرؤية"
@@ -6198,23 +6207,20 @@ msgid "The geometry's faces don't contain any area."
msgstr "الوجوه الهندسية لا تتضمن أي منطقة."
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "The geometry doesn't contain any faces."
-msgstr "العقدة لا تحتوي على هندسة (الوجوه)."
+msgstr "الهندسة لا تحتوي على وجوه."
#: editor/plugins/particles_editor_plugin.cpp
msgid "\"%s\" doesn't inherit from Spatial."
msgstr "\"%s\" لا يرث الفراغي Spatial."
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "\"%s\" doesn't contain geometry."
-msgstr "العقدة لا تحتوي على هندسة."
+msgstr "\"%s\" لا تحتوي على هندسة."
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "\"%s\" doesn't contain face geometry."
-msgstr "العقدة لا تحتوي على هندسة."
+msgstr "\"%s\" لا تحتوي على هندسة وجه."
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
@@ -6274,9 +6280,8 @@ msgid "Add Point to Curve"
msgstr "أضف نقطة للمنحنى"
#: editor/plugins/path_2d_editor_plugin.cpp
-#, fuzzy
msgid "Split Curve"
-msgstr "تحرير منحنى العقدة"
+msgstr "تقسيم المنحنى"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Point in Curve"
@@ -6907,49 +6912,42 @@ msgid "Debugger"
msgstr "مُنقح الأخطاء"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Search Results"
-msgstr "إبحث في المساعدة"
+msgstr "نتائج البحث"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Clear Recent Scripts"
-msgstr "إخلاء المشاهد الحالية"
+msgstr "إخلاء النصوص البرمجية الحديثة"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Connections to method:"
-msgstr "صلها بالعقدة:"
+msgstr "الاتصالات لدالة:"
#: editor/plugins/script_text_editor.cpp editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Source"
-msgstr "مورد"
+msgstr "مصدر"
#: editor/plugins/script_text_editor.cpp
msgid "Target"
msgstr "الهدف"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid ""
"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'."
-msgstr "قطع إتصال'%s' من '%s'"
+msgstr ""
+"الدالة المتصلة '%s' للاشارة '%s' مفقودة من العقدة '%s' إلى العقدة '%s'."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "[Ignore]"
msgstr "(تجاهل)"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Line"
-msgstr "الخط:"
+msgstr "خط"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Function"
-msgstr "مسح المهمة"
+msgstr "انتقل الى الوظيفة البرمجية"
#: editor/plugins/script_text_editor.cpp
msgid "Only resources from filesystem can be dropped."
@@ -6999,9 +6997,8 @@ msgid "Bookmarks"
msgstr "المحفوظات"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Breakpoints"
-msgstr "مسح النقاط"
+msgstr "نقاط التكسّر"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
@@ -7050,66 +7047,56 @@ msgid "Complete Symbol"
msgstr "رمز التمام"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Evaluate Selection"
-msgstr "تكبير المحدد"
+msgstr "تقييم الاختيار"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
msgstr "تشذيب الفراغات البيضاء الزائدة"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Convert Indent to Spaces"
-msgstr "تحويل إلي %s"
+msgstr "تحويل المسافة البادئة إلى مسافات"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Convert Indent to Tabs"
-msgstr "تحويل إلي %s"
+msgstr "تحويل المسافة البادئة إلى تبويبات"
#: editor/plugins/script_text_editor.cpp
msgid "Auto Indent"
msgstr "مسافة بادئة تلقائية"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Find in Files..."
-msgstr "فلتر الملفات..."
+msgstr "جِد في الملفات..."
#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "مساعدة سياقية"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Toggle Bookmark"
-msgstr "إلغاء/تفعيل وضع النظرة الحرة"
+msgstr "تبديل العلامة المرجعية"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Next Bookmark"
-msgstr "إذهب إلي الخطوة التالية"
+msgstr "الانتقال إلى العلامة المرجعية التالية"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Previous Bookmark"
-msgstr "إذهب إلي الخطوة السابقة"
+msgstr "الانتقال إلى العلامة المرجعية السابقة"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Remove All Bookmarks"
-msgstr "مسح الكل"
+msgstr "إزالة جميع الإشارات المرجعية"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Function..."
-msgstr "مسح المهمة"
+msgstr "الذهاب إلى وظيفة برمجية..."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Line..."
-msgstr "إذهب إلي الخط"
+msgstr "الذهاب إلى خط..."
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -7121,14 +7108,12 @@ msgid "Remove All Breakpoints"
msgstr "إزالة جميع نقاط التكسّر"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Next Breakpoint"
-msgstr "إذهب إلي الخطوة التالية"
+msgstr "الذهاب إلى نقطة التكسّر التالية"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Previous Breakpoint"
-msgstr "إذهب إلي الخطوة السابقة"
+msgstr "الذهاب إلى نقطة التكسّر السابقة"
#: editor/plugins/shader_editor_plugin.cpp
msgid ""
@@ -7147,9 +7132,8 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr "لا يملك هذا الهكيل أيّة عظام، أنشئ بعض عُقد العظام ثنائية البُعد كأبناء."
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Rest Pose from Bones"
-msgstr "أنشئ نقاط إنبعاث من الشبكة"
+msgstr "إنشاء وضعية الراحة من العظام"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Set Rest Pose to Bones"
@@ -7168,23 +7152,20 @@ msgid "Set Bones to Rest Pose"
msgstr "تحديد العظام لتكون في وضعية الراحة"
#: editor/plugins/skeleton_editor_plugin.cpp
-#, fuzzy
msgid "Create physical bones"
-msgstr "أنشئ ميش التنقل"
+msgstr "إنشاء عظام مادية"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Skeleton"
msgstr "الهيكل"
#: editor/plugins/skeleton_editor_plugin.cpp
-#, fuzzy
msgid "Create physical skeleton"
-msgstr "إنشاء حل C#‎"
+msgstr "إنشاء هيكل عظمي مادي"
#: editor/plugins/skeleton_ik_editor_plugin.cpp
-#, fuzzy
msgid "Play IK"
-msgstr "تشغيل"
+msgstr "تشغيل IK"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orthogonal"
@@ -7375,14 +7356,12 @@ msgid "Audio Listener"
msgstr "المستمع الصوتي"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Enable Doppler"
-msgstr "تغيير خط الحركة"
+msgstr "تفعيل دوبلر"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Cinematic Preview"
-msgstr "يُنشئ مستعرضات الميش"
+msgstr "معاينة سينمائية"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
@@ -7444,6 +7423,12 @@ msgid ""
"Closed eye: Gizmo is hidden.\n"
"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
msgstr ""
+"انقر للتبديل بين حالات الرؤية.\n"
+"\n"
+"العين المفتوحة: الأداة مرئية.\n"
+"العين المغلقة: الأداة مخفية.\n"
+"العين نصف مفتوحة: الأداة مرئية أيضا من خلال الأسطح المعتمة (\"الأشعة السينية"
+"\")."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
@@ -7521,9 +7506,8 @@ msgid "Transform"
msgstr "التحوّل"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Object to Floor"
-msgstr "الكبس إلي الشبكة"
+msgstr "محاذاة الشيء إلى الأرض"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog..."
@@ -7567,9 +7551,8 @@ msgstr "إظهار الشبكة"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Settings..."
-msgstr "جاري الإعداد..."
+msgstr "اعدادات..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
@@ -7600,7 +7583,6 @@ msgid "View Z-Near:"
msgstr "إظهار Z-Near:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Z-Far:"
msgstr "إظهار Z-Far:"
@@ -7637,48 +7619,40 @@ msgid "Nameless gizmo"
msgstr "أداة (gizmo) غير مسماة"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create Mesh2D"
-msgstr "إنشاء شبكة الخطوط العريضة"
+msgstr "إنشاء Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Mesh2D Preview"
-msgstr "يُنشئ مستعرضات الميش"
+msgstr "معاينة Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon2D"
-msgstr "إنشاء بولي"
+msgstr "إنشاء مُضلع ثنائي الأبعاد"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Polygon2D Preview"
msgstr "مُعاينة المُضلع ثنائي الأبعاد"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create CollisionPolygon2D"
-msgstr "إنشاء مُضلع التنقل"
+msgstr "إنشاء مُضلع تصادم ثنائي الأبعاد"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "CollisionPolygon2D Preview"
-msgstr "إنشاء مُضلع التنقل"
+msgstr "معاينة مُضلع التصادم ثنائي الأبعاد"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create LightOccluder2D"
-msgstr "أنشئ شكل مُطبق"
+msgstr "إنشاء LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "LightOccluder2D Preview"
-msgstr "أنشئ شكل مُطبق"
+msgstr "معاينة LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Sprite is empty!"
-msgstr "الميش فارغ!"
+msgstr "الرسومية فارغة!"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Can't convert a sprite using animation frames to mesh."
@@ -7691,36 +7665,32 @@ msgid "Invalid geometry, can't replace by mesh."
msgstr "هندسياً غير صالح، لا يمكن استبداله بسطح (mesh)."
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Convert to Mesh2D"
-msgstr "تحويل إلي %s"
+msgstr "تحويل إلى Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create polygon."
msgstr "هندسياصً غير صالح، لا يمكن إنشاء مُضلّع."
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Convert to Polygon2D"
-msgstr "تحويل إلي %s"
+msgstr "تحويل إلى مُضلع ثنائي الأبعاد"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create collision polygon."
msgstr "هندسياً غير صالح، لا يمكن إنشاء مُضلع تصادم."
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create CollisionPolygon2D Sibling"
-msgstr "إنشاء مُضلع التنقل"
+msgstr "إنشاء شقيق لمُضلع التصادم ثنائي الأبعاد"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create light occluder."
msgstr "هندسياً غير صالح، لا يمكن إنشاء حِظار (occluder) الضوء."
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create LightOccluder2D Sibling"
-msgstr "أنشئ شكل مُطبق"
+msgstr "أنشاء ضوء محجوب ثنائي الأبعاد"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite"
@@ -7739,9 +7709,8 @@ msgid "Grow (Pixels): "
msgstr "التكبير (Pixels): "
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Update Preview"
-msgstr "إستعراض"
+msgstr "تحديث المُعاينة"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Settings:"
@@ -7800,7 +7769,8 @@ msgid "New Animation"
msgstr "رسومية متحركة جديدة"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "السرعة (إطار ف. ث. FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -7812,9 +7782,8 @@ msgid "Animation Frames:"
msgstr "إطارات الرسومات المتحركة:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Add a Texture from File"
-msgstr "التقط من البيكسل"
+msgstr "إضافة ملمس من الملف"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Frames from a Sprite Sheet"
@@ -7837,9 +7806,8 @@ msgid "Move (After)"
msgstr "تحريك (للتالي)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Select Frames"
-msgstr "تحديد الوضع"
+msgstr "تحديد الإطارات"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Horizontal:"
@@ -7951,23 +7919,20 @@ msgid "Create From Current Editor Theme"
msgstr "إنشاء مستمد من موضوع Theme المحرر الحالي"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Button"
-msgstr "إلغاء/تفعيل التشغيل التلقائي"
+msgstr "زر التبديل"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Disabled Button"
-msgstr "معطّل"
+msgstr "زر معطّل"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Item"
msgstr "عنصر"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Disabled Item"
-msgstr "معطّل"
+msgstr "عنصر معطّل"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Check Item"
@@ -7987,21 +7952,19 @@ msgstr "عنصر مُفعل اختياري"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Named Sep."
-msgstr "الفاصل المُسمّى"
+msgstr "الفاصل المُسمّى."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Submenu"
msgstr "القائمة الفرعية"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Subitem 1"
-msgstr "عنصر"
+msgstr "العنصر الفرعي 1"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Subitem 2"
-msgstr "عنصر"
+msgstr "العنصر الفرعي 2"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Has"
@@ -8012,9 +7975,8 @@ msgid "Many"
msgstr "العديد"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Disabled LineEdit"
-msgstr "معطّل"
+msgstr "تعديل الخط معطّل"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Tab 1"
@@ -8029,18 +7991,16 @@ msgid "Tab 3"
msgstr "علامة التبويب 3"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editable Item"
-msgstr "عنصر انتقاء"
+msgstr "عنصر قابل للتعديل"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Subtree"
msgstr "الشجرة الفرعية"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Has,Many,Options"
-msgstr "بكثير، خيارات عديدة،!"
+msgstr "يمتلك، خيارات، عديدة"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Data Type:"
@@ -8064,24 +8024,21 @@ msgid "Color"
msgstr "اللون"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme File"
-msgstr "إفتح ملف"
+msgstr "ملف الثيم"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
msgstr "إزالة عملية الاختيار"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Fix Invalid Tiles"
-msgstr "اسم غير صالح."
+msgstr "أصلح البلاطة غير الصالحة"
#: editor/plugins/tile_map_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Cut Selection"
-msgstr "نصف المُحدد"
+msgstr "قص المُحدد"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint TileMap"
@@ -8104,9 +8061,8 @@ msgid "Erase TileMap"
msgstr "مسح خريطة البلاط TileMap"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Find Tile"
-msgstr "جد"
+msgstr "جد البلاطة"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Transpose"
@@ -8117,14 +8073,12 @@ msgid "Disable Autotile"
msgstr "تعطيل البلاط التلقائي Autotile"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Enable Priority"
-msgstr "تعديل المصافي"
+msgstr "تمكين الأولوية"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Filter tiles"
-msgstr "فلتر الملفات..."
+msgstr "تنقية البلاطات"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Give a TileSet resource to this TileMap to use its tiles."
@@ -8148,14 +8102,12 @@ msgid "Pick Tile"
msgstr "اختيار البلاط"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Rotate Left"
-msgstr "وضع التدوير"
+msgstr "تدوير لليسار"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Rotate Right"
-msgstr "وضع التدوير"
+msgstr "تدوير لليمين"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Flip Horizontally"
@@ -8166,18 +8118,16 @@ msgid "Flip Vertically"
msgstr "القلب عموديًا"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Clear Transform"
-msgstr "تحويل تغيير التحريك"
+msgstr "محو التَحَوّل"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Add Texture(s) to TileSet."
msgstr "إضافة نقش(نقوش) إلى مُحدد البلاط TileSet."
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove selected Texture from TileSet."
-msgstr "مسح المدخلة الحالية"
+msgstr "مسح النقش المُختار من رزمة البلاطات."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
@@ -8192,9 +8142,8 @@ msgid "New Single Tile"
msgstr "بلاطة مُفردة جديدة"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "New Autotile"
-msgstr "إظهار الملفات"
+msgstr "بلاط-تلقائي جديد"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "New Atlas"
@@ -8209,9 +8158,8 @@ msgid "Select the next shape, subtile, or Tile."
msgstr "اختر الشكل أو البلاط الفرعي أو البلاط التالي."
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Previous Coordinate"
-msgstr "التبويب السابق"
+msgstr "الإحداثيات السابقة"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Select the previous shape, subtile, or Tile."
@@ -8231,23 +8179,23 @@ msgstr "الإطباق Occlusion"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Navigation"
-msgstr "التصفح"
+msgstr "التنقل"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Bitmask"
-msgstr "قناع البِت Bitmask"
+msgstr "قناع البِت"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Priority"
-msgstr "التفاضل Priority"
+msgstr "الأولية"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Z Index"
-msgstr "تراتبية المحور Z"
+msgstr "ترتيبية المحور Z"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Region Mode"
-msgstr "وضع الأقليم Region"
+msgstr "وضع الأقليم"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Collision Mode"
@@ -8255,19 +8203,19 @@ msgstr "وضع التصادم"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Occlusion Mode"
-msgstr "وضع الإطباق Occlusion"
+msgstr "وضع الإطباق"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Navigation Mode"
-msgstr "وضع التصفح"
+msgstr "وضع التنقل"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Bitmask Mode"
-msgstr "وضع Bitmask"
+msgstr "وضع قناع-البِت"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Priority Mode"
-msgstr "وضع التفاضل Priority"
+msgstr "وضع الأولية"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Icon Mode"
@@ -8275,26 +8223,23 @@ msgstr "وضع الأيقونة"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Z Index Mode"
-msgstr "وضع Z Index"
+msgstr "وضع ترتيبية المحور Z"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Copy bitmask."
-msgstr "نسخ bitmask."
+msgstr "نسخ قناع-البِت."
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Paste bitmask."
-msgstr "لصق الحركة"
+msgstr "لصق قناع-البِت"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Erase bitmask."
-msgstr "زر الفأرة الأيمن: مسح النقطة."
+msgstr "مسح قناع-البِت."
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create a new rectangle."
-msgstr "إنشاء %s جديد"
+msgstr "إنشاء مستطيل جديد."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create a new polygon."
@@ -8569,9 +8514,8 @@ msgid "Add a commit message"
msgstr "إضافة رسالة إجراء"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit Changes"
-msgstr "مزامنة تغييرات الكود"
+msgstr "اقتراف التعديلا"
#: editor/plugins/version_control_editor_plugin.cpp
#: modules/gdnative/gdnative_library_singleton_editor.cpp
@@ -8580,7 +8524,7 @@ msgstr "الحالة"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "View file diffs before committing them to the latest version"
-msgstr "إظهار آخر تعديلات الملف قبل قبولهم في آخر نسخة."
+msgstr "إظهار آخر تعديلات الملف قبل قبولهم في آخر نسخة"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "No file diff is active"
@@ -8929,11 +8873,11 @@ msgstr "ثابت جذر-العدد2 (1.414214)، أي قيمة جذر العدد
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the absolute value of the parameter."
-msgstr "يحسب القيمة المطلقة لقيمة المَعلم."
+msgstr "يُرجع القيمة المطلقة لقيمة المَعلم."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-cosine of the parameter."
-msgstr "يُرجع قيمة جيب التمام \"arc-cosine\" للمَعلم."
+msgstr "يُرجع قيمة جيب التمام للمَعلم."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic cosine of the parameter."
@@ -8949,11 +8893,11 @@ msgstr "يُرجع قيمة جيب القطع الزائد العكسي للمَ
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-tangent of the parameter."
-msgstr "يُرجع قيمة ظل الزاوية العكسية \"arc-tangent\" للمَعلم."
+msgstr "يُرجع قيمة ظل الزاوية العكسية للمَعلم."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-tangent of the parameters."
-msgstr "يُرجع قيمة ظل الزاوية العكسي \"arc-tangent\" للمعالم."
+msgstr "يُرجع قيمة ظل الزاوية العكسي للمَعالم."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic tangent of the parameter."
@@ -8983,11 +8927,11 @@ msgstr "يحوّل قيمة (كمية) من الراديان إلى الدرجا
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-e Exponential."
-msgstr "الدالة Base-e."
+msgstr "الدالة الأسية Base-e."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-2 Exponential."
-msgstr "الدالة Base-2."
+msgstr "الدالة الأسية Base-2."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest integer less than or equal to the parameter."
@@ -9036,7 +8980,7 @@ msgstr "يُرجع قيمة المَعلم الأول مرفوعاً إلى قو
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in degrees to radians."
-msgstr "يحول الكمية المقاسة بالدرجات إلى الراديان."
+msgstr "يحول الكمية المقاسة بالدرجات إلى الراديان (الدائري)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 / scalar"
@@ -9060,11 +9004,11 @@ msgstr "يستخرج إشارة المَعلم."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the sine of the parameter."
-msgstr "يُرجع جيب sine المَعلم parameter."
+msgstr "يُرجع جيب المَعلم."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the hyperbolic sine of the parameter."
-msgstr "يُرجع قيمة الجيب العكس hyperbolic sine للمَعلم."
+msgstr "يُرجع قيمة الجيب العكس للمَعلم."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the square root of the parameter."
@@ -9097,15 +9041,15 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the tangent of the parameter."
-msgstr "يُرجع قيمة ظل الزاوية tangent للمَعلم."
+msgstr "يُرجع قيمة ظل الزاوية للمَعلم."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the hyperbolic tangent of the parameter."
-msgstr "يُرجع قيمة ظل الزاوية العكسي hyperbolic tangent للمَعلم."
+msgstr "يُرجع قيمة ظل الزاوية العكسي للمَعلم."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the truncated value of the parameter."
-msgstr "يجد قيمة الاقتطاع truncated للمَعلم."
+msgstr "يجد قيمة الاقتطاع للمَعلم."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Adds scalar to scalar."
@@ -9144,7 +9088,6 @@ msgid "Perform the texture lookup."
msgstr "إجراء البحث عن النقش."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Cubic texture uniform lookup."
msgstr "البحث عن النقش المكعبي الموحد."
@@ -9233,7 +9176,7 @@ msgstr "فكّ تركيب المُتجه إلى ثلاث كميات قياسية
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the cross product of two vectors."
-msgstr "حساب المنتوج الوسيط للمُتجهين."
+msgstr "حساب حاصل الضرب الاتجاهي لمتجهين."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the distance between two points."
@@ -9356,7 +9299,7 @@ msgstr "جداء (مضاعفة) مُتجه بمُتجه."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the remainder of the two vectors."
-msgstr "يُرجع باقي كل من المُتجهين (الشعاعين)."
+msgstr "يُرجع باقي قسمة كل من المُتجهين (الشعاعين)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Subtracts vector from vector."
@@ -9367,9 +9310,8 @@ msgid "Vector constant."
msgstr "ثابت المُتجه."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Vector uniform."
-msgstr "التعين للإنتظام."
+msgstr "مُتجهات موحدة."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9950,6 +9892,7 @@ msgstr ""
"هل أنت متأكد من فحص %s من المجلدات بحثاً عن مشاريع غودوت متوافرة؟\n"
"قد يستغرق وقتاً."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "مدير المشروع"
@@ -10029,7 +9972,7 @@ msgid ""
"Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'"
msgstr ""
-"اسم فعالية غير صحيح. لا يمكن أن يكون فارغاً أو يتضمن '/'، ':'، '='، '\\' أو "
+"اسم فعالية غير صحيح. لا يمكن أن يكون فارغاً أو يتضمن '/'، ':'، '='، '\\' أو "
"'\"'"
#: editor/project_settings_editor.cpp
@@ -10189,9 +10132,8 @@ msgid "Settings saved OK."
msgstr "تيسّر حفظ الإعدادات."
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Moved Input Action Event"
-msgstr "حرك النقطة داخل المنحنى"
+msgstr "حدث إجراء إدخال الذي تم نقله"
#: editor/project_settings_editor.cpp
msgid "Override for Feature"
@@ -10386,16 +10328,22 @@ msgid "Select Method"
msgstr "إختر طريقة"
#: editor/rename_dialog.cpp editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Batch Rename"
-msgstr "إعادة التسمية"
+msgstr "إعادة تسمية الدفعة"
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "إستبدال: "
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Prefix:"
msgstr "بادئة"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "لاحقة"
#: editor/rename_dialog.cpp
@@ -10411,9 +10359,8 @@ msgid "Substitute"
msgstr "استبدال"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Node name"
-msgstr "إسم العقدة:"
+msgstr "إسم العقدة"
#: editor/rename_dialog.cpp
msgid "Node's parent name, if available"
@@ -10444,7 +10391,8 @@ msgid "Per-level Counter"
msgstr "العداد وفق-المستوى"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "إذا تم تحديده فإن العداد سيعيد البدء لكل مجموعة من العُقد الأبناء"
#: editor/rename_dialog.cpp
@@ -10452,9 +10400,8 @@ msgid "Initial value for the counter"
msgstr "القيمة المبدئية للعداد"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Step"
-msgstr "خطوة (ثانية):"
+msgstr "الخطوة"
#: editor/rename_dialog.cpp
msgid "Amount by which counter is incremented for each node"
@@ -10501,12 +10448,12 @@ msgid "To Uppercase"
msgstr "لأحرف كبيرة Uppercase"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Reset"
-msgstr "إرجاع التكبير"
+msgstr "إعادة تعيين"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "خطأ ذو علاقة بالتعبير الاعتيادي Regular Expression"
#: editor/rename_dialog.cpp
@@ -10576,9 +10523,8 @@ msgid "Instance Child Scene"
msgstr "نمذجة المشهد الابن"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach Script"
-msgstr "إلحاق نص برمجي"
+msgstr "فصل النص البرمجي"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10611,14 +10557,16 @@ msgid "Instantiated scenes can't become root"
msgstr "لا يمكن أن تصبح المشاهد المنمذجة مشاهد رئيسة (جذر)"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Make node as Root"
-msgstr "حفظ المشهد"
+msgstr "جعل العقدة المشهد الرئيس"
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "حذف العُقدة %d مع جميع أبنائها؟"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete %d nodes?"
-msgstr "إنشاء عقدة"
+msgstr "حذف العُقد %d؟"
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
@@ -10629,9 +10577,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr "حذف العُقدة \"%s\" مع جميع أبنائها؟"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "إنشاء عقدة"
+msgstr "حذف العقدة \"%s\"؟"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -10687,9 +10634,8 @@ msgid "User Interface"
msgstr "واجهة المستخدم"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Other Node"
-msgstr "إنشاء عقدة"
+msgstr "عقدة أخرى"
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes from a foreign scene!"
@@ -10742,9 +10688,8 @@ msgid "Load As Placeholder"
msgstr "تحميله كعنصر نائب"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Open Documentation"
-msgstr "فُتح مؤخراً"
+msgstr "فتح الوثائق"
#: editor/scene_tree_dock.cpp
msgid ""
@@ -10752,29 +10697,28 @@ msgid ""
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
+"لا يمكن إرفاق نص برمجي: لا توجد لغات مسجلة.\n"
+"ربما يكون هذا بسبب أن المحرر تم إنشاؤه مع تعطيل جميع وحدات اللغة."
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
msgstr "إضافة عُقدة ابن"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Expand/Collapse All"
-msgstr "طوي الكل"
+msgstr "توسيع / طي الكل"
#: editor/scene_tree_dock.cpp
msgid "Change Type"
msgstr "تغيير النوع"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Reparent to New Node"
-msgstr "إنشاء %s جديد"
+msgstr "تعين لعقدة جديدة"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Make Scene Root"
-msgstr "حفظ المشهد"
+msgstr "جعل المشهد الرئيس"
#: editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -10793,9 +10737,8 @@ msgid "Delete (No Confirm)"
msgstr "حذف (دون تأكيد)"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Add/Create a New Node."
-msgstr "إنشاء %s جديد"
+msgstr "إضافة/إنشاء عقدة جديدة."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -10806,14 +10749,12 @@ msgstr ""
"موروث."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script to the selected node."
msgstr "إلحاق نص برمجي موجود أو جديد للعُقدة المختارة."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach the script from the selected node."
-msgstr "مسح النص البرمجي للعُقدة المختارة."
+msgstr "فصل النص البرمجي من العُقدة المختارة."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -10828,24 +10769,20 @@ msgid "Clear Inheritance? (No Undo!)"
msgstr "مسح الموروث؟ (لا تراجع!)"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Toggle Visible"
-msgstr "أظهر الملفات المخفية"
+msgstr "تشغيل/إطفاء الوضوحية"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Unlock Node"
-msgstr "عقدة اللقطة الواحدة"
+msgstr "إلغاء تأمين العقدة"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Button Group"
-msgstr "إضافة إلي مجموعة"
+msgstr "مجموعة الأزرار"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "(Connecting From)"
-msgstr "خطأ في الإتصال"
+msgstr "(الإتصال من)"
#: editor/scene_tree_editor.cpp
msgid "Node configuration warning:"
@@ -10940,23 +10877,20 @@ msgid "Path is not local."
msgstr "المسار ليس محلياً."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid base path."
msgstr "مسار غير صالح."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "A directory with the same name exists."
-msgstr "ملف أو مجلد مع هذا الأسم موجود بالفعل."
+msgstr "يوجد ملف/مجلد بنفس الاسم."
#: editor/script_create_dialog.cpp
msgid "File does not exist."
msgstr "الملف غير موجود."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid extension."
-msgstr "يجب أن يستخدم صيغة صحيحة."
+msgstr "صيغة غير صالحة."
#: editor/script_create_dialog.cpp
msgid "Wrong extension chosen."
@@ -11007,33 +10941,28 @@ msgid "Invalid inherited parent name or path."
msgstr "إن اسم أو مسار الأب (الأصل parent) الموروث غير صالح."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Script path/name is valid."
-msgstr "شجرة الحركة صحيحة."
+msgstr "مسار/اسم البرنامج النصي صالح."
#: editor/script_create_dialog.cpp
msgid "Allowed: a-z, A-Z, 0-9, _ and ."
-msgstr "المسموح: a-z، A-Z ، 0-9 ، _ و ."
+msgstr "المسموح: a-z، A-Z ، 0-9 ، _ و ."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Built-in script (into scene file)."
-msgstr "عمليات مع ملفات المشهد."
+msgstr "نص برمجي مدموج (داخل ملف المشهد)."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Will create a new script file."
-msgstr "إنشاء ملف كود جديد"
+msgstr "سيتم إنشاء ملف برمجي جديد."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Will load an existing script file."
-msgstr "تحميل نسق بيوس موجود مسبقاً."
+msgstr "سيتم تحميل ملف برمجي موجود مسبقاً."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Script file already exists."
-msgstr "التحميل التلقائي '%s' موجود اصلا!"
+msgstr "الملف البرمجي موجود بالفعل."
#: editor/script_create_dialog.cpp
msgid ""
@@ -11044,19 +10973,16 @@ msgstr ""
"تعديلها باستخدام مُحرر خارجي."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Class Name:"
-msgstr "إسم صنف"
+msgstr "اسم الفئة:"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Template:"
-msgstr "مسح القالب"
+msgstr "القالب:"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Built-in Script:"
-msgstr "فتح الكود"
+msgstr "ملف النص المُدمج:"
#: editor/script_create_dialog.cpp
msgid "Attach Node Script"
@@ -11071,39 +10997,32 @@ msgid "Bytes:"
msgstr "Bytes:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Warning:"
-msgstr "تحذيرات"
+msgstr "تحذير:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Error:"
-msgstr "خطأ!"
+msgstr "خطأ:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Error"
-msgstr "خطأ في نسخ"
+msgstr "خطأ في C++"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Error:"
-msgstr "خطأ في نسخ"
+msgstr "خطأ C++ :"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Source"
-msgstr "مورد"
+msgstr "مصدر C++"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Source:"
-msgstr "مورد"
+msgstr "مصدر:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Source:"
-msgstr "مورد"
+msgstr "مصدر C++:"
#: editor/script_editor_debugger.cpp
msgid "Stack Trace"
@@ -11114,9 +11033,8 @@ msgid "Errors"
msgstr "أخطاء"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Child process connected."
-msgstr "غير متصل"
+msgstr "العملية التابعة متصلة."
#: editor/script_editor_debugger.cpp
msgid "Copy Error"
@@ -11124,12 +11042,11 @@ msgstr "خطأ في نسخ"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
-msgstr "ذاكرة الفيديو Video RAM"
+msgstr "الذاكرة العشوائية للفيديو"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Skip Breakpoints"
-msgstr "مسح النقاط"
+msgstr "تخطي نقاط التكسّر"
#: editor/script_editor_debugger.cpp
msgid "Inspect Previous Instance"
@@ -11176,9 +11093,8 @@ msgid "Total:"
msgstr "المجموع الكلي:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Export list to a CSV file"
-msgstr "تصدير الملف"
+msgstr "تصدير القائمة إلى ملف CSV"
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
@@ -11221,18 +11137,16 @@ msgid "Export measures as CSV"
msgstr "تصدير القياسات ك CSV"
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Erase Shortcut"
-msgstr "تخفيف للخارج"
+msgstr "حذف الاختصار"
#: editor/settings_config_dialog.cpp
msgid "Restore Shortcut"
msgstr "إعادة تعيين الاختصارات"
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Change Shortcut"
-msgstr "تغيير المرتكزات"
+msgstr "تغيير الاختصارات"
#: editor/settings_config_dialog.cpp
msgid "Editor Settings"
@@ -11304,19 +11218,16 @@ msgid "Change Ray Shape Length"
msgstr "تعديل طول الشكل الشعاعي"
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Radius"
-msgstr "تغيير وقت الدمج"
+msgstr "تغيير نصف قطر الاسطوانة"
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Height"
-msgstr "تغيير وقت الدمج"
+msgstr "تغيير ارتفاع الاسطوانة"
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Torus Inner Radius"
-msgstr "تغيير المرتكزات و الهوامش"
+msgstr "تغيير نصف قطر الدائرة الداخلي"
#: modules/csg/csg_gizmos.cpp
msgid "Change Torus Outer Radius"
@@ -11360,12 +11271,11 @@ msgstr "مكتبة GDNativeLibrary"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Enabled GDNative Singleton"
-msgstr "تمكين نمط البرمجة Singleton لِ GDNative"
+msgstr "تمكين نمط البرمجة Singleton لـ GDNative"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
-#, fuzzy
msgid "Disabled GDNative Singleton"
-msgstr "تعطيل دوار التحديث"
+msgstr "تعطيل نمط البرمجة Singleton لـ GDNative"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
@@ -11380,17 +11290,16 @@ msgid "GDNative"
msgstr "GDNative"
#: modules/gdscript/gdscript_functions.cpp
-#, fuzzy
msgid "Step argument is zero!"
-msgstr "الخطوة (المتغيرة المدخلة/argument) تساوي صفر !"
+msgstr "معامل الخطوة تساوي صفر!"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not a script with an instance"
-msgstr "ليس كود مع نموذج"
+msgstr "ليس نص برمجي مع نموذج"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not based on a script"
-msgstr "لا تستند الى شفرة مصدرية"
+msgstr "لا تستند الى نص برمجي"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not based on a resource file"
@@ -11398,42 +11307,35 @@ msgstr "لا تستند على ملف مورد"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (missing @path)"
-msgstr ""
-"instance dictionary format نموذج الشكل القاموسي غير صالح - المسار مفقود"
+msgstr "نموذج الشكل القاموسي غير صالح (@المسار مفقود)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (can't load script at @path)"
-msgstr ""
-"instance dictionary format نموذج الشكل القاموسي غير صالح - لا يمكن تحميل "
-"السكريبت من المسار"
+msgstr "نموذج الشكل القاموسي غير صالح (لا يمكن تحميل النص البرمجي من @المسار)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr ""
-"instance dictionary format نموذج الشكل القاموسي غير صالح - السكريبت في "
-"المسار غير صالح"
+msgstr "نموذج الشكل القاموسي غير صالح ( النص البرمجي غير صالح في @المسار)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary (invalid subclasses)"
-msgstr "مجسّد القاموس غير صالح (أصناف فرعية غير صالحة)"
+msgstr "نموذج القاموس غير صالح (أصناف فرعية غير صالحة)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Object can't provide a length."
-msgstr "لا يمكن للكائن Object أن يمنح طولاً."
+msgstr "لا يمكن للكائن أن يمنح طولاً."
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Next Plane"
msgstr "التبويب التالي"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Previous Plane"
msgstr "التبويب السابق"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Plane:"
-msgstr "المستوى:"
+msgstr "التبويت:"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Floor"
@@ -11452,14 +11354,12 @@ msgid "GridMap Delete Selection"
msgstr "خريطة الشبكة GridMap لحذف المُختار"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Fill Selection"
-msgstr "كُل المُحدد"
+msgstr "تحديد الملئ خريطة-الشبكة"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Paste Selection"
-msgstr "كُل المُحدد"
+msgstr "تحديد اللصق خريطة-الشبكة"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Paint"
@@ -11526,9 +11426,8 @@ msgid "Cursor Clear Rotation"
msgstr "مسح تدوير المؤشر"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Paste Selects"
-msgstr "كُل المُحدد"
+msgstr "تحديد اللصق"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clear Selection"
@@ -11547,9 +11446,8 @@ msgid "Pick Distance:"
msgstr "اختر المسافة:"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Filter meshes"
-msgstr "وضع المُصفي:"
+msgstr "تنقية المجسمات"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
@@ -11656,7 +11554,7 @@ msgstr "عثر على تسلسل بت ولكن ليس العقدة في المك
#: modules/visual_script/visual_script.cpp
msgid "Stack overflow with stack depth: "
-msgstr ""
+msgstr "حدوث تجاوز للتكدس ( Stack overflow) مع عمق التكدس: "
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Signal Arguments"
@@ -11679,42 +11577,36 @@ msgid "Set Variable Type"
msgstr "تحيد نوع المتغير"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Input Port"
-msgstr "أضف مدخله"
+msgstr "أضف منفذ أدخال"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Output Port"
-msgstr "أضف مدخله"
+msgstr "أضف منفذ إخراج"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Override an existing built-in function."
-msgstr "إسم غير صالح، يجب أن لا يتصادم مع الأسماء المبنية تلقائياً الموجودة."
+msgstr "تجاوز لدالة مُدمجة موجودة مسبقًا."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new function."
-msgstr "إنشاء %s جديد"
+msgstr "إنشاء دالة جديدة."
#: modules/visual_script/visual_script_editor.cpp
msgid "Variables:"
msgstr "المتغيرات:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new variable."
-msgstr "إنشاء %s جديد"
+msgstr "إنشاء متغير جديد."
#: modules/visual_script/visual_script_editor.cpp
msgid "Signals:"
msgstr "الإشارات:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new signal."
-msgstr "أنشئ شكل جديد من لا شئ."
+msgstr "إنشاء إشارة جديدة."
#: modules/visual_script/visual_script_editor.cpp
msgid "Name is not a valid identifier:"
@@ -11741,9 +11633,8 @@ msgid "Add Function"
msgstr "إضافة وظيفة برمجية"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Delete input port"
-msgstr "مسح النقطة"
+msgstr "مسح منفذ إدخال"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Variable"
@@ -11754,14 +11645,12 @@ msgid "Add Signal"
msgstr "إضافة إشارة"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Input Port"
-msgstr "مسح النقطة"
+msgstr "حذف منفذ إدخال"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Output Port"
-msgstr "مسح النقطة"
+msgstr "حذف منفذ إخراج"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Expression"
@@ -11845,19 +11734,16 @@ msgid "Connect Nodes"
msgstr "وصل العُقد"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Disconnect Nodes"
-msgstr "غير متصل"
+msgstr "عُقد غير متصلة"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Data"
-msgstr "صلها بالعقدة:"
+msgstr "ربط بيانات العقدة"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Sequence"
-msgstr "صلها بالعقدة:"
+msgstr "ربط تسلسل العقدة"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
@@ -11868,9 +11754,8 @@ msgid "Change Input Value"
msgstr "تعديل قيمة الإدخال"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Resize Comment"
-msgstr "تعديل العنصر القماشي"
+msgstr "تغيير حجم التعليق"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
@@ -11902,9 +11787,8 @@ msgid "Try to only have one sequence input in selection."
msgstr "حاول أن يكون لديك تسلسل إدخال واحد من المُختار."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create Function"
-msgstr "عمل اشتراك"
+msgstr "إنشاء دالة"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
@@ -11927,33 +11811,28 @@ msgid "Editing Signal:"
msgstr "تحرير الإشارة:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Tool:"
-msgstr "أنشئ عظام"
+msgstr "عمل أداة:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Members:"
msgstr "الأعضاء:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Base Type:"
-msgstr "غير نوع %s"
+msgstr "تغيير اساس النوع:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Nodes..."
-msgstr "إضافة %s..."
+msgstr "إضافة عُقد..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function..."
-msgstr "مسح المهمة"
+msgstr "إضافة دالة…"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "function_name"
-msgstr "الإعدادات:"
+msgstr "أسم_الدالة"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit its graph."
@@ -11976,19 +11855,16 @@ msgid "Cut Nodes"
msgstr "قص العُقد"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Function"
-msgstr "مسح المهمة"
+msgstr "عمل دالة"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Refresh Graph"
-msgstr "تحديث"
+msgstr "تحديث الرسم البياني"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Edit Member"
-msgstr "الأعضاء"
+msgstr "تعديل العضو"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
@@ -12036,7 +11912,7 @@ msgstr "لم يتم إيجاد (مُحدد المُتغير) VariableSet في ا
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
-msgstr "العقدة المخصصة لا تحتوي طريقة ()step_ ، لا يمكن معالجة المخطوط."
+msgstr "العقدة المخصصة لا تحتوي طريقة ()step_ ، لا يمكن معالجة الشكل البياني."
#: modules/visual_script/visual_script_nodes.cpp
msgid ""
@@ -12047,9 +11923,8 @@ msgstr ""
"(خطأ)."
#: modules/visual_script/visual_script_property_selector.cpp
-#, fuzzy
msgid "Search VisualScript"
-msgstr "إخلاء الكود"
+msgstr "بحث VisualScript"
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Get %s"
@@ -12104,11 +11979,8 @@ msgstr ""
"الموضوعة سلفاً."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Release keystore incorrectly configured in the export preset."
-msgstr ""
-"مُنقح أخطاء مفتاح المتجر keystore غير مُهيئ في إعدادت المُحرر أو في الإعدادات "
-"الموضوعة سلفاً."
+msgstr "تحرر مخزن المفاتيح غير مُهيئ بشكل صحيح في إعدادت المسبقة للتصدير."
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
@@ -12140,26 +12012,34 @@ msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
+"وحدة \"GodotPaymentV3\" المضمنة في إعدادات المشروع \"android / modules\" غير "
+"صالحة (تم تغييره في Godot 3.2.2).\n"
#: platform/android/export/export.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
-msgstr ""
+msgstr "يجب تفعيل \"Use Custom Build\" لإستخدام الإضافات."
#: platform/android/export/export.cpp
msgid ""
"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
"\"."
msgstr ""
+"\"Degrees Of Freedom\" تكون صالحة فقط عندما يكون وضع الـ \"Xr Mode\"هو "
+"\"Oculus Mobile VR\"."
#: platform/android/export/export.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"\"Hand Tracking\" تكون صالحة فقط عندما يكون وضع الـ \"Xr Mode\"هو \"Oculus "
+"Mobile VR\"."
#: platform/android/export/export.cpp
msgid ""
"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"\"Focus Awareness\" تكون صالحة فقط عندما يكون وضع الـ \"Xr Mode\"هو \"Oculus "
+"Mobile VR\"."
#: platform/android/export/export.cpp
msgid ""
@@ -12308,13 +12188,12 @@ msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr "أبعاد شاشة البداية غير صالحة (ينبغي أن تكون 620×300)."
#: scene/2d/animated_sprite.cpp
-#, fuzzy
msgid ""
"A SpriteFrames resource must be created or set in the \"Frames\" property in "
"order for AnimatedSprite to display frames."
msgstr ""
-"ليتم إظهار الأطر (اللقطات) في الAnimatedSprite (النقوش المتحركة), يجب تكوين "
-"مصدر لها من نوع SpriteFrames و ضبط خاصية الFrames (الأطر) بها."
+"ليتم إظهار الإطارات في الAnimatedSprite (النقوش المتحركة), يجب تكوين مصدر "
+"لها من نوع SpriteFrames و ضبط خاصية الFrames (الأطر) بها."
#: scene/2d/canvas_modulate.cpp
msgid ""
@@ -12350,7 +12229,9 @@ msgstr ""
#: scene/2d/collision_polygon_2d.cpp
msgid "An empty CollisionPolygon2D has no effect on collision."
-msgstr "مُضلع تصادم ثنائي الأبعاد فارغ ليس له أي تأثير على التصادم."
+msgstr ""
+"مُضلع تصادم ثنائي الأبعاد (CollisionPolygon2D) الفارغ ليس له أي تأثير على "
+"التصادم."
#: scene/2d/collision_shape_2d.cpp
msgid ""
@@ -12358,26 +12239,37 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
-"يعمل مُضلع التصادم ثنائي الأبعاد CollisionPolygon2D فقط كشكل تصادمي لكل العُقد "
-"المشتقة من الكائن التصادمي ثنائي الأبعاد CollisionObject2D. من فضلك استخدمه "
-"فقط لكل أبناء الحيز ثنائي الأبعاد Area2D، الجسم السكوني ثنائي الأبعاد "
-"StaticBody2D و الجسم الجامد ثنائي الأبعاد RigidBody2D، والجسم المتحرك ثنائي "
-"الأبعاد KinematicBody2D إلخ.. لكي تمنح كل منهم شكلاً."
+"يعمل جسم-تصادم-ثنائي-البُعد (CollisionPolygon2D) فقط كشكل تصادمي لكل العُقد "
+"المشتقة من الكائن التصادمي ثنائي الأبعاد (CollisionObject2D). من فضلك "
+"استخدمه فقط لكل أبناء الحيز-ثنائي-البُعد (Area2D)، الجسم-الثابت-ثنائي-البُعد "
+"(StaticBody2D) و الجسم-الصلب-ثنائي-البُعد (RigidBody2D)، والجسم-المتحرك-ثنائي-"
+"البُعد (KinematicBody2D) إلخ.. لكي تمنح كل منهم شكلاً."
#: scene/2d/collision_shape_2d.cpp
msgid ""
"A shape must be provided for CollisionShape2D to function. Please create a "
"shape resource for it!"
msgstr ""
-"يجب تزويد ال CollisionShape2D بإحدى الأشكال (من نوع Shape2D) لتعمل بالشكل "
-"المطلوب. الرجاء تكوين و ضبط الشكل لها اولا!"
+"يجب تزويد جسم-تصادم-ثنائي-البُعد (CollisionShape2D) بإحدى الأشكال (من نوع "
+"Shape2D) لتعمل بالشكل المطلوب. الرجاء تكوين و ضبط الشكل لها اولا!"
+
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"الأشكال المستندة إلى المضلع (Polygon-based shapes) لا تعني انك قادر على "
+"استخدامها او تعديلها بشكل مباشر من خلال عقدة جسم-تصادم-ثنائي-البُعد "
+"(CollisionShape2D). الرجاء استخدام عقدة مضلع-تصادم-ثنائي-البُعد "
+"(CollisionPolygon2D) بدلاً من ذلك."
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
-"تتطلب الرسوم المتحركة CPUParticles2D استخدام CanvasItemMaterial مع تمكين "
+"تتطلب الرسوم المتحركة للجسيمات-وحدة-المعالجة-المركزية-ثنائية-الأبعاد "
+"(CPUParticles2D) استخدام لوحة-مادة-العنصر (CanvasItemMaterial) مع تفعيل"
"\"الرسوم المتحركة للجزيئات\"."
#: scene/2d/light_2d.cpp
@@ -12390,27 +12282,34 @@ msgstr "يجب توريد نقش بهيئة الضوء لخاصية \"النقش
msgid ""
"An occluder polygon must be set (or drawn) for this occluder to take effect."
msgstr ""
+"المُضلع المُغلق(occluder polygon) يجب تعينه (او رسمه) ليأخذ هذا الغَلق تأثيره."
#: scene/2d/light_occluder_2d.cpp
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
-msgstr ""
+msgstr "المُضلع المُغلق لهذا الغَلق فارغ. الرجاء رسم مُضلع."
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
"Please set a property or draw a polygon."
msgstr ""
+"يجب تعيين مصدر مُضلع-التنقل (NavigationPolygon) أو إنشاؤه حتى تعمل هذه "
+"العقدة. يُرجى تعيين خاصية أو رسم مضلع."
#: scene/2d/navigation_polygon.cpp
msgid ""
"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
"node. It only provides navigation data."
msgstr ""
+"يجب أن يكون نموذج-المضلع-المتنقل (NavigationPolygonInstance) تابعًا أو حفيدًا "
+"لعقدة التنقل-ثنائي-الأبعاد (Navigation2D). انه فقط يوفر بيانات التنقل."
#: scene/2d/parallax_layer.cpp
msgid ""
"ParallaxLayer node only works when set as child of a ParallaxBackground node."
msgstr ""
+"تعمل عقدة طبقة-المنظهر (ParallaxLayer) فقط عند تعيينها كعقدة تابعة لعقدة "
+"خلفية-المنظر ParallaxBackground."
#: scene/2d/particles_2d.cpp
msgid ""
@@ -12418,22 +12317,31 @@ msgid ""
"Use the CPUParticles2D node instead. You can use the \"Convert to "
"CPUParticles\" option for this purpose."
msgstr ""
+"لا يدعم برنامج تشغيل الفيديو GLES2 الجسيمات القائمة على وحدة معالجة الرسومات "
+"(GPU-based particles).\n"
+"استخدم عقدة جسيمات-وحدة-المعالجة-المركزية-ثنائية-البُعد (CPUParticles2D) بدلاً "
+"من ذلك. يمكنك استخدام خيار \"التحويل إلى CPUParticles\" لهذا الغرض."
#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
msgid ""
"A material to process the particles is not assigned, so no behavior is "
"imprinted."
msgstr ""
+"لا يوجد مادة (material) لمعالجة الجسيمات ، لذلك لا يتم طبع او عمل أي سلوك."
#: scene/2d/particles_2d.cpp
msgid ""
"Particles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
+"تتطلب الرسوم المتحركة للجسيمات-ثنائية-البُعد (Particles2D) استخدام لوحة-مادة-"
+"العنصر (CanvasItemMaterial) مع تمكين \"الرسوم المتحركة للجسيمات\"."
#: scene/2d/path_2d.cpp
msgid "PathFollow2D only works when set as a child of a Path2D node."
msgstr ""
+"لا يعمل اتباع-المسار-ثنائي-البُعد (PathFollow2D) إلا عند جعل عقدة مسار-ثنائي-"
+"البُعد (Path2D) تابعًا له."
#: scene/2d/physics_body_2d.cpp
msgid ""
@@ -12441,10 +12349,14 @@ msgid ""
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"تغييرات الحجم للجسم-صلب-ثنائي-البُعد (RigidBody2D) (في أوضاع الشخصيات أو "
+"الأوضاع الصلبة) سيتم تجاوزها بواسطة محرك الفيزياء عند التشغيل.\n"
+"قم بتغيير الحجم في أشكال تصادم التابعين له بدلاً من ذلك."
#: scene/2d/remote_transform_2d.cpp
msgid "Path property must point to a valid Node2D node to work."
msgstr ""
+"يجب أن تشير خاصية المسار إلى عُقدة-ثنائية-البُعد (Node2D) صالحة لكي تعمل."
#: scene/2d/skeleton_2d.cpp
msgid "This Bone2D chain should end at a Skeleton2D node."
@@ -12455,11 +12367,15 @@ msgstr ""
#: scene/2d/skeleton_2d.cpp
msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node."
msgstr ""
+"يعمل عظم-ثنائي-البُعد (Bone2D) فقط مع هيكلية-ثنائية-البُعد (Skeleton2D) أو "
+"Bone2D آخر كعقدة رئيسية."
#: scene/2d/skeleton_2d.cpp
msgid ""
"This bone lacks a proper REST pose. Go to the Skeleton2D node and set one."
msgstr ""
+"هذا العظم يفتقر إلى وضع الراحة المناسب. انتقل إلى عقدة هيكلية ثنائية "
+"البُعد(Skeleton2D) وقم بتعيين واحدة."
#: scene/2d/tile_map.cpp
msgid ""
@@ -12467,40 +12383,56 @@ msgid ""
"to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, "
"KinematicBody2D, etc. to give them a shape."
msgstr ""
+"يحتاج خريطة-البلاط (TileMap) مع تفعيل خاصية إستخدام الأصل (Use Parent) إلى "
+"ان يكون تابعًا لكائن-تصادمي-ثنائي-البُعد (CollisionObject2D) لإعطاء الأشكال. "
+"يرجى استخدامه كتابع لحيز-ثنائي-البُعد(ِArea2D)، جسم-ثابت-ثنائي-البُعد "
+"(StaticBody2D)، جسم-صلب-ثنائي-البُعد (RigidBody2D)، أو جسم-متحرك-ثنائي-البُعد "
+"(KinematicBody2D)، وما إلى ذلك لمنحهم شكلاً."
#: scene/2d/visibility_notifier_2d.cpp
msgid ""
"VisibilityEnabler2D works best when used with the edited scene root directly "
"as parent."
msgstr ""
+"يعمل مُمَكِن-الرؤية-ثنائي-البُعد (VisibilityEnabler2D) بشكل أفضل عند استخدامه مع "
+"المشهد الرئيس الذي تم تحريره مباشرةً باعتباره الأصل."
#: scene/3d/arvr_nodes.cpp
msgid "ARVRCamera must have an ARVROrigin node as its parent."
-msgstr ""
+msgstr "يجب أن تحتوي ARVRCamera على عقدة ARVROrigin كأصل لها."
#: scene/3d/arvr_nodes.cpp
msgid "ARVRController must have an ARVROrigin node as its parent."
-msgstr ""
+msgstr "يجب أن تحتوي ARVRController على عقدة ARVROrigin كأصل لها."
#: scene/3d/arvr_nodes.cpp
msgid ""
"The controller ID must not be 0 or this controller won't be bound to an "
"actual controller."
msgstr ""
+"يجب ألا يكون معرف وحدة التحكم تساوي 0 أو لن تكون وحدة التحكم هذه مقيدة بوحدة "
+"تحكم فعلية."
#: scene/3d/arvr_nodes.cpp
msgid "ARVRAnchor must have an ARVROrigin node as its parent."
-msgstr ""
+msgstr "يجب أن يحتوي ARVRController على عقدة ARVROrigin كأصل له."
#: scene/3d/arvr_nodes.cpp
msgid ""
"The anchor ID must not be 0 or this anchor won't be bound to an actual "
"anchor."
msgstr ""
+"يجب ألا يكون معرف الإرتكاز (The anchor) يساوي 0 أو لن يكون هذا الإرتكاز مقيد "
+"بإرتكاز فِعلي."
#: scene/3d/arvr_nodes.cpp
msgid "ARVROrigin requires an ARVRCamera child node."
msgstr ""
+"يحتاج خريطة-البلاط (TileMap) مع تفعيل خاصية إستخدام الأصل (Use Parent) إلى "
+"ان يكون تابعًا لكائن-تصادمي-ثنائي-البُعد (CollisionObject2D) لإعطاء الأشكال. "
+"يرجى استخدامه كتابع لحيز-ثنائي-البُعد(ِArea2D)، جسم-ثابت-ثنائي-البُعد "
+"(StaticBody2D)، جسم-صلب-ثنائي-البُعد (RigidBody2D)، أو جسم-متحرك-ثنائي-البُعد "
+"(KinematicBody2D)، وما إلى ذلك لمنحهم شكلاً."
#: scene/3d/baked_lightmap.cpp
msgid "%d%%"
@@ -12512,19 +12444,19 @@ msgstr "(الوقت المتبقي: %d:%02d ثانية)"
#: scene/3d/baked_lightmap.cpp
msgid "Plotting Meshes: "
-msgstr ""
+msgstr "تخطيط المجسمات: "
#: scene/3d/baked_lightmap.cpp
msgid "Plotting Lights:"
-msgstr ""
+msgstr "تخطيط الإضاءات:"
#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
msgid "Finishing Plot"
-msgstr ""
+msgstr "الانتهاء من التخطيط"
#: scene/3d/baked_lightmap.cpp
msgid "Lighting Meshes: "
-msgstr ""
+msgstr "إضاءة المجسمات: "
#: scene/3d/collision_object.cpp
msgid ""
@@ -12532,6 +12464,8 @@ msgid ""
"Consider adding a CollisionShape or CollisionPolygon as a child to define "
"its shape."
msgstr ""
+"هذه العقدة ليس لها شكل، لذلك لا يمكن أن تصطدم أو تتفاعل مع الكائنات الأخرى.\n"
+"ضع في الإعتبار إضافة شكل تصادم أو مضلع تصادم كتابع لتعريف شكله."
#: scene/3d/collision_polygon.cpp
msgid ""
@@ -12539,6 +12473,10 @@ msgid ""
"CollisionObject derived node. Please only use it as a child of Area, "
"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
msgstr ""
+"يعمل مضلع التصادم (CollisionPolygon) فقط على توفير شكل تصادم لعقدة كائن "
+"التصادم (CollisionObject) المشتقة. يُرجى استخدامه فقط كتابع لحيز (Area)، جسم "
+"ثابت (StaticBody)، جسم صلب (StaticBody)، أو جسم حركي (KinematicBody)، وما "
+"إلى ذلك لمنحهم شكلاً."
#: scene/3d/collision_polygon.cpp
msgid "An empty CollisionPolygon has no effect on collision."
@@ -12550,46 +12488,63 @@ msgid ""
"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
"KinematicBody, etc. to give them a shape."
msgstr ""
+"يعمل شكل التصادم (CollisionPolygon) فقط على توفير شكل تصادم لعقدة كائن "
+"التصادم (CollisionObject) المشتقة. يُرجى استخدامه فقط كتابع لحيز (Area)، جسم "
+"ثابت (StaticBody)، جسم صلب (StaticBody)، أو جسم حركي (KinematicBody)، وما "
+"إلى ذلك لمنحهم شكلاً."
#: scene/3d/collision_shape.cpp
-#, fuzzy
msgid ""
"A shape must be provided for CollisionShape to function. Please create a "
"shape resource for it."
msgstr ""
-"يجب تزويد ال CollisionShape2D بإحدى الأشكال (من نوع Shape2D) لتعمل بالشكل "
-"المطلوب. الرجاء تكوين و ضبط الشكل لها اولا!"
+"يجب توفير شكل لـ CollisionShape2D بإحدى الأشكال (من نوع Shape2D) لتعمل "
+"بالشكل المطلوب. الرجاء تكوين و ضبط الشكل لها."
#: scene/3d/collision_shape.cpp
msgid ""
"Plane shapes don't work well and will be removed in future versions. Please "
"don't use them."
msgstr ""
+"لا تعمل أشكال التبويت (Plane shapes) بشكل جيد وسيتم إزالتها في الإصدارات "
+"المستقبلية. من فضلك لا تستخدمها."
#: scene/3d/collision_shape.cpp
msgid ""
"ConcavePolygonShape doesn't support RigidBody in another mode than static."
msgstr ""
+"الشكل المضلع المُقعر (ConcavePolygonShape) لا يدعم الجسم الصلب (RigidBody) في "
+"أي وضع غير الوضع الثابت."
#: scene/3d/cpu_particles.cpp
msgid "Nothing is visible because no mesh has been assigned."
-msgstr ""
+msgstr "لا شيء مرئي لأنه لم يتم تعيين أي مجسم."
#: scene/3d/cpu_particles.cpp
msgid ""
"CPUParticles animation requires the usage of a SpatialMaterial whose "
"Billboard Mode is set to \"Particle Billboard\"."
msgstr ""
+"تتطلب الرسوم المتحركة لجسيمات وحدة المعالجة المركزية( CPUParticles) استخدام "
+"مادة مكانية (SpatialMaterial) التي تم ضبط وضع اللوحة (Billboard Mode) الخاص "
+"بها على \"لوحة الجسيمات\"."
#: scene/3d/gi_probe.cpp
msgid "Plotting Meshes"
-msgstr ""
+msgstr "تخطيط المجسمات"
#: scene/3d/gi_probe.cpp
msgid ""
"GIProbes are not supported by the GLES2 video driver.\n"
"Use a BakedLightmap instead."
msgstr ""
+"GIProbes لا يدعم برنامج تشغيل الفيديو GLES2.\n"
+"استخدم BakedLightmap بدلاً من ذلك."
+
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12598,12 +12553,15 @@ msgstr "بقعة الضوء بزاوية أكبر من 90 درجة لا يمكن
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
+"يجب تعيين مصدر مجسم-التنقل (NavigationMesh) أو إنشاؤه حتى تعمل هذه العقدة."
#: scene/3d/navigation_mesh.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+"يجب أن يكون نموذج-مجسم-التنقل (NavigationMeshInstance) تابعًا أو حفيدًا لعقدة "
+"التنقل (Navigation node). انه يوفر فقط بيانات التنقل."
#: scene/3d/particles.cpp
msgid ""
@@ -12611,17 +12569,23 @@ msgid ""
"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles"
"\" option for this purpose."
msgstr ""
+"الجسيمات القائمة على وحدة معالجة الرسومات (GPU-based particles) لا تدعم "
+"برنامج تشغيل الفيديو GLES2 .\n"
+"استخدم عقدة CPUParticles بدلاً من ذلك. يمكنك استخدام خيار \"التحويل إلى "
+"CPUParticles\" لهذا الغرض."
#: scene/3d/particles.cpp
msgid ""
"Nothing is visible because meshes have not been assigned to draw passes."
-msgstr ""
+msgstr "لا يوجد شيء مرئي لأن المجسمات لم يتم تعيين لها رسم التمريرات."
#: scene/3d/particles.cpp
msgid ""
"Particles animation requires the usage of a SpatialMaterial whose Billboard "
"Mode is set to \"Particle Billboard\"."
msgstr ""
+"تتطلب الرسوم المتحركة للجسيمات استخدام مادة مكانية (SpatialMaterial) التي تم "
+"ضبط وضع اللوحة (Billboard Mode) الخاص بها على \"لوحة الجسيمات\"."
#: scene/3d/path.cpp
msgid "PathFollow only works when set as a child of a Path node."
@@ -12632,6 +12596,8 @@ msgid ""
"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its "
"parent Path's Curve resource."
msgstr ""
+"يتطلب ROTATION_ORIENTED الخاص بأتباع-المسار (PathFollow) تمكين \"Up Vector\" "
+"في مصدر منحنى مسار الأصل (Parent Path's)."
#: scene/3d/physics_body.cpp
msgid ""
@@ -12639,16 +12605,21 @@ msgid ""
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"تغير حجم الجسم الصلب (RigidBody) (في الشخصية أو الأوضاع الصلبة) سيتم تجاوزها "
+"بواسطة محرك الفيزياء عند التشغيل.\n"
+"قم بتغيير الحجم في أشكال تصادم الأتباع (Children) بدلاً من ذلك."
#: scene/3d/remote_transform.cpp
msgid ""
"The \"Remote Path\" property must point to a valid Spatial or Spatial-"
"derived node to work."
msgstr ""
+"يجب أن تشير خاصية \"المسار البعيد\" إلى عقدة مكانية أو مشتقة مكانية صالحة "
+"لكي تعمل."
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
-msgstr "سيتم تجاهل هذا الجسم حتى تضع تحدد سطحاً mesh."
+msgstr "سيتم تجاهل هذا الجسم حتى تضع تحدد له مجسمًا."
#: scene/3d/soft_body.cpp
msgid ""
@@ -12656,42 +12627,52 @@ msgid ""
"running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"تغير حجم الجسم الناعم (SoftBody) سيتم تجاوزها بواسطة محرك الفيزياء عند "
+"التشغيل.\n"
+"قم بتغيير الحجم في أشكال تصادم الأتباع (Children) بدلاً من ذلك."
#: scene/3d/sprite_3d.cpp
-#, fuzzy
msgid ""
"A SpriteFrames resource must be created or set in the \"Frames\" property in "
"order for AnimatedSprite3D to display frames."
msgstr ""
-"ليتم إظهار الأطر (اللقطات) في الAnimatedSprite (النقوش المتحركة), يجب تكوين "
-"مصدر لها من نوع SpriteFrames و ضبط خاصية الFrames (الأطر) بها."
+"يجب إنشاء مصدر إطارات الرسم (SpriteFrames) أو تعيينه في خاصية \"الإطارات\" "
+"حتى يتمكن الرسوم المتحركة للرسم ثلاثي الُعد (AnimatedSprite3D) من عرض "
+"الإطارات."
#: scene/3d/vehicle_body.cpp
msgid ""
"VehicleWheel serves to provide a wheel system to a VehicleBody. Please use "
"it as a child of a VehicleBody."
msgstr ""
+"تعمل عجلة المركبة (VehicleWheel) على توفير نظام عجلات لجسم "
+"المركبة(VehicleBody). يرجى استخدامه كتابع لجسم المركبة."
#: scene/3d/world_environment.cpp
msgid ""
"WorldEnvironment requires its \"Environment\" property to contain an "
"Environment to have a visible effect."
msgstr ""
+"تتطلب بيئة-العالم (WorldEnvironment) خاصية\"البيئة\" الخاصة بها لاحتواء بيئة "
+"ليكون لها تأثير مرئي."
#: scene/3d/world_environment.cpp
msgid ""
"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
-msgstr ""
+msgstr "يُسمح فقط ببيئة عالمية واحدة لكل مشهد (أو مجموعة من المشاهد المتوافقة)."
#: scene/3d/world_environment.cpp
msgid ""
"This WorldEnvironment is ignored. Either add a Camera (for 3D scenes) or set "
"this environment's Background Mode to Canvas (for 2D scenes)."
msgstr ""
+"يتم تجاهل هذه البيئة العالمية. إما أن تضيف كاميرا (للمشاهد ثلاثية البُعد) أو "
+"اضبط وضع الخلفية لهذه البيئة على لوحة (Canvas) (للمشاهد ثنائية البُعد)."
#: scene/animation/animation_blend_tree.cpp
msgid "On BlendTree node '%s', animation not found: '%s'"
msgstr ""
+"في عقدة خليط-الشجرة (BlendTree) '%s'، لم يتم العثور على الرسوم المتحركة:'%s '"
#: scene/animation/animation_blend_tree.cpp
msgid "Animation not found: '%s'"
@@ -12768,12 +12749,18 @@ msgid ""
"children placement behavior.\n"
"If you don't intend to add a script, use a plain Control node instead."
msgstr ""
+"لا تخدم الحاوية في حد ذاتها أي غرض ما لم يقم النص البرمجي بتكوين سلوك وضع "
+"الأتباع الخاص به .\n"
+"إذا كنت لا تنوي إضافة نص برمجي ، فاستخدم عقدة تحكم عادية بدلاً من ذلك."
#: scene/gui/control.cpp
msgid ""
"The Hint Tooltip won't be displayed as the control's Mouse Filter is set to "
"\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"."
msgstr ""
+"لن يتم عرض أداة التلميح أثناء تعيين عامل تصفية الفأره الخاص بعنصر التحكم, تم "
+"وضعه على \"تجاهل\". لحل هذه المشكلة ، اضبط تصفية الفأره على \"إيقاف\" أو "
+"\"تمرير\"."
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -12789,10 +12776,13 @@ msgid ""
"functions. Making them visible for editing is fine, but they will hide upon "
"running."
msgstr ""
+"ستختفي النوافذ المنبثقة افتراضيًا ما لم تقم باستدعاء popup() أو أي من وظائف "
+"popup(). من الجيد جعلها مرئية للتحرير ، لكنها ستختفي عند التشغيل."
#: scene/gui/range.cpp
msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0."
msgstr ""
+"إذا تم تفعيل الـ\"Exp Edit\" يجب على ان يكون \"Min Value\" اعلى من صفر."
#: scene/gui/scroll_container.cpp
msgid ""
@@ -12800,6 +12790,9 @@ msgid ""
"Use a container as child (VBox, HBox, etc.), or a Control and set the custom "
"minimum size manually."
msgstr ""
+"تم تصميم ScrollContainer للعمل مع عنصر تحكم تابع واحد.\n"
+"استخدم حاوية كتابع (VBox ، HBox ، إلخ) ، أو عنصر تحكم واضبط الحد الأدنى "
+"المخصص للحجم يدويًا."
#: scene/gui/tree.cpp
msgid "(Other)"
@@ -12810,6 +12803,8 @@ msgid ""
"Default Environment as specified in Project Settings (Rendering -> "
"Environment -> Default Environment) could not be loaded."
msgstr ""
+"تعذر تحميل البيئة الافتراضية كما هو محدد في إعدادات المشروع (التقديم -> "
+"البيئة -> البيئة الافتراضية)."
#: scene/main/viewport.cpp
msgid ""
@@ -12818,6 +12813,9 @@ msgid ""
"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
"texture to some node for display."
msgstr ""
+"لم يتم تعيين منفذ العرض هذا كهدف عرض. إذا كنت تنوي عرض محتوياته مباشرة على "
+"الشاشة ، اجعله تابعًا لعنصر تحكم حتى يتمكن من الحصول على الحجم. خلاف ذلك ، "
+"اجعلها RenderTarget وقم بتعيين نسيجها الداخلي لبعض العقد لعرضها."
#: scene/main/viewport.cpp
msgid "Viewport size must be greater than 0 to render anything."
@@ -12851,6 +12849,19 @@ msgstr "يمكن تعيين المتغيرات فقط في الذروة ."
msgid "Constants cannot be modified."
msgstr "لا يمكن تعديل الثوابت."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "رصيف نظام الملفات و الاستيراد"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "حينما يتم التصدير أو النشر، ملف التشغيل الناتج سوف يحاول الإتصال إلي "
+#~ "عنوان الأي بي الخاص بهذا الكمبيوتر من أجل تصحيح الأخطاء."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "المشهد الحالي لم يتم حفظه. الرجاء حفظ المشهد قبل تشغيله و اختباره."
+
#~ msgid "Not in resource path."
#~ msgstr "ليس في مسار الموارد."
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index c9f38d518a..3bb60a79e0 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -8,12 +8,14 @@
# MaresPW <marespw206@gmail.com>, 2018.
# PakoSt <kokotekilata@gmail.com>, 2018, 2020.
# Damyan Dichev <mwshock2@gmail.com>, 2019.
+# Whod <whodizhod@gmail.com>, 2020.
+# Stoyan <stoyan.stoyanov99@protonmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-03-27 15:42+0000\n"
-"Last-Translator: PakoSt <kokotekilata@gmail.com>\n"
+"PO-Revision-Date: 2020-09-15 07:17+0000\n"
+"Last-Translator: Stoyan <stoyan.stoyanov99@protonmail.com>\n"
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/godot-engine/"
"godot/bg/>\n"
"Language: bg\n"
@@ -21,7 +23,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.0-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -103,7 +105,7 @@ msgstr "Свободно"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
-msgstr ""
+msgstr "Балансиран"
#: editor/animation_bezier_editor.cpp
msgid "Mirror"
@@ -192,11 +194,11 @@ msgstr "Промяна на продължителността на анимац
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "Промени анимационния цикъл"
#: editor/animation_track_editor.cpp
msgid "Property Track"
-msgstr ""
+msgstr "Път за промяна на свойството"
#: editor/animation_track_editor.cpp
msgid "3D Transform Track"
@@ -516,6 +518,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -643,9 +646,8 @@ msgid "Select All/None"
msgstr "Избиране на всичко/нищо"
#: editor/animation_track_editor_plugins.cpp
-#, fuzzy
msgid "Add Audio Track Clip"
-msgstr "Добавяне на нови пътечки."
+msgstr "Добавяне на аудио клип"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip Start Offset"
@@ -696,7 +698,7 @@ msgstr ""
msgid "Whole Words"
msgstr "Цели думи"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Замяна"
@@ -885,6 +887,11 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Поставяне на възелите"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -922,7 +929,7 @@ msgid "Recent:"
msgstr "Последни:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Търсене:"
@@ -1097,6 +1104,9 @@ msgstr "Основатели на проекта"
msgid "Lead Developer"
msgstr "Главен разработчик"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Ръководител на проекта "
@@ -1118,6 +1128,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1581,16 +1599,17 @@ msgid "Scene Tree Editing"
msgstr "Редактиране на дървото на сцената"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Панел за внасяне"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Панел за възлите"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr ""
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Показване във файловата система"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Панел за внасяне"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1852,7 +1871,7 @@ msgstr "Папки и файлове:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2262,11 +2281,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"Текущата сцена никога не е била запазена. Моля, запазете я преди изпълнение."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2683,22 +2697,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2707,8 +2725,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2717,32 +2735,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2802,7 +2820,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Търсене"
@@ -3204,7 +3222,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4244,9 +4263,8 @@ msgid "Anim Clips"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Audio Clips"
-msgstr "Добавяне на нови пътечки."
+msgstr "Аудио клипове"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Functions"
@@ -4407,9 +4425,8 @@ msgid "Onion Skinning Options"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Описание:"
+msgstr "Указания"
#: editor/plugins/animation_player_editor_plugin.cpp
#, fuzzy
@@ -4766,9 +4783,8 @@ msgid "Redirect loop."
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Request failed, timeout"
-msgstr "Заявката се провали, върнат код:"
+msgstr "Заявката е неуспешна, изчакването е неуспешно"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Timeout."
@@ -4815,9 +4831,8 @@ msgid "Idle"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Install..."
-msgstr "Инсталиране"
+msgstr "Инсталирате..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
@@ -4887,9 +4902,8 @@ msgid "Import..."
msgstr "Повторно внасяне..."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Plugins..."
-msgstr "Приставки"
+msgstr "Приставки ..."
#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
msgid "Sort:"
@@ -4905,9 +4919,8 @@ msgid "Site:"
msgstr "Уеб сайт:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Support"
-msgstr "Поддръжка..."
+msgstr "Поддръжка"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Official"
@@ -4948,7 +4961,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Преглед"
@@ -4973,9 +4986,8 @@ msgid "steps"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Rotation Offset:"
-msgstr "Изместване при Завъртане:"
+msgstr "Изместване на въртенето:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Step:"
@@ -7595,7 +7607,8 @@ msgid "New Animation"
msgstr "Нова анимация"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Скорост (кадри в секунда):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9648,6 +9661,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Управление на проектите"
@@ -10078,11 +10092,16 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Замяна: "
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10128,7 +10147,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10186,8 +10205,9 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
-msgstr ""
+#, fuzzy
+msgid "Regular Expression Error:"
+msgstr "Използване на регулярни изрази"
#: editor/rename_dialog.cpp
msgid "At character %s"
@@ -10293,6 +10313,11 @@ msgid "Make node as Root"
msgstr "Превръщане на възела в корен"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Изтриване на %d възела?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Изтриване на %d възела?"
@@ -11895,9 +11920,8 @@ msgid "Invalid package publisher display name."
msgstr "невалидно име на Група."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid product GUID."
-msgstr "Име:"
+msgstr "Невалиден продуктов GUID."
#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
@@ -11996,6 +12020,12 @@ msgstr ""
"За да работи CollisionShape2D, е нужно да му се даде форма. Моля, създайте "
"му Shape2D ресурс."
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12226,6 +12256,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12482,7 +12517,12 @@ msgstr ""
#: servers/visual/shader_language.cpp
msgid "Constants cannot be modified."
-msgstr ""
+msgstr "Константите не могат да бъдат променени."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Текущата сцена никога не е била запазена. Моля, запазете я преди "
+#~ "изпълнение."
#~ msgid "Not in resource path."
#~ msgstr "Не е в пътя на ресурсите."
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index c438934246..8415bb30bd 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -567,6 +567,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "এফ পি এস"
@@ -755,7 +756,7 @@ msgstr "অক্ষরের মাত্রা (বড়/ছোট-হাতে
msgid "Whole Words"
msgstr "সম্পূর্ণ শব্দ"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "প্রতিস্থাপন করুন"
@@ -964,6 +965,11 @@ msgid "Signals"
msgstr "সংকেতসমূহ"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "দ্রুত ফাইলসমূহ ফিল্টার করুন..."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -1006,7 +1012,7 @@ msgid "Recent:"
msgstr "সাম্প্রতিক:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "অনুসন্ধান করুন:"
@@ -1193,6 +1199,9 @@ msgstr "প্রজেক্ট ফাউন্ডার"
msgid "Lead Developer"
msgstr "মূল ডেভেলপার"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
#, fuzzy
msgid "Project Manager "
@@ -1215,6 +1224,16 @@ msgid "Gold Sponsors"
msgstr "গোল্ড স্পনসর"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "সিলভার ডোনার"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "ব্রোঞ্জ ডোনার"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "মিনি স্পনসর"
@@ -1715,21 +1734,21 @@ msgstr "দৃশ্যের শাখা (নোডসমূহ):"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "Import Dock"
-msgstr "ইম্পোর্ট"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
msgstr "মোড (Mode) সরান"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "ফাইলসিস্টেম"
#: editor/editor_feature_profile.cpp
#, fuzzy
+msgid "Import Dock"
+msgstr "ইম্পোর্ট"
+
+#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Erase profile '%s'? (no undo)"
msgstr "সমস্তগুলি প্রতিস্থাপন করুন"
@@ -2021,7 +2040,7 @@ msgstr "পথ এবং ফাইল:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "প্রিভিউ:"
@@ -2490,11 +2509,6 @@ msgid "There is no defined scene to run."
msgstr "চালানোর জন্য কোনো দৃশ্য নির্দিষ্ট করা নেই।"
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"বর্তমান দৃশ্যটি কখনোই সংরক্ষণ করা হয় নি, অনুগ্রহ করে চালানোর পূর্বে এটি সংরক্ষণ করুন।"
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "উপ-প্রক্রিয়াকে শুরু করা সম্ভব হয়নি!"
@@ -2962,24 +2976,28 @@ msgstr "দূরবর্তী ডিবাগের সহিত ডিপ্
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"এক্সপোর্ট (Export) বা ডিপ্লয় (Deploy)-এর সময় প্রস্তুতকৃত এক্সিকিউটেবল (executable) "
-"ডিবাগ (debug)-এর উদ্দেশ্যে এই কম্পিউটারের আইপি (IP)-তে সংযোগ করার চেষ্টা করবে।"
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "নেটওয়ার্ক ফাইল-সিস্টেমের সহিত ক্ষুদ্র-ডিপ্লয় করুন"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"এই সিদ্ধান্তটি (অপশন) সক্রিয় করলে, এক্সপোর্ট (Export) বা ডিপ্লয় (Deploy)-এ স্বল্পতম "
"মানের এক্সিকিউটেবল (executable) উৎপাদন হবে।\n"
@@ -2993,9 +3011,10 @@ msgid "Visible Collision Shapes"
msgstr "দৃশ্যমান সাংঘর্ষিক আকারসমূহ (Collision Shapes)"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"এই সিদ্ধান্তটি (অপশন) সক্রিয় করলে চলমান গেমে কলিশ়ন (Collision) আকৃতি এবং রে-কাস্ট "
"(RayCast) নোড (2D এবং 3D) দৃশ্যমান হবে।"
@@ -3005,23 +3024,26 @@ msgid "Visible Navigation"
msgstr "দৃশ্যমান নেভিগেশন (Navigation)"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"এই সিদ্ধান্তটি (অপশন) সক্রিয় করলে চলমান গেমে ন্যাভিগেশন (Navigation) মেস এবং "
"পলিগন-সমূহ দৃশ্যমান হবে।"
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "দৃশ্যের পরিবর্তনসমূহ সুসংগত/সমন্বয় করুন"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"এই সিদ্ধান্তটি (অপশন) সক্রিয় থাকলে, এডিটরে কোনো দৃশ্যের পরিবর্তন করলে তা চলমান "
"গেমে প্রতিফলিত হবে।\n"
@@ -3029,15 +3051,17 @@ msgstr ""
"কার্যকর করবে।"
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "স্ক্রিপ্টের পরিবর্তনসমূহ সুসংগত/সমন্বয় করুন"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"এই সিদ্ধান্তটি (অপশন) সক্রিয় থাকলে, কোনো স্ক্রিপ্টের পরিবর্তন সংরক্ষণে তা চলমান গেমে "
"প্রতিফলিত হবে।\n"
@@ -3110,7 +3134,7 @@ msgstr "হেল্প"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "অনুসন্ধান করুন"
@@ -3547,9 +3571,11 @@ msgid "Add Key/Value Pair"
msgstr ""
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"কাংখিত প্ল্যাটফর্মের জন্য গ্রহণযোগ্য কোন এক্সপোর্ট প্রিসেট খুঁজে পাওয়া যায়নি।\n"
"অনুগ্রহ করে এক্সপোর্ট মেনুতে একটি সঠিক প্রিসেট যোগ করুন।"
@@ -5487,7 +5513,7 @@ msgid "Bake Lightmaps"
msgstr "লাইট্ম্যাপে হস্তান্তর করুন:"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "প্রিভিউ"
@@ -8331,7 +8357,8 @@ msgid "New Animation"
msgstr "অ্যানিমেশন"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "গতি (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -10523,6 +10550,7 @@ msgstr ""
"বিদ্যমান Godot প্রজেক্টের খোঁজে আপনি %s ফোল্ডারসমূহ স্ক্যান করতে যাচ্ছেন। আপনি কি "
"সুনিশ্চিত?"
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "প্রজেক্ট ম্যানেজার"
@@ -10984,11 +11012,16 @@ msgid "Batch Rename"
msgstr "পুনঃনামকরণ করুন"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "প্রতিস্থাপন করুন"
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -11040,7 +11073,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -11104,7 +11137,7 @@ msgstr "সম্প্রসারন/সংকোচন অপসারণ ক
#: editor/rename_dialog.cpp
#, fuzzy
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr "অভিব্যক্তি (Expression) পরিবর্তন করুন"
#: editor/rename_dialog.cpp
@@ -11217,6 +11250,11 @@ msgstr "অর্থপূর্ন!"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "নোড(সমূহ) অপসারণ করুন"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "নোড(সমূহ) অপসারণ করুন"
@@ -13032,6 +13070,12 @@ msgstr ""
"সফল্ভাবে কাজ করতে CollisionShape2D এর একটি আকৃতি প্রয়োজন। অনুগ্রহ করে তার জন্য "
"একটি আকৃতি তৈরি করুন!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -13273,6 +13317,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -13552,6 +13601,23 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#, fuzzy
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "ফাইলসিস্টেম"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "এক্সপোর্ট (Export) বা ডিপ্লয় (Deploy)-এর সময় প্রস্তুতকৃত এক্সিকিউটেবল "
+#~ "(executable) ডিবাগ (debug)-এর উদ্দেশ্যে এই কম্পিউটারের আইপি (IP)-তে সংযোগ "
+#~ "করার চেষ্টা করবে।"
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "বর্তমান দৃশ্যটি কখনোই সংরক্ষণ করা হয় নি, অনুগ্রহ করে চালানোর পূর্বে এটি সংরক্ষণ "
+#~ "করুন।"
+
#~ msgid "Not in resource path."
#~ msgstr "রিসোর্সের পথে নয়।"
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index 5fb91db7b4..629583d816 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -536,6 +536,7 @@ msgid "Seconds"
msgstr "Segons"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -714,7 +715,7 @@ msgstr "Distingeix entre majúscules i minúscules"
msgid "Whole Words"
msgstr "Paraules senceres"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
#, fuzzy
msgid "Replace"
msgstr "Reemplaçar"
@@ -910,6 +911,11 @@ msgid "Signals"
msgstr "Senyals"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtrat de Fitxers"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Esteu segur que voleu eliminar totes les connexions d'aquest senyal?"
@@ -947,7 +953,7 @@ msgid "Recent:"
msgstr "Recents:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Cerca:"
@@ -1127,6 +1133,9 @@ msgstr "Fundadors del Projecte"
msgid "Lead Developer"
msgstr "Desenvolupador Principal"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Gestor del Projecte "
@@ -1148,6 +1157,16 @@ msgid "Gold Sponsors"
msgstr "Patrocinadors Gold"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Donants Silver"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Donants Bronze"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini Patrocinadors"
@@ -1626,16 +1645,17 @@ msgid "Scene Tree Editing"
msgstr "Edició de l'arbre d'escenes"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Importació"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Nodes"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Importació i sistema de fitxers"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Sistema de Fitxers"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Importació"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1899,7 +1919,7 @@ msgstr "Directoris i Fitxers:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Vista prèvia:"
@@ -2338,11 +2358,6 @@ msgid "There is no defined scene to run."
msgstr "No s'ha definit cap escena per executar."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"L'escena actual no s'ha desat encara. Desa l'escena abans d'executar-la."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "No s'ha pogut començar el subprocés!"
@@ -2792,24 +2807,28 @@ msgstr "Desplegar amb Depuració Remota"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"En ser exportat o desplegat, l'executable resultant intenta connectar-se a "
-"l'IP d'aquest equip per iniciar-ne la depuració."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Desplegament Reduït amb Sistema de Fitxers en Xarxa"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Amb aquesta opció activada, 'Exportar' o 'Desplegar' generen un executable "
"reduït.\n"
@@ -2823,9 +2842,10 @@ msgid "Visible Collision Shapes"
msgstr "Formes de Col·lisió Visibles"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Les formes de col·lisió i nodes de difusió de raigs (raycast) (per a 2D i "
"3D), son visibles durant l'execució del joc quan s'activa aquesta opció."
@@ -2835,23 +2855,26 @@ msgid "Visible Navigation"
msgstr "Navegació Visible"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Aquesta opció fa visibles les malles i polígons de Navegació durant "
"l'execució del joc."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Sincronitzar Canvis en Escena"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"En activar aquesta opció, els canvis fets en l'Editor es repliquen en el joc "
"en execució.\n"
@@ -2859,15 +2882,17 @@ msgstr ""
"millora el rendiment."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Sincronitzar Canvis en Scripts"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"En activar aquesta opció, els Scripts, en ser desats, es recarreguen en el "
"joc en execució.\n"
@@ -2933,7 +2958,7 @@ msgstr "Ajuda"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Cerca"
@@ -3360,9 +3385,11 @@ msgid "Add Key/Value Pair"
msgstr "Afegeix una Parella de Clau/Valor"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"No s'ha trobat cap patró d'exportació executable per aquesta plataforma. \n"
"Afegiu un patró predeterminat en el menú d'exportació."
@@ -5162,7 +5189,7 @@ msgid "Bake Lightmaps"
msgstr "Precalcular Lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Previsualització"
@@ -7898,7 +7925,8 @@ msgid "New Animation"
msgstr "Nova Animació"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Velocitat (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -10141,6 +10169,7 @@ msgstr ""
"existents?\n"
"Això pot trigar una estona."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Gestor del Projecte"
@@ -10586,11 +10615,18 @@ msgid "Batch Rename"
msgstr "Reanomena"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Reemplaça: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Prefix"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Sufix"
#: editor/rename_dialog.cpp
@@ -10640,7 +10676,8 @@ msgid "Per-level Counter"
msgstr "Comptador per nivell"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Si s'estableix el comptador es reinicia per a cada grup de nodes fills"
#: editor/rename_dialog.cpp
@@ -10702,7 +10739,7 @@ msgstr "Resetejar"
#: editor/rename_dialog.cpp
#, fuzzy
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr "Expressions Regulars"
#: editor/rename_dialog.cpp
@@ -10818,6 +10855,11 @@ msgid "Make node as Root"
msgstr "Convertir node en arrel"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Voleu suprimir el node \"%s\" i els seus fills?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Suprimir %d nodes?"
@@ -12585,6 +12627,12 @@ msgstr ""
"S'ha de proporcionar una forma perquè *CollisionShape2D pugui funcionar. "
"Creeu-li un recurs de forma (shape)!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12854,6 +12902,11 @@ msgstr ""
"Les GIProbes no estan suportades pel controlador de vídeo GLES2.\n"
"Utilitzeu un BakedLightmap en el seu lloc."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
#, fuzzy
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -13161,6 +13214,20 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Les constants no es poden modificar."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Importació i sistema de fitxers"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "En ser exportat o desplegat, l'executable resultant intenta connectar-se "
+#~ "a l'IP d'aquest equip per iniciar-ne la depuració."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "L'escena actual no s'ha desat encara. Desa l'escena abans d'executar-la."
+
#~ msgid "Not in resource path."
#~ msgstr "Fora del camí dels recursos."
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index 722fa52d92..2839053135 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -20,12 +20,14 @@
# Filip Vincůrek <vincurek.f@gmail.com>, 2020.
# Ondrej Pavelka <ondrej.pavelka@outlook.com>, 2020.
# Zbyněk <zbynek.fiala@gmail.com>, 2020.
+# Daniel Kříž <Daniel.kriz@protonmail.com>, 2020.
+# VladimirBlazek <vblazek042@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
-"Last-Translator: Zbyněk <zbynek.fiala@gmail.com>\n"
+"PO-Revision-Date: 2020-09-12 00:46+0000\n"
+"Last-Translator: VladimirBlazek <vblazek042@gmail.com>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/"
"cs/>\n"
"Language: cs\n"
@@ -33,7 +35,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -545,6 +547,7 @@ msgid "Seconds"
msgstr "Sekundy"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -723,7 +726,7 @@ msgstr "Rozlišovat malá/velká"
msgid "Whole Words"
msgstr "Celá slova"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Nahradit"
@@ -773,9 +776,8 @@ msgid "Method in target node must be specified."
msgstr "Je nutné zadat metodu v cílovém uzlu."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "Jméno není platný identifikátor:"
+msgstr "Jméno metody musí být platný identifikátor."
#: editor/connections_dialog.cpp
msgid ""
@@ -828,7 +830,7 @@ msgstr "Další argumenty volání:"
#: editor/connections_dialog.cpp
msgid "Receiver Method:"
-msgstr "Metoda přijímače:"
+msgstr "Metoda příjemce:"
#: editor/connections_dialog.cpp
msgid "Advanced"
@@ -916,6 +918,11 @@ msgid "Signals"
msgstr "Signály"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtrovat soubory..."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Jste si jistí, že chcete odstranit všechna připojení z tohoto signálu?"
@@ -953,7 +960,7 @@ msgid "Recent:"
msgstr "Nedávné:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Hledat:"
@@ -1133,6 +1140,9 @@ msgstr "Zakladatelé projektu"
msgid "Lead Developer"
msgstr "Vedoucí vývojář"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Správce projektu "
@@ -1154,6 +1164,16 @@ msgid "Gold Sponsors"
msgstr "Zlatí sponzoři"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Stříbrní dárci"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Bronzoví dárci"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Malí sponzoři"
@@ -1296,7 +1316,7 @@ msgstr "Přetažením uspořádejte."
#: editor/editor_audio_buses.cpp
msgid "Solo"
-msgstr "Solo"
+msgstr "Sólo"
#: editor/editor_audio_buses.cpp
msgid "Mute"
@@ -1496,7 +1516,7 @@ msgstr "Název"
#: editor/editor_autoload_settings.cpp
msgid "Singleton"
-msgstr "Singleton"
+msgstr "Singleton (jedináček)"
#: editor/editor_data.cpp editor/inspector_dock.cpp
msgid "Paste Params"
@@ -1622,27 +1642,27 @@ msgstr "Editor skriptů"
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
-msgstr "Otevřít knihovnu assetů"
+msgstr "Knihovna zdrojů (AssetLib)"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
msgstr "Úpravy stromu scény"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Importovat dok"
-
-#: editor/editor_feature_profile.cpp
#, fuzzy
msgid "Node Dock"
msgstr "Uzel přesunut"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "Souborový systém"
#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Importovat dok"
+
+#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
msgstr "Smazat profil '%s'? (bez možnosti vrácení)"
@@ -1903,7 +1923,7 @@ msgstr "Složky a soubory:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Náhled:"
@@ -1961,9 +1981,8 @@ msgid "Properties"
msgstr "Vlastnosti"
#: editor/editor_help.cpp
-#, fuzzy
msgid "override:"
-msgstr "Přepsat"
+msgstr "přepsat:"
#: editor/editor_help.cpp
msgid "default:"
@@ -2339,10 +2358,6 @@ msgid "There is no defined scene to run."
msgstr "Neexistuje žádná scéna pro spuštění."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "Aktuální scéna nebyla nikdy uložena, prosím uložte jí před spuštěním."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Nelze spustit podproces!"
@@ -2427,9 +2442,8 @@ msgid "Can't reload a scene that was never saved."
msgstr "Nelze načíst scénu, která nebyla nikdy uložena."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "Uložit scénu"
+msgstr "Znovunačíst uloženou scénu"
#: editor/editor_node.cpp
msgid ""
@@ -2559,6 +2573,8 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"Vybraná scéna '%s' neexistuje, vybrat platnou? \n"
+"Později to můžete změnit v \"Nastavení projektu\" v kategorii 'application'."
#: editor/editor_node.cpp
msgid ""
@@ -2775,24 +2791,28 @@ msgstr "Nasazení se vzdáleným laděním"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Při exportu nebo nasazení, se výsledný spustitelný soubor pokusí připojit k "
-"IP tohoto počítače, aby ho bylo možné ladit."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Minimální nasazení se síťovým FS"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Když je tato možnost povolena, export nebo nasazení bude vytvářet minimální "
"spustitelný soubor.\n"
@@ -2805,9 +2825,10 @@ msgid "Visible Collision Shapes"
msgstr "Viditelné kolizní tvary"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Kolizní tvary a raycast uzly (pro 2D a 3D) budou viditelné během hry, po "
"aktivaci této volby."
@@ -2817,22 +2838,25 @@ msgid "Visible Navigation"
msgstr "Viditelná navigace"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Navigační meshe a polygony budou viditelné během hry, po aktivaci této volby."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Synchronizovat změny scény"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Když je zapnuta tato možnost, všechny změny provedené ve scéně v editoru "
"budou replikovány v běžící hře.\n"
@@ -2840,15 +2864,17 @@ msgstr ""
"síťového souborového systému."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Synchornizace změn skriptu"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Když je zapnuta tato volba, jakýkoliv skript, který je uložen bude znovu "
"nahrán do spuštěné hry.\n"
@@ -2915,7 +2941,7 @@ msgstr "Nápověda"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Hledat"
@@ -2929,9 +2955,8 @@ msgid "Q&A"
msgstr "Otázky a odpovědi"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Report a Bug"
-msgstr "Znovu importovat"
+msgstr "Nahlásit chybu"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
@@ -3180,7 +3205,7 @@ msgstr "Fyzikální snímek %"
#: editor/editor_profiler.cpp
msgid "Inclusive"
-msgstr ""
+msgstr "Inkluzivní"
#: editor/editor_profiler.cpp
msgid "Self"
@@ -3319,9 +3344,11 @@ msgid "Add Key/Value Pair"
msgstr "Vložte pár klíč/hodnota"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Nebylo nalezeno žádné spustilené přednastavení pro exportování na tuto "
"platformu.\n"
@@ -3359,8 +3386,9 @@ msgstr ""
"podpisu."
#: editor/editor_sub_scene.cpp
+#, fuzzy
msgid "Select Node(s) to Import"
-msgstr ""
+msgstr "Vyberte uzly (Node) pro import"
#: editor/editor_sub_scene.cpp editor/project_manager.cpp
msgid "Browse"
@@ -3368,7 +3396,7 @@ msgstr "Procházet"
#: editor/editor_sub_scene.cpp
msgid "Scene Path:"
-msgstr ""
+msgstr "Cesta ke scéně:"
#: editor/editor_sub_scene.cpp
msgid "Import From Node:"
@@ -3662,7 +3690,7 @@ msgstr "Otevřít scény"
#: editor/filesystem_dock.cpp
msgid "Instance"
-msgstr "Instance"
+msgstr "Instance:"
#: editor/filesystem_dock.cpp
msgid "Add to Favorites"
@@ -3940,16 +3968,17 @@ msgid "Running Custom Script..."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
msgid "Couldn't load post-import script:"
-msgstr ""
+msgstr "Nepodařilo se načíst post-import script:"
#: editor/import/resource_importer_scene.cpp
msgid "Invalid/broken script for post-import (check console):"
-msgstr ""
+msgstr "Neplatný/rozbitý skript pro post-import (viz konzole):"
#: editor/import/resource_importer_scene.cpp
msgid "Error running post-import script:"
-msgstr ""
+msgstr "Chyba při spuštění post-import scriptu:"
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
@@ -4034,7 +4063,7 @@ msgstr ""
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
-msgstr ""
+msgstr "Udělat Sub-prostředky unikátní"
#: editor/inspector_dock.cpp
msgid "Open in Help"
@@ -4414,7 +4443,7 @@ msgstr "Povolit filtrování"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
-msgstr ""
+msgstr "Zapnout Autoplay"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
@@ -4457,7 +4486,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Blend Time"
-msgstr ""
+msgstr "Změnit Blend Time"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load Animation"
@@ -4512,8 +4541,9 @@ msgid "Animation position (in seconds)."
msgstr "Pozice animace (v sekundách)."
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Scale animation playback globally for the node."
-msgstr ""
+msgstr "Škálovat playback animace globálně pro uzel"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
@@ -4536,8 +4566,9 @@ msgid "Display list of animations in player."
msgstr "Zobrazit seznam animací v přehrávači."
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Autoplay on Load"
-msgstr ""
+msgstr "Autoplay při načtení"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
@@ -4614,7 +4645,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Next (Auto Queue):"
-msgstr ""
+msgstr "Další (Automatická řada):"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
@@ -4728,8 +4759,9 @@ msgid "Scale:"
msgstr "Zvětšení:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
+#, fuzzy
msgid "Fade In (s):"
-msgstr ""
+msgstr "Zmizení do (s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Fade Out (s):"
@@ -4749,11 +4781,11 @@ msgstr ""
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Restart (s):"
-msgstr ""
+msgstr "Restart (s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Random Restart (s):"
-msgstr ""
+msgstr "Náhodný Restart (s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Start!"
@@ -4788,7 +4820,7 @@ msgstr "Přidat vstup"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Clear Auto-Advance"
-msgstr ""
+msgstr "Čistý Auto-Advance"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Set Auto-Advance"
@@ -5079,7 +5111,7 @@ msgid "Bake Lightmaps"
msgstr "Zapéct lightmapy"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Náhled"
@@ -5731,7 +5763,7 @@ msgstr ""
#: editor/plugins/cpu_particles_editor_plugin.cpp
msgid "CPUParticles"
-msgstr "CPUParticles"
+msgstr "CPUParticles (částice)"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -6589,7 +6621,7 @@ msgstr "Vložit zdroj"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/scene_tree_editor.cpp
msgid "Instance:"
-msgstr "Instance:"
+msgstr "Instance"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
@@ -7091,13 +7123,12 @@ msgid "Go to Previous Breakpoint"
msgstr "Přejít na předchozí breakpoint"
#: editor/plugins/shader_editor_plugin.cpp
-#, fuzzy
msgid ""
"This shader has been modified on on disk.\n"
"What action should be taken?"
msgstr ""
-"Následující soubory mají novější verzi na disku.\n"
-"Jaká akce se má vykonat?:"
+"Tento shader byl na disku upraven.\n"
+"Jaká akce se má vykonat?"
#: editor/plugins/shader_editor_plugin.cpp
msgid "Shader"
@@ -7118,7 +7149,7 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
-msgstr "Skeleton2D"
+msgstr "Skeleton2D (Kostra 2D)"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Make Rest Pose (From Bones)"
@@ -7762,7 +7793,8 @@ msgid "New Animation"
msgstr "Nová animace"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Rychlost (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -7857,7 +7889,7 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Offset:"
-msgstr "Offset:"
+msgstr "Offset(Posun):"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Step:"
@@ -8193,9 +8225,8 @@ msgid "Occlusion"
msgstr "Editovat polygon"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Navigation"
-msgstr "Vytvořit Navigation Mesh"
+msgstr "Navigace"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8464,7 +8495,7 @@ msgstr "Tato vlastnost nemůže být změněna."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "TileSet"
-msgstr "TileSet"
+msgstr "TileSet (Sada dlaždic)"
#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
@@ -8974,7 +9005,7 @@ msgstr "Vrátí hyperbolický kosinus parametru."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in radians to degrees."
-msgstr "Konvertuje množství v radiánech na stupně."
+msgstr "Konvertuje hodnotu v radiánech na stupně."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-e Exponential."
@@ -9031,7 +9062,7 @@ msgstr "Vrátí hodnotu prvního parametru umocněného druhým."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in degrees to radians."
-msgstr "Konvertuje množství ve stupních na radiány."
+msgstr "Konvertuje hodnotu ve stupních na radiány."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 / scalar"
@@ -9530,7 +9561,7 @@ msgstr "Soubour balíčk"
#: editor/project_export.cpp
msgid "Features"
-msgstr "Funkce"
+msgstr "Vlastnosti"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
@@ -9855,11 +9886,12 @@ msgid ""
msgstr "Odstranit projekt ze seznamu? (Obsah složky zůstane nedotčen)"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"Remove this project from the list?\n"
"The project folder's contents won't be modified."
-msgstr "Odstranit projekt ze seznamu? (Obsah složky zůstane nedotčen)"
+msgstr ""
+"Odstranit projekt ze seznamu?\n"
+"Obsah složky zůstane nedotčen."
#: editor/project_manager.cpp
#, fuzzy
@@ -9880,6 +9912,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Správce projektů"
@@ -9960,9 +9993,8 @@ msgstr ""
"nebo '\"'"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "An action with the name '%s' already exists."
-msgstr "Akce '%s' již existuje!"
+msgstr "Akce s názvem \"%s\" již existuje."
#: editor/project_settings_editor.cpp
msgid "Rename Input Action Event"
@@ -10327,11 +10359,18 @@ msgid "Batch Rename"
msgstr "Dávkové přejmenování"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Nahradit: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Prefix"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Sufix"
#: editor/rename_dialog.cpp
@@ -10379,7 +10418,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10396,7 +10435,7 @@ msgstr ""
#: editor/rename_dialog.cpp
msgid "Padding"
-msgstr ""
+msgstr "Odsazení"
#: editor/rename_dialog.cpp
msgid ""
@@ -10439,7 +10478,8 @@ msgid "Reset"
msgstr "Resetovat"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Chyba regulárního výrazu"
#: editor/rename_dialog.cpp
@@ -10484,7 +10524,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
-msgstr ""
+msgstr "Chybí rodič pro instancování scény."
#: editor/scene_tree_dock.cpp
msgid "Error loading scene from %s"
@@ -10498,7 +10538,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Instance Scene(s)"
-msgstr ""
+msgstr "Scéna/Scény instance"
#: editor/scene_tree_dock.cpp
#, fuzzy
@@ -10510,9 +10550,8 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach Script"
-msgstr "Připojit skript"
+msgstr "Odpojit skript"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10543,14 +10582,17 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Make node as Root"
-msgstr "Dává smysl!"
+msgstr "Nastavit uzel jako zdrojový"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Smazat %d uzlů?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
-msgstr "Smazat uzel"
+msgstr "Smazat %d uzlů?"
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
@@ -10561,9 +10603,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "Smazat uzel"
+msgstr "Smazat uzel \"%s\"?"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -10699,9 +10740,8 @@ msgid "Reparent to New Node"
msgstr "Přidat/Vytvořit nový uzel"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Make Scene Root"
-msgstr "Dává smysl!"
+msgstr "Nastav scénu jako zdrojovou"
#: editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -10801,6 +10841,8 @@ msgid ""
"Node is locked.\n"
"Click to unlock it."
msgstr ""
+"Uzel je zamčený.\n"
+"Klikněte pro odemčení."
#: editor/scene_tree_editor.cpp
msgid ""
@@ -11225,16 +11267,15 @@ msgstr ""
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Select dependencies of the library for this entry"
-msgstr ""
+msgstr "Vyberte závislosti knihovny pro tento vstup"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
-#, fuzzy
msgid "Remove current entry"
-msgstr "Odstranit signál"
+msgstr "Odstranit aktuální vstup"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Double click to create a new entry"
-msgstr ""
+msgstr "Stiskněte dvakrát pro vytvoření nového vstupu"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Platform:"
@@ -12234,6 +12275,12 @@ msgid ""
"shape resource for it!"
msgstr "CollisionShape2D musí obsahovat tvar. Prosím vytvořte zdrojový tvar."
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12475,6 +12522,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12647,16 +12699,15 @@ msgstr "HSV"
#: scene/gui/color_picker.cpp
msgid "Raw"
-msgstr ""
+msgstr "Raw"
#: scene/gui/color_picker.cpp
msgid "Switch between hexadecimal and code values."
-msgstr ""
+msgstr "Přepni mezi hexadecimálními a kódovými hodnotami."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Add current color as a preset."
-msgstr "Přidat aktuální barvu jako předvolbu"
+msgstr "Přidat aktuální barvu jako předvolbu."
#: scene/gui/container.cpp
msgid ""
@@ -12730,11 +12781,11 @@ msgstr ""
#: scene/main/viewport.cpp
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
+"Velikost pohledu musí být větší než 0, aby bylo možné cokoliv renderovat."
#: scene/resources/visual_shader_nodes.cpp
-#, fuzzy
msgid "Invalid source for preview."
-msgstr "Neplatný zdroj pro shader."
+msgstr "Neplatný zdroj pro náhled."
#: scene/resources/visual_shader_nodes.cpp
msgid "Invalid source for shader."
@@ -12747,20 +12798,35 @@ msgstr "Neplatný zdroj pro shader."
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
-msgstr ""
+msgstr "Přiřazeno funkci."
#: servers/visual/shader_language.cpp
msgid "Assignment to uniform."
-msgstr ""
+msgstr "Přiřazeno uniformu."
#: servers/visual/shader_language.cpp
msgid "Varyings can only be assigned in vertex function."
-msgstr ""
+msgstr "Odlišnosti mohou být přiřazeny pouze ve vertex funkci."
#: servers/visual/shader_language.cpp
msgid "Constants cannot be modified."
msgstr "Konstanty není možné upravovat."
+#, fuzzy
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Souborový systém"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Při exportu nebo nasazení, se výsledný spustitelný soubor pokusí připojit "
+#~ "k IP tohoto počítače, aby ho bylo možné ladit."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Aktuální scéna nebyla nikdy uložena, prosím uložte jí před spuštěním."
+
#~ msgid "Not in resource path."
#~ msgstr "Není v cestě ke zdroji."
diff --git a/editor/translations/da.po b/editor/translations/da.po
index 70b05c08ff..95a5d793e0 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -560,6 +560,7 @@ msgid "Seconds"
msgstr "Sekunder"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -743,7 +744,7 @@ msgstr "Match stor/lille"
msgid "Whole Words"
msgstr "Hele Ord"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Erstat"
@@ -947,6 +948,11 @@ msgid "Signals"
msgstr "Signaler"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtrer filer..."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Er du sikker på at du vil fjerne alle forbindelser fra dette signal?"
@@ -984,7 +990,7 @@ msgid "Recent:"
msgstr "Seneste:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Søgning:"
@@ -1168,6 +1174,9 @@ msgstr "Projekt grundlæggere"
msgid "Lead Developer"
msgstr "Ledende Udvikler"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Projektleder "
@@ -1189,6 +1198,16 @@ msgid "Gold Sponsors"
msgstr "Guld Sponsorer"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Sølv Donorer"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Bronze Donorer"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini Sponsorer"
@@ -1679,21 +1698,21 @@ msgstr ""
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "Import Dock"
-msgstr "Importer"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
msgstr "Node Navn:"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "Fil System"
#: editor/editor_feature_profile.cpp
#, fuzzy
+msgid "Import Dock"
+msgstr "Importer"
+
+#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Erase profile '%s'? (no undo)"
msgstr "Erstat Alle"
@@ -1980,7 +1999,7 @@ msgstr "Mapper & Filer:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Forhåndsvisning:"
@@ -2426,10 +2445,6 @@ msgid "There is no defined scene to run."
msgstr "Der er ingen defineret scene at køre."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "Den nuværende scene er aldrig gemt, venligst gem før du kører den."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Kunne ikke starte underproces!"
@@ -2878,24 +2893,28 @@ msgstr "Indsætte med Fjern Fejlfind"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Ved eksport eller deploy, vil den resulterende eksekverbare fil forsøge at "
-"oprette forbindelse til denne computers IP adresse for at blive debugged."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Lille Indsættelse med Nætværks FS"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Når denne indstilling er aktiveret, vil eksport eller deploy producere en "
"minimal eksekverbar.\n"
@@ -2908,9 +2927,10 @@ msgid "Visible Collision Shapes"
msgstr "Synlig Kollisionsformer"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Kollisionsformer og raycast-noder (til 2D og 3D) vil være synlige på det "
"kørende spil, hvis denne indstilling er tændt."
@@ -2920,23 +2940,26 @@ msgid "Visible Navigation"
msgstr "Synlig Navigation"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Navigationsmasker og polygoner vil være synlige på det kørende spil, hvis "
"denne indstilling er tændt."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Synkroniser Scene Ændringer"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Når denne indstilling er tændt, vil eventuelle ændringer til scenen i "
"editoren blive overført til det kørende spil.\n"
@@ -2944,15 +2967,17 @@ msgstr ""
"filsystem."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Synkroniser Script Ændringer"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Når denne indstilling er tændt, genindlæses gemte script, på det kørende "
"spil.\n"
@@ -3022,7 +3047,7 @@ msgstr "Hjælp"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Søg"
@@ -3433,9 +3458,11 @@ msgid "Add Key/Value Pair"
msgstr ""
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Ingen kørbare eksport forudindstillinger fundet til denne platform.\n"
"Tilføj venligst en kørbar forudindstilling i eksportmenuen."
@@ -5298,7 +5325,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -8014,7 +8041,7 @@ msgid "New Animation"
msgstr "Ny Animation Navn:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -10113,9 +10140,10 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
-msgstr "Projektleder"
+msgstr "Projekt Manager"
#: editor/project_manager.cpp
#, fuzzy
@@ -10557,11 +10585,16 @@ msgid "Batch Rename"
msgstr "Omdøb"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Erstat"
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10612,7 +10645,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10674,7 +10707,7 @@ msgstr "Nulstil Zoom"
#: editor/rename_dialog.cpp
#, fuzzy
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr "Skift udtryk"
#: editor/rename_dialog.cpp
@@ -10784,6 +10817,11 @@ msgstr "Gem Scene"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Vælg Node"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "Vælg Node"
@@ -12512,6 +12550,12 @@ msgstr ""
"En figur skal gives CollisionShape2D for at det fungerer. Opret venligst en "
"figur ressource for den!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12751,6 +12795,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -13030,6 +13079,21 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstanter kan ikke ændres."
+#, fuzzy
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Fil System"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Ved eksport eller deploy, vil den resulterende eksekverbare fil forsøge "
+#~ "at oprette forbindelse til denne computers IP adresse for at blive "
+#~ "debugged."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "Den nuværende scene er aldrig gemt, venligst gem før du kører den."
+
#~ msgid "Not in resource path."
#~ msgstr "Ikke i stien for ressource."
diff --git a/editor/translations/de.po b/editor/translations/de.po
index eb533ff15e..082f22322b 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -52,12 +52,20 @@
# artism90 <artism90@googlemail.com>, 2020.
# Jaigskim <filzstift112@gmail.com>, 2020.
# Jacqueline Ulken <Jacqueline.Ulken@protonmail.com>, 2020.
+# Günther Bohn <ciscouser@gmx.de>, 2020.
+# Tom Wor <mail@tomwor.com>, 2020.
+# Bjarne Hiller <bjarne.hiller@gmail.com>, 2020.
+# Dirk Federmann <weblategodot@dirkfedermann.de>, 2020.
+# Helmut Hirtes <helmut.h@gmx.de>, 2020.
+# Michal695 <michalek.jedrzejak@gmail.com>, 2020.
+# Leon Marz <leon.marz@kabelmail.de>, 2020.
+# Patric Wust <patric.wust@gmx.de>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
-"Last-Translator: So Wieso <sowieso@dukun.de>\n"
+"PO-Revision-Date: 2020-09-22 03:23+0000\n"
+"Last-Translator: Patric Wust <patric.wust@gmx.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
"Language: de\n"
@@ -65,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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -74,13 +82,13 @@ msgstr "Ungültiger Argument-Typ in convert(), TYPE_*-Konstanten benötigt."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "Zeichenkette der Länge 1 erwartet (exakt ein Symbol)."
+msgstr "Zeichenkette der Länge 1 erwartet (exakt ein Zeichen)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "Nicht genügend Bytes zum Dekodieren oder ungültiges Format."
+msgstr "Nicht genügend Bytes zur Dekodierung oder ungültiges Format."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -578,6 +586,7 @@ msgid "Seconds"
msgstr "Sekunden"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -756,7 +765,7 @@ msgstr "Groß-/Kleinschreibung berücksichtigen"
msgid "Whole Words"
msgstr "Ganze Wörter"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Ersetzen"
@@ -775,7 +784,7 @@ msgstr "Standard"
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
-msgstr "Seitenleiste umschalten"
+msgstr "Skript-Panel umschalten"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
@@ -949,6 +958,11 @@ msgid "Signals"
msgstr "Signale"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Kacheln filtern"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Sollen wirklich alle Verbindungen mit diesem Signal entfernt werden?"
@@ -986,7 +1000,7 @@ msgid "Recent:"
msgstr "Kürzlich:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Suche:"
@@ -1170,9 +1184,12 @@ msgstr "Projektgründer"
msgid "Lead Developer"
msgstr "Hauptentwickler"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
-msgstr "Projektverwaltung "
+msgstr "Projektleiter "
#: editor/editor_about.cpp
msgid "Developers"
@@ -1191,6 +1208,14 @@ msgid "Gold Sponsors"
msgstr "Gold-Sponsoren"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "Silber-Sponsoren"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "Bronze-Sponsoren"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini-Sponsoren"
@@ -1657,27 +1682,28 @@ msgstr "3D-Editor"
#: editor/editor_feature_profile.cpp
msgid "Script Editor"
-msgstr "Skripteditor"
+msgstr "Skript Editor"
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
-msgstr "Nutzerinhaltesammlung"
+msgstr "Bestandsbibliothek"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
msgstr "Szenenbaum-Bearbeitung"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Importleiste"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Node-Leiste"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Dateisystem- und Import-Leiste"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Dateisystem"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Importleiste"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1942,7 +1968,7 @@ msgstr "Verzeichnisse & Dateien:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Vorschau:"
@@ -2126,7 +2152,7 @@ msgstr "Eigenschaft:"
#: editor/editor_inspector.cpp
msgid "Set"
-msgstr "Festlegen"
+msgstr "Set"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
@@ -2382,12 +2408,6 @@ msgid "There is no defined scene to run."
msgstr "Es ist keine abzuspielende Szene definiert."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"Die aktuelle Szene wurde noch nicht gespeichert, bitte vor dem Abspielen "
-"sichern."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Unterprozess konnte nicht gestartet werden!"
@@ -2831,7 +2851,7 @@ msgstr "Zur Projektverwaltung zurückkehren"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
msgid "Debug"
-msgstr "Debuggen"
+msgstr "Fehlersuche (debuggen)"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
@@ -2839,24 +2859,28 @@ msgstr "Mit Fern-Fehlerbehebung starten"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Beim Exportieren oder Starten wird das Programm versuchen, sich mit der IP-"
-"Adresse dieses Computers zu verbinden, um Fehler beheben zu können."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Kleine Programmdatei über ein Netzwerkdateisystem"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Wenn diese Option aktiviert ist, wird das Exportieren bzw. Starten nur eine "
"kleine Programmdatei erzeugen.\n"
@@ -2870,9 +2894,10 @@ msgid "Visible Collision Shapes"
msgstr "Collision-Shapes sichtbar"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Collision-Shapes und Raycast-Nodes (für 2D und 3D) werden im laufenden Spiel "
"angezeigt, falls diese Option aktiviert ist."
@@ -2882,23 +2907,26 @@ msgid "Visible Navigation"
msgstr "Navigation sichtbar"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Navigations- Meshes und Polygone werden im laufenden Spiel sichtbar sein "
"wenn diese Option gewählt ist."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Szenenänderungen synchronisieren"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Wenn diese Option gewählt ist, werden jegliche Änderungen der Szene im "
"Editor im laufenden Spiel dargestellt.\n"
@@ -2906,15 +2934,17 @@ msgstr ""
"effizientesten das Netzwerk-Dateisystem zu nutzen."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Skriptänderungen synchronisieren"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Wenn diese Option gewählt ist, werden erneut gespeicherte Skripte während "
"des laufenden Spiels neu geladen.\n"
@@ -2979,7 +3009,7 @@ msgstr "Hilfe"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Suchen"
@@ -3002,7 +3032,7 @@ msgstr "Dokumentationsvorschläge senden"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr "Gemeinschaft"
+msgstr "Community"
#: editor/editor_node.cpp
msgid "About"
@@ -3014,7 +3044,7 @@ msgstr "Projekt abspielen."
#: editor/editor_node.cpp
msgid "Play"
-msgstr "Starten"
+msgstr "Abspielen"
#: editor/editor_node.cpp
msgid "Pause the scene execution for debugging."
@@ -3034,7 +3064,7 @@ msgstr "Spiele die bearbeitete Szene."
#: editor/editor_node.cpp
msgid "Play Scene"
-msgstr "Szene starten"
+msgstr "Szene abspielen"
#: editor/editor_node.cpp
msgid "Play custom scene"
@@ -3042,7 +3072,7 @@ msgstr "Spiele angepasste Szene"
#: editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr "Spiele angepasste Szene"
+msgstr "Angepasste Szene abspielen"
#: editor/editor_node.cpp
msgid "Changing the video driver requires restarting the editor."
@@ -3259,7 +3289,7 @@ msgstr "Gesamt"
#: editor/editor_profiler.cpp
msgid "Self"
-msgstr "Eigenanteil"
+msgstr "Selbst"
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3398,9 +3428,11 @@ msgid "Add Key/Value Pair"
msgstr "Schlüssel-Wert-Paar hinzufügen"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Keine Soforteinsatz-Exportvorlage für diese Plattform gefunden.\n"
"Im Exportmenü kann eine Vorlage als Soforteinsatz markiert werden."
@@ -5176,7 +5208,7 @@ msgid "Bake Lightmaps"
msgstr "Lightmaps vorrendern"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Vorschau"
@@ -5438,7 +5470,7 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Reset"
-msgstr "Zoom Zurücksetzen"
+msgstr "Zoom zurücksetzen"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5698,7 +5730,7 @@ msgstr "Pose kopieren"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Pose"
-msgstr "Pose zurücksetzen"
+msgstr "Pose/Stellung löschen"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -6836,7 +6868,7 @@ msgstr "Schiebe hoch"
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
-msgstr "Schiebe herunter"
+msgstr "Schiebe runter"
#: editor/plugins/script_editor_plugin.cpp
msgid "Next script"
@@ -6881,7 +6913,7 @@ msgstr "Vorwärts im Verlauf"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme"
-msgstr "Theme"
+msgstr "Designvorlagen (Thema)"
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme..."
@@ -7113,7 +7145,7 @@ msgstr "Symbol vervollständigen"
#: editor/plugins/script_text_editor.cpp
msgid "Evaluate Selection"
-msgstr "Auswahl auswerten"
+msgstr "Springe zum vorigen Haltepunkt"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
@@ -7839,7 +7871,8 @@ msgid "New Animation"
msgstr "Neue Animation"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Geschwindigkeit (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9401,9 +9434,9 @@ msgid ""
"Returns falloff based on the dot product of surface normal and view "
"direction of camera (pass associated inputs to it)."
msgstr ""
-"Gibt den Fresnelabfall abgeleitet aus dem Skalarprodukt aus "
-"Oberflächennormalenvektor und Kamerablickrichtung zurück (zugeordnete "
-"Eingänge müssen übergeben werden)."
+"Gibt den Abfall basierend auf dem Punktprodukt der Oberflächennormalen und "
+"der Blickrichtung der Kamera zurück (übergeben Sie die zugehörigen Eingaben "
+"an diese)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9614,7 +9647,7 @@ msgstr "Pack-Datei"
#: editor/project_export.cpp
msgid "Features"
-msgstr "Funktionen"
+msgstr "Eigenschaften"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
@@ -9975,6 +10008,7 @@ msgstr ""
"Sollen wirklich %s Ordner nach Godot-Projekten durchsucht werden?\n"
"Dies kann eine Weile dauern."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Projektverwaltung"
@@ -10153,7 +10187,7 @@ msgstr "Ereignis hinzufügen"
#: editor/project_settings_editor.cpp
msgid "Button"
-msgstr "\"Button\""
+msgstr "Schaltfläche (Button)"
#: editor/project_settings_editor.cpp
msgid "Left Button."
@@ -10326,7 +10360,7 @@ msgstr "Umleitungen nach Lokalisierung:"
#: editor/project_settings_editor.cpp
msgid "Locale"
-msgstr "Lokalisierung"
+msgstr "Gebietsschema"
#: editor/project_settings_editor.cpp
msgid "Locales Filter"
@@ -10417,11 +10451,18 @@ msgid "Batch Rename"
msgstr "Stapelweise Umbenennung"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Ersetzen: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Prefix"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Suffix"
#: editor/rename_dialog.cpp
@@ -10469,7 +10510,8 @@ msgid "Per-level Counter"
msgstr "Pro-Ebene-Zähler"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
"Falls gesetzt startet dieser Zähler für jede Gruppe aus Unterobjekten neu"
@@ -10530,7 +10572,8 @@ msgid "Reset"
msgstr "Zurücksetzen"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Fehler in regulärem Ausdruck"
#: editor/rename_dialog.cpp
@@ -10641,6 +10684,10 @@ msgid "Make node as Root"
msgstr "Node zur Szenenwurzel machen"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "%d Nodes und ihre Unterobjekte löschen?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "%d Nodes löschen?"
@@ -10755,11 +10802,11 @@ msgstr "Unter-Ressourcen"
#: editor/scene_tree_dock.cpp
msgid "Clear Inheritance"
-msgstr "Leere Vererbung"
+msgstr "Löse Vererbung"
#: editor/scene_tree_dock.cpp
msgid "Editable Children"
-msgstr "bearbeitbare Unterobjekte"
+msgstr "Bearbeitbare Unterobjekte"
#: editor/scene_tree_dock.cpp
msgid "Load As Placeholder"
@@ -10844,7 +10891,7 @@ msgstr "Lokal"
#: editor/scene_tree_dock.cpp
msgid "Clear Inheritance? (No Undo!)"
-msgstr "Vererbung wirklich leeren? (Lässt sich nicht rückgängig machen!)"
+msgstr "Vererbung wirklich lösen? (Lässt sich nicht rückgängig machen!)"
#: editor/scene_tree_editor.cpp
msgid "Toggle Visible"
@@ -11925,7 +11972,7 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
-msgstr "Ausgewähltes löschen"
+msgstr "Auswahl löschen"
#: modules/visual_script/visual_script_editor.cpp
msgid "Find Node Type"
@@ -11941,7 +11988,7 @@ msgstr "Nodes trennen"
#: modules/visual_script/visual_script_editor.cpp
msgid "Make Function"
-msgstr "Funktion bauen"
+msgstr "Funktion erstellen"
#: modules/visual_script/visual_script_editor.cpp
msgid "Refresh Graph"
@@ -12340,6 +12387,15 @@ msgstr ""
"Damit CollisionShape2D funktionieren kann, muss eine Form angegeben werden. "
"Bitte erzeuge eine Shape-Ressource dafür!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Polygon basierte Formen sollten nicht direkt in CollisionShape2D-Nodes "
+"genutzt oder bearbeitet werden. Zu diesem Zweck sollte das CollsionPolygon2D-"
+"Node verwendet werden."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12617,6 +12673,11 @@ msgstr ""
"GIProbes werden vom GLES2-Videotreiber nicht unterstützt.\n"
"BakedLightmaps können als Alternative verwendet werden."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12939,6 +13000,21 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden."
msgid "Constants cannot be modified."
msgstr "Konstanten können nicht verändert werden."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Dateisystem- und Import-Leiste"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Beim Exportieren oder Starten wird das Programm versuchen, sich mit der "
+#~ "IP-Adresse dieses Computers zu verbinden, um Fehler beheben zu können."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Die aktuelle Szene wurde noch nicht gespeichert, bitte vor dem Abspielen "
+#~ "sichern."
+
#~ msgid "Not in resource path."
#~ msgstr "Nicht im Ressourcen-Pfad."
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index 01121a8156..743e77d7dd 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -502,6 +502,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -680,7 +681,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -869,6 +870,10 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -906,7 +911,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1080,6 +1085,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1101,6 +1109,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1564,15 +1580,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1835,7 +1851,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2245,10 +2261,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2664,22 +2676,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2688,8 +2704,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2698,32 +2714,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2783,7 +2799,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3183,7 +3199,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4907,7 +4924,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7489,7 +7506,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9465,6 +9482,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9895,11 +9913,15 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -9945,7 +9967,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10003,7 +10025,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10109,6 +10131,10 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr ""
@@ -11710,6 +11736,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -11922,6 +11954,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/el.po b/editor/translations/el.po
index 8ff5881a9e..2571598414 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -8,12 +8,13 @@
# Eternal Death <eternaldeath0001@gmail.com>, 2019.
# Overloaded @ Orama Interactive http://orama-interactive.com/ <manoschool@yahoo.gr>, 2020.
# pandektis <pandektis@gmail.com>, 2020.
+# KostasMSC <kargyris@athtech.gr>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
-"Last-Translator: pandektis <pandektis@gmail.com>\n"
+"PO-Revision-Date: 2020-08-11 14:04+0000\n"
+"Last-Translator: George Tsiamasiotis <gtsiam@windowslive.com>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/"
"el/>\n"
"Language: el\n"
@@ -502,8 +503,8 @@ msgstr ""
"εισαγωγής της σκηνής και θέστε\n"
"το «Animation > Storage» σε «Files», ενεργοποιήστε το «Animation > Keep "
"Custom Tracks», και κάντε επαν-εισαγωγή.\n"
-"Εναλλακτικά, χρησιμοποιήστε μία διαμόρφωση εισαγωγής που εισάγει κινήσεις "
-"σε ξεχωριστά αρχεία."
+"Εναλλακτικά, χρησιμοποιήστε μία διαμόρφωση εισαγωγής που εισάγει κινήσεις σε "
+"ξεχωριστά αρχεία."
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
@@ -535,6 +536,7 @@ msgid "Seconds"
msgstr "Δευτερόλεπτα"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -713,7 +715,7 @@ msgstr "Αντιστοίχηση πεζών-κεφαλαίων"
msgid "Whole Words"
msgstr "Ολόκληρες λέξεις"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Αντικατάσταση"
@@ -907,6 +909,11 @@ msgid "Signals"
msgstr "Σήματα"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Φιλτράρισμα πλακιδίων"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
"Είστε σίγουροι πως θέλετε να αφαιρέσετε όλες της συνδέσεις απο αυτό το σήμα;"
@@ -945,7 +952,7 @@ msgid "Recent:"
msgstr "Πρόσφατα:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Αναζήτηση:"
@@ -1125,6 +1132,9 @@ msgstr "Ιδρυτές του έργου"
msgid "Lead Developer"
msgstr "Επικεφαλής προγραμματιστής"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Διαχειριστής έργων "
@@ -1146,6 +1156,16 @@ msgid "Gold Sponsors"
msgstr "Χρυσοί Χορυγοί"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Αργυροί Δωρητές"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Χάλκινοι Δωρητές"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Μικροί Χορηγοί"
@@ -1596,7 +1616,7 @@ msgstr "Δεν βρέθηκε προσαρμοσμένο πακέτο αποσφ
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
-msgstr "Δεν βρέθηκε προσαρμοσμένο πακέτο παραγωγής."
+msgstr "Δεν βρέθηκε προσαρμοσμένο πακέτο διανομής."
#: editor/editor_export.cpp platform/javascript/export/export.cpp
msgid "Template file not found:"
@@ -1624,16 +1644,17 @@ msgid "Scene Tree Editing"
msgstr "Επεξεργασία Δέντρου Σκηνής"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Πλατφόρμα Εισαγωγής"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Πλατφόρμα Κόμβου"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Πλατφόρμες Συστήματος Αρχείων και Εισαγωγής"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Σύστημα αρχείων"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Πλατφόρμα Εισαγωγής"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1785,7 +1806,7 @@ msgstr "Νέος φάκελος..."
#: editor/editor_file_dialog.cpp editor/find_in_files.cpp
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Refresh"
-msgstr "Αναναίωση"
+msgstr "Ανανέωση"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1896,7 +1917,7 @@ msgstr "Φάκελοι & Αρχεία:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Προεπισκόπηση:"
@@ -2336,12 +2357,6 @@ msgid "There is no defined scene to run."
msgstr "Δεν υπάρχει καθορισμένη σκηνή για εκτελέση."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"Η τρέχουσα σκηνή δεν έχει αποθηκευτεί, αποθηκεύστε πριν να τρέξετε το "
-"πρόγραμμα."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Αδύνατη η εκκίνηση της υπό-εργασίας!"
@@ -2461,13 +2476,13 @@ msgstr "Αποθήκευση & Έξοδος"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr "Αποθήκευση αλλαγών στις ακόλουθες σκηνές σκηνές πριν την έξοδο;"
+msgstr "Αποθήκευση αλλαγών στις ακόλουθες σκηνές πριν την έξοδο;"
#: editor/editor_node.cpp
msgid "Save changes the following scene(s) before opening Project Manager?"
msgstr ""
-"Αποθήκευση αλλαγών στις ακόλουθες σκηνές σκηνές πριν το άνοιγμα του "
-"διαχειριστή έργων;"
+"Αποθήκευση αλλαγών στις ακόλουθες σκηνές πριν το άνοιγμα του Διαχειριστή "
+"Έργων;"
#: editor/editor_node.cpp
msgid ""
@@ -2703,7 +2718,7 @@ msgstr "Άνοιγμα πρόσφατων"
#: editor/editor_node.cpp
msgid "Save Scene"
-msgstr "Αποθηκεύσετε σκηνής"
+msgstr "Αποθηκεύση σκηνής"
#: editor/editor_node.cpp
msgid "Save All Scenes"
@@ -2791,24 +2806,28 @@ msgstr "Ανέπτυξε με απομακρυσμένο εντοπισμό σφ
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Όταν εξάγετε ή αναπτύσσετε, το παραγόμενο εκτελέσιμο θα προσπαθήσει να "
-"συνδεθεί στην IP αυτού του υπολογιστή για να αποσφαλματωθεί."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Μικρή ανάπτυξη με δικτυωμένο σύστημα αρχείων"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Όταν ενεργοποιείται αυτή η επιλογή, η εξαγωγή ή η ανάπτυξη θα παράξουν ένα "
"ελαχιστοποιημένο εκτελέσιμο.\n"
@@ -2822,9 +2841,10 @@ msgid "Visible Collision Shapes"
msgstr "Ορατά σχήματα σύγκρουσης"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Σχήματα σύγκρουσης και κόμβοι raycast (για 2D και 3D) θα είναι ορατά στο "
"παιχνίδι εάν αυτή η επιλογή είναι ενεργοποιημένη."
@@ -2834,23 +2854,26 @@ msgid "Visible Navigation"
msgstr "Ορατή πλοήγηση"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Τα πλέγματα πλοήγησης και τα πολύγονα θα είναι ορατά στο παιχνίδι εάν αυτή η "
"επιλογή είναι ενεργοποιημένη."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Συγχρονισμός αλλαγών στη σκηνή"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Η ενεργοποίηση της επιλογής αυτής θα συγχρονίσει αλλαγές της σκηνής εντός "
"του επεξεργαστή με το παιχνίδι που εκτελείται.\n"
@@ -2858,15 +2881,17 @@ msgstr ""
"σύστημα αρχείων."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Συγχρονισμός αλλαγών στις δεσμές ενεργειών"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Η ενεργοποίηση της επιλογής αυτής θα συγχρονίσει κάθε δέσμη ενεργειών που "
"αποθηκεύεται με το παιχνίδι που εκτελείται.\n"
@@ -2932,7 +2957,7 @@ msgstr "Βοήθεια"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Αναζήτηση"
@@ -3133,7 +3158,7 @@ msgstr "Άνοιγμα βιβλιοθήκης"
#: editor/editor_node.cpp
msgid "Open the next Editor"
-msgstr "Άνοιγμα του επόμενου επεξεργαστή"
+msgstr "Άνοιγμα του επόμενου Επεξεργαστή"
#: editor/editor_node.cpp
msgid "Open the previous Editor"
@@ -3352,9 +3377,11 @@ msgid "Add Key/Value Pair"
msgstr "Προσθήκη ζεύγους κλειδιού/τιμής"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Δεν βρέθηκε εκτελέσιμη διαμόρφωση εξαγωγής για αυτή την πλατφόρμα.\n"
"Παρακαλούμε προσθέστε μία εκτελέσιμη διαμόρφωση στο μενού εξαγωγής."
@@ -3483,7 +3510,7 @@ msgid ""
"for official releases."
msgstr ""
"Δεν βρέθηκαν συνδέσμοι λήψης για την τρέχουσα έκδοση. Η απευθείας λήψη είναι "
-"διαθέσιμη μόνο για τις επίσημες εκδόσεις."
+"διαθέσιμη μόνο για τις επίσημες διανομές."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3992,6 +4019,7 @@ msgstr "Σφάλμα κατά την εκτέλεση της δέσμης ενε
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
msgstr ""
+"Μήπως επιστρέψατε ένα αντικείμενο τύπου κόμβου στην μέθοδο `post_import()`;"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -5131,7 +5159,7 @@ msgid "Bake Lightmaps"
msgstr "Προετοιμασία Lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Προεπισκόπηση"
@@ -5581,7 +5609,7 @@ msgstr "Εμφάνιση Χαράκων"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Guides"
-msgstr "Εμφάνιση Οδηγών"
+msgstr "Εμφάνιση Οδηγιών"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Origin"
@@ -6218,7 +6246,7 @@ msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generation Time (sec):"
-msgstr "Χρόνος παραγωγής (sec):"
+msgstr "Χρόνος Παραγωγής (sec):"
#: editor/plugins/particles_editor_plugin.cpp
msgid "The geometry's faces don't contain any area."
@@ -6861,7 +6889,7 @@ msgstr "Κλείσιμο όλων"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close Docs"
-msgstr "Κλείσιμο τεκμηρίωσης"
+msgstr "Κλείσιμο Τεκμηρίωσης"
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
msgid "Run"
@@ -6962,9 +6990,8 @@ msgstr ""
"κόμβο «%s»."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "[Ignore]"
-msgstr "(Παράβλεψη)"
+msgstr "[Παράβλεψη]"
#: editor/plugins/script_text_editor.cpp
msgid "Line"
@@ -7454,6 +7481,11 @@ msgid ""
"Closed eye: Gizmo is hidden.\n"
"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
msgstr ""
+"Πατήστε για εναλλαγή λειτουργίας ορατότητας.\n"
+"\n"
+"Ανοιχτό μάτι: Ορατό μαραφέτι.\n"
+"Κλειστό μάτι: Κρυμμένο μαραφέτι.\n"
+"Ημι-ανοιχτό μάτι: Μαραφέτι ορατό και μέσα από στερεές επιφάνειες (\"x-ray\")."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
@@ -7793,7 +7825,8 @@ msgid "New Animation"
msgstr "Νέα Κίνηση"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Ταχύτητα (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8366,7 +8399,9 @@ msgstr ""
msgid ""
"Select sub-tile to change its priority.\n"
"Click on another Tile to edit it."
-msgstr "Επιλέξτε υποπλακίδιο για να αλλάξετε την προτεραιότητα του."
+msgstr ""
+"Επιλέξτε υποπλακίδιο για να αλλάξετε την προτεραιότητα του.\n"
+"Πατήστε σε άλλο Πλακίδιο για να το επεξεργαστείτε."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -9074,7 +9109,7 @@ msgstr "Επιστρέφει την υπερβολική εφαπτομένη τ
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the truncated value of the parameter."
-msgstr "Βρίσκει την περικομμένη τιμή της παραμέτρου."
+msgstr "Βρίσκει την περικομμένη τιμή της παραμέτρου."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Adds scalar to scalar."
@@ -9473,7 +9508,7 @@ msgstr ""
#: editor/project_export.cpp
msgid "Release"
-msgstr "Κυκλοφορία"
+msgstr "Διανομή"
#: editor/project_export.cpp
msgid "Exporting All"
@@ -9922,6 +9957,7 @@ msgstr ""
"Θέλετε να σαρώσετε %s φακέλους για υπαρκτά έργα Godot;\n"
"Αυτό μπορεί να πάρει κάποια ώρα."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Διαχειριστής"
@@ -9976,6 +10012,10 @@ msgid ""
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
+"Το κουτί αναζήτησης φιλτράρει έργα βάσει ονόματος και τελικού μέρους της "
+"διαδρομής τους.\n"
+"Για φιλτράρισμα βάσει ονόματος και πλήρης διαδρομής, το ερώτημα πρέπει να "
+"περιέχει τουλάχιστον έναν χαρακτήρα `/`."
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -10147,7 +10187,7 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Add Input Action"
-msgstr "Προσθήκη συμβάντος ενέργειας εισόδου"
+msgstr "Προσθήκη Ενέργειας Εισόδου"
#: editor/project_settings_editor.cpp
msgid "Error saving settings."
@@ -10358,11 +10398,18 @@ msgid "Batch Rename"
msgstr "Ομαδική Μετονομασία"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Αντικατάσταση: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Πρόθεμα"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Επίθεμα"
#: editor/rename_dialog.cpp
@@ -10410,7 +10457,8 @@ msgid "Per-level Counter"
msgstr "Μετρητής Ανά Επίπεδο"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Εάν ο μετρητής επανεκκινείται για κάθε ομάδα παιδικών κόμβων"
#: editor/rename_dialog.cpp
@@ -10470,7 +10518,8 @@ msgid "Reset"
msgstr "Επαναφορά"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Σφάλμα Κανονικής Εκφράσεως"
#: editor/rename_dialog.cpp
@@ -10542,9 +10591,8 @@ msgid "Instance Child Scene"
msgstr "Αρχικοποίηση σκηνής ως παιδί"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach Script"
-msgstr "Σύνδεση Δέσμης Ενεργειών"
+msgstr "Αποσύνδεση Δέσμης Ενεργειών"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10582,6 +10630,10 @@ msgid "Make node as Root"
msgstr "Κάνε κόμβο ρίζα"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "Διαγραφή %d κόμβων και τυχών παιδιών τους;"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Διαγραφή %d κόμβων;"
@@ -10720,6 +10772,9 @@ msgid ""
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
+"Αδυναμία σύνδεσης δέσμης ενεργειών: Καμία γλώσσα στο μητρώο.\n"
+"Αυτό μπορεί να προκληθεί αν ο επεξεργαστής χτιστεί χωρίς καμία λειτουργική "
+"μονάδα γλώσσας."
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -10770,14 +10825,12 @@ msgstr ""
"υπάρχει πηγαίος κόμβος."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script to the selected node."
-msgstr "Σύνδεση νέας ή υπαρκτής δέσμης ενεργειών για τον επιλεγμένο κόμβο."
+msgstr "Σύνδεση νέας ή υπαρκτής δέσμης ενεργειών στον επιλεγμένο κόμβο."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach the script from the selected node."
-msgstr "Εκκαθάριση δέσμης ενεργειών για τον επιλεγμένο κόμβο."
+msgstr "Αποσύνδεση της δέσμης ενεργειών από τον επιλεγμένο κόμβο."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -11118,9 +11171,8 @@ msgid "Total:"
msgstr "Συνολικά:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Export list to a CSV file"
-msgstr "Εξαγωγή Προφίλ"
+msgstr "Εξαγωγή λίστας σε αρχείο CSV"
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
@@ -12016,11 +12068,9 @@ msgstr ""
"διαμόρφωση."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-"Το «debug keystore» δεν έχει καθοριστεί στις Ρυθμίσεις Επεξεργαστή ή την "
-"διαμόρφωση."
+"Εσφαλμένη ρύθμιση αποθετηρίου κλειδιών διανομής στην διαμόρφωση εξαγωγής."
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
@@ -12055,26 +12105,35 @@ msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
+"Εσφαλμένη λειτουργική μονάδα «GodotPaymentV3» στην ρύθμιση εργου «Android/"
+"Modules» (άλλαξε στην Godot 3.2.2).\n"
#: platform/android/export/export.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
+"Η επιλογή «Use Custom Build» πρέπει να ενεργοποιηθεί για χρήση προσθέτων."
#: platform/android/export/export.cpp
msgid ""
"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
"\"."
msgstr ""
+"Το «Degrees Of Freedom» είναι έγκυρο μόνο όταν το «Xr Mode» είναι «Oculus "
+"Mobile VR»."
#: platform/android/export/export.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"Το «Hand Tracking» είναι έγκυρο μόνο όταν το «Xr Mode» είναι «Oculus Mobile "
+"VR»."
#: platform/android/export/export.cpp
msgid ""
"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"Το «Focus Awareness» είναι έγκυρο μόνο όταν το «Xr Mode» είναι «Oculus "
+"Mobile VR»."
#: platform/android/export/export.cpp
msgid ""
@@ -12286,6 +12345,14 @@ msgstr ""
"Ένα σχήμα πρέπει να δοθεί στο CollisionShape2D για να λειτουργήσει. "
"Δημιουργήστε ένα πόρο σχήματος για αυτό!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Τα σχήματα βασισμένα σε πολύγωνα δεν σχεδιάστικαν ώστε να είναι επεξεργάσιμα "
+"από τον κόμβο CollisionShape2D. Χρησιμοποιήστε τον κόμβο CollisionPolygon2D."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12558,6 +12625,11 @@ msgstr ""
"Τα GIProbes δεν υποστηρίζονται από το πρόγραμμα οδήγησης οθόνης GLES2.\n"
"Εναλλακτικά, χρησιμοποιήστε ένα BakedLightmap."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12870,6 +12942,21 @@ msgstr "Τα «varying» μπορούν να ανατεθούν μόνο στη
msgid "Constants cannot be modified."
msgstr "Οι σταθερές δεν μπορούν να τροποποιηθούν."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Πλατφόρμες Συστήματος Αρχείων και Εισαγωγής"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Όταν εξάγετε ή αναπτύσσετε, το παραγόμενο εκτελέσιμο θα προσπαθήσει να "
+#~ "συνδεθεί στην IP αυτού του υπολογιστή για να αποσφαλματωθεί."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Η τρέχουσα σκηνή δεν έχει αποθηκευτεί, αποθηκεύστε πριν να τρέξετε το "
+#~ "πρόγραμμα."
+
#~ msgid "Not in resource path."
#~ msgstr "Δεν υπάρχει στην διαδρομή πόρων."
diff --git a/editor/translations/eo.po b/editor/translations/eo.po
index f98f043118..68dbd4f436 100644
--- a/editor/translations/eo.po
+++ b/editor/translations/eo.po
@@ -531,6 +531,7 @@ msgid "Seconds"
msgstr "Sekundoj"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -713,7 +714,7 @@ msgstr "Kongrui Usklon"
msgid "Whole Words"
msgstr "Plenaj Vortoj"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Anstataŭigi"
@@ -908,6 +909,11 @@ msgid "Signals"
msgstr "Signaloj"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtri nodojn"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -945,7 +951,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Serĉo:"
@@ -1119,6 +1125,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1140,6 +1149,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1610,16 +1627,17 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Enporti dokon"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Dosiersistema kaj enporta dokoj"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Dosiersistemo"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Enporti dokon"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1885,7 +1903,7 @@ msgstr "Dosierujoj kaj dosieroj:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2309,10 +2327,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2741,24 +2755,28 @@ msgstr "Disponigii kun defora sencimigo"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Kiam eksportas aŭ malfaldas, la rezulta plenumebla provos konekti al la IP "
-"de ĉi tiu komputilo por estos sencimigita."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Eta disponigo kun reta dosiersistemo"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Kiam ĉi tiun agordon estas ŝaltita, eksporti aŭ malfaldi produktos minimuman "
"plenumeblan dosieron.\n"
@@ -2771,9 +2789,10 @@ msgid "Visible Collision Shapes"
msgstr "Videblaj koliziaj formoj"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Koliziaj formoj kaj radĵetaj nodoj (por 2D kaj 3D) estos videblaj en la "
"rulas ludo, se ĉi tiu agordo estas ŝaltita."
@@ -2783,38 +2802,43 @@ msgid "Visible Navigation"
msgstr "Videbla navigacio"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Navigaciaj maŝoj kaj poligonoj estos videblaj en la rulas ludo, se ĉi tiu "
"agordo estas ŝaltita."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Sinkronigi scenan ŝanĝojn"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Kiam tuin ĉi agordo estas ŝaltita, iuj ŝanĝoj ke faris al la scenon en la "
"editilo replikos en la rulas ludo.\n"
"Kiam uzantis malproksime en aparato, estas pli efika kun reta dosiersistemo."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Sinkronigi skriptajn ŝanĝojn"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Kiam tuin ĉi agordo estas ŝaltita, iun skripton ke konservita, estos "
"reŝarĝita en la rulas ludo.\n"
@@ -2877,7 +2901,7 @@ msgstr "Helpo"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Serĉo"
@@ -3282,7 +3306,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -5020,7 +5045,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7615,7 +7640,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9614,6 +9639,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -10045,11 +10071,16 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Anstataŭigi: "
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10095,7 +10126,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10153,7 +10184,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10261,6 +10292,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Forigi Ŝlosilo(j)n"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "Forigi Ŝlosilo(j)n"
@@ -11882,6 +11918,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12094,6 +12136,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12347,6 +12394,16 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstantoj ne povas esti modifitaj."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Dosiersistema kaj enporta dokoj"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Kiam eksportas aŭ malfaldas, la rezulta plenumebla provos konekti al la "
+#~ "IP de ĉi tiu komputilo por estos sencimigita."
+
#~ msgid "Revert"
#~ msgstr "Malfari"
diff --git a/editor/translations/es.po b/editor/translations/es.po
index a200653685..fa8391cf89 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -18,7 +18,7 @@
# Jose Maria Martinez <josemar1992@hotmail.com>, 2018.
# Juan Quiroga <juanquiroga9@gmail.com>, 2017.
# Kiji Pixel <raccoon.fella@gmail.com>, 2017.
-# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2017, 2019.
+# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2017, 2019, 2020.
# Lonsfor <lotharw@protonmail.com>, 2017-2018.
# Mario Nachbaur <manachbaur@gmail.com>, 2018.
# Oscar Carballal <oscar.carballal@protonmail.com>, 2017-2018.
@@ -49,12 +49,14 @@
# Serk Lintur <serk.lintur@gmail.com>, 2020.
# Pedro J. Estébanez <pedrojrulez@gmail.com>, 2020.
# paco <pacosoftfree@protonmail.com>, 2020.
+# Jonatan <arandajonatan94@tuta.io>, 2020.
+# ACM <albertocm@tuta.io>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
-"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n"
+"PO-Revision-Date: 2020-09-12 00:46+0000\n"
+"Last-Translator: ACM <albertocm@tuta.io>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/"
"godot/es/>\n"
"Language: es\n"
@@ -62,7 +64,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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -84,7 +86,7 @@ msgstr ""
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "Entrada inválida %i (no se pasó) en la expresión"
+msgstr "Entrada inválida %i (no aprobada) en la expresión"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
@@ -579,6 +581,7 @@ msgid "Seconds"
msgstr "Segundos"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -757,7 +760,7 @@ msgstr "Coincidir Mayús./Minús."
msgid "Whole Words"
msgstr "Palabras Completas"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Reemplazar"
@@ -853,7 +856,7 @@ msgstr "Eliminar"
#: editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
-msgstr "Añadir Argumento de Llamada Extra:"
+msgstr "Añadir Argumento Extra de Llamada:"
#: editor/connections_dialog.cpp
msgid "Extra Call Arguments:"
@@ -951,6 +954,11 @@ msgid "Signals"
msgstr "Señales"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtrar tiles"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
"¿Estás seguro/a que quieres eliminar todas las conexiones de esta señal?"
@@ -989,7 +997,7 @@ msgid "Recent:"
msgstr "Recientes:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Buscar:"
@@ -1171,9 +1179,12 @@ msgstr "Fundadores del Proyecto"
msgid "Lead Developer"
msgstr "Desarrollador Principal"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
-msgstr "Administrador del Proyecto "
+msgstr "Gestor del Proyecto "
#: editor/editor_about.cpp
msgid "Developers"
@@ -1192,6 +1203,14 @@ msgid "Gold Sponsors"
msgstr "Patrocinadores Oro"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "Patrocinadores Plata"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "Patrocinadores Bronce"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini Patrocinadores"
@@ -1669,16 +1688,17 @@ msgid "Scene Tree Editing"
msgstr "Editor del Árbol de Escenas"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Importación"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Nodos"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Sistema de Archivo e Importación"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Sistema de Archivos"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Importación"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1763,7 +1783,7 @@ msgstr "Nuevo"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/project_manager.cpp
msgid "Import"
-msgstr "Importar"
+msgstr "Importación"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
@@ -1944,7 +1964,7 @@ msgstr "Directorios y Archivos:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Vista Previa:"
@@ -2383,11 +2403,6 @@ msgid "There is no defined scene to run."
msgstr "No hay escena definida para ejecutar."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"La escena actual nunca se guardó. Por favor, guárdela antes de ejecutar."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "¡No se pudo comenzar el subproceso!"
@@ -2837,24 +2852,28 @@ msgstr "Exportar con Depuración Remota"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Al exportar o distribuir, el ejecutable generado intentará conectarse a la "
-"IP de este equipo para ser depurado."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Exportación Mini con Recursos en Red"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Cuando esta opción está activa, al exportar o publicar se creará un "
"ejecutable mínimo.\n"
@@ -2867,9 +2886,10 @@ msgid "Visible Collision Shapes"
msgstr "Ver Formas de Colisión"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Las formas de colisión y los nodos raycast (para 2D y 3D) serán visibles "
"durante la ejecución del juego si esta opción está activada."
@@ -2879,23 +2899,26 @@ msgid "Visible Navigation"
msgstr "Navegación Visible"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Las mallas de navegación y los polígonos serán visibles durante la ejecución "
"del juego si esta opción está activada."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Sincronizar cambios de escena"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Cuando esta opción este activada, cualquier cambio hecho a la escena en el "
"editor sera replicado en el juego en ejecución.\n"
@@ -2903,15 +2926,17 @@ msgstr ""
"sistema de archivos remoto."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Sincronizar Cambios en Scripts"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Cuando esta opción esté activa, cualquier script que se guarde se volverá a "
"cargar en el juego en ejecución.\n"
@@ -2977,7 +3002,7 @@ msgstr "Ayuda"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Buscar"
@@ -3398,9 +3423,11 @@ msgid "Add Key/Value Pair"
msgstr "Agregar Par Clave/Valor"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"No se ha encontrado ningún preset de exportación ejecutable para esta "
"plataforma.\n"
@@ -4369,7 +4396,7 @@ msgstr "No hay ningún triángulo, así que no se puede hacer blending."
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Toggle Auto Triangles"
-msgstr "Act./Desact. Auto Triángulos"
+msgstr "Act./Desact. Triángulos Automáticos"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
@@ -4381,7 +4408,8 @@ msgstr "Borrar puntos y triángulos."
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Generate blend triangles automatically (instead of manually)"
-msgstr "Generar triángulos de blending automáticamente (en vez de manualmente)"
+msgstr ""
+"Generar triángulos combinados automáticamente (en lugar de manualmente)"
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5176,7 +5204,7 @@ msgid "Bake Lightmaps"
msgstr "Bake Lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Vista Previa"
@@ -7834,7 +7862,8 @@ msgid "New Animation"
msgstr "Nueva Animación"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Velocidad (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8947,7 +8976,7 @@ msgstr "Devuelve el valor absoluto del parámetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-cosine of the parameter."
-msgstr "Devuelve el arcocoseno del parámetro."
+msgstr "Devuelve el arco-coseno del parámetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic cosine of the parameter."
@@ -8955,7 +8984,7 @@ msgstr "Devuelve el coseno hiperbólico inverso del parámetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-sine of the parameter."
-msgstr "Devuelve el arcoseno del parámetro."
+msgstr "Devuelve el arco-seno del parámetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic sine of the parameter."
@@ -8963,11 +8992,11 @@ msgstr "Devuelve el seno hiperbólico inverso del parámetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-tangent of the parameter."
-msgstr "Devuelve el arcotangente del parámetro."
+msgstr "Devuelve el arco-tangente del parámetro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-tangent of the parameters."
-msgstr "Devuelve el arcotangente de los parámetros."
+msgstr "Devuelve el arco-tangente de los parámetros."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic tangent of the parameter."
@@ -8996,11 +9025,11 @@ msgstr "Convierte una cantidad en radianes a grados."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-e Exponential."
-msgstr "Exponencial en base e."
+msgstr "Exponencial con Base-e."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-2 Exponential."
-msgstr "Exponencial en base 2."
+msgstr "Exponencial con base 2."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest integer less than or equal to the parameter."
@@ -9020,7 +9049,7 @@ msgstr "Logaritmo natural."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-2 logarithm."
-msgstr "Logaritmo de la base 2."
+msgstr "Logaritmo Base-2."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the greater of two values."
@@ -9968,6 +9997,7 @@ msgstr ""
"existentes?\n"
"Esto puede tardar un poco."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Administrador de Proyectos"
@@ -10408,11 +10438,18 @@ msgid "Batch Rename"
msgstr "Renombrar por lote"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Reemplazar: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Prefijo"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Sufijo"
#: editor/rename_dialog.cpp
@@ -10460,7 +10497,8 @@ msgid "Per-level Counter"
msgstr "Contador Por Nivel"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Si esta activo el contador reinicia por cada grupo de nodos hijos"
#: editor/rename_dialog.cpp
@@ -10520,7 +10558,8 @@ msgid "Reset"
msgstr "Resetear"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Error de Expresión Regular"
#: editor/rename_dialog.cpp
@@ -10630,6 +10669,10 @@ msgid "Make node as Root"
msgstr "Convertir nodo como Raíz"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "¿Eliminar %d nodos y sus hijos?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "¿Eliminar %d nodos?"
@@ -12345,6 +12388,15 @@ msgstr ""
"Para que funcione CollisionShape2D se debe proporcionar una forma. Por "
"favor, ¡crea un recurso de forma para ello!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Las formas basadas en polígonos no están pensadas para ser usadas ni "
+"editadas directamente a través del nodo CollisionShape2D. Por favor, usa el "
+"nodo CollisionPolygon2D en su lugar."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12614,6 +12666,11 @@ msgstr ""
"Las GIProbes no están soportadas por el controlador de vídeo GLES2.\n"
"Usa un BakedLightmap en su lugar."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12927,6 +12984,20 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
msgid "Constants cannot be modified."
msgstr "Las constantes no pueden modificarse."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Sistema de Archivo e Importación"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Al exportar o distribuir, el ejecutable generado intentará conectarse a "
+#~ "la IP de este equipo para ser depurado."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "La escena actual nunca se guardó. Por favor, guárdela antes de ejecutar."
+
#~ msgid "Not in resource path."
#~ msgstr "No está en la ruta de recursos."
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index ca9f5a7a49..6171c0e27d 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
+"PO-Revision-Date: 2020-07-31 03: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"
@@ -542,6 +542,7 @@ msgid "Seconds"
msgstr "Segundos"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -720,7 +721,7 @@ msgstr "Coincidir Mayúsculas/Minúsculas"
msgid "Whole Words"
msgstr "Palabras Completas"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Reemplazar"
@@ -914,6 +915,11 @@ msgid "Signals"
msgstr "Señales"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtrar tiles"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "¿Estás seguro/a que querés quitar todas las conexiones de esta señal?"
@@ -951,7 +957,7 @@ msgid "Recent:"
msgstr "Recientes:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Buscar:"
@@ -1133,6 +1139,9 @@ msgstr "Fundadores del Proyecto"
msgid "Lead Developer"
msgstr "Desarrollador Principal"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Gestor de Proyectos "
@@ -1154,6 +1163,16 @@ msgid "Gold Sponsors"
msgstr "Sponsor Oro"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Donantes Plata"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Donantes Bronce"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini Sponsors"
@@ -1630,16 +1649,17 @@ msgid "Scene Tree Editing"
msgstr "Edición de Árbol de Escenas"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Dock de Importación"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Dock de Nodos"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Docks de Sistema de Archivos e Importación"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Sistema de Archivos"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Dock de Importación"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1905,7 +1925,7 @@ msgstr "Directorios y Archivos:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Vista Previa:"
@@ -2345,11 +2365,6 @@ msgid "There is no defined scene to run."
msgstr "No hay escena definida para ejecutar."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"La escena actual nunca se guardó. Favor de guardarla antes de ejecutar."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "No se pudo comenzar el subproceso!"
@@ -2798,24 +2813,28 @@ msgstr "Hacer Deploy con Depuración Remota"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Al exportar o hacer deploy, el ejecutable resultante tratara de conectarse a "
-"la IP de esta computadora de manera de ser depurado."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Deploy Pequeño con recursos en red"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Cuando esta opción está activa, exportar o hacer deploy producirá un "
"ejecutable mínimo.\n"
@@ -2829,9 +2848,10 @@ msgid "Visible Collision Shapes"
msgstr "Collision Shapes Visibles"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Los Collision shapes y nodos raycast (para 2D y 3D) serán visibles durante "
"la ejecución del juego cuando esta opción queda activada."
@@ -2841,23 +2861,26 @@ msgid "Visible Navigation"
msgstr "Navegación Visible"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Los meshes de navegación y los polígonos serán visibles durante la ejecución "
"del juego si esta opción queda activada."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Sincronizar Cambios de Escena"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Cuando esta opción esté encendida, cualquier cambio hecho a la escena en el "
"editor será replicado en el juego en ejecución.\n"
@@ -2865,15 +2888,17 @@ msgstr ""
"sistema de archivos remoto."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Sincronizar Cambios en Scripts"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Cuando esta opción está activa, cualquier script que se guarde sera vuelto a "
"cargar en el juego en ejecución.\n"
@@ -2937,7 +2962,7 @@ msgstr "Ayuda"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Buscar"
@@ -3357,9 +3382,11 @@ msgid "Add Key/Value Pair"
msgstr "Agregar Par Clave/Valor"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"No se encontró ningún preset de exportación ejecutable para esta "
"plataforma.\n"
@@ -5136,7 +5163,7 @@ msgid "Bake Lightmaps"
msgstr "Bake Lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Vista Previa"
@@ -7787,7 +7814,8 @@ msgid "New Animation"
msgstr "Nueva Animación"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Velocidad (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9921,6 +9949,7 @@ msgstr ""
"existentes?\n"
"Podría demorar un rato."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Gestor de Proyectos"
@@ -10361,11 +10390,18 @@ msgid "Batch Rename"
msgstr "Renombrar en Masa"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Reemplazar: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Prefijo"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Sufijo"
#: editor/rename_dialog.cpp
@@ -10413,7 +10449,8 @@ msgid "Per-level Counter"
msgstr "Contador Por Nivel"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Si esta activo el contador reinicia por cada grupo de nodos hijos"
#: editor/rename_dialog.cpp
@@ -10473,7 +10510,8 @@ msgid "Reset"
msgstr "Resetear"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Error de Expresión Regular"
#: editor/rename_dialog.cpp
@@ -10583,12 +10621,16 @@ msgid "Make node as Root"
msgstr "Convertir nodo en Raíz"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "¿Eliminar %d nodos y sus hijos?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "¿Eliminar %d nodos?"
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
-msgstr "¿Eliminar el nodo raiz \"%s\"?"
+msgstr "¿Eliminar el nodo raíz \"%s\"?"
#: editor/scene_tree_dock.cpp
msgid "Delete node \"%s\" and its children?"
@@ -12293,6 +12335,15 @@ msgstr ""
"Se debe proveer un shape para que CollisionShape2D funcione. Creale un "
"recurso shape!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Las formas basadas en polígonos no están pensadas para ser usadas ni "
+"editadas directamente a través del nodo CollisionShape2D. Por favor, usá el "
+"nodo CollisionPolygon2D en su lugar."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12562,6 +12613,11 @@ msgstr ""
"Las GIProbes no están soportadas por el controlador de video GLES2.\n"
"Usá un BakedLightmap en su lugar."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12870,6 +12926,20 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
msgid "Constants cannot be modified."
msgstr "Las constantes no pueden modificarse."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Docks de Sistema de Archivos e Importación"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Al exportar o hacer deploy, el ejecutable resultante tratara de "
+#~ "conectarse a la IP de esta computadora de manera de ser depurado."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "La escena actual nunca se guardó. Favor de guardarla antes de ejecutar."
+
#~ msgid "Not in resource path."
#~ msgstr "No está en la ruta de recursos."
diff --git a/editor/translations/et.po b/editor/translations/et.po
index 5fd61347e1..a8692d1332 100644
--- a/editor/translations/et.po
+++ b/editor/translations/et.po
@@ -9,15 +9,15 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2020-05-31 12:39+0000\n"
-"Last-Translator: René <renepiik@gmail.com>\n"
+"PO-Revision-Date: 2020-09-01 10:38+0000\n"
+"Last-Translator: StReef <streef.gtx@gmail.com>\n"
"Language-Team: Estonian <https://hosted.weblate.org/projects/godot-engine/"
"godot/et/>\n"
"Language: et\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.1-dev\n"
+"X-Generator: Weblate 4.2.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -409,8 +409,7 @@ msgstr "Animatsiooni rajad võivad osutada ainult AnimationPlayer sõlmedele."
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
-msgstr ""
-"Animatsiooni mängija ei saa animeerida iseennast, ainult teisi mängijaid."
+msgstr "AnimationPlayer ei saa animeerida iseennast, ainult teisi mängijaid."
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
@@ -492,7 +491,7 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Select an AnimationPlayer node to create and edit animations."
-msgstr ""
+msgstr "Vali AnimationPlayer sõlm, et luua ja redigeerida animatsioone."
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
@@ -503,20 +502,22 @@ msgid "Group tracks by node or display them as plain list."
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Snap:"
-msgstr ""
+msgstr "Intervall:"
#: editor/animation_track_editor.cpp
msgid "Animation step value."
-msgstr ""
+msgstr "Animatsiooni sammu väärtus."
#: editor/animation_track_editor.cpp
msgid "Seconds"
msgstr "Sekundid"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
-msgstr "Kaadrit/Sekundis"
+msgstr "K/S"
#: editor/animation_track_editor.cpp editor/editor_properties.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -530,7 +531,7 @@ msgstr "Muuda"
#: editor/animation_track_editor.cpp
msgid "Animation properties."
-msgstr ""
+msgstr "Animatsiooni atribuudid."
#: editor/animation_track_editor.cpp
msgid "Copy Tracks"
@@ -638,9 +639,8 @@ msgid "Copy"
msgstr "Kopeeri"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select All/None"
-msgstr "Tühista Valik"
+msgstr "Vali kõik/mitte ükski"
#: editor/animation_track_editor_plugins.cpp
msgid "Add Audio Track Clip"
@@ -694,7 +694,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -773,7 +773,7 @@ msgstr ""
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
msgid "Add"
-msgstr ""
+msgstr "Lisa"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/editor_feature_profile.cpp editor/groups_editor.cpp
@@ -784,7 +784,7 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
#: editor/project_settings_editor.cpp
msgid "Remove"
-msgstr ""
+msgstr "Eemalda"
#: editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
@@ -800,7 +800,7 @@ msgstr ""
#: editor/connections_dialog.cpp
msgid "Advanced"
-msgstr ""
+msgstr "Täpsem"
#: editor/connections_dialog.cpp
msgid "Deferred"
@@ -835,7 +835,7 @@ msgstr ""
#: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Close"
-msgstr ""
+msgstr "Sulge"
#: editor/connections_dialog.cpp
msgid "Connect"
@@ -880,7 +880,12 @@ msgstr ""
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
-msgstr ""
+msgstr "Signaalid"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtreeri sõlmed"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
@@ -913,23 +918,23 @@ msgstr ""
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
msgid "Favorites:"
-msgstr ""
+msgstr "Lemmikud:"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
msgid "Recent:"
-msgstr ""
+msgstr "Hiljutised:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
-msgstr ""
+msgstr "Otsi:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
#: editor/property_selector.cpp editor/quick_open.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Matches:"
-msgstr ""
+msgstr "Vasted:"
#: editor/create_dialog.cpp editor/editor_plugin_settings.cpp
#: editor/plugin_config_dialog.cpp
@@ -937,7 +942,7 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Description:"
-msgstr ""
+msgstr "Kirjeldus:"
#: editor/dependency_editor.cpp
msgid "Search Replacement For:"
@@ -997,7 +1002,7 @@ msgstr ""
#: modules/visual_script/visual_script_property_selector.cpp
#: scene/gui/file_dialog.cpp
msgid "Open"
-msgstr ""
+msgstr "Ava"
#: editor/dependency_editor.cpp
msgid "Owners Of:"
@@ -1060,7 +1065,7 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp
#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
msgid "Delete"
-msgstr ""
+msgstr "Kustuta"
#: editor/dependency_editor.cpp
msgid "Owns"
@@ -1080,67 +1085,80 @@ msgstr ""
#: editor/editor_about.cpp
msgid "Thanks from the Godot community!"
-msgstr ""
+msgstr "Suur tänu Godot kogukonnalt!"
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
-msgstr ""
+msgstr "Godot mängumootori panustajad"
#: editor/editor_about.cpp
msgid "Project Founders"
-msgstr ""
+msgstr "Projekti asutajad"
#: editor/editor_about.cpp
msgid "Lead Developer"
-msgstr ""
+msgstr "Juhtiv arendaja"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
-msgstr ""
+msgstr "Projekti juht "
#: editor/editor_about.cpp
msgid "Developers"
-msgstr ""
+msgstr "Arendajad"
#: editor/editor_about.cpp
msgid "Authors"
-msgstr ""
+msgstr "Autorid"
#: editor/editor_about.cpp
msgid "Platinum Sponsors"
-msgstr ""
+msgstr "Plaatinumsponsorid"
#: editor/editor_about.cpp
msgid "Gold Sponsors"
-msgstr ""
+msgstr "Kuldsponsorid"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Hõbennetajad"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Pronksannetajad"
#: editor/editor_about.cpp
msgid "Mini Sponsors"
-msgstr ""
+msgstr "Väikesponsorid"
#: editor/editor_about.cpp
msgid "Gold Donors"
-msgstr ""
+msgstr "Kuldannetajad"
#: editor/editor_about.cpp
msgid "Silver Donors"
-msgstr ""
+msgstr "Hõbennetajad"
#: editor/editor_about.cpp
msgid "Bronze Donors"
-msgstr ""
+msgstr "Pronksannetajad"
#: editor/editor_about.cpp
msgid "Donors"
-msgstr ""
+msgstr "Annetajad"
#: editor/editor_about.cpp
msgid "License"
-msgstr ""
+msgstr "Litsents"
#: editor/editor_about.cpp
msgid "Third-party Licenses"
-msgstr ""
+msgstr "Kolmanda osapoole litsents"
#: editor/editor_about.cpp
msgid ""
@@ -1149,18 +1167,22 @@ msgid ""
"is an exhaustive list of all such third-party components with their "
"respective copyright statements and license terms."
msgstr ""
+"Godot mängumootor tugineb mitmetele kolmandate osapoolte tasuta ja avatud "
+"lähtekoodiga teekidele, mis kõik on kooskõlas MIT-litsentsi tingimustega. "
+"Järgnev on kõigi selliste kolmandate osapoolte komponentide täielik loetelu "
+"koos vastavate autoriõiguste avalduste ja litsentsitingimustega."
#: editor/editor_about.cpp
msgid "All Components"
-msgstr ""
+msgstr "Kõik komponendid"
#: editor/editor_about.cpp
msgid "Components"
-msgstr ""
+msgstr "Komponendid"
#: editor/editor_about.cpp
msgid "Licenses"
-msgstr ""
+msgstr "Litsensid"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Error opening package file, not in ZIP format."
@@ -1205,11 +1227,11 @@ msgstr ""
#: editor/editor_audio_buses.cpp
msgid "Speakers"
-msgstr ""
+msgstr "Heliväljundi"
#: editor/editor_audio_buses.cpp
msgid "Add Effect"
-msgstr ""
+msgstr "Lisa efekt"
#: editor/editor_audio_buses.cpp
msgid "Rename Audio Bus"
@@ -1237,7 +1259,7 @@ msgstr ""
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus Effect"
-msgstr ""
+msgstr "Lisa helisiini efekt"
#: editor/editor_audio_buses.cpp
msgid "Move Bus Effect"
@@ -1270,7 +1292,7 @@ msgstr ""
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
-msgstr ""
+msgstr "Duplikeeri"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
@@ -1356,7 +1378,7 @@ msgstr "Lae olemasolev siini paigutus."
#: editor/editor_audio_buses.cpp
msgid "Save As"
-msgstr "Salvesta kui…"
+msgstr "Salvesta kui"
#: editor/editor_audio_buses.cpp
msgid "Save this Bus Layout to a file."
@@ -1510,7 +1532,6 @@ msgid "Choose"
msgstr "Vali"
#: editor/editor_export.cpp
-#, fuzzy
msgid "Storing File:"
msgstr "Salvestan faili:"
@@ -1571,7 +1592,7 @@ msgstr ""
#: editor/editor_feature_profile.cpp
msgid "3D Editor"
-msgstr "3D-redigeerija"
+msgstr "3D-redaktor"
#: editor/editor_feature_profile.cpp
msgid "Script Editor"
@@ -1586,15 +1607,16 @@ msgid "Scene Tree Editing"
msgstr "Stseenipuu redigeerimine"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
-msgstr ""
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Failikuvaja"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1715,7 +1737,7 @@ msgstr "Ekspordi profiil"
#: editor/editor_feature_profile.cpp
msgid "Manage Editor Feature Profiles"
-msgstr "Halda redigeerija funktsioonide profiile"
+msgstr "Halda redaktori funktsioonide profiile"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select Current Folder"
@@ -1823,14 +1845,12 @@ msgid "Move Favorite Down"
msgstr "Liiguta lemmikud alla"
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to previous folder."
-msgstr "Mine Eelmisele Sammule"
+msgstr "Mine eelmisesse kausta."
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to next folder."
-msgstr "Mine Järgmisele Sammule"
+msgstr "Mine järmisesse kausta."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Go to parent folder."
@@ -1862,7 +1882,7 @@ msgstr "Kataloogid ja failid:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Eelvaade:"
@@ -1887,7 +1907,6 @@ msgstr ""
"katkestati"
#: editor/editor_file_system.cpp
-#, fuzzy
msgid "(Re)Importing Assets"
msgstr "(Taas)impordin varasid"
@@ -1906,7 +1925,7 @@ msgstr "Pärib:"
#: editor/editor_help.cpp
msgid "Inherited by:"
-msgstr "Päritud %s poolt"
+msgstr "Päritud %s poolt:"
#: editor/editor_help.cpp
msgid "Description"
@@ -2073,15 +2092,13 @@ msgstr "Puhasta väljund"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Stop"
-msgstr "Peatu/Stopp"
+msgstr "Lõpeta"
#: editor/editor_network_profiler.cpp editor/editor_profiler.cpp
#: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp
-#, fuzzy
msgid "Start"
-msgstr "Start/Käivita"
+msgstr "Käivita"
#: editor/editor_network_profiler.cpp
msgid "%s/s"
@@ -2281,16 +2298,12 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
#: editor/editor_node.cpp editor/filesystem_dock.cpp
msgid "Open Scene"
-msgstr ""
+msgstr "Ava stseen"
#: editor/editor_node.cpp
msgid "Open Base Scene"
@@ -2298,15 +2311,15 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Quick Open..."
-msgstr ""
+msgstr "Ava kiiresti..."
#: editor/editor_node.cpp
msgid "Quick Open Scene..."
-msgstr ""
+msgstr "Ava kiiresti stseen..."
#: editor/editor_node.cpp
msgid "Quick Open Script..."
-msgstr ""
+msgstr "Ava kiiresti skript..."
#: editor/editor_node.cpp
msgid "Save & Close"
@@ -2326,7 +2339,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Save Scene As..."
-msgstr ""
+msgstr "Salvesta stseen kui..."
#: editor/editor_node.cpp
msgid "No"
@@ -2369,9 +2382,8 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "Stseeni salvestamine"
+msgstr "Taaslae salvestatud stseen"
#: editor/editor_node.cpp
msgid ""
@@ -2385,19 +2397,19 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Quit"
-msgstr ""
+msgstr "Välju"
#: editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr ""
+msgstr "Välju redaktorist?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
-msgstr ""
+msgstr "Ava projekti juht?"
#: editor/editor_node.cpp
msgid "Save & Quit"
-msgstr ""
+msgstr "Salvesta ja välju"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
@@ -2419,11 +2431,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Close Scene"
-msgstr ""
+msgstr "Sule stseen"
#: editor/editor_node.cpp
msgid "Reopen Closed Scene"
-msgstr ""
+msgstr "Taasava suletud stseen"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
@@ -2435,22 +2447,28 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s'."
-msgstr ""
+msgstr "Lisa-skripti ei olnud võimalik laadida teelt: '%s'."
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' There seems to be an error in "
"the code, please check the syntax."
msgstr ""
+"Lisa-skripti ei olnud võimalik laadida teelt: '%s'. Tundub, et koodis on "
+"viga, palun kontrolli süntaksi."
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
msgstr ""
+"Lisa-skripti ei olnud võimalik laadida teelt: '%s'. Baastüüp ei ole "
+"EditorPlugin."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
msgstr ""
+"Lisa-skripti ei olnud võimalik laadida teelt: '%s'. Skript ei ole tööriista "
+"režiimis."
#: editor/editor_node.cpp
msgid ""
@@ -2504,7 +2522,7 @@ msgstr ""
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
msgid "Default"
-msgstr ""
+msgstr "Vaikimisi"
#: editor/editor_node.cpp editor/editor_properties.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
@@ -2513,7 +2531,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Play This Scene"
-msgstr ""
+msgstr "Mängi seda stseeni"
#: editor/editor_node.cpp
msgid "Close Tab"
@@ -2553,7 +2571,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Dock Position"
-msgstr ""
+msgstr "Doki asukoht"
#: editor/editor_node.cpp
msgid "Distraction Free Mode"
@@ -2565,20 +2583,19 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Add a new scene."
-msgstr ""
+msgstr "Lisa uus stseen."
#: editor/editor_node.cpp
msgid "Scene"
-msgstr ""
+msgstr "Stseen"
#: editor/editor_node.cpp
msgid "Go to previously opened scene."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Copy Text"
-msgstr "Kopeeri"
+msgstr "Kopeeri tekst"
#: editor/editor_node.cpp
msgid "Next tab"
@@ -2598,31 +2615,31 @@ msgstr ""
#: editor/editor_node.cpp
msgid "New Scene"
-msgstr ""
+msgstr "Uus stseen"
#: editor/editor_node.cpp
msgid "New Inherited Scene..."
-msgstr ""
+msgstr "Uus päritud stseen..."
#: editor/editor_node.cpp
msgid "Open Scene..."
-msgstr ""
+msgstr "Ava stseen..."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Open Recent"
-msgstr ""
+msgstr "Hiljuti avatud"
#: editor/editor_node.cpp
msgid "Save Scene"
-msgstr ""
+msgstr "Salvesta stseen"
#: editor/editor_node.cpp
msgid "Save All Scenes"
-msgstr ""
+msgstr "Salvesta kõik stseenid"
#: editor/editor_node.cpp
msgid "Convert To..."
-msgstr ""
+msgstr "Teisenda..."
#: editor/editor_node.cpp
msgid "MeshLibrary..."
@@ -2635,12 +2652,12 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Undo"
-msgstr ""
+msgstr "Võta tagasi"
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Redo"
-msgstr ""
+msgstr "Tee uuesti"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
@@ -2649,11 +2666,11 @@ msgstr ""
#: editor/editor_node.cpp editor/project_manager.cpp
#: editor/script_create_dialog.cpp
msgid "Project"
-msgstr ""
+msgstr "Projekt"
#: editor/editor_node.cpp
msgid "Project Settings..."
-msgstr ""
+msgstr "Projekti sätted..."
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Version Control"
@@ -2669,7 +2686,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Export..."
-msgstr ""
+msgstr "Ekspordi..."
#: editor/editor_node.cpp
msgid "Install Android Build Template..."
@@ -2681,7 +2698,7 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
-msgstr ""
+msgstr "Tööriistad"
#: editor/editor_node.cpp
msgid "Orphan Resource Explorer..."
@@ -2694,7 +2711,7 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
msgid "Debug"
-msgstr ""
+msgstr "Silumine"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
@@ -2702,22 +2719,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2726,8 +2747,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2736,49 +2757,51 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
-msgstr ""
+#, fuzzy
+msgid "Synchronize Scene Changes"
+msgstr "Pinna muutused"
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
-msgstr ""
+#, fuzzy
+msgid "Synchronize Script Changes"
+msgstr "Varjutaja muutused"
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
-msgstr ""
+msgstr "Redaktor"
#: editor/editor_node.cpp
msgid "Editor Settings..."
-msgstr ""
+msgstr "Redaktori sätted..."
#: editor/editor_node.cpp
msgid "Editor Layout"
-msgstr ""
+msgstr "Redaktori paigutus"
#: editor/editor_node.cpp
msgid "Take Screenshot"
-msgstr ""
+msgstr "Tee ekraanipilt"
#: editor/editor_node.cpp
msgid "Screenshots are stored in the Editor Data/Settings Folder."
@@ -2814,77 +2837,77 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
msgid "Help"
-msgstr ""
+msgstr "Abi"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
-msgstr ""
+msgstr "Otsi"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/plugins/shader_editor_plugin.cpp
msgid "Online Docs"
-msgstr ""
+msgstr "Veebidokumentatsioonid"
#: editor/editor_node.cpp
msgid "Q&A"
-msgstr ""
+msgstr "Küsimused & vastused"
#: editor/editor_node.cpp
msgid "Report a Bug"
-msgstr ""
+msgstr "Teavita veast"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
-msgstr ""
+msgstr "Saada dokumentatsioonide tagasiside"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr ""
+msgstr "Kogukond"
#: editor/editor_node.cpp
msgid "About"
-msgstr ""
+msgstr "Teave"
#: editor/editor_node.cpp
msgid "Play the project."
-msgstr ""
+msgstr "Mängi projekti."
#: editor/editor_node.cpp
msgid "Play"
-msgstr ""
+msgstr "Mängi"
#: editor/editor_node.cpp
msgid "Pause the scene execution for debugging."
-msgstr ""
+msgstr "Peata stseeni töö selle silumiseks."
#: editor/editor_node.cpp
msgid "Pause Scene"
-msgstr ""
+msgstr "Peata stseen"
#: editor/editor_node.cpp
msgid "Stop the scene."
-msgstr ""
+msgstr "Lõpeta stseen."
#: editor/editor_node.cpp
msgid "Play the edited scene."
-msgstr ""
+msgstr "Mängi redigeeritud stseeni."
#: editor/editor_node.cpp
msgid "Play Scene"
-msgstr ""
+msgstr "Mängi stseeni"
#: editor/editor_node.cpp
msgid "Play custom scene"
-msgstr ""
+msgstr "Mängi kohandatud stseeni"
#: editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr ""
+msgstr "Mängi kohandatud stseeni"
#: editor/editor_node.cpp
msgid "Changing the video driver requires restarting the editor."
@@ -2913,19 +2936,19 @@ msgstr ""
#: editor/editor_node.cpp
msgid "FileSystem"
-msgstr ""
+msgstr "Failikuvaja"
#: editor/editor_node.cpp
msgid "Inspector"
-msgstr ""
+msgstr "Ülevaataja"
#: editor/editor_node.cpp
msgid "Expand Bottom Panel"
-msgstr ""
+msgstr "Laienda alumist paneeli"
#: editor/editor_node.cpp
msgid "Output"
-msgstr ""
+msgstr "Väljund"
#: editor/editor_node.cpp
msgid "Don't Save"
@@ -2984,7 +3007,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Load Errors"
-msgstr ""
+msgstr "Laadimisvead"
#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
msgid "Select"
@@ -3016,7 +3039,7 @@ msgstr ""
#: editor/editor_node.h
msgid "Warning!"
-msgstr ""
+msgstr "Hoiatus!"
#: editor/editor_path.cpp
msgid "No sub-resources found."
@@ -3040,36 +3063,36 @@ msgstr ""
#: editor/editor_plugin_settings.cpp
msgid "Installed Plugins:"
-msgstr ""
+msgstr "Paigaldatud pistikprogrammid:"
#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
msgid "Update"
-msgstr ""
+msgstr "Uuenda"
#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Version:"
-msgstr ""
+msgstr "Versioon:"
#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp
msgid "Author:"
-msgstr ""
+msgstr "Autor:"
#: editor/editor_plugin_settings.cpp
msgid "Status:"
-msgstr ""
+msgstr "Olek:"
#: editor/editor_plugin_settings.cpp
msgid "Edit:"
-msgstr ""
+msgstr "Muuda:"
#: editor/editor_profiler.cpp
msgid "Measure:"
-msgstr ""
+msgstr "Mõõda:"
#: editor/editor_profiler.cpp
msgid "Frame Time (sec)"
-msgstr ""
+msgstr "Kaadri aeg (sek)"
#: editor/editor_profiler.cpp
msgid "Average Time (sec)"
@@ -3077,7 +3100,7 @@ msgstr ""
#: editor/editor_profiler.cpp
msgid "Frame %"
-msgstr ""
+msgstr "Kaadri %"
#: editor/editor_profiler.cpp
msgid "Physics Frame %"
@@ -3093,15 +3116,15 @@ msgstr ""
#: editor/editor_profiler.cpp
msgid "Frame #:"
-msgstr ""
+msgstr "Kaader nr:"
#: editor/editor_profiler.cpp
msgid "Time"
-msgstr ""
+msgstr "Aeg"
#: editor/editor_profiler.cpp
msgid "Calls"
-msgstr ""
+msgstr "Kutsungid"
#: editor/editor_properties.cpp
msgid "Edit Text:"
@@ -3153,15 +3176,15 @@ msgstr ""
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Pick a Viewport"
-msgstr ""
+msgstr "Vali vaateaken"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "New Script"
-msgstr ""
+msgstr "Uus skript"
#: editor/editor_properties.cpp editor/scene_tree_dock.cpp
msgid "Extend Script"
-msgstr ""
+msgstr "Laienda skripti"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "New %s"
@@ -3212,7 +3235,7 @@ msgstr ""
#: editor/editor_properties_array_dict.cpp
msgid "New Value:"
-msgstr ""
+msgstr "Uus väärtus:"
#: editor/editor_properties_array_dict.cpp
msgid "Add Key/Value Pair"
@@ -3221,7 +3244,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -3441,7 +3465,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Current Version:"
-msgstr ""
+msgstr "Praegune versioon:"
#: editor/export_template_manager.cpp
msgid "Installed Versions:"
@@ -3553,7 +3577,7 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Add to Favorites"
-msgstr ""
+msgstr "Lisa lemmikutesse"
#: editor/filesystem_dock.cpp
msgid "Remove from Favorites"
@@ -3561,60 +3585,60 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies..."
-msgstr ""
+msgstr "Redigeeri sõltuvusi..."
#: editor/filesystem_dock.cpp
msgid "View Owners..."
-msgstr ""
+msgstr "Kuva omanikud..."
#: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Rename..."
-msgstr ""
+msgstr "Muuda nime..."
#: editor/filesystem_dock.cpp
msgid "Duplicate..."
-msgstr ""
+msgstr "Duplikeeri..."
#: editor/filesystem_dock.cpp
msgid "Move To..."
-msgstr ""
+msgstr "Teisalda..."
#: editor/filesystem_dock.cpp
msgid "New Scene..."
-msgstr ""
+msgstr "Uus stseen..."
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "New Script..."
-msgstr ""
+msgstr "Uus skript..."
#: editor/filesystem_dock.cpp
msgid "New Resource..."
-msgstr ""
+msgstr "Uus ressurss..."
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
msgid "Expand All"
-msgstr ""
+msgstr "Laienda kõik"
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
msgid "Collapse All"
-msgstr ""
+msgstr "Ahenda kõik"
#: editor/filesystem_dock.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#: editor/project_manager.cpp editor/rename_dialog.cpp
#: editor/scene_tree_dock.cpp
msgid "Rename"
-msgstr ""
+msgstr "Nimeta ümber"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
-msgstr ""
+msgstr "Eelmine kaust/fail"
#: editor/filesystem_dock.cpp
msgid "Next Folder/File"
-msgstr ""
+msgstr "Järgmine kaust/fail"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
@@ -3622,11 +3646,11 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Toggle Split Mode"
-msgstr ""
+msgstr "Lülita jagamisrežiim sisse/välja"
#: editor/filesystem_dock.cpp
msgid "Search files"
-msgstr ""
+msgstr "Otsi faile"
#: editor/filesystem_dock.cpp
msgid ""
@@ -3647,13 +3671,12 @@ msgid "Overwrite"
msgstr ""
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Create Scene"
-msgstr "Loo"
+msgstr "Loo stseen"
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
-msgstr ""
+msgstr "Loo skript"
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
msgid "Find in Files"
@@ -3688,7 +3711,7 @@ msgstr ""
#: editor/find_in_files.cpp editor/progress_dialog.cpp scene/gui/dialogs.cpp
msgid "Cancel"
-msgstr ""
+msgstr "Tühista"
#: editor/find_in_files.cpp
msgid "Find: "
@@ -3704,7 +3727,7 @@ msgstr ""
#: editor/find_in_files.cpp
msgid "Searching..."
-msgstr ""
+msgstr "Otsin..."
#: editor/find_in_files.cpp
msgid "Search complete"
@@ -3736,7 +3759,7 @@ msgstr ""
#: editor/groups_editor.cpp editor/node_dock.cpp
msgid "Groups"
-msgstr ""
+msgstr "Rühmad"
#: editor/groups_editor.cpp
msgid "Nodes Not in Group"
@@ -3745,7 +3768,7 @@ msgstr ""
#: editor/groups_editor.cpp editor/scene_tree_dock.cpp
#: editor/scene_tree_editor.cpp
msgid "Filter nodes"
-msgstr ""
+msgstr "Filtreeri sõlmed"
#: editor/groups_editor.cpp
msgid "Nodes in Group"
@@ -3761,7 +3784,7 @@ msgstr ""
#: editor/groups_editor.cpp
msgid "Manage Groups"
-msgstr ""
+msgstr "Halda gruppe"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Single Scene"
@@ -3858,15 +3881,15 @@ msgstr ""
#: editor/import_dock.cpp
msgid "Import As:"
-msgstr ""
+msgstr "Impordi kui:"
#: editor/import_dock.cpp
msgid "Preset"
-msgstr ""
+msgstr "Eelseadistus"
#: editor/import_dock.cpp
msgid "Reimport"
-msgstr ""
+msgstr "Taasimpordi"
#: editor/import_dock.cpp
msgid "Save Scenes, Re-Import, and Restart"
@@ -3932,7 +3955,7 @@ msgstr ""
#: editor/inspector_dock.cpp
msgid "Save the currently edited resource."
-msgstr ""
+msgstr "Salvesta käesolevalt muudetud ressurss."
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
@@ -3944,15 +3967,15 @@ msgstr ""
#: editor/inspector_dock.cpp
msgid "History of recently edited objects."
-msgstr ""
+msgstr "Hiljuti muudetud objektide ajalugu."
#: editor/inspector_dock.cpp
msgid "Object properties."
-msgstr ""
+msgstr "Objekti atribuudid."
#: editor/inspector_dock.cpp
msgid "Filter properties"
-msgstr ""
+msgstr "Filtreeri atribuudid"
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -3968,7 +3991,7 @@ msgstr ""
#: editor/plugin_config_dialog.cpp
msgid "Edit a Plugin"
-msgstr ""
+msgstr "Pistikprogrammi muutmine"
#: editor/plugin_config_dialog.cpp
msgid "Create a Plugin"
@@ -3976,7 +3999,7 @@ msgstr ""
#: editor/plugin_config_dialog.cpp
msgid "Plugin Name:"
-msgstr ""
+msgstr "Pistikprogrammi nimi:"
#: editor/plugin_config_dialog.cpp
msgid "Subfolder:"
@@ -3984,11 +4007,11 @@ msgstr ""
#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp
msgid "Language:"
-msgstr ""
+msgstr "Keel:"
#: editor/plugin_config_dialog.cpp
msgid "Script Name:"
-msgstr ""
+msgstr "Skripti nimi:"
#: editor/plugin_config_dialog.cpp
msgid "Activate now?"
@@ -4228,7 +4251,7 @@ msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)"
-msgstr ""
+msgstr "Kustuta sõlm(ed)"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Toggle Filter On/Off"
@@ -4254,19 +4277,16 @@ msgid ""
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Anim Clips"
-msgstr "Animatsiooni Klipid:"
+msgstr "Animatsiooniklipid"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Audio Clips"
-msgstr "Heliklipid:"
+msgstr "Heliklipid"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Functions"
-msgstr "Funktsioonid:"
+msgstr "Funktsioonid"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
@@ -4306,16 +4326,16 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Animation?"
-msgstr ""
+msgstr "Kustuta animatsioon?"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Remove Animation"
-msgstr ""
+msgstr "Eemalda animatioon"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Invalid animation name!"
-msgstr ""
+msgstr "Vigane animatsiooni nimi!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation name already exists!"
@@ -4392,11 +4412,11 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
-msgstr ""
+msgstr "Animatsiooni tööriistad"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation"
-msgstr ""
+msgstr "Animatsioon"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Edit Transitions..."
@@ -4404,7 +4424,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Open in Inspector"
-msgstr ""
+msgstr "Ava ülevaatajas"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Display list of animations in player."
@@ -4460,7 +4480,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Kaasa vidinad (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pin AnimationPlayer"
@@ -4732,7 +4752,7 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "View Files"
-msgstr ""
+msgstr "Kuva failid"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Connection error, please try again."
@@ -4779,9 +4799,8 @@ msgid "Request failed, timeout"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Timeout."
-msgstr "Aeg:"
+msgstr "Aeg maha."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
@@ -4841,11 +4860,11 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Recently Updated"
-msgstr ""
+msgstr "Hiljuti uuendatud"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Least Recently Updated"
-msgstr ""
+msgstr "Vanim uuendus"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Name (A-Z)"
@@ -4857,11 +4876,11 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "License (A-Z)"
-msgstr ""
+msgstr "Litsents (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "License (Z-A)"
-msgstr ""
+msgstr "Litsents (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "First"
@@ -4893,32 +4912,32 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Plugins..."
-msgstr ""
+msgstr "Pistikprogrammid..."
#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
msgid "Sort:"
-msgstr ""
+msgstr "Sordi:"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
msgid "Category:"
-msgstr ""
+msgstr "Kategooria:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Site:"
-msgstr ""
+msgstr "Veebisait:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Support"
-msgstr ""
+msgstr "Toetus"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Official"
-msgstr ""
+msgstr "Ametlik"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Testing"
-msgstr ""
+msgstr "Testimine"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Loading..."
@@ -4950,9 +4969,9 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
-msgstr ""
+msgstr "Eelvaade"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap"
@@ -4995,9 +5014,8 @@ msgid "Create Vertical Guide"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Vertical Guide"
-msgstr "Eemalda kehtetud võtmed"
+msgstr "Eemalda vertikaalne juht"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Horizontal Guide"
@@ -5008,9 +5026,8 @@ msgid "Create Horizontal Guide"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Horizontal Guide"
-msgstr "Eemalda kehtetud võtmed"
+msgstr "Eemalda horisontaalne juht"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create Horizontal and Vertical Guides"
@@ -5369,7 +5386,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View"
-msgstr ""
+msgstr "Kuva"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Always Show Grid"
@@ -5393,7 +5410,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Viewport"
-msgstr ""
+msgstr "Kuva vaateaken"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Group And Lock Icons"
@@ -6412,7 +6429,7 @@ msgstr ""
#: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Type:"
-msgstr ""
+msgstr "Tüüp:"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp
@@ -6550,21 +6567,21 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
-msgstr ""
+msgstr "Liiguta üles"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
-msgstr ""
+msgstr "Liiguta allapoole"
#: editor/plugins/script_editor_plugin.cpp
msgid "Next script"
-msgstr ""
+msgstr "Järgmine skript"
#: editor/plugins/script_editor_plugin.cpp
msgid "Previous script"
-msgstr ""
+msgstr "Eelmine skript"
#: editor/plugins/script_editor_plugin.cpp
msgid "File"
@@ -6625,7 +6642,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
msgid "Run"
-msgstr ""
+msgstr "Käivita"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Into"
@@ -6637,12 +6654,12 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Break"
-msgstr ""
+msgstr "Paus"
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
#: editor/script_editor_debugger.cpp
msgid "Continue"
-msgstr ""
+msgstr "Jätka"
#: editor/plugins/script_editor_plugin.cpp
msgid "Keep Debugger Open"
@@ -6690,7 +6707,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Debugger"
-msgstr ""
+msgstr "Siluja"
#: editor/plugins/script_editor_plugin.cpp
msgid "Search Results"
@@ -6827,9 +6844,8 @@ msgid "Complete Symbol"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Evaluate Selection"
-msgstr "Kustuta Valim"
+msgstr "Hinda valikut"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
@@ -6853,7 +6869,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
-msgstr ""
+msgstr "Kontekstuaalne abi"
#: editor/plugins/script_text_editor.cpp
msgid "Toggle Bookmark"
@@ -6952,7 +6968,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective"
-msgstr ""
+msgstr "Perspektiiv"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
@@ -6996,35 +7012,35 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Pitch"
-msgstr ""
+msgstr "Frontaal"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Yaw"
-msgstr ""
+msgstr "Sagitaal"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Objects Drawn"
-msgstr ""
+msgstr "Objekte kuvatud"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Material Changes"
-msgstr ""
+msgstr "Materjali muutused"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Shader Changes"
-msgstr ""
+msgstr "Varjutaja muutused"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Surface Changes"
-msgstr ""
+msgstr "Pinna muutused"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Draw Calls"
-msgstr ""
+msgstr "Kuvamise kutsungid"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Vertices"
-msgstr ""
+msgstr "Tipud"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
@@ -7112,15 +7128,15 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Environment"
-msgstr ""
+msgstr "Kuva keskkond"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Gizmos"
-msgstr ""
+msgstr "Kuva vidinad"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Information"
-msgstr ""
+msgstr "Kuva informatsioon"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View FPS"
@@ -7128,7 +7144,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Half Resolution"
-msgstr ""
+msgstr "Poolresolutioon"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Audio Listener"
@@ -7140,7 +7156,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Cinematic Preview"
-msgstr ""
+msgstr "Kinemaatiline eelvaade"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
@@ -7226,27 +7242,27 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
-msgstr ""
+msgstr "Altvaade"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View"
-msgstr ""
+msgstr "Ülavaade"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View"
-msgstr ""
+msgstr "Tagavaade"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View"
-msgstr ""
+msgstr "Eesvaade"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View"
-msgstr ""
+msgstr "Vasakvaade"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View"
-msgstr ""
+msgstr "Paremvaade"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Switch Perspective/Orthogonal View"
@@ -7258,11 +7274,11 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
-msgstr ""
+msgstr "Fookuse alge"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
-msgstr ""
+msgstr "Fookuse valik"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Toggle Freelook"
@@ -7283,44 +7299,44 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "1 Viewport"
-msgstr ""
+msgstr "1 vaateaken"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports"
-msgstr ""
+msgstr "2 vaateakent"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports (Alt)"
-msgstr ""
+msgstr "2 vaateakent (alt)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports"
-msgstr ""
+msgstr "3 vaateakent"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports (Alt)"
-msgstr ""
+msgstr "3 vaateakent (alt)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "4 Viewports"
-msgstr ""
+msgstr "4 vaateakent"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Gizmos"
-msgstr ""
+msgstr "Vidinad"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
-msgstr ""
+msgstr "Kuva lähtekoht"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Grid"
-msgstr ""
+msgstr "Kuva ruudustik"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
-msgstr ""
+msgstr "Sätted..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
@@ -7340,7 +7356,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Viewport Settings"
-msgstr ""
+msgstr "Vaateakna sätted"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective FOV (deg.):"
@@ -7496,7 +7512,7 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Unable to load images"
-msgstr ""
+msgstr "Pilte ei saa laadida"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
@@ -7535,12 +7551,12 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
-msgstr ""
+msgstr "Kordus"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Animation Frames:"
@@ -7769,7 +7785,7 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Data Type:"
-msgstr ""
+msgstr "Andmetüüp:"
#: editor/plugins/theme_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp
@@ -7897,7 +7913,7 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from Scene"
-msgstr ""
+msgstr "Liida stseenist"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "New Single Tile"
@@ -8240,9 +8256,8 @@ msgid "Renamed"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Deleted"
-msgstr "Kustuta Võti (Võtmed)"
+msgstr "Kustutatud"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Typechange"
@@ -8269,7 +8284,7 @@ msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
-msgstr ""
+msgstr "Olek"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "View file diffs before committing them to the latest version"
@@ -9141,7 +9156,7 @@ msgstr ""
#: editor/project_export.cpp editor/project_settings_editor.cpp
msgid "Add..."
-msgstr ""
+msgstr "Lisa..."
#: editor/project_export.cpp
msgid ""
@@ -9215,7 +9230,7 @@ msgstr ""
#: editor/project_export.cpp
msgid "Script"
-msgstr ""
+msgstr "Skript"
#: editor/project_export.cpp
msgid "Script Export Mode:"
@@ -9514,13 +9529,14 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
-msgstr ""
+msgstr "projektihaldur"
#: editor/project_manager.cpp
msgid "Projects"
-msgstr ""
+msgstr "Projektid"
#: editor/project_manager.cpp
msgid "Last Modified"
@@ -9528,7 +9544,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Scan"
-msgstr ""
+msgstr "Otsi"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
@@ -9536,7 +9552,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "New Project"
-msgstr ""
+msgstr "Uus projekt"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -9544,7 +9560,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Templates"
-msgstr ""
+msgstr "Mallid"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -9789,11 +9805,11 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Project Settings (project.godot)"
-msgstr ""
+msgstr "Projekti sätted (project.godot)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "General"
-msgstr ""
+msgstr "Üldine"
#: editor/project_settings_editor.cpp
msgid "Override For..."
@@ -9829,15 +9845,15 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Localization"
-msgstr ""
+msgstr "Tõlked"
#: editor/project_settings_editor.cpp
msgid "Translations"
-msgstr ""
+msgstr "Tõlked"
#: editor/project_settings_editor.cpp
msgid "Translations:"
-msgstr ""
+msgstr "Tõlked:"
#: editor/project_settings_editor.cpp
msgid "Remaps"
@@ -9881,7 +9897,7 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Plugins"
-msgstr ""
+msgstr "Pistikprogrammid"
#: editor/property_editor.cpp
msgid "Preset..."
@@ -9944,11 +9960,15 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -9957,7 +9977,7 @@ msgstr ""
#: editor/rename_dialog.cpp
msgid "Advanced Options"
-msgstr ""
+msgstr "Täpsemad sätted"
#: editor/rename_dialog.cpp
msgid "Substitute"
@@ -9994,7 +10014,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10052,7 +10072,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10159,8 +10179,12 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Kustuta %d sõlmed ja iga alamsõlm?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
-msgstr "Kustuta Võti (Võtmed)"
+msgstr "Kustuta %d sõlmed?"
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
@@ -10171,9 +10195,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "Kustuta Võti (Võtmed)"
+msgstr "Kustuta sõlm \"%s\"?"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -10221,7 +10244,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "User Interface"
-msgstr ""
+msgstr "Kasutajaliides"
#: editor/scene_tree_dock.cpp
msgid "Other Node"
@@ -10237,7 +10260,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Attach Script"
-msgstr ""
+msgstr "Manusta skript"
#: editor/scene_tree_dock.cpp
msgid "Remove Node(s)"
@@ -10263,7 +10286,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Sub-Resources"
-msgstr ""
+msgstr "Alamressursid"
#: editor/scene_tree_dock.cpp
msgid "Clear Inheritance"
@@ -10279,7 +10302,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Open Documentation"
-msgstr ""
+msgstr "Ava dokumentatsioon"
#: editor/scene_tree_dock.cpp
msgid ""
@@ -10290,15 +10313,15 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
-msgstr ""
+msgstr "Lisa alamsõlm"
#: editor/scene_tree_dock.cpp
msgid "Expand/Collapse All"
-msgstr ""
+msgstr "Laienda/ahenda kõik"
#: editor/scene_tree_dock.cpp
msgid "Change Type"
-msgstr ""
+msgstr "Muuda tüüpi"
#: editor/scene_tree_dock.cpp
msgid "Reparent to New Node"
@@ -10306,7 +10329,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Make Scene Root"
-msgstr ""
+msgstr "Tee stseeni juurikaks"
#: editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -10314,11 +10337,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
msgid "Save Branch as Scene"
-msgstr ""
+msgstr "Salvesta filiaal stseenina"
#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
msgid "Copy Node Path"
-msgstr ""
+msgstr "Kopeeri sõlme tee"
#: editor/scene_tree_dock.cpp
msgid "Delete (No Confirm)"
@@ -10326,7 +10349,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Add/Create a New Node."
-msgstr ""
+msgstr "Lisa/loo uus sõlm."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -10336,7 +10359,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Attach a new or existing script to the selected node."
-msgstr ""
+msgstr "Kinnita uus või olemasolev skript valitud sõlmele."
#: editor/scene_tree_dock.cpp
msgid "Detach the script from the selected node."
@@ -10496,7 +10519,7 @@ msgstr ""
#: editor/script_create_dialog.cpp
msgid "Open Script"
-msgstr ""
+msgstr "Ava skript"
#: editor/script_create_dialog.cpp
msgid "File exists, it will be reused."
@@ -10573,9 +10596,8 @@ msgid "Warning:"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Error:"
-msgstr "Peegel"
+msgstr "Viga:"
#: editor/script_editor_debugger.cpp
msgid "C++ Error"
@@ -10603,7 +10625,7 @@ msgstr ""
#: editor/script_editor_debugger.cpp
msgid "Errors"
-msgstr ""
+msgstr "Vead"
#: editor/script_editor_debugger.cpp
msgid "Child process connected."
@@ -10611,11 +10633,11 @@ msgstr ""
#: editor/script_editor_debugger.cpp
msgid "Copy Error"
-msgstr ""
+msgstr "Kopeeri viga"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
-msgstr ""
+msgstr "Videomälu"
#: editor/script_editor_debugger.cpp
msgid "Skip Breakpoints"
@@ -10631,7 +10653,7 @@ msgstr ""
#: editor/script_editor_debugger.cpp
msgid "Stack Frames"
-msgstr ""
+msgstr "Virnakaadrid"
#: editor/script_editor_debugger.cpp
msgid "Profiler"
@@ -10643,15 +10665,15 @@ msgstr ""
#: editor/script_editor_debugger.cpp
msgid "Monitor"
-msgstr ""
+msgstr "Jälgija"
#: editor/script_editor_debugger.cpp
msgid "Value"
-msgstr ""
+msgstr "Väärtus"
#: editor/script_editor_debugger.cpp
msgid "Monitors"
-msgstr ""
+msgstr "Jälgijad"
#: editor/script_editor_debugger.cpp
msgid "Pick one or more items from the list to display the graph."
@@ -10659,7 +10681,7 @@ msgstr ""
#: editor/script_editor_debugger.cpp
msgid "List of Video Memory Usage by Resource:"
-msgstr ""
+msgstr "Videomälu kasutamise loetelu ressursside kaupa:"
#: editor/script_editor_debugger.cpp
msgid "Total:"
@@ -10671,7 +10693,7 @@ msgstr ""
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
-msgstr ""
+msgstr "Ressursi tee"
#: editor/script_editor_debugger.cpp
msgid "Type"
@@ -10679,15 +10701,15 @@ msgstr ""
#: editor/script_editor_debugger.cpp
msgid "Format"
-msgstr ""
+msgstr "Formaat"
#: editor/script_editor_debugger.cpp
msgid "Usage"
-msgstr ""
+msgstr "Kasutus"
#: editor/script_editor_debugger.cpp
msgid "Misc"
-msgstr ""
+msgstr "Muud"
#: editor/script_editor_debugger.cpp
msgid "Clicked Control:"
@@ -10706,8 +10728,9 @@ msgid "Set From Tree"
msgstr ""
#: editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Export measures as CSV"
-msgstr ""
+msgstr "Ekspordi mõõtmed/meetmed CSV-vormingus"
#: editor/settings_config_dialog.cpp
msgid "Erase Shortcut"
@@ -10723,15 +10746,15 @@ msgstr ""
#: editor/settings_config_dialog.cpp
msgid "Editor Settings"
-msgstr ""
+msgstr "Redaktori sätted"
#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
-msgstr ""
+msgstr "Kiirklahvid"
#: editor/settings_config_dialog.cpp
msgid "Binding"
-msgstr ""
+msgstr "Kombinatsioon"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
@@ -10851,11 +10874,11 @@ msgstr ""
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
-msgstr ""
+msgstr "Teek"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
-msgstr ""
+msgstr "Teegid: "
#: modules/gdnative/register_types.cpp
msgid "GDNative"
@@ -10998,9 +11021,8 @@ msgid "Cursor Clear Rotation"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Paste Selects"
-msgstr "Kustuta Valitud Võti (Võtmed)"
+msgstr "Kleebi valikud"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clear Selection"
@@ -11347,9 +11369,8 @@ msgid "Try to only have one sequence input in selection."
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create Function"
-msgstr "Loo"
+msgstr "Loo funktsioon"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
@@ -11388,14 +11409,12 @@ msgid "Add Nodes..."
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function..."
-msgstr "Funktsioonid:"
+msgstr "Lisa funktsioon..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "function_name"
-msgstr "Funktsioonid:"
+msgstr "funktsiooni_nimi"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit its graph."
@@ -11418,9 +11437,8 @@ msgid "Cut Nodes"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Function"
-msgstr "Funktsioonid:"
+msgstr "Loo funktsioon"
#: modules/visual_script/visual_script_editor.cpp
msgid "Refresh Graph"
@@ -11767,6 +11785,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -11979,6 +12003,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12160,7 +12189,7 @@ msgstr ""
#: scene/gui/dialogs.cpp
msgid "Please Confirm..."
-msgstr ""
+msgstr "Palun kinnita..."
#: scene/gui/popup.cpp
msgid ""
diff --git a/editor/translations/eu.po b/editor/translations/eu.po
index e461c0f1ec..07923f26fb 100644
--- a/editor/translations/eu.po
+++ b/editor/translations/eu.po
@@ -507,6 +507,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -685,7 +686,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -874,6 +875,10 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -911,7 +916,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1090,6 +1095,9 @@ msgstr "Proiektuaren sortzaileak"
msgid "Lead Developer"
msgstr "Garatzaile nagusia"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Proiektu-kudeatzailea "
@@ -1111,6 +1119,16 @@ msgid "Gold Sponsors"
msgstr "Urrezko babesleak"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Zilarrezko emaileak"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Brontzezko emaileak"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini babesleak"
@@ -1574,15 +1592,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1845,7 +1863,7 @@ msgstr "Direktorioak eta fitxategiak:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Aurrebista:"
@@ -2255,10 +2273,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2675,22 +2689,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2699,8 +2717,8 @@ msgstr "Talka formak ikusgai"
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2709,32 +2727,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2794,7 +2812,7 @@ msgstr "Laguntza"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Bilatu"
@@ -3194,7 +3212,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4924,7 +4943,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7506,7 +7525,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9485,6 +9504,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9917,11 +9937,15 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -9967,7 +9991,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10025,7 +10049,8 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Adierazpen erregularraren errorea"
#: editor/rename_dialog.cpp
@@ -10132,6 +10157,10 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr ""
@@ -11735,6 +11764,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -11947,6 +11982,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/extract.py b/editor/translations/extract.py
index 749bad5fff..93124ec30c 100755
--- a/editor/translations/extract.py
+++ b/editor/translations/extract.py
@@ -33,6 +33,7 @@ matches.sort()
unique_str = []
unique_loc = {}
+ctx_group = {} # Store msgctx, msg, and locations.
main_po = """
# LANGUAGE translation of the Godot Engine editor.
# Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.
@@ -48,22 +49,169 @@ msgstr ""
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\\n"
"MIME-Version: 1.0\\n"
"Content-Type: text/plain; charset=UTF-8\\n"
-"Content-Transfer-Encoding: 8-bit\\n"
+"Content-Transfer-Encoding: 8-bit\\n"\n
"""
+def _write_message(msgctx, msg, msg_plural, location):
+ global main_po
+ main_po += "#: " + location + "\n"
+ if msgctx != "":
+ main_po += 'msgctxt "' + msgctx + '"\n'
+ main_po += 'msgid "' + msg + '"\n'
+ if msg_plural != "":
+ main_po += 'msgid_plural "' + msg_plural + '"\n'
+ main_po += 'msgstr[0] ""\n'
+ main_po += 'msgstr[1] ""\n\n'
+ else:
+ main_po += 'msgstr ""\n\n'
+
+
+def _add_additional_location(msgctx, msg, location):
+ global main_po
+ # Add additional location to previous occurrence.
+ if msgctx != "":
+ msg_pos = main_po.find('\nmsgctxt "' + msgctx + '"\nmsgid "' + msg + '"')
+ else:
+ msg_pos = main_po.find('\nmsgid "' + msg + '"')
+
+ if msg_pos == -1:
+ print("Someone apparently thought writing Python was as easy as GDScript. Ping Akien.")
+ main_po = main_po[:msg_pos] + " " + location + main_po[msg_pos:]
+
+
+def _write_translator_comment(msgctx, msg, translator_comment):
+ if translator_comment == "":
+ return
+
+ global main_po
+ if msgctx != "":
+ msg_pos = main_po.find('\nmsgctxt "' + msgctx + '"\nmsgid "' + msg + '"')
+ else:
+ msg_pos = main_po.find('\nmsgid "' + msg + '"')
+
+ # If it's a new message, just append comment to the end of PO file.
+ if msg_pos == -1:
+ main_po += _format_translator_comment(translator_comment, True)
+ return
+
+ # Find position just before location. Translator comment will be added there.
+ translator_comment_pos = main_po.rfind("\n\n#", 0, msg_pos) + 2
+ if translator_comment_pos - 2 == -1:
+ print("translator_comment_pos not found")
+ return
+
+ # Check if a previous translator comment already exists. If so, merge them together.
+ if main_po.find("TRANSLATORS:", translator_comment_pos, msg_pos) != -1:
+ translator_comment_pos = main_po.find("\n#:", translator_comment_pos, msg_pos) + 1
+ if translator_comment_pos == 0:
+ print('translator_comment_pos after "TRANSLATORS:" not found')
+ return
+ main_po = (
+ main_po[:translator_comment_pos]
+ + _format_translator_comment(translator_comment, False)
+ + main_po[translator_comment_pos:]
+ )
+ return
+
+ main_po = (
+ main_po[:translator_comment_pos]
+ + _format_translator_comment(translator_comment, True)
+ + main_po[translator_comment_pos:]
+ )
+
+
+def _format_translator_comment(comment, new):
+ if not comment:
+ return ""
+
+ comment_lines = comment.split("\n")
+
+ formatted_comment = ""
+ if not new:
+ for comment in comment_lines:
+ formatted_comment += "#. " + comment.strip() + "\n"
+ return formatted_comment
+
+ formatted_comment = "#. TRANSLATORS: "
+ for i in range(len(comment_lines)):
+ if i == 0:
+ formatted_comment += comment_lines[i].strip() + "\n"
+ else:
+ formatted_comment += "#. " + comment_lines[i].strip() + "\n"
+ return formatted_comment
+
+
+def _is_block_translator_comment(translator_line):
+ line = translator_line.strip()
+ if line.find("//") == 0:
+ return False
+ else:
+ return True
+
+
+def _extract_translator_comment(line, is_block_translator_comment):
+ line = line.strip()
+ reached_end = False
+ extracted_comment = ""
+
+ start = line.find("TRANSLATORS:")
+ if start == -1:
+ start = 0
+ else:
+ start += len("TRANSLATORS:")
+
+ if is_block_translator_comment:
+ # If '*/' is found, then it's the end.
+ if line.rfind("*/") != -1:
+ extracted_comment = line[start : line.rfind("*/")]
+ reached_end = True
+ else:
+ extracted_comment = line[start:]
+ else:
+ # If beginning is not '//', then it's the end.
+ if line.find("//") != 0:
+ reached_end = True
+ else:
+ start = 2 if start == 0 else start
+ extracted_comment = line[start:]
+
+ return (not reached_end, extracted_comment)
+
+
def process_file(f, fname):
global main_po, unique_str, unique_loc
+ patterns = ['RTR("', 'TTR("', 'TTRC("', 'TTRN("', 'RTRN("']
+
l = f.readline()
lc = 1
+ reading_translator_comment = False
+ is_block_translator_comment = False
+ translator_comment = ""
+
while l:
- patterns = ['RTR("', 'TTR("', 'TTRC("']
+ # Detect translator comments.
+ if not reading_translator_comment and l.find("TRANSLATORS:") != -1:
+ reading_translator_comment = True
+ is_block_translator_comment = _is_block_translator_comment(l)
+ translator_comment = ""
+
+ # Gather translator comments. It will be gathered for the next translation function.
+ if reading_translator_comment:
+ reading_translator_comment, extracted_comment = _extract_translator_comment(l, is_block_translator_comment)
+ if extracted_comment != "":
+ translator_comment += extracted_comment + "\n"
+ if not reading_translator_comment:
+ translator_comment = translator_comment[:-1] # Remove extra \n at the end.
+
idx = 0
pos = 0
- while pos >= 0:
+
+ while not reading_translator_comment and pos >= 0:
+ # Loop until a pattern is found. If not, next line.
pos = l.find(patterns[idx], pos)
if pos == -1:
if idx < len(patterns) - 1:
@@ -72,28 +220,68 @@ def process_file(f, fname):
continue
pos += len(patterns[idx])
+ # Read msg until "
msg = ""
while pos < len(l) and (l[pos] != '"' or l[pos - 1] == "\\"):
msg += l[pos]
pos += 1
+ # Read plural.
+ msg_plural = ""
+ if patterns[idx] in ['TTRN("', 'RTRN("']:
+ pos = l.find('"', pos + 1)
+ pos += 1
+ while pos < len(l) and (l[pos] != '"' or l[pos - 1] == "\\"):
+ msg_plural += l[pos]
+ pos += 1
+
+ # Read context.
+ msgctx = ""
+ pos += 1
+ read_ctx = False
+ while pos < len(l):
+ if l[pos] == ")":
+ break
+ elif l[pos] == '"':
+ read_ctx = True
+ break
+ pos += 1
+
+ pos += 1
+ if read_ctx:
+ while pos < len(l) and (l[pos] != '"' or l[pos - 1] == "\\"):
+ msgctx += l[pos]
+ pos += 1
+
+ # File location.
location = os.path.relpath(fname).replace("\\", "/")
if line_nb:
location += ":" + str(lc)
- if not msg in unique_str:
- main_po += "\n#: " + location + "\n"
- main_po += 'msgid "' + msg + '"\n'
- main_po += 'msgstr ""\n'
- unique_str.append(msg)
- unique_loc[msg] = [location]
- elif not location in unique_loc[msg]:
- # Add additional location to previous occurrence too
- msg_pos = main_po.find('\nmsgid "' + msg + '"')
- if msg_pos == -1:
- print("Someone apparently thought writing Python was as easy as GDScript. Ping Akien.")
- main_po = main_po[:msg_pos] + " " + location + main_po[msg_pos:]
- unique_loc[msg].append(location)
+ # Write translator comment.
+ _write_translator_comment(msgctx, msg, translator_comment)
+ translator_comment = ""
+
+ if msgctx != "":
+ # If it's a new context or a new message within an existing context, then write new msgid.
+ # Else add location to existing msgid.
+ if not msgctx in ctx_group:
+ _write_message(msgctx, msg, msg_plural, location)
+ ctx_group[msgctx] = {msg: [location]}
+ elif not msg in ctx_group[msgctx]:
+ _write_message(msgctx, msg, msg_plural, location)
+ ctx_group[msgctx][msg] = [location]
+ elif not location in ctx_group[msgctx][msg]:
+ _add_additional_location(msgctx, msg, location)
+ ctx_group[msgctx][msg].append(location)
+ else:
+ if not msg in unique_str:
+ _write_message(msgctx, msg, msg_plural, location)
+ unique_str.append(msg)
+ unique_loc[msg] = [location]
+ elif not location in unique_loc[msg]:
+ _add_additional_location(msgctx, msg, location)
+ unique_loc[msg].append(location)
l = f.readline()
lc += 1
@@ -102,7 +290,7 @@ def process_file(f, fname):
print("Updating the editor.pot template...")
for fname in matches:
- with open(fname, "r") as f:
+ with open(fname, "r", encoding="utf8") as f:
process_file(f, fname)
with open("editor.pot", "w") as f:
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index 428b69062a..2d17cc0abb 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -13,12 +13,14 @@
# hpn33 <hamed.hpn332@gmail.com>, 2019, 2020.
# Focus <saeeddashticlash@gmail.com>, 2019, 2020.
# mohamad por <mohamad24xx@gmail.com>, 2020.
+# Tetra Homer <tetrahomer@gmail.com>, 2020.
+# Farshad Faemiyi <ffaemiyi@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-04-23 20:21+0000\n"
-"Last-Translator: Focus <saeeddashticlash@gmail.com>\n"
+"PO-Revision-Date: 2020-09-16 18:09+0000\n"
+"Last-Translator: Farshad Faemiyi <ffaemiyi@gmail.com>\n"
"Language-Team: Persian <https://hosted.weblate.org/projects/godot-engine/"
"godot/fa/>\n"
"Language: fa\n"
@@ -26,14 +28,12 @@ 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.0.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr ""
-"نوع ورودی برای متد ()convert ‌ نامعتبر است ،‌ از ثابت های *_TYPE‌ استفاده "
-"کنید ."
+msgstr "نوع ورودی برای ()convert نامعتبر است, ثوابت *_TYPE‌ بکار گیرید ."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
@@ -53,61 +53,59 @@ msgstr "ورودی نامعتبر i% (تایید نشده) در عبارت"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "نمی توان از self استفاده کرد چون instance = null هست (تایید نشده)"
+msgstr "نمی توان self را بکار گرفت چون instance = null هست (تایید نشده)"
#: core/math/expression.cpp
-#, fuzzy
msgid "Invalid operands to operator %s, %s and %s."
-msgstr "نام دارایی ایندکس نامعتبر 's%' در گره s%."
+msgstr "عملگر های نامعتبر به عملگر %s, %s و %s."
#: core/math/expression.cpp
-#, fuzzy
msgid "Invalid index of type %s for base type %s"
-msgstr "نام دارایی ایندکس نامعتبر 's%' در گره s%."
+msgstr "نوع ایندکس %s برای نوع اصلی %s نامعتبر است"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr "شاخص نامگذاری شده \"٪ s\" برای نوع پایه٪ s نامعتبر است"
+msgstr "ایندکس اسمی '%s' برای نوع اصلی %s نامعتبر است"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr ": آرگومان نوع نامعتبر آرگومان های نامعتبر برای ساخت '٪ s'"
+msgstr "آرگومان های نامعتبر برای ساخت '%s'"
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr "در تماس با '٪ s':"
+msgstr "به هنگام فراخوان تابع'%s':"
#: core/ustring.cpp
msgid "B"
-msgstr ""
+msgstr "بایت"
#: core/ustring.cpp
msgid "KiB"
-msgstr ""
+msgstr "کیلوبایت"
#: core/ustring.cpp
msgid "MiB"
-msgstr ""
+msgstr "مگابایت"
#: core/ustring.cpp
msgid "GiB"
-msgstr ""
+msgstr "گیگابایت"
#: core/ustring.cpp
msgid "TiB"
-msgstr ""
+msgstr "ترابایت"
#: core/ustring.cpp
msgid "PiB"
-msgstr ""
+msgstr "پتابایت"
#: core/ustring.cpp
msgid "EiB"
-msgstr ""
+msgstr "اگزابایت"
#: editor/animation_bezier_editor.cpp
msgid "Free"
-msgstr "ازاد کردن"
+msgstr "آزاد کردن"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
@@ -123,90 +121,84 @@ msgstr "زمان:"
#: editor/animation_bezier_editor.cpp
msgid "Value:"
-msgstr "ارزش:"
+msgstr "مقدار:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr "کلید را اینجا وارد کن"
+msgstr "کلید را اینجا وارد کنید"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
-msgstr "کلیدهای انتخاب شده تکراری درست کن"
+msgstr "تکرار کلید(های) منتخب"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr "کلید‌های انخاب شده را پاک کن"
+msgstr "حذف کلید(های) منتخب"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
-msgstr "Bezier Point را اضافه کن"
+msgstr "افزودن نقطه بِزیِر"
#: editor/animation_bezier_editor.cpp
msgid "Move Bezier Points"
-msgstr "Bezier Points را جابجا کن"
+msgstr "انتقال نقاط بِزیِر"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "تکرار کلید‌های انیمیشن"
+msgstr "تکرار کلید ‌های متحرک"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
-msgstr "کلیدها را در انیمیشن حذف کن"
+msgstr "حذف کلید های متحرک"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Time"
-msgstr "تغییر زمان فریم کلید در انیمیشن"
+msgstr "تغییر زمان لحظه‌کلیدِ متحرک"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
-msgstr "انتقال را در انیمیشن تغییر بده"
+msgstr "تغییر انتقالی متحرک"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
-msgstr "انتقال را در انیمیشن تغییر بده"
+msgstr "تغییر دگرشکل متحرک"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
-msgstr "تغییر مقدار فریم کلید در انیمیشن"
+msgstr "تغییر مقدار لحظه‌کلید متحرک"
#: editor/animation_track_editor.cpp
msgid "Anim Change Call"
-msgstr "فراخوانی را در انیمیشن تغییر بده"
+msgstr "تغییر فراخوان متحرک"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Keyframe Time"
-msgstr "تغییر زمان فریم کلید در انیمیشن"
+msgstr "تغییرات زمان لحظه‌کلید متحرک"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Transition"
-msgstr "انتقال را در انیمیشن تغییر بده"
+msgstr "تغییرات انتقالی متحرک"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Transform"
-msgstr "انتقال را در انیمیشن تغییر بده"
+msgstr "تغییرات دگرشکل متحرک"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Keyframe Value"
-msgstr "تغییر مقدار فریم کلید در انیمیشن"
+msgstr "تغییرات مقدار لحظه‌کلید متحرک"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Call"
-msgstr "فراخوانی را در انیمیشن تغییر بده"
+msgstr "تغییرات فراخوان متحرک"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Length"
-msgstr "طول انیمیشن را تغییر بده"
+msgstr "تغییر طول انیمیشن"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr "حلقه(loop) انیمیشن را تغییر دهید"
+msgstr "تغییر حلقه(loop) انیمیشن"
#: editor/animation_track_editor.cpp
msgid "Property Track"
@@ -214,15 +206,15 @@ msgstr "ویژگی مسیر"
#: editor/animation_track_editor.cpp
msgid "3D Transform Track"
-msgstr "مسیر 3D Transform"
+msgstr "مسیر دگرشکل 3D"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
-msgstr "صدا زدن Method Track"
+msgstr "فراخوان تابع مسیر"
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
-msgstr ""
+msgstr "مسیر منحنی بِزیِر"
#: editor/animation_track_editor.cpp
msgid "Audio Playback Track"
@@ -267,7 +259,7 @@ msgstr "تغییرمیسر path"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
-msgstr "روشن / خاموش کردن این Track."
+msgstr "دِگرحالتِ روشن/خاموش این قطعه."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
@@ -336,9 +328,8 @@ msgid "Insert Key"
msgstr "درج کلید"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Duplicate Key(s)"
-msgstr "نسخه همانند (Duplicate ) کلید(key)"
+msgstr "تکرار کلید(ها)"
#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
@@ -366,7 +357,7 @@ msgstr "یک ترک جدید برای s% بساز و کلید را درج کن؟
#: editor/animation_track_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
-msgstr "ساختن تعداد d% ترک جدید، ودرج کلیدها؟"
+msgstr "ساختن %d قطعه جدید و درج کلیدها؟"
#: editor/animation_track_editor.cpp editor/create_dialog.cpp
#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp
@@ -426,11 +417,11 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr ""
+msgstr "آهنگ های انیمیشن فقط می توانند به گره های انیمش پلیر اشاره کنند."
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
-msgstr ""
+msgstr "یک مجری انیمیشن نمی تواند خود را محرک کند، فقط سایر مجریان."
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
@@ -438,66 +429,60 @@ msgstr "بدون ریشه اضافه کردن مسیر امکان پذیر نی
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr ""
+msgstr "مسیر نامعتبر برای بِزیِر( زیر-خواص نامناسب)"
#: editor/animation_track_editor.cpp
msgid "Add Bezier Track"
-msgstr "ترک Bezier را اضافه کن"
+msgstr "افزودن مسیر بِزیِر"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
-msgstr ""
+msgstr "مسیر قطعه نامعتبر، پس نمی‌توان یک کلید به آن افزود."
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Transform Track Key"
-msgstr "درج ترک و کلید در انیمیشن"
+msgstr "افزودن کلید مسیر دگرشکل"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track Key"
-msgstr "ترک را اضافه کن"
+msgstr "افزودن کلید مسیر"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
-msgstr ""
+msgstr "مسیر نامعتبر است ، بنابراین نمی توانید یک کلید روش اضافه کنید."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Method Track Key"
-msgstr "درج ترک و کلید در انیمیشن"
+msgstr "افزودن تابع کلید میسر"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Method not found in object: "
-msgstr "VariableGet در اسکریپت پیدا نشد: "
+msgstr "تابع در شئ یافت نشد: "
#: editor/animation_track_editor.cpp
msgid "Anim Move Keys"
msgstr "کلیدها را در انیمیشن جابجا کن"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Clipboard is empty"
-msgstr "حافظه پنهان خالی است!"
+msgstr "حافظه پنهان خالی است"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Paste Tracks"
-msgstr "مسیر به سمت گره:"
+msgstr "جاگذاری مسیر ها"
#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
-msgstr "کلیدها را در انیمیشن تغییر مقیاس بده"
+msgstr "اندازه کلید های متحرک"
#: editor/animation_track_editor.cpp
msgid ""
"This option does not work for Bezier editing, as it's only a single track."
-msgstr ""
+msgstr "این گزینه برای اصلاح بِزیِر کار نمی کند, چون تنها یک مسیر واحد است."
#: editor/animation_track_editor.cpp
msgid ""
@@ -511,42 +496,48 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
+"این انیمیشن متعلق به یک صحنه ورودی است, بنابراین تغییرات در مسیرهای ورودی "
+"ذخیره نشده‌اند.\n"
+"\n"
+"برای امکان اضافه کردن مسیر های سفارشی, به تنظیمات ورودی صحنه بروید و\n"
+"\"انیمیشن > ذخیره‌سازی\" به \"پرونده ها\", \"انیمیشن > نگه داشتن مسیر های "
+"سفارشی\" را تنظیم و فعال کنید، سپس ازنو-وارد کنید.\n"
+"با وارد کردن از «پیش تعیین شده»ای که انیمیشن ها را به صورت پرونده‌های جداگانه "
+"وارد می کند، می‌توانید این روش جایگزین را بکار گیرید."
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
-msgstr ""
+msgstr "هشدار: در حال ویرایش انیمیشن وارد شده"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select an AnimationPlayer node to create and edit animations."
-msgstr ""
-"یک AnimationPlayer از درخت صحنه انتخاب کنید تا انیمیشن‌ها را ویرایش کنید."
+msgstr "یک گره AnimationPlayer را برای ایجاد و ویرایش انیمیشن ها برگزینید."
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
-msgstr ""
+msgstr "فقط مسیرهای از گره های انتخاب شده در درخت نشان داده شود."
#: editor/animation_track_editor.cpp
msgid "Group tracks by node or display them as plain list."
msgstr ""
+"مسیرها را بر اساس گره گروه‌بندی کنید یا آن‌ها را به عنوان لیست ساده نمایش دهید."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Snap:"
-msgstr "گام(ها):"
+msgstr "چفت:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation step value."
-msgstr "گره انیمیشن"
+msgstr "مقدار مرحله انیمیشن."
#: editor/animation_track_editor.cpp
msgid "Seconds"
-msgstr ""
+msgstr "ثانیه ها"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
-msgstr ""
+msgstr "لحظه بر ثانیه"
#: editor/animation_track_editor.cpp editor/editor_properties.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -559,13 +550,12 @@ msgid "Edit"
msgstr "ویرایش"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation properties."
-msgstr "گره انیمیشن"
+msgstr "خصوصیات انیمیشن."
#: editor/animation_track_editor.cpp
msgid "Copy Tracks"
-msgstr ""
+msgstr "کپی میسر ها"
#: editor/animation_track_editor.cpp
msgid "Scale Selection"
@@ -577,26 +567,23 @@ msgstr "از مکان‌نما تغییر مقیاس بده"
#: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp
msgid "Duplicate Selection"
-msgstr "انتخاب شده را به دو تا تکثیر کن"
+msgstr "تکثیر برگزیده"
#: editor/animation_track_editor.cpp
msgid "Duplicate Transposed"
-msgstr "ترانهاده را به دو تا تکثیر کن"
+msgstr "تکثیر جابجایی"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Delete Selection"
-msgstr "انتخاب شده را حذف کن"
+msgstr "حذف برگزیده"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Next Step"
-msgstr "به گام بعدی برو"
+msgstr "برو به گام بعد"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Previous Step"
-msgstr "به گام قبلی برو"
+msgstr "برو به گام پیشین"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -608,11 +595,11 @@ msgstr "انیمیشن را پاکسازی کن"
#: editor/animation_track_editor.cpp
msgid "Pick the node that will be animated:"
-msgstr ""
+msgstr "گره متحرک را انتخاب کنید:"
#: editor/animation_track_editor.cpp
msgid "Use Bezier Curves"
-msgstr ""
+msgstr "بکارگیری منحنی بِزیِر"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
@@ -659,9 +646,8 @@ msgid "Scale Ratio:"
msgstr "نسبت تغییر مقیاس:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select Tracks to Copy"
-msgstr "دارایی Setter را اضافه کن"
+msgstr "انتخاب میسرها جهت تکثیر"
#: editor/animation_track_editor.cpp editor/editor_log.cpp
#: editor/editor_properties.cpp
@@ -670,17 +656,15 @@ msgstr "دارایی Setter را اضافه کن"
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Copy"
-msgstr "کپی کردن"
+msgstr "کپی"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select All/None"
-msgstr "گره انتخاب"
+msgstr "انتخاب همه/هیچ"
#: editor/animation_track_editor_plugins.cpp
-#, fuzzy
msgid "Add Audio Track Clip"
-msgstr "ترک را اضافه کن"
+msgstr "افزودن کلیپ آهنگ صوتی"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip Start Offset"
@@ -711,18 +695,16 @@ msgid "Line Number:"
msgstr "شماره خط:"
#: editor/code_editor.cpp
-#, fuzzy
msgid "%d replaced."
-msgstr "جایگزینی"
+msgstr "%d جایگزین شده."
#: editor/code_editor.cpp editor/editor_help.cpp
msgid "%d match."
-msgstr ""
+msgstr "%d منطبق."
#: editor/code_editor.cpp editor/editor_help.cpp
-#, fuzzy
msgid "%d matches."
-msgstr "تطبیقی ندارد"
+msgstr "%d هم‌خوانی."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
@@ -732,7 +714,7 @@ msgstr "بین حروف کوچک و بزرگ لاتین تمایز قائل شو
msgid "Whole Words"
msgstr "عین کلمات (بدون هیچ کم و کاستی)"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "جایگزینی"
@@ -747,7 +729,7 @@ msgstr "تنها در قسمت انتخاب شده"
#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp
#: editor/plugins/text_editor.cpp
msgid "Standard"
-msgstr ""
+msgstr "استاندارد"
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
@@ -757,59 +739,52 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom In"
-msgstr "بزرگنمایی بیشتر"
+msgstr "بزرگنمایی"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Out"
-msgstr "بزرگنمایی کمتر"
+msgstr "کوچکنمایی"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr "بازنشانی بزرگنمایی"
+msgstr "باز‌نشانی مقیاس"
#: editor/code_editor.cpp
msgid "Warnings"
-msgstr ""
+msgstr "هشدارها"
#: editor/code_editor.cpp
msgid "Line and column numbers."
-msgstr ""
+msgstr "شماره های خط و ستون."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method in target node must be specified."
-msgstr "متد در گره مقصد باید مشخص شده باشد!"
+msgstr "تابع در گره مقصد باید مشخص شده باشد."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "نام یک شناسه‌ی معتبر نیست:"
+msgstr "اسم تابع باید یک شناسه‌ی معتبر باشد."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
msgstr ""
-"متد هدف پیدا نشد! لطفا یک متد صحیح مشخص کنید یا یک اسکریپت به گره هدف الحاق "
-"کنید."
+"متد هدف پیدا نشد. یک تابع معتبر تعیین کنید یا یک اسکریپت به گره هدف وصل کنید."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect to Node:"
msgstr "اتصال به گره:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect to Script:"
-msgstr "اتصال به گره:"
+msgstr "اتصال به اسکریپت:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "From Signal:"
-msgstr "سیگنال ها:"
+msgstr "از سیگنال:"
#: editor/connections_dialog.cpp
msgid "Scene does not contain any script."
@@ -841,18 +816,16 @@ msgid "Extra Call Arguments:"
msgstr "آرگومان‌های اضافی فراخوانی:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Receiver Method:"
-msgstr "انتخاب حالت"
+msgstr "روش گیرنده:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Advanced"
-msgstr "متعادل شده"
+msgstr "پیشرفته"
#: editor/connections_dialog.cpp
msgid "Deferred"
-msgstr "معوق"
+msgstr "به تعویق افتاده"
#: editor/connections_dialog.cpp
msgid ""
@@ -868,9 +841,8 @@ msgid "Disconnects the signal after its first emission."
msgstr ""
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Cannot connect signal"
-msgstr "اتصال سیگنال:"
+msgstr "نمی توان سیگنال را متصل کرد"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/export_template_manager.cpp editor/groups_editor.cpp
@@ -891,9 +863,8 @@ msgid "Connect"
msgstr "اتصال"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Signal:"
-msgstr "سیگنال ها:"
+msgstr "سیگنال:"
#: editor/connections_dialog.cpp
msgid "Connect '%s' to '%s'"
@@ -904,9 +875,8 @@ msgid "Disconnect '%s' from '%s'"
msgstr "'s%' را از 's%' جدا کن"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Disconnect all from signal: '%s'"
-msgstr "'s%' را از 's%' جدا کن"
+msgstr "جدا کردن همه از سیگنال: '%s'"
#: editor/connections_dialog.cpp
msgid "Connect..."
@@ -918,41 +888,42 @@ msgid "Disconnect"
msgstr "عدم اتصال"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect a Signal to a Method"
-msgstr "اتصال سیگنال:"
+msgstr "وصل یک سیگنال به یک تابع"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Edit Connection:"
-msgstr "خطای اتصال"
+msgstr "ویرایش اتصال:"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
msgstr ""
+"آیا مطمئن هستید که می خواهید همه اتصالات را از سیگنال \"٪ s\" حذف کنید؟"
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
msgstr "سیگنال‌ها"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "صافی کردن گره‌ها"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Disconnect All"
-msgstr "عدم اتصال"
+msgstr "جدا کردن همه"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Edit..."
-msgstr "ویرایش"
+msgstr "ویرایش..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go To Method"
-msgstr "روش ها"
+msgstr "برو به تابع"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -976,7 +947,7 @@ msgid "Recent:"
msgstr "اخیر:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "جستجو:"
@@ -1004,22 +975,20 @@ msgid "Dependencies For:"
msgstr "بستگی‌ها برای:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Scene '%s' is currently being edited.\n"
"Changes will only take effect when reloaded."
msgstr ""
-"صحنه‌ی 's%' در حال حاضر ویرایش شده است.\n"
-"تغییرات مؤثر نخواهد بود مگر با بارگذاری مجدد."
+"ویرایش صحنه 's%' شروع شده است.\n"
+"تغییرات تنها وقتی جلوه گرند که از نو بارگیری شوند."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Resource '%s' is in use.\n"
"Changes will only take effect when reloaded."
msgstr ""
-"منابع 's%' در حال استفاده است.\n"
-"تغییرات با بارگذاری مجدد مؤثر خواهد بود."
+"منابع 's%' بکار رفته‌اند.\n"
+"تغییرات تنها وقتی جلوه گرند که از نو بارگیری شوند."
#: editor/dependency_editor.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
@@ -1033,7 +1002,7 @@ msgstr "منبع"
#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp
#: editor/project_manager.cpp editor/project_settings_editor.cpp
msgid "Path"
-msgstr "مسیر"
+msgstr "آدرس"
#: editor/dependency_editor.cpp
msgid "Dependencies:"
@@ -1066,9 +1035,8 @@ msgid "Owners Of:"
msgstr "مالکانِ:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Remove selected files from the project? (Can't be restored)"
-msgstr "آیا پرونده‌های انتخاب شده از پروژه حذف شوند؟ (بدون undo)"
+msgstr "آیا پرونده‌های انتخاب شده از طرح حذف شوند؟ (نمی‌توان بازیابی کرد)"
#: editor/dependency_editor.cpp
msgid ""
@@ -1089,9 +1057,8 @@ msgid "Error loading:"
msgstr "خطا در بارگذاری:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Load failed due to missing dependencies:"
-msgstr "خطا در بارگذاری صحنه به دلیل بستگی‌های مفقود:"
+msgstr "به دلیل مفقود شدن وابستگی‌ها بارگیری انجام نشد:"
#: editor/dependency_editor.cpp editor/editor_node.cpp
msgid "Open Anyway"
@@ -1114,9 +1081,8 @@ msgid "Permanently delete %d item(s)? (No undo!)"
msgstr "به طور دائمی تعداد 'd%' آیتم را حذف کند؟ (بدون undo !)"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Show Dependencies"
-msgstr "بستگی‌ها"
+msgstr "نمایش وابستگی‌ها"
#: editor/dependency_editor.cpp
msgid "Orphan Resource Explorer"
@@ -1128,7 +1094,7 @@ msgstr "پوینده‌ی منبع جدا افتاده"
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp
#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
msgid "Delete"
-msgstr "حذف کن"
+msgstr "پاک"
#: editor/dependency_editor.cpp
msgid "Owns"
@@ -1162,6 +1128,9 @@ msgstr "بنیان‌گذاران پروژه"
msgid "Lead Developer"
msgstr "توسعه‌دهنده‌ی اصلی"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "مدیر پروژه "
@@ -1176,15 +1145,25 @@ msgstr "مؤلفان"
#: editor/editor_about.cpp
msgid "Platinum Sponsors"
-msgstr "اسپانسر‌های پلاتینیوم (درجه ۱)"
+msgstr "حامیان پلاتین"
#: editor/editor_about.cpp
msgid "Gold Sponsors"
-msgstr "اسپانسر‌های طلایی (درجه ۲)"
+msgstr "حامیان طلایی (درجه ۲)"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "اهداکنندگان نقره‌ای"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "اهداکنندگان برنزی"
#: editor/editor_about.cpp
msgid "Mini Sponsors"
-msgstr "اسپانسر‌های کوچک"
+msgstr "حامیان مالی کوچک"
#: editor/editor_about.cpp
msgid "Gold Donors"
@@ -1207,9 +1186,8 @@ msgid "License"
msgstr "مجوز"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Third-party Licenses"
-msgstr "مجوز‌های شخص ثالث"
+msgstr "مجوز های شخص-ثالث"
#: editor/editor_about.cpp
msgid ""
@@ -1218,6 +1196,9 @@ msgid ""
"is an exhaustive list of all such third-party components with their "
"respective copyright statements and license terms."
msgstr ""
+"Godot Engine به تعدادی از کتابخانه های منبع باز و شخص-ثالث رایگان متکی است "
+"که همگی با شرایط مجوز MIT سازگار هستند. در زیر لیستی جامع از کلیه مؤلفه های "
+"شخص ثالث با بیانیه های حق کپی برداری مربوطه و شرایط مجوز آنها قرار دارد."
#: editor/editor_about.cpp
msgid "All Components"
@@ -1233,29 +1214,27 @@ msgstr "گواهینامه"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Error opening package file, not in ZIP format."
-msgstr ""
+msgstr "خطای گشودن بسته بندی پرونده، به شکل ZIP نیست."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (Already Exists)"
-msgstr "پیش از این وجود داشته است"
+msgstr "%s (موجود است)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
-msgstr "عست های غیر فشرده"
+msgstr "فشرده نشدن اَسِت ها"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "The following files failed extraction from package:"
-msgstr ""
+msgstr "استخراج پرونده های زیر از بسته بندی انجام نشد:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "And %s more files."
-msgstr "نمی‌تواند یک پوشه ایجاد شود."
+msgstr "و %s بیش تر پرونده ها."
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Package installed successfully!"
-msgstr ""
+msgstr "بسته با موفقیت نصب شد!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1263,9 +1242,8 @@ msgid "Success!"
msgstr "موفقیت!"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Package Contents:"
-msgstr "محتواها:"
+msgstr "درون مایه های بسته بندی:"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
@@ -1277,73 +1255,73 @@ msgstr "نصب کننده پکیج ها"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
-msgstr ""
+msgstr "بلندگوها"
#: editor/editor_audio_buses.cpp
msgid "Add Effect"
-msgstr ""
+msgstr "افزودن جلوه"
#: editor/editor_audio_buses.cpp
msgid "Rename Audio Bus"
-msgstr ""
+msgstr "تغییر نام صوت گذرا"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Change Audio Bus Volume"
-msgstr "مقدار آرایه را تغییر بده"
+msgstr "تغییر مقدار صدای خطی"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
-msgstr ""
+msgstr "دِگرحالتِ صدای تکی خطی"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Mute"
-msgstr ""
+msgstr "دِگرحالتِ صدای سکوت خطی"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Bypass Effects"
-msgstr ""
+msgstr "دِگرحالتِ صدای جلوه های میان بر خطی"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
-msgstr ""
+msgstr "انتخاب صدای ارسال گذرا"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus Effect"
-msgstr ""
+msgstr "افزودن صدای جلوه خطی"
#: editor/editor_audio_buses.cpp
msgid "Move Bus Effect"
-msgstr ""
+msgstr "انتقال جلوه خطی"
#: editor/editor_audio_buses.cpp
msgid "Delete Bus Effect"
-msgstr "حذف اثر گذرا"
+msgstr "حذف جلوه خطی"
#: editor/editor_audio_buses.cpp
msgid "Drag & drop to rearrange."
-msgstr ""
+msgstr "برای چینش مجدد، بکشید و رها کنید."
#: editor/editor_audio_buses.cpp
msgid "Solo"
-msgstr ""
+msgstr "انفرادی"
#: editor/editor_audio_buses.cpp
msgid "Mute"
-msgstr ""
+msgstr "بدون صدا"
#: editor/editor_audio_buses.cpp
msgid "Bypass"
-msgstr ""
+msgstr "‌گذرگاه فرعی"
#: editor/editor_audio_buses.cpp
+#, fuzzy
msgid "Bus options"
-msgstr ""
+msgstr "گزینه های اتوبوس"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
-msgstr ""
+msgstr "تکثیر کردن"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
@@ -1351,7 +1329,7 @@ msgstr "بازنشانی حجم"
#: editor/editor_audio_buses.cpp
msgid "Delete Effect"
-msgstr "حذف اثر"
+msgstr "حذف جلوه"
#: editor/editor_audio_buses.cpp
msgid "Audio"
@@ -1359,31 +1337,28 @@ msgstr "صدا"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
-msgstr ""
+msgstr "افزودن کانل صوتی"
#: editor/editor_audio_buses.cpp
+#, fuzzy
msgid "Master bus can't be deleted!"
-msgstr ""
+msgstr "استاد اتوبوس قابل حذف نیست!"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Delete Audio Bus"
-msgstr "انیمیشن را بهینه‌سازی کن"
+msgstr "حذف صدای خطی"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Duplicate Audio Bus"
-msgstr "انتخاب شده را به دو تا تکثیر کن"
+msgstr "تکثیر صدای خطی"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Reset Bus Volume"
-msgstr "بازنشانی بزرگنمایی"
+msgstr "باز‌نشانی مقدار خطی"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Move Audio Bus"
-msgstr "کلید Add را جابجا کن"
+msgstr "انتقال صدای خطی"
#: editor/editor_audio_buses.cpp
msgid "Save Audio Bus Layout As..."
@@ -1410,9 +1385,8 @@ msgid "Invalid file, not an audio bus layout."
msgstr ""
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Error saving file: %s"
-msgstr "خطا در بارگذاری:"
+msgstr "خطای ذخیره کردن پرونده: %s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
@@ -1461,23 +1435,20 @@ msgid "Valid characters:"
msgstr "کاراکترهای معتبر:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing engine class name."
-msgstr "نام نامعتبر. نباید با یک نام کلاس موجود در موتور برخوردی داشته باشد."
+msgstr "نباید با یک نام کلاس موتور موجود برخورد کند."
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing built-in type name."
-msgstr "نام نامعتبر. نباید یا یک نام نوع توکار برخوردی داشته باشد."
+msgstr "نباید با یک نام نوع درون-ساز موجود برخورد کند."
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing global constant name."
-msgstr "نام نامعتبر. نباید با نام یک ثابت سراسری موجود برخوردی داشته باشد."
+msgstr "نباید با نام یک ثابت سراسری موجود برخوردی کند."
#: editor/editor_autoload_settings.cpp
msgid "Keyword cannot be used as an autoload name."
-msgstr ""
+msgstr "کلمه کلیدی نمی تواند به عنوان یک نام خودبارگیر بکار برده شود."
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
@@ -1488,8 +1459,9 @@ msgid "Rename Autoload"
msgstr "بارگذاری خودکار را تغییر نام بده"
#: editor/editor_autoload_settings.cpp
+#, fuzzy
msgid "Toggle AutoLoad Globals"
-msgstr ""
+msgstr "تغییر حالت اتماتیک لود عمومی"
#: editor/editor_autoload_settings.cpp
msgid "Move Autoload"
@@ -1530,11 +1502,11 @@ msgstr "نام گره:"
#: editor/editor_profiler.cpp editor/project_manager.cpp
#: editor/settings_config_dialog.cpp
msgid "Name"
-msgstr ""
+msgstr "نام"
#: editor/editor_autoload_settings.cpp
msgid "Singleton"
-msgstr ""
+msgstr "سینگلتون"
#: editor/editor_data.cpp editor/inspector_dock.cpp
msgid "Paste Params"
@@ -1553,9 +1525,8 @@ msgid "Updating scene..."
msgstr ""
#: editor/editor_data.cpp editor/editor_properties.cpp
-#, fuzzy
msgid "[empty]"
-msgstr "(خالی)"
+msgstr "[پوچ]"
#: editor/editor_data.cpp
msgid "[unsaved]"
@@ -1593,15 +1564,15 @@ msgstr ""
#: editor/editor_export.cpp
msgid "Storing File:"
-msgstr ""
+msgstr "ذخیره فایل:"
#: editor/editor_export.cpp
msgid "No export template found at the expected path:"
-msgstr ""
+msgstr "هیچ الگوی صادراتی در مسیر مورد انتظار یافت نشد:"
#: editor/editor_export.cpp
msgid "Packing"
-msgstr ""
+msgstr "بسته بندی"
#: editor/editor_export.cpp
msgid ""
@@ -1644,91 +1615,77 @@ msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "3D Editor"
-msgstr "ویرایشگر"
+msgstr "ویرایشگر 3بعدی"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Script Editor"
-msgstr "گشودن ویرایشگر اسکریپت"
+msgstr "ویرایشگر اسکریپت"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Asset Library"
-msgstr "گشودن کتابخانه عست"
+msgstr "کتابخانه دارایی"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Import Dock"
-msgstr "وارد کردن"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
-msgstr "نام گره:"
+msgstr "لنگرگاه گره:"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "سامانه پرونده"
#: editor/editor_feature_profile.cpp
-#, fuzzy
+msgid "Import Dock"
+msgstr "وارد کردن لنگرگاه"
+
+#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
-msgstr "جایگزینی همه"
+msgstr "پاک‌کردن نمایه '%s'? (عدم بازگردانی)"
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Profile with this name already exists."
-msgstr "بارگذاری خودکار 's%' هم اکنون موجود است!"
+msgstr "نمایه با این نام در حال حاضر وجود دارد."
#: editor/editor_feature_profile.cpp
msgid "(Editor Disabled, Properties Disabled)"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(Properties Disabled)"
-msgstr "ویژگی:"
+msgstr "(خصوصیات غیرفعال شده)"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(Editor Disabled)"
-msgstr "غیرفعال شده"
+msgstr "(ویرایشگر غیرفعال شده)"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Options:"
-msgstr "توضیح:"
+msgstr "گزینه‌های کلاس:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enable Contextual Editor"
-msgstr "گشودن ویرایشگر متن"
+msgstr "فعال کردن ویرایشگر متنی"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enabled Properties:"
-msgstr "صافی کردن گره‌ها"
+msgstr "خصوصیات فعال شده:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enabled Features:"
-msgstr "فهرست متدها:"
+msgstr "ویژگی های فعال شده:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enabled Classes:"
-msgstr "جستجوی کلاسها"
+msgstr "کلاس های فعال شده:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1741,23 +1698,20 @@ msgid ""
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Error saving profile to path: '%s'."
-msgstr "خطای بارگذاری قلم."
+msgstr "خطای ذخیره نمایه در مسیر: '%s'."
#: editor/editor_feature_profile.cpp
msgid "Unset"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Current Profile:"
-msgstr "نسخه اخیر:"
+msgstr "نمایه موجود:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Make Current"
-msgstr "تابع را بساز"
+msgstr "ساختن جریان"
#: editor/editor_feature_profile.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
@@ -1775,73 +1729,61 @@ msgid "Export"
msgstr "صدور"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Available Profiles:"
-msgstr "گره های موجود:"
+msgstr "نمایه‌های موجود:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Options"
-msgstr "توضیحات"
+msgstr "گزینه های کلاس"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "New profile name:"
-msgstr "نام گره:"
+msgstr "نام نمایه جدید:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Erase Profile"
-msgstr "کُندی در آغاز"
+msgstr "پاک کردن نمایه"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Godot Feature Profile"
-msgstr "مدیریت صدور قالب ها"
+msgstr "ویژگی نمایه Godot"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Import Profile(s)"
-msgstr "پروژه واردشده"
+msgstr "وارد کردن نمایه(ها)"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Export Profile"
-msgstr "صدور پروژه"
+msgstr "صادر کردن نمایه"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Manage Editor Feature Profiles"
-msgstr "مدیریت صدور قالب ها"
+msgstr "مدیریت ویژگی نمایه‌های ویرایشگر"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "ساختن پوشه"
+msgstr "برگزیدن پوشه موجود"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File Exists, Overwrite?"
msgstr "فایل وجود دارد، آیا بازنویسی شود؟"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select This Folder"
-msgstr "انتخاب حالت"
+msgstr "برگزیدن این پوشه"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Copy Path"
msgstr ""
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-#, fuzzy
msgid "Open in File Manager"
-msgstr "باز شدن مدیر پروژه؟"
+msgstr "گشودن در مدیر پرونده"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/filesystem_dock.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Show in File Manager"
-msgstr "باز شدن مدیر پروژه؟"
+msgstr "نمایش فایل داخلی مرجع"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "New Folder..."
@@ -1924,29 +1866,24 @@ msgid "Move Favorite Down"
msgstr ""
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to previous folder."
-msgstr "رفتن به پوشه والد"
+msgstr "برو به پوشه پیشین."
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to next folder."
-msgstr "رفتن به پوشه والد"
+msgstr "برو به پوشه بعد."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Go to parent folder."
-msgstr "رفتن به پوشه والد"
+msgstr "برو به پوشه والد."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Refresh files."
-msgstr "جستجوی کلاسها"
+msgstr "نوسازی پرونده‌ها."
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "(Un)favorite current folder."
-msgstr "ناتوان در ساختن پوشه."
+msgstr "پوشه موجود (غیر)محبوب."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Toggle the visibility of hidden files."
@@ -1966,7 +1903,7 @@ msgstr "پوشه‌ها و پرونده‌ها:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -1976,7 +1913,7 @@ msgstr "پرونده:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Must use a valid extension."
-msgstr "باید از یک پسوند معتبر استفاده شود."
+msgstr "باید یک پسوند معتبر بکار گیرید."
#: editor/editor_file_system.cpp
msgid "ScanSources"
@@ -2010,9 +1947,8 @@ msgid "Inherited by:"
msgstr "به ارث رسیده به وسیله:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Description"
-msgstr "توضیح:"
+msgstr "توضیح"
#: editor/editor_help.cpp
msgid "Online Tutorials"
@@ -2020,25 +1956,23 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Properties"
-msgstr ""
+msgstr "خصوصیات"
#: editor/editor_help.cpp
msgid "override:"
msgstr ""
#: editor/editor_help.cpp
-#, fuzzy
msgid "default:"
-msgstr "پیشفرض"
+msgstr "پیش فرض:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr "روش ها"
+msgstr "توابع"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Theme Properties"
-msgstr "صافی کردن گره‌ها"
+msgstr "خصوصیات زمینه"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2046,17 +1980,15 @@ msgstr "شمارش ها"
#: editor/editor_help.cpp
msgid "Constants"
-msgstr "ثابت ها"
+msgstr "ثوابت"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Property Descriptions"
-msgstr "توضیحات مشخصه:"
+msgstr "توضیحات خصیصه"
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "ارزش:"
+msgstr "(مقدار)"
#: editor/editor_help.cpp
msgid ""
@@ -2065,9 +1997,8 @@ msgid ""
msgstr ""
#: editor/editor_help.cpp
-#, fuzzy
msgid "Method Descriptions"
-msgstr "توضیحات"
+msgstr "توضیحات تابع"
#: editor/editor_help.cpp
msgid ""
@@ -2082,80 +2013,67 @@ msgstr "جستجوی راهنما"
#: editor/editor_help_search.cpp
msgid "Case Sensitive"
-msgstr "حساس به حالت (حروف لاتین)"
+msgstr "حساس به حروف کوچک و بزرگ"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Show Hierarchy"
-msgstr "جستجو"
+msgstr "نمایش سلسله‌مراتب"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Display All"
-msgstr "جایگزینی همه"
+msgstr "نشان دادن همه"
#: editor/editor_help_search.cpp
msgid "Classes Only"
-msgstr ""
+msgstr "تنها کلاس‌ها"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Methods Only"
-msgstr "روش ها"
+msgstr "تنها روش‌ها"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Signals Only"
-msgstr "سیگنال‌ها"
+msgstr "تنها سیگنال‌ها"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Constants Only"
-msgstr "ثابت ها"
+msgstr "تنها ثوابت"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Properties Only"
-msgstr "ویژگی:"
+msgstr "تنها خصوصیات"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Theme Properties Only"
-msgstr "دارایی Setter را اضافه کن"
+msgstr "تنها خصوصیات زمینه"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Member Type"
-msgstr "عضوها"
+msgstr "نوع عضو"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Class"
-msgstr "کلاس:"
+msgstr "کلاس"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Method"
-msgstr "روش ها"
+msgstr "روش"
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Signal"
-msgstr "سیگنال‌ها"
+msgstr "سیگنال‌"
#: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constant"
msgstr "ثابت"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Property"
-msgstr "ویژگی:"
+msgstr "خصیصه"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Theme Property"
-msgstr "صافی کردن گره‌ها"
+msgstr "ویژگی زمینه"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
@@ -2163,20 +2081,19 @@ msgstr "ویژگی:"
#: editor/editor_inspector.cpp
msgid "Set"
-msgstr ""
+msgstr "تعیین"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
-msgstr ""
+msgstr "تعیین چندگانه:"
#: editor/editor_log.cpp
msgid "Output:"
msgstr "خروجی:"
#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Copy Selection"
-msgstr "برداشتن انتخاب شده"
+msgstr "کپی برگزیده"
#: editor/editor_log.cpp editor/editor_network_profiler.cpp
#: editor/editor_profiler.cpp editor/editor_properties.cpp
@@ -2189,31 +2106,30 @@ msgid "Clear"
msgstr "پاک کردن"
#: editor/editor_log.cpp
-#, fuzzy
msgid "Clear Output"
-msgstr "خروجی"
+msgstr "پاک کردن خروجی"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
#: editor/editor_profiler.cpp
msgid "Stop"
-msgstr ""
+msgstr "توقف"
#: editor/editor_network_profiler.cpp editor/editor_profiler.cpp
#: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp
msgid "Start"
-msgstr ""
+msgstr "شروع"
#: editor/editor_network_profiler.cpp
msgid "%s/s"
-msgstr ""
+msgstr "%s/ثانیه"
#: editor/editor_network_profiler.cpp
msgid "Down"
-msgstr ""
+msgstr "پایین"
#: editor/editor_network_profiler.cpp
msgid "Up"
-msgstr ""
+msgstr "بالا"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
msgid "Node"
@@ -2237,7 +2153,7 @@ msgstr ""
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "New Window"
-msgstr ""
+msgstr "چارچوب جدید"
#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
@@ -2246,11 +2162,11 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: scene/gui/dialogs.cpp
msgid "OK"
-msgstr "موافقت"
+msgstr "قبول"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
-msgstr ""
+msgstr "خطای ذخیره سازی منبع!"
#: editor/editor_node.cpp
msgid ""
@@ -2279,9 +2195,8 @@ msgid "Can't open '%s'. The file could have been moved or deleted."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Error while parsing '%s'."
-msgstr "خطای بارگذاری قلم."
+msgstr "خطا هنگام تجزیه '%s'."
#: editor/editor_node.cpp
msgid "Unexpected end of file '%s'."
@@ -2292,9 +2207,8 @@ msgid "Missing '%s' or its dependencies."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Error while loading '%s'."
-msgstr "خطای بارگذاری قلم."
+msgstr "خطا هنگام تجزیه '%s'."
#: editor/editor_node.cpp
msgid "Saving Scene"
@@ -2399,33 +2313,28 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
#: editor/editor_node.cpp editor/filesystem_dock.cpp
msgid "Open Scene"
-msgstr "باز کردن صحنه"
+msgstr "گشودن صحنه"
#: editor/editor_node.cpp
msgid "Open Base Scene"
-msgstr ""
+msgstr "گشودن صحنه اصلی"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Quick Open..."
-msgstr "باز کن"
+msgstr "گشودن فوری..."
#: editor/editor_node.cpp
msgid "Quick Open Scene..."
-msgstr ""
+msgstr "گشودن فوری صحنه..."
#: editor/editor_node.cpp
msgid "Quick Open Script..."
-msgstr ""
+msgstr "گشودن سریع اسکریپت..."
#: editor/editor_node.cpp
msgid "Save & Close"
@@ -2449,27 +2358,27 @@ msgstr "ذخیره صحنه در ..."
#: editor/editor_node.cpp
msgid "No"
-msgstr ""
+msgstr "نه"
#: editor/editor_node.cpp
msgid "Yes"
-msgstr "تایید"
+msgstr "بله"
#: editor/editor_node.cpp
msgid "This scene has never been saved. Save before running?"
-msgstr ""
+msgstr "این صحنه هرگز ذخیره نشده است. ذخیره قبل از اجرا؟"
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
-msgstr ""
+msgstr "این عملیات بدون یک صحنه انجام نمی شود."
#: editor/editor_node.cpp
msgid "Export Mesh Library"
-msgstr ""
+msgstr "صادر کردن کتابخانه شبکه مش"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
-msgstr ""
+msgstr "این عملیات بدون یک گره ریشه ای انجام نمی شود."
#: editor/editor_node.cpp
msgid "Export Tile Set"
@@ -2488,9 +2397,8 @@ msgid "Can't reload a scene that was never saved."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "باز کردن صحنه"
+msgstr "بازیابی صحنه ذخیره شده"
#: editor/editor_node.cpp
msgid ""
@@ -2500,7 +2408,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
-msgstr ""
+msgstr "اجرا فوری صحنه…"
#: editor/editor_node.cpp
msgid "Quit"
@@ -2508,7 +2416,7 @@ msgstr "خروج"
#: editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr "از ویرایشگر خارج می شوید؟"
+msgstr "خروج از ویرایشگر؟"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
@@ -2538,12 +2446,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Close Scene"
-msgstr ""
+msgstr "بستن صحنه"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reopen Closed Scene"
-msgstr "باز کردن صحنه"
+msgstr "بازگشودن صحنه بسته شده"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
@@ -2554,9 +2461,8 @@ msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Unable to load addon script from path: '%s'."
-msgstr "خطای بارگذاری قلم."
+msgstr "امکان بارگیری اسکریپت افزونه از مسیر وجود ندارد: '%s'."
#: editor/editor_node.cpp
msgid ""
@@ -2616,7 +2522,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Save Layout"
-msgstr ""
+msgstr "ذخیره لایه"
#: editor/editor_node.cpp
msgid "Delete Layout"
@@ -2629,50 +2535,44 @@ msgstr "پیشفرض"
#: editor/editor_node.cpp editor/editor_properties.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Show in FileSystem"
-msgstr "سامانه پرونده"
+msgstr "نمایش در فایل‌سیستم"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Play This Scene"
-msgstr "پخش صحنه"
+msgstr "اجرای این صحنه"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Close Tab"
-msgstr "بستن"
+msgstr "بستن زبانه"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Undo Close Tab"
-msgstr "بستن"
+msgstr "برگرداندن زبانه"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Close Other Tabs"
-msgstr ""
+msgstr "بستن زبانه های دیگر"
#: editor/editor_node.cpp
msgid "Close Tabs to the Right"
-msgstr ""
+msgstr "بستن زبانه ها به طرف راست"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Close All Tabs"
-msgstr "بستن"
+msgstr "بستن تمام زبانه ها"
#: editor/editor_node.cpp
msgid "Switch Scene Tab"
-msgstr ""
+msgstr "جاگرداندن زبانه صحنه"
#: editor/editor_node.cpp
msgid "%d more files or folders"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "%d more folders"
-msgstr "نمی‌تواند یک پوشه ایجاد شود."
+msgstr "%d پوشه‌های بیش تر"
#: editor/editor_node.cpp
msgid "%d more files"
@@ -2703,9 +2603,8 @@ msgid "Go to previously opened scene."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Copy Text"
-msgstr "کپی کردن"
+msgstr "کپی متن"
#: editor/editor_node.cpp
msgid "Next tab"
@@ -2744,9 +2643,8 @@ msgid "Save Scene"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Save All Scenes"
-msgstr "ذخیره صحنه در ..."
+msgstr "ذخیره صحنه"
#: editor/editor_node.cpp
msgid "Convert To..."
@@ -2763,12 +2661,12 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Undo"
-msgstr "خنثی کردن (Undo)"
+msgstr "عقب‌گرد"
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Redo"
-msgstr ""
+msgstr "جلوگرد"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
@@ -2780,14 +2678,12 @@ msgid "Project"
msgstr "پروژه"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Project Settings..."
-msgstr "ترجیحات پروژه"
+msgstr "تنظیمات طرح…"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Version Control"
-msgstr "نسخه:"
+msgstr "مهار نسخه"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Set Up Version Control"
@@ -2798,27 +2694,24 @@ msgid "Shut Down Version Control"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Export..."
-msgstr "صدور"
+msgstr "صدور…"
#: editor/editor_node.cpp
msgid "Install Android Build Template..."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Project Data Folder"
-msgstr "باز شدن مدیر پروژه؟"
+msgstr "گشودن پوشه اطلاعات طرح"
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
msgstr "ابزارها"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Orphan Resource Explorer..."
-msgstr "پوینده‌ی منبع جدا افتاده"
+msgstr "پوینده‌ی منبع جاافتاده"
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -2835,22 +2728,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2859,8 +2756,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2869,43 +2766,42 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
-msgstr ""
+#, fuzzy
+msgid "Synchronize Script Changes"
+msgstr "تغییر بده"
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
-#, fuzzy
msgid "Editor"
msgstr "ویرایشگر"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Editor Settings..."
-msgstr "ویرایشگر ترجیحات"
+msgstr "تنظیمات ویرایشگر…"
#: editor/editor_node.cpp
msgid "Editor Layout"
@@ -2963,7 +2859,7 @@ msgstr "راهنما"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "جستجو"
@@ -3380,7 +3276,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -3600,7 +3497,7 @@ msgstr "خطای اتصال"
#: editor/export_template_manager.cpp
msgid "SSL Handshake Error"
-msgstr "دست دادن خطای اس اس ال"
+msgstr "خطای اس اس ال اتفاق افتاد است"
#: editor/export_template_manager.cpp
#, fuzzy
@@ -5228,7 +5125,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7956,7 +7853,7 @@ msgid "New Animation"
msgstr "تغییر نام انیمیشن"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -10065,14 +9962,14 @@ msgstr ""
"شما درخواست بررسی پوشه های s٪‌ برای پیدا کردن پروژه های گودات را داده اید. "
"آیا انجام این عمل را تایید می کنید؟‌"
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "مدیر پروژه"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Projects"
-msgstr "پروژه"
+msgstr "طرح ها"
#: editor/project_manager.cpp
msgid "Last Modified"
@@ -10112,6 +10009,8 @@ msgid ""
"You currently don't have any projects.\n"
"Would you like to explore official example projects in the Asset Library?"
msgstr ""
+"شما فعلا هیچ طرحی ندارید.\n"
+"آیا می خواهید طرح های نمونه رسمی را در کتابخانه دارایی کاوش کنید؟"
#: editor/project_manager.cpp
msgid ""
@@ -10119,6 +10018,9 @@ msgid ""
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
+"کادر جستجو طرح ها را با نام و مسیر اجزا گذشته تصفیه می کند.\n"
+"برای تصفیه کردن طرح ها با نام و مسیر کامل، پرس و جو باید حداقل دارای یک `/"
+"`کاراکتر باشد."
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -10355,7 +10257,7 @@ msgstr "تنظیمات پروژه (پروژه.گودات)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "General"
-msgstr "کلی"
+msgstr "عمومی"
#: editor/project_settings_editor.cpp
msgid "Override For..."
@@ -10363,7 +10265,7 @@ msgstr ""
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "The editor must be restarted for changes to take effect."
-msgstr ""
+msgstr "باید ویرایشگر از نو شروع شود تا تغییرات جلوه کنند."
#: editor/project_settings_editor.cpp
msgid "Input Map"
@@ -10513,11 +10415,16 @@ msgid "Batch Rename"
msgstr "تغییر نام"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "جایگزینی"
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10567,7 +10474,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10629,7 +10536,7 @@ msgstr "بازنشانی بزرگنمایی"
#: editor/rename_dialog.cpp
#, fuzzy
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr "انتقال را در انیمیشن تغییر بده"
#: editor/rename_dialog.cpp
@@ -10739,6 +10646,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "حذف گره(ها)"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "حذف گره(ها)"
@@ -12469,7 +12381,7 @@ msgstr ""
#: scene/2d/collision_polygon_2d.cpp
msgid "An empty CollisionPolygon2D has no effect on collision."
-msgstr "یک CollisionPolygon2D خالی اثری بر برخورد ندارد."
+msgstr "یک CollisionPolygon2D خالی جلوه بر برخورد ندارد."
#: scene/2d/collision_shape_2d.cpp
msgid ""
@@ -12490,6 +12402,12 @@ msgstr ""
"یک شکل باید برای CollisionShape2D فراهم شده باشد تا عمل کند. لطفا یک شکل "
"منبع برای آن ایجاد کنید!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12506,9 +12424,7 @@ msgstr "یک بافت با شکل نور باید برای دارایی texture
#: scene/2d/light_occluder_2d.cpp
msgid ""
"An occluder polygon must be set (or drawn) for this occluder to take effect."
-msgstr ""
-"یک چندضلعی مسدود باید برای این مسدودکننده (occluder) تنظیم (یا ترسیم) شود تا "
-"تأثیرگذار باشد."
+msgstr "یک چندضلعی انسدادی باید تنظیم (یا ترسیم) شود تا جلوه کننده باشد."
#: scene/2d/light_occluder_2d.cpp
#, fuzzy
@@ -12680,7 +12596,7 @@ msgstr ""
#: scene/3d/collision_polygon.cpp
msgid "An empty CollisionPolygon has no effect on collision."
-msgstr "یک CollisionPolygon خالی تأثیری بر برخورد ندارد."
+msgstr "یک CollisionPolygon خالی جلوه بر برخورد ندارد."
#: scene/3d/collision_shape.cpp
msgid ""
@@ -12733,6 +12649,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12825,6 +12746,8 @@ msgid ""
"WorldEnvironment requires its \"Environment\" property to contain an "
"Environment to have a visible effect."
msgstr ""
+"محیط جهان نیاز به ویژگی \"محیط\" خود دارد تا دارای یک محیط باشد تا جلوه ای "
+"قابل دیدن داشته باشد."
#: scene/3d/world_environment.cpp
msgid ""
@@ -13009,7 +12932,10 @@ msgstr ""
#: servers/visual/shader_language.cpp
msgid "Constants cannot be modified."
-msgstr ""
+msgstr "ثوابت قابل تغییر نیستند."
+
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "فایل‌سیستم و وارد‌کردن لنگرگاه"
#~ msgid "Not in resource path."
#~ msgstr "در مسیرِ منبع نیست."
diff --git a/editor/translations/fi.po b/editor/translations/fi.po
index 8ea9a940f0..93bfde1e50 100644
--- a/editor/translations/fi.po
+++ b/editor/translations/fi.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
+"PO-Revision-Date: 2020-09-05 09:37+0000\n"
"Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/"
"godot/fi/>\n"
@@ -24,7 +24,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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -529,6 +529,7 @@ msgid "Seconds"
msgstr "Sekunnit"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -707,7 +708,7 @@ msgstr "Huomioi kirjainkoko"
msgid "Whole Words"
msgstr "Kokonaisia sanoja"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Korvaa"
@@ -899,6 +900,11 @@ msgid "Signals"
msgstr "Signaalit"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Suodata laattoja"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Oletko varma, että haluat poistaa kaikki kytkennät tältä signaalilta?"
@@ -936,7 +942,7 @@ msgid "Recent:"
msgstr "Viimeaikaiset:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Hae:"
@@ -1117,6 +1123,9 @@ msgstr "Projektin perustajat"
msgid "Lead Developer"
msgstr "Pääkehittäjä"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Projektipäällikkö "
@@ -1138,6 +1147,14 @@ msgid "Gold Sponsors"
msgstr "Kultasponsorit"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "Hopeasponsorit"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "Pronssisponsorit"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Minisponsorit"
@@ -1616,16 +1633,17 @@ msgid "Scene Tree Editing"
msgstr "Skenepuun muokkaus"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Tuontitelakka"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Solmutelakka"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Tiedostojärjestelmä- ja tuontitelakat"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Tiedostojärjestelmä"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Tuontitelakka"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1710,7 +1728,7 @@ msgstr "Uusi"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/project_manager.cpp
msgid "Import"
-msgstr "Tuo"
+msgstr "Tuonti"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
@@ -1891,7 +1909,7 @@ msgstr "Hakemistot ja tiedostot:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Esikatselu:"
@@ -2327,11 +2345,6 @@ msgid "There is no defined scene to run."
msgstr "Suoritettavaa skeneä ei ole määritetty."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"Nykyistä skeneä ei ole vielä tallennettu. Tallenna se ennen suorittamista."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Aliprosessia ei voitu käynnistää!"
@@ -2767,24 +2780,28 @@ msgstr "Julkaise etätestauksen kanssa"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Vietäessä tai julkaistaessa, käynnistettävä ohjelma yrittää ottaa yhteyden "
-"tämän tietokoneen IP-osoitteeseen testaamista varten."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Kevyt käyttöönotto verkkolevyn avulla"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Kun tämä on valittuna, vienti tai julkaisu tuottaa pienimmän mahdollisen "
"käynnistystiedoston.\n"
@@ -2798,9 +2815,10 @@ msgid "Visible Collision Shapes"
msgstr "Näytä törmäysmuodot"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Törmäysmuodot ja raycast-solmut (2D ja 3D) ovat näkyvillä peliä ajettaessa "
"tämän ollessa valittuna."
@@ -2810,38 +2828,43 @@ msgid "Visible Navigation"
msgstr "Näkyvä navigaatio"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Navigointiverkot ja niiden polygonit ovat näkyvillä peliä ajettaessa tämän "
"ollessa valittuna."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Synkronoi skenen muutokset"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Tämän ollessa valittuna, kaikki skeneen tehdyt muutokset toteutetaan myös "
"käynnissä olevassa pelissä.\n"
"Mikäli peliä ajetaan etälaitteella, on tehokkaampaa käyttää verkkolevyä."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Synkronoi skriptin muutokset"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Jos tämä on valittu, kaikki tallennetut skriptit ladataan uudelleen pelin "
"käynnistyessä.\n"
@@ -2904,7 +2927,7 @@ msgstr "Ohje"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Hae"
@@ -3322,9 +3345,11 @@ msgid "Add Key/Value Pair"
msgstr "Lisää avain/arvopari"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Käynnistettävää vientipohjaa ei löytynyt tälle alustalle.\n"
"Lisää sellainen vientivalikosta."
@@ -5094,7 +5119,7 @@ msgid "Bake Lightmaps"
msgstr "Kehitä Lightmapit"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Esikatselu"
@@ -7742,7 +7767,8 @@ msgid "New Animation"
msgstr "Uusi animaatio"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Nopeus (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8152,7 +8178,7 @@ msgstr "Peitto"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Navigation"
-msgstr "Siirtyminen"
+msgstr "Navigointi"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Bitmask"
@@ -8642,7 +8668,7 @@ msgstr "Muuntaa HSV-vektorin RGB-vastaavaksi."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts RGB vector to HSV equivalent."
-msgstr "Muuntaa RGB-vektori HSV-vastaavaksi."
+msgstr "Muuntaa RGB-vektorin HSV-vastaavaksi."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Sepia function."
@@ -9867,6 +9893,7 @@ msgstr ""
"Haluatko varmasti etsiä %s kansiosta olemassa olevia Godot-projekteja?\n"
"Tämä saattaa kestää hetken."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Projektinhallinta"
@@ -10306,11 +10333,18 @@ msgid "Batch Rename"
msgstr "Niputettu uudelleennimeäminen"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Korvaa: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Etuliite"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Pääte"
#: editor/rename_dialog.cpp
@@ -10358,7 +10392,8 @@ msgid "Per-level Counter"
msgstr "Per taso -laskuri"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Jos asetettu, laskuri alkaa alusta jokaiselle alisolmujen ryhmälle"
#: editor/rename_dialog.cpp
@@ -10418,7 +10453,8 @@ msgid "Reset"
msgstr "Palauta"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Säännöllisen lausekkeen virhe"
#: editor/rename_dialog.cpp
@@ -10530,6 +10566,10 @@ msgid "Make node as Root"
msgstr "Tee solmusta juurisolmu"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "Poista %d solmua ja kaikki alisolmut?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Poista %d solmua?"
@@ -12223,6 +12263,15 @@ msgstr ""
"CollisionShape2D solmulla täytyy olla muoto, jotta se toimisi. Ole hyvä ja "
"luo sille muotoresurssi!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Polygonipohjaisia muotoja ei ole tarkoitus käyttää tai muokata suoraan "
+"CollisionShape2D solmun kautta. Ole hyvä ja käytä sen sijaan "
+"CollisionPolygon2D solmua."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12490,6 +12539,11 @@ msgstr ""
"GIProbe ei ole tuettu GLES2 näyttöajurissa.\n"
"Käytä sen sijaan BakedLightmap resurssia."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12797,6 +12851,20 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa."
msgid "Constants cannot be modified."
msgstr "Vakioita ei voi muokata."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Tiedostojärjestelmä- ja tuontitelakat"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Vietäessä tai julkaistaessa, käynnistettävä ohjelma yrittää ottaa "
+#~ "yhteyden tämän tietokoneen IP-osoitteeseen testaamista varten."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Nykyistä skeneä ei ole vielä tallennettu. Tallenna se ennen suorittamista."
+
#~ msgid "Not in resource path."
#~ msgstr "Ei löytynyt resurssipolusta."
diff --git a/editor/translations/fil.po b/editor/translations/fil.po
index ceda61c802..de981e7625 100644
--- a/editor/translations/fil.po
+++ b/editor/translations/fil.po
@@ -5,11 +5,12 @@
# Marco Santos <enum.scima@gmail.com>, 2019.
# Amado Wilkins <epicalert68@gmail.com>, 2019.
# Bakainkorp <Ryan.Bautista86@myhunter.cuny.edu>, 2019.
+# Jethro Parker <lionbearjet@hotmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2019-12-21 08:37+0000\n"
-"Last-Translator: Bakainkorp <Ryan.Bautista86@myhunter.cuny.edu>\n"
+"PO-Revision-Date: 2020-08-14 03:56+0000\n"
+"Last-Translator: Jethro Parker <lionbearjet@hotmail.com>\n"
"Language-Team: Filipino <https://hosted.weblate.org/projects/godot-engine/"
"godot/fil/>\n"
"Language: fil\n"
@@ -17,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 "
"|| n % 10 == 6 || n % 10 == 9);\n"
-"X-Generator: Weblate 3.10\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -28,7 +29,7 @@ msgstr ""
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "Nanghihingi ng string na may habang 1 (character)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -185,12 +186,12 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
-msgstr ""
+msgstr "Ibahin ang haba ng Animation"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "Ibahin ang ulit ng Animation"
#: editor/animation_track_editor.cpp
msgid "Property Track"
@@ -218,44 +219,44 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Animation length (frames)"
-msgstr ""
+msgstr "Haba ng animation (frames)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
-msgstr ""
+msgstr "Haba ng animation (segundo)"
#: editor/animation_track_editor.cpp
msgid "Add Track"
-msgstr ""
+msgstr "Magdagdag ng Track"
#: editor/animation_track_editor.cpp
msgid "Animation Looping"
-msgstr ""
+msgstr "Pagulit ng Animation"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Functions:"
-msgstr ""
+msgstr "Functions:"
#: editor/animation_track_editor.cpp
msgid "Audio Clips:"
-msgstr ""
+msgstr "Mga clip ng tunog:"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
-msgstr ""
+msgstr "Mga clip ng Anim:"
#: editor/animation_track_editor.cpp
msgid "Change Track Path"
-msgstr ""
+msgstr "Ibahin ang landas ng Track"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
-msgstr ""
+msgstr "Ilipat sa on/off ang track na ito."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr ""
+msgstr "Baguhin ang Mode (Kung paano na-set ang property)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
@@ -514,6 +515,7 @@ msgid "Seconds"
msgstr "Segundo"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -693,7 +695,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Palitan"
@@ -882,6 +884,10 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -919,7 +925,7 @@ msgid "Recent:"
msgstr "Kamakailan:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Paghahanap:"
@@ -1093,6 +1099,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1114,6 +1123,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1577,15 +1594,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1848,7 +1865,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -1893,7 +1910,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Description"
-msgstr ""
+msgstr "Paglalarawan"
#: editor/editor_help.cpp
msgid "Online Tutorials"
@@ -2259,10 +2276,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2678,22 +2691,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2702,8 +2719,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2712,32 +2729,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2797,7 +2814,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -2820,11 +2837,11 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr ""
+msgstr "Komunidad"
#: editor/editor_node.cpp
msgid "About"
-msgstr ""
+msgstr "Tungkol"
#: editor/editor_node.cpp
msgid "Play the project."
@@ -3199,7 +3216,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4924,7 +4942,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7510,7 +7528,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9489,6 +9507,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9919,11 +9938,16 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Palitan"
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -9969,7 +9993,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10027,7 +10051,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10133,6 +10157,10 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr ""
@@ -11739,6 +11767,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -11951,6 +11985,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index 9dd9b3e166..c39d4c7e0c 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -35,7 +35,7 @@
# Rémi Verschelde <rverschelde@gmail.com>, 2016-2017.
# Robin Arys <robinarys@hotmail.com>, 2017.
# Roger BR <drai_kin@hotmail.com>, 2016.
-# salty64 <cedric.arrabie@univ-pau.fr>, 2018.
+# salty64 <cedric.arrabie@univ-pau.fr>, 2018, 2020.
# Thomas Baijot <thomasbaijot@gmail.com>, 2016, 2019.
# Tommy Melançon-Roy <tommel1234@hotmail.com>, 2017-2018.
# Willow <theotimefd@aol.com>, 2018.
@@ -79,7 +79,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
+"PO-Revision-Date: 2020-09-08 13:44+0200\n"
"Last-Translator: Nathan <bonnemainsnathan@gmail.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
"godot/fr/>\n"
@@ -88,7 +88,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Poedit 2.4.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -136,7 +136,7 @@ msgstr "Lors de l’appel à '%s' :"
#: core/ustring.cpp
msgid "B"
-msgstr "Octet"
+msgstr "o"
#: core/ustring.cpp
msgid "KiB"
@@ -384,7 +384,7 @@ msgstr "Envelopper l’interp. de la boucle"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr "Insérer clés"
+msgstr "Insérer clé"
#: editor/animation_track_editor.cpp
msgid "Duplicate Key(s)"
@@ -606,6 +606,7 @@ msgid "Seconds"
msgstr "Secondes"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "IPS"
@@ -784,7 +785,7 @@ msgstr "Sensible à la casse"
msgid "Whole Words"
msgstr "Mots entiers"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Remplacer"
@@ -977,6 +978,11 @@ msgid "Signals"
msgstr "Signaux"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtrer les tuiles"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Voulez-vous vraiment supprimer toutes les connexions de ce signal ?"
@@ -1014,7 +1020,7 @@ msgid "Recent:"
msgstr "Récents :"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Rechercher :"
@@ -1196,9 +1202,12 @@ msgstr "Fondateurs du projet"
msgid "Lead Developer"
msgstr "Développeur principal"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
-msgstr "Gestionnaire de projets "
+msgstr "Chef de projet "
#: editor/editor_about.cpp
msgid "Developers"
@@ -1217,6 +1226,14 @@ msgid "Gold Sponsors"
msgstr "Sponsors Or"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "Sponsors Argent"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "Sponsors Bronze"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini Sponsors"
@@ -1694,16 +1711,17 @@ msgid "Scene Tree Editing"
msgstr "Édition de l'arbre de scène"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Dock d'importation"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Dock nœud"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Module d'importation et système de fichiers"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Système de fichiers"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Dock d'importation"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1787,7 +1805,7 @@ msgstr "Nouveau"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/project_manager.cpp
msgid "Import"
-msgstr "Importer"
+msgstr "Importation"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
@@ -1968,7 +1986,7 @@ msgstr "Répertoires et fichiers :"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Aperçu :"
@@ -2409,12 +2427,6 @@ msgid "There is no defined scene to run."
msgstr "Il n'y a pas de scène définie pour être lancée."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"La scène actuelle n'a jamais été sauvegardée, veuillez la sauvegarder avant "
-"de la lancer."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Impossible de démarrer le sous-processus !"
@@ -2867,24 +2879,28 @@ msgstr "Déployer avec le débogage distant"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Lors de l'exportation ou du déploiement, l'exécutable produit tentera de se "
-"connecter à l'adresse IP de cet ordinateur afin de procéder au débogage."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Déploiement minime avec système de fichier réseau"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Lorsque cette option est activée, l'exportation ou le déploiement produira "
"un exécutable minimal.\n"
@@ -2899,9 +2915,10 @@ msgid "Visible Collision Shapes"
msgstr "Formes de collision visibles"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Les formes de collision et les nœuds de raycast (pour 2D et 3D) seront "
"visibles en jeu si cette option est activée."
@@ -2911,23 +2928,26 @@ msgid "Visible Navigation"
msgstr "Navigation visible"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Les maillages et polygones de navigation seront visibles en jeu si cette "
"option est activée."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Synchroniser les modifications des scènes"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Lorsque cette option est activée, toutes les modifications apportées à la "
"scène dans l'éditeur seront reproduites en jeu.\n"
@@ -2935,15 +2955,17 @@ msgstr ""
"plus efficace avec le système de fichiers réseau."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Synchroniser les modifications des scripts"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Lorsque cette option est activée, tout script enregistré sera de nouveau "
"chargé pendant le déroulement du jeu.\n"
@@ -3008,7 +3030,7 @@ msgstr "Aide"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Rechercher"
@@ -3428,9 +3450,11 @@ msgid "Add Key/Value Pair"
msgstr "Ajouter une paire clé/valeur"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Aucun préréglage d'exportation exécutable trouvé pour cette plate-forme. \n"
"Ajoutez un préréglage exécutable dans le menu d'exportation."
@@ -5213,7 +5237,7 @@ msgid "Bake Lightmaps"
msgstr "Précalculer les lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Aperçu"
@@ -5543,7 +5567,7 @@ msgstr "Activer/Désactiver le magnétisme intelligent."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Smart Snap"
-msgstr "Utiliser le magnétisme intelligent"
+msgstr "Utiliser l'aimantation intelligente"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle grid snapping."
@@ -7311,7 +7335,7 @@ msgstr "Échelle : "
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translating: "
-msgstr "Traduction : "
+msgstr "Translation : "
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotating %s degrees."
@@ -7567,7 +7591,7 @@ msgstr "Utiliser les coordonées locales"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr "Aligner avec la grille"
+msgstr "Utiliser l’aimantation"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -7599,11 +7623,11 @@ msgstr "Basculer entre la vue perspective et orthogonale"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Insert Animation Key"
-msgstr "Insérer une clef d'animation"
+msgstr "Insérer une clé d'animation"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
-msgstr "Focaliser sur l'origine"
+msgstr "Focaliser l'origine"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
@@ -7882,7 +7906,8 @@ msgid "New Animation"
msgstr "Nouvelle animation"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Vitesse (IPS) :"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8586,7 +8611,7 @@ msgstr "Système de contrôle de version"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Initialize"
-msgstr "initialiser"
+msgstr "Initialiser"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Staging area"
@@ -9026,8 +9051,7 @@ msgstr "Renvoie la tangente hyperbolique inverse du paramètre."
msgid ""
"Finds the nearest integer that is greater than or equal to the parameter."
msgstr ""
-"Recherche l'entier le plus proche qui est plus supérieur ou égal au "
-"paramètre."
+"Recherche l'entier le plus proche qui est supérieur ou égal au paramètre."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Constrains a value to lie between two further values."
@@ -9043,7 +9067,7 @@ msgstr "Renvoie le cosinus hyperbolique du paramètre."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in radians to degrees."
-msgstr "Convertit une quantité de radians en degrés."
+msgstr "Convertit une quantité en radians en degrés."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-e Exponential."
@@ -9109,11 +9133,11 @@ msgstr "1.0 / scalaire"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest integer to the parameter."
-msgstr "Renvoie l'entier le plus proche de celui du paramètre."
+msgstr "Renvoie l'entier le plus proche du paramètre."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest even integer to the parameter."
-msgstr "Renvoie l'entier pair le plus proche de celui du paramètre."
+msgstr "Renvoie l'entier pair le plus proche du paramètre."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Clamps the value between 0.0 and 1.0."
@@ -10024,6 +10048,7 @@ msgstr ""
"Godot existants ?\n"
"Cela pourrait prendre un moment."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Gestionnaire de projets"
@@ -10464,11 +10489,18 @@ msgid "Batch Rename"
msgstr "Renommer par lot"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Remplacer : "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Préfixe"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Suffixe"
#: editor/rename_dialog.cpp
@@ -10516,7 +10548,8 @@ msgid "Per-level Counter"
msgstr "Compteur par niveau"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Si défini, le compteur redémarre pour chaque groupe de nœuds enfant"
#: editor/rename_dialog.cpp
@@ -10576,7 +10609,8 @@ msgid "Reset"
msgstr "Réinitialiser"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Erreur dans l'expression régulière"
#: editor/rename_dialog.cpp
@@ -10686,6 +10720,10 @@ msgid "Make node as Root"
msgstr "Choisir le nœud comme racine de scène"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "Supprimer %d nœuds et leurs enfants potentiels ?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Supprimer %d nœuds ?"
@@ -11130,11 +11168,11 @@ msgstr "Erreur :"
#: editor/script_editor_debugger.cpp
msgid "C++ Error"
-msgstr "Erreur C ++"
+msgstr "Erreur C++"
#: editor/script_editor_debugger.cpp
msgid "C++ Error:"
-msgstr "Erreur C ++ :"
+msgstr "Erreur C++ :"
#: editor/script_editor_debugger.cpp
msgid "C++ Source"
@@ -11223,7 +11261,7 @@ msgstr "Exporter la liste vers un fichier CSV"
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
-msgstr "Chemin de la ressource"
+msgstr "Chemin de ressource"
#: editor/script_editor_debugger.cpp
msgid "Type"
@@ -12404,6 +12442,15 @@ msgstr ""
"Une forme doit être créée afin qu'une CollisionShape2D fonctionne. Veuillez "
"créer une ressource de forme !"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Les formes à base de polygones ne sont pas prévues pour être utilisées ou "
+"éditées via le nœud CollisionShape2D. Veuillez utiliser le nœud "
+"CollisionPolygon2D à la place."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12677,6 +12724,11 @@ msgstr ""
"Les GIProps ne sont pas supporter par le pilote de vidéos GLES2.\n"
"A la place utilisez une BakedLightMap."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12984,7 +13036,7 @@ msgstr "Affectation à la fonction."
#: servers/visual/shader_language.cpp
msgid "Assignment to uniform."
-msgstr "Affectation à l'uniforme."
+msgstr "Affectation à la variable uniform."
#: servers/visual/shader_language.cpp
msgid "Varyings can only be assigned in vertex function."
@@ -12994,6 +13046,22 @@ msgstr "Les variations ne peuvent être affectées que dans la fonction vertex."
msgid "Constants cannot be modified."
msgstr "Les constantes ne peuvent être modifiées."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Module d'importation et système de fichiers"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Lors de l'exportation ou du déploiement, l'exécutable produit tentera de "
+#~ "se connecter à l'adresse IP de cet ordinateur afin de procéder au "
+#~ "débogage."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "La scène actuelle n'a jamais été sauvegardée, veuillez la sauvegarder "
+#~ "avant de la lancer."
+
#~ msgid "Not in resource path."
#~ msgstr "Pas dans le chemin de la ressource."
diff --git a/editor/translations/ga.po b/editor/translations/ga.po
index 70dd5eada7..d727d2a1fa 100644
--- a/editor/translations/ga.po
+++ b/editor/translations/ga.po
@@ -508,6 +508,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -686,7 +687,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -875,6 +876,11 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Scagairí..."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -912,7 +918,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Cuardach:"
@@ -1086,6 +1092,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1107,6 +1116,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1571,15 +1588,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1842,7 +1859,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2253,10 +2270,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2673,22 +2686,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2697,8 +2714,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2707,32 +2724,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2792,7 +2809,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3192,7 +3209,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4921,7 +4939,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7504,7 +7522,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9485,6 +9503,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9915,11 +9934,15 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -9965,7 +9988,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10023,7 +10046,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10129,6 +10152,10 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr ""
@@ -11737,6 +11764,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -11949,6 +11982,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/he.po b/editor/translations/he.po
index 7895ae48fe..3a508c0d6d 100644
--- a/editor/translations/he.po
+++ b/editor/translations/he.po
@@ -14,12 +14,14 @@
# test test <ugbdvwpeikvyzwaadt@awdrt.org>, 2020.
# Anonymous <noreply@weblate.org>, 2020.
# Daniel Kariv <danielkariv98@gmail.com>, 2020.
+# Ziv D <wizdavid@gmail.com>, 2020.
+# yariv benj <yariv4400@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-07 21:28+0000\n"
-"Last-Translator: Anonymous <noreply@weblate.org>\n"
+"PO-Revision-Date: 2020-09-24 12:43+0000\n"
+"Last-Translator: Ziv D <wizdavid@gmail.com>\n"
"Language-Team: Hebrew <https://hosted.weblate.org/projects/godot-engine/"
"godot/he/>\n"
"Language: he\n"
@@ -28,16 +30,16 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "משתנה סוג לא חוקי לפונקציית convert()‎, יש להשתמש בקבועי TYPE_*‎."
+msgstr "סוג משתנה לא חוקי לפונקציית convert()‎, יש להשתמש בקבועי TYPE_*‎."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "צפויה מחרוזת באורך 1 (תו)."
+msgstr "היתה צפויה מחרוזת באורך 1 (תו)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -51,7 +53,7 @@ msgstr "קלט שגוי %I (לא הועבר) בתוך הביטוי"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "לא ניתן להשתמש ב־self כיוון שהמופע הוא אפס (null - לא הועבר)"
+msgstr "'self' לא ניתן לשימוש כי המופע הינו 'null' ( לא הועבר)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -63,7 +65,7 @@ msgstr "שם מאפיין האינדקס מסוג %s עבור בסיס %s שגו
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr "שם אינדקס לא תקין '%s' לסוג בסיס '%s'"
+msgstr "שם אינדקס לא תקין '%s' לסוג בסיס %s"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
@@ -75,7 +77,7 @@ msgstr "בקריאה ל־‚%s’:"
#: core/ustring.cpp
msgid "B"
-msgstr "ב׳"
+msgstr "B"
#: core/ustring.cpp
msgid "KiB"
@@ -123,15 +125,15 @@ msgstr "ערך:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr "הכנס מפתח כאן"
+msgstr "הכנס כאן מפתח"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
-msgstr "לשכפל את הקבצים הנבחרים"
+msgstr "שכפול מפתח(ות) שנבחרו"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr "למחוק את הקבצים הנבחרים"
+msgstr "מחיקת מפתח(ות) שנבחרו"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
@@ -246,7 +248,7 @@ msgstr "פונקציות:"
#: editor/animation_track_editor.cpp
msgid "Audio Clips:"
-msgstr "רצועות שמע:"
+msgstr "קטעי שמע:"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
@@ -258,7 +260,7 @@ msgstr "החלפת נתיב רצועה"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
-msgstr "הפעל/כבה רצועה"
+msgstr "הפעלת/כיבוי רצועה זו."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
@@ -266,11 +268,11 @@ msgstr "עדכן מצב (איך המאפיין הזה נקבע)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
-msgstr "מצב אינתרפולציה"
+msgstr "מצב אינטרפולציה"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr ""
+msgstr "מצב לולאה Wrap (אינטרפולציה של הסוף עם ההתחלה בלולאה)"
#: editor/animation_track_editor.cpp
msgid "Remove this track."
@@ -282,7 +284,7 @@ msgstr "זמן (שניות): "
#: editor/animation_track_editor.cpp
msgid "Toggle Track Enabled"
-msgstr ""
+msgstr "הפעלת/ביטול רצועה"
#: editor/animation_track_editor.cpp
msgid "Continuous"
@@ -315,11 +317,11 @@ msgstr "מעוקב"
#: editor/animation_track_editor.cpp
msgid "Clamp Loop Interp"
-msgstr ""
+msgstr "אינטרפולצית לולאה מסוג Clamp"
#: editor/animation_track_editor.cpp
msgid "Wrap Loop Interp"
-msgstr ""
+msgstr "אינטרפולצית לולאה מסוג Wrap"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -335,14 +337,12 @@ msgid "Delete Key(s)"
msgstr "מחיקת מפתח(ות)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Update Mode"
msgstr "שינוי מצב עדכון הנפשה"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Interpolation Mode"
-msgstr "החלפת ערך מילון"
+msgstr "שינוי מצב אינטרפולציה בהנפשה"
#: editor/animation_track_editor.cpp
msgid "Change Animation Loop Mode"
@@ -373,7 +373,6 @@ msgid "Create"
msgstr "יצירה"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Insert"
msgstr "הוסף הנפשה"
@@ -400,9 +399,8 @@ msgid "Change Animation Step"
msgstr "ניקוי ההנפשה"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Rearrange Tracks"
-msgstr "סידור רצועות"
+msgstr "סדר רצועות מחדש"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
@@ -430,7 +428,7 @@ msgstr "נגן הנפשה אינו יכול להנפיש את עצמו, רק ש
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
-msgstr ""
+msgstr "אי אפשר להוסיף רצועה חדשה בלי שורש"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
@@ -469,23 +467,20 @@ msgid "Add Method Track Key"
msgstr "הוספת רצועות חדשות."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Method not found in object: "
-msgstr "לא נמצא VariableGet בסקריפט: "
+msgstr "לא נמצאה מתודה בעצם: "
#: editor/animation_track_editor.cpp
msgid "Anim Move Keys"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Clipboard is empty"
-msgstr "לוח גזירי המשאבים ריק!"
+msgstr "לוח העתקה ריק"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Paste Tracks"
-msgstr "הדבקת משתנים"
+msgstr "הדבקת רצועות"
#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
@@ -494,7 +489,7 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid ""
"This option does not work for Bezier editing, as it's only a single track."
-msgstr ""
+msgstr "אפשרות זו אינה פעילה לעריכת בזייה, כי זאת רק רצועה אחת."
#: editor/animation_track_editor.cpp
msgid ""
@@ -508,40 +503,46 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
+"ההנפשה שייכת לסצנה מיובאת, לכן שינויים לרצועות המיובאות לא ישמרו.\n"
+"\n"
+"להפעלת האפשרות להוספת רצועות מותאמות-אישית, יש לקבוע בהגדרות ייבוא של הסצנה "
+"את\n"
+"\"הנפשה > אחסון\" ל-\"קבצים\", להפעיל את \"הנפשה > השאר רצועות מותאמות-אישית"
+"\", ולבסוף לייבא מחדש.\n"
+"דרך אחרת, להשתמש בהגדרות ייבוא אשר מייבאים הנפשות לקבצים נפרדים."
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
-msgstr ""
+msgstr "אזהרה: עריכת הנפשה מיובאת"
#: editor/animation_track_editor.cpp
msgid "Select an AnimationPlayer node to create and edit animations."
-msgstr ""
+msgstr "יש לבחור במפרק AnimationPlayer כדי ליצור ולערוך הנפשות."
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
-msgstr ""
+msgstr "הצגת רצועות רק של מפרקים שנבחרו בעץ."
#: editor/animation_track_editor.cpp
msgid "Group tracks by node or display them as plain list."
-msgstr ""
+msgstr "קיבוץ רצועות לפי מפרק או הצגה כרשימה פשוטה."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Snap:"
-msgstr "הצמדה"
+msgstr "הצמדה:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation step value."
-msgstr "שקופיות ההנפשה"
+msgstr "ערך צעד של הנפשה."
#: editor/animation_track_editor.cpp
msgid "Seconds"
-msgstr ""
+msgstr "שניות"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
-msgstr ""
+msgstr "FPS"
#: editor/animation_track_editor.cpp editor/editor_properties.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -554,14 +555,12 @@ msgid "Edit"
msgstr "עריכה"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation properties."
-msgstr "שקופיות ההנפשה"
+msgstr "מאפייני ההנפשה."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Copy Tracks"
-msgstr "העתקת משתנים"
+msgstr "העתקת רצועות"
#: editor/animation_track_editor.cpp
msgid "Scale Selection"
@@ -666,7 +665,7 @@ msgstr "הגדרת מעברונים אל:"
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Copy"
-msgstr "העתקה"
+msgstr "העתק"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -704,7 +703,7 @@ msgstr "מעבר לשורה"
#: editor/code_editor.cpp
msgid "Line Number:"
-msgstr "מספר השורה:"
+msgstr "שורה מספר:"
#: editor/code_editor.cpp
msgid "%d replaced."
@@ -712,12 +711,11 @@ msgstr "%d הוחלף."
#: editor/code_editor.cpp editor/editor_help.cpp
msgid "%d match."
-msgstr "d% התאמות."
+msgstr "%d התאמה."
#: editor/code_editor.cpp editor/editor_help.cpp
-#, fuzzy
msgid "%d matches."
-msgstr "אין תוצאות"
+msgstr "%d התאמות."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
@@ -727,9 +725,9 @@ msgstr "התאמת רישיות"
msgid "Whole Words"
msgstr "מילים שלמות"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
-msgstr "להחליף"
+msgstr "החלף"
#: editor/code_editor.cpp
msgid "Replace All"
@@ -831,9 +829,8 @@ msgid "Extra Call Arguments:"
msgstr ""
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Receiver Method:"
-msgstr "מאפייני פריט."
+msgstr "שיטת המקלט:"
#: editor/connections_dialog.cpp
msgid "Advanced"
@@ -924,6 +921,11 @@ msgid "Signals"
msgstr "אותות"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "מאפייני פריט."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -933,14 +935,12 @@ msgid "Disconnect All"
msgstr "ניתוק"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Edit..."
-msgstr "עריכה"
+msgstr "עריכה..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go To Method"
-msgstr "שיטות"
+msgstr "מעבר למתודה"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -964,7 +964,7 @@ msgid "Recent:"
msgstr "אחרונים:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "חיפוש:"
@@ -1131,7 +1131,7 @@ msgstr "תודה רבה מקהילת Godot!"
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
-msgstr "מתנדבי מנוע Godot"
+msgstr "מתנדבי מנוע גודו"
#: editor/editor_about.cpp
msgid "Project Founders"
@@ -1141,6 +1141,9 @@ msgstr "מקימי המיזם"
msgid "Lead Developer"
msgstr "מפתחים ראשיים"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "מנהל המיזם "
@@ -1162,6 +1165,16 @@ msgid "Gold Sponsors"
msgstr "מממני זהב"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "תורמים בדרגת כסף"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "תורמים בדרגת ארד"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "מממנים זעירים"
@@ -1216,9 +1229,8 @@ msgid "Error opening package file, not in ZIP format."
msgstr "פתיחת קובץ החבילה נכשלה, המבנה אינו zip."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (Already Exists)"
-msgstr "הפעולה ‚%s’ כבר קיימת!"
+msgstr "%s (כבר קיים)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1395,9 +1407,8 @@ msgid "Add Bus"
msgstr "הוספת אפיק"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "שמירת פריסת אפיקי השמע בתור…"
+msgstr "הוסף אפיק שמע חדש לפריסה זו."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1603,9 +1614,8 @@ msgstr ""
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
-#, fuzzy
msgid "Custom debug template not found."
-msgstr "קובץ התבנית לא נמצא:"
+msgstr "תבנית ניפוי שגיאות מותאמת אישית לא נמצאה."
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
@@ -1642,21 +1652,21 @@ msgstr ""
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "Import Dock"
-msgstr "ייבוא"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
msgstr "שם המפרק:"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "מערכת קבצים"
#: editor/editor_feature_profile.cpp
#, fuzzy
+msgid "Import Dock"
+msgstr "ייבוא"
+
+#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Erase profile '%s'? (no undo)"
msgstr "להחליף הכול"
@@ -1718,9 +1728,8 @@ msgid ""
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Error saving profile to path: '%s'."
-msgstr "שגיאה בשמירה"
+msgstr "שגיאה בשמירת פרופיל לנתיב 's%'."
#: editor/editor_feature_profile.cpp
msgid "Unset"
@@ -1808,13 +1817,11 @@ msgid "Copy Path"
msgstr "העתקת נתיב"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-#, fuzzy
msgid "Open in File Manager"
-msgstr "הצגה במנהל הקבצים"
+msgstr "פתיחה במנהל הקבצים"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/filesystem_dock.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Show in File Manager"
msgstr "הצגה במנהל הקבצים"
@@ -1864,79 +1871,71 @@ msgstr "שמירת קובץ"
#: editor/editor_file_dialog.cpp
msgid "Go Back"
-msgstr "חזרה אחורה"
+msgstr "מעבר אחורה"
#: editor/editor_file_dialog.cpp
msgid "Go Forward"
-msgstr "התקדמות קדימה"
+msgstr "מעבר קדימה"
#: editor/editor_file_dialog.cpp
msgid "Go Up"
-msgstr "עלייה למעלה"
+msgstr "מעבר מעלה"
#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr "החלפת מצב תצוגה לקבצים מוסתרים"
+msgstr "הצג/הסתר קבצים מוסתרים"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr "החלפת מצב מועדפים"
+msgstr "הוספת/ביטול מועדף"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr "החלפת מצב"
+msgstr "שינוי מצב"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr "התמקדות על נתיב"
+msgstr "מיקוד נתיב"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr "העברת מועדף למעלה"
+msgstr "העברת מועדף מעלה"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr "העברת מועדף למטה"
+msgstr "העברת מועדף מטה"
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to previous folder."
-msgstr "מעבר לתיקייה שמעל"
+msgstr "מעבר לתיקיה הקודמת."
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to next folder."
-msgstr "מעבר לתיקייה שמעל"
+msgstr "מעבר לתיקיה הבאה."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Go to parent folder."
-msgstr "מעבר לתיקייה שמעל"
+msgstr "מעבר לתיקיית העל."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Refresh files."
-msgstr "חיפוש במחלקות"
+msgstr "רענן קבצים."
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "(Un)favorite current folder."
-msgstr "לא ניתן ליצור תיקייה."
+msgstr "(בטל) העדפת תיקייה נוכחית."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Toggle the visibility of hidden files."
-msgstr "החלפת מצב תצוגה לקבצים מוסתרים"
+msgstr "הצג/הסתר קבצים מוסתרים."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-#, fuzzy
msgid "View items as a grid of thumbnails."
-msgstr "צפייה בפריטים כרשת של תמונות ממוזערות"
+msgstr "הצג פריטים כרשת של תמונות ממוזערות."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-#, fuzzy
msgid "View items as a list."
-msgstr "הצגת פריטים כרשימה"
+msgstr "הצג פריטים כרשימה."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
@@ -1944,7 +1943,7 @@ msgstr "תיקיות וקבצים:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "תצוגה מקדימה:"
@@ -1964,11 +1963,11 @@ msgstr "סריקת מקורות"
msgid ""
"There are multiple importers for different types pointing to file %s, import "
"aborted"
-msgstr ""
+msgstr "יש מספר מייבאים לסוגים שונים המצביעים לקובץ %s, הייבוא בוטל"
#: editor/editor_file_system.cpp
msgid "(Re)Importing Assets"
-msgstr ""
+msgstr "ייבוא משאבים (מחדש)"
#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
msgid "Top"
@@ -1988,14 +1987,12 @@ msgid "Inherited by:"
msgstr "מוריש אל:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Description"
-msgstr "תיאור:"
+msgstr "תיאור"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Online Tutorials"
-msgstr "מסמכים מקוונים"
+msgstr "הדרכות מקוונות"
#: editor/editor_help.cpp
msgid "Properties"
@@ -2003,21 +2000,19 @@ msgstr "מאפיינים"
#: editor/editor_help.cpp
msgid "override:"
-msgstr ""
+msgstr "דריסה:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "default:"
-msgstr "טעינת בררת המחדל"
+msgstr "ברירת מחדל:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr "שיטות"
+msgstr "מתודות"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Theme Properties"
-msgstr "מאפיינים"
+msgstr "מאפייני ערכת עיצוב"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2028,31 +2023,32 @@ msgid "Constants"
msgstr "קבועים"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Property Descriptions"
-msgstr "תיאור המאפיין:"
+msgstr "תיאורי מאפיינים"
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "ערך:"
+msgstr "(ערך)"
#: editor/editor_help.cpp
msgid ""
"There is currently no description for this property. Please help us by "
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
+"כרגע אין תיאור למאפיין זה. בבקשה עזור לנו על-ידי [/color][/url]כתיבת "
+"תיאור[url=$url][color=$color]!"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Method Descriptions"
-msgstr "תיאור השיטה:"
+msgstr "תיאורי מתודות"
#: editor/editor_help.cpp
msgid ""
"There is currently no description for this method. Please help us by [color="
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
+"כרגע אין תיאור למתודה זו. בבקשה עזור לנו על-ידי [/url][/color]כתיבת תיאור "
+"[color=$color][url=$url]!"
#: editor/editor_help_search.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -2064,99 +2060,84 @@ msgid "Case Sensitive"
msgstr "תלוי רישיות"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Show Hierarchy"
-msgstr "חיפוש"
+msgstr "הצג היררכיה"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Display All"
-msgstr "הצגה נורמלית"
+msgstr "הצג הכל"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Classes Only"
-msgstr "מחלקות"
+msgstr "מחלקות בלבד"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Methods Only"
-msgstr "שיטות"
+msgstr "מתודות בלבד"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Signals Only"
-msgstr "אותות"
+msgstr "אותות בלבד"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Constants Only"
-msgstr "קבועים"
+msgstr "קבועים בלבד"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Properties Only"
-msgstr "מאפיינים"
+msgstr "מאפיינים בלבד"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Theme Properties Only"
-msgstr "מאפיינים"
+msgstr "מאפייני ערכת עיצוב בלבד"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Member Type"
-msgstr "חברים"
+msgstr "סוג שדה"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Class"
-msgstr "מחלקה:"
+msgstr "מחלקה"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Method"
-msgstr "שיטות"
+msgstr "מתודה"
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Signal"
-msgstr "אותות"
+msgstr "אות"
#: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constant"
msgstr "קבוע"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Property"
-msgstr "מאפיינים"
+msgstr "מאפיין"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Theme Property"
-msgstr "מאפיינים"
+msgstr "מאפיין ערכת עיצוב"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
-msgstr ""
+msgstr "מאפיין:"
#: editor/editor_inspector.cpp
msgid "Set"
-msgstr ""
+msgstr "קבע"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
-msgstr ""
+msgstr "קביעה מרובה:"
#: editor/editor_log.cpp
msgid "Output:"
msgstr "פלט:"
#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Copy Selection"
-msgstr "הסרת הבחירה"
+msgstr "העתקת בחירה"
#: editor/editor_log.cpp editor/editor_network_profiler.cpp
#: editor/editor_profiler.cpp editor/editor_properties.cpp
@@ -2166,11 +2147,11 @@ msgstr "הסרת הבחירה"
#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Clear"
-msgstr "מחיקה"
+msgstr "ניקוי"
#: editor/editor_log.cpp
msgid "Clear Output"
-msgstr "מחיקת הפלט"
+msgstr "ניקוי פלט"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
#: editor/editor_profiler.cpp
@@ -2180,20 +2161,19 @@ msgstr "עצירה"
#: editor/editor_network_profiler.cpp editor/editor_profiler.cpp
#: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp
msgid "Start"
-msgstr ""
+msgstr "התחלה"
#: editor/editor_network_profiler.cpp
msgid "%s/s"
-msgstr ""
+msgstr "%s לשנייה"
#: editor/editor_network_profiler.cpp
-#, fuzzy
msgid "Down"
msgstr "הורדה"
#: editor/editor_network_profiler.cpp
msgid "Up"
-msgstr ""
+msgstr "העלאה"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
msgid "Node"
@@ -2201,32 +2181,32 @@ msgstr "מפרק"
#: editor/editor_network_profiler.cpp
msgid "Incoming RPC"
-msgstr ""
+msgstr "RPC נכנס"
#: editor/editor_network_profiler.cpp
msgid "Incoming RSET"
-msgstr ""
+msgstr "RSET נכנס"
#: editor/editor_network_profiler.cpp
msgid "Outgoing RPC"
-msgstr ""
+msgstr "RPC יוצא"
#: editor/editor_network_profiler.cpp
msgid "Outgoing RSET"
-msgstr ""
+msgstr "RSET יוצא"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "New Window"
-msgstr ""
+msgstr "חלון חדש"
#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
-msgstr ""
+msgstr "משאבים מיובאים לא נשמרו."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: scene/gui/dialogs.cpp
msgid "OK"
-msgstr ""
+msgstr "אישור"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
@@ -2237,6 +2217,7 @@ msgid ""
"This resource can't be saved because it does not belong to the edited scene. "
"Make it unique first."
msgstr ""
+"המשאב לא יכול להישמר מפני שאינו שייך לסצנה שנערכה, הפוך אותו קודם לייחודי."
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As..."
@@ -2248,7 +2229,7 @@ msgstr "לא ניתן לפתוח קובץ לכתיבה:"
#: editor/editor_node.cpp
msgid "Requested file format unknown:"
-msgstr "תבנית הקובץ המבוקשת לא ידועה:"
+msgstr "סוג הקובץ המבוקש לא ידוע:"
#: editor/editor_node.cpp
msgid "Error while saving."
@@ -2256,27 +2237,27 @@ msgstr "שגיאה בעת השמירה."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Can't open '%s'. The file could have been moved or deleted."
-msgstr ""
+msgstr "לא יכול לפתוח את 's%'. יכול להיות שהקובץ הועבר או נמחק."
#: editor/editor_node.cpp
msgid "Error while parsing '%s'."
-msgstr "הפענוח של ‚%s’ נכשל."
+msgstr "שגיאה בפענוח 's%'."
#: editor/editor_node.cpp
msgid "Unexpected end of file '%s'."
-msgstr "סוף הקובץ בלתי צפוי ‚%s’."
+msgstr "סוף קובץ בלתי צפוי '%s'."
#: editor/editor_node.cpp
msgid "Missing '%s' or its dependencies."
-msgstr ""
+msgstr "חסר 's%' או תלות שלו."
#: editor/editor_node.cpp
msgid "Error while loading '%s'."
-msgstr "הטעינה של ‚%s’ נכשלה."
+msgstr "שגיאה בטעינת 's%'."
#: editor/editor_node.cpp
msgid "Saving Scene"
-msgstr "הסצנה נשמרת"
+msgstr "שומר סצנה"
#: editor/editor_node.cpp
msgid "Analyzing"
@@ -2284,7 +2265,7 @@ msgstr "מתבצע ניתוח"
#: editor/editor_node.cpp
msgid "Creating Thumbnail"
-msgstr "נוצרת תמונה ממוזערת"
+msgstr "יצירת תמונה ממוזערת"
#: editor/editor_node.cpp
msgid "This operation can't be done without a tree root."
@@ -2295,34 +2276,34 @@ msgid ""
"This scene can't be saved because there is a cyclic instancing inclusion.\n"
"Please resolve it and then attempt to save again."
msgstr ""
+"סצנה זו לא יכולה להישמר מפני שיש הכללת מופע מעגלית.\n"
+"בבקשה פתור זאת ואז נסה לשמור שוב."
#: editor/editor_node.cpp
msgid ""
"Couldn't save scene. Likely dependencies (instances or inheritance) couldn't "
"be satisfied."
-msgstr ""
-"לא ניתן לשמור את הסצנה. כפי הנראה עקב תלויות (מופעים או ירושות) שאינן "
-"מסופקות."
+msgstr "לא ניתן לשמור את הסצנה. כנראה עקב תלות (מופע או ירושה) שלא מסופקת."
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "Can't overwrite scene that is still open!"
-msgstr ""
+msgstr "לא ניתן להחליף סצנה שעדיין פתוחה!"
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
-msgstr ""
+msgstr "לא ניתן לטעון את MeshLibrary למיזוג!"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr ""
+msgstr "שגיאה בשמירת MeshLibrary!"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
-msgstr ""
+msgstr "לא ניתן לטעון TileSet למיזוג!"
#: editor/editor_node.cpp
msgid "Error saving TileSet!"
-msgstr ""
+msgstr "שגיאה בשמירת TileSet!"
#: editor/editor_node.cpp
msgid "Error trying to save layout!"
@@ -2330,7 +2311,7 @@ msgstr "שמירת הפריסה נכשלה!"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr "בררת המחדל של פריסת העורך שוכתבה."
+msgstr "ברירת המחדל של עורך הפריסה נדרסה."
#: editor/editor_node.cpp
msgid "Layout name not found!"
@@ -2338,7 +2319,7 @@ msgstr "שם הפריסה לא נמצא!"
#: editor/editor_node.cpp
msgid "Restored default layout to base settings."
-msgstr "פריסת בררת המחדל שוחזרה להגדרות הבסיס."
+msgstr "פריסת ברירת המחדל שוחזרה להגדרות הבסיס."
#: editor/editor_node.cpp
msgid ""
@@ -2346,20 +2327,24 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
+"משאב זה שייך לסצנה שיובאה ולא ניתן לעריכה.\n"
+"בבקשה קרא/י את התיעוד הקשור לייבוא סצנות כדי להבין טוב יותר את שיטת עבודה."
#: editor/editor_node.cpp
msgid ""
"This resource belongs to a scene that was instanced or inherited.\n"
"Changes to it won't be kept when saving the current scene."
msgstr ""
+"משאב זה שייך לסצנה שנוצר לה מופע או שעברה ירושה.\n"
+"שינויים במשאב לא יישמרו בשמירת הסצינה הנוכחית."
#: editor/editor_node.cpp
msgid ""
"This resource was imported, so it's not editable. Change its settings in the "
"import panel and then re-import."
msgstr ""
-"משאב זה עבר יבוא, לכן אין אפשרות לערוך אותו. יש לשנות את ההגדרות שלו בחלונית "
-"הייבוא ואז לייבא שוב."
+"משאב זה מיובא ואין אפשרות לערוך אותו. יש לשנות את הגדרותיו בחלון הייבוא "
+"ולייבא מחדש."
#: editor/editor_node.cpp
msgid ""
@@ -2368,6 +2353,9 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
+"סצנה זו מיובאת, כל שינוי בה לא יישמר.\n"
+"יצירת מופע או ירושה תאפשר לעשות בה שינויים.\n"
+"בבקשה קרא/י את התיעוד הקשור לייבוא סצנות כדי להבין טוב יותר את שיטת העבודה."
#: editor/editor_node.cpp
msgid ""
@@ -2375,16 +2363,14 @@ msgid ""
"Please read the documentation relevant to debugging to better understand "
"this workflow."
msgstr ""
+"זהו אובייקט מרוחק לכן שינויים בו לא יישמרו.\n"
+"בבקשה קרא/י את התיועד הקשור לניפוי שגיאות כדי להבין טוב יותר את שיטת העבודה."
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
msgstr "אין סצנה מוגדרת להרצה."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "הסצנה הנוכחית מעולם לא נשמרה, נא לשמור אותה בטרם ההרצה."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "לא ניתן להפעיל תהליך משנה!"
@@ -2397,9 +2383,8 @@ msgid "Open Base Scene"
msgstr "פתיחת סצנת בסיס"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Quick Open..."
-msgstr "פתיחת סצנה מהירה…"
+msgstr "פתיחה מהירה…"
#: editor/editor_node.cpp
msgid "Quick Open Scene..."
@@ -2415,16 +2400,15 @@ msgstr "שמירה וסגירה"
#: editor/editor_node.cpp
msgid "Save changes to '%s' before closing?"
-msgstr "לשמור את השינויים ל־‚%s’ לפני הסגירה?"
+msgstr "לשמור את השינויים ל־'%s' לפני הסגירה?"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Saved %s modified resource(s)."
-msgstr "טעינת המשאב נכשלה."
+msgstr "נשמרו %s משאבים שהשתנו."
#: editor/editor_node.cpp
msgid "A root node is required to save the scene."
-msgstr ""
+msgstr "מפרק עליון דרוש כדי לשמור את הסצינה."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2448,7 +2432,7 @@ msgstr "לא ניתן לבצע פעולה זו ללא סצנה."
#: editor/editor_node.cpp
msgid "Export Mesh Library"
-msgstr ""
+msgstr "ייצוא Mesh Library"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
@@ -2456,7 +2440,7 @@ msgstr "לא ניתן לבצע פעולה זו ללא מפרק עליון."
#: editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr ""
+msgstr "ייצוא Tile Set"
#: editor/editor_node.cpp
msgid "This operation can't be done without a selected node."
@@ -2471,19 +2455,20 @@ msgid "Can't reload a scene that was never saved."
msgstr "לא ניתן לרענן סצנה שמעולם לא נשמרה."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "שמירת סצנה"
+msgstr "טעינה מחדש של סצינה שמורה"
#: editor/editor_node.cpp
msgid ""
"The current scene has unsaved changes.\n"
"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
+"הסצינה הנוכחית כוללת שינויים שלא נשמרו.\n"
+"האם לטעון מחדש את הסצינה? לא ניתן לבטל פעולה זו."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
-msgstr ""
+msgstr "הפעלה מהירה של הסצנה..."
#: editor/editor_node.cpp
msgid "Quit"
@@ -2526,56 +2511,61 @@ msgid "Close Scene"
msgstr "סגירת סצנה"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reopen Closed Scene"
-msgstr "סגירת סצנה"
+msgstr "פתיחה מחדש של סצנה סגורה"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
-msgstr "לא ניתן לפתוח את תוסף ההרחבות תחת: ‚%s’ פענוח ההגדרות נכשל."
+msgstr "לא ניתן לפתוח את תוסף ההרחבות בנתיב: '%s' פענוח ההגדרות נכשל."
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
-msgstr "לא ניתן למצוא שדה סקריפט עבור תוסף הרחבה תחת ‚res://addons/%s’."
+msgstr "לא ניתן למצוא שדה סקריפט עבור תוסף הרחבה בנתיב 'res://addons/%s'."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s'."
-msgstr "לא ניתן לטעון סקריפט הרחבה מהנתיב: ‚%s’."
+msgstr "לא ניתן לטעון סקריפט הרחבה מנתיב: '%s'."
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' There seems to be an error in "
"the code, please check the syntax."
msgstr ""
+"לא ניתן לטעון סקריפט הרחבה מנתיב: '%s' נראה שיש שגיאה בקוד, אנא בדוק את "
+"התחביר."
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
-msgstr ""
+msgstr "לא ניתן לטעון סקריפט הרחבה מנתיב: '%s' סוג הבסיס אינו EditorPlugin."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
-msgstr ""
+msgstr "לא ניתן לטעון סקריפט הרחבה מנתיב: '%s' סקריפט אינו מוגדר ככלי (tool)."
#: editor/editor_node.cpp
msgid ""
"Scene '%s' was automatically imported, so it can't be modified.\n"
"To make changes to it, a new inherited scene can be created."
msgstr ""
+"הסצינה '%s' יובאה באופן אוטומטי ואין אפשרות לשנות אותה.\n"
+"כדי לבצע בה שינויים, ניתן ליצור סצינה חדשה בירושה."
#: editor/editor_node.cpp
msgid ""
"Error loading scene, it must be inside the project path. Use 'Import' to "
"open the scene, then save it inside the project path."
msgstr ""
+"שגיאה בטעינת הסצנה, היא חייבת להיות בתוך נתיב המיזם. השתמש ב'ייבוא' כדי "
+"לפתוח את הסצינה, ואז שמור אותה בנתיב המיזם."
#: editor/editor_node.cpp
msgid "Scene '%s' has broken dependencies:"
-msgstr ""
+msgstr "לסצינה '%s' יש תלות חסרה:"
#: editor/editor_node.cpp
msgid "Clear Recent Scenes"
-msgstr ""
+msgstr "נקה סצינות אחרונות"
#: editor/editor_node.cpp
msgid ""
@@ -2583,6 +2573,8 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"לא הוגדרה סצנה ראשית, לבחור אחת?\n"
+"אפשר לשנות זאת מאוחר יותר ב-\"הגדרות מיזם\" תחת הקטגוריה 'יישום'."
#: editor/editor_node.cpp
msgid ""
@@ -2590,6 +2582,8 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"הסצינה שנבחרה '%s' לא קיימת, לבחור סצנה קיימת?\n"
+"אפשר לשנות זאת מאוחר יותר ב\"הגדרות מיזם\" תחת הקטגוריה 'יישום'."
#: editor/editor_node.cpp
msgid ""
@@ -2597,81 +2591,78 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"הסצינה שנבחרה '%s' אינה קובץ סצינה, לבחור קובץ סצינה אחר?\n"
+"אפשר לשנות זאת מאוחר יותר ב-\"הגדרות מיזם\" תחת הקטגוריה 'יישום'."
#: editor/editor_node.cpp
msgid "Save Layout"
-msgstr ""
+msgstr "שמירת פריסה"
#: editor/editor_node.cpp
msgid "Delete Layout"
-msgstr ""
+msgstr "מחיקת פריסה"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
msgid "Default"
-msgstr ""
+msgstr "בחירת מחדל"
#: editor/editor_node.cpp editor/editor_properties.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Show in FileSystem"
-msgstr "הצגה במערכת הקבצים"
+msgstr "הצגה בחלון הקבצים"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Play This Scene"
-msgstr "נגינת הסצנה"
+msgstr "הרצת הסצנה"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Close Tab"
-msgstr "לסגור לשוניות אחרות"
+msgstr "סגירת לשונית"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Undo Close Tab"
-msgstr "לסגור לשוניות אחרות"
+msgstr "ביטול סגירת לשונית"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Close Other Tabs"
-msgstr "לסגור לשוניות אחרות"
+msgstr "סגירת לשוניות אחרות"
#: editor/editor_node.cpp
msgid "Close Tabs to the Right"
-msgstr ""
+msgstr "סגירת לשוניות מימין"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Close All Tabs"
-msgstr "לסגור הכול"
+msgstr "סגירת כל הלשוניות"
#: editor/editor_node.cpp
msgid "Switch Scene Tab"
-msgstr ""
+msgstr "החלפת לשונית סצנה"
#: editor/editor_node.cpp
msgid "%d more files or folders"
-msgstr ""
+msgstr "%d קבצים או תיקיות נוספים"
#: editor/editor_node.cpp
msgid "%d more folders"
-msgstr ""
+msgstr "%d תיקיות נוספות"
#: editor/editor_node.cpp
msgid "%d more files"
-msgstr ""
+msgstr "%d קבצים נוספים"
#: editor/editor_node.cpp
msgid "Dock Position"
-msgstr ""
+msgstr "מיקום הפנל"
#: editor/editor_node.cpp
msgid "Distraction Free Mode"
-msgstr ""
+msgstr "מצב ללא הסחות דעת"
#: editor/editor_node.cpp
msgid "Toggle distraction-free mode."
-msgstr ""
+msgstr "הפעל/בטל מצב ללא הסחות דעת."
#: editor/editor_node.cpp
msgid "Add a new scene."
@@ -2683,12 +2674,11 @@ msgstr "סצנה"
#: editor/editor_node.cpp
msgid "Go to previously opened scene."
-msgstr "מעבר לסצנה שנפתחה קודם לכן."
+msgstr "מעבר לסצנה הקודמת."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Copy Text"
-msgstr "העתקת נתיב"
+msgstr "העתקת טקסט"
#: editor/editor_node.cpp
msgid "Next tab"
@@ -2700,7 +2690,7 @@ msgstr "הלשונית הקודמת"
#: editor/editor_node.cpp
msgid "Filter Files..."
-msgstr ""
+msgstr "סנן קבצים..."
#: editor/editor_node.cpp
msgid "Operations with scene files."
@@ -2727,7 +2717,6 @@ msgid "Save Scene"
msgstr "שמירת סצנה"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Save All Scenes"
msgstr "שמירת כל הסצנות"
@@ -2737,11 +2726,11 @@ msgstr "המרה אל…"
#: editor/editor_node.cpp
msgid "MeshLibrary..."
-msgstr ""
+msgstr "MeshLibrary..."
#: editor/editor_node.cpp
msgid "TileSet..."
-msgstr ""
+msgstr "TileSet..."
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
@@ -2763,49 +2752,44 @@ msgid "Project"
msgstr "מיזם"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Project Settings..."
-msgstr "הגדרות מיזם"
+msgstr "הגדרות מיזם..."
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Version Control"
-msgstr "גרסה:"
+msgstr "בקרת גירסאות"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Set Up Version Control"
-msgstr ""
+msgstr "קביעת בקרת גירסאות"
#: editor/editor_node.cpp
msgid "Shut Down Version Control"
-msgstr ""
+msgstr "סגור בקרת גירסאות"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Export..."
-msgstr "ייצוא"
+msgstr "ייצוא..."
#: editor/editor_node.cpp
msgid "Install Android Build Template..."
-msgstr ""
+msgstr "התקנת תבנית בנייה לאנדרואיד..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Project Data Folder"
-msgstr "לפתוח את מנהל המיזמים?"
+msgstr "פתיחת תיקיית נתוני המיזם"
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
msgstr "כלים"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Orphan Resource Explorer..."
-msgstr "דפדפן משאבים יתומים"
+msgstr "סייר משאבים יתומים ..."
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr "יציאה לרשימת המיזמים"
+msgstr "יציאה לרשימת מיזמים"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
@@ -2818,125 +2802,137 @@ msgstr "הטעמה עם ניפוי שגיאות מרחוק"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"בעת ייצוא או הטמעה, קובץ ההפעלה ינסה להתחבר לכתובת ה־IP של המחשב הזה לצורך "
-"ניפוי שגיאות."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "הטמעה קטנה עם מערכת קבצים ברשת"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
+"כאשר אפשרות זו מופעלת, ייצוא או פריסה יפיקו קובץ הפעלה מינימלי.\n"
+"מערכת הקבצים תסופק מהמיזם על ידי העורך ברשת.\n"
+"באנדרואיד, הפריסה תשתמש בכבל USB לביצועים מהירים יותר. אפשרות זו מזרזת בדיקה "
+"של משחקים עם קובץ הרצה גדול."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
-msgstr ""
+msgstr "צורות התנגשות גלויים"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
+"צורות התנגשויות ומפרקי קרניים (עבור דו ותלת מימד) יהיו גלויים בהרצת המשחק אם "
+"אפשרות זאת מופעלת."
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "ניווט גלוי"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
-msgstr ""
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
+msgstr "רשתות ניווט ומצולעים יהיו גלויים בהרצת המשחק אם אפשרות זאת מופעלת."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "סנכרון השינויים בסצנה"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
+"כאשר אפשרות זו מופעלת, כל השינויים שיבוצעו בסצנה בעורך יוצגו בהרצת המשחק.\n"
+"בשימוש עם מכשיר מרוחק, מערכת קבצים ברשת (NFS) תהיה יעילה יותר ."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "סנכרון השינויים בסקריפט"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
+"כאשר אפשרות זו מופעלת, כל סקריפט שנשמר יטען מחדש בהרצת המשחק.\n"
+"בשימוש עם מכשיר מרוחק, מערכת קבצים ברשת (NFS) תהיה יעילה יותר ."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
msgstr "עורך"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Editor Settings..."
-msgstr "הגדרות עורך"
+msgstr "הגדרות העורך..."
#: editor/editor_node.cpp
msgid "Editor Layout"
msgstr "פריסת עורך"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Take Screenshot"
-msgstr "שמירת סצנה"
+msgstr "שמירת צילום מסך"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Screenshots are stored in the Editor Data/Settings Folder."
-msgstr "הגדרות עורך"
+msgstr "צילומי מסך נשמרים בתיקיית נתוני/הגדרות העורך."
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr "כניסה אל/יציאה ממסך מלא"
+msgstr "הפעלת/ביטול מסך מלא"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Toggle System Console"
-msgstr "החלפת מצב"
+msgstr "הפעלת/ביטול מסוף מערכת"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Editor Data/Settings Folder"
-msgstr "הגדרות עורך"
+msgstr "פתיחת תיקיית נתוני/הגדרות העורך"
#: editor/editor_node.cpp
msgid "Open Editor Data Folder"
-msgstr ""
+msgstr "פתיחת תיקיית נתוני העורך"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Editor Settings Folder"
-msgstr "הגדרות עורך"
+msgstr "פתיחת תיקיית הגדרות העורך"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Editor Features..."
-msgstr "ניהול תבניות ייצוא"
+msgstr "ניהול תכונות העורך..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Export Templates..."
-msgstr "ניהול תבניות ייצוא"
+msgstr "ניהול תבניות ייצוא..."
#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
msgid "Help"
@@ -2947,7 +2943,7 @@ msgstr "עזרה"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "חיפוש"
@@ -2961,13 +2957,12 @@ msgid "Q&A"
msgstr "שאלות ותשובות נפוצות"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Report a Bug"
-msgstr "ייבוא מחדש"
+msgstr "דיווח על תקלה (באג)"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
-msgstr ""
+msgstr "שליחת משוב על התיעוד"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
@@ -2975,19 +2970,19 @@ msgstr "קהילה"
#: editor/editor_node.cpp
msgid "About"
-msgstr "על"
+msgstr "על אודות"
#: editor/editor_node.cpp
msgid "Play the project."
-msgstr "נגינת המיזם…"
+msgstr "הרצת המיזם."
#: editor/editor_node.cpp
msgid "Play"
-msgstr "נגינה"
+msgstr "הרצה"
#: editor/editor_node.cpp
msgid "Pause the scene execution for debugging."
-msgstr ""
+msgstr "הפסקת הרצת הסצנה לניפוי שגיאות."
#: editor/editor_node.cpp
msgid "Pause Scene"
@@ -2999,49 +2994,44 @@ msgstr "עצירת הסצנה."
#: editor/editor_node.cpp
msgid "Play the edited scene."
-msgstr "נגינת הסצנה שנערכה."
+msgstr "הרצת הסצנה שנערכה."
#: editor/editor_node.cpp
msgid "Play Scene"
-msgstr "נגינת הסצנה"
+msgstr "הרצת הסצנה"
#: editor/editor_node.cpp
msgid "Play custom scene"
-msgstr "נגינת סצנה מותאמת אישית"
+msgstr "הרצת סצנה מותאמת אישית"
#: editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr "נגינת סצנה בהתאמה אישית"
+msgstr "הרצת סצנה בהתאמה אישית"
#: editor/editor_node.cpp
msgid "Changing the video driver requires restarting the editor."
-msgstr ""
+msgstr "שינוי מנהל התקן הווידאו דורש הפעלת העורך מחדש."
#: editor/editor_node.cpp editor/project_settings_editor.cpp
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Save & Restart"
-msgstr "לשמור ולצאת"
+msgstr "שמירה והפעלה מחדש"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Spins when the editor window redraws."
-msgstr "מסתובב כאשר חלון העורך מצויר מחדש!"
+msgstr "מסתובב כאשר חלון העורך מצויר מחדש."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Continuously"
-msgstr "מתמשך"
+msgstr "עדכון רציף"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update When Changed"
-msgstr "עדכון שינויים"
+msgstr "עדכון בעת שינוי"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Hide Update Spinner"
-msgstr "השבתת שבשבת עדכון"
+msgstr "הסתרת מחוון העדכון"
#: editor/editor_node.cpp
msgid "FileSystem"
@@ -3052,9 +3042,8 @@ msgid "Inspector"
msgstr "חוקר"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand Bottom Panel"
-msgstr "להרחיב הכול"
+msgstr "הרחבת פאנל תחתון"
#: editor/editor_node.cpp
msgid "Output"
@@ -3066,12 +3055,11 @@ msgstr "לא לשמור"
#: editor/editor_node.cpp
msgid "Android build template is missing, please install relevant templates."
-msgstr ""
+msgstr "חסרה תבנית בנייה לאנדרואיד, נא להתקין תבניות רלוונטיות."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Templates"
-msgstr "ניהול תבניות ייצוא"
+msgstr "ניהול תבניות"
#: editor/editor_node.cpp
msgid ""
@@ -3083,6 +3071,12 @@ msgid ""
"the \"Use Custom Build\" option should be enabled in the Android export "
"preset."
msgstr ""
+"פעולה זו תגדיר את המיזם שלך לבניית אנדרואיד מותאמת אישית על ידי התקנת תבנית "
+"המקור ל- \"res://android/build\".\n"
+"לאחר מכן אפשר להחיל שינויים ולבנות APK מותאם אישית בייצוא (הוספת מודולים, "
+"שינוי AndroidManifest.xml, וכו').\n"
+"כדי לערוך בנייה מותאמת אישית במקום שימוש בתבנית קיימת, יש לאפשר את \"השתמש "
+"בבניה מותאמת אישית\" בהגדרות הייצוא לאנדרואיד."
#: editor/editor_node.cpp
msgid ""
@@ -3150,9 +3144,8 @@ msgid "Open the previous Editor"
msgstr "פתיחת העורך הקודם"
#: editor/editor_node.h
-#, fuzzy
msgid "Warning!"
-msgstr "אזהרות"
+msgstr "אזהרה!"
#: editor/editor_path.cpp
msgid "No sub-resources found."
@@ -3363,7 +3356,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -3531,9 +3525,8 @@ msgid ""
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error requesting URL:"
-msgstr "שגיאה בבקשת כתובת: "
+msgstr "שגיאה בבקשת כתובת:"
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror..."
@@ -3620,9 +3613,8 @@ msgid "Download Templates"
msgstr "הורדת תבניות"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select mirror from list: (Shift+Click: Open in Browser)"
-msgstr "בחירת אתר מראה מהרשימה: "
+msgstr "בחר אתר חלופי מהרשימה: (Shift+Click: פתיחה בדפדפן)"
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -3687,9 +3679,8 @@ msgid "Duplicating folder:"
msgstr "תיקייה משוכפלת:"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Inherited Scene"
-msgstr "סצנה חדשה בירושה…"
+msgstr "סצנה חדשה יורשת"
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -3824,9 +3815,8 @@ msgid "Create Script"
msgstr "יצירת סקריפט"
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Find in Files"
-msgstr "איתור…"
+msgstr "איתור בקבצים"
#: editor/find_in_files.cpp
#, fuzzy
@@ -3862,14 +3852,12 @@ msgid "Cancel"
msgstr ""
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Find: "
-msgstr "איתור"
+msgstr "איתור "
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace: "
-msgstr "להחליף"
+msgstr "להחליף "
#: editor/find_in_files.cpp
#, fuzzy
@@ -3895,9 +3883,8 @@ msgid "Remove from Group"
msgstr "הסרה מקבוצה"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Group name already exists."
-msgstr "הפעולה ‚%s’ כבר קיימת!"
+msgstr "שם הקבוצה כבר קיים."
#: editor/groups_editor.cpp
#, fuzzy
@@ -4090,9 +4077,8 @@ msgid "Copy Params"
msgstr "העתקת משתנים"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource Clipboard"
-msgstr "לוח גזירי המשאבים ריק!"
+msgstr "ערוך לוח העתקת משאבים"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
@@ -4334,9 +4320,8 @@ msgid "Open Animation Node"
msgstr "שם הנפשה חדשה:"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Triangle already exists."
-msgstr "הפעולה ‚%s’ כבר קיימת!"
+msgstr "המשולש כבר קיים."
#: editor/plugins/animation_blend_space_2d_editor.cpp
#, fuzzy
@@ -4391,14 +4376,13 @@ 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
msgid "Edit Filters"
-msgstr ""
+msgstr "עריכת מסננים"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Output node can't be added to the blend tree."
@@ -4431,15 +4415,14 @@ msgid "Nodes Disconnected"
msgstr "מנותק"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Set Animation"
-msgstr "שם הנפשה חדשה:"
+msgstr "קביעת הנפשה"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Delete Node"
-msgstr "מחיקת שורה"
+msgstr "מחק מפרק"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/scene_tree_dock.cpp
@@ -4534,9 +4517,8 @@ msgid "Remove Animation"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Invalid animation name!"
-msgstr "שם שגוי."
+msgstr "שם הנפשה לא חוקי!"
#: editor/plugins/animation_player_editor_plugin.cpp
#, fuzzy
@@ -4565,14 +4547,12 @@ msgid "Duplicate Animation"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation to copy!"
-msgstr "תקריב הנפשה."
+msgstr "אין הנפשה להעתקה!"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation resource on clipboard!"
-msgstr "לא בנתיב המשאב."
+msgstr "אין משאב הנפשה בלוח ההעתקה!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
@@ -4583,9 +4563,8 @@ msgid "Paste Animation"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation to edit!"
-msgstr "שם הנפשה חדשה:"
+msgstr "אין הנפשה לעריכה!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
@@ -4728,9 +4707,8 @@ msgid "Move Node"
msgstr "מצב הזזה (W)"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition exists!"
-msgstr "מעברון"
+msgstr "המעברון קיים!"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
@@ -4816,9 +4794,8 @@ msgid "Set the end animation. This is useful for sub-transitions."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition: "
-msgstr "מעברון"
+msgstr "מעברון: "
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
@@ -5203,7 +5180,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -6500,7 +6477,7 @@ msgstr "הזזת נקודה"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid ""
"The skeleton property of the Polygon2D does not point to a Skeleton2D node"
-msgstr ""
+msgstr "מאפיין 'skeleton' של Polygon2D אינו מצביע על מפרק Skeleton2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
#, fuzzy
@@ -6675,9 +6652,8 @@ msgid "Show Grid"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Configure Grid:"
-msgstr "הגדרת הצמדה…"
+msgstr "הגדר רשת:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Offset X:"
@@ -7065,9 +7041,8 @@ msgid "Line"
msgstr "שורה:"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Function"
-msgstr "מעבר לפונקציה…"
+msgstr "עבור לפונקציה"
#: editor/plugins/script_text_editor.cpp
msgid "Only resources from filesystem can be dropped."
@@ -7923,7 +7898,8 @@ msgid "New Animation"
msgstr "שם הנפשה חדשה:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "מהירות (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8868,9 +8844,8 @@ msgid "Create Shader Node"
msgstr "יצירת תיקייה"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color function."
-msgstr "מעבר לפונקציה…"
+msgstr "פונקציית צבע."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color operator."
@@ -9360,9 +9335,8 @@ msgid "Transform uniform."
msgstr "התמרה"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Vector function."
-msgstr "מעבר לפונקציה…"
+msgstr "פונקציה וקטורית."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector operator."
@@ -9683,9 +9657,8 @@ msgid "Make Patch"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
msgid "Pack File"
-msgstr " קבצים"
+msgstr "קובץ ארכיון"
#: editor/project_export.cpp
msgid "Features"
@@ -9738,9 +9711,8 @@ msgid "Export Project"
msgstr "ייצוא מיזם"
#: editor/project_export.cpp
-#, fuzzy
msgid "Export mode?"
-msgstr "ייצוא מיזם"
+msgstr "מצב הייצוא?"
#: editor/project_export.cpp
#, fuzzy
@@ -9748,9 +9720,8 @@ msgid "Export All"
msgstr "ייצוא"
#: editor/project_export.cpp editor/project_manager.cpp
-#, fuzzy
msgid "ZIP File"
-msgstr " קבצים"
+msgstr "קובץ ZIP"
#: editor/project_export.cpp
msgid "Godot Game Pack"
@@ -10013,6 +9984,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "מנהל המיזמים"
@@ -10091,9 +10063,8 @@ msgid ""
msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "An action with the name '%s' already exists."
-msgstr "הפעולה ‚%s’ כבר קיימת!"
+msgstr "פעולה עם השם '%s' כבר קיימת."
#: editor/project_settings_editor.cpp
msgid "Rename Input Action Event"
@@ -10456,11 +10427,16 @@ msgid "Batch Rename"
msgstr "שינוי שם"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "להחליף "
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10492,9 +10468,8 @@ msgid "Node type"
msgstr "איתור סוג מפרק"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Current scene name"
-msgstr "הסצנה הנוכחית לא נשמרה. לפתוח בכל זאת?"
+msgstr "שם סצנה נוכחית"
#: editor/rename_dialog.cpp
#, fuzzy
@@ -10512,7 +10487,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10574,8 +10549,9 @@ msgid "Reset"
msgstr "איפוס התקריב"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
-msgstr ""
+#, fuzzy
+msgid "Regular Expression Error:"
+msgstr "גרסה נוכחית:"
#: editor/rename_dialog.cpp
#, fuzzy
@@ -10684,10 +10660,14 @@ msgstr "שמירת סצנה"
#: editor/scene_tree_dock.cpp
#, fuzzy
-msgid "Delete %d nodes?"
+msgid "Delete %d nodes and any children?"
msgstr "מחיקת שורה"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes?"
+msgstr "מחק %d מפרקים?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
msgstr ""
@@ -10696,9 +10676,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "מחיקת שורה"
+msgstr "מחק מפרק \"%s\"?"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -10980,19 +10959,16 @@ msgid "Select a Node"
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Path is empty."
-msgstr "לוח גזירי המשאבים ריק!"
+msgstr "הנתיב ריק."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Filename is empty."
-msgstr "לוח גזירי המשאבים ריק!"
+msgstr "שם הקובץ ריק."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Path is not local."
-msgstr "הנתיב לא מוביל מפרק!"
+msgstr "הנתיב אינו מקומי."
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -11090,9 +11066,8 @@ msgid "Will load an existing script file."
msgstr "טעינת פריסת אפיקי שמע."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Script file already exists."
-msgstr "הפעולה ‚%s’ כבר קיימת!"
+msgstr "קובץ סקריפט כבר קיים."
#: editor/script_create_dialog.cpp
msgid ""
@@ -11669,334 +11644,324 @@ msgid "Done!"
msgstr ""
#: modules/visual_script/visual_script.cpp
+#, fuzzy
msgid ""
"A node yielded without working memory, please read the docs on how to yield "
"properly!"
msgstr ""
+"מפרק ביצע yield ללא זיכרון עבודה, אנא קרא את התיעוד על איך לעשות yield כראוי!"
#: modules/visual_script/visual_script.cpp
msgid ""
"Node yielded, but did not return a function state in the first working "
"memory."
-msgstr ""
+msgstr "המפרק ביצע yield, אבל לא החזיר את מצב הפונקציה בזיכרון העבודה הראשון."
#: modules/visual_script/visual_script.cpp
msgid ""
"Return value must be assigned to first element of node working memory! Fix "
"your node please."
msgstr ""
+"יש להקצות את הערך המוחזר לאלמנט הראשון של זיכרון עבודה של המפרק! יש לתקן את "
+"המפרק בבקשה."
#: modules/visual_script/visual_script.cpp
msgid "Node returned an invalid sequence output: "
-msgstr ""
+msgstr "מפרק החזיר פלט סדר (sequence) לא חוקי: "
#: modules/visual_script/visual_script.cpp
msgid "Found sequence bit but not the node in the stack, report bug!"
-msgstr ""
+msgstr "סיבית הסדר (sequence bit) נמצאה אבל המפרק לא במחסנית, דווח על שגיאה!"
#: modules/visual_script/visual_script.cpp
msgid "Stack overflow with stack depth: "
-msgstr ""
+msgstr "גלישת מחסנית עם עומק מחסנית: "
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Signal Arguments"
-msgstr ""
+msgstr "שינוי ארגומנטים של אות"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Argument Type"
-msgstr ""
+msgstr "שינוי סוג ארגומנט"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Argument name"
-msgstr ""
+msgstr "שינוי שם ארגומנט"
#: modules/visual_script/visual_script_editor.cpp
msgid "Set Variable Default Value"
-msgstr ""
+msgstr "קביעת ערך ברירת מחדל של משתנה"
#: modules/visual_script/visual_script_editor.cpp
msgid "Set Variable Type"
-msgstr ""
+msgstr "קביעת סוג משתנה"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Input Port"
-msgstr "מועדפים:"
+msgstr "הוספת פורט כניסה"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Output Port"
-msgstr "מועדפים:"
+msgstr "הוספת פורט יציאה"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Override an existing built-in function."
-msgstr "שם שגוי. לא יכול לחפוף לשם סוג מובנה קיים."
+msgstr "דריסה של פונקציה מובנת קיימת."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new function."
-msgstr "יצירת %s חדש"
+msgstr "יצירת פונקציה חדשה."
#: modules/visual_script/visual_script_editor.cpp
msgid "Variables:"
-msgstr ""
+msgstr "משתנים:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new variable."
-msgstr "יצירת %s חדש"
+msgstr "יצירת משתנה חדש."
#: modules/visual_script/visual_script_editor.cpp
msgid "Signals:"
msgstr "אותות:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new signal."
-msgstr "יצירת מצולע"
+msgstr "יצירת אות חדש."
#: modules/visual_script/visual_script_editor.cpp
msgid "Name is not a valid identifier:"
-msgstr ""
+msgstr "השם אינו מזהה חוקי:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name already in use by another func/var/signal:"
-msgstr ""
+msgstr "השם כבר בשימוש של פונקציה/משתנה/אות אחר:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Function"
-msgstr ""
+msgstr "שינוי שם פונקציה"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Variable"
-msgstr ""
+msgstr "שינוי שם משתנה"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Signal"
-msgstr ""
+msgstr "שינוי שם אות"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Function"
-msgstr ""
+msgstr "הוספת פונקציה"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Delete input port"
-msgstr "הסרת נקודה בנתיב"
+msgstr "מחיקת פורט כניסה"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Variable"
-msgstr ""
+msgstr "הוספת משתנה"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Signal"
-msgstr ""
+msgstr "הוספת אות"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Input Port"
-msgstr "הסרת נקודה בנתיב"
+msgstr "הסרת פורט כניסה"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Output Port"
-msgstr "הסרת נקודה בנתיב"
+msgstr "הסרת פורט יציאה"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Expression"
-msgstr ""
+msgstr "שינוי ביטוי"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
-msgstr ""
+msgstr "הסרת מפרקי VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Duplicate VisualScript Nodes"
-msgstr ""
+msgstr "שכפול מפרקי VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"החזק את %s כדי להוסיף Getter. החזק את מקש Shift כדי להוסיף חתימה גנרית."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"החזק את מקש Ctrl כדי להוסיף Getter. החזק את מקש Shift כדי להוסיף חתימה גנרית."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a simple reference to the node."
-msgstr ""
+msgstr "החזק את %s כדי להוסיף הפניה פשוטה למפרק."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a simple reference to the node."
-msgstr ""
+msgstr "החזק את מקש Ctrl כדי להוסיף הפניה פשוטה למפרק."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a Variable Setter."
-msgstr ""
+msgstr "החזק את %s כדי להוסיף Setter למשתנה."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Variable Setter."
-msgstr ""
+msgstr "החזק את מקש Ctrl כדי להוסיף  Setter למשתנה."
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Preload Node"
-msgstr ""
+msgstr "הוספת מפרק קדם טעינה"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
-msgstr ""
+msgstr "הוספת מפרק/ים מהעץ"
#: modules/visual_script/visual_script_editor.cpp
msgid ""
"Can't drop properties because script '%s' is not used in this scene.\n"
"Drop holding 'Shift' to just copy the signature."
msgstr ""
+"לא ניתן להוסיף מאפיינים כי סקריפט '%s' לא בשימוש בסצנה זו.\n"
+"החזקת 'Shift' בזמן הוספה תעתיק רק את החתימה."
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Getter Property"
-msgstr ""
+msgstr "הוספת מאפיין ל-Getter"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Setter Property"
-msgstr ""
+msgstr "הוספת מאפיין ל-Setter"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Base Type"
-msgstr ""
+msgstr "שינוי סוג בסיס"
#: modules/visual_script/visual_script_editor.cpp
msgid "Move Node(s)"
-msgstr ""
+msgstr "הזזת מפרק(ים)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Node"
-msgstr ""
+msgstr "הסרת מפרק VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Connect Nodes"
-msgstr ""
+msgstr "חיבור מפרקים"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Disconnect Nodes"
-msgstr "מנותק"
+msgstr "ניתוק מפרקים"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Data"
-msgstr "התחברות למפרק:"
+msgstr "קישור נתוני ‫מפרק"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Sequence"
-msgstr "התחברות למפרק:"
+msgstr "קישור Sequence של מפרק"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
-msgstr ""
+msgstr "לסקריפט יש כבר פונקציה '%s'"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Input Value"
-msgstr ""
+msgstr "שינוי ערך נקלט"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Resize Comment"
-msgstr "החלפת מצב הערה"
+msgstr "שינוי גודל הערה"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
-msgstr ""
+msgstr "לא ניתן להעתיק את פונקצית המפרק."
#: modules/visual_script/visual_script_editor.cpp
msgid "Clipboard is empty!"
-msgstr ""
+msgstr "לוח העתקה ריק!"
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste VisualScript Nodes"
-msgstr ""
+msgstr "הדבקת מפרקי VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't create function with a function node."
-msgstr ""
+msgstr "לא ניתן ליצור פונקציה עם פונקצית המפרק."
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't create function of nodes from nodes of multiple functions."
-msgstr ""
+msgstr "לא ניתן ליצור פונקציה של מפרקים ממפרקים של פונקציות מרובות."
#: modules/visual_script/visual_script_editor.cpp
msgid "Select at least one node with sequence port."
-msgstr ""
+msgstr "בחר מפרק אחד לפחות עם כניסה רציפה (Sequence)."
#: modules/visual_script/visual_script_editor.cpp
msgid "Try to only have one sequence input in selection."
-msgstr ""
+msgstr "יש לנסות בחירה של רק כניסה רציפה אחת."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create Function"
-msgstr "יצירת %s חדש"
+msgstr "יצירת פונקציה"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
-msgstr ""
+msgstr "הסרת פונקציה"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Variable"
-msgstr ""
+msgstr "הסרת משתנה"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Variable:"
-msgstr ""
+msgstr "עריכת משתנה:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Signal"
-msgstr ""
+msgstr "הסרת אות"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Signal:"
-msgstr ""
+msgstr "עריכת אות:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Make Tool:"
-msgstr ""
+msgstr "יצירת כלי:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Members:"
-msgstr "חברים:"
+msgstr "שדות:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Base Type:"
-msgstr "שינוי ערך בררת המחדל"
+msgstr "שינוי סוג הבסיס:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Nodes..."
-msgstr "הזזת נקודה"
+msgstr "הוספת מפרקים..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function..."
-msgstr "מעבר לפונקציה…"
+msgstr "הוספת פונקציה…"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "function_name"
-msgstr "פונקציות:"
+msgstr "שם_פונקציה"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit its graph."
-msgstr ""
+msgstr "יש לבחור או ליצור פונקציה לעריכת התרשים שלה."
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
-msgstr ""
+msgstr "מחיקת הנבחר"
#: modules/visual_script/visual_script_editor.cpp
msgid "Find Node Type"
-msgstr "איתור סוג מפרק"
+msgstr "איתור סוג המפרק"
#: modules/visual_script/visual_script_editor.cpp
msgid "Copy Nodes"
@@ -12007,19 +11972,16 @@ msgid "Cut Nodes"
msgstr "גזירת מפרקים"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Function"
-msgstr "פונקציות:"
+msgstr "יצירת פונקציה"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Refresh Graph"
-msgstr "רענון"
+msgstr "רענון תרשים"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Edit Member"
-msgstr "חברים"
+msgstr "עריכת שדה"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
@@ -12027,11 +11989,11 @@ msgstr "סוג הקלט לא זמין למחזוריות: "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid"
-msgstr ""
+msgstr "איטרטור הפך ללא חוקי"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid: "
-msgstr ""
+msgstr "איטרטור הפך ללא חוקי: "
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name."
@@ -12047,7 +12009,7 @@ msgstr "הנתיב לא מוביל מפרק!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr ""
+msgstr "שם מאפיין אינדקס לא חוקי '%s' במפרק %s."
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
@@ -12074,43 +12036,43 @@ msgid ""
"Invalid return value from _step(), must be integer (seq out), or string "
"(error)."
msgstr ""
+"ערך מוחזר לא חוקי מ-_step(), חייב להיות מספר שלם (seq out) או מחרוזת (שגיאה)."
#: modules/visual_script/visual_script_property_selector.cpp
-#, fuzzy
msgid "Search VisualScript"
-msgstr "חיפוש בעזרה"
+msgstr "חיפוש VisualScript"
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Get %s"
-msgstr ""
+msgstr "קבלת %s"
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
-msgstr ""
+msgstr "קביעת %s"
#: platform/android/export/export.cpp
msgid "Package name is missing."
-msgstr ""
+msgstr "שם החבילה חסר."
#: platform/android/export/export.cpp
msgid "Package segments must be of non-zero length."
-msgstr ""
+msgstr "מקטעי החבילה חייבים להיות באורך שאינו אפס."
#: platform/android/export/export.cpp
msgid "The character '%s' is not allowed in Android application package names."
-msgstr ""
+msgstr "התו '%s' אינו מותר בשמות חבילת יישום אנדרואיד."
#: platform/android/export/export.cpp
msgid "A digit cannot be the first character in a package segment."
-msgstr ""
+msgstr "ספרה אינה יכולה להיות התו הראשון במקטע חבילה."
#: platform/android/export/export.cpp
msgid "The character '%s' cannot be the first character in a package segment."
-msgstr ""
+msgstr "התו '%s' אינו יכול להיות התו הראשון במקטע חבילה."
#: platform/android/export/export.cpp
msgid "The package must have at least one '.' separator."
-msgstr ""
+msgstr "החבילה חייבת לכלול לפחות מפריד '.' אחד."
#: platform/android/export/export.cpp
msgid "Select device from the list"
@@ -12118,121 +12080,135 @@ msgstr "נא לבחור התקן מהרשימה"
#: platform/android/export/export.cpp
msgid "ADB executable not configured in the Editor Settings."
-msgstr ""
+msgstr "קובץ ההפעלה של ADB לא נקבע בהגדרות העורך."
#: platform/android/export/export.cpp
msgid "OpenJDK jarsigner not configured in the Editor Settings."
-msgstr ""
+msgstr "OpenJDK jarsigner לא נקבע בהגדרות העורך."
#: platform/android/export/export.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
-msgstr ""
+msgstr "מפתח לניפוי שגיאות לא נקבע בהגדרות העורך ולא בהגדרות הייצוא."
#: platform/android/export/export.cpp
msgid "Release keystore incorrectly configured in the export preset."
-msgstr ""
+msgstr "מפתח גירסת שיחרור נקבע באופן שגוי בהגדרות הייצוא."
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
msgstr ""
+"בנייה מותאמת אישית דורשת נתיב חוקי של ערכת פיתוח לאנדרואיד בהגדרות העורך."
#: platform/android/export/export.cpp
msgid "Invalid Android SDK path for custom build in Editor Settings."
msgstr ""
+"נתיב לא חוקי לערכת פיתוח אנדרואיד עבור בנייה מותאמת אישית בהגדרות העורך."
#: platform/android/export/export.cpp
msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
-msgstr ""
+msgstr "תבנית בנייה לאנדרואיד לא מותקנת בפרוייקט. ההתקנה היא מתפריט המיזם."
#: platform/android/export/export.cpp
msgid "Invalid public key for APK expansion."
-msgstr ""
+msgstr "מפתח ציבורי לא חוקי להרחבת APK."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Invalid package name:"
-msgstr "שם שגוי."
+msgstr "שם חבילה לא חוקי:"
#: platform/android/export/export.cpp
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
+"מודול \"GodotPaymentV3\" לא חוקי נמצא בהגדרת המיזם ב-\"אנדרואיד/מודולים"
+"\" (שינוי בגודו 3.2.2).\n"
#: platform/android/export/export.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
-msgstr ""
+msgstr "חובה לאפשר ״שימוש בבניה מותאמת אישית״ כדי להשתמש בתוספים."
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
"\"."
-msgstr ""
+msgstr "\"דרגות של חופש\" תקף רק כאשר \"מצב Xr\" הוא \"Oculus Mobile VR\"."
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
+msgstr "\"Hand Tracking\" תקף רק כאשר \"מצב Xr\" הוא \"Oculus Mobile VR\"."
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
-msgstr ""
+msgstr "\"Focus Awareness\" תקף רק כאשר \"מצב Xr\" הוא \"Oculus Mobile VR\"."
#: platform/android/export/export.cpp
msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
+"מנסה לבנות מתבנית מותאמת אישית, אך לא קיים מידע על גירסת הבניה. נא להתקין "
+"מחדש מתפריט 'Project'."
#: platform/android/export/export.cpp
+#, fuzzy
msgid ""
"Android build version mismatch:\n"
" Template installed: %s\n"
" Godot Version: %s\n"
"Please reinstall Android build template from 'Project' menu."
msgstr ""
+"חוסר התאמה בגירסת אנדרואיד:\n"
+" תבנית הותקנה: %s\n"
+" גרסת גודו: %s\n"
+"נא להתקין מחדש את תבנית בניית אנדרואיד מתפריט 'Project'."
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
-msgstr ""
+msgstr "בניית מיזם אנדרואיד (gradle)"
#: platform/android/export/export.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
+"בניית מיזם אנדרואיד נכשלה, ניתן לבדוק את הפלט לאיתור השגיאה.\n"
+"לחלופין, קיים ב- docs.godotengine.org תיעוד לבניית אנדרואיד."
#: platform/android/export/export.cpp
msgid "No build apk generated at: "
-msgstr ""
+msgstr "לא נוצר apk ב: "
#: platform/iphone/export/export.cpp
msgid "Identifier is missing."
-msgstr ""
+msgstr "מזהה חסר."
#: platform/iphone/export/export.cpp
msgid "The character '%s' is not allowed in Identifier."
-msgstr ""
+msgstr "התו '%s' אינו מותר במזהה."
#: platform/iphone/export/export.cpp
msgid "App Store Team ID not specified - cannot configure the project."
-msgstr ""
+msgstr "לא צוין App Store Team ID - לא ניתן להגדיר את המיזם."
#: platform/iphone/export/export.cpp
-#, fuzzy
msgid "Invalid Identifier:"
-msgstr "גודל הגופן שגוי."
+msgstr "מזהה לא חוקי:"
#: platform/iphone/export/export.cpp
msgid "Required icon is not specified in the preset."
-msgstr ""
+msgstr "סמליל נדרש אינו מוגדר בהגדרות יצוא."
#: platform/javascript/export/export.cpp
msgid "Stop HTTP Server"
-msgstr ""
+msgstr "עצירת שרת HTTP"
#: platform/javascript/export/export.cpp
msgid "Run in Browser"
@@ -12267,74 +12243,74 @@ msgid "Using default boot splash image."
msgstr "נעשה שימוש בתמונת הפתיח כבררת מחדל."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid package short name."
-msgstr "שם שגוי."
+msgstr "שם קצר של חבילה לא חוקי."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid package unique name."
-msgstr "שם שגוי."
+msgstr "שם יחודי של חבילה לא חוקי."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid package publisher display name."
-msgstr "שם שגוי."
+msgstr "שם תצוגה של מפרסם החבילה לא חוקי."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid product GUID."
-msgstr "שם שגוי."
+msgstr "GUID מוצר לא חוקי."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid publisher GUID."
-msgstr "נתיב שגוי."
+msgstr "GUID מפרסם לא חוקי."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid background color."
-msgstr "שם שגוי."
+msgstr "צבע רקע לא חוקי."
#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "מידות תמונת לוגו חנות לא חוקיות (צריכות להיות 50x50)."
#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
+msgstr "מידות תמונת לוגו מרובעות 44x44 לא חוקיות (צריכות להיות 44x44)."
#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
+msgstr "מידות תמונת לוגו מרובעות 71x71 לא חוקיות (צריכות להיות 71x71)."
#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
+"מידות תמונת לוגו מרובעות בגודל 150x150 לא חוקיות (צריכות להיות 150x150)."
#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
+"מידות תמונת לוגו מרובעות בגודל 310x310 אינן חוקיות (צריכות להיות 310x310)."
#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
+msgstr "מידות תמונת לוגו רחבה 310x150 לא חוקיות (צריכות להיות 310x150)."
#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr ""
+msgstr "מידות תמונת פתיח לא חוקיות (צריכות להיות 620x300)."
#: scene/2d/animated_sprite.cpp
msgid ""
"A SpriteFrames resource must be created or set in the \"Frames\" property in "
"order for AnimatedSprite to display frames."
msgstr ""
+"יש ליצור או להגדיר משאב SpriteFrames במאפיין \"Frames\" כדי ש- "
+"AnimatedSprite יציג תמוניות."
#: scene/2d/canvas_modulate.cpp
msgid ""
"Only one visible CanvasModulate is allowed per scene (or set of instanced "
"scenes). The first created one will work, while the rest will be ignored."
msgstr ""
+"מותר רק CanvasModulate גלוי אחד לכל סצנה (או סט מופעי סצינות). הראשון שנוצר "
+"יעבוד, ואילו השאר לא."
#: scene/2d/collision_object_2d.cpp
msgid ""
@@ -12342,6 +12318,9 @@ msgid ""
"Consider adding a CollisionShape2D or CollisionPolygon2D as a child to "
"define its shape."
msgstr ""
+"למפרק זה אין צורה ולכן הוא לא יכול להתנגש או לקיים אינטראקציה עם אובייקטים "
+"אחרים.\n"
+"הוספת CollisionShape2D או CollisionPolygon2D כילד תגדיר את צורתו."
#: scene/2d/collision_polygon_2d.cpp
msgid ""
@@ -12349,6 +12328,9 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
+"CollisionPolygon2D משמש רק להספקת צורת התנגשות למפרק היורש מ-"
+"CollisionObject2D. השימוש בו הוא רק כילד של Area2D, StaticBody2D, "
+"RigidBody2D, KinematicBody2D וכו'."
#: scene/2d/collision_polygon_2d.cpp
msgid "An empty CollisionPolygon2D has no effect on collision."
@@ -12360,24 +12342,37 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
+"CollisionShape2D משמש רק להספקת צורת התנגשות למפרק היורש מ-"
+"CollisionObject2D. השימוש בו הוא רק כילד של Area2D, StaticBody2D, "
+"RigidBody2D, KinematicBody2D וכו'."
#: scene/2d/collision_shape_2d.cpp
msgid ""
"A shape must be provided for CollisionShape2D to function. Please create a "
"shape resource for it!"
+msgstr "יש לספק צורה כדי ש-CollisionShape2D יתפקד. יש ליצור משאב צורה עבורו!"
+
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
msgstr ""
+"צורות מבוססות מצולע אינן מיועדות לשימוש או לעריכה ישירות דרך מפרק "
+"CollisionShape2D. במקום זאת יש להשתמש במפרק מסוג CollisionPolygon2D."
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
+"הנפשת CPUParticles2D מחייבת שימוש ב-CanvasItemMaterial עם \"הנפשת חלקיקים\" "
+"מאופשרת."
#: scene/2d/light_2d.cpp
msgid ""
"A texture with the shape of the light must be supplied to the \"Texture\" "
"property."
-msgstr ""
+msgstr "יש לספק טקסטורה בצורת האור למאפיין \"טקסטורה\"."
#: scene/2d/light_occluder_2d.cpp
msgid ""
@@ -12393,12 +12388,16 @@ msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
"Please set a property or draw a polygon."
msgstr ""
+"יש להגדיר או ליצור משאב NavigationPolygon כדי שמפרק זה יעבוד. נא לקבוע "
+"מאפיין או לצייר מצולע."
#: scene/2d/navigation_polygon.cpp
msgid ""
"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
"node. It only provides navigation data."
msgstr ""
+"NavigationPolygonInstance חייב להיות ילד או נכד למפרק Navigation2D. הוא מספק "
+"רק נתוני ניווט."
#: scene/2d/parallax_layer.cpp
msgid ""
@@ -12412,6 +12411,9 @@ msgid ""
"Use the CPUParticles2D node instead. You can use the \"Convert to "
"CPUParticles\" option for this purpose."
msgstr ""
+"חלקיקים מבוססי GPU אינם נתמכים על-ידי מנהל ווידאו GLES2.\n"
+"השתמש בצומת CPUParticles2D במקום. למטרה זו האפשרות \"המר לחלקיקים של CPU\" "
+"קיימת."
#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
msgid ""
@@ -12424,6 +12426,8 @@ msgid ""
"Particles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
+"הנפשת Particles2D מחייבת שימוש ב-CanvasItemMaterial עם \"הנפשת חלקיקים\" "
+"מאופשרת."
#: scene/2d/path_2d.cpp
msgid "PathFollow2D only works when set as a child of a Path2D node."
@@ -12435,23 +12439,26 @@ msgid ""
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"שינויים בגודל ל-RigidBody2D (במצבי character או rigid) יבוטלו על ידי מנוע "
+"הפיזיקה בזמן ריצה.\n"
+"במקום זאת יש לשנות את גודל צורות ההתנגשות של הצאצאים."
#: scene/2d/remote_transform_2d.cpp
msgid "Path property must point to a valid Node2D node to work."
-msgstr ""
+msgstr "מאפיין הנתיב חייב להצביע על מפרק Node2D חוקי כדי לעבוד."
#: scene/2d/skeleton_2d.cpp
msgid "This Bone2D chain should end at a Skeleton2D node."
-msgstr ""
+msgstr "שרשרת Bone2D זו אמורה להסתיים במפרק Skeleton2D."
#: scene/2d/skeleton_2d.cpp
msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node."
-msgstr ""
+msgstr "Bone2D עובד רק עם Skeleton2D או Bone2D אחר כמפרק ההורה."
#: scene/2d/skeleton_2d.cpp
msgid ""
"This bone lacks a proper REST pose. Go to the Skeleton2D node and set one."
-msgstr ""
+msgstr "לעצם זו אין תנוחת REST ראויה. עבור למפרק ה-Skeleton2D והגדר אחד."
#: scene/2d/tile_map.cpp
msgid ""
@@ -12459,48 +12466,49 @@ msgid ""
"to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, "
"KinematicBody2D, etc. to give them a shape."
msgstr ""
+"TileMap עם שימוש בהורה מאופשר זקוק להורה CollisionObject2D כדי לתת לו צורות. "
+"אנא השתמש בו כצאצא של Area2D, StaticBody2D, RigidBody2D, KinematicBody2D "
+"וכו' כדי לתת להם צורה."
#: scene/2d/visibility_notifier_2d.cpp
msgid ""
"VisibilityEnabler2D works best when used with the edited scene root directly "
"as parent."
msgstr ""
+"VisibilityEnabler2D פועל בצורה הטובה ביותר בשימוש עם המפרק העליון בסצינה "
+"שנערכה כהורה."
#: scene/3d/arvr_nodes.cpp
-#, fuzzy
msgid "ARVRCamera must have an ARVROrigin node as its parent."
-msgstr "ל־ARVRCamera חייב להיות מפרק ARVROrigin כהורה שלו"
+msgstr "ההורה של ARVRCamera חייב להיות מפרק ARVROrigin."
#: scene/3d/arvr_nodes.cpp
-#, fuzzy
msgid "ARVRController must have an ARVROrigin node as its parent."
-msgstr "ל־ARVRCamera חייב להיות מפרק ARVROrigin כהורה שלו"
+msgstr "ההורה של ARVRController חייב להיות מפרק ARVROrigin."
#: scene/3d/arvr_nodes.cpp
msgid ""
"The controller ID must not be 0 or this controller won't be bound to an "
"actual controller."
-msgstr ""
+msgstr "מזהה הבקר אינו יכול להיות 0 או שבקר זה לא יהיה מחובר לבקר האמיתי."
#: scene/3d/arvr_nodes.cpp
-#, fuzzy
msgid "ARVRAnchor must have an ARVROrigin node as its parent."
-msgstr "ל־ARVRCamera חייב להיות מפרק ARVROrigin כהורה שלו"
+msgstr "ההורה של ARVRAnchor חייב להיות מפרק ARVROrigin."
#: scene/3d/arvr_nodes.cpp
msgid ""
"The anchor ID must not be 0 or this anchor won't be bound to an actual "
"anchor."
-msgstr ""
+msgstr "מזהה העוגן אינו יכול להיות 0 או שעוגן זה לא יהיה מחובר לעוגן האמיתי."
#: scene/3d/arvr_nodes.cpp
-#, fuzzy
msgid "ARVROrigin requires an ARVRCamera child node."
-msgstr "ARVROrigin דורש מפרק צאצא מסוג ARVRCamera"
+msgstr "ARVROrigin דורש צאצא מסוג ARVRCamera."
#: scene/3d/baked_lightmap.cpp
msgid "%d%%"
-msgstr ""
+msgstr "%d%%"
#: scene/3d/baked_lightmap.cpp
msgid "(Time Left: %d:%02d s)"
@@ -12508,19 +12516,19 @@ msgstr "(זמן שנותר: %d:%02d שנ׳)"
#: scene/3d/baked_lightmap.cpp
msgid "Plotting Meshes: "
-msgstr ""
+msgstr "מדפיס רשתות: "
#: scene/3d/baked_lightmap.cpp
msgid "Plotting Lights:"
-msgstr ""
+msgstr "מדפיס תאורות:"
#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
msgid "Finishing Plot"
-msgstr ""
+msgstr "מסיים הדפסה"
#: scene/3d/baked_lightmap.cpp
msgid "Lighting Meshes: "
-msgstr ""
+msgstr "רשתות תאורה: "
#: scene/3d/collision_object.cpp
msgid ""
@@ -12528,6 +12536,9 @@ msgid ""
"Consider adding a CollisionShape or CollisionPolygon as a child to define "
"its shape."
msgstr ""
+"למפרק זה אין צורה ולכן הוא לא יכול להתנגש או לקיים אינטראקציה עם אובייקטים "
+"אחרים.\n"
+"כדאי להוסיף CollisionShape2D או CollisionPolygon2D כצאצא כדי להגדיר צורה."
#: scene/3d/collision_polygon.cpp
msgid ""
@@ -12535,6 +12546,9 @@ msgid ""
"CollisionObject derived node. Please only use it as a child of Area, "
"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
msgstr ""
+"CollisionPolygon2D משמש רק להספקת צורת התנגשות למפרק היורש מ-"
+"CollisionObject2D. השימוש בו הוא רק כצאצא של Area2D, StaticBody2D, "
+"RigidBody2D, KinematicBody2D וכו'."
#: scene/3d/collision_polygon.cpp
msgid "An empty CollisionPolygon has no effect on collision."
@@ -12546,57 +12560,71 @@ msgid ""
"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
"KinematicBody, etc. to give them a shape."
msgstr ""
+"CollisionShape משמש רק להספקת צורת התנגשות למפרק היורש מ-CollisionObject2D. "
+"השימוש בו הוא רק כצאצא של Area, StaticBody, RigidBody, KinematicBody וכו'."
#: scene/3d/collision_shape.cpp
msgid ""
"A shape must be provided for CollisionShape to function. Please create a "
"shape resource for it."
-msgstr ""
+msgstr "יש לספק צורה כדי ש-CollisionShape יתפקד. יש ליצור משאב צורה עבורו."
#: scene/3d/collision_shape.cpp
msgid ""
"Plane shapes don't work well and will be removed in future versions. Please "
"don't use them."
msgstr ""
+"צורות מישוריות אינן פועלות היטב ויוסרו בגירסאות עתידיות. נא לא להשתמש בהן."
#: scene/3d/collision_shape.cpp
msgid ""
"ConcavePolygonShape doesn't support RigidBody in another mode than static."
-msgstr ""
+msgstr "ConcavePolygonShape לא תומך ב- RigidBody במצב שאינו סטטי."
#: scene/3d/cpu_particles.cpp
msgid "Nothing is visible because no mesh has been assigned."
-msgstr ""
+msgstr "שום דבר לא נראה כי לא הוקצאה רשת."
#: scene/3d/cpu_particles.cpp
msgid ""
"CPUParticles animation requires the usage of a SpatialMaterial whose "
"Billboard Mode is set to \"Particle Billboard\"."
msgstr ""
+"אנימציה של CPUParticles מחייבת שימוש ב-SpatialMaterial אשר מצב Billboard שלו "
+"מוגדר ל-\"Particle Billboard\"."
#: scene/3d/gi_probe.cpp
msgid "Plotting Meshes"
-msgstr ""
+msgstr "הדפסת רשתות"
#: scene/3d/gi_probe.cpp
msgid ""
"GIProbes are not supported by the GLES2 video driver.\n"
"Use a BakedLightmap instead."
msgstr ""
+"מנהל הווידאו GLES2 אינו תומך ב- GIProbes.\n"
+"השתמש ב-BakedLightmap במקום."
+
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
-msgstr ""
+msgstr "SpotLight עם זווית רחבה מ-90 מעלות אינו יכול להטיל צללים."
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr ""
+msgstr "יש להגדיר או ליצור משאב NavigationMesh כדי שצומת זה יפעל."
#: scene/3d/navigation_mesh.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+"NavigationMeshInstance חייב להיות ילד או נכד למפרק Navigation. הוא מספק רק "
+"נתוני ניווט."
#: scene/3d/particles.cpp
msgid ""
@@ -12604,28 +12632,34 @@ msgid ""
"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles"
"\" option for this purpose."
msgstr ""
+"חלקיקים מבוססי GPU אינם נתמכים על-ידי מנהל ווידאו GLES2.\n"
+"השתמש בצומת CPUParticles במקום. למטרה זו האפשרות \"המר לחלקיקים של CPU\" "
+"קיימת."
#: scene/3d/particles.cpp
msgid ""
"Nothing is visible because meshes have not been assigned to draw passes."
-msgstr ""
+msgstr "שום דבר אינו גלוי כי רשתות לא הוקצו למעברי ההדפסה."
#: scene/3d/particles.cpp
msgid ""
"Particles animation requires the usage of a SpatialMaterial whose Billboard "
"Mode is set to \"Particle Billboard\"."
msgstr ""
+"אנימציה של חלקיקים מחייבת שימוש ב-SpatialMaterial אשר מצב Billboard שלו "
+"מוגדר ל-\"Particle Billboard\"."
#: scene/3d/path.cpp
-#, fuzzy
msgid "PathFollow only works when set as a child of a Path node."
-msgstr "PathFollow2D עובד רק כאשר הוא מוגדר כצאצא של מפרק Path2D."
+msgstr "PathFollow עובד רק כאשר הוא מוגדר כצאצא של מפרק Path."
#: scene/3d/path.cpp
msgid ""
"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its "
"parent Path's Curve resource."
msgstr ""
+"ROTATION_ORIENTED של PathFollow דורש הפעלה של \"Up Vector\" במשאב העקומה של "
+"Path בהורה שלו."
#: scene/3d/physics_body.cpp
msgid ""
@@ -12633,16 +12667,21 @@ msgid ""
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"שינויים בגודל ל-RigidBody (במצבי character או rigid) יבוטלו על ידי מנוע "
+"הפיזיקה בזמן ריצה.\n"
+"במקום זאת יש לשנות את גודל צורות ההתנגשות של הצאצאים."
#: scene/3d/remote_transform.cpp
msgid ""
"The \"Remote Path\" property must point to a valid Spatial or Spatial-"
"derived node to work."
msgstr ""
+"המאפיין \"Remote Path\" חייב להפנות למפרק חוקי מסוג Spatial או יורש ממנו כדי "
+"לעבוד."
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
-msgstr ""
+msgstr "תהיה התעלמות מגוף זה עד שתקבע רשת."
#: scene/3d/soft_body.cpp
msgid ""
@@ -12650,77 +12689,85 @@ msgid ""
"running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"שינויים בגודל ל-SoftBody יבוטלו על ידי מנוע הפיזיקה בזמן ריצה.\n"
+"במקום זאת יש לשנות את גודל צורות ההתנגשות של הצאצאים."
#: scene/3d/sprite_3d.cpp
msgid ""
"A SpriteFrames resource must be created or set in the \"Frames\" property in "
"order for AnimatedSprite3D to display frames."
msgstr ""
+"יש ליצור או להגדיר משאב SpriteFrames במאפיין \"Frames\" כדי ש-"
+"AnimatedSprite3D יציג תמוניות."
#: scene/3d/vehicle_body.cpp
msgid ""
"VehicleWheel serves to provide a wheel system to a VehicleBody. Please use "
"it as a child of a VehicleBody."
msgstr ""
+"VehicleWheel משמש להספקת מערכת גלגלים ל-VehicleBody. יש להשתמש בו כצאצא של "
+"VehicleBody."
#: scene/3d/world_environment.cpp
msgid ""
"WorldEnvironment requires its \"Environment\" property to contain an "
"Environment to have a visible effect."
msgstr ""
+"WorldEnvironment דורש שמאפיין \"Environment\" שלו יכיל סביבה כדי שתהיה השפעה "
+"גלויה."
#: scene/3d/world_environment.cpp
msgid ""
"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
-msgstr ""
+msgstr "רק WorldEnvironment אחד מותר לכל סצנה (או קבוצה של מופעי סצנות)."
#: scene/3d/world_environment.cpp
msgid ""
"This WorldEnvironment is ignored. Either add a Camera (for 3D scenes) or set "
"this environment's Background Mode to Canvas (for 2D scenes)."
msgstr ""
+"ה-WorldEnvironment הזה לא פעיל. הוסף מצלמה (לסצנות תלת ממדיות) או הגדר את "
+"מצב הרקע של סביבה זו ל-Canvas (לסצינות דו-ממדיות)."
#: scene/animation/animation_blend_tree.cpp
msgid "On BlendTree node '%s', animation not found: '%s'"
-msgstr ""
+msgstr "במפרק 'BlendTree '%s, הנפשה לא נמצאה: '%s'"
#: scene/animation/animation_blend_tree.cpp
-#, fuzzy
msgid "Animation not found: '%s'"
-msgstr "משך ההנפשה (בשניות)."
+msgstr "הנפשה לא נמצאה: '%s'"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
-msgstr ""
+msgstr "בצומת '%s', הנפשה לא חוקית: '%s'."
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "Invalid animation: '%s'."
-msgstr "גודל הגופן שגוי."
+msgstr "הנפשה לא חוקית: '%s'."
#: scene/animation/animation_tree.cpp
msgid "Nothing connected to input '%s' of node '%s'."
-msgstr ""
+msgstr "שום דבר לא מחובר לקלט '%s' של צומת '%s'."
#: scene/animation/animation_tree.cpp
msgid "No root AnimationNode for the graph is set."
-msgstr ""
+msgstr "לא נקבע שורש AnimationNode עבור הגרף."
#: scene/animation/animation_tree.cpp
msgid "Path to an AnimationPlayer node containing animations is not set."
-msgstr ""
+msgstr "לא נקבע נתיב למפרק AnimationPlayer המכיל הנפשות."
#: scene/animation/animation_tree.cpp
msgid "Path set for AnimationPlayer does not lead to an AnimationPlayer node."
-msgstr ""
+msgstr "הנתיב שהוגדר ל-AnimationPlayer אינו מוביל למפרק AnimationPlayer."
#: scene/animation/animation_tree.cpp
msgid "The AnimationPlayer root node is not a valid node."
-msgstr ""
+msgstr "המפרק AnimationPlayer העליון אינו צומת חוקי."
#: scene/animation/animation_tree_player.cpp
msgid "This node has been deprecated. Use AnimationTree instead."
-msgstr ""
+msgstr "מפרק זה הוצא משימוש. יש להשתמש ב-AnimationTree במקום."
#: scene/gui/color_picker.cpp
msgid ""
@@ -12728,27 +12775,29 @@ msgid ""
"LMB: Set color\n"
"RMB: Remove preset"
msgstr ""
+"צבע: #%s\n"
+"לחצן עכבר שמאלי: קביעת צבע\n"
+"לחצן עכבר ימני: הסרת צבע שמור"
#: scene/gui/color_picker.cpp
msgid "Pick a color from the editor window."
-msgstr ""
+msgstr "בחירת צבע מחלון העורך."
#: scene/gui/color_picker.cpp
msgid "HSV"
-msgstr ""
+msgstr "HSV"
#: scene/gui/color_picker.cpp
msgid "Raw"
-msgstr ""
+msgstr "Raw"
#: scene/gui/color_picker.cpp
msgid "Switch between hexadecimal and code values."
-msgstr ""
+msgstr "מעבר בין ערכים הקסדצימלים לערכי קוד."
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Add current color as a preset."
-msgstr "הוספת הצבע הנוכחי כערכה"
+msgstr "הוספת הצבע הנוכחי לערכת הצבעים."
#: scene/gui/container.cpp
msgid ""
@@ -12756,20 +12805,24 @@ msgid ""
"children placement behavior.\n"
"If you don't intend to add a script, use a plain Control node instead."
msgstr ""
+"המיכל בפני עצמו אינו משרת מטרה אלא אם כן סקריפט מגדיר את המיקום של צאצאיו.\n"
+"אם אין כוונה להוסיף סקריפט, יש להוסיף במקום זאת מפרק בקרה פשוט."
#: scene/gui/control.cpp
msgid ""
"The Hint Tooltip won't be displayed as the control's Mouse Filter is set to "
"\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"."
msgstr ""
+"ה-Hint Tooltip לא יוצג כאשר מסנן העכבר של הבקר נקבע כ-\"Ignore\". כדי לפתור "
+"זאת, יש להגדיר את מסנן העכבר ל-\"Stop\" או \"Pass\"."
#: scene/gui/dialogs.cpp
msgid "Alert!"
-msgstr ""
+msgstr "אזהרה!"
#: scene/gui/dialogs.cpp
msgid "Please Confirm..."
-msgstr "נא לאמת…"
+msgstr "נא לאשר…"
#: scene/gui/popup.cpp
msgid ""
@@ -12777,10 +12830,12 @@ msgid ""
"functions. Making them visible for editing is fine, but they will hide upon "
"running."
msgstr ""
+"חלונות קופצים מוסתרים כברירת מחדל אלא אם תהיה קריאה ל-popup() או לאחת "
+"מפונקציות popup*(). החלונות יוצגו בזמן עריכה, אך יוסתרו בזמן ריצה."
#: scene/gui/range.cpp
msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0."
-msgstr ""
+msgstr "אם \"Exp Edit\" מאופשר, \"Min Value\" חייב להיות גדול מ-0."
#: scene/gui/scroll_container.cpp
msgid ""
@@ -12788,6 +12843,9 @@ msgid ""
"Use a container as child (VBox, HBox, etc.), or a Control and set the custom "
"minimum size manually."
msgstr ""
+"ScrollContainer מיועד לעבודה עם בקר צאצא יחיד.\n"
+"יש להשתמש במיכל כצאצא (VBox, HBox וכו'), או בבקר ולקבוע את הגודל המינימלי "
+"המותאם אישית באופן ידני."
#: scene/gui/tree.cpp
msgid "(Other)"
@@ -12798,6 +12856,8 @@ msgid ""
"Default Environment as specified in Project Settings (Rendering -> "
"Environment -> Default Environment) could not be loaded."
msgstr ""
+"לא היתה אפשרות לטעון את הסביבה שנקבעה כברירת המחדל בהגדרות המיזם (Rendering -"
+"> Environment -> Default Environment)."
#: scene/main/viewport.cpp
msgid ""
@@ -12806,41 +12866,55 @@ msgid ""
"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
"texture to some node for display."
msgstr ""
+"חלון תצוגה זה אינו מוגדר כיעד עיבוד. להצגת התוכן ישירות למסך, יש להפוך אותו "
+"לצאצא של בקר כדי שיקבל גודל. או להפוך אותו ל-RenderTarget ולשייך את המרקם "
+"הפנימי שלו למפרק כלשהו לתצוגה."
#: scene/main/viewport.cpp
msgid "Viewport size must be greater than 0 to render anything."
-msgstr ""
+msgstr "גודל חלון התצוגה חייב להיות גדול מ-0 על מנת להציג משהו."
#: scene/resources/visual_shader_nodes.cpp
-#, fuzzy
msgid "Invalid source for preview."
-msgstr "גודל הגופן שגוי."
+msgstr "מקור לא תקין לתצוגה מקדימה."
#: scene/resources/visual_shader_nodes.cpp
-#, fuzzy
msgid "Invalid source for shader."
-msgstr "גודל הגופן שגוי."
+msgstr "מקור לא תקין ל-shader."
#: scene/resources/visual_shader_nodes.cpp
-#, fuzzy
msgid "Invalid comparison function for that type."
-msgstr "גודל הגופן שגוי."
+msgstr "פונקציית השוואה לא חוקית לסוג זה."
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
-msgstr ""
+msgstr "השמה לפונקציה."
#: servers/visual/shader_language.cpp
msgid "Assignment to uniform."
-msgstr ""
+msgstr "השמה ל-uniform."
#: servers/visual/shader_language.cpp
msgid "Varyings can only be assigned in vertex function."
-msgstr ""
+msgstr "ניתן להקצות שינויים רק בפונקצית vertex."
#: servers/visual/shader_language.cpp
msgid "Constants cannot be modified."
-msgstr ""
+msgstr "אי אפשר לשנות קבועים."
+
+#, fuzzy
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "מערכת קבצים"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "בעת ייצוא או הטמעה, קובץ ההפעלה ינסה להתחבר לכתובת ה־IP של המחשב הזה "
+#~ "לצורך ניפוי שגיאות."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "הסצנה הנוכחית מעולם לא נשמרה, נא לשמור אותה בטרם ההרצה."
#~ msgid "Not in resource path."
#~ msgstr "לא בנתיב המשאב."
diff --git a/editor/translations/hi.po b/editor/translations/hi.po
index e3ae2aabe5..3c8f54033a 100644
--- a/editor/translations/hi.po
+++ b/editor/translations/hi.po
@@ -528,6 +528,7 @@ msgid "Seconds"
msgstr "सेकंड"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "एफपीएस"
@@ -706,7 +707,7 @@ msgstr "पूंजीकरण मेल करे"
msgid "Whole Words"
msgstr "पूरे शब्द"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "बदले"
@@ -898,6 +899,11 @@ msgid "Signals"
msgstr "संकेत"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "फ़िल्टर फ़ाइलें..."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "क्या आप सुनिश्चित हैं कि आप इस सिग्नल से सभी कनेक्शन हटाना चाहते हैं?"
@@ -935,7 +941,7 @@ msgid "Recent:"
msgstr "हाल ही में किया:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "खोज:"
@@ -1115,6 +1121,9 @@ msgstr "परियोजना के संस्थापक"
msgid "Lead Developer"
msgstr "प्रमुख डेवलपर"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "परियोजना प्रबंधक "
@@ -1136,6 +1145,16 @@ msgid "Gold Sponsors"
msgstr "गोल्ड प्रायोजक"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "रजत दाताओं"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "कांस्य दाताओं"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "मिनी प्रायोजक"
@@ -1609,16 +1628,17 @@ msgid "Scene Tree Editing"
msgstr "सीन ट्री एडिटिंग"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "इंपोर्ट डॉक"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "नोड डॉक"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "फाइलसिस्टेम और इंपोर्ट डोक्स"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "फ़ाइल"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "इंपोर्ट डॉक"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1880,7 +1900,7 @@ msgstr "डायरेक्टरिज & फ़ाइले:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "पूर्व दर्शन:"
@@ -2311,10 +2331,6 @@ msgid "There is no defined scene to run."
msgstr "चलाने के लिए कोई परिभाषित दृश्य नहीं है ।"
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "वर्तमान दृश्य कभी नहीं बचाया गया था, कृपया इसे चलाने से पहले बचाने के लिए ।"
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "उपप्रक्रिया शुरू नहीं कर सका!"
@@ -2745,24 +2761,28 @@ msgstr "रिमोट डिबग के साथ तैनात"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"निर्यात या तैनाती करते समय, परिणामी निष्पादक इस कंप्यूटर के आईपी से जुड़ने का प्रयास करेगा "
-"ताकि डिबग किया जा सके।"
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "नेटवर्क एफएस के साथ छोटे तैनात"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"जब यह विकल्प सक्षम हो जाता है, तो निर्यात या तैनाती न्यूनतम निष्पादित उत्पादन करेगी।\n"
"नेटवर्क के ऊपर संपादक द्वारा परियोजना से फाइलसिस्टम उपलब्ध कराया जाएगा।\n"
@@ -2774,9 +2794,10 @@ msgid "Visible Collision Shapes"
msgstr "दृश्यमान टकराव आकार"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"यदि यह विकल्प चालू हो जाता है तो टकराव के आकार और रेकास्ट नोड्स (2डी और 3 डी के लिए) "
"चल रहे खेल पर दिखाई देंगे।"
@@ -2786,21 +2807,24 @@ msgid "Visible Navigation"
msgstr "दर्शनीय नेविगेशन"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr "यदि यह विकल्प चालू हो जाता है तो नेविगेशन मेशेस और बहुभुज चल रहे खेल पर दिखाई देंगे।"
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "सिंक सीन बदलता है"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"जब इस विकल्प को चालू किया जाता है, तो संपादक में दृश्य में किए गए किसी भी परिवर्तन को "
"चल रहे खेल में दोहराया जाएगा।\n"
@@ -2808,15 +2832,17 @@ msgstr ""
"कुशल होता है।"
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "सिंक स्क्रिप्ट परिवर्तन"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"जब यह विकल्प चालू हो जाएगा, तो सहेजी गई किसी भी स्क्रिप्ट को चल रहे गेम पर फिर से लोड "
"किया जाएगा।\n"
@@ -2880,7 +2906,7 @@ msgstr "मदद"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "ढूंढें"
@@ -3293,9 +3319,11 @@ msgid "Add Key/Value Pair"
msgstr "कुंजी/मूल्य जोड़ी जोड़ें"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"इस मंच के लिए कोई रननयोग्य निर्यात पूर्व निर्धारित नहीं मिला।\n"
"कृपया निर्यात मेनू में एक रननेबल प्रीसेट जोड़ें।"
@@ -5026,7 +5054,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7646,7 +7674,7 @@ msgid "New Animation"
msgstr "एनिमेशन लूप"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9679,6 +9707,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "प्रोजेक्ट मैनेजर"
@@ -10112,11 +10141,16 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "बदले"
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10162,7 +10196,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10221,7 +10255,7 @@ msgid "Reset"
msgstr "रीसेट आकार"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10329,6 +10363,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "को हटा दें"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "को हटा दें"
@@ -11975,6 +12014,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12187,6 +12232,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12443,6 +12493,19 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "फाइलसिस्टेम और इंपोर्ट डोक्स"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "निर्यात या तैनाती करते समय, परिणामी निष्पादक इस कंप्यूटर के आईपी से जुड़ने का प्रयास "
+#~ "करेगा ताकि डिबग किया जा सके।"
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "वर्तमान दृश्य कभी नहीं बचाया गया था, कृपया इसे चलाने से पहले बचाने के लिए ।"
+
#~ msgid "Not in resource path."
#~ msgstr "रेसोर्स पाथ में नहीं."
diff --git a/editor/translations/hr.po b/editor/translations/hr.po
index 5355ee1dc9..ff82f3aafc 100644
--- a/editor/translations/hr.po
+++ b/editor/translations/hr.po
@@ -512,6 +512,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -691,7 +692,7 @@ msgstr ""
msgid "Whole Words"
msgstr "Cijele riječi"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Zamijeni"
@@ -884,6 +885,11 @@ msgid "Signals"
msgstr "Signali"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Iz signala:"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Jesi li siguran da želiš ukloniti sve veze s ovog signala?"
@@ -921,7 +927,7 @@ msgid "Recent:"
msgstr "Nedavno:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Pretraga:"
@@ -1102,6 +1108,9 @@ msgstr "Osnivači projekta"
msgid "Lead Developer"
msgstr "Glavni razvijatelj"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Projektni menadžer "
@@ -1123,6 +1132,16 @@ msgid "Gold Sponsors"
msgstr "Zlatni sponzori"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Srebrni donatori"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Brončani donatori"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini sponzori"
@@ -1587,15 +1606,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1858,7 +1877,7 @@ msgstr "Direktoriji i datoteke:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Pregled:"
@@ -2271,10 +2290,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2691,22 +2706,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2715,8 +2734,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2725,32 +2744,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2810,7 +2829,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3213,7 +3232,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4945,7 +4965,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7540,7 +7560,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9533,6 +9553,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9963,11 +9984,16 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Zamijeni"
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10013,7 +10039,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10071,7 +10097,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10179,6 +10205,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Obriši ključ(eve)"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "Obriši ključ(eve)"
@@ -11798,6 +11829,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12010,6 +12047,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index b57028a426..cac984d6d6 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -5,17 +5,19 @@
# Árpád Horváth <horvatha4@googlemail.com>, 2018.
# Nagy Lajos <neutron9707@gmail.com>, 2017.
# Sandor Domokos <sandor.domokos@gmail.com>, 2017-2018.
-# Varga Dániel <danikah.danikah@gmail.com>, 2016-2018.
-# Gabor Csordas <gaborcsordas@yahoo.com>, 2018, 2019.
+# Varga Dániel <danikah.danikah@gmail.com>, 2016-2018, 2020.
+# Gabor Csordas <gaborcsordas@yahoo.com>, 2018, 2019, 2020.
# Tusa Gamer <tusagamer@mailinator.com>, 2018.
# Máté Lugosi <mate.lugosi@gmail.com>, 2019.
# sztrovacsek <magadeve@gmail.com>, 2019.
+# Ács Zoltán <acszoltan111@gmail.com>, 2020.
+# cefrebevalo <szmarci711@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-30 03:56+0000\n"
-"Last-Translator: Deleted User <noreply+18797@weblate.org>\n"
+"PO-Revision-Date: 2020-09-22 03:23+0000\n"
+"Last-Translator: Ács Zoltán <acszoltan111@gmail.com>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/godot-engine/"
"godot/hu/>\n"
"Language: hu\n"
@@ -23,18 +25,18 @@ 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 3.11-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
msgstr ""
-"Érvénytelen típus argumentum a convert()-hez használjon TYPE_* konstansokat."
+"Érvénytelen típusargumentum a convert()-hez használjon TYPE_* konstansokat."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#, fuzzy
msgid "Expected a string of length 1 (a character)."
-msgstr "Egy karakter hosszúságú string-et várt."
+msgstr "Egy hosszúságú karaktersorozat szükséges."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -44,7 +46,7 @@ msgstr "Nincs elég bájt a bájtok dekódolására, vagy hibás formátum."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "Érvénytelen bemenet %i (nem átadott) a kifejezésben."
+msgstr "Érvénytelen bemenet %i (nem átadott) a kifejezésben"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
@@ -52,21 +54,19 @@ msgstr "self nem használható, mert a példány null (nincs átadva)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr "Érvénytelen operandus a %s, %s és %s operátorokhoz."
+msgstr "Érvénytelen operandusok az %s, %s és %s operátorhoz."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr "Érvénytelen %s típusú index a %s alap típushoz."
+msgstr ""
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
msgstr "Érvénytelen nevezett index '%s' %s alaptípushoz"
#: core/math/expression.cpp
-#, fuzzy
msgid "Invalid arguments to construct '%s'"
msgstr ""
-"Érvénytelen típus argumentum a convert()-hez használjon TYPE_* konstansokat."
#: core/math/expression.cpp
msgid "On call to '%s':"
@@ -102,7 +102,7 @@ msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
-msgstr "Ingyenes"
+msgstr "Szabad"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
@@ -122,23 +122,23 @@ msgstr "Érték:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr "Kulcs Beszúrása"
+msgstr "Kulcs beszúrása"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
-msgstr "Kiválasztott elem(ek) megkettőzése"
+msgstr "Kiválasztott kulcs(ok) megkettőzése"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr "Kiválasztott kulcsok törlése"
+msgstr "Kiválasztott kulcs(ok) törlése"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
-msgstr "Bezier pont hozzáadása"
+msgstr "Bézier pont hozzáadása"
#: editor/animation_bezier_editor.cpp
msgid "Move Bezier Points"
-msgstr "Bezier pont Mozgatása"
+msgstr "Bézier pontok áthelyezése"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
@@ -146,9 +146,10 @@ msgstr "Animáció kulcsok megkettőzése"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
-msgstr "Animáció kulcs törlése"
+msgstr "Animáció kulcsok törlése"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Anim Change Keyframe Time"
msgstr "Animáció kulcsképkocka idő változtatás"
@@ -195,7 +196,7 @@ msgstr "Animáció hívás változtatás"
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
-msgstr "Animáció hosszának megváltoztatása"
+msgstr "Animáció hosszának változtatása"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -203,31 +204,29 @@ msgid "Change Animation Loop"
msgstr "Animációs ciklus változtatása"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Property Track"
-msgstr "Tulajdonság Követés"
+msgstr "Tulajdonságkövetés"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "3D Transform Track"
-msgstr "UV Térkép Transzformálása"
+msgstr ""
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
-msgstr ""
+msgstr "Hívás módszer követése"
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
-msgstr "Bezier Görbe Nyomvonal"
+msgstr "Bézier görbe nyomvonal"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Audio Playback Track"
-msgstr ""
+msgstr "Hang lejátszás követése"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation Playback Track"
-msgstr "Animáció lejátszásának leállítása. (S)"
+msgstr ""
#: editor/animation_track_editor.cpp
msgid "Animation length (frames)"
@@ -238,36 +237,35 @@ msgid "Animation length (seconds)"
msgstr "Animáció hossza (másodpercben)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track"
-msgstr "Animáció nyomvonal hozzáadás"
+msgstr "Nyomvonal hozzáadása"
#: editor/animation_track_editor.cpp
msgid "Animation Looping"
-msgstr "Animáció ismételtetése"
+msgstr "Animáció ismétlése"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Functions:"
-msgstr "Funkciók:"
+msgstr "Függvények:"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Audio Clips:"
-msgstr ""
+msgstr "Audió klipek:"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
-msgstr ""
+msgstr "Animáció klipek:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Track Path"
-msgstr "Tömb Értékének Megváltoztatása"
+msgstr ""
#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Toggle this track on/off."
-msgstr "Zavarmentes mód váltása."
+msgstr "A sáv ki/be kapcsolása."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
@@ -275,7 +273,7 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
-msgstr "Interpoláció mód"
+msgstr "Interpolációs mód"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
@@ -287,14 +285,12 @@ msgid "Remove this track."
msgstr "Kiválasztott nyomvonal eltávolítása."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Time (s): "
-msgstr "Áttűnési Idő (mp):"
+msgstr "Idő (mp): "
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Toggle Track Enabled"
-msgstr "Doppler engedélyezése"
+msgstr ""
#: editor/animation_track_editor.cpp
msgid "Continuous"
@@ -336,32 +332,27 @@ msgstr ""
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr "Kulcs Beszúrása"
+msgstr "Kulcs beszúrása"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Duplicate Key(s)"
-msgstr "Animáció kulcsok megkettőzése"
+msgstr "Kulcs(ok) megkettőzése"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Delete Key(s)"
-msgstr "Animáció kulcs törlés"
+msgstr "Kulcs(ok) törlése"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Update Mode"
-msgstr "Animáció Nevének Megváltoztatása:"
+msgstr "Animáció frissítés módjának megváltoztatása"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Interpolation Mode"
-msgstr "Animáció Node"
+msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Loop Mode"
-msgstr "Animáció hurok változtatás"
+msgstr "Animáció hurok mód változtatása"
#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
@@ -369,11 +360,11 @@ msgstr "Animáció nyomvonal eltávolítás"
#: editor/animation_track_editor.cpp
msgid "Create NEW track for %s and insert key?"
-msgstr "Létrehoz ÚJ nyomvonalat %s -hez és beilleszti a kulcsot?"
+msgstr "ÚJ nyomvonalat hoz létre a következőhöz: %s, és beszúrja a kulcsot?"
#: editor/animation_track_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
-msgstr "Létrehoz %d ÚJ nyomvonalat és beilleszti a kulcsokat?"
+msgstr "Létrehoz %d ÚJ nyomvonalat és beszúrja a kulcsokat?"
#: editor/animation_track_editor.cpp editor/create_dialog.cpp
#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp
@@ -389,19 +380,20 @@ msgstr "Létrehozás"
#: editor/animation_track_editor.cpp
msgid "Anim Insert"
-msgstr "Animáció beillesztés"
+msgstr "Animáció beszúrása"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "AnimationPlayer can't animate itself, only other players."
-msgstr ""
+msgstr "Az AnimationPlayer nem tudja animálni önmagát, csak más játékosokat."
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
-msgstr "Animáció létrehozás és beillesztés"
+msgstr "Animáció létrehozása és beillesztése"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr "Animáció nyomvonal és kulcs beillesztés"
+msgstr "Animáció nyomvonal és kulcs beszúrása"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Key"
@@ -412,9 +404,8 @@ msgid "Change Animation Step"
msgstr "Animáció léptékének megváltoztatása"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Rearrange Tracks"
-msgstr "AutoLoad-ok Átrendezése"
+msgstr ""
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
@@ -445,9 +436,8 @@ msgid "Invalid track for Bezier (no suitable sub-properties)"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Bezier Track"
-msgstr "Animáció nyomvonal hozzáadás"
+msgstr ""
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
@@ -458,43 +448,40 @@ msgid "Track is not of type Spatial, can't insert key"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Transform Track Key"
-msgstr "UV Térkép Transzformálása"
+msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track Key"
-msgstr "Animáció nyomvonal hozzáadás"
+msgstr "Nyomvonal kulcs hozzáadása"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Method Track Key"
-msgstr "Animáció nyomvonal és kulcs beillesztés"
+msgstr "Metódus nyomvonal kulcs beillesztése"
#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
-msgstr ""
+msgstr "A metódus nem található az objektumban: "
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Anim Move Keys"
-msgstr "Animáció kulcs mozgatás"
+msgstr "Animáció kulcsok mozgatása"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Clipboard is empty"
-msgstr "Az erőforrás vágólap üres!"
+msgstr "A vágólap üres"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Paste Tracks"
-msgstr "Paraméterek Beillesztése"
+msgstr "Nyomvonalak beillesztése"
#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Anim Scale Keys"
msgstr "Animáció kulcsok nyújtás"
@@ -518,14 +505,13 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
-msgstr ""
+msgstr "Figyelmeztetés: Importált animáció szerkesztése"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select an AnimationPlayer node to create and edit animations."
msgstr ""
-"Válasszon egy AnimationPlayer-t a Jelenetfából, hogy animációkat "
-"szerkeszthessen."
+"Válasszon egy AnimationPlayer node-ot az animációk létrehozásához és "
+"szerkesztéséhez."
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
@@ -536,22 +522,21 @@ msgid "Group tracks by node or display them as plain list."
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Snap:"
-msgstr "Illesztés"
+msgstr "Illesztés:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation step value."
-msgstr "Az animációs fa érvényes."
+msgstr "Animáció lépés értéke."
#: editor/animation_track_editor.cpp
msgid "Seconds"
-msgstr ""
+msgstr "Másodperc"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
-msgstr ""
+msgstr "FPS"
#: editor/animation_track_editor.cpp editor/editor_properties.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -564,18 +549,16 @@ msgid "Edit"
msgstr "Szerkesztés"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation properties."
-msgstr "AnimációFa"
+msgstr "Animáció tulajdonságok."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Copy Tracks"
-msgstr "Paraméterek Másolása"
+msgstr "Nyomvonalak másolása"
#: editor/animation_track_editor.cpp
msgid "Scale Selection"
-msgstr "Kiválasztás átméretezés"
+msgstr "Kijelölés átméretezése"
#: editor/animation_track_editor.cpp
msgid "Scale From Cursor"
@@ -583,16 +566,15 @@ msgstr "Átméretezés a kurzortól"
#: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp
msgid "Duplicate Selection"
-msgstr "Kiválasztás megkettőzés"
+msgstr "Kijelölés megkettőzése"
#: editor/animation_track_editor.cpp
msgid "Duplicate Transposed"
-msgstr "Áthelyezettek megkettőzés"
+msgstr "Áthelyezettek megkettőzése"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Delete Selection"
-msgstr "Kijelölés Középre"
+msgstr "Kijelölés törlése"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -600,41 +582,40 @@ msgid "Go to Next Step"
msgstr "Ugrás a következő lépésre"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Previous Step"
msgstr "Ugrás az előző lépésre"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
-msgstr "Animáció optimalizálás"
+msgstr "Animáció optimalizálása"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation"
-msgstr "Animáció megtisztítás"
+msgstr "Animáció tisztítása"
#: editor/animation_track_editor.cpp
msgid "Pick the node that will be animated:"
-msgstr ""
+msgstr "Válassza ki az animálandó node-ot:"
#: editor/animation_track_editor.cpp
msgid "Use Bezier Curves"
-msgstr ""
+msgstr "Bézier görbék használata"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
-msgstr "Animáció Optimalizáló"
+msgstr "Animáció optimalizáló"
#: editor/animation_track_editor.cpp
msgid "Max. Linear Error:"
-msgstr "Max. Lineáris Hiba:"
+msgstr "Maximum lineáris hiba:"
#: editor/animation_track_editor.cpp
msgid "Max. Angular Error:"
-msgstr "Max. Szög Hiba:"
+msgstr "Maximum szög hiba:"
#: editor/animation_track_editor.cpp
msgid "Max Optimizable Angle:"
-msgstr "Max. Optimalizálható Szög:"
+msgstr "Maximum optimalizálható szög:"
#: editor/animation_track_editor.cpp
msgid "Optimize"
@@ -665,9 +646,8 @@ msgid "Scale Ratio:"
msgstr "Méretezési arány:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select Tracks to Copy"
-msgstr "Átmenet beállítása erre:"
+msgstr "Másolandó nyomvonalak kiválasztása"
#: editor/animation_track_editor.cpp editor/editor_log.cpp
#: editor/editor_properties.cpp
@@ -679,14 +659,12 @@ msgid "Copy"
msgstr "Másolás"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select All/None"
-msgstr "Kiválasztó Mód"
+msgstr "Összes/semmi kijelölése"
#: editor/animation_track_editor_plugins.cpp
-#, fuzzy
msgid "Add Audio Track Clip"
-msgstr "Animáció nyomvonal hozzáadás"
+msgstr ""
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip Start Offset"
@@ -698,57 +676,56 @@ msgstr ""
#: editor/array_property_edit.cpp
msgid "Resize Array"
-msgstr "Tömb Átméretezése"
+msgstr "Tömb átméretezése"
#: editor/array_property_edit.cpp
msgid "Change Array Value Type"
-msgstr "Tömb Értéktípusának Megváltoztatása"
+msgstr "Tömb értéktípusának megváltoztatása"
#: editor/array_property_edit.cpp
msgid "Change Array Value"
-msgstr "Tömb Értékének Megváltoztatása"
+msgstr "Tömb értékének megváltoztatása"
#: editor/code_editor.cpp
msgid "Go to Line"
-msgstr "Sorra Ugrás"
+msgstr "Ugrás sorra"
#: editor/code_editor.cpp
msgid "Line Number:"
-msgstr "Sor Száma:"
+msgstr "Sorszám:"
#: editor/code_editor.cpp
-#, fuzzy
msgid "%d replaced."
-msgstr "Csere..."
+msgstr "%d lecserélve."
#: editor/code_editor.cpp editor/editor_help.cpp
msgid "%d match."
-msgstr ""
+msgstr "%d egyezés."
#: editor/code_editor.cpp editor/editor_help.cpp
-#, fuzzy
msgid "%d matches."
-msgstr "Nincs Találat"
+msgstr "%d egyezés."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
-msgstr "Pontos Egyezés"
+msgstr "Nagybetűérzékeny"
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Whole Words"
-msgstr "Teljes Szavak"
+msgstr "Egész szavak"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
-msgstr "Lecserélés"
+msgstr "Csere"
#: editor/code_editor.cpp
msgid "Replace All"
-msgstr "Mind Lecserélése"
+msgstr "Összes cseréje"
#: editor/code_editor.cpp
+#, fuzzy
msgid "Selection Only"
-msgstr "Csak Kiválsztás"
+msgstr "Csak a kijelölés"
#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp
#: editor/plugins/text_editor.cpp
@@ -756,8 +733,9 @@ msgid "Standard"
msgstr ""
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
msgid "Toggle Scripts Panel"
-msgstr "Szkript Panel Megjelenítése"
+msgstr "Szkript panel váltása"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
@@ -773,60 +751,53 @@ msgstr "Kicsinyítés"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr "Nagyítás Visszaállítása"
+msgstr "Nagyítás visszaállítása"
#: editor/code_editor.cpp
msgid "Warnings"
-msgstr ""
+msgstr "Figyelmeztetések"
#: editor/code_editor.cpp
msgid "Line and column numbers."
-msgstr ""
+msgstr "Sor és oszlopszámok."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method in target node must be specified."
-msgstr "Nevezze meg a metódust a cél Node-ban!"
+msgstr ""
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "Nevezze meg a metódust a cél Node-ban!"
+msgstr "A metódusnévnek érvényes azonosítónak kell lennie."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
msgstr ""
-"Nem található a cél metódus! Nevezzen meg egy érvényes metódust, vagy "
-"csatoljon egy szkriptet a cél Node-hoz."
+"Nem található a célmetódus! Nevezzen meg egy érvényes metódust, vagy "
+"csatoljon egy szkriptet a cél node-hoz."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect to Node:"
-msgstr "Csatlakoztatás Node-hoz:"
+msgstr "Csatlakoztatás node-hoz:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect to Script:"
-msgstr "Nem lehet csatlakozni a kiszolgálóhoz:"
+msgstr "Csatlakoztatás szkripthez:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "From Signal:"
-msgstr "Jelzések:"
+msgstr "Jelzésből:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Scene does not contain any script."
-msgstr "A Node nem tartalmaz geometriát."
+msgstr "A jelenet nem tartalmaz szkriptet."
#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
msgid "Add"
-msgstr "Hozzáad"
+msgstr "Hozzáadás"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/editor_feature_profile.cpp editor/groups_editor.cpp
@@ -837,25 +808,23 @@ msgstr "Hozzáad"
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
#: editor/project_settings_editor.cpp
msgid "Remove"
-msgstr "Eltávolít"
+msgstr "Eltávolítás"
#: editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
-msgstr "További Meghívási Argumentum Hozzáadása:"
+msgstr "További meghívási argumentum hozzáadása:"
#: editor/connections_dialog.cpp
msgid "Extra Call Arguments:"
-msgstr "További Meghívási Argumentumok:"
+msgstr "További hívási argumentumok:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Receiver Method:"
-msgstr "Objektumtulajdonságok."
+msgstr "Fogadó metódus:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Advanced"
-msgstr "Illesztési beállítások"
+msgstr "Speciális"
#: editor/connections_dialog.cpp
msgid "Deferred"
@@ -872,12 +841,11 @@ msgstr "Egyszeri"
#: editor/connections_dialog.cpp
msgid "Disconnects the signal after its first emission."
-msgstr ""
+msgstr "Az első kibocsátás után lekapcsolja a jelzést."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Cannot connect signal"
-msgstr "Csatlakoztató Jelzés:"
+msgstr "Nem lehet csatlakoztatni a jelet"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/export_template_manager.cpp editor/groups_editor.cpp
@@ -898,72 +866,70 @@ msgid "Connect"
msgstr "Csatlakoztatás"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Signal:"
-msgstr "Jelzések:"
+msgstr "Jelzés:"
#: editor/connections_dialog.cpp
msgid "Connect '%s' to '%s'"
-msgstr "'%s' Csatlakoztatása '%s'-hez"
+msgstr "'%s' csatlakoztatása ehhez: '%s'"
#: editor/connections_dialog.cpp
msgid "Disconnect '%s' from '%s'"
-msgstr "'%s' Lecsatlakoztatása '%s'-ról"
+msgstr "'%s' leválasztása erről: '%s'"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Disconnect all from signal: '%s'"
-msgstr "'%s' Lecsatlakoztatása '%s'-ról"
+msgstr "Az összes leválasztása a jelzésről: '%s'"
#: editor/connections_dialog.cpp
msgid "Connect..."
-msgstr "Kapcsolás..."
+msgstr "Csatlakoztatás..."
#: editor/connections_dialog.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Disconnect"
-msgstr "Szétkapcsol"
+msgstr "Leválasztás"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect a Signal to a Method"
-msgstr "Csatlakoztató Jelzés:"
+msgstr "Jelzés csatlakoztatása metódushoz"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Edit Connection:"
-msgstr "Kapcsolathiba"
+msgstr "Kapcsolat szerkesztése:"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
-msgstr ""
+msgstr "Biztosan eltávolítja az összes kapcsolatot a(z) \"%s\" jelzésről?"
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
msgstr "Jelzések"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Csempék szűrése"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
-msgstr ""
+msgstr "Biztosan eltávolítja az összes kapcsolatot erről a jelzésről?"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Disconnect All"
-msgstr "Szétkapcsol"
+msgstr "Összes lecsatlakoztatása"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Edit..."
-msgstr "Szerkesztés"
+msgstr "Szerkesztés..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go To Method"
-msgstr "Metódusok"
+msgstr "Ugrás metódusra"
#: editor/create_dialog.cpp
msgid "Change %s Type"
-msgstr "%s Típusának Megváltoztatása"
+msgstr "%s típusának megváltoztatása"
#: editor/create_dialog.cpp editor/project_settings_editor.cpp
msgid "Change"
@@ -971,7 +937,7 @@ msgstr "Változtatás"
#: editor/create_dialog.cpp
msgid "Create New %s"
-msgstr "Új %s Létrehozása"
+msgstr "Új %s létrehozása"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -983,7 +949,7 @@ msgid "Recent:"
msgstr "Legutóbbi:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Keresés:"
@@ -992,7 +958,7 @@ msgstr "Keresés:"
#: editor/property_selector.cpp editor/quick_open.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Matches:"
-msgstr "Találatok:"
+msgstr "Egyezések:"
#: editor/create_dialog.cpp editor/editor_plugin_settings.cpp
#: editor/plugin_config_dialog.cpp
@@ -1004,29 +970,27 @@ msgstr "Leírás:"
#: editor/dependency_editor.cpp
msgid "Search Replacement For:"
-msgstr "Csere Keresése:"
+msgstr "Csere keresése:"
#: editor/dependency_editor.cpp
msgid "Dependencies For:"
msgstr "Függőségek:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Scene '%s' is currently being edited.\n"
"Changes will only take effect when reloaded."
msgstr ""
-"'%s' Scene éppen szerkesztés alatt áll.\n"
+"'%s' jelenet éppen szerkesztés alatt áll.\n"
"A változások újratöltés után lépnek érvénybe."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Resource '%s' is in use.\n"
"Changes will only take effect when reloaded."
msgstr ""
-"'%s' forrás éppen használatban van.\n"
-"A változtatások akkor lépnek életbe, ha a forrást újratölti."
+"A(z) '%s' forrás éppen használatban van.\n"
+"A változtatások újratöltéskor lépnek életbe."
#: editor/dependency_editor.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
@@ -1066,14 +1030,13 @@ msgstr "Csere Forrás Keresése:"
#: modules/visual_script/visual_script_property_selector.cpp
#: scene/gui/file_dialog.cpp
msgid "Open"
-msgstr "Megnyit"
+msgstr "Megnyitás"
#: editor/dependency_editor.cpp
msgid "Owners Of:"
msgstr "Tulajdonosai:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Remove selected files from the project? (Can't be restored)"
msgstr "Eltávolítja a kiválasztott fájlokat a projektből? (nem visszavonható)"
@@ -1095,9 +1058,8 @@ msgid "Error loading:"
msgstr "Hiba betöltéskor:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Load failed due to missing dependencies:"
-msgstr "A Jelenetet nem sikerült betölteni a hiányzó függőségek miatt:"
+msgstr "A betöltés nem sikerült a hiányzó függőségek miatt:"
#: editor/dependency_editor.cpp editor/editor_node.cpp
msgid "Open Anyway"
@@ -1120,9 +1082,8 @@ msgid "Permanently delete %d item(s)? (No undo!)"
msgstr "Véglegesen törlöl %d elemet? (Nem visszavonható!)"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Show Dependencies"
-msgstr "Függőségek"
+msgstr "Függőségek megjelenítése"
#: editor/dependency_editor.cpp
msgid "Orphan Resource Explorer"
@@ -1168,6 +1129,9 @@ msgstr "Projekt Alapítói"
msgid "Lead Developer"
msgstr "Vezető Fejlesztő"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Projekt Kezelő "
@@ -1189,6 +1153,14 @@ msgid "Gold Sponsors"
msgstr "Arany Szponzorok"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "Ezüst adományozók"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "Bronz adományozók"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini Szponzorok"
@@ -1213,9 +1185,8 @@ msgid "License"
msgstr "Licenc"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Third-party Licenses"
-msgstr "Harmadik Fél Engedély"
+msgstr "Harmadik féltől származó licencek"
#: editor/editor_about.cpp
#, fuzzy
@@ -1243,14 +1214,12 @@ msgid "Licenses"
msgstr "Licencek"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Error opening package file, not in ZIP format."
-msgstr "Hiba a csomagfájl megnyitása során, nem zip formátumú."
+msgstr "Hiba a csomagfájl megnyitása során, nem ZIP formátumú."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (Already Exists)"
-msgstr "Már létezik '%s' AutoLoad!"
+msgstr "'%s' (már létezik)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1258,17 +1227,15 @@ msgstr "Eszközök Kicsomagolása"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "The following files failed extraction from package:"
-msgstr ""
+msgstr "A következő fájlokat nem sikerült kibontani a csomagból:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "And %s more files."
-msgstr "%d további fájl"
+msgstr "És további %s fájl."
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Package installed successfully!"
-msgstr "A Csomag Telepítése Sikeresen Megtörtént!"
+msgstr "A csomag telepítése sikeres volt!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -1276,9 +1243,8 @@ msgid "Success!"
msgstr "Siker!"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Package Contents:"
-msgstr "Tartalom:"
+msgstr "Csomag tartalma:"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
@@ -1333,9 +1299,8 @@ msgid "Delete Bus Effect"
msgstr "Busz Effektus Törlése"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Drag & drop to rearrange."
-msgstr "Hangbusz, Húzd és Vidd az átrendezéshez."
+msgstr "Az átrendezéshez húzza át."
#: editor/editor_audio_buses.cpp
msgid "Solo"
@@ -1408,7 +1373,7 @@ msgstr "Hangbusz Elrendezés Megnyitása"
#: editor/editor_audio_buses.cpp
msgid "There is no '%s' file."
-msgstr ""
+msgstr "Nincs '%s' fájl."
#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp
msgid "Layout"
@@ -1419,18 +1384,16 @@ msgid "Invalid file, not an audio bus layout."
msgstr "Érvénytelen fájl, nem egy hangbusz elrendezés."
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Error saving file: %s"
-msgstr "Hiba TileSet mentésekor!"
+msgstr "Hiba a fájl mentésekor: %s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
msgstr "Busz Hozzáadása"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "Hangbusz Elrendezés Mentése Másként..."
+msgstr "Új hangbusz hozzáadása ehhez az elrendezéshez."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1471,24 +1434,21 @@ msgid "Valid characters:"
msgstr "Érvényes karakterek:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing engine class name."
-msgstr "Érvénytelen név. Nem ütközhet egy már meglévő motor osztálynévvel."
+msgstr "Nem ütközhet egy már meglévő játékmotor-osztálynévvel."
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing built-in type name."
msgstr "Érvénytelen név. Nem ütközhet egy már meglévő beépített típusnévvel."
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing global constant name."
msgstr ""
"Érvénytelen név. Nem ütközhet egy már meglévő globális konstans névvel."
#: editor/editor_autoload_settings.cpp
msgid "Keyword cannot be used as an autoload name."
-msgstr ""
+msgstr "A kulcsszó nem használható automatikus betöltési névként."
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
@@ -1520,7 +1480,7 @@ msgstr "AutoLoad-ok Átrendezése"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr ""
+msgstr "Nem lehet hozzáadni az automatikus betöltést:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1572,9 +1532,8 @@ msgid "[unsaved]"
msgstr "[nincs mentve]"
#: editor/editor_dir_dialog.cpp
-#, fuzzy
msgid "Please select a base directory first."
-msgstr "Válasszon egy alap könyvtárat először"
+msgstr "Először válassza ki az alapkönyvtárat."
#: editor/editor_dir_dialog.cpp
msgid "Choose a Directory"
@@ -1608,7 +1567,7 @@ msgstr "Tároló Fájl:"
#: editor/editor_export.cpp
msgid "No export template found at the expected path:"
-msgstr ""
+msgstr "Nem található export sablon a várt útvonalon:"
#: editor/editor_export.cpp
msgid "Packing"
@@ -1637,15 +1596,14 @@ msgstr ""
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
-#, fuzzy
msgid "Custom debug template not found."
-msgstr "Sablon fájl nem található:"
+msgstr "Az egyéni hibakeresési sablon nem található."
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
-msgstr ""
+msgstr "Az egyéni kiadási sablon nem található."
#: editor/editor_export.cpp platform/javascript/export/export.cpp
msgid "Template file not found:"
@@ -1656,119 +1614,107 @@ msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "3D Editor"
-msgstr "Szerkesztő"
+msgstr "3D szerkesztő"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Script Editor"
-msgstr "Szkript Szerkesztő Megnyitása"
+msgstr "Szkript szerkesztő"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Asset Library"
-msgstr "Eszköz Könyvtár Megnyitása"
+msgstr "Eszköz könyvtár"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
-msgid "Import Dock"
-msgstr "Importálás"
+msgstr "Jelenetfa szerkesztése"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
-msgstr "Mozgás Mód"
+msgstr ""
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "Fájlrendszer"
#: editor/editor_feature_profile.cpp
-#, fuzzy
+msgid "Import Dock"
+msgstr "Dock importálása"
+
+#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
-msgstr "Mind Lecserélése"
+msgstr "Törli a(z) '%s' profilt? (nem visszavonható)"
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
msgstr ""
+"A profilnak érvényes fájlnévnek kell lennie, és nem tartalmazhatja a \".\" "
+"karaktert"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Profile with this name already exists."
-msgstr "Egy fájl vagy mappa már létezik a megadott névvel."
+msgstr "Ilyen nevű profil már létezik."
#: editor/editor_feature_profile.cpp
msgid "(Editor Disabled, Properties Disabled)"
-msgstr ""
+msgstr "(A szerkesztő letiltva, a tulajdonságok letiltva)"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(Properties Disabled)"
-msgstr "Tulajdonságok"
+msgstr "(A tulajdonságok le vannak tiltva)"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(Editor Disabled)"
-msgstr "Tiltva"
+msgstr "(A szerkesztő le van tiltva)"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Options:"
-msgstr "Leírás:"
+msgstr "Osztály beállítások:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enable Contextual Editor"
-msgstr "Következő Szerkesztő Megnyitása"
+msgstr "Környezetfüggő szerkesztő engedélyezése"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enabled Properties:"
-msgstr "Tulajdonságok"
+msgstr "Engedélyezett tulajdonságok:"
#: editor/editor_feature_profile.cpp
msgid "Enabled Features:"
-msgstr ""
+msgstr "Engedélyezett funkciók:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enabled Classes:"
-msgstr "Osztályok Keresése"
+msgstr "Engedélyezett osztályok:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
-msgstr ""
+msgstr "A(z) '%s' fájl formátuma érvénytelen, az importálás megszakítva."
#: editor/editor_feature_profile.cpp
msgid ""
"Profile '%s' already exists. Remove it first before importing, import "
"aborted."
msgstr ""
+"A (z) '%s' profil már létezik. Importálás előtt először távolítsa el azt, "
+"importálás megszakítva."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Error saving profile to path: '%s'."
-msgstr "Hiba TileSet mentésekor!"
+msgstr "Hiba történt a profil útvonalba mentése során: '%s'."
#: editor/editor_feature_profile.cpp
msgid "Unset"
-msgstr ""
+msgstr "Nincs beállítva"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Current Profile:"
-msgstr "Jelenlegi Verzió:"
+msgstr "Jelenlegi profil:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Make Current"
-msgstr "Jelenlegi:"
+msgstr "Tegye jelenlegivé"
#: editor/editor_feature_profile.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
@@ -1786,44 +1732,36 @@ msgid "Export"
msgstr "Exportálás"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Available Profiles:"
-msgstr "Tulajdonságok"
+msgstr "Elérhető profilok:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Options"
-msgstr "Leírás"
+msgstr "Osztály beállításai"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "New profile name:"
-msgstr "Új név:"
+msgstr "Új profilnév:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Erase Profile"
-msgstr "Jobb Egérgomb: Pont Törlése."
+msgstr "Profil törlése"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Godot Feature Profile"
-msgstr "Export Sablonok Kezelése"
+msgstr "Godot funkcióprofil"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Import Profile(s)"
-msgstr "%d további fájl"
+msgstr "Profil(ok) importálása"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Export Profile"
-msgstr "Projekt Exportálása"
+msgstr "Profil exportálása"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Manage Editor Feature Profiles"
-msgstr "Export Sablonok Kezelése"
+msgstr "A szerkesztő funkcióprofiljainak kezelése"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select Current Folder"
@@ -1834,24 +1772,21 @@ msgid "File Exists, Overwrite?"
msgstr "Fájl Létezik, Felülírja?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select This Folder"
-msgstr "Aktuális Mappa Kiválasztása"
+msgstr "Válassza ezt a mappát"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Copy Path"
msgstr "Útvonal másolása"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-#, fuzzy
msgid "Open in File Manager"
-msgstr "Mutat Fájlkezelőben"
+msgstr "Megnyitás a Fájlkezelőben"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/filesystem_dock.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Show in File Manager"
-msgstr "Mutat Fájlkezelőben"
+msgstr "Megjelenítés a Fájlkezelőben"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "New Folder..."
@@ -1911,67 +1846,60 @@ msgstr "Ugrás Fel"
#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr "Rejtett Fájlok Megjelenítése"
+msgstr ""
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr "Kedvenc Kapcsolása"
+msgstr ""
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr "Mód Váltása"
+msgstr "Mód váltása"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr "Elérési Út Fókuszálása"
+msgstr ""
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr "Kedvenc Felfelé Mozgatása"
+msgstr "Kedvenc fentebb helyezése"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr "Kedvenc Lefelé Mozgatása"
+msgstr "Kedvenc lentebb helyezése"
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to previous folder."
-msgstr "Ugrás a szülőmappába"
+msgstr "Ugrás az előző mappára."
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to next folder."
-msgstr "Ugrás a szülőmappába"
+msgstr "Ugrás a következő mappára."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Go to parent folder."
-msgstr "Ugrás a szülőmappába"
+msgstr "Lépjen a szülőmappába."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Refresh files."
-msgstr "Osztályok Keresése"
+msgstr "Fájlok frissítése."
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "(Un)favorite current folder."
-msgstr "Nem sikerült létrehozni a mappát."
+msgstr "Jelenlegi mappa kedvenccé tétele/eltávolítása a kedvencek közül."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Toggle the visibility of hidden files."
-msgstr "Rejtett Fájlok Megjelenítése"
+msgstr "A rejtett fájlok láthatóságának ki- és bekapcsolása."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
#, fuzzy
msgid "View items as a grid of thumbnails."
-msgstr "Elemek kirajzolása indexképek rácsába"
+msgstr "Az elemek megtekintése bélyegkép-rácsként."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-#, fuzzy
msgid "View items as a list."
-msgstr "Elemek listázása"
+msgstr "Elemek megtekintése listaként."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
@@ -1979,7 +1907,7 @@ msgstr "Könyvtárak és Fájlok:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Előnézet:"
@@ -2023,14 +1951,12 @@ msgid "Inherited by:"
msgstr "Őt örökli:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Description"
-msgstr "Leírás:"
+msgstr "Leírás"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Online Tutorials"
-msgstr "Online Oktatóanyagok:"
+msgstr "Online oktatóanyagok"
#: editor/editor_help.cpp
msgid "Properties"
@@ -2038,21 +1964,19 @@ msgstr "Tulajdonságok"
#: editor/editor_help.cpp
msgid "override:"
-msgstr ""
+msgstr "felülírja:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "default:"
-msgstr "Alapértelmezett"
+msgstr "alapértelmezett:"
#: editor/editor_help.cpp
msgid "Methods"
msgstr "Metódusok"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Theme Properties"
-msgstr "Tulajdonságok"
+msgstr "Téma tulajdonságai"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2063,14 +1987,12 @@ msgid "Constants"
msgstr "Konstansok"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Property Descriptions"
-msgstr "Tulajdonság Leírása:"
+msgstr "Tulajdonságleírások"
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "Érték:"
+msgstr "(érték)"
#: editor/editor_help.cpp
msgid ""
@@ -2081,9 +2003,8 @@ msgstr ""
"[color=$color][url=$url]hozzájárul eggyel[/url][/color]!"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Method Descriptions"
-msgstr "Metódus Leírás:"
+msgstr "Metódusleírások"
#: editor/editor_help.cpp
msgid ""
@@ -2096,106 +2017,92 @@ msgstr ""
#: editor/editor_help_search.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
msgid "Search Help"
-msgstr "Keresés Súgóban"
+msgstr "Keresés a súgóban"
#: editor/editor_help_search.cpp
msgid "Case Sensitive"
msgstr "Pontos Egyezés"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Show Hierarchy"
-msgstr "Segítők Megjelenítése"
+msgstr "Hierarchia megjelenítése"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Display All"
-msgstr "Mind Lecserélése"
+msgstr "Az összes megjelenítése"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Classes Only"
-msgstr "Osztályok"
+msgstr "Csak osztályok"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Methods Only"
-msgstr "Metódusok"
+msgstr "Csak metódusok"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Signals Only"
-msgstr "Jelzések"
+msgstr "Csak jelzések"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Constants Only"
-msgstr "Konstansok"
+msgstr "Csak konstansok"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Properties Only"
-msgstr "Tulajdonságok"
+msgstr "Csak tulajdonságok"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Theme Properties Only"
-msgstr "Tulajdonságok"
+msgstr "Csak tématulajdonságok"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Member Type"
-msgstr "Tagok"
+msgstr "Tag típusa"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Class"
-msgstr "Osztály:"
+msgstr "Osztály"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Method"
-msgstr "Metódusok"
+msgstr "Metódus"
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Signal"
-msgstr "Jelzések"
+msgstr "Jelzés"
#: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constant"
msgstr "Állandó"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Property"
-msgstr "Tulajdonságok"
+msgstr "Tulajdonság"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Theme Property"
-msgstr "Tulajdonságok"
+msgstr "Téma tulajdonság"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
-msgstr ""
+msgstr "Tulajdonság:"
#: editor/editor_inspector.cpp
+#, fuzzy
msgid "Set"
-msgstr ""
+msgstr "Beállítás"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
-msgstr ""
+msgstr "Többszörös beállítása:"
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Kimenet:"
#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Copy Selection"
-msgstr "Kiválasztás eltávolítás"
+msgstr "Kijelölés másolása"
#: editor/editor_log.cpp editor/editor_network_profiler.cpp
#: editor/editor_profiler.cpp editor/editor_properties.cpp
@@ -2209,7 +2116,7 @@ msgstr "Töröl"
#: editor/editor_log.cpp
msgid "Clear Output"
-msgstr "Kimenet Törlése"
+msgstr "Kimenet törlése"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
#: editor/editor_profiler.cpp
@@ -2218,22 +2125,20 @@ msgstr "Leállítás"
#: editor/editor_network_profiler.cpp editor/editor_profiler.cpp
#: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp
-#, fuzzy
msgid "Start"
-msgstr "Start!"
+msgstr "Start"
#: editor/editor_network_profiler.cpp
msgid "%s/s"
-msgstr ""
+msgstr "%s/s"
#: editor/editor_network_profiler.cpp
-#, fuzzy
msgid "Down"
-msgstr "Letöltés"
+msgstr "Le"
#: editor/editor_network_profiler.cpp
msgid "Up"
-msgstr ""
+msgstr "Fel"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
msgid "Node"
@@ -2241,32 +2146,32 @@ msgstr "Node"
#: editor/editor_network_profiler.cpp
msgid "Incoming RPC"
-msgstr ""
+msgstr "Bejövő RPC"
#: editor/editor_network_profiler.cpp
msgid "Incoming RSET"
-msgstr ""
+msgstr "Bejövő RSET"
#: editor/editor_network_profiler.cpp
msgid "Outgoing RPC"
-msgstr ""
+msgstr "Kimenő RPC"
#: editor/editor_network_profiler.cpp
msgid "Outgoing RSET"
-msgstr ""
+msgstr "Kimenő RSET"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "New Window"
-msgstr ""
+msgstr "Új ablak"
#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
-msgstr ""
+msgstr "Az importált erőforrások nem menthetők."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: scene/gui/dialogs.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
@@ -2277,6 +2182,8 @@ msgid ""
"This resource can't be saved because it does not belong to the edited scene. "
"Make it unique first."
msgstr ""
+"Ezt az erőforrást nem menthető, mert nem tartozik a szerkesztett jelenethez. "
+"Először tegye egyedivé."
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As..."
@@ -2297,6 +2204,7 @@ msgstr "Hiba történt mentés közben."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Can't open '%s'. The file could have been moved or deleted."
msgstr ""
+"A(z) '%s' nem nyitható meg. Lehet, hogy a fájlt áthelyezték vagy törölték."
#: editor/editor_node.cpp
msgid "Error while parsing '%s'."
@@ -2346,7 +2254,7 @@ msgstr ""
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "Can't overwrite scene that is still open!"
-msgstr ""
+msgstr "Nem lehet felülírni a még nyitott jelenetet!"
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
@@ -2393,14 +2301,13 @@ msgstr ""
"jobban megértse ezt a munkafolyamatot."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"This resource belongs to a scene that was instanced or inherited.\n"
"Changes to it won't be kept when saving the current scene."
msgstr ""
-"Ez az erőforrás egy olyan Scene-hez tartozik amit példányosítottak vagy "
+"Ez az erőforrás egy olyan jelenethez tartozik ami példányosított vagy "
"örökölt.\n"
-"A módosítások nem lesznek megtartva a jelenlegi Scene mentésekor."
+"A módosítások nem lesznek megtartva a jelenlegi jelenet mentésekor."
#: editor/editor_node.cpp
msgid ""
@@ -2411,21 +2318,19 @@ msgstr ""
"beállításait az import panelen, és importálja újból."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"This scene was imported, so changes to it won't be kept.\n"
"Instancing it or inheriting will allow making changes to it.\n"
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"Ezt a jelenetet importálta, így a rajta végzett módosítások nem lesznek "
+"Ez a jelenetet importált, így a rajta végzett módosítások nem lesznek "
"megtartva.\n"
"Változtatásokat végezhet rajta, ha példányosítja, vagy leszármaztatja.\n"
"Olvassa el a jelenetek importálásáról szóló megfelelő dokumentációt, hogy "
"jobban megértse ezt a munkafolyamatot."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"This is a remote object, so changes to it won't be kept.\n"
"Please read the documentation relevant to debugging to better understand "
@@ -2441,11 +2346,6 @@ msgid "There is no defined scene to run."
msgstr "Nincs meghatározva Scene a futtatáshoz."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"A jelenlegi Scene soha nem volt még mentve, mentse el a futtatás előtt."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Az alprocesszt nem lehetett elindítani!"
@@ -2458,9 +2358,8 @@ msgid "Open Base Scene"
msgstr "Alap Scene megnyitás"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Quick Open..."
-msgstr "Jelenet gyors megnyitása..."
+msgstr "Gyors megnyitás..."
#: editor/editor_node.cpp
msgid "Quick Open Scene..."
@@ -2479,9 +2378,8 @@ msgid "Save changes to '%s' before closing?"
msgstr "Bezárás előtt menti a '%s'-n végzett módosításokat?"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Saved %s modified resource(s)."
-msgstr "Nem sikerült betölteni az erőforrást."
+msgstr "%s módosított erőforrás mentve."
#: editor/editor_node.cpp
msgid "A root node is required to save the scene."
@@ -2513,7 +2411,7 @@ msgstr "Mesh könyvtár exportálás"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
-msgstr "Ezt a műveletet nem lehet végrehajtani gyökér Node nélkül."
+msgstr "Ezt a műveletet nem lehet végrehajtani gyökér node nélkül."
#: editor/editor_node.cpp
msgid "Export Tile Set"
@@ -2532,15 +2430,16 @@ msgid "Can't reload a scene that was never saved."
msgstr "Nem lehet újratölteni egy olyan jelenetet, amit soha nem mentett el."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "Scene mentés"
+msgstr "Mentett jelenet újratöltése"
#: editor/editor_node.cpp
msgid ""
"The current scene has unsaved changes.\n"
"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
+"Az aktuális jelenet nem mentett módosításokat tartalmaz.\n"
+"A mentett jelenetet mindenképp újratölti? Ez a művelet nem visszavonható."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2552,7 +2451,7 @@ msgstr "Kilépés"
#: editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr "Kilépés a szerkesztőből?"
+msgstr "Kilép a szerkesztőből?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
@@ -2560,11 +2459,12 @@ msgstr "Megnyitja a Projektkezelőt?"
#: editor/editor_node.cpp
msgid "Save & Quit"
-msgstr "Mentés és Kilépés"
+msgstr "Mentés és kilépés"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr "Elmenti a következő Scene(ek)en végzett változtatásokat kilépés előtt?"
+msgstr ""
+"Elmenti a következő jelenet(ek)en végzett változtatásokat kilépés előtt?"
#: editor/editor_node.cpp
msgid "Save changes the following scene(s) before opening Project Manager?"
@@ -2577,8 +2477,8 @@ msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
msgstr ""
-"Ez a lehetőség elavult. Az olyan helyzeteket, ahol ki kell kényszeríteni egy "
-"frissítést, már hibának vesszük. Kérjük, jelentse a helyzetet."
+"Ez a lehetőség elavult. Az olyan helyzeteket, ahol kényszeríteni kell egy "
+"frissítést, már hibának vesszük. Kérjük, jelentse ezt."
#: editor/editor_node.cpp
msgid "Pick a Main Scene"
@@ -2586,12 +2486,11 @@ msgstr "Válasszon egy Fő Jelenetet"
#: editor/editor_node.cpp
msgid "Close Scene"
-msgstr "Scene bezárás"
+msgstr "Jelenet bezárása"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reopen Closed Scene"
-msgstr "Scene bezárás"
+msgstr "Bezárt jelenet újbóli megnyitása"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
@@ -2610,13 +2509,12 @@ msgid "Unable to load addon script from path: '%s'."
msgstr "Nem sikerült az addon szkript betöltése a következő útvonalról: '%s'."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"Unable to load addon script from path: '%s' There seems to be an error in "
"the code, please check the syntax."
msgstr ""
-"Nem sikerült az addon szkript betöltése a következő útvonalról: '%s' A "
-"szkript nem eszközmódban van."
+"Nem lehet betölteni az addon szkriptet a(z) '%s' útvonalról. Úgy tűnik, hiba "
+"történt a kódban, ellenőrizze a szintaxist."
#: editor/editor_node.cpp
msgid ""
@@ -2702,24 +2600,20 @@ msgstr "Alapértelmezett"
#: editor/editor_node.cpp editor/editor_properties.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Show in FileSystem"
-msgstr "Mutassa a Fájlrendszerben"
+msgstr "Megjelenítés a fájlrendszerben"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Play This Scene"
-msgstr "Scene futtatás"
+msgstr "Jelenet lejátszása"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Close Tab"
-msgstr "A Többi Lap Bezárása"
+msgstr "Lap bezárása"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Undo Close Tab"
-msgstr "A Többi Lap Bezárása"
+msgstr "Lap bezárásának visszavonása"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Close Other Tabs"
@@ -2727,12 +2621,11 @@ msgstr "A Többi Lap Bezárása"
#: editor/editor_node.cpp
msgid "Close Tabs to the Right"
-msgstr ""
+msgstr "Lapok bezárása ettől jobbra"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Close All Tabs"
-msgstr "Mind Bezárása"
+msgstr "Minden lap bezárása"
#: editor/editor_node.cpp
msgid "Switch Scene Tab"
@@ -2775,9 +2668,8 @@ msgid "Go to previously opened scene."
msgstr "Ugrás az előzőleg megnyitott jelenetre."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Copy Text"
-msgstr "Útvonal másolása"
+msgstr "Szöveg másolása"
#: editor/editor_node.cpp
msgid "Next tab"
@@ -2785,7 +2677,7 @@ msgstr "Következő fül"
#: editor/editor_node.cpp
msgid "Previous tab"
-msgstr "Előző fül"
+msgstr "Előző lap"
#: editor/editor_node.cpp
msgid "Filter Files..."
@@ -2816,9 +2708,8 @@ msgid "Save Scene"
msgstr "Scene mentés"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Save All Scenes"
-msgstr "Minden Scene mentés"
+msgstr "Az összes jelenet mentése"
#: editor/editor_node.cpp
msgid "Convert To..."
@@ -2852,49 +2743,44 @@ msgid "Project"
msgstr "Projekt"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Project Settings..."
-msgstr "Projekt Beállítások"
+msgstr "Projekt beállítások..."
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Version Control"
-msgstr "Verzió:"
+msgstr "Verziókezelés"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Set Up Version Control"
-msgstr ""
+msgstr "Verziókezelés beállítása"
#: editor/editor_node.cpp
msgid "Shut Down Version Control"
-msgstr ""
+msgstr "Verzióvezérlő leállítása"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Export..."
-msgstr "Exportálás"
+msgstr "Exportálás..."
#: editor/editor_node.cpp
msgid "Install Android Build Template..."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Project Data Folder"
-msgstr "Megnyitja a Projektkezelőt?"
+msgstr "Projektadat-mappa megnyitása"
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
msgstr "Eszközök"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Orphan Resource Explorer..."
-msgstr "Árva Forrás Kezelő"
+msgstr "Árva erőforrás-kezelő..."
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr "Kilépés a Projektlistába"
+msgstr "Kilépés a projektlistába"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
@@ -2907,24 +2793,28 @@ msgstr "Indítás Távoli Teszteléssel"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Exportáláskor vagy telepítéskor az így kapott futtatható program megpróbál "
-"ennek a számítógépnek az IP-jéhez csatlakozni távoli hibakeresés érdekében."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Kis Telepítés Hálózati FS-sel"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Ha ez az opció engedélyezve van, akkor az exportálás vagy a telepítés egy "
"minimális méretű futtatható programot hoz létre.\n"
@@ -2938,9 +2828,10 @@ msgid "Visible Collision Shapes"
msgstr "Látható Ütközési Alakzatok"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Az ütközési alakzatok és a fénysugárkövető Node-ok (mind 2D-hez és 3D-hez) "
"láthatóak lesznek a játék futásakor, ha ez az opció be van kapcsolva."
@@ -2950,23 +2841,26 @@ msgid "Visible Navigation"
msgstr "Látható Navigáció"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"A navigációs hálók és sokszögek láthatóak lesznek a játék futásakor, ha ez "
"az opció be van kapcsolva."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Jelenet változtatások szinkronizálása"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Ha ez a beállítás be van kapcsolva, bármilyen változtatás a jeleneten a "
"szerkesztőben le lesz másolva a futó játékba.\n"
@@ -2974,15 +2868,17 @@ msgstr ""
"fájlrendszerrel együtt."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Szkript Változtatások Szinkronizálása"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Ha ez a beállítás be van kapcsolva, bármilyen szkript, amit elment, újra "
"betöltődik a futó játékba.\n"
@@ -2994,56 +2890,49 @@ msgid "Editor"
msgstr "Szerkesztő"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Editor Settings..."
-msgstr "Szerkesztő Beállítások"
+msgstr "Szerkesztő beállításai..."
#: editor/editor_node.cpp
msgid "Editor Layout"
msgstr "Szerkesztő Elrendezés"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Take Screenshot"
-msgstr "Scene mentés"
+msgstr "Képernyőkép készítése"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Screenshots are stored in the Editor Data/Settings Folder."
-msgstr "Szerkesztő Beállítások"
+msgstr "A képernyőképek a szerkesztő adatai/beállításai mappában tárolódnak."
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
msgstr "Teljes Képernyő"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Toggle System Console"
-msgstr "Mód Váltása"
+msgstr "Rendszerkonzol be- és kikapcsolása"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Editor Data/Settings Folder"
-msgstr "Szerkesztő Beállítások"
+msgstr "Szerkesztő adatok/beállítások mappa megnyitása"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Open Editor Data Folder"
-msgstr ""
+msgstr "A szerkesztő adatmappájának megnyitása"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Editor Settings Folder"
-msgstr "Szerkesztő Beállítások"
+msgstr "Szerkesztő beállításai mappa megnyitása"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Editor Features..."
-msgstr "Export Sablonok Kezelése"
+msgstr "A Szerkesztő funkcióinak kezelése ..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Export Templates..."
-msgstr "Export Sablonok Kezelése"
+msgstr "Exportálási sablonok kezelése..."
#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
msgid "Help"
@@ -3054,7 +2943,7 @@ msgstr "Súgó"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Keresés"
@@ -3065,16 +2954,16 @@ msgstr "Online Dokumentáció"
#: editor/editor_node.cpp
msgid "Q&A"
-msgstr "Kérdések és Válaszok"
+msgstr "Kérdések és válaszok"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Report a Bug"
-msgstr "Újraimportálás"
+msgstr "Hiba bejelentése"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Send Docs Feedback"
-msgstr ""
+msgstr "Visszajelzés a Dokumentumokról"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
@@ -3094,11 +2983,11 @@ msgstr "Játék"
#: editor/editor_node.cpp
msgid "Pause the scene execution for debugging."
-msgstr ""
+msgstr "Szüneteltesse a jelenet végrehajtását a hibakereséshez."
#: editor/editor_node.cpp
msgid "Pause Scene"
-msgstr "Scene szüneteltetés"
+msgstr "Jelenet szüneteltetése"
#: editor/editor_node.cpp
msgid "Stop the scene."
@@ -3118,37 +3007,33 @@ msgstr "Tetszőleges Scene futtatás"
#: editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr "Tetszőleges Scene futtatás"
+msgstr "Tetszőleges jelenet lejátszása"
#: editor/editor_node.cpp
msgid "Changing the video driver requires restarting the editor."
msgstr ""
+"A videó-illesztőprogram módosításához újra kell indítani a szerkesztőt."
#: editor/editor_node.cpp editor/project_settings_editor.cpp
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Save & Restart"
-msgstr "Mentés és Kilépés"
+msgstr "Mentés és újraindítás"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Spins when the editor window redraws."
-msgstr "Fordul egyet, amikor a szerkesztőablak újrarajzolódik!"
+msgstr "Pörög, amikor a szerkesztőablak újrarajzolódik."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Continuously"
-msgstr "Folyamatos"
+msgstr "Folyamatos frissítés"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update When Changed"
-msgstr "Változások Frissítése"
+msgstr "Frissítés, ha megváltozik"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Hide Update Spinner"
-msgstr "Frissítési Forgó Kikapcsolása"
+msgstr "Frissítési forgó elrejtése"
#: editor/editor_node.cpp
msgid "FileSystem"
@@ -3159,9 +3044,8 @@ msgid "Inspector"
msgstr "Megfigyelő"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand Bottom Panel"
-msgstr "Összes kibontása"
+msgstr "Alsó panel kinyitása"
#: editor/editor_node.cpp
msgid "Output"
@@ -3176,9 +3060,8 @@ msgid "Android build template is missing, please install relevant templates."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Templates"
-msgstr "Export Sablonok Kezelése"
+msgstr "Sablonok kezelése"
#: editor/editor_node.cpp
msgid ""
@@ -3204,9 +3087,8 @@ msgid "Import Templates From ZIP File"
msgstr "Sablonok Importálása ZIP Fájlból"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Template Package"
-msgstr "Export Sablon Kezelő"
+msgstr "Sabloncsomag"
#: editor/editor_node.cpp
msgid "Export Library"
@@ -3234,7 +3116,7 @@ msgstr "Kiválaszt"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
-msgstr "2D Szerkesztő Megnyitása"
+msgstr "2D szerkesztő megnyitása"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
@@ -3242,7 +3124,7 @@ msgstr "3D Szerkesztő Megnyitása"
#: editor/editor_node.cpp
msgid "Open Script Editor"
-msgstr "Szkript Szerkesztő Megnyitása"
+msgstr "Szkript szerkesztő megnyitása"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
@@ -3258,12 +3140,11 @@ msgstr "Előző Szerkesztő Megnyitása"
#: editor/editor_node.h
msgid "Warning!"
-msgstr ""
+msgstr "Figyelmeztetés!"
#: editor/editor_path.cpp
-#, fuzzy
msgid "No sub-resources found."
-msgstr "Nincs felületi forrás meghatározva."
+msgstr "Nem található alerőforrás."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3274,14 +3155,12 @@ msgid "Thumbnail..."
msgstr "Indexkép..."
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Main Script:"
-msgstr "Szkript Futtatása"
+msgstr "Fő szkript:"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Edit Plugin"
-msgstr "Sokszög Szerkesztése"
+msgstr "Bővítmény szerkesztése"
#: editor/editor_plugin_settings.cpp
msgid "Installed Plugins:"
@@ -3305,9 +3184,8 @@ msgid "Status:"
msgstr "Állapot:"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Edit:"
-msgstr "Szerkesztés"
+msgstr "Szerkesztés:"
#: editor/editor_profiler.cpp
msgid "Measure:"
@@ -3350,34 +3228,32 @@ msgid "Calls"
msgstr "Hívások"
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Edit Text:"
-msgstr "Tagok"
+msgstr "Szöveg szerkesztése:"
#: editor/editor_properties.cpp editor/script_create_dialog.cpp
msgid "On"
-msgstr ""
+msgstr "Be"
#: editor/editor_properties.cpp
msgid "Layer"
-msgstr ""
+msgstr "Réteg"
#: editor/editor_properties.cpp
msgid "Bit %d, value %d"
-msgstr ""
+msgstr "%d bit, érték: %d"
#: editor/editor_properties.cpp
msgid "[Empty]"
-msgstr ""
+msgstr "[Üres]"
#: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp
msgid "Assign..."
-msgstr ""
+msgstr "Hozzárendelés..."
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Invalid RID"
-msgstr "Érvénytelen név."
+msgstr ""
#: editor/editor_properties.cpp
msgid ""
@@ -3405,20 +3281,19 @@ msgstr ""
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "New Script"
-msgstr ""
+msgstr "Új szkript"
#: editor/editor_properties.cpp editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Extend Script"
-msgstr "Szkript Futtatása"
+msgstr "Szkript kinyitása"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "New %s"
-msgstr ""
+msgstr "Új %s"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Make Unique"
-msgstr ""
+msgstr "Egyedivé tétel"
#: editor/editor_properties.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
@@ -3436,7 +3311,7 @@ msgstr "Beillesztés"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Convert To %s"
-msgstr ""
+msgstr "Átalakítás erre: %s"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Selected node is not a Viewport!"
@@ -3444,35 +3319,35 @@ msgstr ""
#: editor/editor_properties_array_dict.cpp
msgid "Size: "
-msgstr ""
+msgstr "Méret: "
#: editor/editor_properties_array_dict.cpp
msgid "Page: "
-msgstr ""
+msgstr "Oldal: "
#: editor/editor_properties_array_dict.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Item"
-msgstr ""
+msgstr "Elem eltávolítása"
#: editor/editor_properties_array_dict.cpp
-#, fuzzy
msgid "New Key:"
-msgstr "Új név:"
+msgstr "Új kulcs:"
#: editor/editor_properties_array_dict.cpp
-#, fuzzy
msgid "New Value:"
-msgstr "Új név:"
+msgstr "Új érték:"
#: editor/editor_properties_array_dict.cpp
msgid "Add Key/Value Pair"
-msgstr ""
+msgstr "Kulcs/érték pár hozzáadása"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Nem található futtatható exportállomány ehhez a platformhoz.\n"
"Adjon hozzá egy futtatható exportállományt az export menüben."
@@ -3511,7 +3386,7 @@ msgstr "Válassza ki az importálandó Node-okat"
#: editor/editor_sub_scene.cpp editor/project_manager.cpp
msgid "Browse"
-msgstr ""
+msgstr "Tallózás"
#: editor/editor_sub_scene.cpp
msgid "Scene Path:"
@@ -3522,9 +3397,8 @@ msgid "Import From Node:"
msgstr "Importálás Node-ból:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Redownload"
-msgstr "Letöltés Megint"
+msgstr "Letöltés újra"
#: editor/export_template_manager.cpp
msgid "Uninstall"
@@ -3564,9 +3438,8 @@ msgid "Can't open export templates zip."
msgstr "Nem nyitható meg az export sablon zip."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside templates: %s."
-msgstr "Érvénytelen version.txt formátum a sablonokban."
+msgstr "Érvénytelen version.txt formátum a sablonokban: %s."
#: editor/export_template_manager.cpp
msgid "No version.txt found inside templates."
@@ -3586,11 +3459,12 @@ msgstr "Importálás:"
#: editor/export_template_manager.cpp
msgid "Error getting the list of mirrors."
-msgstr ""
+msgstr "Hiba történt a tükörlista lekérésekor."
#: editor/export_template_manager.cpp
msgid "Error parsing JSON of mirror list. Please report this issue!"
msgstr ""
+"Hiba történt a tükörlista JSON elemzésénél. Kérjük, jelentse ezt a problémát!"
#: editor/export_template_manager.cpp
msgid ""
@@ -3617,7 +3491,7 @@ msgstr "Nincs válasz."
#: editor/export_template_manager.cpp
msgid "Request Failed."
-msgstr "Kérés Sikertelen."
+msgstr "A kérés sikertelen."
#: editor/export_template_manager.cpp
msgid "Redirect Loop."
@@ -3633,20 +3507,21 @@ msgid "Download Complete."
msgstr "A Letöltés Befejeződött."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cannot remove temporary file:"
-msgstr "Nem eltávolítható:"
+msgstr "Az ideiglenes fájl nem távolítható el:"
#: editor/export_template_manager.cpp
+#, fuzzy
msgid ""
"Templates installation failed.\n"
"The problematic templates archives can be found at '%s'."
msgstr ""
+"A sablonok telepítése nem sikerült.\n"
+"A problémás sablonok archívuma megtalálható a következő helyen: '%s'."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error requesting URL:"
-msgstr "Hiba történt az url lekérdezésekor: "
+msgstr "Hiba az URL kérésekor:"
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror..."
@@ -3695,9 +3570,8 @@ msgid "SSL Handshake Error"
msgstr "SSL-Kézfogás Hiba"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uncompressing Android Build Sources"
-msgstr "Eszközök Kicsomagolása"
+msgstr ""
#: editor/export_template_manager.cpp
msgid "Current Version:"
@@ -3716,14 +3590,12 @@ msgid "Remove Template"
msgstr "Sablon Eltávolítása"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select Template File"
msgstr "Válasszon sablonfájlt"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Godot Export Templates"
-msgstr "Export Sablonok Kezelése"
+msgstr "Godot export sablonok"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
@@ -3734,14 +3606,13 @@ msgid "Download Templates"
msgstr "Sablonok Letöltése"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select mirror from list: (Shift+Click: Open in Browser)"
-msgstr "Válasszon tükröt a listából: "
+msgstr ""
+"Tükör kiválasztása a listából: (Shift + kattintás: megnyitás a böngészőben)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Favorites"
-msgstr "Kedvencek:"
+msgstr "Kedvencek"
#: editor/filesystem_dock.cpp
msgid "Status: Import of file failed. Please fix file and reimport manually."
@@ -3774,9 +3645,8 @@ msgid "No name provided."
msgstr "Nincs név megadva."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Provided name contains invalid characters."
-msgstr "A megadott név érvénytelen karaktereket tartalmaz"
+msgstr "A megadott név érvénytelen karaktereket tartalmaz."
#: editor/filesystem_dock.cpp
msgid "A file or folder with this name already exists."
@@ -3803,33 +3673,28 @@ msgid "Duplicating folder:"
msgstr "Mappa másolása:"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Inherited Scene"
-msgstr "Új örökölt Jelenet..."
+msgstr "Új örökölt Jelenet"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Set As Main Scene"
-msgstr "Válasszon egy Fő Jelenetet"
+msgstr "Beállítás fő jelenetként"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Open Scenes"
-msgstr "Scene megnyitás"
+msgstr "Jelenetek megnyitása"
#: editor/filesystem_dock.cpp
msgid "Instance"
msgstr "Példány"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Add to Favorites"
-msgstr "Kedvencek:"
+msgstr "Hozzáadás kedvencekhez"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Remove from Favorites"
-msgstr "Eltávolítás Csoportból"
+msgstr "Eltávolítás a kedvencek közül"
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies..."
@@ -3852,31 +3717,26 @@ msgid "Move To..."
msgstr "Áthelyezés..."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Scene..."
-msgstr "Új Scene"
+msgstr "Új jelenet..."
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "New Script..."
-msgstr "Szkript gyors megnyitás..."
+msgstr "Új szkript..."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Resource..."
-msgstr "Erőforrás Mentése Másként..."
+msgstr "Új erőforrás..."
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Expand All"
-msgstr "Összes kibontása"
+msgstr "Összes kinyitása"
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Collapse All"
-msgstr "Összes összecsukása"
+msgstr "Összes becsukása"
#: editor/filesystem_dock.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -3886,78 +3746,68 @@ msgid "Rename"
msgstr "Átnevezés"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Previous Folder/File"
-msgstr "Előző Sík"
+msgstr "Előző mappa/fájl"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Next Folder/File"
-msgstr "Mappa Létrehozása"
+msgstr "Következő mappa/fájl"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
msgstr "Fájlrendszer Újra-vizsgálata"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Toggle Split Mode"
-msgstr "Mód Váltása"
+msgstr "Váltás az osztott módra"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Search files"
-msgstr "Osztályok Keresése"
+msgstr "Fájlok keresése"
#: editor/filesystem_dock.cpp
msgid ""
"Scanning Files,\n"
"Please Wait..."
msgstr ""
-"Fájlok Vizsgálata,\n"
-"Kérem Várjon..."
+"Fájlok vizsgálata,\n"
+"kérjük várjon..."
#: editor/filesystem_dock.cpp
msgid "Move"
msgstr "Áthelyezés"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "There is already file or folder with the same name in this location."
-msgstr "Egy fájl vagy mappa már létezik a megadott névvel."
+msgstr "Ezen a helyen már van azonos nevű fájl vagy mappa."
#: editor/filesystem_dock.cpp
msgid "Overwrite"
-msgstr ""
+msgstr "Felülírás"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Create Scene"
-msgstr "Scene mentés"
+msgstr "Jelenet létrehozása"
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
msgstr "Szkript Létrehozása"
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Find in Files"
-msgstr "%d további fájl"
+msgstr "Keresés a fájlokban"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Find:"
-msgstr "Keres"
+msgstr "Keres:"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Folder:"
-msgstr "Mappa Létrehozása"
+msgstr "Mappa:"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Filters:"
-msgstr "Szűrők..."
+msgstr "Szűrők:"
#: editor/find_in_files.cpp
msgid ""
@@ -3979,29 +3829,24 @@ msgid "Cancel"
msgstr "Mégse"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Find: "
-msgstr "Keres"
+msgstr "Keres: "
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace: "
-msgstr "Lecserélés"
+msgstr "Csere: "
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace all (no undo)"
-msgstr "Mind Lecserélése"
+msgstr "Összes lecserélése (nem visszavonható)"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Searching..."
-msgstr "Mentés..."
+msgstr "Keresés…"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Search complete"
-msgstr "Keresés a Szövegben"
+msgstr "A keresés kész"
#: editor/groups_editor.cpp
msgid "Add to Group"
@@ -4012,57 +3857,49 @@ msgid "Remove from Group"
msgstr "Eltávolítás Csoportból"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Group name already exists."
-msgstr "HIBA: Animáció név már létezik!"
+msgstr "A csoportnév már létezik."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Invalid group name."
-msgstr "Érvénytelen név."
+msgstr "Érvénytelen csoportnév."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Rename Group"
-msgstr "Csoportok"
+msgstr "Csoport átnevezése"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Delete Group"
-msgstr "Elrendezés Törlése"
+msgstr "Csoport törlése"
#: editor/groups_editor.cpp editor/node_dock.cpp
msgid "Groups"
msgstr "Csoportok"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Nodes Not in Group"
-msgstr "Hozzáadás Csoporthoz"
+msgstr "Csoportban nem lévő node-ok"
#: editor/groups_editor.cpp editor/scene_tree_dock.cpp
#: editor/scene_tree_editor.cpp
msgid "Filter nodes"
-msgstr ""
+msgstr "Node-ok szűrése"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Nodes in Group"
-msgstr "Hozzáadás Csoporthoz"
+msgstr "Node-ok a csoportban"
#: editor/groups_editor.cpp
msgid "Empty groups will be automatically removed."
-msgstr ""
+msgstr "Az üres csoportok automatikusan törlődnek."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Group Editor"
-msgstr "Szkript Szerkesztő Megnyitása"
+msgstr "Csoportszerkesztő"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Manage Groups"
-msgstr "Csoportok"
+msgstr "Csoportok kezelése"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Single Scene"
@@ -4147,9 +3984,8 @@ msgid "Saving..."
msgstr "Mentés..."
#: editor/import_dock.cpp
-#, fuzzy
msgid "%d Files"
-msgstr " Fájlok"
+msgstr "%d fájl"
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
@@ -4164,9 +4000,8 @@ msgid "Import As:"
msgstr "Importálás Mint:"
#: editor/import_dock.cpp
-#, fuzzy
msgid "Preset"
-msgstr "Beépített Beállítások..."
+msgstr "Előre beállított"
#: editor/import_dock.cpp
msgid "Reimport"
@@ -4174,30 +4009,32 @@ msgstr "Újraimportálás"
#: editor/import_dock.cpp
msgid "Save Scenes, Re-Import, and Restart"
-msgstr ""
+msgstr "Jelenetek mentése, újraimportálás és újraindítás"
#: editor/import_dock.cpp
msgid "Changing the type of an imported file requires editor restart."
msgstr ""
+"Az importált fájl típusának módosításához a szerkesztőt újra kell indítani."
#: editor/import_dock.cpp
+#, fuzzy
msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+"FIGYELMEZTETÉS: Vannak olyan eszközök, amelyek ezt az erőforrást használják, "
+"ezért leállíthatják a megfelelő betöltést."
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Nem sikerült betölteni az erőforrást."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Expand All Properties"
-msgstr "Összes tulajdonság kibontása"
+msgstr "Összes tulajdonság kinyitása"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Collapse All Properties"
-msgstr "Összes tulajdonság összecsukása"
+msgstr "Összes tulajdonság becsukása"
#: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -4209,9 +4046,8 @@ msgid "Copy Params"
msgstr "Paraméterek Másolása"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource Clipboard"
-msgstr "Az erőforrás vágólap üres!"
+msgstr "Erőforrás vágólap szerkesztése"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
@@ -4258,9 +4094,8 @@ msgid "Object properties."
msgstr "Objektumtulajdonságok."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Filter properties"
-msgstr "Objektumtulajdonságok."
+msgstr "Tulajdonságok szűrése"
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4271,90 +4106,78 @@ msgid "MultiNode Set"
msgstr "MultiNode Beállítás"
#: editor/node_dock.cpp
-#, fuzzy
msgid "Select a single node to edit its signals and groups."
-msgstr "Válasszon ki egy Node-ot a Jelzések és Csoportok módosításához."
+msgstr "Válasszon ki egy node-ot a jelzések és csoportok módosításához."
#: editor/plugin_config_dialog.cpp
-#, fuzzy
msgid "Edit a Plugin"
-msgstr "Sokszög Szerkesztése"
+msgstr "Bővítmény szerkesztése"
#: editor/plugin_config_dialog.cpp
-#, fuzzy
msgid "Create a Plugin"
-msgstr "Sokszög Létrehozása"
+msgstr "Bővítmény létrehozása"
#: editor/plugin_config_dialog.cpp
-#, fuzzy
msgid "Plugin Name:"
-msgstr "Bővítmények"
+msgstr "Bővítmény neve:"
#: editor/plugin_config_dialog.cpp
msgid "Subfolder:"
-msgstr ""
+msgstr "Almappa:"
#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp
msgid "Language:"
-msgstr ""
+msgstr "Nyelv:"
#: editor/plugin_config_dialog.cpp
msgid "Script Name:"
-msgstr ""
+msgstr "Szkript neve:"
#: editor/plugin_config_dialog.cpp
msgid "Activate now?"
-msgstr ""
+msgstr "Aktiválja most?"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon"
-msgstr "Sokszög Létrehozása"
+msgstr "Sokszög létrehozása"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Create points."
-msgstr "Pontok Törlése"
+msgstr "Pontok létrehozása."
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid ""
"Edit points.\n"
"LMB: Move Point\n"
"RMB: Erase Point"
msgstr ""
-"Meglévő sokszög módosítása:\n"
-"Bal Egérgomb: Pont Mozgatása.\n"
-"Ctrl + Bal Egérgomb: Szakasz Felosztása.\n"
-"Jobb Egérgomb: Pont Eltörlése."
+"Pontok szerkesztése\n"
+"Bal Egérgomb: Pont mozgatása\n"
+"Jobb Egérgomb: Pont törlése"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
msgid "Erase points."
-msgstr "Jobb Egérgomb: Pont Törlése."
+msgstr "Pontok törlése."
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Edit Polygon"
-msgstr "Sokszög Szerkesztése"
+msgstr "Sokszög szerkesztése"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Insert Point"
msgstr "Pont Beszúrása"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Edit Polygon (Remove Point)"
-msgstr "Sokszög Szerkesztése (Pont Eltávolítása)"
+msgstr "Sokszög szerkesztése (pont eltávolítása)"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Remove Polygon And Point"
-msgstr "Sokszög és Pont Eltávolítása"
+msgstr "Sokszög és pont eltávolítása"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4368,25 +4191,21 @@ msgstr "Animáció Hozzáadása"
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Load..."
-msgstr "Betöltés"
+msgstr "Betöltés..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Move Node Point"
-msgstr "Pont Mozgatása"
+msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
msgid "Change BlendSpace1D Limits"
-msgstr "Keverési Idő Módosítása"
+msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
msgid "Change BlendSpace1D Labels"
-msgstr "Keverési Idő Módosítása"
+msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4396,20 +4215,17 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Node Point"
-msgstr "Pont hozzáadása"
+msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Animation Point"
-msgstr "Animáció Hozzáadása"
+msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
msgid "Remove BlendSpace1D Point"
-msgstr "Útvonal Pont Eltávolítása"
+msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Move BlendSpace1D Node Point"
@@ -4437,53 +4253,45 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp
msgid "Enable snap and show grid."
-msgstr ""
+msgstr "Illesztés engedélyezése és rács megjelenítése."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Point"
-msgstr "Pont Mozgatása"
+msgstr "Pont"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Open Editor"
-msgstr "Megnyitás Szerkesztőben"
+msgstr "Szerkesztő megnyitása"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Open Animation Node"
-msgstr "Animáció Node"
+msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Triangle already exists."
-msgstr "HIBA: Animáció név már létezik!"
+msgstr "A háromszög már létezik."
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Triangle"
-msgstr "Animáció nyomvonal hozzáadás"
+msgstr "Háromszög hozzáadása"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Change BlendSpace2D Limits"
-msgstr "Keverési Idő Módosítása"
+msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Change BlendSpace2D Labels"
-msgstr "Keverési Idő Módosítása"
+msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Remove BlendSpace2D Point"
-msgstr "Útvonal Pont Eltávolítása"
+msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Remove BlendSpace2D Triangle"
@@ -4494,13 +4302,13 @@ msgid "BlendSpace2D does not belong to an AnimationTree node."
msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
+#, fuzzy
msgid "No triangles exist, so no blending can take place."
-msgstr ""
+msgstr "Nincsenek háromszögek, így nem történhet keverés."
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Toggle Auto Triangles"
-msgstr "AutoLoad Globálisok Kapcsolása"
+msgstr "Automatikus háromszögek be- és kikapcsolása"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
@@ -4508,7 +4316,7 @@ msgstr ""
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Erase points and triangles."
-msgstr ""
+msgstr "Pontok és háromszögek törlése."
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Generate blend triangles automatically (instead of manually)"
@@ -4520,9 +4328,8 @@ msgid "Blend:"
msgstr "Keverés:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed"
-msgstr "Változások Frissítése"
+msgstr "A paraméter megváltozott"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -4539,9 +4346,8 @@ msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Node Moved"
-msgstr "Mozgás Mód"
+msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
@@ -4549,41 +4355,35 @@ msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Nodes Connected"
-msgstr "Csatlakozva"
+msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Nodes Disconnected"
-msgstr "Kapcsolat bontva"
+msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Set Animation"
-msgstr "Animáció"
+msgstr "Animáció beállítása"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Delete Node"
-msgstr "Node létrehozás"
+msgstr "Node törlése"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)"
-msgstr ""
+msgstr "Node(-ok) törlése"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Filter On/Off"
-msgstr "Zavarmentes mód váltása."
+msgstr "Szűrő be- és kikapcsolása"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Change Filter"
-msgstr "Animáció hossz változtatás"
+msgstr "Szűrő módosítása"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
@@ -4602,39 +4402,34 @@ msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Anim Clips"
-msgstr ""
+msgstr "Animáció klipek"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Audio Clips"
-msgstr "Animáció nyomvonal hozzáadás"
+msgstr "Audió klipek"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Functions"
-msgstr "Funkciók:"
+msgstr "Függvények"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Node Renamed"
-msgstr "Node neve:"
+msgstr "Node átnevezve"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
-msgstr ""
+msgstr "Node hozzáadása..."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/root_motion_editor_plugin.cpp
-#, fuzzy
msgid "Edit Filtered Tracks:"
-msgstr "Szűrők Szerkesztése"
+msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Enable Filtering"
-msgstr "Animáció hossz változtatás"
+msgstr "Szűrés engedélyezése"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
@@ -4663,14 +4458,12 @@ msgid "Remove Animation"
msgstr "Animáció Eltávolítása"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Invalid animation name!"
-msgstr "HIBA: Érvénytelen animáció név!"
+msgstr "Érvénytelen animáció név!"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Animation name already exists!"
-msgstr "HIBA: Animáció név már létezik!"
+msgstr "Az animáció név már létezik!"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -4694,14 +4487,12 @@ msgid "Duplicate Animation"
msgstr "Animáció Megkettőzése"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation to copy!"
-msgstr "HIBA: Nincs másolható animáció!"
+msgstr "Nincs másolható animáció!"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation resource on clipboard!"
-msgstr "HIBA: Nincs animációs erőforrás a vágólapon!"
+msgstr "Nincs animációs erőforrás a vágólapon!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
@@ -4712,9 +4503,8 @@ msgid "Paste Animation"
msgstr "Animáció Beillesztése"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation to edit!"
-msgstr "HIBA: Nincs animáció szerkesztésre!"
+msgstr "Nincs animáció szerkesztésre!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
@@ -4754,14 +4544,12 @@ msgid "Animation"
msgstr "Animáció"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Edit Transitions..."
-msgstr "Átmenetek"
+msgstr "Átmenetek szerkesztése..."
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Open in Inspector"
-msgstr "Megnyitás Szerkesztőben"
+msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Display list of animations in player."
@@ -4776,9 +4564,8 @@ msgid "Enable Onion Skinning"
msgstr "Másolópapír Mód Bekapcsolása"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Onion Skinning Options"
-msgstr "Másolópapír Animáció (Onion Skinning)"
+msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Directions"
@@ -4821,9 +4608,8 @@ msgid "Include Gizmos (3D)"
msgstr "Kihatás Gizmókra Is (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Pin AnimationPlayer"
-msgstr "Animáció Beillesztése"
+msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -4853,24 +4639,21 @@ msgid "Cross-Animation Blend Times"
msgstr "Animációk Közötti Keverési Idők"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Move Node"
-msgstr "Mozgás Mód"
+msgstr "Node áthelyezése"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition exists!"
-msgstr "Átmenet"
+msgstr "Az átmenet létezik!"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Add Transition"
-msgstr "Átmenet"
+msgstr "Átmenet hozzáadása"
#: editor/plugins/animation_state_machine_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
-msgstr ""
+msgstr "Node hozzáadása"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
@@ -4878,42 +4661,39 @@ msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Immediate"
-msgstr ""
+msgstr "Azonnal"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Sync"
-msgstr ""
+msgstr "Szinkronizálás"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "At End"
-msgstr ""
+msgstr "A végén"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Travel"
-msgstr ""
+msgstr "Utazás"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Start and end nodes are needed for a sub-transition."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "No playback resource set at path: %s."
-msgstr "Nincs az erőforrás elérési útban."
+msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Node Removed"
-msgstr "Eltávolít"
+msgstr "Node eltávolítva"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition Removed"
-msgstr "Átmenet Node"
+msgstr "Átmenet eltávolítva"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Set Start Node (Autoplay)"
-msgstr ""
+msgstr "Start node beállítása (automatikus lejátszás)"
#: editor/plugins/animation_state_machine_editor.cpp
msgid ""
@@ -4923,19 +4703,16 @@ msgid ""
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Create new nodes."
-msgstr "Új %s Létrehozása"
+msgstr "Új node-ok létrehozása."
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Connect nodes."
-msgstr "Csatlakoztatás Node-hoz:"
+msgstr "Node-ok csatlakoztatása."
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Remove selected node or transition."
-msgstr "Kiválasztott nyomvonal eltávolítása."
+msgstr "Kiválasztott node vagy átmenet eltávolítása."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Toggle autoplay this animation on start, restart or seek to zero."
@@ -4946,19 +4723,17 @@ msgid "Set the end animation. This is useful for sub-transitions."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition: "
-msgstr "Átmenet"
+msgstr "Átmenet: "
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Play Mode:"
-msgstr "Pásztázás Mód"
+msgstr "Lejátszási mód:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "AnimationTree"
-msgstr "AnimációFa"
+msgstr ""
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "New name:"
@@ -5125,37 +4900,32 @@ msgid "Request failed, return code:"
msgstr "Kérés sikertelen, visszatérési kód:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Request failed."
-msgstr "Kérés Sikertelen."
+msgstr "A kérés sikertelen."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Cannot save response to:"
-msgstr "Nem eltávolítható:"
+msgstr "A válasz nem menthető:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Write error."
-msgstr ""
+msgstr "Írási hiba."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, too many redirects"
msgstr "Kérés sikertelen, túl sok átirányítás"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Redirect loop."
-msgstr "Átirányítási Hurok."
+msgstr "Hurok átirányítása."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Request failed, timeout"
-msgstr "Kérés sikertelen, visszatérési kód:"
+msgstr "A kérés nem sikerült, időtúllépés"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Timeout."
-msgstr "Idő"
+msgstr "Időtúllépés."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
@@ -5180,14 +4950,12 @@ msgid "Asset Download Error:"
msgstr "Eszköz Letöltési Hiba:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Downloading (%s / %s)..."
-msgstr "Letöltés"
+msgstr "Letöltés (%s / %s)..."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Downloading..."
-msgstr "Letöltés"
+msgstr "Letöltés..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving..."
@@ -5202,9 +4970,8 @@ msgid "Idle"
msgstr "Tétlen"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Install..."
-msgstr "Telepítés"
+msgstr "Telepítés..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
@@ -5220,39 +4987,35 @@ msgstr "Ennek az eszköznek a letöltése már folyamatban van!"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Recently Updated"
-msgstr ""
+msgstr "Nemrég frissítve"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Least Recently Updated"
-msgstr ""
+msgstr "Legutóbb frissítve"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Name (A-Z)"
-msgstr ""
+msgstr "Név (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Name (Z-A)"
-msgstr ""
+msgstr "Név (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (A-Z)"
-msgstr "Licenc"
+msgstr "Licenc (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (Z-A)"
-msgstr "Licenc"
+msgstr "Licenc (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "First"
-msgstr "első"
+msgstr "Első"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Previous"
-msgstr "Előző fül"
+msgstr "Előző"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Next"
@@ -5260,7 +5023,7 @@ msgstr "Következő"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Last"
-msgstr ""
+msgstr "Utolsó"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "All"
@@ -5268,17 +5031,15 @@ msgstr "Mind"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No results for \"%s\"."
-msgstr ""
+msgstr "Nincs találat a következőre: \"%s\"."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Import..."
-msgstr "Importálás"
+msgstr "Importálás..."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Plugins..."
-msgstr "Bővítmények"
+msgstr "Bővítmények..."
#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
msgid "Sort:"
@@ -5294,9 +5055,8 @@ msgid "Site:"
msgstr "Oldal:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Support"
-msgstr "Támogatás..."
+msgstr "Támogatás"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Official"
@@ -5307,9 +5067,8 @@ msgid "Testing"
msgstr "Tesztelés"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Loading..."
-msgstr "Betöltés"
+msgstr "Betöltés..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
@@ -5346,7 +5105,7 @@ msgid "Bake Lightmaps"
msgstr "Fény Besütése"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Előnézet"
@@ -5364,12 +5123,11 @@ msgstr "Rács Léptetés:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Primary Line Every:"
-msgstr ""
+msgstr "Elsődleges vonal minden:"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "steps"
-msgstr "2 lépés"
+msgstr "lépés"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Offset:"
@@ -5380,74 +5138,60 @@ msgid "Rotation Step:"
msgstr "Forgatási Léptetés:"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Scale Step:"
-msgstr "Skála:"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move Vertical Guide"
-msgstr "Függőleges vezetővonal mozgatása"
+msgstr "Függőleges segédvonal mozgatása"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Vertical Guide"
-msgstr "Új függőleges vezetővonal létrehozása"
+msgstr "Függőleges segédvonal létrehozása"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Vertical Guide"
-msgstr "Függőleges vezetővonal eltávolítása"
+msgstr "Függőleges segédvonal eltávolítása"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move Horizontal Guide"
-msgstr "Vízszintes vezetővonal mozgatása"
+msgstr "Vízszintes segédvonal mozgatása"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Horizontal Guide"
-msgstr "Új vízszintes vezetővonal létrehozása"
+msgstr "Vízszintes segédvonal létrehozása"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Horizontal Guide"
-msgstr "Vízszintes vezetővonal eltávolítása"
+msgstr "Vízszintes segédvonal eltávolítása"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Horizontal and Vertical Guides"
-msgstr "Új vízszintes és függőleges vezetővonalak létrehozása"
+msgstr "Vízszintes és függőleges segédvonalak létrehozása"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move pivot"
-msgstr "Forgatási Pont Mozgatása"
+msgstr "Forgatási pont áthelyezése"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Rotate CanvasItem"
-msgstr "CanvasItem Szerkesztése"
+msgstr "CanvasItem forgatása"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move anchor"
-msgstr "Mozgási Művelet"
+msgstr "Horgony áthelyezése"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Resize CanvasItem"
-msgstr "CanvasItem Szerkesztése"
+msgstr "CanvasItem átméretezése"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Scale CanvasItem"
-msgstr "CanvasItem Szerkesztése"
+msgstr "CanvasItem méretezése"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move CanvasItem"
-msgstr "CanvasItem Szerkesztése"
+msgstr "CanvasItem áthelyezése"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5466,62 +5210,52 @@ msgid ""
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Top Left"
-msgstr "Forgató mód"
+msgstr "Bal felső"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Top Right"
-msgstr "Sokszög Forgatása"
+msgstr "Jobb felső"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Bottom Right"
-msgstr "Sokszög Forgatása"
+msgstr "Jobb alsó"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Bottom Left"
-msgstr "Forgató mód"
+msgstr "Bal alsó"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Center Left"
-msgstr "Behúzás Balra"
+msgstr "Bal közép"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Center Top"
-msgstr "Kijelölés Középre"
+msgstr "Felső közép"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Center Right"
-msgstr "Behúzás Jobbra"
+msgstr "Jobbra közép"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Center Bottom"
-msgstr "Kijelölés Középre"
+msgstr "Középre lent"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center"
-msgstr ""
+msgstr "Középre"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Left Wide"
-msgstr "Bal lineáris"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Top Wide"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Right Wide"
-msgstr "Jobb lineáris"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Bottom Wide"
@@ -5536,13 +5270,13 @@ msgid "HCenter Wide"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Full Rect"
-msgstr ""
+msgstr "Teljes téglalap"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Keep Ratio"
-msgstr "Méretezési arány:"
+msgstr "Arány megtartása"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Anchors only"
@@ -5572,45 +5306,39 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Lock Selected"
-msgstr "Kiválaszt"
+msgstr "Kijelölés zárolása"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock Selected"
-msgstr ""
+msgstr "Kijelölés feloldása"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Group Selected"
-msgstr "Kiválasztás eltávolítás"
+msgstr "Kijelöltek csoportosítása"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Ungroup Selected"
-msgstr "Kiválasztás eltávolítás"
+msgstr "kijelölt csoportok szétbontása"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
msgstr "Póz Beillesztése"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Clear Guides"
-msgstr "Póz Törlése"
+msgstr "Segédvonalak törlése"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Custom Bone(s) from Node(s)"
-msgstr "Kibocsátási Pontok Létrehozása A Mesh Alapján"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Clear Bones"
-msgstr "Póz Törlése"
+msgstr "Csontok törlése"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
@@ -5629,9 +5357,8 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
-#, fuzzy
msgid "Zoom Reset"
-msgstr "Kicsinyítés"
+msgstr "Nagyítás visszaállítása"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5659,7 +5386,7 @@ msgstr "Alt + Jobb Egérgomb: Mélységi lista választás"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Move Mode"
-msgstr "Mozgás Mód"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5668,9 +5395,8 @@ msgstr "Forgató mód"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Scale Mode"
-msgstr "Kiválasztó Mód"
+msgstr "Méretezési mód"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5690,32 +5416,26 @@ msgid "Pan Mode"
msgstr "Pásztázás Mód"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Ruler Mode"
-msgstr "Kiválasztó Mód"
+msgstr "Vonalzó mód"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Toggle smart snapping."
-msgstr "Illesztés be- és kikapcsolása"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Use Smart Snap"
-msgstr "Illesztés Használata"
+msgstr "Intelligens illesztés használata"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Toggle grid snapping."
-msgstr "Illesztés be- és kikapcsolása"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Use Grid Snap"
-msgstr "Illesztés Használata"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snapping Options"
msgstr "Illesztési beállítások"
@@ -5724,9 +5444,8 @@ msgid "Use Rotation Snap"
msgstr "Forgatási Illesztés Használata"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Use Scale Snap"
-msgstr "Illesztés Használata"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap Relative"
@@ -5737,7 +5456,6 @@ msgid "Use Pixel Snap"
msgstr "Pixelhez Illesztés"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Smart Snapping"
msgstr "Intelligens illesztés"
@@ -5747,34 +5465,28 @@ msgid "Configure Snap..."
msgstr "Illesztés Beállítása..."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Parent"
msgstr "Illesztés szülőhöz"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Node Anchor"
-msgstr "Illesztés Node horgonyhoz"
+msgstr "Illesztés node horgonyhoz"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Node Sides"
-msgstr "Illesztés Node oldalakhoz"
+msgstr "Illesztés node oldalakhoz"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Node Center"
-msgstr "Illesztés Node horgonyhoz"
+msgstr "Illesztés node középponthoz"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Other Nodes"
-msgstr "Illesztés más Node-okhoz"
+msgstr "Illesztés más node-okhoz"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Guides"
-msgstr "Illesztés vezetővonalakhoz"
+msgstr "Illesztés segédvonalakhoz"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5797,9 +5509,8 @@ msgid "Restores the object's children's ability to be selected."
msgstr "Újra kiválaszthatóvá teszi az objektum gyermekeit."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Skeleton Options"
-msgstr "Egyke"
+msgstr "Csontváz beállítások"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Bones"
@@ -5810,9 +5521,8 @@ msgid "Make Custom Bone(s) from Node(s)"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Clear Custom Bones"
-msgstr "Csontok Törlése"
+msgstr "Egyéni csontok törlése"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5820,13 +5530,12 @@ msgid "View"
msgstr "Nézet"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Always Show Grid"
-msgstr "Rács Megjelenítése"
+msgstr "Rács megjelenítése mindig"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Helpers"
-msgstr "Segítők Megjelenítése"
+msgstr "Segítők megjelenítése"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Rulers"
@@ -5846,11 +5555,11 @@ msgstr "Nézet Megjelenítése"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Group And Lock Icons"
-msgstr ""
+msgstr "Csoport Megjelenítése és ikonok zárolása"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
-msgstr "Kijelölés Középre"
+msgstr "Kijelölés középre"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Frame Selection"
@@ -5873,9 +5582,8 @@ msgid "Scale mask for inserting keys."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Insert keys (based on mask)."
-msgstr "Kulcs Beszúrása (Meglévő Nyomvonalakra)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5886,14 +5594,12 @@ msgid ""
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Auto Insert Key"
-msgstr "Animáció kulcs beillesztés"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Animation Key and Pose Options"
-msgstr "Animáció hossza (másodpercben)"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
@@ -5905,7 +5611,7 @@ msgstr "Póz Másolása"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Pose"
-msgstr "Póz Törlése"
+msgstr "Póz törlése"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
@@ -5916,9 +5622,8 @@ msgid "Divide grid step by 2"
msgstr "Rács Léptetés Mértékének Felezése"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Pan View"
-msgstr "Nézet"
+msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -5943,9 +5648,8 @@ msgid "Error instancing scene from %s"
msgstr "Hiba történt a Scene példányosításkor %s-ből"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Change Default Type"
-msgstr "Alapértelmezett típus megváltoztatása"
+msgstr "Alapértelmezett típus módosítása"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5956,9 +5660,8 @@ msgstr ""
"Fogd és vidd + Alt: Node típusának megváltoztatása"
#: editor/plugins/collision_polygon_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon3D"
-msgstr "Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Edit Poly"
@@ -5981,9 +5684,8 @@ msgstr "Kibocsátási Maszk Betöltése"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "Restart"
-msgstr "Újraindítás (mp):"
+msgstr "Újraindítás"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -6018,9 +5720,8 @@ msgstr ""
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Directed Border Pixels"
-msgstr "Könyvtárak és Fájlok:"
+msgstr ""
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -6030,12 +5731,12 @@ msgstr "Kinyerés Pixelből"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Colors"
-msgstr "Kibocsátási Színek"
+msgstr "Kibocsátási színek"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#, fuzzy
msgid "CPUParticles"
-msgstr "Részecskék"
+msgstr "CPU-részecskék"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -6053,7 +5754,6 @@ msgid "Flat 0"
msgstr "Lapos 0"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Flat 1"
msgstr "Lapos 1"
@@ -6082,22 +5782,18 @@ msgid "Load Curve Preset"
msgstr "Előre Beállított Görbe Betöltése"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Add Point"
msgstr "Pont hozzáadása"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove Point"
msgstr "Pont eltávolítása"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Left Linear"
msgstr "Bal lineáris"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Right Linear"
msgstr "Jobb lineáris"
@@ -6119,9 +5815,8 @@ msgid "Hold Shift to edit tangents individually"
msgstr "Tartsa lenyomva a Shift gombot az érintők egyenkénti szerkesztéséhez"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Right click to add point"
-msgstr "Jobb Kattintás: Pont Törlése"
+msgstr "Kattintson a jobb gombbal a pont hozzáadásához"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
@@ -6129,7 +5824,7 @@ msgstr "GI Szonda Besütése"
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Gradient Edited"
-msgstr ""
+msgstr "Színátmenet szerkesztve"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
@@ -6152,9 +5847,8 @@ msgid "Mesh is empty!"
msgstr "A háló üres!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Couldn't create a Trimesh collision shape."
-msgstr "Trimesh Ütközési Testvér Létrehozása"
+msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
@@ -6165,9 +5859,8 @@ msgid "This doesn't work on scene root!"
msgstr "Ez nem hajtható végre a gyökér Scene-en!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Trimesh Static Shape"
-msgstr "Trimesh Alakzat Létrehozása"
+msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Can't create a single convex collision shape for the scene root."
@@ -6178,23 +5871,20 @@ msgid "Couldn't create a single convex collision shape."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Single Convex Shape"
-msgstr "Konvex Alakzat Létrehozása"
+msgstr "Konvex alakzat létrehozása"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Can't create multiple convex collision shapes for the scene root."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Couldn't create any collision shapes."
-msgstr "Körvonalkészítés sikertelen!"
+msgstr "Nem sikerült ütközési alakzatokat létrehozni."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Multiple Convex Shapes"
-msgstr "Konvex Alakzat Létrehozása"
+msgstr "Több konvex alakzat létrehozása"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
@@ -6263,9 +5953,8 @@ msgid ""
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Single Convex Collision Sibling"
-msgstr "Konvex Ütközési Testvér Létrehozása"
+msgstr "Konvex ütközési testvér létrehozása"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6274,9 +5963,8 @@ msgid ""
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Create Multiple Convex Collision Siblings"
-msgstr "Konvex Ütközési Testvér Létrehozása"
+msgstr "Több konvex ütközési testvér létrehozása"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid ""
@@ -6325,16 +6013,16 @@ msgid "Remove item %d?"
msgstr "%d elem eltávolítása?"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid ""
"Update from existing scene?:\n"
"%s"
-msgstr "Frissítés Jelenetből"
+msgstr ""
+"Frissíti a meglévő jelenetből?:\n"
+"%s"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid "Mesh Library"
-msgstr "MeshLibrary-ra..."
+msgstr "MeshLibrary"
#: editor/plugins/mesh_library_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
@@ -6455,12 +6143,11 @@ msgstr "Navigációs Sokszög Létrehozása"
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
msgid "Convert to CPUParticles"
-msgstr "Konvertálás Nagybetűsre"
+msgstr "Konvertálás CPU-részecskékké"
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Generating Visibility Rect"
-msgstr "Láthatósági Téglalap Generálása"
+msgstr "Láthatósági téglalap generálása"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
@@ -6480,23 +6167,20 @@ msgid "The geometry's faces don't contain any area."
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "The geometry doesn't contain any faces."
-msgstr "A Node nem tartalmaz geometriát (oldalakat)."
+msgstr "A geometria nem tartalmaz oldalakat."
#: editor/plugins/particles_editor_plugin.cpp
msgid "\"%s\" doesn't inherit from Spatial."
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "\"%s\" doesn't contain geometry."
-msgstr "A Node nem tartalmaz geometriát."
+msgstr "A(z) \"%s\" nem tartalmaz geometriát."
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "\"%s\" doesn't contain face geometry."
-msgstr "A Node nem tartalmaz geometriát."
+msgstr "A(z) \"%s\" nem tartalmaz lapgeometriát."
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
@@ -6556,9 +6240,8 @@ msgid "Add Point to Curve"
msgstr "Pont Hozzáadása a Görbéhez"
#: editor/plugins/path_2d_editor_plugin.cpp
-#, fuzzy
msgid "Split Curve"
-msgstr "Görbe Lezárása"
+msgstr ""
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Point in Curve"
@@ -6588,9 +6271,8 @@ msgid "Click: Add Point"
msgstr "Kattintás: Pont Hozzáadása"
#: editor/plugins/path_2d_editor_plugin.cpp
-#, fuzzy
msgid "Left Click: Split Segment (in curve)"
-msgstr "Szakasz Felosztása (görbén)"
+msgstr ""
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -6669,9 +6351,8 @@ msgid "Split Segment (in curve)"
msgstr "Szakasz Felosztása (görbén)"
#: editor/plugins/physical_bone_plugin.cpp
-#, fuzzy
msgid "Move Joint"
-msgstr "Pont Mozgatása"
+msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid ""
@@ -6679,9 +6360,8 @@ msgid ""
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Sync Bones"
-msgstr "Csontok Mutatása"
+msgstr "Csontok szinkronizálása"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid ""
@@ -6700,51 +6380,44 @@ msgid ""
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon & UV"
-msgstr "Sokszög Létrehozása"
+msgstr "Sokszög és UV létrehozása"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Internal Vertex"
-msgstr "Új vízszintes vezetővonal létrehozása"
+msgstr "Belső csúcspont létrehozása"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Remove Internal Vertex"
-msgstr "Be-Vezérlő Pont Eltávolítása"
+msgstr "Belső csúcspont eltávolítása"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Invalid Polygon (need 3 different vertices)"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Add Custom Polygon"
-msgstr "Sokszög Szerkesztése"
+msgstr "Egyéni sokszög hozzáadása"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Remove Custom Polygon"
-msgstr "Sokszög és Pont Eltávolítása"
+msgstr "Egyéni sokszög eltávolítása"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Transform UV Map"
msgstr "UV Térkép Transzformálása"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Transform Polygon"
-msgstr "Sokszög Létrehozása"
+msgstr "Sokszög átalakítása"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Paint Bone Weights"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Open Polygon 2D UV editor."
-msgstr "2D UV Sokszög Szerkesztő"
+msgstr "2D UV sokszög szerkesztő megnyitása."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon 2D UV Editor"
@@ -6755,24 +6428,20 @@ msgid "UV"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Points"
-msgstr "Pont Mozgatása"
+msgstr "Pontok"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Polygons"
-msgstr "Sokszög -> UV"
+msgstr "Sokszögek"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Bones"
-msgstr "Csontok Létrehozása"
+msgstr "Csontok"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Move Points"
-msgstr "Pont Mozgatása"
+msgstr "Pontok mozgatása"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Ctrl: Rotate"
@@ -6833,9 +6502,8 @@ msgid "Clear UV"
msgstr "UV Törlése"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Grid Settings"
-msgstr "Szerkesztő Beállítások"
+msgstr "Rács beállításai"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Snap"
@@ -6854,34 +6522,29 @@ msgid "Show Grid"
msgstr "Rács Megjelenítése"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Configure Grid:"
-msgstr "Illesztés Beállítása"
+msgstr "Rács beállítása:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Grid Offset X:"
-msgstr "Rács Eltolás:"
+msgstr "Rács X eltolása:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Grid Offset Y:"
-msgstr "Rács Eltolás:"
+msgstr "Rács Y eltolása:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Grid Step X:"
-msgstr "Rács Léptetés:"
+msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Grid Step Y:"
-msgstr "Rács Léptetés:"
+msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
#, fuzzy
msgid "Sync Bones to Polygon"
-msgstr "Sokszög Skálázása"
+msgstr "Csontok szinkronizálása a sokszöggel"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ERROR: Couldn't load resource!"
@@ -6938,9 +6601,8 @@ msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
#: editor/plugins/root_motion_editor_plugin.cpp
-#, fuzzy
msgid "Path to AnimationPlayer is invalid"
-msgstr "Az animációs fa érvénytelen."
+msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Clear Recent Files"
@@ -6951,54 +6613,44 @@ msgid "Close and save changes?"
msgstr "Bezárja és menti a változásokat?"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error writing TextFile:"
-msgstr "Hiba TileSet mentésekor!"
+msgstr ""
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Could not load file at:"
-msgstr "Nem sikerült létrehozni a mappát."
+msgstr ""
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error saving file!"
-msgstr "Hiba TileSet mentésekor!"
+msgstr "Hiba a fájl mentésekor!"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error while saving theme."
-msgstr "HIba történt a téma mentésekor"
+msgstr "Hiba történt a téma mentésekor."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error Saving"
-msgstr "Hiba mentés közben"
+msgstr "Hiba a mentéskor"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error importing theme."
-msgstr "Hiba történt a téma importálásakor"
+msgstr "Hiba történt a téma importálásakor."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error Importing"
msgstr "Hiba importáláskor"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "New Text File..."
-msgstr "Új Mappa..."
+msgstr "Új szövegfájl..."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Open File"
-msgstr "Fálj Megnyitása"
+msgstr "Fájl megnyitása"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Save File As..."
-msgstr "Mentés Másként..."
+msgstr "Fájl mentése másként..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Can't obtain the script for running."
@@ -7034,9 +6686,8 @@ msgid "Save Theme As..."
msgstr "Téma Mentése Másként..."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "%s Class Reference"
-msgstr " Osztály Referencia"
+msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -7049,18 +6700,16 @@ msgid "Find Previous"
msgstr "Előző Keresése"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Filter scripts"
-msgstr "Objektumtulajdonságok."
+msgstr "Szkriptek szűrése"
#: editor/plugins/script_editor_plugin.cpp
msgid "Toggle alphabetical sorting of the method list."
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Filter methods"
-msgstr "Objektumtulajdonságok."
+msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Sort"
@@ -7091,14 +6740,12 @@ msgid "File"
msgstr "Fájl"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Open..."
-msgstr "Megnyit"
+msgstr "Megnyitás..."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Reopen Closed Script"
-msgstr "Szkript Futtatása"
+msgstr "Bezárt szkript újbóli megnyitása"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save All"
@@ -7113,9 +6760,8 @@ msgid "Copy Script Path"
msgstr "Szkript Útvonal Másolása"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "History Previous"
-msgstr "Előző Előzmény"
+msgstr "Előző előzmény"
#: editor/plugins/script_editor_plugin.cpp
msgid "History Next"
@@ -7127,9 +6773,8 @@ msgid "Theme"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Import Theme..."
-msgstr "Téma Importálása"
+msgstr "Téma importálása..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
@@ -7173,14 +6818,12 @@ msgid "Keep Debugger Open"
msgstr "Hibakereső Nyitva Tartása"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Debug with External Editor"
msgstr "Hibakeresés külső szerkesztővel"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Open Godot online documentation."
-msgstr "Godot online dokumentáció megnyitása"
+msgstr "Godot online dokumentáció megnyitása."
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the reference documentation."
@@ -7221,22 +6864,18 @@ msgid "Debugger"
msgstr "Hibakereső"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Search Results"
-msgstr "Keresés Súgóban"
+msgstr "Keresési eredmények"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Clear Recent Scripts"
-msgstr "Legutóbbi Jelenetek Törlése"
+msgstr "Legutóbbi szkriptek törlése"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Connections to method:"
-msgstr "Csatlakoztatás Node-hoz:"
+msgstr ""
#: editor/plugins/script_text_editor.cpp editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Source"
msgstr "Forrás"
@@ -7245,24 +6884,21 @@ msgid "Target"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid ""
"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'."
-msgstr "'%s' Lecsatlakoztatása '%s'-ról"
+msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Line"
-msgstr "Sor:"
+msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Function"
-msgstr "Ugrás Funkcióra..."
+msgstr "Ugrás függvényre"
#: editor/plugins/script_text_editor.cpp
msgid "Only resources from filesystem can be dropped."
@@ -7274,9 +6910,8 @@ msgid "Can't drop nodes because script '%s' is not used in this scene."
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Lookup Symbol"
-msgstr "Szimbólum Befejezése"
+msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Pick Color"
@@ -7313,9 +6948,8 @@ msgid "Bookmarks"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Breakpoints"
-msgstr "Pontok Törlése"
+msgstr "Töréspontok"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
@@ -7364,66 +6998,56 @@ msgid "Complete Symbol"
msgstr "Szimbólum Befejezése"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Evaluate Selection"
-msgstr "Kiválasztás átméretezés"
+msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
msgstr "Sorvégi Szóközök Lenyírása"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Convert Indent to Spaces"
-msgstr "Behúzások Átkonvertálása Szóközökre"
+msgstr "Behúzás átalakítása szóközökké"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Convert Indent to Tabs"
-msgstr "Behúzások Átkonvertálása Tabokra"
+msgstr "Behúzás átalakítása tabokra"
#: editor/plugins/script_text_editor.cpp
msgid "Auto Indent"
msgstr "Automatikus Behúzás"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Find in Files..."
-msgstr "Fájlok Szűrése..."
+msgstr "Keresés a fájlokban..."
#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Kontextusérzékeny Súgó"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Toggle Bookmark"
-msgstr "Töréspont Elhelyezése"
+msgstr "Könyvjelző be- és kikapcsolása"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Next Bookmark"
-msgstr "Ugrás Következő Töréspontra"
+msgstr "Ugrás a következő könyvjelzőre"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Previous Bookmark"
-msgstr "Ugrás Előző Töréspontra"
+msgstr "Ugrás az előző könyvjelzőre"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Remove All Bookmarks"
-msgstr "Összes Töréspont Eltávolítása"
+msgstr "Összes könyvjelző eltávolítása"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Function..."
-msgstr "Ugrás Funkcióra..."
+msgstr "Ugrás függvényre..."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Line..."
-msgstr "Ugrás Sorra..."
+msgstr "Ugrás sorra..."
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -7435,23 +7059,18 @@ msgid "Remove All Breakpoints"
msgstr "Összes Töréspont Eltávolítása"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Next Breakpoint"
-msgstr "Ugrás Következő Töréspontra"
+msgstr "Ugrás a következő töréspontra"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Previous Breakpoint"
-msgstr "Ugrás Előző Töréspontra"
+msgstr "Ugrás az előző töréspontra"
#: editor/plugins/shader_editor_plugin.cpp
-#, fuzzy
msgid ""
"This shader has been modified on on disk.\n"
"What action should be taken?"
msgstr ""
-"A alábbi fájlok újabbak a lemezen.\n"
-"Mit szeretne lépni?:"
#: editor/plugins/shader_editor_plugin.cpp
msgid "Shader"
@@ -7462,9 +7081,8 @@ msgid "This skeleton has no bones, create some children Bone2D nodes."
msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Rest Pose from Bones"
-msgstr "Kibocsátási Pontok Létrehozása A Mesh Alapján"
+msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Set Rest Pose to Bones"
@@ -7473,7 +7091,7 @@ msgstr ""
#: editor/plugins/skeleton_2d_editor_plugin.cpp
#, fuzzy
msgid "Skeleton2D"
-msgstr "Egyke"
+msgstr "Csontváz2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Make Rest Pose (From Bones)"
@@ -7484,23 +7102,20 @@ msgid "Set Bones to Rest Pose"
msgstr ""
#: editor/plugins/skeleton_editor_plugin.cpp
-#, fuzzy
msgid "Create physical bones"
-msgstr "Navigációs Háló Létrehozása"
+msgstr "Fizikai csontok létrehozása"
#: editor/plugins/skeleton_editor_plugin.cpp
-#, fuzzy
msgid "Skeleton"
-msgstr "Egyke"
+msgstr "Csontváz"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical skeleton"
msgstr ""
#: editor/plugins/skeleton_ik_editor_plugin.cpp
-#, fuzzy
msgid "Play IK"
-msgstr "Játék"
+msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orthogonal"
@@ -7691,14 +7306,12 @@ msgid "Audio Listener"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Enable Doppler"
-msgstr "Animáció hossz változtatás"
+msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Cinematic Preview"
-msgstr "Háló Előnézetek Létrehozása"
+msgstr "Filmszerű előnézet"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
@@ -7760,9 +7373,8 @@ msgid ""
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Nodes To Floor"
-msgstr "Rácshoz illesztés"
+msgstr "Node-ok illesztése a padlóhoz"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Couldn't find a solid floor to snap the selection to."
@@ -7833,9 +7445,8 @@ msgid "Transform"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Snap Object to Floor"
-msgstr "Rácshoz illesztés"
+msgstr "Objektum illesztése a padlóhoz"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog..."
@@ -7879,9 +7490,8 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Settings..."
-msgstr "Szerkesztő Beállítások"
+msgstr "Beállítások..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
@@ -7948,48 +7558,40 @@ msgid "Nameless gizmo"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create Mesh2D"
-msgstr "Körvonalháló Készítése"
+msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Mesh2D Preview"
-msgstr "Háló Előnézetek Létrehozása"
+msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon2D"
-msgstr "Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Polygon2D Preview"
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create CollisionPolygon2D"
-msgstr "Navigációs Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "CollisionPolygon2D Preview"
-msgstr "Navigációs Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create LightOccluder2D"
-msgstr "Árnyékoló Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "LightOccluder2D Preview"
-msgstr "Árnyékoló Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Sprite is empty!"
-msgstr "A háló üres!"
+msgstr "A Sprite üres!"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Can't convert a sprite using animation frames to mesh."
@@ -8000,36 +7602,32 @@ msgid "Invalid geometry, can't replace by mesh."
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Convert to Mesh2D"
-msgstr "Konvertálás Nagybetűsre"
+msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create polygon."
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Convert to Polygon2D"
-msgstr "Sokszög Mozgatása"
+msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create collision polygon."
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create CollisionPolygon2D Sibling"
-msgstr "Navigációs Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create light occluder."
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Create LightOccluder2D Sibling"
-msgstr "Árnyékoló Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite"
@@ -8048,19 +7646,16 @@ msgid "Grow (Pixels): "
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Update Preview"
-msgstr "Előnézet"
+msgstr "Előnézet frissítése"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Settings:"
-msgstr "Szerkesztő Beállítások"
+msgstr "Beállítások:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "No Frames Selected"
-msgstr "Kijelölés Keretezése"
+msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add %d Frame(s)"
@@ -8071,9 +7666,8 @@ msgid "Add Frame"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Unable to load images"
-msgstr "Nem sikerült betölteni az erőforrást."
+msgstr "Nem lehet betölteni a képeket"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
@@ -8100,22 +7694,19 @@ msgid "(empty)"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Move Frame"
-msgstr "Mozgás Mód"
+msgstr "Keret mozgatása"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Animations:"
-msgstr "Animáció"
+msgstr "Animációk:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "New Animation"
-msgstr "Animáció"
+msgstr "Új animáció"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8125,12 +7716,11 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
#, fuzzy
msgid "Animation Frames:"
-msgstr "Animáció Neve:"
+msgstr "Animációs képkockák:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Add a Texture from File"
-msgstr "Kinyerés Pixelből"
+msgstr "Textúra hozzáadása fájlból"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Frames from a Sprite Sheet"
@@ -8153,9 +7743,8 @@ msgid "Move (After)"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Select Frames"
-msgstr "Kiválasztó Mód"
+msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Horizontal:"
@@ -8166,9 +7755,8 @@ msgid "Vertical:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Select/Clear All Frames"
-msgstr "Összes Kijelölése"
+msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Create Frames from Sprite Sheet"
@@ -8185,7 +7773,7 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
#, fuzzy
msgid "Set Margin"
-msgstr "Fogantyú Beállítása"
+msgstr "Margó beállítása"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap Mode:"
@@ -8241,9 +7829,8 @@ msgid "Remove All"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Edit Theme"
-msgstr "Tagok"
+msgstr "Téma szerkesztése"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme editing menu."
@@ -8270,23 +7857,20 @@ msgid "Create From Current Editor Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Button"
-msgstr "Automatikus Lejátszás Váltása"
+msgstr "Váltógomb"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Disabled Button"
-msgstr "Tiltva"
+msgstr "Letiltott gomb"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Disabled Item"
-msgstr "Tiltva"
+msgstr "Letiltott elem"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Check Item"
@@ -8315,12 +7899,12 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Subitem 1"
-msgstr "%d elem"
+msgstr "Alelem 1"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Subitem 2"
-msgstr "%d elem"
+msgstr "Alelem 2"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Has"
@@ -8331,9 +7915,8 @@ msgid "Many"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Disabled LineEdit"
-msgstr "Tiltva"
+msgstr "Letiltott szerkesztősor"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Tab 1"
@@ -8348,9 +7931,8 @@ msgid "Tab 3"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editable Item"
-msgstr "Rádió Elem"
+msgstr "Szerkeszthető elem"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Subtree"
@@ -8367,7 +7949,7 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Icon"
-msgstr ""
+msgstr "Ikon"
#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Style"
@@ -8375,31 +7957,28 @@ msgstr "Stílus"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Font"
-msgstr ""
+msgstr "Betűtípus"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Color"
msgstr "Szín"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme File"
-msgstr "Fálj Megnyitása"
+msgstr "Témafájl"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Fix Invalid Tiles"
-msgstr "Érvénytelen név."
+msgstr "Érvénytelen csempék javítása"
#: editor/plugins/tile_map_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Cut Selection"
-msgstr "Kijelölés Középre"
+msgstr "Kijelölés kivágása"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint TileMap"
@@ -8407,7 +7986,7 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Line Draw"
-msgstr ""
+msgstr "Vonal rajzolás"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rectangle Paint"
@@ -8422,9 +8001,8 @@ msgid "Erase TileMap"
msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Find Tile"
-msgstr "Következő Keresése"
+msgstr "Csempe keresése"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Transpose"
@@ -8437,12 +8015,11 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
#, fuzzy
msgid "Enable Priority"
-msgstr "Szűrők Szerkesztése"
+msgstr "Prioritás engedélyezése"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Filter tiles"
-msgstr "Fájlok Szűrése..."
+msgstr "Csempék szűrése"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Give a TileSet resource to this TileMap to use its tiles."
@@ -8463,14 +8040,12 @@ msgid "Pick Tile"
msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Rotate Left"
-msgstr "Forgató mód"
+msgstr "Forgatás balra"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Rotate Right"
-msgstr "Sokszög Forgatása"
+msgstr "Forgatás jobbra"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Flip Horizontally"
@@ -8481,9 +8056,8 @@ msgid "Flip Vertically"
msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Clear Transform"
-msgstr "Animáció transzformáció változtatás"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Add Texture(s) to TileSet."
@@ -8492,11 +8066,11 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
msgid "Remove selected Texture from TileSet."
-msgstr "Jelenlegi tétel eltávolítása"
+msgstr "Távolítsa el a kijelölt textúrát a csempekészletből."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
-msgstr ""
+msgstr "Létrehozás jelenetből"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from Scene"
@@ -8507,27 +8081,24 @@ msgid "New Single Tile"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "New Autotile"
-msgstr "Fájlok Megtekintése"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "New Atlas"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Next Coordinate"
-msgstr "Következő Szkript"
+msgstr "Következő koordináta"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Select the next shape, subtile, or Tile."
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Previous Coordinate"
-msgstr "Előző Szkript"
+msgstr "Előző koordináta"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Select the previous shape, subtile, or Tile."
@@ -8536,101 +8107,84 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
msgid "Region"
-msgstr "Forgató mód"
+msgstr "Régió"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Collision"
-msgstr "Animáció Node"
+msgstr "Ütközés"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Occlusion"
-msgstr "Sokszög Szerkesztése"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Navigation"
-msgstr "Navigációs Háló Létrehozása"
+msgstr "Navigáció"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
msgid "Bitmask"
-msgstr "Forgató mód"
+msgstr "Bitmaszk"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Priority"
-msgstr "Projekt Exportálása"
+msgstr "Prioritás"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Z Index"
-msgstr "Pásztázás Mód"
+msgstr "Z index"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Region Mode"
-msgstr "Forgató mód"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Collision Mode"
-msgstr "Animáció Node"
+msgstr "Ütközési mód"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Occlusion Mode"
-msgstr "Sokszög Szerkesztése"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Navigation Mode"
-msgstr "Navigációs Háló Létrehozása"
+msgstr "Navigációs mód"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Bitmask Mode"
-msgstr "Forgató mód"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Priority Mode"
-msgstr "Projekt Exportálása"
+msgstr "Prioritás mód"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Icon Mode"
-msgstr "Pásztázás Mód"
+msgstr "Ikon mód"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Z Index Mode"
-msgstr "Pásztázás Mód"
+msgstr "Z index mód"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Copy bitmask."
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Paste bitmask."
-msgstr "Animáció Beillesztése"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Erase bitmask."
-msgstr "Jobb Egérgomb: Pont Törlése."
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create a new rectangle."
-msgstr "Új %s Létrehozása"
+msgstr "Új téglalap létrehozása."
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create a new polygon."
-msgstr "Új sokszög létrehozása a semmiből."
+msgstr "Új sokszög létrehozása."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Keep polygon inside region Rect."
@@ -8650,9 +8204,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove selected texture? This will remove all tiles which use it."
-msgstr "Jelenlegi tétel eltávolítása"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "You haven't selected a texture to remove."
@@ -8667,9 +8220,8 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove Texture"
-msgstr "Sablon Eltávolítása"
+msgstr "Textúra eltávolítása"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "%s file(s) were not added because was already on the list."
@@ -8682,9 +8234,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete selected Rect."
-msgstr "Törli a kiválasztott fájlokat?"
+msgstr "A kijelölt téglalap törlése."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -8693,9 +8244,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete polygon."
-msgstr "Pontok Törlése"
+msgstr "Sokszög törlése."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -8729,111 +8279,92 @@ msgid "Set Tile Region"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create Tile"
-msgstr "Mappa Létrehozása"
+msgstr "Csempe létrehozása"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Set Tile Icon"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Tile Bitmask"
-msgstr "Szűrők Szerkesztése"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Collision Polygon"
-msgstr "Létező sokszög szerkesztése:"
+msgstr "Ütközési sokszög szerkesztése"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Occlusion Polygon"
-msgstr "Sokszög Szerkesztése"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Navigation Polygon"
-msgstr "Navigációs Sokszög Létrehozása"
+msgstr "Navigációs sokszög szerkesztése"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Paste Tile Bitmask"
-msgstr "Animáció Beillesztése"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Clear Tile Bitmask"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Make Polygon Concave"
-msgstr "Sokszög Mozgatása"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Make Polygon Convex"
-msgstr "Sokszög Mozgatása"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove Tile"
-msgstr "Sablon Eltávolítása"
+msgstr "Csempe eltávolítása"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove Collision Polygon"
-msgstr "Sokszög és Pont Eltávolítása"
+msgstr "Ütközési sokszög eltávolítása"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove Occlusion Polygon"
-msgstr "Árnyékoló Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove Navigation Polygon"
-msgstr "Navigációs Sokszög Létrehozása"
+msgstr "Navigációs sokszög eltávolítása"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Tile Priority"
-msgstr "Szűrők Szerkesztése"
+msgstr "Csempeprioritás szerkesztése"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Edit Tile Z Index"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Make Convex"
-msgstr "Sokszög Mozgatása"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Make Concave"
-msgstr "Sokszög Mozgatása"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create Collision Polygon"
-msgstr "Navigációs Sokszög Létrehozása"
+msgstr "Ütközési sokszög létrehozása"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create Occlusion Polygon"
-msgstr "Árnyékoló Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "This property can't be changed."
-msgstr "Ezt a műveletet nem lehet végrehajtani egy Scene nélkül."
+msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "TileSet"
-msgstr "TileSet-re..."
+msgstr "Csempekészlet"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "No VCS addons are available."
@@ -8844,18 +8375,16 @@ msgid "Error"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "No commit message was provided"
-msgstr "Nincs név megadva"
+msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
msgid "No files added to stage"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit"
-msgstr "Közösség"
+msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
msgid "VCS Addon is not initialized"
@@ -8868,59 +8397,51 @@ msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
msgid "Initialize"
-msgstr "Szó Eleji Nagybetű"
+msgstr "Inicializálás"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Staging area"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Detect new changes"
-msgstr "Új %s Létrehozása"
+msgstr "Új változások észlelése"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Changes"
-msgstr "Változtatás"
+msgstr "Változások"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Modified"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Renamed"
-msgstr "Átnevezés"
+msgstr "Átnevezve"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Deleted"
-msgstr "Törlés"
+msgstr "Törölve"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Typechange"
-msgstr "Változtatás"
+msgstr "Típusmódosítás"
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Stage Selected"
-msgstr "Kiválasztás átméretezés"
+msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Stage All"
-msgstr "Összes Mentése"
+msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Add a commit message"
msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Commit Changes"
-msgstr "Szkript Változtatások Szinkronizálása"
+msgstr ""
#: editor/plugins/version_control_editor_plugin.cpp
#: modules/gdnative/gdnative_library_singleton_editor.cpp
@@ -8944,19 +8465,16 @@ msgid "(GLES3 only)"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Add Output"
-msgstr "Bemenet Hozzáadása"
+msgstr "Kimenet hozzáadása"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar"
-msgstr "Skála:"
+msgstr "Skalár"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Vector"
-msgstr "Megfigyelő"
+msgstr "Vektor"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Boolean"
@@ -8967,81 +8485,70 @@ msgid "Sampler"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Add input port"
-msgstr "Bemenet Hozzáadása"
+msgstr "Bemeneti port hozzáadása"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add output port"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Change input port type"
-msgstr "Alapértelmezett típus megváltoztatása"
+msgstr "A bemeneti port típusának módosítása"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Change output port type"
-msgstr "Alapértelmezett típus megváltoztatása"
+msgstr "Kimeneti port típusának módosítása"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Change input port name"
-msgstr "Animáció Nevének Megváltoztatása:"
+msgstr "A bemeneti port nevének módosítása"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Change output port name"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Remove input port"
-msgstr "Pont eltávolítása"
+msgstr "Bemeneti port eltávolítása"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Remove output port"
-msgstr "Pont eltávolítása"
+msgstr "Kimeneti port eltávolítása"
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Set expression"
-msgstr "Jelenlegi Verzió:"
+msgstr "Kifejezés beállítása"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Resize VisualShader node"
-msgstr "Árnyaló"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set Uniform Name"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Set Input Default Port"
-msgstr "Beállítás Alapértelmezettként '%s'-hez"
+msgstr "Alapértelmezett bemeneti port beállítása"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Add Node to Visual Shader"
-msgstr "Árnyaló"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Duplicate Nodes"
-msgstr "Animáció kulcsok megkettőzése"
+msgstr "Node-ok duplikálása"
#: editor/plugins/visual_shader_editor_plugin.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste Nodes"
-msgstr ""
+msgstr "Node-ok beillesztése"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Delete Nodes"
-msgstr "Node létrehozás"
+msgstr "Node-ok törlése"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Input Type Changed"
@@ -9060,28 +8567,25 @@ msgid "Light"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Show resulted shader code."
-msgstr "Node létrehozás"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Create Shader Node"
-msgstr "Node létrehozás"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Color function."
-msgstr "Ugrás Funkcióra..."
+msgstr "Szín függvény."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color operator."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Grayscale function."
-msgstr "Funkció Készítése"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts HSV vector to RGB equivalent."
@@ -9092,9 +8596,8 @@ msgid "Converts RGB vector to HSV equivalent."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Sepia function."
-msgstr "Funkció Készítése"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Burn operator."
@@ -9105,18 +8608,16 @@ msgid "Darken operator."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Difference operator."
-msgstr "Csak A Különbségek"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Dodge operator."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "HardLight operator."
-msgstr "Skaláris kezelő változtatás"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Lighten operator."
@@ -9137,12 +8638,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Color constant."
-msgstr "Állandó"
+msgstr "Színállandó."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color uniform."
-msgstr "Animáció transzformáció változtatás"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the boolean result of the %s comparison between two parameters."
@@ -9213,7 +8713,7 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Boolean constant."
-msgstr "Vec állandó változtatás"
+msgstr "Logikai állandó."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Boolean uniform."
@@ -9226,7 +8726,7 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Input parameter."
-msgstr "Illesztés szülőhöz"
+msgstr "Bemeneti paraméter."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for vertex and fragment shader modes."
@@ -9255,12 +8755,12 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Scalar function."
-msgstr "Skalár-függvény változtatás"
+msgstr "Skalárfüggvény."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Scalar operator."
-msgstr "Skaláris kezelő változtatás"
+msgstr "Skalár operátor."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "E constant (2.718282). Represents the base of the natural logarithm."
@@ -9487,12 +8987,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Scalar constant."
-msgstr "Skaláris állandó változtatás"
+msgstr "Skaláris állandó."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar uniform."
-msgstr "Egységes-skalár változtatás"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Perform the cubic texture lookup."
@@ -9515,9 +9014,8 @@ msgid "2D texture uniform lookup with triplanar."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform function."
-msgstr "Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9559,24 +9057,22 @@ msgid "Multiplies vector by transform."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform constant."
-msgstr "Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform uniform."
-msgstr "Sokszög Létrehozása"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vector function."
-msgstr "Ugrás Funkcióra..."
+msgstr "Vektor függvény."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vector operator."
-msgstr "Vec kezelő változtatás"
+msgstr "Vektor operátor."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Composes vector from three scalars."
@@ -9695,12 +9191,11 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
msgid "Vector constant."
-msgstr "Vec állandó változtatás"
+msgstr "Vektor állandó."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Vector uniform."
-msgstr "Egységes-vektor változtatás"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9768,19 +9263,16 @@ msgid ""
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "VisualShader"
-msgstr "Árnyaló"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Edit Visual Property"
-msgstr "Szűrők Szerkesztése"
+msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Visual Shader Mode Changed"
-msgstr "Árnyaló"
+msgstr ""
#: editor/project_export.cpp
msgid "Runnable"
@@ -9789,7 +9281,7 @@ msgstr ""
#: editor/project_export.cpp
#, fuzzy
msgid "Add initial export..."
-msgstr "Bemenet Hozzáadása"
+msgstr "Kezdeti exportálás hozzáadása..."
#: editor/project_export.cpp
msgid "Add previous patches..."
@@ -9821,9 +9313,8 @@ msgid "Release"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
msgid "Exporting All"
-msgstr "Exportálás"
+msgstr "Összes exportálása"
#: editor/project_export.cpp
msgid "The given export path doesn't exist:"
@@ -9850,7 +9341,7 @@ msgstr ""
#: editor/project_export.cpp
#, fuzzy
msgid "Export Path"
-msgstr "Projekt Exportálása"
+msgstr "Exportálási útvonal"
#: editor/project_export.cpp
msgid "Resources"
@@ -9897,9 +9388,8 @@ msgid "Make Patch"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
msgid "Pack File"
-msgstr " Fájlok"
+msgstr "Csomagfájl"
#: editor/project_export.cpp
msgid "Features"
@@ -9914,14 +9404,13 @@ msgid "Feature List:"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
msgid "Script"
-msgstr "Szkript Futtatása"
+msgstr "Szkript"
#: editor/project_export.cpp
#, fuzzy
msgid "Script Export Mode:"
-msgstr "Projekt Exportálása"
+msgstr "Szkript exportálás módja:"
#: editor/project_export.cpp
msgid "Text"
@@ -9952,19 +9441,16 @@ msgid "Export Project"
msgstr "Projekt Exportálása"
#: editor/project_export.cpp
-#, fuzzy
msgid "Export mode?"
-msgstr "Projekt Exportálása"
+msgstr "Exportálási mód?"
#: editor/project_export.cpp
-#, fuzzy
msgid "Export All"
-msgstr "Exportálás"
+msgstr "Összes exportálása"
#: editor/project_export.cpp editor/project_manager.cpp
-#, fuzzy
msgid "ZIP File"
-msgstr " Fájlok"
+msgstr "ZIP fájl"
#: editor/project_export.cpp
msgid "Godot Game Pack"
@@ -9983,14 +9469,13 @@ msgid "Export With Debug"
msgstr ""
#: editor/project_manager.cpp
-#, fuzzy
msgid "The path specified doesn't exist."
-msgstr "A fájl nem létezik."
+msgstr "A megadott útvonal nem létezik."
#: editor/project_manager.cpp
#, fuzzy
msgid "Error opening package file (it's not in ZIP format)."
-msgstr "Hiba a csomagfájl megnyitása során, nem zip formátumú."
+msgstr "Hiba a csomagfájl megnyitása során (az nem ZIP formátumú)."
#: editor/project_manager.cpp
msgid ""
@@ -10011,7 +9496,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "New Game Project"
-msgstr ""
+msgstr "Új játék projekt"
#: editor/project_manager.cpp
msgid "Imported Project"
@@ -10053,7 +9538,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Rename Project"
-msgstr ""
+msgstr "Projekt átnevezése"
#: editor/project_manager.cpp
msgid "Import Existing Project"
@@ -10081,7 +9566,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Project Name:"
-msgstr ""
+msgstr "Projekt neve:"
#: editor/project_manager.cpp
msgid "Project Path:"
@@ -10125,12 +9610,11 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Unnamed Project"
-msgstr ""
+msgstr "Névtelen projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Missing Project"
-msgstr "Meglévő Projekt Importálása"
+msgstr "Hiányzó projekt"
#: editor/project_manager.cpp
msgid "Error: Project is missing on the filesystem."
@@ -10139,11 +9623,12 @@ msgstr ""
#: editor/project_manager.cpp
#, fuzzy
msgid "Can't open project at '%s'."
-msgstr "'%s' nem nyitható meg."
+msgstr "A projekt nem nyitható meg a(z) %s helyen."
#: editor/project_manager.cpp
+#, fuzzy
msgid "Are you sure to open more than one project?"
-msgstr ""
+msgstr "Biztos, hogy egynél több projektet nyit meg?"
#: editor/project_manager.cpp
msgid ""
@@ -10177,15 +9662,11 @@ msgid ""
msgstr ""
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"Can't run project: no main scene defined.\n"
"Please edit the project and set the main scene in the Project Settings under "
"the \"Application\" category."
msgstr ""
-"Nincs meghatározva főjelenet, kiválaszt most egyet?\n"
-"Ezt megváltoztathatja később a \"Projekt Beállításokban\" az \"Alkalmazás\" "
-"kategóriában."
#: editor/project_manager.cpp
msgid ""
@@ -10227,14 +9708,14 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
-msgstr ""
+msgstr "Projektkezelő"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Projects"
-msgstr "Projekt"
+msgstr "Projektek"
#: editor/project_manager.cpp
msgid "Last Modified"
@@ -10242,32 +9723,32 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Scan"
-msgstr ""
+msgstr "Keresés"
#: editor/project_manager.cpp
+#, fuzzy
msgid "Select a Folder to Scan"
-msgstr ""
+msgstr "Válasszon egy beolvasandó mappát"
#: editor/project_manager.cpp
msgid "New Project"
-msgstr ""
+msgstr "Új projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Missing"
-msgstr "Pont eltávolítása"
+msgstr "Hiányzó eltávolítása"
#: editor/project_manager.cpp
msgid "Templates"
-msgstr ""
+msgstr "Sablonok"
#: editor/project_manager.cpp
msgid "Restart Now"
-msgstr ""
+msgstr "Újraindítás most"
#: editor/project_manager.cpp
msgid "Can't run project"
-msgstr ""
+msgstr "Nem lehet futtatni a projektet"
#: editor/project_manager.cpp
msgid ""
@@ -10284,7 +9765,7 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Key "
-msgstr ""
+msgstr "Kulcs "
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -10296,7 +9777,7 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Mouse Button"
-msgstr ""
+msgstr "Egérgomb"
#: editor/project_settings_editor.cpp
msgid ""
@@ -10305,18 +9786,16 @@ msgid ""
msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "An action with the name '%s' already exists."
-msgstr "HIBA: Animáció név már létezik!"
+msgstr ""
#: editor/project_settings_editor.cpp
msgid "Rename Input Action Event"
msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Change Action deadzone"
-msgstr "Animáció Nevének Megváltoztatása:"
+msgstr ""
#: editor/project_settings_editor.cpp
msgid "Add Input Action Event"
@@ -10324,7 +9803,7 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "All Devices"
-msgstr ""
+msgstr "Minden eszköz"
#: editor/project_settings_editor.cpp
msgid "Device"
@@ -10332,31 +9811,32 @@ msgstr "Eszköz"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
-msgstr ""
+msgstr "Nyomj meg egy gombot..."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Mouse Button Index:"
-msgstr ""
+msgstr "Egérgomb index:"
#: editor/project_settings_editor.cpp
msgid "Left Button"
-msgstr ""
+msgstr "Bal gomb"
#: editor/project_settings_editor.cpp
msgid "Right Button"
-msgstr ""
+msgstr "Jobb gomb"
#: editor/project_settings_editor.cpp
msgid "Middle Button"
-msgstr ""
+msgstr "Középső gomb"
#: editor/project_settings_editor.cpp
msgid "Wheel Up Button"
-msgstr ""
+msgstr "Felfelé görgetés gomb"
#: editor/project_settings_editor.cpp
msgid "Wheel Down Button"
-msgstr ""
+msgstr "Lefelé görgetés gomb"
#: editor/project_settings_editor.cpp
msgid "Wheel Left Button"
@@ -10415,12 +9895,13 @@ msgid "Middle Button."
msgstr "Középső Egérgomb."
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Wheel Up."
-msgstr ""
+msgstr "Felfelé görgetés."
#: editor/project_settings_editor.cpp
msgid "Wheel Down."
-msgstr ""
+msgstr "Lefelé görgetés."
#: editor/project_settings_editor.cpp
msgid "Add Global Property"
@@ -10454,16 +9935,15 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Error saving settings."
-msgstr ""
+msgstr "Hiba a beállítások mentésekor."
#: editor/project_settings_editor.cpp
msgid "Settings saved OK."
-msgstr ""
+msgstr "A beállítások sikeresen elmentve."
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Moved Input Action Event"
-msgstr "Pont Mozgatása a Görbén"
+msgstr ""
#: editor/project_settings_editor.cpp
msgid "Override for Feature"
@@ -10471,11 +9951,11 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Add Translation"
-msgstr ""
+msgstr "Fordítás hozzáadása"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
-msgstr ""
+msgstr "Fordítás eltávolítása"
#: editor/project_settings_editor.cpp
msgid "Add Remapped Path"
@@ -10530,9 +10010,8 @@ msgid "Action:"
msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Action"
-msgstr "Mozgási Művelet"
+msgstr "Művelet"
#: editor/project_settings_editor.cpp
msgid "Deadzone"
@@ -10540,23 +10019,24 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Device:"
-msgstr ""
+msgstr "Eszköz:"
#: editor/project_settings_editor.cpp
msgid "Index:"
-msgstr ""
+msgstr "Index:"
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Localization"
-msgstr ""
+msgstr "Lokalizáció"
#: editor/project_settings_editor.cpp
msgid "Translations"
-msgstr ""
+msgstr "Fordítások"
#: editor/project_settings_editor.cpp
msgid "Translations:"
-msgstr ""
+msgstr "Fordítások:"
#: editor/project_settings_editor.cpp
msgid "Remaps"
@@ -10579,14 +10059,12 @@ msgid "Locales Filter"
msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Show All Locales"
-msgstr "Csontok Mutatása"
+msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Show Selected Locales Only"
-msgstr "Csak Kiválsztás"
+msgstr ""
#: editor/project_settings_editor.cpp
msgid "Filter mode:"
@@ -10622,11 +10100,11 @@ msgstr ""
#: editor/property_editor.cpp
msgid "File..."
-msgstr ""
+msgstr "Fájl..."
#: editor/property_editor.cpp
msgid "Dir..."
-msgstr ""
+msgstr "Könyvtár..."
#: editor/property_editor.cpp
msgid "Assign"
@@ -10661,55 +10139,53 @@ msgid "Select Method"
msgstr ""
#: editor/rename_dialog.cpp editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Batch Rename"
-msgstr "Átnevezés"
+msgstr "Csoportos átnevezés"
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Csere: "
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Use Regular Expressions"
-msgstr "Jelenlegi Verzió:"
+msgstr "Reguláris kifejezés használata"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Advanced Options"
-msgstr "Illesztési beállítások"
+msgstr "Haladó beállítások"
#: editor/rename_dialog.cpp
msgid "Substitute"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Node name"
-msgstr "Node neve:"
+msgstr "Node neve"
#: editor/rename_dialog.cpp
msgid "Node's parent name, if available"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Node type"
-msgstr "Node neve:"
+msgstr "Node típusa"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Current scene name"
-msgstr "Még nem mentette az aktuális jelenetet. Megnyitja mindenképp?"
+msgstr "Jelenlegi jelenet neve"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Root node name"
-msgstr "Átnevezés"
+msgstr ""
#: editor/rename_dialog.cpp
msgid ""
@@ -10722,7 +10198,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10730,9 +10206,8 @@ msgid "Initial value for the counter"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Step"
-msgstr "Lépés (mp):"
+msgstr "Lépés"
#: editor/rename_dialog.cpp
msgid "Amount by which counter is incremented for each node"
@@ -10769,28 +10244,26 @@ msgid "Case"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "To Lowercase"
-msgstr "Mind Kisbetű"
+msgstr "Kisbetűssé"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "To Uppercase"
-msgstr "Mind Nagybetű"
+msgstr "Nagybetűssé"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Reset"
-msgstr "Nagyítás Visszaállítása"
+msgstr "Visszaállítás"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
-msgstr ""
+#, fuzzy
+msgid "Regular Expression Error:"
+msgstr "Reguláris kifejezés használata"
#: editor/rename_dialog.cpp
#, fuzzy
msgid "At character %s"
-msgstr "Érvényes karakterek:"
+msgstr "A(z) %s karakternél"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent Node"
@@ -10855,9 +10328,8 @@ msgid "Instance Child Scene"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach Script"
-msgstr "Szkript Létrehozása"
+msgstr "Szkript leválasztása"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10888,14 +10360,16 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Make node as Root"
-msgstr "Scene mentés"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete %d nodes?"
-msgstr "Node létrehozás"
+msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
@@ -10906,9 +10380,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "Node létrehozás"
+msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -10935,38 +10408,32 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Make Local"
-msgstr "Csontok Létrehozása"
+msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "New Scene Root"
-msgstr "Scene mentés"
+msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Create Root Node:"
-msgstr "Node létrehozás"
+msgstr "Gyökér node létrehozása:"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "2D Scene"
-msgstr "Jelenet"
+msgstr "2D jelenet"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "3D Scene"
-msgstr "Jelenet"
+msgstr "3D jelenet"
#: editor/scene_tree_dock.cpp
msgid "User Interface"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Other Node"
-msgstr "Node létrehozás"
+msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes from a foreign scene!"
@@ -11019,9 +10486,8 @@ msgid "Load As Placeholder"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Open Documentation"
-msgstr "Godot online dokumentáció megnyitása"
+msgstr "Dokumentáció megnyitása"
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11035,23 +10501,20 @@ msgid "Add Child Node"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Expand/Collapse All"
-msgstr "Összes összecsukása"
+msgstr "Az összes kinyitása/becsukása"
#: editor/scene_tree_dock.cpp
msgid "Change Type"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Reparent to New Node"
-msgstr "Új %s Létrehozása"
+msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Make Scene Root"
-msgstr "Scene mentés"
+msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -11070,9 +10533,8 @@ msgid "Delete (No Confirm)"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Add/Create a New Node."
-msgstr "Új %s Létrehozása"
+msgstr ""
#: editor/scene_tree_dock.cpp
msgid ""
@@ -11085,9 +10547,8 @@ msgid "Attach a new or existing script to the selected node."
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach the script from the selected node."
-msgstr "Kiválasztott Scene(k) példányosítása a kiválasztott Node gyermekeként."
+msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -11102,24 +10563,22 @@ msgid "Clear Inheritance? (No Undo!)"
msgstr ""
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Toggle Visible"
-msgstr "Rejtett Fájlok Megjelenítése"
+msgstr ""
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Unlock Node"
-msgstr "Egyszeri Node"
+msgstr "Node feloldása"
#: editor/scene_tree_editor.cpp
#, fuzzy
msgid "Button Group"
-msgstr "Hozzáadás Csoporthoz"
+msgstr "Gombcsoport"
#: editor/scene_tree_editor.cpp
#, fuzzy
msgid "(Connecting From)"
-msgstr "Kapcsolathiba"
+msgstr "(Csatlakozás innen)"
#: editor/scene_tree_editor.cpp
msgid "Node configuration warning:"
@@ -11144,9 +10603,8 @@ msgid ""
msgstr ""
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Open Script:"
-msgstr "Szkript Futtatása"
+msgstr "Szkript megnyitása:"
#: editor/scene_tree_editor.cpp
msgid ""
@@ -11191,38 +10649,33 @@ msgid "Select a Node"
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Path is empty."
-msgstr "A háló üres!"
+msgstr "Az útvonal üres."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Filename is empty."
-msgstr "A háló üres!"
+msgstr "A fájlnév üres."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Path is not local."
-msgstr "Az út nem vezeti a csomópontot!"
+msgstr "Az útvonal nem helyi."
#: editor/script_create_dialog.cpp
#, fuzzy
msgid "Invalid base path."
-msgstr "Érvénytelen Elérési Út."
+msgstr "Érvénytelen alapútvonal."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "A directory with the same name exists."
-msgstr "Egy fájl vagy mappa már létezik a megadott névvel."
+msgstr "Létezik ilyen nevű könyvtár."
#: editor/script_create_dialog.cpp
msgid "File does not exist."
msgstr "A fájl nem létezik."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid extension."
-msgstr "Használjon érvényes kiterjesztést."
+msgstr "Érvénytelen kiterjesztés."
#: editor/script_create_dialog.cpp
msgid "Wrong extension chosen."
@@ -11249,61 +10702,52 @@ msgid "N/A"
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Open Script / Choose Location"
-msgstr "Szkript Szerkesztő Megnyitása"
+msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Open Script"
-msgstr "Szkript Futtatása"
+msgstr "Szkript megnyitása"
#: editor/script_create_dialog.cpp
msgid "File exists, it will be reused."
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid path."
-msgstr "Érvénytelen Elérési Út."
+msgstr "Érvénytelen útvonal."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid class name."
-msgstr "Érvénytelen név."
+msgstr "Érvénytelen osztálynév."
#: editor/script_create_dialog.cpp
msgid "Invalid inherited parent name or path."
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Script path/name is valid."
-msgstr "Az animációs fa érvényes."
+msgstr "A szkript útvonala/neve érvényes."
#: editor/script_create_dialog.cpp
msgid "Allowed: a-z, A-Z, 0-9, _ and ."
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Built-in script (into scene file)."
-msgstr "Műveletek Scene fájlokkal."
+msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Will create a new script file."
-msgstr "Új %s Létrehozása"
+msgstr "Létrehoz egy új szkriptfájlt."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Will load an existing script file."
-msgstr "Meglévő Busz Elrendezés betöltése."
+msgstr "Egy meglévő szkriptfájlt tölt be."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Script file already exists."
-msgstr "Már létezik '%s' AutoLoad!"
+msgstr "A szkriptfájl már létezik."
#: editor/script_create_dialog.cpp
msgid ""
@@ -11312,19 +10756,16 @@ msgid ""
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Class Name:"
-msgstr "Osztály:"
+msgstr "Osztálynév:"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Template:"
-msgstr "Sablon Eltávolítása"
+msgstr "Sablon:"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Built-in Script:"
-msgstr "Szkript Futtatása"
+msgstr "Beépített szkript:"
#: editor/script_create_dialog.cpp
msgid "Attach Node Script"
@@ -11343,34 +10784,28 @@ msgid "Warning:"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Error:"
-msgstr "Hiba!"
+msgstr "Hiba:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Error"
-msgstr "Hiba Másolása"
+msgstr "C++ hiba"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Error:"
-msgstr "Hiba Másolása"
+msgstr "C++ hiba:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Source"
-msgstr "Forrás"
+msgstr "C++ forrás"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Source:"
-msgstr "Forrás"
+msgstr "Forrás:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Source:"
-msgstr "Forrás"
+msgstr "C++ forrás:"
#: editor/script_editor_debugger.cpp
msgid "Stack Trace"
@@ -11381,9 +10816,8 @@ msgid "Errors"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Child process connected."
-msgstr "Kapcsolat bontva"
+msgstr "Gyermekfolyamat csatlakoztatva."
#: editor/script_editor_debugger.cpp
msgid "Copy Error"
@@ -11394,9 +10828,8 @@ msgid "Video RAM"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Skip Breakpoints"
-msgstr "Pontok Törlése"
+msgstr "Töréspontok kihagyása"
#: editor/script_editor_debugger.cpp
msgid "Inspect Previous Instance"
@@ -11415,9 +10848,8 @@ msgid "Profiler"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Network Profiler"
-msgstr "Projekt Exportálása"
+msgstr "Hálózati profilkészítő"
#: editor/script_editor_debugger.cpp
msgid "Monitor"
@@ -11444,9 +10876,8 @@ msgid "Total:"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Export list to a CSV file"
-msgstr "Projekt Exportálása"
+msgstr ""
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
@@ -11489,18 +10920,16 @@ msgid "Export measures as CSV"
msgstr ""
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Erase Shortcut"
-msgstr "Lassan Ki"
+msgstr ""
#: editor/settings_config_dialog.cpp
msgid "Restore Shortcut"
msgstr ""
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Change Shortcut"
-msgstr "Horgonyok Módosítása"
+msgstr ""
#: editor/settings_config_dialog.cpp
msgid "Editor Settings"
@@ -11571,19 +11000,16 @@ msgid "Change Ray Shape Length"
msgstr ""
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Radius"
-msgstr "Keverési Idő Módosítása"
+msgstr ""
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Height"
-msgstr "Keverési Idő Módosítása"
+msgstr ""
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Torus Inner Radius"
-msgstr "Horgonyok és Margók Módosítása"
+msgstr ""
#: modules/csg/csg_gizmos.cpp
msgid "Change Torus Outer Radius"
@@ -11630,9 +11056,8 @@ msgid "Enabled GDNative Singleton"
msgstr ""
#: modules/gdnative/gdnative_library_singleton_editor.cpp
-#, fuzzy
msgid "Disabled GDNative Singleton"
-msgstr "Frissítési Forgó Kikapcsolása"
+msgstr ""
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
@@ -11711,14 +11136,12 @@ msgid "GridMap Delete Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Fill Selection"
-msgstr "Minden kiválasztás"
+msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Paste Selection"
-msgstr "Minden kiválasztás"
+msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Paint"
@@ -11785,18 +11208,16 @@ msgid "Cursor Clear Rotation"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Paste Selects"
-msgstr "Minden kiválasztás"
+msgstr "Kijelölés beillesztése"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clear Selection"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Fill Selection"
-msgstr "Minden kiválasztás"
+msgstr "Kijelölés kitöltése"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Settings"
@@ -11807,9 +11228,8 @@ msgid "Pick Distance:"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Filter meshes"
-msgstr "Objektumtulajdonságok."
+msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
@@ -11940,46 +11360,40 @@ msgid "Set Variable Type"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Input Port"
-msgstr "Bemenet Hozzáadása"
+msgstr "Bemeneti port hozzáadása"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Output Port"
-msgstr "Bemenet Hozzáadása"
+msgstr "Kimeneti port hozzáadása"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Override an existing built-in function."
-msgstr "Érvénytelen név. Nem ütközhet egy már meglévő beépített típusnévvel."
+msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new function."
-msgstr "Új %s Létrehozása"
+msgstr "Új függvény létrehozása."
#: modules/visual_script/visual_script_editor.cpp
msgid "Variables:"
-msgstr ""
+msgstr "Változók:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new variable."
-msgstr "Új %s Létrehozása"
+msgstr "Új változó létrehozása."
#: modules/visual_script/visual_script_editor.cpp
msgid "Signals:"
msgstr "Jelzések:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new signal."
-msgstr "Új sokszög létrehozása a semmiből."
+msgstr "Új jelzés létrehozása."
#: modules/visual_script/visual_script_editor.cpp
msgid "Name is not a valid identifier:"
-msgstr ""
+msgstr "A név nem érvényes azonosító:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name already in use by another func/var/signal:"
@@ -11987,46 +11401,43 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Function"
-msgstr ""
+msgstr "Függvény átnevezése"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Variable"
-msgstr ""
+msgstr "Változó átnevezése"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Signal"
-msgstr ""
+msgstr "Jelzés átnevezése"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Function"
-msgstr ""
+msgstr "Függvény hozzáadása"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Delete input port"
-msgstr "Pont eltávolítása"
+msgstr "Bemeneti port törlése"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Variable"
-msgstr ""
+msgstr "Változó hozzáadása"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Signal"
-msgstr ""
+msgstr "Jelzés hozzáadása"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Input Port"
-msgstr "Pont eltávolítása"
+msgstr "Bemeneti port eltávolítása"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Output Port"
-msgstr "Pont eltávolítása"
+msgstr "Kimeneti port eltávolítása"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Expression"
-msgstr ""
+msgstr "Kifejezés módosítása"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
@@ -12099,19 +11510,16 @@ msgid "Connect Nodes"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Disconnect Nodes"
-msgstr "Kapcsolat bontva"
+msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Data"
-msgstr "Csatlakoztatás Node-hoz:"
+msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Sequence"
-msgstr "Csatlakoztatás Node-hoz:"
+msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
@@ -12122,9 +11530,8 @@ msgid "Change Input Value"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Resize Comment"
-msgstr "CanvasItem Szerkesztése"
+msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
@@ -12155,58 +11562,52 @@ msgid "Try to only have one sequence input in selection."
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create Function"
-msgstr "Körvonal Készítése"
+msgstr "Függvény létrehozása"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
-msgstr ""
+msgstr "Függvény eltávolítása"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Variable"
-msgstr ""
+msgstr "Változó eltávolítása"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Variable:"
-msgstr ""
+msgstr "Változó szerkesztése:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Signal"
-msgstr ""
+msgstr "Jelzés eltávolítása"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Signal:"
-msgstr ""
+msgstr "Jelzés szerkesztése:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Tool:"
-msgstr "Csontok Létrehozása"
+msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Members:"
msgstr "Tagok:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Base Type:"
-msgstr "%s Típusának Megváltoztatása"
+msgstr "Alaptípus módosítása:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Nodes..."
-msgstr "%s Hozzáadása..."
+msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function..."
-msgstr "Ugrás Funkcióra..."
+msgstr "Függvény hozzáadása..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "function_name"
-msgstr "Funkciók:"
+msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit its graph."
@@ -12214,7 +11615,7 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
-msgstr ""
+msgstr "Kijelöltek törlése"
#: modules/visual_script/visual_script_editor.cpp
msgid "Find Node Type"
@@ -12226,34 +11627,31 @@ msgstr "Node-ok Másolása"
#: modules/visual_script/visual_script_editor.cpp
msgid "Cut Nodes"
-msgstr ""
+msgstr "Node-ok kivágása"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Function"
-msgstr "Funkciók:"
+msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Refresh Graph"
-msgstr "Frissítés"
+msgstr "Grafikon frissítése"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Edit Member"
-msgstr "Tagok"
+msgstr "Tag szerkesztése"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
-msgstr ""
+msgstr "Beviteli típus nem iterálható: "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid"
-msgstr ""
+msgstr "Az iterátor érvénytelenné vált"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid: "
-msgstr ""
+msgstr "Az iterátor érvénytelenné vált: "
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name."
@@ -12261,7 +11659,7 @@ msgstr ""
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
-msgstr ""
+msgstr "Az alap objektum nem egy node!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Path does not lead Node!"
@@ -12269,23 +11667,23 @@ msgstr "Az út nem vezeti a csomópontot!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr ""
+msgstr "Érvénytelen index tulajdonság név: '%s' a(z) %s node-ban."
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
-msgstr ""
+msgstr ": Érvénytelen típusargumentum: "
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid arguments: "
-msgstr ""
+msgstr ": Érvénytelen argumentumok: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableGet not found in script: "
-msgstr ""
+msgstr "VariableGet nem található a szkriptben: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableSet not found in script: "
-msgstr ""
+msgstr "VariableSet nem található a szkriptben: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
@@ -12298,9 +11696,8 @@ msgid ""
msgstr ""
#: modules/visual_script/visual_script_property_selector.cpp
-#, fuzzy
msgid "Search VisualScript"
-msgstr "Keresés Súgóban"
+msgstr ""
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Get %s"
@@ -12373,9 +11770,8 @@ msgid "Invalid public key for APK expansion."
msgstr ""
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Invalid package name:"
-msgstr "Érvénytelen név."
+msgstr "Érvénytelen csomagnév:"
#: platform/android/export/export.cpp
msgid ""
@@ -12444,9 +11840,8 @@ msgid "App Store Team ID not specified - cannot configure the project."
msgstr ""
#: platform/iphone/export/export.cpp
-#, fuzzy
msgid "Invalid Identifier:"
-msgstr "Érvénytelen betűtípus méret."
+msgstr "Érvénytelen azonosító:"
#: platform/iphone/export/export.cpp
msgid "Required icon is not specified in the preset."
@@ -12491,32 +11886,30 @@ msgstr ""
#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid package short name."
-msgstr "Érvénytelen név."
+msgstr "Érvénytelen rövid csomagnév."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid package unique name."
-msgstr "Érvénytelen név."
+msgstr "Érvénytelen egyedi csomagnév."
#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid package publisher display name."
-msgstr "Érvénytelen név."
+msgstr "Érvénytelen csomagközzétevő megjelenítendő neve."
#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid product GUID."
-msgstr "Érvénytelen projektnév."
+msgstr "Érvénytelen termékazonosító."
#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid publisher GUID."
-msgstr "Érvénytelen Elérési Út."
+msgstr "Érvénytelen közzétevői GUID."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid background color."
-msgstr "Érvénytelen név."
+msgstr "Érvénytelen háttérszín."
#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
@@ -12589,6 +11982,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12801,6 +12200,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12901,43 +12305,36 @@ msgid "On BlendTree node '%s', animation not found: '%s'"
msgstr ""
#: scene/animation/animation_blend_tree.cpp
-#, fuzzy
msgid "Animation not found: '%s'"
-msgstr "Animációs Eszközök"
+msgstr "Az animáció nem található: '%s'"
#: scene/animation/animation_tree.cpp
msgid "In node '%s', invalid animation: '%s'."
msgstr ""
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "Invalid animation: '%s'."
-msgstr "HIBA: Érvénytelen animáció név!"
+msgstr "Érvénytelen animáció: '%s'."
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "Nothing connected to input '%s' of node '%s'."
-msgstr "'%s' Lecsatlakoztatása '%s'-ról"
+msgstr ""
#: scene/animation/animation_tree.cpp
msgid "No root AnimationNode for the graph is set."
msgstr ""
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "Path to an AnimationPlayer node containing animations is not set."
msgstr ""
-"Válasszon egy AnimationPlayer-t a Jelenetfából, hogy animációkat "
-"szerkeszthessen."
#: scene/animation/animation_tree.cpp
msgid "Path set for AnimationPlayer does not lead to an AnimationPlayer node."
msgstr ""
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "The AnimationPlayer root node is not a valid node."
-msgstr "Az animációs fa érvénytelen."
+msgstr ""
#: scene/animation/animation_tree_player.cpp
msgid "This node has been deprecated. Use AnimationTree instead."
@@ -12989,7 +12386,7 @@ msgstr "Figyelem!"
#: scene/gui/dialogs.cpp
msgid "Please Confirm..."
-msgstr "Kérem Erősítse Meg..."
+msgstr "Kérjük erősítse meg..."
#: scene/gui/popup.cpp
msgid ""
@@ -13038,17 +12435,15 @@ msgstr ""
#: scene/resources/visual_shader_nodes.cpp
#, fuzzy
msgid "Invalid source for preview."
-msgstr "Érvénytelen betűtípus méret."
+msgstr "Érvénytelen forrás az előnézethez."
#: scene/resources/visual_shader_nodes.cpp
-#, fuzzy
msgid "Invalid source for shader."
-msgstr "Érvénytelen betűtípus méret."
+msgstr ""
#: scene/resources/visual_shader_nodes.cpp
-#, fuzzy
msgid "Invalid comparison function for that type."
-msgstr "Érvénytelen betűtípus méret."
+msgstr ""
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
@@ -13066,6 +12461,18 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Exportáláskor vagy telepítéskor az így kapott futtatható program "
+#~ "megpróbál ennek a számítógépnek az IP-jéhez csatlakozni távoli "
+#~ "hibakeresés érdekében."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "A jelenlegi Scene soha nem volt még mentve, mentse el a futtatás előtt."
+
#~ msgid "Not in resource path."
#~ msgstr "Nincs az erőforrás elérési útban."
diff --git a/editor/translations/id.po b/editor/translations/id.po
index 92c0c25da9..7e94f233c1 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -20,18 +20,19 @@
# Alphin Albukhari <alphinalbukhari5@gmail.com>, 2019.
# I Dewa Agung Adhinata <agungnata2003@gmail.com>, 2019.
# herri siagian <herry.it.2007@gmail.com>, 2019.
-# MonsterGila <fikrirazor@outlook.co.id>, 2019.
+# MonsterGila <fikrirazor@outlook.co.id>, 2019, 2020.
# Modeus Darksono <garuga17@gmail.com>, 2019.
# Akhmad Zulfikar <azuldegratz@gmail.com>, 2020.
# Ade Fikri Malihuddin <ade.fm97@gmail.com>, 2020.
# zephyroths <ridho.hikaru@gmail.com>, 2020.
# Richard Urban <redasuio1@gmail.com>, 2020.
+# yusuf afandi <afandi.yusuf.04@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-03 20:09+0000\n"
-"Last-Translator: Sofyan Sugianto <sofyanartem@gmail.com>\n"
+"PO-Revision-Date: 2020-08-12 08:00+0000\n"
+"Last-Translator: MonsterGila <fikrirazor@outlook.co.id>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/"
"godot/id/>\n"
"Language: id\n"
@@ -39,7 +40,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.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -550,6 +551,7 @@ msgid "Seconds"
msgstr "Detik"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -728,7 +730,7 @@ msgstr "Kasus Kecocokan"
msgid "Whole Words"
msgstr "Semua Kata"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Ganti"
@@ -778,9 +780,8 @@ msgid "Method in target node must be specified."
msgstr "Method dalam node target harus ditentukan."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "Nama bukan sebuah pengidentifikasi yang sah:"
+msgstr "Nama bukan sebuah pengidentifikasi yang sah."
#: editor/connections_dialog.cpp
msgid ""
@@ -921,6 +922,11 @@ msgid "Signals"
msgstr "Sinyal"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filter tile"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Anda yakin ingin menghapus semua hubungan dari sinyal ini?"
@@ -958,7 +964,7 @@ msgid "Recent:"
msgstr "Saat ini:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Cari:"
@@ -1139,6 +1145,9 @@ msgstr "Penemu Proyek"
msgid "Lead Developer"
msgstr "Pengembang Utama"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Manajer Proyek "
@@ -1160,6 +1169,16 @@ msgid "Gold Sponsors"
msgstr "Sponsor Emas"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Donatur Perak"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Donatur Perunggu"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Sponsor Mini"
@@ -1635,16 +1654,17 @@ msgid "Scene Tree Editing"
msgstr "Menyunting Pohon Skena"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Dok Impor"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Dok Node"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Dok Impor dan Berkas Sistem"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Berkas Sistem"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Dok Impor"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1908,7 +1928,7 @@ msgstr "Direktori-direktori & File-file:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Pratinjau:"
@@ -2346,12 +2366,6 @@ msgid "There is no defined scene to run."
msgstr "Tidak ada skena yang didefinisikan untuk dijalankan."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"Skena saat ini belum pernah disimpan, harap simpan terlebih dahulu sebelum "
-"menjalankannya."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Tidak dapat memulai subproses!"
@@ -2441,10 +2455,13 @@ msgid "Reload Saved Scene"
msgstr "Simpan Skena"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
"The current scene has unsaved changes.\n"
"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
+"Skena saat ini mempunyai perubahan yang belum tersimpan.\n"
+"Tetap muat ulang skena yang tersimpan? Aksi ini tidak dapat dibatalkan."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2791,24 +2808,28 @@ msgstr "Deploy dengan Awakutu Jarak Jauh"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Saat mengekspor atau mendeploy, hasil executable akan mencoba terhubung ke "
-"IP komputer untuk diawakutu."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Deploy Kecil dengan Jaringan FS"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Ketika opsi ini aktif, ekspor atau deploy akan menghasilkan minimal "
"executable.\n"
@@ -2821,9 +2842,10 @@ msgid "Visible Collision Shapes"
msgstr "Collision Shapes Terlihat"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Collision shapes dan raycast nodes (untuk 2D dan 3D) akan terlihat pada saat "
"permainan berjalan jika opsi ini aktif."
@@ -2833,23 +2855,26 @@ msgid "Visible Navigation"
msgstr "Navigasi Terlihat"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Navigasi meshes dan poligon akan terlihat saat game berjalan jika opsi ini "
"aktif."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Sinkronkan Perubahan Skena"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Ketika opsi ini aktif, perubahan yang dibuat pada skena melalui editor akan "
"direplika pada gim yang sedang berjalan.\n"
@@ -2857,15 +2882,17 @@ msgstr ""
"berkas sistem jaringan."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Sinkronkan Perubahan Script"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Ketika opsi ini aktif, perubahan script yang tersimpan akan di muat kembali "
"pada permainan yang sedang berjalan.\n"
@@ -2929,7 +2956,7 @@ msgstr "Bantuan"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Cari"
@@ -3347,9 +3374,11 @@ msgid "Add Key/Value Pair"
msgstr "Tambahkan pasangan Key/Value"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Tidak ada preset ekspor yang bisa digunakan untuk platform ini.\n"
"Mohon tambahkan preset yang bisa digunakan di menu ekspor."
@@ -5109,7 +5138,7 @@ msgid "Bake Lightmaps"
msgstr "Panggang Lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Pratinjau"
@@ -7756,7 +7785,8 @@ msgid "New Animation"
msgstr "Animasi Baru"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Kecepatan (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9890,6 +9920,7 @@ msgstr ""
"Apakah Anda yakin untuk memindai %s folder untuk proyek Godot yang ada?\n"
"Ini bisa memakan waktu yang lama."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Manajer Proyek"
@@ -10330,11 +10361,18 @@ msgid "Batch Rename"
msgstr "Ubah Nama Massal"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Ganti: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Awalan"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Akhiran"
#: editor/rename_dialog.cpp
@@ -10382,7 +10420,8 @@ msgid "Per-level Counter"
msgstr "Penghitung per Level"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Jika diatur, penghitung akan dimulai ulang untuk setiap grup node anak"
#: editor/rename_dialog.cpp
@@ -10442,7 +10481,8 @@ msgid "Reset"
msgstr "Reset"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Kesalahan Ekspresi Reguler"
#: editor/rename_dialog.cpp
@@ -10553,6 +10593,11 @@ msgid "Make node as Root"
msgstr "Jadikan node sebagai Dasar"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Hapus node \"%s\" dan anak-anaknya?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Hapus %d node?"
@@ -10684,11 +10729,14 @@ msgid "Open Documentation"
msgstr "Buka Dokumentasi"
#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid ""
"Cannot attach a script: there are no languages registered.\n"
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
+"Tidak dapat melampirkan skrip: tidak ada bahasa yang terdaftar.\n"
+"Ini mungkin karena editor ini dibuat dengan semua modul bahasa dinonaktifkan."
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -12240,6 +12288,16 @@ msgstr ""
"Sebuah shape harus disediakan untuk CollisionShape2D supaya berfungsi. Mohon "
"ciptakan resource shape untuknya!"
+#: scene/2d/collision_shape_2d.cpp
+#, fuzzy
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Bentuk Polygon-based tidak dimaksudkan untuk digunakan atau diedit secara "
+"langsung melalui node CollisionShape2D. Silakan gunakan node "
+"CollisionPolygon2D sebagai gantinya."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12424,8 +12482,9 @@ msgid "Finishing Plot"
msgstr "Menyelesaikan Pemetaan"
#: scene/3d/baked_lightmap.cpp
+#, fuzzy
msgid "Lighting Meshes: "
-msgstr ""
+msgstr "Lighting Meshes: "
#: scene/3d/collision_object.cpp
msgid ""
@@ -12480,8 +12539,9 @@ msgid ""
msgstr ""
#: scene/3d/cpu_particles.cpp
+#, fuzzy
msgid "Nothing is visible because no mesh has been assigned."
-msgstr ""
+msgstr "Tidak ada yang tampak karena tidak ada mesh yang ditetapkan."
#: scene/3d/cpu_particles.cpp
msgid ""
@@ -12501,6 +12561,11 @@ msgstr ""
"GIProbes tidak didukung oleh driver video GLES2.\n"
"Gunakan BakedLightmap sebagai gantinya."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12800,6 +12865,21 @@ msgstr "Variasi hanya bisa ditetapkan dalam fungsi vertex."
msgid "Constants cannot be modified."
msgstr "Konstanta tidak dapat dimodifikasi."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Dok Impor dan Berkas Sistem"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Saat mengekspor atau mendeploy, hasil executable akan mencoba terhubung "
+#~ "ke IP komputer untuk diawakutu."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Skena saat ini belum pernah disimpan, harap simpan terlebih dahulu "
+#~ "sebelum menjalankannya."
+
#~ msgid "Not in resource path."
#~ msgstr "Tidak dalam lokasi resource."
diff --git a/editor/translations/is.po b/editor/translations/is.po
index f0d93d1242..b39913e3c6 100644
--- a/editor/translations/is.po
+++ b/editor/translations/is.po
@@ -536,6 +536,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -720,7 +721,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -910,6 +911,10 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -947,7 +952,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1122,6 +1127,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Verkefna Stjóri "
@@ -1143,6 +1151,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1607,15 +1623,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1880,7 +1896,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2291,10 +2307,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2713,22 +2725,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2737,8 +2753,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2747,32 +2763,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2833,7 +2849,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3235,7 +3251,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4976,7 +4993,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7580,7 +7597,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9591,6 +9608,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Verkefna Stjóri"
@@ -10025,11 +10043,15 @@ msgid "Batch Rename"
msgstr "Endurnefning Anim track"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10075,7 +10097,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10133,7 +10155,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10240,6 +10262,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Anim DELETE-lyklar"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "Anim DELETE-lyklar"
@@ -11858,6 +11885,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12070,6 +12103,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/it.po b/editor/translations/it.po
index 7c929b7779..b16db7243d 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -27,9 +27,9 @@
# Hairic95 <hairic95@gmail.com>, 2019.
# Christian Biffi <creixx@virgilio.it>, 2019.
# Giuseppe Guerra <me@nyodev.xyz>, 2019.
-# RHC <rhc.throwaway@gmail.com>, 2019.
-# Antonio Giungato <antonio.giungato@gmail.com>, 2019.
-# Marco Galli <mrcgll98@gmail.com>, 2019.
+# RHC <rhc.throwaway@gmail.com>, 2019, 2020.
+# Antonio Giungato <antonio.giungato@gmail.com>, 2019, 2020.
+# Marco Galli <mrcgll98@gmail.com>, 2019, 2020.
# MassiminoilTrace <omino.gis@gmail.com>, 2019, 2020.
# MARCO BANFI <mbanfi@gmail.com>, 2019.
# Marco <rodomar705@gmail.com>, 2019.
@@ -37,7 +37,7 @@
# Stefano Merazzi <asso99@hotmail.com>, 2019.
# Sinapse X <sinapsex13@gmail.com>, 2019.
# Micila Micillotto <micillotto@gmail.com>, 2019, 2020.
-# Mirko Soppelsa <miknsop@gmail.com>, 2019.
+# Mirko Soppelsa <miknsop@gmail.com>, 2019, 2020.
# No <kingofwizards.kw7@gmail.com>, 2019.
# StarFang208 <polaritymanx@yahoo.it>, 2019.
# Katia Piazza <gydey@ridiculousglitch.com>, 2019.
@@ -52,12 +52,15 @@
# Anonymous <noreply@weblate.org>, 2020.
# riccardo boffelli <riccardo.boffelli.96@gmail.com>, 2020.
# Lorenzo Asolan <brixiumx@gmail.com>, 2020.
+# Lorenzo Cerqua <lorenzocerqua@tutanota.com>, 2020.
+# Federico Manzella <ferdiu.manzella@gmail.com>, 2020.
+# Ziv D <wizdavid@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
-"Last-Translator: Lorenzo Asolan <brixiumx@gmail.com>\n"
+"PO-Revision-Date: 2020-09-22 03:23+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"
@@ -65,28 +68,28 @@ 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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Argomento non valido per convert(), usare le costanti TYPE_*."
+msgstr "Argomento tipo non valido per convert(), usare le costanti TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "Prevista una stringa di lunghezza 1 (singolo carattere)."
+msgstr "Prevista una stringa di lunghezza 1 (un singolo carattere)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
msgstr ""
-"Non vi sono abbastanza byte per riuscire a decodificarli, oppure il formato "
+"Non ci sono abbastanza byte per riuscire a decodificarli, oppure il formato "
"non è valido."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "Input non valido %i (non passato) nell'espressione"
+msgstr "Input non valido %i (assente) nell'espressione"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
@@ -98,7 +101,7 @@ msgstr "Operandi non validi per l'operatore %s, %s e %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr "Indice del tipo %s non valido per il tipo base %s"
+msgstr "Indice di tipo %s non valido per il tipo base %s"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
@@ -106,7 +109,7 @@ msgstr "Nome indice '%s' non valido per il tipo base %s"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr "Argomenti non validi per il costrutto '%s'"
+msgstr "Argomenti non validi per costruire '%s'"
#: core/math/expression.cpp
msgid "On call to '%s':"
@@ -239,7 +242,7 @@ msgstr "Modifica ciclicità animazione"
#: editor/animation_track_editor.cpp
msgid "Property Track"
-msgstr "Proprietà Traccia"
+msgstr "Traccia proprietà"
#: editor/animation_track_editor.cpp
msgid "3D Transform Track"
@@ -247,7 +250,7 @@ msgstr "Traccia trasformazione 3D"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
-msgstr "Traccia di Chiamata di Metodi"
+msgstr "Traccia chiamata metodo"
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
@@ -263,7 +266,7 @@ msgstr "Traccia di riproduzione animazione"
#: editor/animation_track_editor.cpp
msgid "Animation length (frames)"
-msgstr "Durata Animazione (frames)"
+msgstr "Durata animazione (fotogrammi)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
@@ -275,7 +278,7 @@ msgstr "Aggiungi Traccia"
#: editor/animation_track_editor.cpp
msgid "Animation Looping"
-msgstr "Ciclicità Animazione"
+msgstr "Ripeti Ciclicamente Animazione"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -288,7 +291,7 @@ msgstr "Clip Audio:"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
-msgstr "Clip Anim:"
+msgstr "Clip Animazione:"
#: editor/animation_track_editor.cpp
msgid "Change Track Path"
@@ -304,11 +307,11 @@ msgstr "Modalità di aggiornamento (Come viene impostata questa proprietà)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
-msgstr "Modalità di Interpolazione"
+msgstr "Modalità Interpolazione"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr "Modalità Loop Wrap (Interpola la fine con l'inizio del loop)"
+msgstr "Modalità Ciclo ad Anello (Interpola la fine con l'inizio del ciclo)"
#: editor/animation_track_editor.cpp
msgid "Remove this track."
@@ -576,6 +579,7 @@ msgid "Seconds"
msgstr "Secondi"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -728,7 +732,7 @@ msgstr "Cambia valore array"
#: editor/code_editor.cpp
msgid "Go to Line"
-msgstr "Va' alla linea"
+msgstr "Vai alla linea"
#: editor/code_editor.cpp
msgid "Line Number:"
@@ -754,7 +758,7 @@ msgstr "Distingui maiuscole"
msgid "Whole Words"
msgstr "Parole intere"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Sostituisci"
@@ -804,7 +808,6 @@ msgid "Method in target node must be specified."
msgstr "Il metodo del nodo designato deve essere specificato."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
msgstr "Il nome del metodo dev'essere un identificatore valido."
@@ -948,6 +951,11 @@ msgid "Signals"
msgstr "Segnali"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtra tiles"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Sei sicuro di voler rimuovere tutte le connessioni da questo segnale?"
@@ -985,7 +993,7 @@ msgid "Recent:"
msgstr "Recenti:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Cerca:"
@@ -1048,11 +1056,11 @@ msgstr "Dipendenze:"
#: editor/dependency_editor.cpp
msgid "Fix Broken"
-msgstr "Riparare rotti"
+msgstr "Ripara rotti"
#: editor/dependency_editor.cpp
msgid "Dependency Editor"
-msgstr "Editor dipendenze"
+msgstr "Editor Dipendenze"
#: editor/dependency_editor.cpp
msgid "Search Replacement Resource:"
@@ -1156,7 +1164,7 @@ msgstr "Grazie dalla comunità di Godot!"
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
-msgstr "Contributori a Godot Engine"
+msgstr "Contributori di Godot engine"
#: editor/editor_about.cpp
msgid "Project Founders"
@@ -1166,6 +1174,9 @@ msgstr "Fondatori del progetto"
msgid "Lead Developer"
msgstr "Sviluppatore principale"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Gestore progetto "
@@ -1187,6 +1198,14 @@ msgid "Gold Sponsors"
msgstr "Sponsor oro"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "Sponsor Argento"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "Sponsor Bronzo"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Sponsor mini"
@@ -1390,7 +1409,7 @@ msgstr "Salva disposizione del bus audio come..."
#: editor/editor_audio_buses.cpp
msgid "Location for New Layout..."
-msgstr "Posizione della nuova disposizione…"
+msgstr "Posizione per la nuova disposizione..."
#: editor/editor_audio_buses.cpp
msgid "Open Audio Bus Layout"
@@ -1440,7 +1459,7 @@ msgstr "Salva questa disposizione bus in un file."
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
-msgstr "Carica predefiniti"
+msgstr "Carica Predefiniti"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
@@ -1665,16 +1684,17 @@ msgid "Scene Tree Editing"
msgstr "Editor delle scene"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Importa"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Nodo"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Filesystem e dock di importazione"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Filesystem"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Importa"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1757,7 +1777,7 @@ msgstr "Nuovo"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/project_manager.cpp
msgid "Import"
-msgstr "Importa"
+msgstr "Importare"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
@@ -1870,11 +1890,11 @@ msgstr "Torna indietro"
#: editor/editor_file_dialog.cpp
msgid "Go Forward"
-msgstr "Va' avanti"
+msgstr "Vai avanti"
#: editor/editor_file_dialog.cpp
msgid "Go Up"
-msgstr "Va' su"
+msgstr "Vai su"
#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
@@ -1886,7 +1906,7 @@ msgstr "Attiva/disattiva preferito"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr "Modalità di Attivazione/Disattivazione"
+msgstr "Commuta Modalità"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
@@ -1938,7 +1958,7 @@ msgstr "File e cartelle:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Anteprima:"
@@ -2380,12 +2400,6 @@ msgid "There is no defined scene to run."
msgstr "Non c'è nessuna scena definita da eseguire."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"La scena attuale non è mai stata salvata, si prega di salvarla prima di "
-"eseguirla."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Impossibile avviare il sottoprocesso!"
@@ -2540,12 +2554,14 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
msgstr ""
-"Impossibile trovare il campo per lo script del componente aggiuntivo in: "
+"Impossibile trovare il campo dello script per il componente aggiuntivo in: "
"'res://addons/%s'."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s'."
-msgstr "Impossibile caricare uno script aggiuntivo dal percorso: '%s'."
+msgstr ""
+"Impossibile caricare lo script di un componente aggiuntivo dal percorso: "
+"'%s'."
#: editor/editor_node.cpp
msgid ""
@@ -2565,8 +2581,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
msgstr ""
-"Impossibile caricare uno script aggiuntivo dal percorso: Lo script '%s' non "
-"è in tool mode."
+"Impossibile caricare lo script di un componente aggiuntivo dal percorso: "
+"'%s' Lo script non è in modalità strumento."
#: editor/editor_node.cpp
msgid ""
@@ -2635,7 +2651,7 @@ msgstr "Elimina disposizione"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
msgid "Default"
-msgstr "Default"
+msgstr "Predefinito"
#: editor/editor_node.cpp editor/editor_properties.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
@@ -2684,7 +2700,7 @@ msgstr "%d altri file"
#: editor/editor_node.cpp
msgid "Dock Position"
-msgstr "Posizione dock"
+msgstr "Posizione Dock"
#: editor/editor_node.cpp
msgid "Distraction Free Mode"
@@ -2744,7 +2760,7 @@ msgstr "Apri recente"
#: editor/editor_node.cpp
msgid "Save Scene"
-msgstr "Salva Scena"
+msgstr "Salva scena"
#: editor/editor_node.cpp
msgid "Save All Scenes"
@@ -2803,7 +2819,7 @@ msgstr "Esporta..."
#: editor/editor_node.cpp
msgid "Install Android Build Template..."
-msgstr "Installa il Build Template di Android…"
+msgstr "Installa il Modello di Costruzione di Android…"
#: editor/editor_node.cpp
msgid "Open Project Data Folder"
@@ -2832,25 +2848,28 @@ msgstr "Distribuisci con Debug remoto"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"L'eseguibile, dopo l'esportazione o la distribuzione, attenterà di "
-"connettersi con l'indirizzo IP di questo computer per farsi eseguire il "
-"debug."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Piccola distribuzione con la rete FS"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Quando questa opzione è abilitata, l'esportazione o distribuzione produrrà "
"un eseguibile minimale.\n"
@@ -2864,9 +2883,10 @@ msgid "Visible Collision Shapes"
msgstr "Forme di collisione visibili"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Le forme di collisione e i nodi di raycast (per il 2D e 3D) saranno visibili "
"nel gioco in esecuzione se l'opzione è attiva."
@@ -2876,23 +2896,26 @@ msgid "Visible Navigation"
msgstr "Navigazione Visibile"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Le mesh e i poligoni di navigazione saranno visibili nel gioco in esecuzione "
"se l'opzione è attiva."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Sincronizza cambiamenti scena"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Quando questa opzione è attiva, qualsiasi cambiamento fatto alla scena "
"nell'editor sarà replicato nel gioco in esecuzione.\n"
@@ -2900,15 +2923,17 @@ msgstr ""
"filesystem in rete."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Sincronizza cambiamenti script"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Quando questa opzione è attiva, qualsiasi script salvato verrà ricaricato "
"nel gioco in esecuzione.\n"
@@ -2950,7 +2975,7 @@ msgstr "Apri cartella dati/impostazioni editor"
#: editor/editor_node.cpp
msgid "Open Editor Data Folder"
-msgstr "Apri la cartella dati dell'editor"
+msgstr "Apri la Cartella dei Dati dell'Editor"
#: editor/editor_node.cpp
msgid "Open Editor Settings Folder"
@@ -2962,7 +2987,7 @@ msgstr "Gestisci le funzionalità dell'editor…"
#: editor/editor_node.cpp
msgid "Manage Export Templates..."
-msgstr "Gestisci template d'esportazione…"
+msgstr "Gestisci Modello d'Esportazione…"
#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
msgid "Help"
@@ -2973,7 +2998,7 @@ msgstr "Aiuto"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Cerca"
@@ -2988,11 +3013,11 @@ msgstr "Domande e risposte"
#: editor/editor_node.cpp
msgid "Report a Bug"
-msgstr "Riporta un Bug"
+msgstr "Segnala un problema"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
-msgstr "Invia opinione sui documenti"
+msgstr "Valuta documentazione"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
@@ -3028,7 +3053,7 @@ msgstr "Esegui la scena in modifica."
#: editor/editor_node.cpp
msgid "Play Scene"
-msgstr "Avvia Scena"
+msgstr "Esegui scena"
#: editor/editor_node.cpp
msgid "Play custom scene"
@@ -3036,7 +3061,7 @@ msgstr "Esegui scena personalizzata"
#: editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr "Avvia Scena Personalizzata"
+msgstr "Avvia scena personalizzata"
#: editor/editor_node.cpp
msgid "Changing the video driver requires restarting the editor."
@@ -3091,7 +3116,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Manage Templates"
-msgstr "Gestisci i template d'esportazione"
+msgstr "Gestisci i modelli d'esportazione"
#: editor/editor_node.cpp
msgid ""
@@ -3119,7 +3144,7 @@ msgid ""
"Remove the \"res://android/build\" directory manually before attempting this "
"operation again."
msgstr ""
-"Il template della build Android è già installato in questo progetto e non "
+"Il modello della build Android è già installato in questo progetto e non "
"sarà sovrascritto.\n"
"Rimuovi la cartella \"res://android/build\" manualmente prima di ritentare "
"questa operazione."
@@ -3162,11 +3187,11 @@ msgstr "Apri Editor 2D"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
-msgstr "Apri editor 3D"
+msgstr "Apri Editor 3D"
#: editor/editor_node.cpp
msgid "Open Script Editor"
-msgstr "Apri editor degli script"
+msgstr "Apri Editor degli script"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
@@ -3247,7 +3272,7 @@ msgstr "Frame %"
#: editor/editor_profiler.cpp
msgid "Physics Frame %"
-msgstr "Frame della Fisica %"
+msgstr "Fotogramma della Fisica %"
#: editor/editor_profiler.cpp
msgid "Inclusive"
@@ -3393,9 +3418,11 @@ msgid "Add Key/Value Pair"
msgstr "Aggiungi Coppia Chiave/Valore"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Non sono stati trovati dei modelli di export eseguibili per questa "
"piattaforma.\n"
@@ -3525,8 +3552,8 @@ msgid ""
"No download links found for this version. Direct download is only available "
"for official releases."
msgstr ""
-"Non sono stati trovati link di download per questa versione. Il download "
-"diretto è disponibile solamente per rilasci ufficiali."
+"Nessun collegamento di download trovato per questa versione. I download "
+"diretti sono disponibili solo per i rilasci ufficiali."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3620,7 +3647,7 @@ msgstr "Errore di Connessione"
#: editor/export_template_manager.cpp
msgid "SSL Handshake Error"
-msgstr "Errore nell'Handshake SSL"
+msgstr "Errore Handshake SSL"
#: editor/export_template_manager.cpp
msgid "Uncompressing Android Build Sources"
@@ -3648,7 +3675,7 @@ msgstr "Seleziona file template"
#: editor/export_template_manager.cpp
msgid "Godot Export Templates"
-msgstr "Template di Export"
+msgstr "Modello di Esportazione Godot"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
@@ -3656,7 +3683,7 @@ msgstr "Gestore Template Esportazione"
#: editor/export_template_manager.cpp
msgid "Download Templates"
-msgstr "Scarica Template"
+msgstr "Scarica Modelli"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: (Shift+Click: Open in Browser)"
@@ -4029,10 +4056,9 @@ msgid "Error running post-import script:"
msgstr "Errore di esecuzione dello script di post-import:"
#: editor/import/resource_importer_scene.cpp
-#, fuzzy
msgid "Did you return a Node-derived object in the `post_import()` method?"
msgstr ""
-"Avete restituito un oggetto derivato da un Nodo nel metodo `post_import()`?"
+"Hai restituito un oggetto derivato da un Nodo nel metodo `post_import()`?"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -4044,11 +4070,11 @@ msgstr "%d File"
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
-msgstr "Imposta come Default per '%s'"
+msgstr "Imposta come Predefinito per '%s'"
#: editor/import_dock.cpp
msgid "Clear Default for '%s'"
-msgstr "Elimina Default per '%s'"
+msgstr "Elimina Predefinito per '%s'"
#: editor/import_dock.cpp
msgid "Import As:"
@@ -4635,7 +4661,7 @@ msgstr "Opzioni dell'onion skinning"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Directions"
-msgstr "Indicazioni"
+msgstr "Direzioni"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Past"
@@ -4804,7 +4830,7 @@ msgstr "Modalità Gioco:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "AnimationTree"
-msgstr "AnimazioneAlbero"
+msgstr "AnimationTree"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "New name:"
@@ -5173,7 +5199,7 @@ msgid "Bake Lightmaps"
msgstr "Preprocessa Lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Anteprima"
@@ -5608,7 +5634,7 @@ msgstr "Vista"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Always Show Grid"
-msgstr "Mostra Sempre Griglia"
+msgstr "Mostra sempre Griglia"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Helpers"
@@ -5731,7 +5757,7 @@ msgstr "Errore istanziamento scena da %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Default Type"
-msgstr "Cambia tipo di default"
+msgstr "Cambia Tipo Predefinito"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -7010,7 +7036,7 @@ msgstr "Linea"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Function"
-msgstr "Va' alla funzione"
+msgstr "Vai alla funzione"
#: editor/plugins/script_text_editor.cpp
msgid "Only resources from filesystem can be dropped."
@@ -7834,7 +7860,8 @@ msgid "New Animation"
msgstr "Nuova Animazione"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Velocità (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8263,7 +8290,7 @@ msgstr "Modalità Regione"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Collision Mode"
-msgstr "Modalità di collisione"
+msgstr "Modalità Collisioni"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Occlusion Mode"
@@ -8279,7 +8306,7 @@ msgstr "Modalità Bitmask"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Priority Mode"
-msgstr "Modalità Prioritaria"
+msgstr "Modalità Priorità"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Icon Mode"
@@ -8675,7 +8702,7 @@ msgstr "Imposta Nome Uniforme"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set Input Default Port"
-msgstr "Imposta Porta Input di Default"
+msgstr "Imposta Porta Input Predefinita"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node to Visual Shader"
@@ -8720,7 +8747,7 @@ msgstr "Crea Nodo Shader"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color function."
-msgstr "Colora funzione."
+msgstr "Funzione colore."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color operator."
@@ -8728,15 +8755,15 @@ msgstr "Operatore colore."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Grayscale function."
-msgstr "Funzione Grayscale."
+msgstr "Funzione scala di grigi."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts HSV vector to RGB equivalent."
-msgstr "Converti vettore HSV nell'equivalente RGB."
+msgstr "Converte un vettore HSV nel suo equivalente RGB."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts RGB vector to HSV equivalent."
-msgstr "Converti vettore RGB nell'equivalente HSV."
+msgstr "Converte un vettore RGB nel suo equivalente HSV."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Sepia function."
@@ -8744,31 +8771,31 @@ msgstr "Funzione seppia."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Burn operator."
-msgstr "Operatore Burn."
+msgstr "Operatore brucia."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Darken operator."
-msgstr "Operatore Darken."
+msgstr "Operatore scurisci."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Difference operator."
-msgstr "Operatore \"differenza\"."
+msgstr "Operatore differenza."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Dodge operator."
-msgstr "Operatore schivata."
+msgstr "Operatore scherma."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "HardLight operator."
-msgstr "Operatore HardLight."
+msgstr "Operatore luce dura."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Lighten operator."
-msgstr "Operatore \"schiarischi\"."
+msgstr "Operatore schiarisci."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Overlay operator."
-msgstr "Operatore overlay."
+msgstr "Operatore sovrapponi."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Screen operator."
@@ -8776,7 +8803,7 @@ msgstr "Operatore schermo."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "SoftLight operator."
-msgstr "Operatore SoftLight."
+msgstr "Operatore luce morbida."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color constant."
@@ -8788,7 +8815,8 @@ msgstr "Uniforme di colore."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the boolean result of the %s comparison between two parameters."
-msgstr "Ritorna il risultato booleano del confronto di %s tra due parametri."
+msgstr ""
+"Restituisce il risultato booleano del confronto di %s tra due parametri."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Equal (==)"
@@ -8800,29 +8828,31 @@ msgstr "Maggiore Di (>)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Greater Than or Equal (>=)"
-msgstr "Maggiore o Uguale (>=)"
+msgstr "Maggiore o uguale (>=)"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns an associated vector if the provided scalars are equal, greater or "
"less."
msgstr ""
-"Ritorna un vettore associato se gli scalari di quello fornito sono uguali, "
-"maggiori o minori."
+"Restituisce un vettore associato se gli scalari di quello fornito sono "
+"uguali, maggiori o minori."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns the boolean result of the comparison between INF and a scalar "
"parameter."
msgstr ""
-"Ritorna il risultato booleano del confronto tra INF e un parametro scalare."
+"Restituisce il risultato booleano del confronto tra INF e un parametro "
+"scalare."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns the boolean result of the comparison between NaN and a scalar "
"parameter."
msgstr ""
-"Ritorna il risultato booleano del confronto tra NaN e un parametro scalare."
+"Restituisce il risultato booleano del confronto tra NaN e un parametro "
+"scalare."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Less Than (<)"
@@ -8840,24 +8870,26 @@ msgstr "Non Uguale (!=)"
msgid ""
"Returns an associated vector if the provided boolean value is true or false."
msgstr ""
-"Ritorna un vettore associato se il valore booleano fornito è vero o falso."
+"Restituisce un vettore associato se il valore booleano fornito è vero o "
+"falso."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns an associated scalar if the provided boolean value is true or false."
-msgstr "Ritorna uno scalare associato se il booleano provvisto è vero o falso."
+msgstr ""
+"Restituisce uno scalare associato se il booleano fornito è vero o falso."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the boolean result of the comparison between two parameters."
-msgstr "Ritorna il risultato booleano del confronto tra due parametri."
+msgstr "Restituisce il risultato booleano del confronto tra due parametri."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Returns the boolean result of the comparison between INF (or NaN) and a "
"scalar parameter."
msgstr ""
-"Ritorna il risultato booleano del confronto tra INF (o NaN) e un parametro "
-"scalare."
+"Restituisce il risultato booleano del confronto tra INF (o NaN) e un "
+"parametro scalare."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Boolean constant."
@@ -8877,27 +8909,27 @@ msgstr "Parametro di input."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for vertex and fragment shader modes."
-msgstr "Parametro di input '%s' per le modalità shader vertex e fragment."
+msgstr "Parametro di input '%s' per le modalità shader vertice e frammento."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for fragment and light shader modes."
-msgstr "Parametro di input '%s' per le modalità shader fragment e light."
+msgstr "Parametro di input '%s' per le modalità shader frammento e luce."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for fragment shader mode."
-msgstr "Parametro di input '%s' per la modalità shader fragment."
+msgstr "Parametro di input '%s' per la modalità shader frammento."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for light shader mode."
-msgstr "Parametro di input '%s' per la modalità shader light."
+msgstr "Parametro di input '%s' per la modalità shader luce."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for vertex shader mode."
-msgstr "Parametro di input '%s' per la modalità shader vertex."
+msgstr "Parametro di input '%s' per la modalità shader vertice."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for vertex and fragment shader mode."
-msgstr "Parametro di input '%s' per la modalità shader vertex e fragment."
+msgstr "Parametro di input '%s' per la modalità shader vertice e frammento."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Scalar function."
@@ -8941,35 +8973,35 @@ msgstr "La costante Sqrt2 (1.414214). La radice quadrata di 2."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the absolute value of the parameter."
-msgstr "Ritorna il valore assoluto del parametro."
+msgstr "Restituisce il valore assoluto del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-cosine of the parameter."
-msgstr "Ritorna l'arco-coseno del parametro."
+msgstr "Restituisce l'arco-coseno del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic cosine of the parameter."
-msgstr "Ritorna l'inversa del coseno iperbolico del parametro."
+msgstr "Restituisce l'inversa del coseno iperbolico del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-sine of the parameter."
-msgstr "Ritorna l'arco-seno del parametro."
+msgstr "Restituisce l'arco-seno del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic sine of the parameter."
-msgstr "Ritorna l'inversa del seno iperbolico del parametro."
+msgstr "Restituisce l'inversa del seno iperbolico del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-tangent of the parameter."
-msgstr "Ritorna l'arco-tangente del parametro."
+msgstr "Restituisce l'arco-tangente del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the arc-tangent of the parameters."
-msgstr "Ritorna l'arco-tangente dei parametri."
+msgstr "Restituisce l'arco-tangente dei parametri."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse hyperbolic tangent of the parameter."
-msgstr "Ritorna l'inversa della tangente iperbolica del parametro."
+msgstr "Restituisce l'inversa della tangente iperbolica del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -8983,11 +9015,11 @@ msgstr "Vincola un valore tra due altri valori."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the cosine of the parameter."
-msgstr "Ritorna il coseno del parametro."
+msgstr "Restituisce il coseno del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the hyperbolic cosine of the parameter."
-msgstr "Ritorna il coseno iperbolico del parametro."
+msgstr "Restituisce il coseno iperbolico del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in radians to degrees."
@@ -9012,7 +9044,7 @@ msgstr "Calcola la parte frazionaria dell'argomento."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse of the square root of the parameter."
-msgstr "Ritorna l'inversa della radice quadrata del parametro."
+msgstr "Restituisce l'inversa della radice quadrata del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Natural logarithm."
@@ -9024,11 +9056,11 @@ msgstr "Logaritmo in base 2."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the greater of two values."
-msgstr "Ritorna il maggiore di due valori."
+msgstr "Restituisce il maggiore di due valori."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the lesser of two values."
-msgstr "Ritorna il minore di due valori."
+msgstr "Restituisce il minore di due valori."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Linear interpolation between two scalars."
@@ -9036,7 +9068,7 @@ msgstr "Interpolazione lineare tra due scalari."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the opposite value of the parameter."
-msgstr "Ritorna il valore opposto del parametro."
+msgstr "Restituisce il valore opposto del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 - scalar"
@@ -9046,7 +9078,7 @@ msgstr "1.0 - scalare"
msgid ""
"Returns the value of the first parameter raised to the power of the second."
msgstr ""
-"Ritorna il valore del primo parametro elevato alla potenza del secondo."
+"Restituisce il valore del primo parametro elevato alla potenza del secondo."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in degrees to radians."
@@ -9074,15 +9106,15 @@ msgstr "Estrae il segno del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the sine of the parameter."
-msgstr "Ritorna il seno del parametro."
+msgstr "Restituisce il seno del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the hyperbolic sine of the parameter."
-msgstr "Ritorna il seno iperbolico del parametro."
+msgstr "Restituisce il seno iperbolico del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the square root of the parameter."
-msgstr "Ritorna la radice quadrata del parametro."
+msgstr "Restituisce la radice quadrata del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9094,8 +9126,8 @@ msgid ""
msgstr ""
"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n"
"\n"
-"Ritorna 0.0 se 'x' è più piccolo di 'edge0', o 1.0 se 'x' è più grande di "
-"'edge1'. Altrimenti, il valore di ritorno è interpolato tra 0.0 ed 1.0 "
+"Restituisce 0.0 se 'x' è più piccolo di 'edge0', o 1.0 se 'x' è più grande "
+"di 'edge1'. Altrimenti, il valore di ritorno è interpolato tra 0.0 ed 1.0 "
"usando i polinomi di Hermite."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -9106,15 +9138,15 @@ msgid ""
msgstr ""
"Step function( scalar(edge), scalar(x) ).\n"
"\n"
-"Ritorna 0.0 se 'x' è più piccolo di 'edge', altrimenti 1.0."
+"Restituisce 0.0 se 'x' è più piccolo di 'edge', altrimenti 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the tangent of the parameter."
-msgstr "Ritorna la tangente del parametro."
+msgstr "Restituisce la tangente del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the hyperbolic tangent of the parameter."
-msgstr "Ritorna la tangente iperbolica del parametro."
+msgstr "Restituisce la tangente iperbolica del parametro."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the truncated value of the parameter."
@@ -9134,7 +9166,7 @@ msgstr "Moltiplica lo scalare per scalare."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the remainder of the two scalars."
-msgstr "Ritorna il resto dei due scalari."
+msgstr "Restituisce il resto dei due scalari."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Subtracts scalar from scalar."
@@ -9244,11 +9276,11 @@ msgstr "Scompone il vettore a tre scalari."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the cross product of two vectors."
-msgstr "Calcola il prodotto incrociato di due vettori."
+msgstr "Calcola il prodotto vettoriale di due vettori."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the distance between two points."
-msgstr "Ritorna la distanza tra due punti."
+msgstr "Restituisce la distanza tra due punti."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the dot product of two vectors."
@@ -9261,7 +9293,7 @@ msgid ""
"incident vector, and Nref, the reference vector. If the dot product of I and "
"Nref is smaller than zero the return value is N. Otherwise -N is returned."
msgstr ""
-"Ritorna un vettore che punta nella stessa direzione di quello di "
+"Restituisce un vettore che punta nella stessa direzione di quello di "
"riferimento. La funzione ha tre vettori parametro: N, il vettore da "
"orientare; I, quello incidente; ed Nref, il vettore di riferimento. Se il "
"prodotto scalare di I ed Nref è minore di zero, il valore di ritorno è N. "
@@ -9296,12 +9328,12 @@ msgid ""
"Returns the vector that points in the direction of reflection ( a : incident "
"vector, b : normal vector )."
msgstr ""
-"Ritorna un vettore che punta nella direzione della riflessione ( a : vettore "
-"incidente, b : vettore normale )."
+"Restituisce un vettore che punta nella direzione della riflessione ( a : "
+"vettore incidente, b : vettore normale )."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the vector that points in the direction of refraction."
-msgstr "Ritorna un vettore che punta nella direzione della refrazione."
+msgstr "Restituisce un vettore che punta nella direzione della refrazione."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9313,7 +9345,7 @@ msgid ""
msgstr ""
"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n"
"\n"
-"Ritorna 0.0 se 'x' è minore di 'edge0', ed 1.0 se 'x' è più grande di "
+"Restituisce 0.0 se 'x' è minore di 'edge0', ed 1.0 se 'x' è più grande di "
"'edge1'. Altrimenti, il valore di ritorno è interpolato tra 0.0 ed 1.0 "
"usando i polinomiali di Hermite."
@@ -9327,7 +9359,7 @@ msgid ""
msgstr ""
"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n"
"\n"
-"Ritorna 0.0 se 'x' è minore di 'edge0', ed 1.0 se 'x' è più grande di "
+"Restituisce 0.0 se 'x' è minore di 'edge0', ed 1.0 se 'x' è più grande di "
"'edge1'. Altrimenti, il valore di ritorno è interpolato tra 0.0 ed 1.0 "
"usando i polinomiali di Hermite."
@@ -9339,7 +9371,7 @@ msgid ""
msgstr ""
"Step function( vector(edge), vector(x) ).\n"
"\n"
-"Ritorna 0.0 se 'x' è minore di 'edge', altrimenti 1.0."
+"Restituisce 0.0 se 'x' è minore di 'edge', altrimenti 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9349,7 +9381,7 @@ msgid ""
msgstr ""
"Step function( scalar(edge), vector(x) ).\n"
"\n"
-"Ritorna 0.0 se 'x' è minore di 'edge', altrimenti 1.0."
+"Restituisce 0.0 se 'x' è minore di 'edge', altrimenti 1.0."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Adds vector to vector."
@@ -9357,7 +9389,7 @@ msgstr "Aggiunge un vettore al vettore."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Divides vector by vector."
-msgstr "Divide vettore per vettore."
+msgstr "Divide due vettori."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Multiplies vector by vector."
@@ -9365,7 +9397,7 @@ msgstr "Moltiplica vettore per vettore."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the remainder of the two vectors."
-msgstr "Ritorna il resto dei due vettori."
+msgstr "Restituisce il resto dei due vettori."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Subtracts vector from vector."
@@ -9395,7 +9427,7 @@ msgid ""
"Returns falloff based on the dot product of surface normal and view "
"direction of camera (pass associated inputs to it)."
msgstr ""
-"Ritorna il decadimento in base al prodotto scalare della normale della "
+"Restituisce il decadimento in base al prodotto scalare della normale della "
"superfice e direzione della telecamera (passa gli input associati ad essa)."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -9969,6 +10001,7 @@ msgstr ""
"esistenti?\n"
"Per questo potrebbe volerci un pò."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Gestore dei progetti"
@@ -10409,11 +10442,18 @@ msgid "Batch Rename"
msgstr "Rinomina in blocco"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Sostituisci: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Prefisso"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Suffisso"
#: editor/rename_dialog.cpp
@@ -10461,7 +10501,8 @@ msgid "Per-level Counter"
msgstr "Contatore per Livello"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Se impostato, il contatore si riavvia per ogni gruppo di nodi figlio"
#: editor/rename_dialog.cpp
@@ -10521,7 +10562,8 @@ msgid "Reset"
msgstr "Reset"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Errore Espressione Regolare"
#: editor/rename_dialog.cpp
@@ -10631,6 +10673,10 @@ msgid "Make node as Root"
msgstr "Rendi il nodo come Radice"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "Eliminare %d nodi ed eventuali figli?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Elimina %d nodi?"
@@ -10671,9 +10717,8 @@ msgid ""
"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and "
"cause all properties of the node to be reverted to their default."
msgstr ""
-"Abilitando \"Carica Come Placeholder\" disabiliterà \"Figlio Modificabile\" "
-"e causerà tutte le proprietà del nodo di essere riportare ai loro valori "
-"default."
+"Abilitare \"Carica Come Placeholder\" disabiliterà \"Figlio Modificabile\" e "
+"riporterà tutte le proprietà del nodo ai loro valori predefiniti."
#: editor/scene_tree_dock.cpp
msgid "Make Local"
@@ -10760,15 +10805,14 @@ msgid "Open Documentation"
msgstr "Apri la documentazione"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid ""
"Cannot attach a script: there are no languages registered.\n"
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
"Non è possibile allegare uno script: non ci sono linguaggi registrati.\n"
-"Questo probabilmente perché questo editor è stato costruito con tutti i "
-"moduli di lingua disabilitati."
+"Probabilmente perché questo editor è stato costruito con tutti i moduli di "
+"linguaggio disabilitati."
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -11108,7 +11152,7 @@ msgstr "Processo Figlio Connesso."
#: editor/script_editor_debugger.cpp
msgid "Copy Error"
-msgstr "Copia messaggio di errore"
+msgstr "Copia Errore"
#: editor/script_editor_debugger.cpp
msgid "Video RAM"
@@ -11641,7 +11685,7 @@ msgstr "Cambia nome Argomento"
#: modules/visual_script/visual_script_editor.cpp
msgid "Set Variable Default Value"
-msgstr "Imposta Valore di Default della Variabile"
+msgstr "Imposta Valore Predefinito della Variabile"
#: modules/visual_script/visual_script_editor.cpp
msgid "Set Variable Type"
@@ -11910,7 +11954,7 @@ msgstr "Seleziona o crea una funzione per modificarne il grafico."
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
-msgstr "Elimina Selezionati"
+msgstr "Elimina selezionati"
#: modules/visual_script/visual_script_editor.cpp
msgid "Find Node Type"
@@ -12053,11 +12097,9 @@ msgstr ""
"Debug keystore non configurato nelle Impostazioni dell'Editor né nel preset."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-"Debug keystore non configurato correttamente nelle Impostazioni dell'Editor "
-"né nel preset."
+"Release keystore non configurato correttamente nel preset di esportazione."
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
@@ -12088,12 +12130,11 @@ msgid "Invalid package name:"
msgstr "Nome del pacchetto non valido:"
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
-"Modulo \"GodotPaymentV3\" non valido incluso nell'impostazione del progetto "
+"Modulo \"GodotPaymentV3\" non valido incluso nelle impostazione del progetto "
"\"android/moduli\" (modificato in Godot 3.2.2).\n"
#: platform/android/export/export.cpp
@@ -12101,27 +12142,26 @@ msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "Per utilizzare i plugin \"Use Custom Build\" deve essere abilitato."
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
"\"."
msgstr ""
-"\"Degrees Of Freedom\" è valido solo quando \"Xr Mode\" è \"Oculus Mobile VR"
-"\"."
+"\"Degrees Of Freedom\" è valido solamente quando \"Xr Mode\" è \"Oculus "
+"Mobile VR\"."
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-"\"Hand Tracking\" è valido solo quando \"Xr Mode\" è \"Oculus Mobile VR\"."
+"\"Hand Tracking\" è valido solo quando \"Xr Mode\" è impostato su \"Oculus "
+"Mobile VR\"."
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-"\"Focus Awareness\" è valida solo quando \"Xr Mode\" è \"Oculus Mobile VR\"."
+"\"Focus Awareness\" è valido solo quando \"Xr Mode\" è impostato su \"Oculus "
+"Mobile VR\"."
#: platform/android/export/export.cpp
msgid ""
@@ -12193,7 +12233,7 @@ msgstr "Esegui nel Browser"
#: platform/javascript/export/export.cpp
msgid "Run exported HTML in the system's default browser."
-msgstr "Esegui HTML esportato all'interno del browser di sistema di default."
+msgstr "Esegui il codice HTML esportato nel browser di sistema predefinito."
#: platform/javascript/export/export.cpp
msgid "Could not write file:"
@@ -12217,7 +12257,7 @@ msgstr "Impossibile leggere il file immagine di avvio splash:"
#: platform/javascript/export/export.cpp
msgid "Using default boot splash image."
-msgstr "Utilizzando l'immagine di splash di avvio predefinita."
+msgstr "Utilizzando l'immagine splash predefinita."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -12346,6 +12386,15 @@ msgstr ""
"Perché CollisionShape2D funzioni deve essere fornita una forma. Si prega di "
"creare una risorsa forma (shape)!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Le forme basate sui poligoni non sono state fatte per essere usate nè "
+"modificate direttamente tramite il nodo CollisionShape2D. Per piacere usa "
+"invece il nodo CollisionPolygon2D."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12618,6 +12667,11 @@ msgstr ""
"Le GIProbes non sono supportate dal driver video GLES2.\n"
"In alternativa, usa una BakedLightmap."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12848,9 +12902,9 @@ msgid ""
"functions. Making them visible for editing is fine, but they will hide upon "
"running."
msgstr ""
-"I popup saranno nascosti per default affinché non chiami la funzione "
-"popup(), oppure una delle funzioni popup*(). Farli diventare visibili per "
-"modificarli va bene, ma scompariranno all'esecuzione."
+"I popup saranno nascosti di predefinita finchè non chiami popup() o una "
+"delle qualsiasi funzioni popup*(). Farli diventare visibili per modificarli "
+"va bene, ma scompariranno all'esecuzione."
#: scene/gui/range.cpp
msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0."
@@ -12924,6 +12978,22 @@ msgstr "Varyings può essere assegnato soltanto nella funzione del vertice."
msgid "Constants cannot be modified."
msgstr "Le constanti non possono essere modificate."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Filesystem e dock di importazione"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "L'eseguibile, dopo l'esportazione o la distribuzione, attenterà di "
+#~ "connettersi con l'indirizzo IP di questo computer per farsi eseguire il "
+#~ "debug."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "La scena attuale non è mai stata salvata, si prega di salvarla prima di "
+#~ "eseguirla."
+
#~ msgid "Not in resource path."
#~ msgstr "Non è nel percorso risorse."
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index 35e590d629..d1a368346d 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -36,7 +36,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
+"PO-Revision-Date: 2020-09-22 03:23+0000\n"
"Last-Translator: Wataru Onuki <bettawat@yahoo.co.jp>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/"
"godot/ja/>\n"
@@ -45,7 +45,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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -331,11 +331,11 @@ msgstr "キュービック"
#: editor/animation_track_editor.cpp
msgid "Clamp Loop Interp"
-msgstr "ループインタプリタを抑え込み(clamp)"
+msgstr "ループ補間をクランプ"
#: editor/animation_track_editor.cpp
msgid "Wrap Loop Interp"
-msgstr "ループインタプリタをラップ(wrap)"
+msgstr "ループ補間をラップ"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -533,8 +533,7 @@ msgstr "警告:インポートしたアニメーションを編集していま
#: editor/animation_track_editor.cpp
msgid "Select an AnimationPlayer node to create and edit animations."
msgstr ""
-"アニメーションを作って編集するために AnimationPlayer ノードへのパスを選択して"
-"下さい。"
+"アニメーションを作って編集するには、 AnimationPlayer ノードを選択して下さい。"
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
@@ -558,6 +557,7 @@ msgid "Seconds"
msgstr "秒"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "フレームレート(FPS)"
@@ -609,7 +609,7 @@ msgstr "前のステップへ"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
-msgstr "アニメーションの最適化"
+msgstr "アニメーションを最適化"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation"
@@ -736,7 +736,7 @@ msgstr "大文字小文字を区別する"
msgid "Whole Words"
msgstr "単語全体"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "置換"
@@ -840,7 +840,7 @@ msgstr "追加の呼出し引数:"
#: editor/connections_dialog.cpp
msgid "Receiver Method:"
-msgstr "メソッドの選択:"
+msgstr "受信側メソッド:"
#: editor/connections_dialog.cpp
msgid "Advanced"
@@ -899,7 +899,7 @@ msgstr "'%s' を '%s' から切断"
#: editor/connections_dialog.cpp
msgid "Disconnect all from signal: '%s'"
-msgstr "シグナル '%s' から全てを切断"
+msgstr "シグナル '%s' からすべてを切断"
#: editor/connections_dialog.cpp
msgid "Connect..."
@@ -920,15 +920,20 @@ msgstr "接続を編集:"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
-msgstr "シグナル %s から全ての接続を除去してもよろしいですか?"
+msgstr "シグナル %s からすべての接続を除去してもよろしいですか?"
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
msgstr "シグナル"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "タイルを絞り込む"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
-msgstr "このシグナルから全ての接続を除去してもよろしいですか?"
+msgstr "このシグナルからすべての接続を除去してもよろしいですか?"
#: editor/connections_dialog.cpp
msgid "Disconnect All"
@@ -964,7 +969,7 @@ msgid "Recent:"
msgstr "最近:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "検索:"
@@ -1144,6 +1149,9 @@ msgstr "プロジェクト創始者"
msgid "Lead Developer"
msgstr "開発リーダー"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "プロジェクトマネージャー "
@@ -1165,6 +1173,14 @@ msgid "Gold Sponsors"
msgstr "ゴールドスポンサー"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "シルバースポンサー"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "ブロンズスポンサー"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "ミニスポンサー"
@@ -1482,7 +1498,7 @@ msgstr "自動読込みの並べ替え"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr ""
+msgstr "自動読み込みを追加出来ません:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1641,16 +1657,17 @@ msgid "Scene Tree Editing"
msgstr "シーンツリーの編集"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "インポートドック"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "ノードドック"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "ファイルシステムとインポートドック"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "ファイルシステム"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "インポートドック"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1762,7 +1779,7 @@ msgstr "Godot機能プロファイル"
#: editor/editor_feature_profile.cpp
msgid "Import Profile(s)"
-msgstr "プロファイルのインポート"
+msgstr "プロファイルをインポート"
#: editor/editor_feature_profile.cpp
msgid "Export Profile"
@@ -1915,7 +1932,7 @@ msgstr "ディレクトリとファイル:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "プレビュー:"
@@ -2353,10 +2370,6 @@ msgid "There is no defined scene to run."
msgstr "実行するシーンが定義されていません。"
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "現在のシーンは保存されませんでした。実行する前に保存してください。"
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "サブプロセスを開始できませんでした!"
@@ -2442,13 +2455,15 @@ msgstr "保存されていないシーンを読み込むことはできません
#: editor/editor_node.cpp
msgid "Reload Saved Scene"
-msgstr "保存済みのシーンをリロード"
+msgstr "保存済みシーンをリロード"
#: editor/editor_node.cpp
msgid ""
"The current scene has unsaved changes.\n"
"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
+"現在のシーンには未保存の変更があります。\n"
+"それでも保存済みシーンをリロードしますか? この動作は取り消せません。"
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2754,11 +2769,11 @@ msgstr "バージョンコントロール"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Set Up Version Control"
-msgstr "バージョン管理のセットアップ"
+msgstr "バージョン管理をセットアップ"
#: editor/editor_node.cpp
msgid "Shut Down Version Control"
-msgstr "バージョン管理の終了"
+msgstr "バージョン管理を終了"
#: editor/editor_node.cpp
msgid "Export..."
@@ -2795,24 +2810,28 @@ msgstr "リモートデバッグでデプロイ"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"エクスポートまたはデプロイを行う場合、生成された実行ファイルはデバッグのため"
-"に、このコンピューターのIPに接続を試みます。"
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "ネットワークファイルシステムでスモールデプロイ"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"このオプションを有効にすると、エクスポートまたはデプロイ時に最小限の実行可能"
"ファイルが生成されます。\n"
@@ -2826,9 +2845,10 @@ msgid "Visible Collision Shapes"
msgstr "コリジョン形状の表示"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"このオプションを有効にすると、コリジョン形状とレイキャストノードが、ゲーム実"
"行中にも表示されるようになります。"
@@ -2838,38 +2858,43 @@ msgid "Visible Navigation"
msgstr "ナビゲーションの表示"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"このオプションを有効にすると、ナビゲーションメッシュが、ゲーム実行中にも表示"
"されるようになります。"
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "シーンの変更を同期"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"このオプションを有効にすると、エディタからシーンに加えられた変更が、実行中の"
"ゲームに反映されるようになります。\n"
"リモート実行の場合、ネットワークファイルシステムを使うとより効果的です。"
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "スクリプトの変更を同期"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"このオプションを有効にすると、保存したスクリプトが、実行中のゲームに反映され"
"るようになります。\n"
@@ -2897,15 +2922,15 @@ msgstr "スクリーンショットはEditor Data / Settingsフォルダに保
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr "フルスクリーンの有効化 / 無効化"
+msgstr "フルスクリーンを有効化 / 無効化"
#: editor/editor_node.cpp
msgid "Toggle System Console"
-msgstr "システムコンソールの有効化 / 無効化"
+msgstr "システムコンソールを有効化 / 無効化"
#: editor/editor_node.cpp
msgid "Open Editor Data/Settings Folder"
-msgstr "エディタのデータ・設定フォルダを開く"
+msgstr "エディタのデータ / 設定フォルダを開く"
#: editor/editor_node.cpp
msgid "Open Editor Data Folder"
@@ -2932,7 +2957,7 @@ msgstr "ヘルプ"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "検索"
@@ -3062,13 +3087,13 @@ msgid ""
"the \"Use Custom Build\" option should be enabled in the Android export "
"preset."
msgstr ""
-"この操作は \"res://android/build\" にソーステンプレートをインストールしアンド"
-"ロイドのカスタムビルドを設定します。\n"
-"後から設定に変更を加えたり、エクスポート時にカスタムAPKをビルドできます。(モ"
-"ジュールを追加する、AndroidManifest.xmlを変更する等)\n"
+"この操作は \"res://android/build\" にソーステンプレートをインストールし、アン"
+"ドロイドのカスタムビルドを設定します。\n"
+"後から設定に変更を加えたり、エクスポート時にカスタムAPKをビルドできます (モ"
+"ジュールを追加する、AndroidManifest.xmlを変更する等)。\n"
"APKビルドの初期設定の代わりにカスタムビルド設定を使うためには、アンドロイドの"
-"エクスポート設定の「カスタムビルドを使用する」のオプションが有効化されている"
-"必要があることに注意してください。"
+"エクスポート設定の「Use Custom Build (カスタムビルドを使用する)」のオプション"
+"が有効化されている必要があることに注意してください。"
#: editor/editor_node.cpp
msgid ""
@@ -3350,9 +3375,11 @@ msgid "Add Key/Value Pair"
msgstr "キー/値のペアを追加"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"このプラットフォームで実行可能なエクスポートプリセットがありません。\n"
"エクスポートメニューに実行可能なプリセットを追加してください。"
@@ -3980,6 +4007,7 @@ msgstr "インポート済スクリプトの実行中にエラー:"
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
msgstr ""
+"`post_import()` メソッド内で、Nodeを継承したオブジェクトを返しましたか?"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -4742,7 +4770,7 @@ msgstr "プレイモード:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "AnimationTree"
-msgstr "AnimationTree(アニメーションツリー)"
+msgstr "アニメーションツリー"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "New name:"
@@ -5111,7 +5139,7 @@ msgid "Bake Lightmaps"
msgstr "ライトマップを焼き込む"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "プレビュー"
@@ -5364,7 +5392,7 @@ msgstr "IKチェーンをクリア"
msgid ""
"Warning: Children of a container get their position and size determined only "
"by their parent."
-msgstr "警告:コンテナの子の位置とサイズは、親によってのみ決定されます。"
+msgstr "注意:コンテナの子の位置とサイズは、親によってのみ決定されます。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
@@ -7013,19 +7041,19 @@ msgstr "右インデント"
#: editor/plugins/script_text_editor.cpp
msgid "Toggle Comment"
-msgstr "コメントの切り替え"
+msgstr "コメントアウト / 解除"
#: editor/plugins/script_text_editor.cpp
msgid "Fold/Unfold Line"
-msgstr "行を折りたたむ/展開する"
+msgstr "行を折りたたむ / 展開"
#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
-msgstr "全ての行を折りたたむ"
+msgstr "すべての行を折りたたむ"
#: editor/plugins/script_text_editor.cpp
msgid "Unfold All Lines"
-msgstr "全ての行を展開する"
+msgstr "すべての行を展開"
#: editor/plugins/script_text_editor.cpp
msgid "Clone Down"
@@ -7037,7 +7065,7 @@ msgstr "シンボルを補完"
#: editor/plugins/script_text_editor.cpp
msgid "Evaluate Selection"
-msgstr "選択範囲を評価する"
+msgstr "選択範囲を評価"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
@@ -7322,11 +7350,11 @@ msgstr "シェーディングなしで表示"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Environment"
-msgstr "環境表示"
+msgstr "環境を表示"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Gizmos"
-msgstr "ギズモ(Gizmo)を表示"
+msgstr "ギズモを表示"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Information"
@@ -7412,6 +7440,11 @@ msgid ""
"Closed eye: Gizmo is hidden.\n"
"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
msgstr ""
+"クリックで可視状態のオン / オフ。\n"
+"\n"
+"開いた目: ギズモは可視。\n"
+"閉じた目: ギズモは非可視。\n"
+"半開きの目: ギズモは非透明な面を通しても可視 (「X線」)。"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
@@ -7526,7 +7559,7 @@ msgstr "ギズモ"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
-msgstr "原点の表示"
+msgstr "ビューの原点"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Grid"
@@ -7571,7 +7604,7 @@ msgstr "Z-Farを表示:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Change"
-msgstr "変換の変更"
+msgstr "トランスフォームの変更"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate:"
@@ -7750,7 +7783,8 @@ msgid "New Animation"
msgstr "新規アニメーション"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "速度(FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8336,7 +8370,7 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Set Tile Region"
-msgstr "タイル領域の設定"
+msgstr "タイル領域を設定"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create Tile"
@@ -8545,7 +8579,7 @@ msgstr "Sampler"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add input port"
-msgstr "入力ポートの追加"
+msgstr "入力ポートを追加"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add output port"
@@ -8577,7 +8611,7 @@ msgstr "出力ポートの削除"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set expression"
-msgstr "式の設定"
+msgstr "式を設定"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Resize VisualShader node"
@@ -8646,11 +8680,11 @@ msgstr "グレースケール関数。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts HSV vector to RGB equivalent."
-msgstr "HSVベクトルをRGBベクトルに変換します。"
+msgstr "HSVベクトルをRGBベクトルに変換。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts RGB vector to HSV equivalent."
-msgstr "RGBベクトルをHSVベクトルに変換します。"
+msgstr "RGBベクトルをHSVベクトルに変換。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Sepia function."
@@ -8984,7 +9018,7 @@ msgstr "パラメータの符号を抽出します。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the sine of the parameter."
-msgstr "パラメータの符号を返します。"
+msgstr "パラメータのサインを返します。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the hyperbolic sine of the parameter."
@@ -9044,7 +9078,7 @@ msgstr "スカラーをスカラーで乗算します。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the remainder of the two scalars."
-msgstr "2つのスカラーの残りを返します。"
+msgstr "2つのスカラーの剰余を返します。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Subtracts scalar from scalar."
@@ -9272,7 +9306,7 @@ msgstr "ベクトルでベクトルを乗算します。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the remainder of the two vectors."
-msgstr "2つのベクトルの残りを返します。"
+msgstr "2つのベクトルの剰余を返します。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Subtracts vector from vector."
@@ -9834,7 +9868,7 @@ msgid ""
"Remove %d projects from the list?\n"
"The project folders' contents won't be modified."
msgstr ""
-"%d プロジェクトを一覧から削除しますか?\n"
+"%d プロジェクトを一覧から削除しますか?\n"
"プロジェクトフォルダの内容は変更されません。"
#: editor/project_manager.cpp
@@ -9842,7 +9876,7 @@ msgid ""
"Remove this project from the list?\n"
"The project folder's contents won't be modified."
msgstr ""
-"このプロジェクトを一覧から削除しますか?\n"
+"このプロジェクトを一覧から削除しますか?\n"
"プロジェクトフォルダの内容は変更されません。"
#: editor/project_manager.cpp
@@ -9870,6 +9904,7 @@ msgstr ""
"既存のGodotプロジェクトの%sフォルダをスキャンしますか?\n"
"これにはしばらく時間がかかります。"
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "プロジェクトマネージャー"
@@ -9963,11 +9998,11 @@ msgstr "入力アクションイベントの名前を変更する"
#: editor/project_settings_editor.cpp
msgid "Change Action deadzone"
-msgstr "アクションデッドゾーンの変更"
+msgstr "アクション デッドゾーンを変更"
#: editor/project_settings_editor.cpp
msgid "Add Input Action Event"
-msgstr "入力アクションイベントを追加"
+msgstr "入力アクション イベントを追加"
#: editor/project_settings_editor.cpp
msgid "All Devices"
@@ -10071,7 +10106,7 @@ msgstr "マウスホイールを下に。"
#: editor/project_settings_editor.cpp
msgid "Add Global Property"
-msgstr "グローバルプロパティの追加"
+msgstr "グローバルプロパティを追加"
#: editor/project_settings_editor.cpp
msgid "Select a setting item first!"
@@ -10310,11 +10345,18 @@ msgid "Batch Rename"
msgstr "名前の一括変更"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "置換: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "プレフィックス"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "サフィックス"
#: editor/rename_dialog.cpp
@@ -10362,7 +10404,8 @@ msgid "Per-level Counter"
msgstr "レベルごとのカウンター"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "設定すると、子ノードのグループごとにカウンタが再起動します"
#: editor/rename_dialog.cpp
@@ -10422,7 +10465,8 @@ msgid "Reset"
msgstr "リセット"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "正規表現エラー"
#: editor/rename_dialog.cpp
@@ -10531,6 +10575,10 @@ msgid "Make node as Root"
msgstr "ノードをルートにする"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "%d ノードとその子ノードすべてを削除しますか?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "%d ノードを削除しますか?"
@@ -10664,6 +10712,9 @@ msgid ""
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
+"スクリプトをアタッチできません: 言語がひとつも登録されていません。\n"
+"おそらくこのエディタは、すべての言語モジュールを無効化してビルドされていま"
+"す。"
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -11977,26 +12028,36 @@ msgid ""
"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" "
"project setting (changed in Godot 3.2.2).\n"
msgstr ""
+"「android/modules」に含まれる「GodotPaymentV3」モジュールのプロジェクト設定が"
+"無効です (Godot 3.2.2 にて変更)。\n"
#: platform/android/export/export.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
+"プラグインを利用するには「Use Custom Build (カスタムビルドを使用する)」が有効"
+"になっている必要があります。"
#: platform/android/export/export.cpp
msgid ""
"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
"\"."
msgstr ""
+"\"Degrees Of Freedom\" は \"Xr Mode\" が \"Oculus Mobile VR\" の場合にのみ有"
+"効になります。"
#: platform/android/export/export.cpp
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"\"Hand Tracking\" は \"Xr Mode\" が \"Oculus Mobile VR\" の場合にのみ有効にな"
+"ります。"
#: platform/android/export/export.cpp
msgid ""
"\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
+"\"Focus Awareness\" は \"Xr Mode\" が \"Oculus Mobile VR\" の場合にのみ有効に"
+"なります。"
#: platform/android/export/export.cpp
msgid ""
@@ -12208,6 +12269,14 @@ msgstr ""
"関数に対して CollisionShape2D の形状(シェイプ)を指定する必要があります。その"
"ためのシェイプリソースを作成してください!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"ポリゴンベースのシェイプは、CollisionShape2Dノードで使用したり直接編集したり"
+"するには適しません。代わりにCollisionPolygon2Dノードを使用してください。"
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12476,6 +12545,11 @@ msgstr ""
"GIProbesはGLES2ビデオドライバではサポートされていません。\n"
"代わりにBakedLightmapを使用してください。"
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "90度を超える角度のスポットライトは、シャドウを投影できません。"
@@ -12780,6 +12854,19 @@ msgstr "Varying変数は頂点関数にのみ割り当てることができま
msgid "Constants cannot be modified."
msgstr "定数は変更できません。"
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "ファイルシステムとインポートドック"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "エクスポートまたはデプロイを行う場合、生成された実行ファイルはデバッグのた"
+#~ "めに、このコンピューターのIPに接続を試みます。"
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "現在のシーンは保存されませんでした。実行する前に保存してください。"
+
#~ msgid "Not in resource path."
#~ msgstr "リソースパスにありません。"
diff --git a/editor/translations/ka.po b/editor/translations/ka.po
index af03b1af9e..a59a42333f 100644
--- a/editor/translations/ka.po
+++ b/editor/translations/ka.po
@@ -552,6 +552,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -738,7 +739,7 @@ msgstr "საქმის დამთხვევა"
msgid "Whole Words"
msgstr "მთლიანი სიტყვები"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "ჩანაცვლება"
@@ -941,6 +942,11 @@ msgid "Signals"
msgstr "სიგნალები"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "დამაკავშირებელი სიგნალი:"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -979,7 +985,7 @@ msgid "Recent:"
msgstr "ბოლო:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "ძებნა:"
@@ -1164,6 +1170,9 @@ msgstr "პროექტის დამფუძნებლები"
msgid "Lead Developer"
msgstr "მთავარი დეველოპერი"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "პროექტის მენეჯერი. "
@@ -1185,6 +1194,16 @@ msgid "Gold Sponsors"
msgstr "ოქროს სპონსორები"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "ვერცხლის დონატორები"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "ბრინჯაოს დონატორები"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "მინი სპონსორები"
@@ -1661,15 +1680,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1944,7 +1963,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2365,10 +2384,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2793,22 +2808,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2817,8 +2836,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2827,32 +2846,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2913,7 +2932,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3317,7 +3336,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -5096,7 +5116,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7746,7 +7766,7 @@ msgid "New Animation"
msgstr "ანიმაციის ოპტიმიზაცია"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9787,6 +9807,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -10223,11 +10244,16 @@ msgid "Batch Rename"
msgstr "საქმის დამთხვევა"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "ჩანაცვლება"
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10273,7 +10299,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10333,7 +10359,7 @@ msgid "Reset"
msgstr "ზუმის საწყისზე დაყენება"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10441,6 +10467,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "წაშლა"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "წაშლა"
@@ -12092,6 +12123,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12304,6 +12341,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index 462c59d319..d39f172539 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -18,11 +18,12 @@
# Tilto_ <tilto0822@develable.xyz>, 2020.
# Myeongjin Lee <aranet100@gmail.com>, 2020.
# Doyun Kwon <caen4516@gmail.com>, 2020.
+# Jun Hyung Shin <shmishmi79@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
+"PO-Revision-Date: 2020-09-16 18:09+0000\n"
"Last-Translator: Ch. <ccwpc@hanmail.net>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/"
"godot/ko/>\n"
@@ -31,7 +32,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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -540,6 +541,7 @@ msgid "Seconds"
msgstr "초"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "초당 프레임"
@@ -718,7 +720,7 @@ msgstr "대소문자 구분"
msgid "Whole Words"
msgstr "단어 단위로"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "바꾸기"
@@ -911,6 +913,11 @@ msgid "Signals"
msgstr "시그널"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "타일 필터"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "이 시그널의 모든 연결을 삭제할까요?"
@@ -948,7 +955,7 @@ msgid "Recent:"
msgstr "최근 기록:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "검색:"
@@ -1128,6 +1135,9 @@ msgstr "프로젝트 창립자"
msgid "Lead Developer"
msgstr "리드 개발자"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "프로젝트 매니저 "
@@ -1149,6 +1159,14 @@ msgid "Gold Sponsors"
msgstr "골드 스폰서"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "실버 스폰서"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "브론즈 스폰서"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "미니 스폰서"
@@ -1623,16 +1641,17 @@ msgid "Scene Tree Editing"
msgstr "씬 트리 편집"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "독 가져오기"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "노드 도킹"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "파일 시스템과 가져오기 독"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "파일 시스템"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "독 가져오기"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1896,7 +1915,7 @@ msgstr "디렉토리 & 파일:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "미리 보기:"
@@ -2329,10 +2348,6 @@ msgid "There is no defined scene to run."
msgstr "실행할 씬이 설정되지 않았습니다."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "현재 씬이 아직 저장되지 않았습니다. 실행하기 전에 저장해주세요."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "하위 프로세스를 시작할 수 없습니다!"
@@ -2770,24 +2785,28 @@ msgstr "원격 디버그와 함께 배포"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"내보내거나 배포할 때, 결과 실행 파일은 디버깅을 위해 이 컴퓨터의 IP와 연결을 "
-"시도할 것입니다."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "네트워크 파일 시스템을 사용하여 작게 배포"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"이 설정을 켜면, 내보내거나 배포할 때 최소한의 실행 파일을 만듭니다.\n"
"이 경우, 실행 파일이 네트워크 너머에 있는 편집기의 파일 시스템을 사용합니"
@@ -2800,9 +2819,10 @@ msgid "Visible Collision Shapes"
msgstr "충돌 모양 보이기"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"이 설정을 켜면 게임을 실행하는 동안 (2D와 3D용) Collision 모양과 Raycast 노드"
"가 보이게 됩니다."
@@ -2812,23 +2832,26 @@ msgid "Visible Navigation"
msgstr "내비게이션 보이기"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"이 설정을 켜면, 게임을 실행하는 동안 Navigation 메시와 폴리곤이 보이게 됩니"
"다."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "씬 변경 사항 동기화"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"이 설정이 활성화된 경우, 편집기에서 씬을 수정하면 실행 중인 게임에도 반영됩니"
"다.\n"
@@ -2836,15 +2859,17 @@ msgstr ""
"적입니다."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "스크립트 변경 사항 동기화"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"이 설정이 활성화된 경우, 어떤 스크립트든 저장하면 실행중인 게임에도 새로고침"
"되어 반영됩니다.\n"
@@ -2908,7 +2933,7 @@ msgstr "도움말"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "검색"
@@ -3320,9 +3345,11 @@ msgid "Add Key/Value Pair"
msgstr "키/값 쌍 추가"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"이 플랫폼으로 실행할 수 있는 내보내기 프리셋이 없습니다.\n"
"내보내기 메뉴에서 실행할 수 있는 프리셋을 추가해주세요."
@@ -4518,7 +4545,7 @@ msgstr "애니메이션 도구"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation"
-msgstr "애니메이션(Animation)"
+msgstr "애니메이션"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Edit Transitions..."
@@ -5080,7 +5107,7 @@ msgid "Bake Lightmaps"
msgstr "라이트맵 굽기"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "미리 보기"
@@ -7363,7 +7390,6 @@ msgid "XForm Dialog"
msgstr "XForm 대화 상자"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid ""
"Click to toggle between visibility states.\n"
"\n"
@@ -7714,7 +7740,8 @@ msgid "New Animation"
msgstr "새 애니메이션"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "속도 (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -7896,7 +7923,7 @@ msgstr "체크된 라디오 항목"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Named Sep."
-msgstr "이름있는 분기."
+msgstr "이름있는 구분자."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Submenu"
@@ -9806,6 +9833,7 @@ msgstr ""
"Godot 프로젝트를 확인하기 위해 %s 폴더를 스캔할까요?\n"
"시간이 걸릴 수 있습니다."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "프로젝트 매니저"
@@ -10245,11 +10273,18 @@ msgid "Batch Rename"
msgstr "일괄 이름 바꾸기"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "바꾸기: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "접두사"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "접미사"
#: editor/rename_dialog.cpp
@@ -10297,7 +10332,8 @@ msgid "Per-level Counter"
msgstr "단계별 카운터"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "설정하면 각 그룹의 자식 노드의 카운터를 다시 시작합니다"
#: editor/rename_dialog.cpp
@@ -10357,7 +10393,8 @@ msgid "Reset"
msgstr "되돌리기"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "정규 표현식 오류"
#: editor/rename_dialog.cpp
@@ -10420,7 +10457,7 @@ msgstr "씬 인스턴스화"
#: editor/scene_tree_dock.cpp
msgid "Replace with Branch Scene"
-msgstr "분기 씬으로 교체"
+msgstr "가지 씬으로 교체"
#: editor/scene_tree_dock.cpp
msgid "Instance Child Scene"
@@ -10465,6 +10502,10 @@ msgid "Make node as Root"
msgstr "노드를 루트로 만들기"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "%d 개의 노드와 모든 자식 노드를 삭제할까요?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "%d개의 노드를 삭제할까요?"
@@ -10625,7 +10666,7 @@ msgstr "다른 씬에서 병합하기"
#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
msgid "Save Branch as Scene"
-msgstr "분기를 씬으로 저장"
+msgstr "가지를 씬으로 저장"
#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
msgid "Copy Node Path"
@@ -12135,6 +12176,14 @@ msgstr ""
"CollisionShape2D가 작동하려면 반드시 Shape가 있어야 합니다. Shape 리소스를 만"
"들어주세요!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"폴리곤 기반 Shape는 CollisionShape2D에 추가하거나 거기서 편집하게끔 설계하지 "
+"않았습니다. 대신 CollisionPolygon2D 노드를 사용하십시오."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12393,6 +12442,11 @@ msgstr ""
"GIProbe는 GLES2 비디오 드라이버에서 지원하지 않습니다.\n"
"대신 BakedLightmap을 사용하세요."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight의 각도를 90도 이상으로 잡게되면 그림자를 투영할 수 없습니다."
@@ -12692,6 +12746,19 @@ msgstr "Varying은 꼭짓점 함수에만 지정할 수 있습니다."
msgid "Constants cannot be modified."
msgstr "상수는 수정할 수 없습니다."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "파일 시스템과 가져오기 독"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "내보내거나 배포할 때, 결과 실행 파일은 디버깅을 위해 이 컴퓨터의 IP와 연결"
+#~ "을 시도할 것입니다."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "현재 씬이 아직 저장되지 않았습니다. 실행하기 전에 저장해주세요."
+
#~ msgid "Not in resource path."
#~ msgstr "리소스 경로에 없습니다."
diff --git a/editor/translations/lt.po b/editor/translations/lt.po
index fdf9ef15ae..c723a4ebb5 100644
--- a/editor/translations/lt.po
+++ b/editor/translations/lt.po
@@ -4,12 +4,14 @@
# This file is distributed under the same license as the Godot source code.
# Ignas Kiela <ignaskiela@super.lt>, 2017.
# Kornelijus <kornelijus.github@gmail.com>, 2017, 2018.
+# Ignotas Gražys <ignotas.gr@gmail.com>, 2020.
+# Kornelijus Tvarijanavičius <kornelitvari@protonmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2018-12-13 14:41+0100\n"
-"Last-Translator: Kornelijus <kornelijus.github@gmail.com>\n"
+"PO-Revision-Date: 2020-09-22 03:23+0000\n"
+"Last-Translator: Kornelijus Tvarijanavičius <kornelitvari@protonmail.com>\n"
"Language-Team: Lithuanian <https://hosted.weblate.org/projects/godot-engine/"
"godot/lt/>\n"
"Language: lt\n"
@@ -18,34 +20,35 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n%10>=2 && (n%100<10 || n"
"%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3;\n"
-"X-Generator: Poedit 2.2\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
msgstr ""
+"Netinkamo tipo argumentas į funkciją convert(), naudokite TYPE_* konstantas."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "Tikėtasi 1 (simbolio) ilgio eilutės."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
+msgstr "Nepakanka baitų iššifruoti baitams, arba netinkamas formatas."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr ""
+msgstr "Netinkama įvestis išraiškoje %i (nepraleista)"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr ""
+msgstr "self nenaudojamas, nes atvejis yra null (nepraleistas)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr ""
+msgstr "Netinkami operatoriaus operandai %s, %s ir %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
@@ -57,7 +60,7 @@ msgstr ""
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr ""
+msgstr "Netinkami argumentai sukurti '%s'"
#: core/math/expression.cpp
msgid "On call to '%s':"
@@ -65,31 +68,31 @@ msgstr ""
#: core/ustring.cpp
msgid "B"
-msgstr ""
+msgstr "B"
#: core/ustring.cpp
msgid "KiB"
-msgstr ""
+msgstr "KiB"
#: core/ustring.cpp
msgid "MiB"
-msgstr ""
+msgstr "MiB"
#: core/ustring.cpp
msgid "GiB"
-msgstr ""
+msgstr "GiB"
#: core/ustring.cpp
msgid "TiB"
-msgstr ""
+msgstr "TiB"
#: core/ustring.cpp
msgid "PiB"
-msgstr ""
+msgstr "PiB"
#: core/ustring.cpp
msgid "EiB"
-msgstr ""
+msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
@@ -97,40 +100,40 @@ msgstr "Nemokama"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
-msgstr ""
+msgstr "Subalansuotas"
#: editor/animation_bezier_editor.cpp
msgid "Mirror"
-msgstr ""
+msgstr "Atspindėti"
#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
+#, fuzzy
msgid "Time:"
msgstr "Trukmė:"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Value:"
-msgstr "Naujas pavadinimas:"
+msgstr "Reikšmė:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr ""
+msgstr "Įrašyti raktažodį čia"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
-msgstr ""
+msgstr "Kopijuoti pasirinktą (-us) raktažodį (-žius)"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr ""
+msgstr "Ištrinti pasirinktus raktažodžius"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
-msgstr ""
+msgstr "Pridėti Bezjė tašką"
#: editor/animation_bezier_editor.cpp
msgid "Move Bezier Points"
-msgstr ""
+msgstr "Judinti Bezjė taškus"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
@@ -188,22 +191,21 @@ msgid "Anim Multi Change Call"
msgstr "Animacija: Pakeisti Iškvietimą"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Length"
-msgstr "Animacijos Nodas"
+msgstr "Pakeisti animacijos ilgį"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "Pakeisti animacijos ciklą"
#: editor/animation_track_editor.cpp
msgid "Property Track"
-msgstr ""
+msgstr "Ypatybės seklys"
#: editor/animation_track_editor.cpp
msgid "3D Transform Track"
-msgstr ""
+msgstr "3D transformacijų seklys"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
@@ -211,7 +213,7 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
-msgstr ""
+msgstr "Bezjė kreivės seklys"
#: editor/animation_track_editor.cpp
msgid "Audio Playback Track"
@@ -227,32 +229,29 @@ msgid "Animation length (frames)"
msgstr "Animacija"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation length (seconds)"
-msgstr "Animacijos Nodas"
+msgstr "Animacijos ilgis (sekundėmis)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track"
-msgstr "Animacija: Pridėti Takelį"
+msgstr "Pridėti įrašą"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation Looping"
-msgstr "Animacijos Nodas"
+msgstr "Animacijos ciklas"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Functions:"
-msgstr ""
+msgstr "Funkcijos:"
#: editor/animation_track_editor.cpp
msgid "Audio Clips:"
-msgstr ""
+msgstr "Garso įrašai:"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
-msgstr ""
+msgstr "Animacijų įrašai:"
#: editor/animation_track_editor.cpp
msgid "Change Track Path"
@@ -260,38 +259,35 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
-msgstr ""
+msgstr "Įrašo koregavimas: įjungtas/ išjungtas."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Interpolation Mode"
-msgstr "Animacijos Nodas"
+msgstr "Interpoliacijos režimas"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Remove this track."
-msgstr "Animacija: Panaikinti Takelį"
+msgstr "Panaikinti šį įrašą."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Time (s): "
-msgstr "Trukmė:"
+msgstr "Laikas (-ai): "
#: editor/animation_track_editor.cpp
msgid "Toggle Track Enabled"
-msgstr ""
+msgstr "Koreguoti įrašą į įjungtas"
#: editor/animation_track_editor.cpp
msgid "Continuous"
-msgstr ""
+msgstr "Tęstinis"
#: editor/animation_track_editor.cpp
msgid "Discrete"
@@ -299,24 +295,24 @@ msgstr "Diskretus"
#: editor/animation_track_editor.cpp
msgid "Trigger"
-msgstr ""
+msgstr "Gaidukas"
#: editor/animation_track_editor.cpp
msgid "Capture"
-msgstr ""
+msgstr "Fiksuoti"
#: editor/animation_track_editor.cpp
msgid "Nearest"
-msgstr ""
+msgstr "Artimiausias"
#: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp
#: editor/property_editor.cpp
msgid "Linear"
-msgstr ""
+msgstr "Linijinis"
#: editor/animation_track_editor.cpp
msgid "Cubic"
-msgstr ""
+msgstr "Kubinis"
#: editor/animation_track_editor.cpp
msgid "Clamp Loop Interp"
@@ -329,36 +325,31 @@ msgstr ""
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr ""
+msgstr "Įterpti raktažodį"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Duplicate Key(s)"
-msgstr "Duplikuoti"
+msgstr "Kopijuoti raktažodį (-ius)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Delete Key(s)"
-msgstr "Ištrinti Efektą"
+msgstr "Ištrinti raktažodį (-ius)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Update Mode"
-msgstr "Animacijos Nodas"
+msgstr "Keisti animacijos atnaujinimo režimą"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Interpolation Mode"
-msgstr "Animacijos Nodas"
+msgstr "Keisti animacijos interpoliacijos režimą"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Loop Mode"
-msgstr "Animacijos Nodas"
+msgstr "Keiskite animacijos ciklo režimą"
#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
-msgstr "Animacija: Panaikinti Takelį"
+msgstr "Animacija: panaikinti įrašą"
#: editor/animation_track_editor.cpp
msgid "Create NEW track for %s and insert key?"
@@ -382,7 +373,7 @@ msgstr "Sukurti"
#: editor/animation_track_editor.cpp
msgid "Anim Insert"
-msgstr ""
+msgstr "Animacija: įterpti"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
@@ -401,13 +392,12 @@ msgid "Anim Insert Key"
msgstr ""
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Step"
-msgstr "Animacijos Nodas"
+msgstr "Keisti animacijos žingsnį"
#: editor/animation_track_editor.cpp
msgid "Rearrange Tracks"
-msgstr ""
+msgstr "Naujai sudėlioti įrašus"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
@@ -420,31 +410,34 @@ msgid ""
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
msgstr ""
+"Garso įrašai gali nurodyti tik į šiuos tipinius mazgus:\n"
+"-GarsoSrautogrotuvas\n"
+"-GarsoSrautogrotuvas2D\n"
+"-GarsoSrautogrotuvas3D"
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr ""
+msgstr "Animacijos įrašai gali nurodyti į AnimacijosGrotuvo mazgus."
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
-msgstr ""
+msgstr "Animacijos grotuvas negali animuoti savęs, tik kitus grotuvus."
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
-msgstr ""
+msgstr "Nėra galimybės pridėti naują įrašą be root"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr ""
+msgstr "Netinkamas Bezjė traktas (nėra tinkamų antrinių savybių)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Bezier Track"
-msgstr "Animacija: Pridėti Takelį"
+msgstr "Pridėti Bezjė traktą"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
-msgstr ""
+msgstr "Trakto kelias yra negalimas, negalima pridėti raktažodžio."
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
@@ -539,6 +532,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -721,7 +715,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -752,11 +746,11 @@ msgstr "Priartinti"
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Out"
-msgstr "Nutolinti"
+msgstr "Ištolinti"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr "Atstatyti Priartinimą"
+msgstr "Atstatyti priartinimą"
#: editor/code_editor.cpp
msgid "Warnings"
@@ -871,7 +865,7 @@ msgstr ""
#: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Close"
-msgstr "Uždaryti"
+msgstr "Užverti"
#: editor/connections_dialog.cpp
msgid "Connect"
@@ -922,6 +916,11 @@ msgid "Signals"
msgstr "Signalai"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtrai..."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -962,7 +961,7 @@ msgid "Recent:"
msgstr "Naujausi:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1136,6 +1135,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1157,6 +1159,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1624,16 +1634,16 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
#, fuzzy
msgid "Node Dock"
msgstr "Naujas pavadinimas:"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1910,7 +1920,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2330,10 +2340,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2758,22 +2764,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2782,8 +2792,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2792,32 +2802,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2878,7 +2888,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3049,15 +3059,15 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Open 2D Editor"
-msgstr "Atidaryti 2D Editorių"
+msgstr "Atverti 2D editorių"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
-msgstr "Atidaryti 3D Editorių"
+msgstr "Atverti 3D editorių"
#: editor/editor_node.cpp
msgid "Open Script Editor"
-msgstr "Atidaryti Skriptų Editorių"
+msgstr "Atverti skriptų editorių"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
@@ -3287,7 +3297,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -5079,7 +5090,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7724,7 +7735,7 @@ msgid "New Animation"
msgstr "Animacija"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9775,6 +9786,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -10208,11 +10220,15 @@ msgid "Batch Rename"
msgstr "Animacija: Pervadinti Takelį"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10259,7 +10275,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10319,7 +10335,7 @@ msgid "Reset"
msgstr "Atstatyti Priartinimą"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10427,10 +10443,14 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
-msgid "Delete %d nodes?"
+msgid "Delete %d nodes and any children?"
msgstr "Ištrinti Efektą"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes?"
+msgstr "Ištrinti %d nodus?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
msgstr ""
@@ -10439,9 +10459,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "Ištrinti Efektą"
+msgstr "Ištrinti nodą \"%s\"?"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -12077,6 +12096,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12289,6 +12314,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/lv.po b/editor/translations/lv.po
index 8417a6b650..faf22e8f4e 100644
--- a/editor/translations/lv.po
+++ b/editor/translations/lv.po
@@ -529,6 +529,7 @@ msgid "Seconds"
msgstr "Sekundes"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -707,7 +708,7 @@ msgstr "Atrast Gadījumu"
msgid "Whole Words"
msgstr "Visu Vārdu"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Aizvietot"
@@ -900,6 +901,11 @@ msgid "Signals"
msgstr "Signāli"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "No Signāla:"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
"Vai esat drošs(ša), ka vēlaties noņemt visus savienojumus no šī signāla?"
@@ -938,7 +944,7 @@ msgid "Recent:"
msgstr "Nesenie:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Meklēt:"
@@ -1119,6 +1125,9 @@ msgstr "Projekta Dibinātāji"
msgid "Lead Developer"
msgstr "Galvenais Izstrādātājs"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Projekta Menedžeris "
@@ -1140,6 +1149,16 @@ msgid "Gold Sponsors"
msgstr "Zelta Sponsori"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Sudraba Donors"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Bronzas Donors"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini Sponsori"
@@ -1609,15 +1628,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1880,7 +1899,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2290,10 +2309,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2710,22 +2725,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2734,8 +2753,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2744,32 +2763,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2829,7 +2848,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3229,7 +3248,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4953,7 +4973,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7563,7 +7583,7 @@ msgid "New Animation"
msgstr "Optimizēt animāciju"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9580,6 +9600,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -10013,11 +10034,16 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Aizvietot: "
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10063,7 +10089,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10122,7 +10148,7 @@ msgid "Reset"
msgstr "Atiestatīt tālummaiņu"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10229,6 +10255,11 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Izdzēst %d mezglus?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Izdzēst %d mezglus?"
@@ -11858,6 +11889,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12070,6 +12107,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/mi.po b/editor/translations/mi.po
index ab68a71ee2..d0e967f5bd 100644
--- a/editor/translations/mi.po
+++ b/editor/translations/mi.po
@@ -500,6 +500,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -678,7 +679,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -867,6 +868,10 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -904,7 +909,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1078,6 +1083,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1099,6 +1107,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1562,15 +1578,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1833,7 +1849,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2243,10 +2259,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2662,22 +2674,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2686,8 +2702,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2696,32 +2712,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2781,7 +2797,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3181,7 +3197,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4905,7 +4922,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7487,7 +7504,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9463,6 +9480,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9893,11 +9911,15 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -9943,7 +9965,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10001,7 +10023,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10107,6 +10129,10 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr ""
@@ -11708,6 +11734,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -11920,6 +11952,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/ml.po b/editor/translations/ml.po
index db5f5638f3..25ae499eac 100644
--- a/editor/translations/ml.po
+++ b/editor/translations/ml.po
@@ -510,6 +510,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -688,7 +689,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -877,6 +878,10 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -914,7 +919,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1088,6 +1093,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1109,6 +1117,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1572,15 +1588,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1843,7 +1859,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2255,10 +2271,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2674,22 +2686,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2698,8 +2714,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2708,32 +2724,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2793,7 +2809,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3193,7 +3209,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4920,7 +4937,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7503,7 +7520,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9479,6 +9496,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9909,11 +9927,15 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -9959,7 +9981,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10017,7 +10039,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10123,6 +10145,10 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr ""
@@ -11725,6 +11751,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -11937,6 +11969,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/mr.po b/editor/translations/mr.po
index 1700bcb138..c17092697d 100644
--- a/editor/translations/mr.po
+++ b/editor/translations/mr.po
@@ -507,6 +507,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -685,7 +686,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -874,6 +875,10 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -911,7 +916,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1085,6 +1090,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1106,6 +1114,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1569,15 +1585,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1840,7 +1856,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2250,10 +2266,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2669,22 +2681,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2693,8 +2709,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2703,32 +2719,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2788,7 +2804,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3188,7 +3204,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4912,7 +4929,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7494,7 +7511,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9470,6 +9487,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9900,11 +9918,15 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -9950,7 +9972,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10008,7 +10030,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10114,6 +10136,10 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr ""
@@ -11715,6 +11741,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -11927,6 +11959,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/ms.po b/editor/translations/ms.po
index 160fa6e69f..19d36c70cd 100644
--- a/editor/translations/ms.po
+++ b/editor/translations/ms.po
@@ -7,13 +7,14 @@
# Syaz Amirin <amirin123z@gmail.com>, 2018.
# Nafis Ibrahim <thepreciousnafis@gmail.com>, 2018.
# Muhammad Hazim bin Hafizalshah <muhammadhazimhafizalshah@gmail.com>, 2020.
+# keviinx <keviinx@yahoo.com>, 2020.
+# Keviindran Ramachandran <keviinx@yahoo.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-27 07:10+0000\n"
-"Last-Translator: Muhammad Hazim bin Hafizalshah "
-"<muhammadhazimhafizalshah@gmail.com>\n"
+"PO-Revision-Date: 2020-09-15 07:17+0000\n"
+"Last-Translator: Keviindran Ramachandran <keviinx@yahoo.com>\n"
"Language-Team: Malay <https://hosted.weblate.org/projects/godot-engine/godot/"
"ms/>\n"
"Language: ms\n"
@@ -21,119 +22,118 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.11-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr ""
+msgstr "Argumen jenis tidak sah untuk convert(), guna pemalar TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "Menjangkakan rentetan dengan panjang 1 (satu watak)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
+msgstr "Bait tidak mencukupi untuk menyahkod bait, atau format tidak sah."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr ""
+msgstr "Input %i tidak sah (tidak lulus) dalam ungkapan"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr ""
+msgstr "self tidak boleh digunakan kerana instance adalah null (tidak lulus)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr ""
+msgstr "Operan tidak sah untuk pengendali %s, %s dan %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr ""
+msgstr "Indeks tidak sah untuk jenis %s untuk jenis asa %s"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr ""
+msgstr "Indeks bernama tidak sah '%s' untuk jenis asa %s"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr ""
+msgstr "Argumen tidak sah untuk binaan '%s'"
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr ""
+msgstr "Atas panggilan ke '%s':"
#: core/ustring.cpp
msgid "B"
-msgstr ""
+msgstr "B"
#: core/ustring.cpp
msgid "KiB"
-msgstr ""
+msgstr "KiB"
#: core/ustring.cpp
msgid "MiB"
-msgstr ""
+msgstr "MiB"
#: core/ustring.cpp
msgid "GiB"
-msgstr ""
+msgstr "GiB"
#: core/ustring.cpp
msgid "TiB"
-msgstr ""
+msgstr "TiB"
#: core/ustring.cpp
msgid "PiB"
-msgstr ""
+msgstr "PiB"
#: core/ustring.cpp
msgid "EiB"
-msgstr ""
+msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
-msgstr ""
+msgstr "Bebas"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
-msgstr ""
+msgstr "Seimbang"
#: editor/animation_bezier_editor.cpp
msgid "Mirror"
-msgstr ""
+msgstr "Cermin"
#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
msgid "Time:"
-msgstr ""
+msgstr "Masa:"
#: editor/animation_bezier_editor.cpp
msgid "Value:"
-msgstr ""
+msgstr "Nilai:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr ""
+msgstr "Masukkan Kunci di Sini"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Duplicate Selected Key(s)"
-msgstr "Anim Menduakan Kunci"
+msgstr "Gandakan Kunci Terpilih"
#: editor/animation_bezier_editor.cpp
msgid "Delete Selected Key(s)"
-msgstr ""
+msgstr "Padam Kunci Terpilih"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
-msgstr ""
+msgstr "Tambah Titik Bezier"
#: editor/animation_bezier_editor.cpp
msgid "Move Bezier Points"
-msgstr ""
+msgstr "Pindah Titik-titik Bezier"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
@@ -141,10 +141,9 @@ msgstr "Anim Menduakan Kunci"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
-msgstr ""
+msgstr "Anim Padam Kunci"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Change Keyframe Time"
msgstr "Anim Ubah Masa Keyframe"
@@ -154,7 +153,7 @@ msgstr "Anim Ubah Peralihan"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
-msgstr "Anim Ubah Penukaran"
+msgstr "Anim Ubah Perubahan"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
@@ -165,200 +164,192 @@ msgid "Anim Change Call"
msgstr "Anim Ubah Panggilan"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Keyframe Time"
-msgstr "Anim Ubah Masa Keyframe"
+msgstr "Anim Ubah Pelbagai Masa Keyframe"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Transition"
-msgstr "Anim Ubah Peralihan"
+msgstr "Anim Ubah Pelbagai Peralihan"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Transform"
-msgstr "Anim Ubah Penukaran"
+msgstr "Anim Ubah Pelbagai Penukaran"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Keyframe Value"
-msgstr "Anim Ubah Nilai Keyframe"
+msgstr "Anim Ubah Pelbagai Nilai Keyframe"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Anim Multi Change Call"
-msgstr "Anim Ubah Panggilan"
+msgstr "Anim Ubah Pelbagai Panggilan"
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
-msgstr ""
+msgstr "Ubah Panjang Animasi"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "Ubah Gelung Animasi"
#: editor/animation_track_editor.cpp
msgid "Property Track"
-msgstr ""
+msgstr "Trek Sifat"
#: editor/animation_track_editor.cpp
msgid "3D Transform Track"
-msgstr ""
+msgstr "Trek Transformasi 3D"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
-msgstr ""
+msgstr "Trek Panggilan Kaedah"
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
-msgstr ""
+msgstr "Trek Lengkung Bezier"
#: editor/animation_track_editor.cpp
msgid "Audio Playback Track"
-msgstr ""
+msgstr "Trek Main balik Audio"
#: editor/animation_track_editor.cpp
msgid "Animation Playback Track"
-msgstr ""
+msgstr "Trek Main Balik Animasi"
#: editor/animation_track_editor.cpp
msgid "Animation length (frames)"
-msgstr ""
+msgstr "Panjang animasi (bingkai)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
-msgstr ""
+msgstr "Panjang animasi (saat)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track"
-msgstr "Anim Tambah Trek"
+msgstr "Tambah Trek"
#: editor/animation_track_editor.cpp
msgid "Animation Looping"
-msgstr ""
+msgstr "Gelung Animasi"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Functions:"
-msgstr ""
+msgstr "Fungsi:"
#: editor/animation_track_editor.cpp
msgid "Audio Clips:"
-msgstr ""
+msgstr "Klip Audio:"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
-msgstr ""
+msgstr "Klip Anim:"
#: editor/animation_track_editor.cpp
msgid "Change Track Path"
-msgstr ""
+msgstr "Tukar Laluan Trek"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
-msgstr ""
+msgstr "Hidupkan / matikan trek ini."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr ""
+msgstr "Kemas kini Mod (Bagaimana sifat ini ditetapkan)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
-msgstr ""
+msgstr "Mod Interpolasi"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr ""
+msgstr "Mod Gelung Balut (Interpolat hujung dengan permulaan pada gelung)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Remove this track."
-msgstr "Buang Trek Anim"
+msgstr "Keluarkan trek ini."
#: editor/animation_track_editor.cpp
msgid "Time (s): "
-msgstr ""
+msgstr "Masa (s): "
#: editor/animation_track_editor.cpp
msgid "Toggle Track Enabled"
-msgstr ""
+msgstr "Togol Trek Diaktifkan"
#: editor/animation_track_editor.cpp
msgid "Continuous"
-msgstr ""
+msgstr "Berterusan"
#: editor/animation_track_editor.cpp
msgid "Discrete"
-msgstr ""
+msgstr "Diskret"
#: editor/animation_track_editor.cpp
msgid "Trigger"
-msgstr ""
+msgstr "Pencetus"
#: editor/animation_track_editor.cpp
msgid "Capture"
-msgstr ""
+msgstr "Tangkap"
#: editor/animation_track_editor.cpp
msgid "Nearest"
-msgstr ""
+msgstr "Terdekat"
#: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp
#: editor/property_editor.cpp
msgid "Linear"
-msgstr ""
+msgstr "Linear"
#: editor/animation_track_editor.cpp
msgid "Cubic"
-msgstr ""
+msgstr "Kubik"
#: editor/animation_track_editor.cpp
msgid "Clamp Loop Interp"
-msgstr ""
+msgstr "Kepit Gelung Interp"
#: editor/animation_track_editor.cpp
msgid "Wrap Loop Interp"
-msgstr ""
+msgstr "Balut Gelung Interp"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr ""
+msgstr "Masukkan Kunci"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Duplicate Key(s)"
-msgstr "Anim Menduakan Kunci"
+msgstr "Menduakan Kunci"
#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
-msgstr ""
+msgstr "Padam Kunci"
#: editor/animation_track_editor.cpp
msgid "Change Animation Update Mode"
-msgstr ""
+msgstr "Mod Tukar Kemas Kini Animasi"
#: editor/animation_track_editor.cpp
msgid "Change Animation Interpolation Mode"
-msgstr ""
+msgstr "Tukar Mod Interpolasi Animasi"
#: editor/animation_track_editor.cpp
msgid "Change Animation Loop Mode"
-msgstr ""
+msgstr "Tukar Mod Gelung Animasi"
#: editor/animation_track_editor.cpp
msgid "Remove Anim Track"
-msgstr "Buang Trek Anim"
+msgstr "Keluarkan Trek Anim"
#: editor/animation_track_editor.cpp
msgid "Create NEW track for %s and insert key?"
-msgstr ""
+msgstr "Cipta trek BARU untuk %s dan masukkan kunci?"
#: editor/animation_track_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
-msgstr ""
+msgstr "Cipta %d BARU trek dan masukkan kunci?"
#: editor/animation_track_editor.cpp editor/create_dialog.cpp
#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp
@@ -370,40 +361,39 @@ msgstr ""
#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Create"
-msgstr ""
+msgstr "Cipta"
#: editor/animation_track_editor.cpp
msgid "Anim Insert"
-msgstr ""
+msgstr "Masukkan Anim"
#: editor/animation_track_editor.cpp
msgid "AnimationPlayer can't animate itself, only other players."
-msgstr ""
+msgstr "AnimationPlayer tidak animasikan dirinya sendiri, hanya pemain lain."
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
-msgstr ""
+msgstr "Anim Cipta & Masukkan"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr ""
+msgstr "Anim Masukkan Trek & Kunci"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Key"
-msgstr ""
+msgstr "Anim Masukkan Kunci"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Step"
-msgstr "Anim Ubah Peralihan"
+msgstr "Tukar Langkah Animasi"
#: editor/animation_track_editor.cpp
msgid "Rearrange Tracks"
-msgstr ""
+msgstr "Susun semula Trek"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr ""
+msgstr "Transformasi trek hanya berlaku kepada nod berasaskan Spatial."
#: editor/animation_track_editor.cpp
msgid ""
@@ -412,78 +402,82 @@ msgid ""
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
msgstr ""
+"Trek audio hanya boleh ditujukan kepada nod jenis:\n"
+"-AudioStreamPlayer\n"
+"-AudioStreamPlayer2D\n"
+"-AudioStreamPlayer3D"
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr ""
+msgstr "Trek animasi hanya dapat ditujukan kepada nod AnimationPlayer."
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
msgstr ""
+"Pemain animasi tidak boleh animasikan dirinya sendiri, hanya pemain lain."
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
-msgstr ""
+msgstr "Tidak boleh menambah trek baru tanpa satu akar"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr ""
+msgstr "Trek tidak sah untuk Bezier (tiada sub-sifat yang sesuai)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Bezier Track"
-msgstr "Anim Tambah Trek"
+msgstr "Tambah Trek Bezier"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
-msgstr ""
+msgstr "Laluan trek tidak sah, maka tidak boleh menambahkan kunci."
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
-msgstr ""
+msgstr "Trek bukan jenis Spatial, tidak boleh memasukkan kunci"
#: editor/animation_track_editor.cpp
msgid "Add Transform Track Key"
-msgstr ""
+msgstr "Tambah Kunci Trek Transformasi"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track Key"
-msgstr "Anim Tambah Trek"
+msgstr "Tambah Kunci Trek"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
-msgstr ""
+msgstr "Laluan trek tidak sah, maka tidak boleh menambahkan kunci kaedah."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Method Track Key"
-msgstr "Anim Tambah Trek"
+msgstr "Tambah Kunci Trek Kaedah"
#: editor/animation_track_editor.cpp
msgid "Method not found in object: "
-msgstr ""
+msgstr "Kaedah tidak ditemui dalam objek: "
#: editor/animation_track_editor.cpp
msgid "Anim Move Keys"
-msgstr ""
+msgstr "Kunci Gerak Anim"
#: editor/animation_track_editor.cpp
msgid "Clipboard is empty"
-msgstr ""
+msgstr "Papan klip kosong"
#: editor/animation_track_editor.cpp
msgid "Paste Tracks"
-msgstr ""
+msgstr "Tampal Trek"
#: editor/animation_track_editor.cpp
msgid "Anim Scale Keys"
-msgstr ""
+msgstr "Kunci Skala Anim"
#: editor/animation_track_editor.cpp
msgid ""
"This option does not work for Bezier editing, as it's only a single track."
msgstr ""
+"Pilihan ini tidak berfungsi untuk pengeditan Bezier, kerana ia hanya satu "
+"trek."
#: editor/animation_track_editor.cpp
msgid ""
@@ -497,38 +491,48 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
+"Animasi ini tergolong dalam adegan yang diimport, maka perubahan untuk trek "
+"yang diimport tidak akan disimpan.\n"
+"\n"
+"Untuk memberikan keupayaan untuk menambah trek tersuai, navigasi ke tetapan "
+"import adegan dan tetapkan\n"
+"\"Animasi > Simpanan\" ke \"Fail\", aktifkan \"Animasi > Simpan Trek Tersuai"
+"\", kemudian import semula.\n"
+"Sebagai alternatif, gunakan pratetap import yang mengimportkan animasi untuk "
+"memisahkan fail."
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
-msgstr ""
+msgstr "Amaran: Mengedit animasi yang diimport"
#: editor/animation_track_editor.cpp
msgid "Select an AnimationPlayer node to create and edit animations."
-msgstr ""
+msgstr "Pilih nod AnimationPlayer untuk mencipta dan mengedit animasi."
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
-msgstr ""
+msgstr "Hanya tunjukkan trek dari nod yang dipilih di pokok."
#: editor/animation_track_editor.cpp
msgid "Group tracks by node or display them as plain list."
-msgstr ""
+msgstr "Kumpulkan trek mengikut nod atau memaparkannya sebagai senarai biasa."
#: editor/animation_track_editor.cpp
msgid "Snap:"
-msgstr ""
+msgstr "Tangkap:"
#: editor/animation_track_editor.cpp
msgid "Animation step value."
-msgstr ""
+msgstr "Nilai langkah animasi."
#: editor/animation_track_editor.cpp
msgid "Seconds"
-msgstr ""
+msgstr "Saat"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
-msgstr ""
+msgstr "FPS"
#: editor/animation_track_editor.cpp editor/editor_properties.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -538,108 +542,107 @@ msgstr ""
#: editor/project_settings_editor.cpp editor/property_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit"
-msgstr ""
+msgstr "Edit"
#: editor/animation_track_editor.cpp
msgid "Animation properties."
-msgstr ""
+msgstr "Sifat animasi."
#: editor/animation_track_editor.cpp
msgid "Copy Tracks"
-msgstr ""
+msgstr "Salin Trek"
#: editor/animation_track_editor.cpp
msgid "Scale Selection"
-msgstr ""
+msgstr "Pemilihan Skala"
#: editor/animation_track_editor.cpp
msgid "Scale From Cursor"
-msgstr ""
+msgstr "Skala Dari Kursor"
#: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp
msgid "Duplicate Selection"
-msgstr ""
+msgstr "Menduakan Pilihan"
#: editor/animation_track_editor.cpp
msgid "Duplicate Transposed"
-msgstr ""
+msgstr "Menduakan Pindahan"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Delete Selection"
-msgstr "Semua Pilihan"
+msgstr "Padam Pilihan"
#: editor/animation_track_editor.cpp
msgid "Go to Next Step"
-msgstr ""
+msgstr "Pergi ke Langkah Seterusnya"
#: editor/animation_track_editor.cpp
msgid "Go to Previous Step"
-msgstr ""
+msgstr "Pergi ke Langkah Sebelumnya"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
-msgstr ""
+msgstr "Optimumkan Animasi"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation"
-msgstr ""
+msgstr "Bersihkan Animasi"
#: editor/animation_track_editor.cpp
msgid "Pick the node that will be animated:"
-msgstr ""
+msgstr "Pilih nod yang akan dianimasikan:"
#: editor/animation_track_editor.cpp
msgid "Use Bezier Curves"
-msgstr ""
+msgstr "Guna Lengkung Bezier"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
-msgstr ""
+msgstr "Pengoptimum Anim."
#: editor/animation_track_editor.cpp
msgid "Max. Linear Error:"
-msgstr ""
+msgstr "Max. Ralat Linear:"
#: editor/animation_track_editor.cpp
msgid "Max. Angular Error:"
-msgstr ""
+msgstr "Max. Ralat Sudut:"
#: editor/animation_track_editor.cpp
msgid "Max Optimizable Angle:"
-msgstr ""
+msgstr "Sudut Maksimum yang Boleh Dioptimumkan:"
#: editor/animation_track_editor.cpp
msgid "Optimize"
-msgstr ""
+msgstr "Mengoptimumkan"
#: editor/animation_track_editor.cpp
msgid "Remove invalid keys"
-msgstr ""
+msgstr "Keluarkan kunci yang tidak sah"
#: editor/animation_track_editor.cpp
msgid "Remove unresolved and empty tracks"
-msgstr ""
+msgstr "Keluarkan trek yang tidak boleh diselesaikan dan kosong"
#: editor/animation_track_editor.cpp
msgid "Clean-up all animations"
-msgstr ""
+msgstr "Bersihkan semua animasi"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr ""
+msgstr "Bersihkan Animasi (TIDAK BOLEH BUAT ASAL!)"
#: editor/animation_track_editor.cpp
msgid "Clean-Up"
-msgstr ""
+msgstr "Bersihkan"
#: editor/animation_track_editor.cpp
msgid "Scale Ratio:"
-msgstr ""
+msgstr "Nisbah Skala:"
#: editor/animation_track_editor.cpp
msgid "Select Tracks to Copy"
-msgstr ""
+msgstr "Pilih Trek untuk Disalin"
#: editor/animation_track_editor.cpp editor/editor_log.cpp
#: editor/editor_properties.cpp
@@ -648,146 +651,146 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Copy"
-msgstr ""
+msgstr "Salin"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select All/None"
-msgstr "Semua Pilihan"
+msgstr "Pilih Semua/Tiada"
#: editor/animation_track_editor_plugins.cpp
-#, fuzzy
msgid "Add Audio Track Clip"
-msgstr "Anim Tambah Trek"
+msgstr "Tambah Klip Trek Audio"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip Start Offset"
-msgstr ""
+msgstr "Tukar Klip Trek Audio Mula Offset"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip End Offset"
-msgstr ""
+msgstr "Tukar Klip Audio Trek Hujung Offset"
#: editor/array_property_edit.cpp
msgid "Resize Array"
-msgstr ""
+msgstr "Ubah saiz Array"
#: editor/array_property_edit.cpp
msgid "Change Array Value Type"
-msgstr ""
+msgstr "Tukar Jenis Nilai Array"
#: editor/array_property_edit.cpp
msgid "Change Array Value"
-msgstr ""
+msgstr "Tukar Nilai Array"
#: editor/code_editor.cpp
msgid "Go to Line"
-msgstr ""
+msgstr "Pergi ke Baris"
#: editor/code_editor.cpp
msgid "Line Number:"
-msgstr ""
+msgstr "Nombor Baris:"
#: editor/code_editor.cpp
msgid "%d replaced."
-msgstr ""
+msgstr "%d telah diganti."
#: editor/code_editor.cpp editor/editor_help.cpp
msgid "%d match."
-msgstr ""
+msgstr "%d padan."
#: editor/code_editor.cpp editor/editor_help.cpp
msgid "%d matches."
-msgstr ""
+msgstr "%d padan."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
-msgstr ""
+msgstr "Kes Padan"
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Whole Words"
-msgstr ""
+msgstr "Seluruh Perkataan"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
-msgstr ""
+msgstr "Ganti"
#: editor/code_editor.cpp
msgid "Replace All"
-msgstr ""
+msgstr "Ganti Semua"
#: editor/code_editor.cpp
msgid "Selection Only"
-msgstr ""
+msgstr "Pilihan Sahaja"
#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp
#: editor/plugins/text_editor.cpp
msgid "Standard"
-msgstr ""
+msgstr "Piawai"
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
-msgstr ""
+msgstr "Togol Panel Skrip"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom In"
-msgstr ""
+msgstr "Zum Masuk"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Out"
-msgstr ""
+msgstr "Zum Keluar"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr ""
+msgstr "Set Semula Zum"
#: editor/code_editor.cpp
msgid "Warnings"
-msgstr ""
+msgstr "Amaran"
#: editor/code_editor.cpp
msgid "Line and column numbers."
-msgstr ""
+msgstr "Nombor baris dan lajur."
#: editor/connections_dialog.cpp
msgid "Method in target node must be specified."
-msgstr ""
+msgstr "Kaedah dalam nod sasaran mesti ditentukan."
#: editor/connections_dialog.cpp
msgid "Method name must be a valid identifier."
-msgstr ""
+msgstr "Nama kaedah mestilah pengecam yang sah."
#: editor/connections_dialog.cpp
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
msgstr ""
+"Kaedah sasaran tidak dijumpai. Tentukan kaedah yang sah atau lampirkan skrip "
+"ke nod sasaran."
#: editor/connections_dialog.cpp
msgid "Connect to Node:"
-msgstr ""
+msgstr "Sambung ke Nod:"
#: editor/connections_dialog.cpp
msgid "Connect to Script:"
-msgstr ""
+msgstr "Sambung ke Skrip:"
#: editor/connections_dialog.cpp
msgid "From Signal:"
-msgstr ""
+msgstr "Dari Isyarat:"
#: editor/connections_dialog.cpp
msgid "Scene does not contain any script."
-msgstr ""
+msgstr "Adegan tidak mengandungi sebarang skrip."
#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
msgid "Add"
-msgstr ""
+msgstr "Tambah"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/editor_feature_profile.cpp editor/groups_editor.cpp
@@ -798,44 +801,46 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
#: editor/project_settings_editor.cpp
msgid "Remove"
-msgstr ""
+msgstr "Keluarkan"
#: editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
-msgstr ""
+msgstr "Tambah Hujah Panggilan Tambahan:"
#: editor/connections_dialog.cpp
msgid "Extra Call Arguments:"
-msgstr ""
+msgstr "Hujah Panggilan Tambahan:"
#: editor/connections_dialog.cpp
msgid "Receiver Method:"
-msgstr ""
+msgstr "Kaedah Penerima:"
#: editor/connections_dialog.cpp
msgid "Advanced"
-msgstr ""
+msgstr "Lanjutan"
#: editor/connections_dialog.cpp
msgid "Deferred"
-msgstr ""
+msgstr "Ditangguhkan"
#: editor/connections_dialog.cpp
msgid ""
"Defers the signal, storing it in a queue and only firing it at idle time."
msgstr ""
+"Mencegah isyarat, menyimpannya dalam barisan dan hanya menyalakannya pada "
+"waktu terbiar."
#: editor/connections_dialog.cpp
msgid "Oneshot"
-msgstr ""
+msgstr "Oneshot"
#: editor/connections_dialog.cpp
msgid "Disconnects the signal after its first emission."
-msgstr ""
+msgstr "Putuskan isyarat selepas pelepasan pertama."
#: editor/connections_dialog.cpp
msgid "Cannot connect signal"
-msgstr ""
+msgstr "Tidak dapat menyambungkan isyarat"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/export_template_manager.cpp editor/groups_editor.cpp
@@ -849,101 +854,109 @@ msgstr ""
#: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Close"
-msgstr ""
+msgstr "Tutup"
#: editor/connections_dialog.cpp
msgid "Connect"
-msgstr ""
+msgstr "Sambung"
#: editor/connections_dialog.cpp
msgid "Signal:"
-msgstr ""
+msgstr "Isyarat:"
#: editor/connections_dialog.cpp
msgid "Connect '%s' to '%s'"
-msgstr ""
+msgstr "Sambungkan '% s' ke '% s'"
#: editor/connections_dialog.cpp
msgid "Disconnect '%s' from '%s'"
-msgstr ""
+msgstr "Putuskan sambungan '% s' dari '% s'"
#: editor/connections_dialog.cpp
msgid "Disconnect all from signal: '%s'"
-msgstr ""
+msgstr "Putuskan semua sambungan dari isyarat: '% s'"
#: editor/connections_dialog.cpp
msgid "Connect..."
-msgstr ""
+msgstr "Sambung ..."
#: editor/connections_dialog.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Disconnect"
-msgstr ""
+msgstr "Putuskan sambungan"
#: editor/connections_dialog.cpp
msgid "Connect a Signal to a Method"
-msgstr ""
+msgstr "Sambungkan Isyarat ke Kaedah"
#: editor/connections_dialog.cpp
msgid "Edit Connection:"
-msgstr ""
+msgstr "Edit Sambungan:"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
msgstr ""
+"Adakah anda pasti anda mahu mengeluarkan semua sambungan dari isyarat \"% s"
+"\"?"
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
-msgstr ""
+msgstr "Isyarat"
+
+#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Dari Isyarat:"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
+"Adakah anda pasti anda mahu mengeluarkan semua sambungan dari isyarat ini?"
#: editor/connections_dialog.cpp
msgid "Disconnect All"
-msgstr ""
+msgstr "Putuskan Semua"
#: editor/connections_dialog.cpp
msgid "Edit..."
-msgstr ""
+msgstr "Edit..."
#: editor/connections_dialog.cpp
msgid "Go To Method"
-msgstr ""
+msgstr "Pergi ke Kaedah"
#: editor/create_dialog.cpp
msgid "Change %s Type"
-msgstr ""
+msgstr "Ubah Jenis %s"
#: editor/create_dialog.cpp editor/project_settings_editor.cpp
msgid "Change"
-msgstr ""
+msgstr "Ubah"
#: editor/create_dialog.cpp
msgid "Create New %s"
-msgstr ""
+msgstr "Cipta %s Baru"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
msgid "Favorites:"
-msgstr ""
+msgstr "Kegemaran:"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
msgid "Recent:"
-msgstr ""
+msgstr "Terkini:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
-msgstr ""
+msgstr "Cari:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
#: editor/property_selector.cpp editor/quick_open.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Matches:"
-msgstr ""
+msgstr "Padanan:"
#: editor/create_dialog.cpp editor/editor_plugin_settings.cpp
#: editor/plugin_config_dialog.cpp
@@ -951,57 +964,61 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Description:"
-msgstr ""
+msgstr "Keterangan:"
#: editor/dependency_editor.cpp
msgid "Search Replacement For:"
-msgstr ""
+msgstr "Cari Penggantian Untuk:"
#: editor/dependency_editor.cpp
msgid "Dependencies For:"
-msgstr ""
+msgstr "Kebergantungan Untuk:"
#: editor/dependency_editor.cpp
msgid ""
"Scene '%s' is currently being edited.\n"
"Changes will only take effect when reloaded."
msgstr ""
+"Adegan '% s' kini sedang diedit.\n"
+"Perubahan hanya akan berlaku apabila dimuat semula."
#: editor/dependency_editor.cpp
msgid ""
"Resource '%s' is in use.\n"
"Changes will only take effect when reloaded."
msgstr ""
+"Sumber '% s' sedang digunakan.\n"
+"Perubahan hanya akan berlaku apabila dimuat semula."
#: editor/dependency_editor.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
-msgstr ""
+msgstr "Kebergantungan"
#: editor/dependency_editor.cpp
msgid "Resource"
-msgstr ""
+msgstr "Sumber"
#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp
#: editor/project_manager.cpp editor/project_settings_editor.cpp
msgid "Path"
-msgstr ""
+msgstr "Laluan"
#: editor/dependency_editor.cpp
msgid "Dependencies:"
-msgstr ""
+msgstr "Kebergantungan:"
#: editor/dependency_editor.cpp
msgid "Fix Broken"
-msgstr ""
+msgstr "Perbaiki Pecah"
#: editor/dependency_editor.cpp
msgid "Dependency Editor"
-msgstr ""
+msgstr "Editor Ketergantungan"
#: editor/dependency_editor.cpp
msgid "Search Replacement Resource:"
-msgstr ""
+msgstr "Cari Penggantian Sumber:"
#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp
#: editor/editor_help_search.cpp editor/editor_node.cpp
@@ -1011,15 +1028,15 @@ msgstr ""
#: modules/visual_script/visual_script_property_selector.cpp
#: scene/gui/file_dialog.cpp
msgid "Open"
-msgstr ""
+msgstr "Buka"
#: editor/dependency_editor.cpp
msgid "Owners Of:"
-msgstr ""
+msgstr "Pemilik:"
#: editor/dependency_editor.cpp
msgid "Remove selected files from the project? (Can't be restored)"
-msgstr ""
+msgstr "Alih keluar fail terpilih dari projek? (Tidak dapat dipulihkan)"
#: editor/dependency_editor.cpp
msgid ""
@@ -1027,46 +1044,49 @@ msgid ""
"work.\n"
"Remove them anyway? (no undo)"
msgstr ""
+"Fail yang akan dikeluarkan diperlukan oleh sumber lain agar dapat "
+"berfungsi.\n"
+"Masih mahu keluarkan fail tersebut? (tidak boleh buat asal)"
#: editor/dependency_editor.cpp
msgid "Cannot remove:"
-msgstr ""
+msgstr "Tidak boleh dialih keluar:"
#: editor/dependency_editor.cpp
msgid "Error loading:"
-msgstr ""
+msgstr "Ralat memuatkan:"
#: editor/dependency_editor.cpp
msgid "Load failed due to missing dependencies:"
-msgstr ""
+msgstr "Gagal memuat kerana kebergantungan hilang:"
#: editor/dependency_editor.cpp editor/editor_node.cpp
msgid "Open Anyway"
-msgstr ""
+msgstr "Buka Bagaimanapun"
#: editor/dependency_editor.cpp
msgid "Which action should be taken?"
-msgstr ""
+msgstr "Tindakan apa yang harus diambil?"
#: editor/dependency_editor.cpp
msgid "Fix Dependencies"
-msgstr ""
+msgstr "Perbaiki Kebergantungan"
#: editor/dependency_editor.cpp
msgid "Errors loading!"
-msgstr ""
+msgstr "Ralat memuatkan!"
#: editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr ""
+msgstr "Padamkan objek %d secara kekal? (Tidak boleh dibuat asal!)"
#: editor/dependency_editor.cpp
msgid "Show Dependencies"
-msgstr ""
+msgstr "Tunjuk Kebergantungan"
#: editor/dependency_editor.cpp
msgid "Orphan Resource Explorer"
-msgstr ""
+msgstr "Penjelajah Sumber Yatim"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
@@ -1074,79 +1094,92 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp
#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
msgid "Delete"
-msgstr ""
+msgstr "Padam"
#: editor/dependency_editor.cpp
msgid "Owns"
-msgstr ""
+msgstr "Memiliki"
#: editor/dependency_editor.cpp
msgid "Resources Without Explicit Ownership:"
-msgstr ""
+msgstr "Sumber Tanpa Hak Milik Eksplisit:"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Key"
-msgstr ""
+msgstr "Tukar Kunci Kamus"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Value"
-msgstr ""
+msgstr "Tukar Nilai Kamus"
#: editor/editor_about.cpp
msgid "Thanks from the Godot community!"
-msgstr ""
+msgstr "Terima kasih dari komuniti Godot!"
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
-msgstr ""
+msgstr "Penyumbang Enjin Godot"
#: editor/editor_about.cpp
msgid "Project Founders"
-msgstr ""
+msgstr "Pengasas Projek"
#: editor/editor_about.cpp
msgid "Lead Developer"
-msgstr ""
+msgstr "Pemaju Utama"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
-msgstr ""
+msgstr "Pengurus Projek "
#: editor/editor_about.cpp
msgid "Developers"
-msgstr ""
+msgstr "Pemaju"
#: editor/editor_about.cpp
msgid "Authors"
-msgstr ""
+msgstr "Pengarang"
#: editor/editor_about.cpp
msgid "Platinum Sponsors"
-msgstr ""
+msgstr "Penaja Platinum"
#: editor/editor_about.cpp
msgid "Gold Sponsors"
-msgstr ""
+msgstr "Penaja Emas"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Penderma Perak"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Penderma Gangsa"
#: editor/editor_about.cpp
msgid "Mini Sponsors"
-msgstr ""
+msgstr "Penaja Mini"
#: editor/editor_about.cpp
msgid "Gold Donors"
-msgstr ""
+msgstr "Penderma Emas"
#: editor/editor_about.cpp
msgid "Silver Donors"
-msgstr ""
+msgstr "Penderma Perak"
#: editor/editor_about.cpp
msgid "Bronze Donors"
-msgstr ""
+msgstr "Penderma Gangsa"
#: editor/editor_about.cpp
msgid "Donors"
-msgstr ""
+msgstr "Penderma"
#: editor/editor_about.cpp
msgid "License"
@@ -1154,7 +1187,7 @@ msgstr "Lesen"
#: editor/editor_about.cpp
msgid "Third-party Licenses"
-msgstr ""
+msgstr "Lesen Pihak Ketiga"
#: editor/editor_about.cpp
msgid ""
@@ -1163,389 +1196,398 @@ msgid ""
"is an exhaustive list of all such third-party components with their "
"respective copyright statements and license terms."
msgstr ""
+"Enjin Godot bergantung kepada beberapa perpustakaan sumber terbuka dan bebas "
+"pihak ketiga, semuanya serasi dengan syarat-syarat lesen MITnya. Berikut "
+"adalah senarai lengkap semua komponen pihak ketiga tersebut dengan "
+"pernyataan hak cipta dan syarat lesen masing-masing."
#: editor/editor_about.cpp
msgid "All Components"
-msgstr ""
+msgstr "Semua Komponen"
#: editor/editor_about.cpp
msgid "Components"
-msgstr ""
+msgstr "Komponen"
#: editor/editor_about.cpp
msgid "Licenses"
-msgstr ""
+msgstr "Lesen"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Error opening package file, not in ZIP format."
-msgstr ""
+msgstr "Ralat semasa membuka fail pakej, bukan dalam format ZIP."
#: editor/editor_asset_installer.cpp
msgid "%s (Already Exists)"
-msgstr ""
+msgstr "%s (Sudah Wujud)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
-msgstr ""
+msgstr "Nyahmampatkan Aset"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "The following files failed extraction from package:"
-msgstr ""
+msgstr "Fail berikut gagal diekstrak dari pakej:"
#: editor/editor_asset_installer.cpp
msgid "And %s more files."
-msgstr ""
+msgstr "Dan sebanyak %s fail."
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Package installed successfully!"
-msgstr ""
+msgstr "Pakej berjaya dipasang!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Success!"
-msgstr ""
+msgstr "Berjaya!"
#: editor/editor_asset_installer.cpp
msgid "Package Contents:"
-msgstr ""
+msgstr "Kandungan Pakej:"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
-msgstr ""
+msgstr "Pasang"
#: editor/editor_asset_installer.cpp
msgid "Package Installer"
-msgstr ""
+msgstr "Pemasang Pakej"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
-msgstr ""
+msgstr "Pembesar suara"
#: editor/editor_audio_buses.cpp
msgid "Add Effect"
-msgstr ""
+msgstr "Tambah Kesan"
#: editor/editor_audio_buses.cpp
msgid "Rename Audio Bus"
-msgstr ""
+msgstr "Namakan Semula Bas Audio"
#: editor/editor_audio_buses.cpp
msgid "Change Audio Bus Volume"
-msgstr ""
+msgstr "Tukar Kelantangan Bas Audio"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
-msgstr ""
+msgstr "Togol Bas Audio Solo"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Mute"
-msgstr ""
+msgstr "Togol Senyap Bas Audio"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Bypass Effects"
-msgstr ""
+msgstr "Togol Kesan Pintasan Bas Audio"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
-msgstr ""
+msgstr "Pilih Hantar Bas Audio"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus Effect"
-msgstr ""
+msgstr "Tambah Kesan Bas Audio"
#: editor/editor_audio_buses.cpp
msgid "Move Bus Effect"
-msgstr ""
+msgstr "Alih Kesan Bas"
#: editor/editor_audio_buses.cpp
msgid "Delete Bus Effect"
-msgstr ""
+msgstr "Padam Kesan Bas"
#: editor/editor_audio_buses.cpp
msgid "Drag & drop to rearrange."
-msgstr ""
+msgstr "Seret & lepas untuk menyusun semula."
#: editor/editor_audio_buses.cpp
msgid "Solo"
-msgstr ""
+msgstr "Solo"
#: editor/editor_audio_buses.cpp
msgid "Mute"
-msgstr ""
+msgstr "Bisu"
#: editor/editor_audio_buses.cpp
msgid "Bypass"
-msgstr ""
+msgstr "Pintas"
#: editor/editor_audio_buses.cpp
msgid "Bus options"
-msgstr ""
+msgstr "Pilihan bas"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
-msgstr ""
+msgstr "Pendua"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
-msgstr ""
+msgstr "Tetapkan Semula Kelantangan"
#: editor/editor_audio_buses.cpp
msgid "Delete Effect"
-msgstr ""
+msgstr "Padam Kesan"
#: editor/editor_audio_buses.cpp
msgid "Audio"
-msgstr ""
+msgstr "Audio"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
-msgstr ""
+msgstr "Tambah Bas Audio"
#: editor/editor_audio_buses.cpp
msgid "Master bus can't be deleted!"
-msgstr ""
+msgstr "Bas induk tidak boleh dipadamkan!"
#: editor/editor_audio_buses.cpp
msgid "Delete Audio Bus"
-msgstr ""
+msgstr "Padam Bas Audio"
#: editor/editor_audio_buses.cpp
msgid "Duplicate Audio Bus"
-msgstr ""
+msgstr "Pendua Bas Audio"
#: editor/editor_audio_buses.cpp
msgid "Reset Bus Volume"
-msgstr ""
+msgstr "Tetapkan Semula Kelantangan Bas"
#: editor/editor_audio_buses.cpp
msgid "Move Audio Bus"
-msgstr ""
+msgstr "Pindah Bas Audio"
#: editor/editor_audio_buses.cpp
msgid "Save Audio Bus Layout As..."
-msgstr ""
+msgstr "Simpan Susun Atur Bas Audio Sebagai..."
#: editor/editor_audio_buses.cpp
msgid "Location for New Layout..."
-msgstr ""
+msgstr "Lokasi untuk Susun Atur Baru..."
#: editor/editor_audio_buses.cpp
msgid "Open Audio Bus Layout"
-msgstr ""
+msgstr "Buka Susun Atur Bas Audio"
#: editor/editor_audio_buses.cpp
msgid "There is no '%s' file."
-msgstr ""
+msgstr "Tiada fail '%s'."
#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp
msgid "Layout"
-msgstr ""
+msgstr "Susun atur"
#: editor/editor_audio_buses.cpp
msgid "Invalid file, not an audio bus layout."
-msgstr ""
+msgstr "Fail tidak sah, bukan susun atur bas audio."
#: editor/editor_audio_buses.cpp
msgid "Error saving file: %s"
-msgstr ""
+msgstr "Ralat semasa menyimpan fail: %s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
-msgstr ""
+msgstr "Tambah Bas"
#: editor/editor_audio_buses.cpp
msgid "Add a new Audio Bus to this layout."
-msgstr ""
+msgstr "Tambah Bas Audio baru ke susun atur ini."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Load"
-msgstr ""
+msgstr "Memuatkan"
#: editor/editor_audio_buses.cpp
msgid "Load an existing Bus Layout."
-msgstr ""
+msgstr "Muatkan Susun Atur Bas yang sedia ada."
#: editor/editor_audio_buses.cpp
msgid "Save As"
-msgstr ""
+msgstr "Simpan sebagai"
#: editor/editor_audio_buses.cpp
msgid "Save this Bus Layout to a file."
-msgstr ""
+msgstr "Simpan Susun Atur Bas ini ke fail."
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
-msgstr ""
+msgstr "Muatkan Lalai"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr ""
+msgstr "Muatkan Susun Atur Bas lalai."
#: editor/editor_audio_buses.cpp
msgid "Create a new Bus Layout."
-msgstr ""
+msgstr "Cipta Susun Atur Bas baru."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
-msgstr ""
+msgstr "Nama tidak sah."
#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
-msgstr ""
+msgstr "Watak yang sah:"
#: editor/editor_autoload_settings.cpp
msgid "Must not collide with an existing engine class name."
-msgstr ""
+msgstr "Tidak boleh bertembung dengan nama kelas engin yang telah wujud."
#: editor/editor_autoload_settings.cpp
msgid "Must not collide with an existing built-in type name."
msgstr ""
+"Tidak boleh bertembung dengan nama jenis terbina dalam yang telah wujud."
#: editor/editor_autoload_settings.cpp
msgid "Must not collide with an existing global constant name."
-msgstr ""
+msgstr "Tidak boleh bertembung dengan nama pemalar global yang telah wujud."
#: editor/editor_autoload_settings.cpp
msgid "Keyword cannot be used as an autoload name."
-msgstr ""
+msgstr "Kata kunci tidak boleh digunakan sebagai nama autoload."
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
-msgstr ""
+msgstr "Autoload '%s' sudah wujud!"
#: editor/editor_autoload_settings.cpp
msgid "Rename Autoload"
-msgstr ""
+msgstr "Namakan Semula Autoload"
#: editor/editor_autoload_settings.cpp
msgid "Toggle AutoLoad Globals"
-msgstr ""
+msgstr "Togol Global Autoload"
#: editor/editor_autoload_settings.cpp
msgid "Move Autoload"
-msgstr ""
+msgstr "Pindah Autoload"
#: editor/editor_autoload_settings.cpp
msgid "Remove Autoload"
-msgstr ""
+msgstr "Keluarkan Autoload"
#: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp
msgid "Enable"
-msgstr ""
+msgstr "Aktifkan"
#: editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
-msgstr ""
+msgstr "Susun Semula Autoload"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr ""
+msgstr "Tidak boleh menambahkan autoload:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
-msgstr ""
+msgstr "Tambah AutoLoad"
#: 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 ""
+msgstr "Laluan:"
#: editor/editor_autoload_settings.cpp
msgid "Node Name:"
-msgstr ""
+msgstr "Nama Nod:"
#: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp
#: editor/editor_profiler.cpp editor/project_manager.cpp
#: editor/settings_config_dialog.cpp
msgid "Name"
-msgstr ""
+msgstr "Nama"
#: editor/editor_autoload_settings.cpp
msgid "Singleton"
-msgstr ""
+msgstr "Singleton"
#: editor/editor_data.cpp editor/inspector_dock.cpp
msgid "Paste Params"
-msgstr ""
+msgstr "Tampal Param"
#: editor/editor_data.cpp
msgid "Updating Scene"
-msgstr ""
+msgstr "Mengemaskini Adegan"
#: editor/editor_data.cpp
msgid "Storing local changes..."
-msgstr ""
+msgstr "Menyimpan perubahan tempatan..."
#: editor/editor_data.cpp
msgid "Updating scene..."
-msgstr ""
+msgstr "Mengemaskini adegan..."
#: editor/editor_data.cpp editor/editor_properties.cpp
msgid "[empty]"
-msgstr ""
+msgstr "[kosong]"
#: editor/editor_data.cpp
msgid "[unsaved]"
-msgstr ""
+msgstr "[tidak disimpan]"
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first."
-msgstr ""
+msgstr "Sila pilih direktori asas terlebih dahulu."
#: editor/editor_dir_dialog.cpp
msgid "Choose a Directory"
-msgstr ""
+msgstr "Pilih Direktori"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp editor/project_manager.cpp
#: scene/gui/file_dialog.cpp
msgid "Create Folder"
-msgstr ""
+msgstr "Cipta Folder"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
-msgstr ""
+msgstr "Nama:"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Could not create folder."
-msgstr ""
+msgstr "Tidak dapat mencipta folder."
#: editor/editor_dir_dialog.cpp
msgid "Choose"
-msgstr ""
+msgstr "Pilih"
#: editor/editor_export.cpp
msgid "Storing File:"
-msgstr ""
+msgstr "Menyimpan Fail:"
#: editor/editor_export.cpp
msgid "No export template found at the expected path:"
-msgstr ""
+msgstr "Tiada templat eksport ditemui di laluan yang dijangkakan:"
#: editor/editor_export.cpp
msgid "Packing"
-msgstr ""
+msgstr "Pembungkusan"
#: editor/editor_export.cpp
msgid ""
"Target platform requires 'ETC' texture compression for GLES2. Enable 'Import "
"Etc' in Project Settings."
msgstr ""
+"Platform sasaran memerlukan pemampatan tekstur 'ETC' untuk GLES2. Aktifkan "
+"'Import Etc' dalam Tetapan Projek."
#: editor/editor_export.cpp
msgid ""
"Target platform requires 'ETC2' texture compression for GLES3. Enable "
"'Import Etc 2' in Project Settings."
msgstr ""
+"Platform sasaran memerlukan pemampatan tekstur 'ETC2' untuk GLES3. Aktifkan "
+"'Import Etc 2' dalam Tetapan Projek."
#: editor/editor_export.cpp
msgid ""
@@ -1554,508 +1596,520 @@ msgid ""
"Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback "
"Enabled'."
msgstr ""
+"Platform sasaran memerlukan pemampatan tekstur 'ETC' untuk sandaran pemandu "
+"ke GLES2.\n"
+"Aktifkan 'Import Etc' dalam Tetapan Projek, atau nyahaktifkan 'Driver "
+"Fallback Enabled'."
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom debug template not found."
-msgstr ""
+msgstr "Templat nyahpepijat tersuai tidak dijumpai."
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
-msgstr ""
+msgstr "Templat pelepasan tersuai tidak dijumpai."
#: editor/editor_export.cpp platform/javascript/export/export.cpp
msgid "Template file not found:"
-msgstr ""
+msgstr "Fail templat tidak dijumpai:"
#: editor/editor_export.cpp
msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
msgstr ""
+"Pada eksport 32-bit PCK terbenam tidak boleh lebih besar daripada 4 GiB."
#: editor/editor_feature_profile.cpp
msgid "3D Editor"
-msgstr ""
+msgstr "Editor 3D"
#: editor/editor_feature_profile.cpp
msgid "Script Editor"
-msgstr ""
+msgstr "Editor Skrip"
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
-msgstr ""
+msgstr "Perpustakaan Aset"
#: editor/editor_feature_profile.cpp
msgid "Scene Tree Editing"
-msgstr ""
+msgstr "Penyuntingan Pokok Adegan"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr ""
+msgid "Node Dock"
+msgstr "Dok nod"
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
-msgstr ""
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Sistem Fail dan Dok Import"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr ""
+msgid "Import Dock"
+msgstr "Import Dok"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
-msgstr ""
+msgstr "Padamkan profil '%s'? (tidak boleh buat asal)"
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
-msgstr ""
+msgstr "Profil mestilah nama fail yang sah dan tidak boleh mengandungi '.'"
#: editor/editor_feature_profile.cpp
msgid "Profile with this name already exists."
-msgstr ""
+msgstr "Profil dengan nama ini sudah wujud."
#: editor/editor_feature_profile.cpp
msgid "(Editor Disabled, Properties Disabled)"
-msgstr ""
+msgstr "(Editor Dinyahaktifkan, Ciri-ciri Dinyahaktifkan)"
#: editor/editor_feature_profile.cpp
msgid "(Properties Disabled)"
-msgstr ""
+msgstr "(Ciri-ciri dinyahaktif)"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(Editor Disabled)"
-msgstr "Tidak Aktif"
+msgstr "(Editor Dinyahaktif)"
#: editor/editor_feature_profile.cpp
msgid "Class Options:"
-msgstr ""
+msgstr "Pilihan Kelas:"
#: editor/editor_feature_profile.cpp
msgid "Enable Contextual Editor"
-msgstr ""
+msgstr "Aktifkan Editor Kontekstual"
#: editor/editor_feature_profile.cpp
msgid "Enabled Properties:"
-msgstr ""
+msgstr "Ciri-ciri Diaktifkan:"
#: editor/editor_feature_profile.cpp
msgid "Enabled Features:"
-msgstr ""
+msgstr "Ciri Diaktifkan:"
#: editor/editor_feature_profile.cpp
msgid "Enabled Classes:"
-msgstr ""
+msgstr "Kelas Diaktifkan:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
-msgstr ""
+msgstr "Format fail '%s' tidak sah, import dibatalkan."
#: editor/editor_feature_profile.cpp
msgid ""
"Profile '%s' already exists. Remove it first before importing, import "
"aborted."
msgstr ""
+"Profil '%s' sudah wujud. Keluarkannya terlebih dahulu sebelum mengimport, "
+"import dibatalkan."
#: editor/editor_feature_profile.cpp
msgid "Error saving profile to path: '%s'."
-msgstr ""
+msgstr "Ralat menyimpan profil ke laluan: '%s'."
#: editor/editor_feature_profile.cpp
msgid "Unset"
-msgstr ""
+msgstr "Nyahtetap"
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
-msgstr ""
+msgstr "Profil Semasa:"
#: editor/editor_feature_profile.cpp
msgid "Make Current"
-msgstr ""
+msgstr "Buat Semasa"
#: editor/editor_feature_profile.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/version_control_editor_plugin.cpp
msgid "New"
-msgstr ""
+msgstr "Baru"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/project_manager.cpp
msgid "Import"
-msgstr ""
+msgstr "Import"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
-msgstr ""
+msgstr "Eksport"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
-msgstr ""
+msgstr "Profil yang ada:"
#: editor/editor_feature_profile.cpp
msgid "Class Options"
-msgstr ""
+msgstr "Pilihan Kelas"
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
-msgstr ""
+msgstr "Nama profil baru:"
#: editor/editor_feature_profile.cpp
msgid "Erase Profile"
-msgstr ""
+msgstr "Padam Profil"
#: editor/editor_feature_profile.cpp
msgid "Godot Feature Profile"
-msgstr ""
+msgstr "Profil Ciri Godot"
#: editor/editor_feature_profile.cpp
msgid "Import Profile(s)"
-msgstr ""
+msgstr "Import Profil"
#: editor/editor_feature_profile.cpp
msgid "Export Profile"
-msgstr ""
+msgstr "Eksport Profil"
#: editor/editor_feature_profile.cpp
msgid "Manage Editor Feature Profiles"
-msgstr ""
+msgstr "Urus Profil Ciri Editor"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select Current Folder"
-msgstr ""
+msgstr "Pilih Folder Semasa"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File Exists, Overwrite?"
-msgstr ""
+msgstr "Fail Wujud, Tulis Ganti?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select This Folder"
-msgstr ""
+msgstr "Pilih Folder Ini"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Copy Path"
-msgstr ""
+msgstr "Salin Laluan"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Open in File Manager"
-msgstr ""
+msgstr "Buka dalam Pengurus Fail"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/filesystem_dock.cpp editor/project_manager.cpp
msgid "Show in File Manager"
-msgstr ""
+msgstr "Tunjukkan dalam Pengurus Fail"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "New Folder..."
-msgstr ""
+msgstr "Folder Baru..."
#: editor/editor_file_dialog.cpp editor/find_in_files.cpp
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Refresh"
-msgstr ""
+msgstr "Muat Semula"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
-msgstr ""
+msgstr "Semua Dikenali"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Files (*)"
-msgstr ""
+msgstr "Semua Fail (*)"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File"
-msgstr ""
+msgstr "Buka Fail"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open File(s)"
-msgstr ""
+msgstr "Buka Fail"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a Directory"
-msgstr ""
+msgstr "Buka Direktori"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File or Directory"
-msgstr ""
+msgstr "Buka Fail atau Direktori"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/editor_properties.cpp editor/inspector_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp scene/gui/file_dialog.cpp
msgid "Save"
-msgstr ""
+msgstr "Simpan"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Save a File"
-msgstr ""
+msgstr "Simpan Fail"
#: editor/editor_file_dialog.cpp
msgid "Go Back"
-msgstr ""
+msgstr "Pergi Balik"
#: editor/editor_file_dialog.cpp
msgid "Go Forward"
-msgstr ""
+msgstr "Pergi ke Hadapan"
#: editor/editor_file_dialog.cpp
msgid "Go Up"
-msgstr ""
+msgstr "Pergi Atas"
#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr ""
+msgstr "Togol Fail Tersembunyi"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr ""
+msgstr "Togol Kegemaran"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr ""
+msgstr "Togol Mod"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr ""
+msgstr "Laluan Fokus"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr ""
+msgstr "Pindah Kegemaran ke Atas"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr ""
+msgstr "Pindah Kegemaran ke Bawah"
#: editor/editor_file_dialog.cpp
msgid "Go to previous folder."
-msgstr ""
+msgstr "Pergi ke folder sebelumnya."
#: editor/editor_file_dialog.cpp
msgid "Go to next folder."
-msgstr ""
+msgstr "Pergi ke folder seterusnya."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Go to parent folder."
-msgstr ""
+msgstr "Pergi ke folder induk."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Refresh files."
-msgstr ""
+msgstr "Muat semula fail."
#: editor/editor_file_dialog.cpp
msgid "(Un)favorite current folder."
-msgstr ""
+msgstr "(Nyah)kegemaran folder semasa."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Toggle the visibility of hidden files."
-msgstr ""
+msgstr "Togol keterlihatan fail tersembunyi."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails."
-msgstr ""
+msgstr "Lihat barang sebagai grid gambar kecil."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "View items as a list."
-msgstr ""
+msgstr "Lihat barang sebagai senarai."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
-msgstr ""
+msgstr "Direktori & Fail:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
-msgstr ""
+msgstr "Pratonton:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File:"
-msgstr ""
+msgstr "Fail:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Must use a valid extension."
-msgstr ""
+msgstr "Mesti menggunakan sambungan yang sah."
#: editor/editor_file_system.cpp
msgid "ScanSources"
-msgstr ""
+msgstr "Sumber Imbas"
#: editor/editor_file_system.cpp
msgid ""
"There are multiple importers for different types pointing to file %s, import "
"aborted"
msgstr ""
+"Terdapat beberapa pengimport untuk pelbagai jenis yang menunjukkan ke fail "
+"%s, import dibatalkan"
#: editor/editor_file_system.cpp
msgid "(Re)Importing Assets"
-msgstr ""
+msgstr "Mengimport (Semula) Aset"
#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
msgid "Top"
-msgstr ""
+msgstr "Atas"
#: editor/editor_help.cpp
msgid "Class:"
-msgstr ""
+msgstr "Kelas:"
#: editor/editor_help.cpp editor/scene_tree_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Inherits:"
-msgstr ""
+msgstr "Mewarisi:"
#: editor/editor_help.cpp
msgid "Inherited by:"
-msgstr ""
+msgstr "Diwarisi oleh:"
#: editor/editor_help.cpp
msgid "Description"
-msgstr ""
+msgstr "Keterangan"
#: editor/editor_help.cpp
msgid "Online Tutorials"
-msgstr ""
+msgstr "Tutorial Dalam Talian"
#: editor/editor_help.cpp
msgid "Properties"
-msgstr ""
+msgstr "Sifat"
#: editor/editor_help.cpp
msgid "override:"
-msgstr ""
+msgstr "ganti:"
#: editor/editor_help.cpp
msgid "default:"
-msgstr ""
+msgstr "lalai:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr ""
+msgstr "Kaedah"
#: editor/editor_help.cpp
msgid "Theme Properties"
-msgstr ""
+msgstr "Sifat Tema"
#: editor/editor_help.cpp
msgid "Enumerations"
-msgstr ""
+msgstr "Penghitungan"
#: editor/editor_help.cpp
msgid "Constants"
-msgstr ""
+msgstr "Pemalar"
#: editor/editor_help.cpp
msgid "Property Descriptions"
-msgstr ""
+msgstr "Penerangan Sifat"
#: editor/editor_help.cpp
msgid "(value)"
-msgstr ""
+msgstr "(nilai)"
#: editor/editor_help.cpp
msgid ""
"There is currently no description for this property. Please help us by "
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
+"Tiada keterangan untuk sifat ini. Tolong bantu kami dengan [color=$color]"
+"[url=$url]menyumbang satu[/url][/color]!"
#: editor/editor_help.cpp
msgid "Method Descriptions"
-msgstr ""
+msgstr "Penerangan Kaedah"
#: editor/editor_help.cpp
msgid ""
"There is currently no description for this method. Please help us by [color="
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
+"Tiada keterangan untuk kaedah ini. Tolong bantu kami dengan [color=$color]"
+"[url=$url]menyumbang satu[/url][/color]!"
#: editor/editor_help_search.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
msgid "Search Help"
-msgstr ""
+msgstr "Cari Bantuan"
#: editor/editor_help_search.cpp
msgid "Case Sensitive"
-msgstr ""
+msgstr "Kesensitifan Huruf"
#: editor/editor_help_search.cpp
msgid "Show Hierarchy"
-msgstr ""
+msgstr "Tunjuk Hierarki"
#: editor/editor_help_search.cpp
msgid "Display All"
-msgstr ""
+msgstr "Paparkan Semua"
#: editor/editor_help_search.cpp
msgid "Classes Only"
-msgstr ""
+msgstr "Kelas Sahaja"
#: editor/editor_help_search.cpp
msgid "Methods Only"
-msgstr ""
+msgstr "Kaedah Sahaja"
#: editor/editor_help_search.cpp
msgid "Signals Only"
-msgstr ""
+msgstr "Isyarat Sahaja"
#: editor/editor_help_search.cpp
msgid "Constants Only"
-msgstr ""
+msgstr "Pemalar Sahaja"
#: editor/editor_help_search.cpp
msgid "Properties Only"
-msgstr ""
+msgstr "Sifat Sahaja"
#: editor/editor_help_search.cpp
msgid "Theme Properties Only"
-msgstr ""
+msgstr "Sifat Tema Sahaja"
#: editor/editor_help_search.cpp
msgid "Member Type"
-msgstr ""
+msgstr "Jenis Ahli"
#: editor/editor_help_search.cpp
msgid "Class"
-msgstr ""
+msgstr "Kelas"
#: editor/editor_help_search.cpp
msgid "Method"
-msgstr ""
+msgstr "Kaedah"
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
msgid "Signal"
-msgstr ""
+msgstr "Isyarat"
#: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constant"
-msgstr ""
+msgstr "Pemalar"
#: editor/editor_help_search.cpp
msgid "Property"
-msgstr ""
+msgstr "Sifat"
#: editor/editor_help_search.cpp
msgid "Theme Property"
-msgstr ""
+msgstr "Sifat Tema"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
-msgstr ""
+msgstr "Sifat:"
#: editor/editor_inspector.cpp
msgid "Set"
-msgstr ""
+msgstr "Tetapkan"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
-msgstr ""
+msgstr "Tetapkan Pelbagai:"
#: editor/editor_log.cpp
msgid "Output:"
-msgstr ""
+msgstr "Keluaran:"
#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Copy Selection"
-msgstr "Semua Pilihan"
+msgstr "Salin Pilihan"
#: editor/editor_log.cpp editor/editor_network_profiler.cpp
#: editor/editor_profiler.cpp editor/editor_properties.cpp
@@ -2065,176 +2119,184 @@ msgstr "Semua Pilihan"
#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Clear"
-msgstr ""
+msgstr "Kosongkan"
#: editor/editor_log.cpp
msgid "Clear Output"
-msgstr ""
+msgstr "Kosongkan Keluaran"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
#: editor/editor_profiler.cpp
msgid "Stop"
-msgstr ""
+msgstr "Hentikan"
#: editor/editor_network_profiler.cpp editor/editor_profiler.cpp
#: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp
msgid "Start"
-msgstr ""
+msgstr "Mulakan"
#: editor/editor_network_profiler.cpp
msgid "%s/s"
-msgstr ""
+msgstr "%s/s"
#: editor/editor_network_profiler.cpp
msgid "Down"
-msgstr ""
+msgstr "Bawah"
#: editor/editor_network_profiler.cpp
msgid "Up"
-msgstr ""
+msgstr "Atas"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
msgid "Node"
-msgstr ""
+msgstr "Nod"
#: editor/editor_network_profiler.cpp
msgid "Incoming RPC"
-msgstr ""
+msgstr "RPC masuk"
#: editor/editor_network_profiler.cpp
msgid "Incoming RSET"
-msgstr ""
+msgstr "RSET masuk"
#: editor/editor_network_profiler.cpp
msgid "Outgoing RPC"
-msgstr ""
+msgstr "RPC Keluar"
#: editor/editor_network_profiler.cpp
msgid "Outgoing RSET"
-msgstr ""
+msgstr "RSET Keluar"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "New Window"
-msgstr ""
+msgstr "Tetingkap Baru"
#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
-msgstr ""
+msgstr "Sumber yang diimport tidak dapat disimpan."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: scene/gui/dialogs.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
-msgstr ""
+msgstr "Ralat semasa menyimpan sumber!"
#: editor/editor_node.cpp
msgid ""
"This resource can't be saved because it does not belong to the edited scene. "
"Make it unique first."
msgstr ""
+"Sumber ini tidak dapat disimpan kerana tidak tergolong dalam adegan yang "
+"diedit. Jadikannya unik terlebih dahulu."
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As..."
-msgstr ""
+msgstr "Simpan Sumber Sebagai..."
#: editor/editor_node.cpp
msgid "Can't open file for writing:"
-msgstr ""
+msgstr "Tidak dapat membuka fail untuk ditulis:"
#: editor/editor_node.cpp
msgid "Requested file format unknown:"
-msgstr ""
+msgstr "Format fail yang diminta tidak diketahui:"
#: editor/editor_node.cpp
msgid "Error while saving."
-msgstr ""
+msgstr "Ralat semasa menyimpan."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Can't open '%s'. The file could have been moved or deleted."
msgstr ""
+"Tidak dapat membuka '% s'. Fail mungkin telah dipindahkan atau dipadam."
#: editor/editor_node.cpp
msgid "Error while parsing '%s'."
-msgstr ""
+msgstr "Ralat semasa menghuraikan '%s'."
#: editor/editor_node.cpp
msgid "Unexpected end of file '%s'."
-msgstr ""
+msgstr "Penghujung fail '%s' tidak dijangka."
#: editor/editor_node.cpp
msgid "Missing '%s' or its dependencies."
-msgstr ""
+msgstr "Hilang '%s' atau kebergantungannya."
#: editor/editor_node.cpp
msgid "Error while loading '%s'."
-msgstr ""
+msgstr "Ralat semasa memuatkan '%s'."
#: editor/editor_node.cpp
msgid "Saving Scene"
-msgstr ""
+msgstr "Menyimpan Adegan"
#: editor/editor_node.cpp
msgid "Analyzing"
-msgstr ""
+msgstr "Menganalisis"
#: editor/editor_node.cpp
msgid "Creating Thumbnail"
-msgstr ""
+msgstr "Mencipta Gambar Kecil"
#: editor/editor_node.cpp
msgid "This operation can't be done without a tree root."
-msgstr ""
+msgstr "Operasi ini tidak boleh dilakukan tanpa akar pokok."
#: editor/editor_node.cpp
msgid ""
"This scene can't be saved because there is a cyclic instancing inclusion.\n"
"Please resolve it and then attempt to save again."
msgstr ""
+"Adegan ini tidak dapat disimpan kerana terdapat penyertaan yang berbentuk "
+"siklik.\n"
+"Sila selesaikan dan kemudian cuba simpan semula."
#: editor/editor_node.cpp
msgid ""
"Couldn't save scene. Likely dependencies (instances or inheritance) couldn't "
"be satisfied."
msgstr ""
+"Tidak dapat menyimpan adegan. Kemungkinan kebergantungan (instance atau "
+"warisan) tidak dapat dipenuhi."
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "Can't overwrite scene that is still open!"
-msgstr ""
+msgstr "Tidak boleh tulis ganti adegan yang masih terbuka!"
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
-msgstr ""
+msgstr "Tidak dapat memuatkan MeshLibrary untuk penggabungan!"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr ""
+msgstr "Ralat menyimpan MeshLibrary!"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
-msgstr ""
+msgstr "Tidak boleh memuatkan TileSet untuk penggabungan!"
#: editor/editor_node.cpp
msgid "Error saving TileSet!"
-msgstr ""
+msgstr "Ralat semasa menyimpan TileSet!"
#: editor/editor_node.cpp
msgid "Error trying to save layout!"
-msgstr ""
+msgstr "Ralat semasa menyimpan susun atur!"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr ""
+msgstr "Susun atur lalai telah diganti."
#: editor/editor_node.cpp
msgid "Layout name not found!"
-msgstr ""
+msgstr "Nama susun atur tidak dijumpai!"
#: editor/editor_node.cpp
msgid "Restored default layout to base settings."
-msgstr ""
+msgstr "Tata letak lalai telah dipulihkan ke tetapan asas."
#: editor/editor_node.cpp
msgid ""
@@ -2242,18 +2304,26 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
+"Sumber ini tergolong dalam adegan yang diimport, maka ia tidak dapat "
+"diedit.\n"
+"Sila baca dokumentasi yang berkaitan dengan pengimportan adegan untuk lebih "
+"memahami aliran kerja ini."
#: editor/editor_node.cpp
msgid ""
"This resource belongs to a scene that was instanced or inherited.\n"
"Changes to it won't be kept when saving the current scene."
msgstr ""
+"Sumber ini tergolong dalam adegan yang di-instance atau diwarisi.\n"
+"Perubahan tidak akan disimpan semasa menyimpan adegan semasa."
#: editor/editor_node.cpp
msgid ""
"This resource was imported, so it's not editable. Change its settings in the "
"import panel and then re-import."
msgstr ""
+"Sumber ini telah diimport, maka ia tidak dapat diedit. Ubah tetapannya di "
+"panel import dan kemudian import semula."
#: editor/editor_node.cpp
msgid ""
@@ -2262,6 +2332,10 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
+"Adegan ini telah diimport, maka perubahan kepada ia tidak akan disimpan.\n"
+"Instance-kan ia atau mewarisi akan membenarkan perubahan dibuat padanya.\n"
+"Sila baca dokumentasi yang berkaitan dengan pengimportan adegan untuk lebih "
+"memahami aliran kerja ini."
#: editor/editor_node.cpp
msgid ""
@@ -2269,154 +2343,158 @@ msgid ""
"Please read the documentation relevant to debugging to better understand "
"this workflow."
msgstr ""
+"Ini adalah objek terpencil, maka perubahan padanya tidak akan disimpan.\n"
+"Sila baca dokumentasi yang berkaitan dengan penyahpepijatan untuk lebih "
+"memahami aliran kerja ini."
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
-msgstr ""
-
-#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
+msgstr "Tiada adegan yang didefinisikan untuk dijalankan."
#: editor/editor_node.cpp
msgid "Could not start subprocess!"
-msgstr ""
+msgstr "Tidak dapat memulakan subproses!"
#: editor/editor_node.cpp editor/filesystem_dock.cpp
msgid "Open Scene"
-msgstr ""
+msgstr "Buka Adegan"
#: editor/editor_node.cpp
msgid "Open Base Scene"
-msgstr ""
+msgstr "Buka Adegan Asas"
#: editor/editor_node.cpp
msgid "Quick Open..."
-msgstr ""
+msgstr "Buka Cepat..."
#: editor/editor_node.cpp
msgid "Quick Open Scene..."
-msgstr ""
+msgstr "Buka Cepat Adegan..."
#: editor/editor_node.cpp
msgid "Quick Open Script..."
-msgstr ""
+msgstr "Buka Cepat Skrip..."
#: editor/editor_node.cpp
msgid "Save & Close"
-msgstr ""
+msgstr "Simpan & Tutup"
#: editor/editor_node.cpp
msgid "Save changes to '%s' before closing?"
-msgstr ""
+msgstr "Simpan perubahan pada '%s' sebelum menutup?"
#: editor/editor_node.cpp
msgid "Saved %s modified resource(s)."
-msgstr ""
+msgstr "Sumber %s yang diubahsuai telah disimpan."
#: editor/editor_node.cpp
msgid "A root node is required to save the scene."
-msgstr ""
+msgstr "Nod akar diperlukan untuk menyimpan adegan."
#: editor/editor_node.cpp
msgid "Save Scene As..."
-msgstr ""
+msgstr "Simpan Adegan Sebagai..."
#: editor/editor_node.cpp
msgid "No"
-msgstr ""
+msgstr "Tidak"
#: editor/editor_node.cpp
msgid "Yes"
-msgstr ""
+msgstr "Ya"
#: editor/editor_node.cpp
msgid "This scene has never been saved. Save before running?"
-msgstr ""
+msgstr "Adegan ini tidak pernah disimpan. Simpan sebelum menjalankan?"
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
-msgstr ""
+msgstr "Operasi ini tidak boleh dilakukan tanpa adegan."
#: editor/editor_node.cpp
msgid "Export Mesh Library"
-msgstr ""
+msgstr "Eksport Perpustakaan Mesh"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
-msgstr ""
+msgstr "Operasi ini tidak boleh dilakukan tanpa nod akar."
#: editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr ""
+msgstr "Eksport Tile Set"
#: editor/editor_node.cpp
msgid "This operation can't be done without a selected node."
-msgstr ""
+msgstr "Operasi ini tidak dapat dilakukan tanpa nod terpilih."
#: editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
-msgstr ""
+msgstr "Adegan semasa tidak disimpan. Masih buka?"
#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
-msgstr ""
+msgstr "Tidak dapat memuatkan semula adegan yang tidak pernah disimpan."
#: editor/editor_node.cpp
msgid "Reload Saved Scene"
-msgstr ""
+msgstr "Muatkan semula Adegan yang Disimpan"
#: editor/editor_node.cpp
msgid ""
"The current scene has unsaved changes.\n"
"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
+"Adegan semasa mempunyai perubahan yang belum disimpan.\n"
+"Masih muat semula adegan yang telah disimpan? Tindakan ini tidak boleh "
+"dibuat asal."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
-msgstr ""
+msgstr "Jalan Cepat Adegan..."
#: editor/editor_node.cpp
msgid "Quit"
-msgstr ""
+msgstr "Keluar"
#: editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr ""
+msgstr "Keluar dari editor?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
-msgstr ""
+msgstr "Buka Pengurus Projek?"
#: editor/editor_node.cpp
msgid "Save & Quit"
-msgstr ""
+msgstr "Simpan & Keluar"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr ""
+msgstr "Simpan perubahan pada adegan berikut sebelum keluar?"
#: editor/editor_node.cpp
msgid "Save changes the following scene(s) before opening Project Manager?"
-msgstr ""
+msgstr "Simpan perubahan adegan berikut sebelum membuka Pengurus Projek?"
#: editor/editor_node.cpp
msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
msgstr ""
+"Pilihan ini tidak digunakan lagi. Situasi di mana penyegaran mesti dipaksa "
+"sekarang dianggap sebagai pepijat. Sila laporkan."
#: editor/editor_node.cpp
msgid "Pick a Main Scene"
-msgstr ""
+msgstr "Pilih Adegan Utama"
#: editor/editor_node.cpp
msgid "Close Scene"
-msgstr ""
+msgstr "Tutup Adegan"
#: editor/editor_node.cpp
msgid "Reopen Closed Scene"
-msgstr ""
+msgstr "Buka Semula Adegan Tertutup"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
@@ -2695,22 +2773,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2719,8 +2801,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2729,32 +2811,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2762,9 +2844,8 @@ msgid "Editor"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Editor Settings..."
-msgstr "Set Peralihan ke:"
+msgstr "Tetapan Editor..."
#: editor/editor_node.cpp
msgid "Editor Layout"
@@ -2815,7 +2896,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3215,7 +3296,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4068,9 +4150,8 @@ msgstr ""
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Add Animation Point"
-msgstr "Set Peralihan ke:"
+msgstr "Tambah Titik Animasi"
#: editor/plugins/animation_blend_space_1d_editor.cpp
msgid "Remove BlendSpace1D Point"
@@ -4213,9 +4294,8 @@ msgid "Nodes Disconnected"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Set Animation"
-msgstr "Set Peralihan ke:"
+msgstr "Tetapkan Animasi"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -4395,9 +4475,8 @@ msgid "Animation"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Edit Transitions..."
-msgstr "Set Peralihan ke:"
+msgstr "Sunting Peralihan..."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Open in Inspector"
@@ -4495,14 +4574,12 @@ msgid "Move Node"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition exists!"
-msgstr "Set Peralihan ke:"
+msgstr "Peralihan wujud!"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Add Transition"
-msgstr "Set Peralihan ke:"
+msgstr "Tambah Peralihan"
#: editor/plugins/animation_state_machine_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -4542,9 +4619,8 @@ msgid "Node Removed"
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition Removed"
-msgstr "Set Peralihan ke:"
+msgstr "Peralihan Dikeluarkan"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Set Start Node (Autoplay)"
@@ -4578,9 +4654,8 @@ msgid "Set the end animation. This is useful for sub-transitions."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition: "
-msgstr "Set Peralihan ke:"
+msgstr "Peralihan: "
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Play Mode:"
@@ -4952,7 +5027,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -5625,9 +5700,8 @@ msgid "Load Curve Preset"
msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Add Point"
-msgstr "Set Peralihan ke:"
+msgstr "Tambah Titik"
#: editor/plugins/curve_editor_plugin.cpp
#, fuzzy
@@ -7544,7 +7618,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8069,9 +8143,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete selected Rect."
-msgstr "Semua Pilihan"
+msgstr "Padam Rect yang dipilih."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -8080,9 +8153,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete polygon."
-msgstr "Semua Pilihan"
+msgstr "Padam poligon."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -8481,9 +8553,8 @@ msgid "Color constant."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color uniform."
-msgstr "Anim Ubah Penukaran"
+msgstr "Warna seragam."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the boolean result of the %s comparison between two parameters."
@@ -8826,9 +8897,8 @@ msgid "Scalar constant."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar uniform."
-msgstr "Anim Ubah Penukaran"
+msgstr "Seragam skalar."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Perform the cubic texture lookup."
@@ -9536,6 +9606,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9967,11 +10038,16 @@ msgid "Batch Rename"
msgstr "Ubah Nama Trek Anim"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Ganti"
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10017,7 +10093,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10075,7 +10151,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10181,9 +10257,12 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Padamkan nod %d dan mana-mana kanak-kanak?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
-msgstr "Semua Pilihan"
+msgstr "Padam nod %d?"
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
@@ -10194,9 +10273,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "Semua Pilihan"
+msgstr "Padam nod \"%s\"?"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -11171,9 +11249,8 @@ msgid "Set Variable Type"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Input Port"
-msgstr "Set Peralihan ke:"
+msgstr "Tambah Port Input"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Output Port"
@@ -11418,9 +11495,8 @@ msgid "Add Nodes..."
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function..."
-msgstr "Semua Pilihan"
+msgstr "Tambah fungsi..."
#: modules/visual_script/visual_script_editor.cpp
msgid "function_name"
@@ -11795,6 +11871,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12007,6 +12089,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index 4e7ca2dce1..33758ee5cd 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -555,6 +555,7 @@ msgid "Seconds"
msgstr "Sekunder"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -744,7 +745,7 @@ msgstr "Match Tilfelle"
msgid "Whole Words"
msgstr "Hele Ord"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Erstatt"
@@ -949,6 +950,11 @@ msgid "Signals"
msgstr "Signaler"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtrer Filer..."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
"Er du sikker på at du ønsker å fjerne alle koblinger fra dette signalet?"
@@ -990,7 +996,7 @@ msgid "Recent:"
msgstr "Nylige:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Søk:"
@@ -1178,6 +1184,9 @@ msgstr "Prosjektgrunnleggere"
msgid "Lead Developer"
msgstr "Utviklingsleder"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Prosjektstyring "
@@ -1199,6 +1208,16 @@ msgid "Gold Sponsors"
msgstr "Gullsponsorer"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Sølvdonorer"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Bronsedonorer"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Minisponsorer"
@@ -1696,21 +1715,21 @@ msgstr ""
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "Import Dock"
-msgstr "Importer"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
msgstr "Flytt Modus"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "FilSystem"
#: editor/editor_feature_profile.cpp
#, fuzzy
+msgid "Import Dock"
+msgstr "Importer"
+
+#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Erase profile '%s'? (no undo)"
msgstr "Erstatt Alle"
@@ -1997,7 +2016,7 @@ msgstr "Mapper og Filer:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Forhåndsvisning:"
@@ -2461,10 +2480,6 @@ msgid "There is no defined scene to run."
msgstr "Det er ingen definert scene å kjøre."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "Gjeldende scene ble aldri lagret, vennligst lagre før kjøring."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Kunne ikke starta subprosess!"
@@ -2918,26 +2933,29 @@ msgid "Deploy with Remote Debug"
msgstr "Distribuer med ekstern feilsøking"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Ved eksportering eller deploying, den følgende kjørbare filen vil prøve å "
-"koble til IP'en til denne datamaskinen for å bli debugget."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Liten utrulling med Network FS"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Når dette alternativet er aktivert, eksportering eller distribuering vil "
"produsere en kjørbar fil.\n"
@@ -2950,9 +2968,10 @@ msgid "Visible Collision Shapes"
msgstr "Synlige kollisjons-former"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Kollisjons-former eller raycast-noder (for 2D og 3D) vil være synlige under "
"kjøring av spill om denne innstillingen er aktivert."
@@ -2962,23 +2981,26 @@ msgid "Visible Navigation"
msgstr "Synlig navigasjon"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Navigasjons-maske og polygoner vil være synlig under kjøring av spill om "
"denne innstillingen er aktivert."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Synkroniser Sceneendringer"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Når denne innstillingen er aktivert, alle endringer gjort til scenen i "
"editoren vil bli replikert i det kjørende spillet.\n"
@@ -2986,16 +3008,17 @@ msgstr ""
"nettverksfilsystem."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Synkroniser Skriptendringer"
#: editor/editor_node.cpp
#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Når denne innstillingen er aktivert, alle skript som er lagret vil lastes "
"inn på nytt i det kjørende spillet.\n"
@@ -3067,7 +3090,7 @@ msgstr "Hjelp"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Søk"
@@ -3495,9 +3518,11 @@ msgid "Add Key/Value Pair"
msgstr "Legg Til Nøkkel/Verdi Par"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Ingen kjørbar eksport-preset funnet for denne plattformen.\n"
"Vennligst legg til en kjørbar preset i eksportmenyen."
@@ -5393,7 +5418,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Forhåndsvis"
@@ -8171,7 +8196,8 @@ msgid "New Animation"
msgstr "Animasjon"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Hastighet (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -10306,6 +10332,7 @@ msgstr ""
"Godotprosjekter.\n"
"Det kan ta en stund."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Prosjektstyring"
@@ -10750,11 +10777,16 @@ msgid "Batch Rename"
msgstr "Endre navn"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Erstatt: "
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10806,7 +10838,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10868,8 +10900,9 @@ msgid "Reset"
msgstr "Nullstill Zoom"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
-msgstr ""
+#, fuzzy
+msgid "Regular Expression Error:"
+msgstr "Gjeldende Versjon:"
#: editor/rename_dialog.cpp
#, fuzzy
@@ -10978,6 +11011,11 @@ msgstr "Lagre Scene"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Kutt Noder"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "Kutt Noder"
@@ -12703,6 +12741,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12915,6 +12959,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -13173,6 +13222,21 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstanter kan ikke endres."
+#, fuzzy
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "FilSystem"
+
+#, fuzzy
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Ved eksportering eller deploying, den følgende kjørbare filen vil prøve å "
+#~ "koble til IP'en til denne datamaskinen for å bli debugget."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "Gjeldende scene ble aldri lagret, vennligst lagre før kjøring."
+
#~ msgid "Not in resource path."
#~ msgstr "Ikke i resource path."
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index 3d560d3d6d..122782e1b0 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -40,11 +40,14 @@
# Tirrin <lensenjoe@gmail.com>, 2019.
# Filip Van Raemdonck <arrawn@gmail.com>, 2019.
# Julian <jdhoogvorst@gmail.com>, 2019, 2020.
+# kitfka <philipthuijs@gmail.com>, 2020.
+# Mike van Leeuwen <mkvanleeuwen@gmail.com>, 2020.
+# marnicq van loon <marnicqvanloon@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-22 06:40+0000\n"
+"PO-Revision-Date: 2020-08-28 13:09+0000\n"
"Last-Translator: Stijn Hinlopen <f.a.hinlopen@gmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/"
"nl/>\n"
@@ -53,22 +56,22 @@ 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.2-dev\n"
+"X-Generator: Weblate 4.2.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Ongeldig argumenttype voor convert(), gebruik TYPE_* constanten."
+msgstr "Ongeldig type argument voor convert(), gebruik TYPE_* constanten."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "Tekenreeks met lengte 1 verwacht (één karakter)."
+msgstr "Verwachtte een tekenreeks van lengte 1 (één karakter)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "Niet genoeg bytes om te decoderen, of ongeldig formaat."
+msgstr "Niet genoeg bytes voor het decoderen van bytes, of ongeldig formaat."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -525,10 +528,12 @@ msgid ""
msgstr ""
"Deze animatie behoort tot een geïmporteerde scène, dus veranderingen aan "
"geïmporteerde tracks zullen niet worden opgeslagen.\n"
+"\n"
"Om aangepaste tracks toe te kunnen voegen, moet in de importinstellingen van "
"de scène en de \"Animation→Storage\" naar \"Files\" zetten en "
"\"Animation→Keep Custom Tracks\" inschakelen. Importeer de scène dan "
"opnieuw.\n"
+"\n"
"Anders kan je een importvoorinstelling gebruiken die animaties importeert en "
"in verschillende bestanden opslaat."
@@ -562,6 +567,7 @@ msgid "Seconds"
msgstr "Seconden"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -740,7 +746,7 @@ msgstr "Hoofdlettergevoelig"
msgid "Whole Words"
msgstr "Hele woorden"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Vervangen"
@@ -775,7 +781,7 @@ msgstr "Uitzoomen"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr "Initialiseer Zoom"
+msgstr "Herstel Zoom"
#: editor/code_editor.cpp
msgid "Warnings"
@@ -790,9 +796,8 @@ msgid "Method in target node must be specified."
msgstr "Methode in doelknoop moet gespecificeerd worden."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "Naam is geen geldige identifier:"
+msgstr "Methodenaam is geen geldige naam."
#: editor/connections_dialog.cpp
msgid ""
@@ -935,6 +940,11 @@ msgid "Signals"
msgstr "Signalen"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filter tegels"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
"Weet je zeker dat je alle verbindingen naar dit signaal wilt verwijderen?"
@@ -973,7 +983,7 @@ msgid "Recent:"
msgstr "Onlangs:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Zoeken:"
@@ -1156,6 +1166,9 @@ msgstr "Projectoprichters"
msgid "Lead Developer"
msgstr "Hoofdontwikkelaar"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Projectbeheer "
@@ -1177,6 +1190,16 @@ msgid "Gold Sponsors"
msgstr "Gouden Sponsors"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Zilveren Donors"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Bronzen Donors"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini Sponsoren"
@@ -1494,7 +1517,7 @@ msgstr "Autoloads opnieuw ordenen"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr "Autoload kon niet toevoegd worden:"
+msgstr "Autoload kan niet toevoegd worden:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1652,16 +1675,17 @@ msgid "Scene Tree Editing"
msgstr "Scèneboombewerking"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Importtabblad"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Knooptabblad"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Bestandssysteem- en Importtablad"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Bestandssysteem"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Importtabblad"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1865,11 +1889,11 @@ msgstr "Ga Omhoog"
#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr "Toggle Verborgen Bestanden"
+msgstr "Verborgen Bestanden Omschakelen"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr "Toggle Favoriet"
+msgstr "Favoriet Omschakelen"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
@@ -1925,7 +1949,7 @@ msgstr "Mappen & Bestanden:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Voorbeeld:"
@@ -2365,10 +2389,6 @@ msgid "There is no defined scene to run."
msgstr "Er is geen startscène ingesteld."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "De huidige scène is nooit opgeslagen, sla het op voor het uitvoeren."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Kon het subproces niet opstarten!"
@@ -2809,24 +2829,28 @@ msgstr "Opstarten met debugging op afstand"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Na het exporteren of opstarten van het programma zal het proberen verbinding "
-"maken met het IP-adres van deze computer zodat het gedebugd kan worden."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Klein uitvoerbaar bestand opstarten met netwerk bestandsserver"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Wanneer deze optie is ingeschakeld, zal export of deploy een minimaal "
"uitvoerbaar bestand creëren.\n"
@@ -2840,9 +2864,10 @@ msgid "Visible Collision Shapes"
msgstr "Toon collision shapes"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Botsingsdetectievormen en raycast knopen (voor 2D en 3D) zullen zichtbaar "
"zijn in het draaiend spel wanneer deze optie aan staat."
@@ -2852,23 +2877,26 @@ msgid "Visible Navigation"
msgstr "Navigatie zichtbaar"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Navigatie meshes en polygonen zijn zichtbaar in het draaiend spel wanneer "
"deze optie aanstaat."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Scèneveranderingen synchroniseren"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Wanneer deze optie aanstaat, wordt elke verandering gemaakt in de editor "
"toegepast op het draaiend spel.\n"
@@ -2876,15 +2904,17 @@ msgstr ""
"efficiënter met het netwerk bestandssysteem."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Scriptveranderingen synchroniseren"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Wanneer deze optie aanstaat wordt ieder script dat wordt opgeslagen "
"toegepast op het draaiend spel.\n"
@@ -2948,7 +2978,7 @@ msgstr "Help"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Zoeken"
@@ -3368,9 +3398,11 @@ msgid "Add Key/Value Pair"
msgstr "Sleutel/waarde-paar toevoegen"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Geen uitvoerbare export preset gevonden voor dit platform.\n"
"Voeg een uitvoerbare preset toe in het exportmenu."
@@ -5139,7 +5171,7 @@ msgid "Bake Lightmaps"
msgstr "Bak Lichtmappen"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Voorbeeld"
@@ -7361,7 +7393,7 @@ msgstr "Bekijk Omgeving"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Gizmos"
-msgstr "Bekijk Gizmos"
+msgstr "Toon Gizmos"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Information"
@@ -7450,9 +7482,9 @@ msgid ""
msgstr ""
"Klik om te wisselen tussen zichtbaarheidsweergaven.\n"
"\n"
-"Open oog: handvat is zichtbaar.\n"
-"Gesloten oog: handvat is verborgen.\n"
-"Half open oog: handvat is ook zichtbaar door ondoorzichtige oppervlaktes."
+"Open oog: Gizmo is zichtbaar.\n"
+"Gesloten oog: Gizmo is verborgen.\n"
+"Half open oog: Gizmo is ook zichtbaar door ondoorzichtige oppervlaktes."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
@@ -7640,7 +7672,7 @@ msgstr "Post"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Nameless gizmo"
-msgstr "Naamloos apparaat"
+msgstr "Naamloze gizmo"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -7793,7 +7825,8 @@ msgid "New Animation"
msgstr "Niewe animatie"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Snelheid (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9932,6 +9965,7 @@ msgstr ""
"Wil je %s mappen doorzoeken naar bestaande Godot projecten?\n"
"Dit kan een tijdje duren."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Projectbeheer"
@@ -10372,11 +10406,18 @@ msgid "Batch Rename"
msgstr "Bulk hernoemen"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Vervangen: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Voorvoegsel"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Achtervoegsel"
#: editor/rename_dialog.cpp
@@ -10424,7 +10465,8 @@ msgid "Per-level Counter"
msgstr "Per niveau teller"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
"Indien ingesteld: herstart de teller voor iedere groep van onderliggende "
"knopen"
@@ -10486,7 +10528,8 @@ msgid "Reset"
msgstr "Resetten"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Fout in reguliere expressie"
#: editor/rename_dialog.cpp
@@ -10596,6 +10639,10 @@ msgid "Make node as Root"
msgstr "Knoop tot wortelknoop maken"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "%d knopen en hun (eventuele) kinderen verwijderen?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Verwijder %d knopen?"
@@ -12288,6 +12335,12 @@ msgid ""
"shape resource for it!"
msgstr "Een CollisionShape2D heeft een vorm nodig in de Shape-eigenschap!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12556,6 +12609,11 @@ msgstr ""
"GIProbes worden niet ondersteund door het GLES2 grafische stuurprogramma.\n"
"Gebruik in plaats daarvan een BakedLightmap."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12862,6 +12920,21 @@ msgstr "Varyings kunnen alleen worden toegewezenin vertex functies."
msgid "Constants cannot be modified."
msgstr "Constanten kunnen niet worden aangepast."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Bestandssysteem- en Importtablad"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Na het exporteren of opstarten van het programma zal het proberen "
+#~ "verbinding maken met het IP-adres van deze computer zodat het gedebugd "
+#~ "kan worden."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "De huidige scène is nooit opgeslagen, sla het op voor het uitvoeren."
+
#~ msgid "Not in resource path."
#~ msgstr "Niet in bronpad."
diff --git a/editor/translations/or.po b/editor/translations/or.po
index d6678c2819..11fc082ecd 100644
--- a/editor/translations/or.po
+++ b/editor/translations/or.po
@@ -506,6 +506,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -684,7 +685,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -873,6 +874,10 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -910,7 +915,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1084,6 +1089,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1105,6 +1113,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1568,15 +1584,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1839,7 +1855,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2249,10 +2265,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2668,22 +2680,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2692,8 +2708,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2702,32 +2718,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2787,7 +2803,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3187,7 +3203,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4911,7 +4928,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7493,7 +7510,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9469,6 +9486,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9899,11 +9917,15 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -9949,7 +9971,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10007,7 +10029,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10113,6 +10135,10 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr ""
@@ -11714,6 +11740,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -11926,6 +11958,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index ed53a98bed..7be793ffd2 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -5,8 +5,8 @@
# 8-bit Pixel <dawdejw@gmail.com>, 2016.
# Adam Wolanski <adam.wolanski94@gmail.com>, 2017.
# Adrian Węcławski <weclawskiadrian@gmail.com>, 2016.
-# aelspire <aelspire@gmail.com>, 2017, 2019.
-# Daniel Lewan <vision360.daniel@gmail.com>, 2016-2018.
+# aelspire <aelspire@gmail.com>, 2017, 2019, 2020.
+# Daniel Lewan <vision360.daniel@gmail.com>, 2016-2018, 2020.
# Dariusz Król <rexioweb@gmail.com>, 2018.
# heya10 <igor.gielzak@gmail.com>, 2017.
# holistyczny interlokutor <jakubowesmieci@gmail.com>, 2017.
@@ -16,17 +16,17 @@
# Karol Walasek <coreconviction@gmail.com>, 2016.
# Maksymilian Świąć <maksymilian.swiac@gmail.com>, 2017-2018.
# Mietek Szcześniak <ravaging@go2.pl>, 2016.
-# NeverK <neverkoxu@gmail.com>, 2018, 2019.
-# Rafal Brozio <rafal.brozio@gmail.com>, 2016, 2019.
+# NeverK <neverkoxu@gmail.com>, 2018, 2019, 2020.
+# Rafal Brozio <rafal.brozio@gmail.com>, 2016, 2019, 2020.
# Rafał Ziemniak <synaptykq@gmail.com>, 2017.
# RM <synaptykq@gmail.com>, 2018, 2020.
# Sebastian Krzyszkowiak <dos@dosowisko.net>, 2017.
-# Sebastian Pasich <sebastian.pasich@gmail.com>, 2017, 2019.
+# Sebastian Pasich <sebastian.pasich@gmail.com>, 2017, 2019, 2020.
# siatek papieros <sbigneu@gmail.com>, 2016.
-# Zatherz <zatherz@linux.pl>, 2017.
+# Zatherz <zatherz@linux.pl>, 2017, 2020.
# Tomek <kobewi4e@gmail.com>, 2018, 2019, 2020.
# Wojcieh Er Zet <wojcieh.rzepecki@gmail.com>, 2018.
-# Dariusz Siek <dariuszynski@gmail.com>, 2018, 2019.
+# Dariusz Siek <dariuszynski@gmail.com>, 2018, 2019, 2020.
# Szymon Nowakowski <smnbdg13@gmail.com>, 2019.
# Nie Powiem <blazek10@tlen.pl>, 2019.
# Sebastian Hojka <sibibibi1@gmail.com>, 2019.
@@ -40,12 +40,16 @@
# Cezary Stasiak <cezary.p.stasiak@gmail.com>, 2019.
# Jan Ligudziński <jan.ligudzinski@gmail.com>, 2020.
# Adam Jagoda <kontakt@lukasz.xyz>, 2020.
+# Filip Glura <mcmr.slendy@gmail.com>, 2020.
+# Roman Skiba <romanskiba0@gmail.com>, 2020.
+# Piotr Grodzki <ziemniakglados@gmail.com>, 2020.
+# Dzejkop <jakubtrad@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
-"Last-Translator: Adam Jagoda <kontakt@lukasz.xyz>\n"
+"PO-Revision-Date: 2020-09-22 03:23+0000\n"
+"Last-Translator: Zatherz <zatherz@linux.pl>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot/pl/>\n"
"Language: pl\n"
@@ -54,7 +58,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -69,8 +73,7 @@ msgstr "Oczekiwano ciągu znaków o długości 1 (znaku)."
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
-"Niewystarczająca ilość bajtów dla bajtów dekodujących, albo zły format."
+msgstr "Niewystarczająca ilość bajtów dla bajtów dekodujących lub zły format."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -79,7 +82,7 @@ msgstr "Niewłaściwe dane %i (nie przekazane) w wyrażeniu"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
msgstr ""
-"self nie może być użyte ponieważ instancja jest równa zeru (nie przekazano)"
+"self nie może być użyte, ponieważ instancja jest nullem (nie przekazano)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -244,7 +247,7 @@ msgstr "Ścieżka krzywej Béziera"
#: editor/animation_track_editor.cpp
msgid "Audio Playback Track"
-msgstr "Ścieżka audio"
+msgstr "Ścieżka dźwiękowa"
#: editor/animation_track_editor.cpp
msgid "Animation Playback Track"
@@ -346,12 +349,12 @@ msgstr "Przytnij"
#: editor/animation_track_editor.cpp
msgid "Wrap Loop Interp"
-msgstr "Zawiń"
+msgstr "Zawiń pętlę interpolacji"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr "Wstaw klucz"
+msgstr "Wprowadź klucz"
#: editor/animation_track_editor.cpp
msgid "Duplicate Key(s)"
@@ -363,7 +366,7 @@ msgstr "Usuń klucz(e)"
#: editor/animation_track_editor.cpp
msgid "Change Animation Update Mode"
-msgstr "Zmień tryb zmiany animacji"
+msgstr "Zmień sposób aktualizacji animacji"
#: editor/animation_track_editor.cpp
msgid "Change Animation Interpolation Mode"
@@ -383,7 +386,7 @@ msgstr "Utworzyć NOWĄ ścieżkę dla %s i wstawić klucz?"
#: editor/animation_track_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
-msgstr "Utworzyć %d NOWYCH ścieżek i wstawić klucze?"
+msgstr "Utworzyć %d NOWYCH ścieżek i dodać klatki kluczowe?"
#: editor/animation_track_editor.cpp editor/create_dialog.cpp
#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp
@@ -564,6 +567,7 @@ msgid "Seconds"
msgstr "sekund"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "klatek na sekundę"
@@ -742,7 +746,7 @@ msgstr "Uwzględnij wielkość liter"
msgid "Whole Words"
msgstr "Całe słowa"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Zastąp"
@@ -934,6 +938,11 @@ msgid "Signals"
msgstr "Sygnały"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtruj kafelki"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Na pewno chcesz usunąć wszystkie połączenia z tego sygnału?"
@@ -971,7 +980,7 @@ msgid "Recent:"
msgstr "Ostatnie:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Szukaj:"
@@ -1129,7 +1138,7 @@ msgstr "Zasoby bez jawnych właścicieli:"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Key"
-msgstr "Zmień klucz tablicy"
+msgstr "Zmień klucz słownika"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Value"
@@ -1151,6 +1160,9 @@ msgstr "Założyciele projektu"
msgid "Lead Developer"
msgstr "Deweloper naczelny"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Menedżer projektu "
@@ -1172,6 +1184,14 @@ msgid "Gold Sponsors"
msgstr "Złoci sponsorzy"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "Srebrni sponsorzy"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "Brązowi sponsorzy"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini-sponsorzy"
@@ -1294,7 +1314,7 @@ msgstr "Przełącz ominięcie efektów w magistrali audio"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
-msgstr "Wybierz szynę wysyłki audio"
+msgstr "Wybierz przesył magistrali audio"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus Effect"
@@ -1647,16 +1667,17 @@ msgid "Scene Tree Editing"
msgstr "Edycja drzewa sceny"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Dok importowania"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Dok węzła"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Doki systemu plików i importowania"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "System plików"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Dok importowania"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1919,7 +1940,7 @@ msgstr "Katalogi i pliki:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Podgląd:"
@@ -2355,12 +2376,6 @@ msgid "There is no defined scene to run."
msgstr "Nie ma zdefiniowanej sceny do uruchomienia."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"Aktualna scena nie została zapisana, proszę zapisać scenę przed "
-"uruchomieniem."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Nie można było uruchomić podprocesu!"
@@ -2800,24 +2815,28 @@ msgstr "Uruchom z użyciem zdalnego debugowania"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Podczas eksportu lub uruchomienia, aplikacja wynikowa spróbuje połączyć się "
-"z adresem IP tego komputera w celu debugowania."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Testuj z sieciowym systemem plików"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Gdy ta opcja jest zaznaczona, eksportowanie utworzy jak najmniejszy plik "
"wykonywalny.\n"
@@ -2830,9 +2849,10 @@ msgid "Visible Collision Shapes"
msgstr "Widoczne kształty kolizji"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Kształty kolizji i promienie raycast (2D i 3D) będą widoczne, jeśli ta opcja "
"będzie zaznaczona."
@@ -2842,23 +2862,26 @@ msgid "Visible Navigation"
msgstr "Widoczna nawigacja"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Kształty i poligony nawigacyjne będą widoczne, jeśli ta opcja będzie "
"zaznaczona."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Synchronizuj zmiany w scenie"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Kiedy ta opcja jest włączona, wszystkie zmiany na scenie w edytorze będą "
"powtórzone w uruchomionej grze.\n"
@@ -2866,15 +2889,17 @@ msgstr ""
"systemie plików."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Synchronizuj zmiany skryptów"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Kiedy ta opcja jest włączona, każdy zapisany skrypt będzie przeładowany w "
"uruchomionej grze.\n"
@@ -2938,7 +2963,7 @@ msgstr "Pomoc"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Szukaj"
@@ -3095,7 +3120,7 @@ msgstr "Szablonowy pakiet"
#: editor/editor_node.cpp
msgid "Export Library"
-msgstr "Wyeksportuj biblioteke"
+msgstr "Wyeksportuj bibliotekę"
#: editor/editor_node.cpp
msgid "Merge With Existing"
@@ -3208,7 +3233,7 @@ msgstr "Klatka %"
#: editor/editor_profiler.cpp
msgid "Physics Frame %"
-msgstr "Klatki Fizyki %"
+msgstr "Klatka fizyki %"
#: editor/editor_profiler.cpp
msgid "Inclusive"
@@ -3354,9 +3379,11 @@ msgid "Add Key/Value Pair"
msgstr "Dodaj parę klucz/wartość"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Nie znaleziono możliwego do uruchomienia profilu eksportu dla tej "
"platformy.\n"
@@ -3940,11 +3967,11 @@ msgstr "Importuj oddzielnie obiekty i animacje"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials+Animations"
-msgstr "Importuj wraz z Oddzielnymi Materiałami i Animacjami"
+msgstr "Zaimportuj osobno Materiały+Animacje"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials+Animations"
-msgstr "Importuj wraz z Oddzielnymi Obiektami, Materiałami i Animacjami"
+msgstr "Zaimportuj osobno Obiekty+Materiały+Animacje"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes"
@@ -4067,11 +4094,11 @@ msgstr "Kopiuj zasób"
#: editor/inspector_dock.cpp
msgid "Make Built-In"
-msgstr "Skrypt wbudowany"
+msgstr "Stwórz wbudowany"
#: editor/inspector_dock.cpp
msgid "Make Sub-Resources Unique"
-msgstr "Utwórz unikalne pod-zasoby"
+msgstr "Utwórz unikalne podzasoby"
#: editor/inspector_dock.cpp
msgid "Open in Help"
@@ -4493,7 +4520,7 @@ msgstr "Zmień nazwę animacji"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
-msgstr "Mieszaj następną zmienioną"
+msgstr "Zmieszaj kolejną po zmianach"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Blend Time"
@@ -4533,7 +4560,7 @@ msgstr "Odtwórz zaznaczoną animację od tyłu z aktualnej pozycji. (A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr "Odtwarzaj zaznaczoną animację od końca. (Shift+A)"
+msgstr "Odtwórz zaznaczoną animację od tyłu z końca. (Shift+A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Stop animation playback. (S)"
@@ -4597,7 +4624,7 @@ msgstr "Poprzedni"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Future"
-msgstr "Przyszłość"
+msgstr "Następny"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
@@ -4878,7 +4905,7 @@ msgstr "Węzeł Skalowania Czasu"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "TimeSeek Node"
-msgstr "Węzeł TimeSeek"
+msgstr "Węzeł Przewijania w Czasie"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Transition Node"
@@ -4955,8 +4982,7 @@ msgstr "Przekroczenie czasu."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
msgstr ""
-"Zły hash pobranego pliku. Zakładamy, że ktoś przy nim majstrował, lub został "
-"niepoprawnie pobrany."
+"Zła suma kontrolna pobranego pliku. Zakładamy, że ktoś przy nim majstrował."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Expected:"
@@ -5056,7 +5082,7 @@ msgstr "Wszystko"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No results for \"%s\"."
-msgstr "Brak rezultatów dla \"%s\"."
+msgstr "Brak wyników dla \"%s\"."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
@@ -5128,7 +5154,7 @@ msgid "Bake Lightmaps"
msgstr "Stwórz Lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Podgląd"
@@ -5414,7 +5440,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+RMB: Depth list selection"
-msgstr "Alt+PPM: Lista obiektów pod spodem"
+msgstr "Alt+PPM: Wybór listy głębi"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -7777,7 +7803,8 @@ msgid "New Animation"
msgstr "Nowa animacja"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Prędkość (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9545,7 +9572,7 @@ msgstr "Plik paczki"
#: editor/project_export.cpp
msgid "Features"
-msgstr "Funkcjonalności"
+msgstr "Funkcje"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
@@ -9904,6 +9931,7 @@ msgstr ""
"projektów Godota?\n"
"To może chwilę zająć."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Menedżer projektów"
@@ -10344,11 +10372,18 @@ msgid "Batch Rename"
msgstr "Grupowa zmiana nazwy"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Zastąp: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Przedrostek"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Przyrostek"
#: editor/rename_dialog.cpp
@@ -10396,7 +10431,8 @@ msgid "Per-level Counter"
msgstr "Oddzielny licznik na poziom"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Gdy ustawione, licznik restartuje dla każdej grupy węzłów potomnych"
#: editor/rename_dialog.cpp
@@ -10456,7 +10492,8 @@ msgid "Reset"
msgstr "Resetuj"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Błąd wyrażenia regularnego"
#: editor/rename_dialog.cpp
@@ -10566,6 +10603,10 @@ msgid "Make node as Root"
msgstr "Zmień węzeł na Korzeń"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "Usunąć %d węzłów i ich węzły potomne?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Usunąć %d węzłów?"
@@ -12262,6 +12303,15 @@ msgstr ""
"Kształt jest niezbędny do działania CollisionShape2D. Proszę utworzyć zasób "
"Shape!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Kształty oparte na wielokątach nie są przystosowane, by ich używać lub "
+"edytować bezpośrednio przez węzeł CollisionShape2D. Zamiast tego użyj węzła "
+"CollisionPolygon2D."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12531,6 +12581,11 @@ msgstr ""
"GIProbes nie są obsługiwane przez sterownik wideo GLES2.\n"
"Zamiast tego użyj BakedLightmap."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight z kątem szerszym niż 90 stopni nie może rzucać cieni."
@@ -12834,6 +12889,21 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchołków."
msgid "Constants cannot be modified."
msgstr "Stałe nie mogą być modyfikowane."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Doki systemu plików i importowania"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Podczas eksportu lub uruchomienia, aplikacja wynikowa spróbuje połączyć "
+#~ "się z adresem IP tego komputera w celu debugowania."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Aktualna scena nie została zapisana, proszę zapisać scenę przed "
+#~ "uruchomieniem."
+
#~ msgid "Not in resource path."
#~ msgstr "Nie znaleziono w ścieżce zasobów."
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index bfa3d0b52c..d1b82cffe6 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -536,6 +536,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -716,7 +717,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -914,6 +915,11 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Paste yer Node"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -953,7 +959,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1127,6 +1133,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1148,6 +1157,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1623,16 +1640,17 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
#, fuzzy
msgid "Node Dock"
msgstr "Find ye Node Type"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Rename Variable"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1907,7 +1925,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2327,10 +2345,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2754,22 +2768,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2778,8 +2796,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2788,32 +2806,33 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
-msgstr ""
+#, fuzzy
+msgid "Synchronize Script Changes"
+msgstr "Change"
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2876,7 +2895,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3285,7 +3304,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -5076,7 +5096,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7738,7 +7758,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9793,6 +9813,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -10232,11 +10253,15 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10284,7 +10309,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10343,7 +10368,7 @@ msgstr ""
#: editor/rename_dialog.cpp
#, fuzzy
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr "Swap yer Expression"
#: editor/rename_dialog.cpp
@@ -10451,6 +10476,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Slit th' Node"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "Slit th' Node"
@@ -12146,6 +12176,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12358,6 +12394,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/pt_PT.po b/editor/translations/pt.po
index 54accb0d6f..6b6a15dda7 100644
--- a/editor/translations/pt_PT.po
+++ b/editor/translations/pt.po
@@ -1,4 +1,4 @@
-# Portuguese (Portugal) translation of the Godot Engine editor
+# Portuguese translation of the Godot Engine editor
# Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.
# Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
@@ -13,23 +13,23 @@
# Rueben Stevens <supercell03@gmail.com>, 2017.
# SARDON <fabio3_Santos@hotmail.com>, 2017.
# Vinicius Gonçalves <viniciusgoncalves21@gmail.com>, 2017.
-# ssantos <ssantos@web.de>, 2018, 2019.
+# ssantos <ssantos@web.de>, 2018, 2019, 2020.
# Gonçalo Dinis Guerreiro João <goncalojoao205@gmail.com>, 2019.
# Manuela Silva <mmsrs@sky.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-15 12:01+0000\n"
-"Last-Translator: João Lopes <linux-man@hotmail.com>\n"
-"Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/"
-"godot-engine/godot/pt_PT/>\n"
-"Language: pt_PT\n"
+"PO-Revision-Date: 2020-09-24 12:43+0000\n"
+"Last-Translator: ssantos <ssantos@web.de>\n"
+"Language-Team: Portuguese <https://hosted.weblate.org/projects/"
+"godot-engine/godot/pt/>\n"
+"Language: pt\n"
"MIME-Version: 1.0\n"
"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.1\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -540,6 +540,7 @@ msgid "Seconds"
msgstr "Segundos"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -718,7 +719,7 @@ msgstr "Caso de Compatibilidade"
msgid "Whole Words"
msgstr "Palavras inteiras"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Substituir"
@@ -768,9 +769,8 @@ msgid "Method in target node must be specified."
msgstr "Método no nó alvo deve ser especificado."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "O nome não é um identificador válido:"
+msgstr "O nome do método tem de ser um identificador válido."
#: editor/connections_dialog.cpp
msgid ""
@@ -837,7 +837,7 @@ msgstr "Deferido"
msgid ""
"Defers the signal, storing it in a queue and only firing it at idle time."
msgstr ""
-"Retarda o sinal, armazena-o numa fila e só ativando-o em tempo de "
+"Retarda o sinal, armazena-o numa fila e só a ativar-o em tempo de "
"inatividade."
#: editor/connections_dialog.cpp
@@ -912,6 +912,11 @@ msgid "Signals"
msgstr "Sinais"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtrar Tiles"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Deseja remover todas as conexões deste sinal?"
@@ -949,7 +954,7 @@ msgid "Recent:"
msgstr "Recente:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Procurar:"
@@ -1038,7 +1043,7 @@ msgstr "Proprietários de:"
#: editor/dependency_editor.cpp
msgid "Remove selected files from the project? (Can't be restored)"
-msgstr "Remover arquivos selecionados do Projeto? (Sem desfazer)"
+msgstr "Remover ficheiros selecionados do Projeto? (Sem desfazer)"
#: editor/dependency_editor.cpp
msgid ""
@@ -1046,7 +1051,7 @@ msgid ""
"work.\n"
"Remove them anyway? (no undo)"
msgstr ""
-"Os arquivos a serem removidos são necessários para que outros recursos "
+"Os ficheiros a serem removidos são necessários para que outros recursos "
"funcionem.\n"
"Remover mesmo assim? (sem anular)"
@@ -1130,6 +1135,9 @@ msgstr "Fundadores do Projeto"
msgid "Lead Developer"
msgstr "Desenvolvedor-chefe"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Gestor de Projeto "
@@ -1144,11 +1152,19 @@ msgstr "Autores"
#: editor/editor_about.cpp
msgid "Platinum Sponsors"
-msgstr "Patrocinadores Platinum"
+msgstr "Patrocinadores Platina"
#: editor/editor_about.cpp
msgid "Gold Sponsors"
-msgstr "Patrocinadores Gold"
+msgstr "Patrocinadores Ouro"
+
+#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "Patrocinadores Prata"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "Patrocinadores Bronze"
#: editor/editor_about.cpp
msgid "Mini Sponsors"
@@ -1404,11 +1420,11 @@ msgstr "Guardar este Modelo de Barramento para um ficheiro."
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
-msgstr "Carregar Padrão"
+msgstr "Carregar Predefinição"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr "Carregar o Modelo padrão de barramento."
+msgstr "Carregar o Modelo predefinido de barramento."
#: editor/editor_audio_buses.cpp
msgid "Create a new Bus Layout."
@@ -1506,7 +1522,7 @@ msgstr "A atualizar Cena"
#: editor/editor_data.cpp
msgid "Storing local changes..."
-msgstr "Armazenando alterações locais..."
+msgstr "A armazenar alterações locais..."
#: editor/editor_data.cpp
msgid "Updating scene..."
@@ -1552,7 +1568,7 @@ msgstr "Escolha"
#: editor/editor_export.cpp
msgid "Storing File:"
-msgstr "Arquivo de Armazenamento:"
+msgstr "Armazenar o Ficheiro:"
#: editor/editor_export.cpp
msgid "No export template found at the expected path:"
@@ -1628,16 +1644,17 @@ msgid "Scene Tree Editing"
msgstr "Edição da Árvore de Cena"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Importar Doca"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Doca de Nó"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Sistema de Ficheiros e Docas de Importação"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Sistema de Ficheiros"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Importar Doca"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1900,7 +1917,7 @@ msgstr "Diretorias e Ficheiros:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Pré-visualização:"
@@ -1963,7 +1980,7 @@ msgstr "Sobrepõe:"
#: editor/editor_help.cpp
msgid "default:"
-msgstr "Padrão:"
+msgstr "predefinição:"
#: editor/editor_help.cpp
msgid "Methods"
@@ -1995,7 +2012,7 @@ msgid ""
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
"Atualmente não existe descrição para esta Propriedade. Por favor ajude-nos "
-"[color=$color][url=$url]contribuindo com uma[/url][/color]!"
+"[color=$color][url=$url]a contribuir com uma[/url][/color]!"
#: editor/editor_help.cpp
msgid "Method Descriptions"
@@ -2007,7 +2024,7 @@ msgid ""
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
"Atualmente não existe descrição para este Método. Por favor ajude-nos [color="
-"$color][url=$url]contribuindo com uma[/url][/color]!"
+"$color][url=$url]a contribuir com uma[/url][/color]!"
#: editor/editor_help_search.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -2221,11 +2238,11 @@ msgstr "A guardar Cena"
#: editor/editor_node.cpp
msgid "Analyzing"
-msgstr "Analizando"
+msgstr "A analizar"
#: editor/editor_node.cpp
msgid "Creating Thumbnail"
-msgstr "Criando Miniatura"
+msgstr "A criar miniatura"
#: editor/editor_node.cpp
msgid "This operation can't be done without a tree root."
@@ -2274,7 +2291,7 @@ msgstr "Erro ao tentar guardar o Modelo!"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr "O Modelo do Editor padrão foi substituído."
+msgstr "O modelo do editor predefinido foi substituído."
#: editor/editor_node.cpp
msgid "Layout name not found!"
@@ -2282,7 +2299,7 @@ msgstr "Nome do Modelo não encontrado!"
#: editor/editor_node.cpp
msgid "Restored default layout to base settings."
-msgstr "Modelo padrão restaurado para as configurações base."
+msgstr "Modelo predefinido restaurado para as configurações base."
#: editor/editor_node.cpp
msgid ""
@@ -2290,7 +2307,7 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"Este recurso pertence a uma cena que foi importado, não sendo editável.\n"
+"Este recurso pertence a uma cena que foi importado, sem ser editável.\n"
"Por favor, leia a documentação relevante sobre importação de cenas, para um "
"melhor entendimento deste fluxo de trabalho."
@@ -2319,7 +2336,7 @@ msgid ""
msgstr ""
"Esta cena foi importada, portanto, as alterações à mesma não serão "
"mantidas.\n"
-"Instanciando-a ou herdando-a vai permitir efetuar alterações à mesma.\n"
+"Instanciar-a ou herdar-a vai permitir efetuar alterações à mesma.\n"
"Por favor, leia a documentação relevante sobre importação de cenas, para um "
"melhor entendimento do fluxo de trabalho."
@@ -2339,10 +2356,6 @@ msgid "There is no defined scene to run."
msgstr "Não existe cena definida para execução."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "A cena atual nunca foi guardada, por favor guarde-a antes de executar."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Não consegui iniciar o subprocesso!"
@@ -2526,7 +2539,7 @@ msgid ""
"Scene '%s' was automatically imported, so it can't be modified.\n"
"To make changes to it, a new inherited scene can be created."
msgstr ""
-"Cena '%s' foi importada automaticamente, não podendo ser alterada.\n"
+"Cena '%s' foi importada automaticamente, sem poder ser alterada.\n"
"Para fazer alterações, pode ser criada uma nova cena herdada."
#: editor/editor_node.cpp
@@ -2552,8 +2565,8 @@ msgid ""
"category."
msgstr ""
"Não foi definida nenhuma cena principal. Selecionar uma?\n"
-"Poderá alterá-la depois nas \"Definições do Projeto\", na categoria "
-"'aplicação'."
+"Poderá alterá-la depois nas \"Configurações do Projeto\", na categoria "
+"'Application'."
#: editor/editor_node.cpp
msgid ""
@@ -2562,8 +2575,7 @@ msgid ""
"category."
msgstr ""
"A cena selecionada '%s' não existe, selecionar uma válida?\n"
-"Poderá alterá-la depois em \"Configurações de Projeto\", na categoria "
-"'aplicação'."
+"Poderá alterá-la depois em \"application\", na categoria 'Application'."
#: editor/editor_node.cpp
msgid ""
@@ -2573,8 +2585,8 @@ msgid ""
msgstr ""
"A cena selecionada '%s' não é um ficheiro de cena, selecione um ficheiro "
"válido?\n"
-"Poderá alterá-la depois em \"Configurações de Projeto\", na categoria "
-"'aplicação'."
+"Poderá alterá-la depois em \"Configurações do Projeto\", na categoria "
+"'Application."
#: editor/editor_node.cpp
msgid "Save Layout"
@@ -2587,7 +2599,7 @@ msgstr "Apagar Modelo"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
msgid "Default"
-msgstr "Padrão"
+msgstr "Predefinição"
#: editor/editor_node.cpp editor/editor_properties.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
@@ -2735,7 +2747,7 @@ msgstr "Projeto"
#: editor/editor_node.cpp
msgid "Project Settings..."
-msgstr "Configurações de Projeto..."
+msgstr "Configurações do Projeto..."
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
msgid "Version Control"
@@ -2784,24 +2796,28 @@ msgstr "Implementar com Depuração Remota"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Ao exportar ou distribuir, o executável vai tentar ligar-se ao IP deste "
-"computador para depuração."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Pequena distribuição com Network FS"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Quando esta opção é ativada, exportação ou distribuição criará um executável "
"mínimo.\n"
@@ -2814,9 +2830,10 @@ msgid "Visible Collision Shapes"
msgstr "Formas de Colisão Visíveis"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Com esta opção ativa, formas de colisão e nós raycast (para 2D e 3D) serão "
"visíveis no jogo em execução."
@@ -2826,42 +2843,47 @@ msgid "Visible Navigation"
msgstr "Navegação Visível"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Com esta opção ativa, Meshes e Polígonos serão visíveis no jogo em execução."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Sincronizar Alterações de Cena"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Com esta opção ativa, alterações da cena no editor serão replicadas no jogo "
"em execução.\n"
-"Quando usada num dispositivo remoto, é mais eficiente com um sistema de "
+"Quando usada num aparelho remoto, é mais eficiente com um sistema de "
"ficheiros em rede."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Sincronizar Alterações de Script"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Com esta opção ativa, qualquer Script guardado será recarregado no jogo em "
"execução.\n"
-"Quando usada num dispositivo remoto, é mais eficiente com um Sistema de "
+"Quando usada num aparelho remoto, é mais eficiente com um Sistema de "
"Ficheiros em rede."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2922,7 +2944,7 @@ msgstr "Ajuda"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Procurar"
@@ -3053,7 +3075,7 @@ msgstr ""
"O projeto será preparado para compilações personalizadas Android com a "
"instalação do modelo fonte em \"res://android/build\".\n"
"Poderá depois aplicar modificações e compilar o seu APK personalizado a "
-"exportar (com adição de módulos, alterando AndroidManifest.xml, etc.).\n"
+"exportar (com adição de módulos, a alterar AndroidManifest.xml, etc.).\n"
"Repare que de forma a criar compilações personalizadas em vez de usar APKs "
"pré-compilados, a opção \"Usar Compilação Personalizada\" deve ser ativada "
"na predefinição da exportação Android."
@@ -3339,9 +3361,11 @@ msgid "Add Key/Value Pair"
msgstr "Adicionar Par Chave/Valor"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Não foi encontrado um executável de exportação para esta plataforma.\n"
"Adicione um executável pré-definido no menu de exportação."
@@ -3469,8 +3493,9 @@ msgid ""
"No download links found for this version. Direct download is only available "
"for official releases."
msgstr ""
-"Não foram encontrados ligações para download para esta versão. Download "
-"direto está apenas disponível para os lançamentos oficiais."
+"Não foram encontrados ligações para descarregar para esta versão. "
+"Descarregamentos diretos estão disponíveis apenas para os lançamentos "
+"oficiais."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3514,7 +3539,7 @@ msgid ""
"The problematic templates archives can be found at '%s'."
msgstr ""
"Falhou a instalação de Modelos.\n"
-"Os ficheiros problemáticos podem ser encontrados em '%s'."
+"Os ficheiros problemáticos encontram-se em '%s'."
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
@@ -3986,11 +4011,11 @@ msgstr "%d Ficheiros"
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
-msgstr "Definir como Padrão para '%s'"
+msgstr "Definir como Predefinição para '%s'"
#: editor/import_dock.cpp
msgid "Clear Default for '%s'"
-msgstr "Limpar Padrão para '%s'"
+msgstr "Limpar Predefinição para '%s'"
#: editor/import_dock.cpp
msgid "Import As:"
@@ -4016,7 +4041,7 @@ msgstr "Alterar o tipo de um ficheiro importado requer reiniciar o editor."
msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
-"AVISO: Existem Ativos que usam este recurso, podendo não ser carregados "
+"AVISO: Existem Ativos que usam este recurso, poderem não ser carregados "
"corretamente."
#: editor/inspector_dock.cpp
@@ -4309,7 +4334,7 @@ msgstr "Alternar Triângulos Auto"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
-msgstr "Criar triângulos ligando pontos."
+msgstr "Criar triângulos a ligar pontos."
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Erase points and triangles."
@@ -4386,13 +4411,13 @@ msgstr "Alterar Filtro"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
-"Reprodutor de animação não definido, sendo incapaz de recolher nome das "
+"Reprodutor de animação não definido, a ser incapaz de recolher nome das "
"faixas."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Player path set is invalid, so unable to retrieve track names."
msgstr ""
-"Caminho do reprodutor é inválido, sendo incapaz de recolher nome das faixas."
+"Caminho do reprodutor é inválido, a ser incapaz de recolher nome das faixas."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/root_motion_editor_plugin.cpp
@@ -4400,7 +4425,7 @@ msgid ""
"Animation player has no valid root node path, so unable to retrieve track "
"names."
msgstr ""
-"Reprodutor de animação não tem um caminha de nó raiz válido, sendo incapaz "
+"Reprodutor de animação não tem um caminha de nó raiz válido, a ser incapaz "
"de recolher nome das faixas."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
@@ -5106,7 +5131,7 @@ msgid "Bake Lightmaps"
msgstr "Consolidar Lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Pré-visualização"
@@ -5603,8 +5628,8 @@ msgid ""
msgstr ""
"Insere chaves automaticamente quando objetos são movidos, rodados ou "
"redimensionados (baseado na máscara).\n"
-"Chaves apenas são adicionadas a pistas existentes, não sendo criadas novas "
-"pistas.\n"
+"Chaves apenas são adicionadas a pistas existentes, nenhumas pistas serão "
+"criadas.\n"
"Chaves têm de ser inseridas manualmente na primeira vez."
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5663,7 +5688,7 @@ msgstr "Erro a instanciar cena de %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Default Type"
-msgstr "Mudar Tipo Padrão"
+msgstr "Mudar Predefinição de Tipo"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -6401,7 +6426,7 @@ msgstr "Criar mapa UV"
msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
-msgstr "Polygon 2D tem vértices internos, não podendo ser editado no viewport."
+msgstr "Polygon 2D tem vértices internos, não poder ser editado no viewport."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon & UV"
@@ -6494,7 +6519,7 @@ msgstr "Escalar Polígono"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create a custom polygon. Enables custom polygon rendering."
msgstr ""
-"Crie um polígono personalizado. Habilita a renderização de polígonos "
+"Crie um polígono personalizado. Ativa a renderização de polígonos "
"personalizados."
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -7747,7 +7772,8 @@ msgid "New Animation"
msgstr "Nova Animação"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Velocidade (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8582,7 +8608,7 @@ msgstr "Definir Nome do Uniform"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set Input Default Port"
-msgstr "Definir Porta de Entrada Padrão"
+msgstr "Definir Porta de Entrada Predefinida"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node to Visual Shader"
@@ -9002,7 +9028,7 @@ msgstr ""
"\n"
"Devolve 0.0 se 'x' for menor que 'limite0' e 1.0 se 'x' for maior que "
"'limite1'. Caso contrário o valor devolvido é interpolado entre 0.0 and 1.0 "
-"usando polinomiais Hermite."
+"a usar polinomiais Hermite."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9092,9 +9118,9 @@ msgstr ""
"\n"
"OuterProduct trata o primeiro parâmetro 'c' como um vetor coluna (matriz com "
"uma coluna) e o segundo parâmetro 'r' como um vetor linha (matriz com uma "
-"linha) e faz uma multiplicação matricial algébrica linear 'c * r', "
-"resultando uma matriz cujo número de linhas é o número de componentes em 'c' "
-"e cujo número de colunas é o número de componentes de 'r'."
+"linha) e faz uma multiplicação matricial algébrica linear 'c * r', a "
+"resultar uma matriz cujo número de linhas é o número de componentes em 'c' e "
+"cujo número de colunas é o número de componentes de 'r'."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Composes transform from four vectors."
@@ -9182,7 +9208,7 @@ msgstr "Interpolação linear entre dois vetores."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Linear interpolation between two vectors using scalar."
-msgstr "Interpolação linear entre dois vetores usando um escalar."
+msgstr "Interpolação linear entre dois vetores a usar um escalar."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Calculates the normalize product of vector."
@@ -9220,7 +9246,7 @@ msgstr ""
"\n"
"Devolve 0.0 se 'x' for menor que 'limite0' e 1.0 se 'x' for maior que "
"'limite1'. Caso contrário o valor devolvido é interpolado entre 0.0 and 1.0 "
-"usando polinomiais Hermite."
+"a usar polinomiais Hermite."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9234,7 +9260,7 @@ msgstr ""
"\n"
"Devolve 0.0 se 'x' for menor que 'limite0' e 1.0 se 'x' for maior que "
"'limite1'. Caso contrário o valor devolvido é interpolado entre 0.0 and 1.0 "
-"usando polinomiais Hermite."
+"a usar polinomiais Hermite."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9310,8 +9336,8 @@ msgid ""
"it later in the Expressions. You can also declare varyings, uniforms and "
"constants."
msgstr ""
-"Expressão personalizada em Linguagem Godot Shader, colocada sobre o shader "
-"resultante. Pode colocar várias definições de função e chamá-las depois nas "
+"Expressão personalizada em Linguagem Godot Shader, posta sobre o shader "
+"resultante. Pode pôr várias definições de função e chamá-las depois nas "
"Expressões. Também pode declarar variantes, uniformes e constantes."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -9326,14 +9352,14 @@ msgstr "(Apenas modo Fragment/Light) Função derivada vetorial."
msgid ""
"(Fragment/Light mode only) (Vector) Derivative in 'x' using local "
"differencing."
-msgstr "(Apenas modo Fragment/Light) Derivada em 'x' usando derivação local."
+msgstr "(Apenas modo Fragment/Light) Derivada em 'x' a usar derivação local."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Scalar) Derivative in 'x' using local "
"differencing."
msgstr ""
-"(Apenas modo Fragment/Light) (Escalar) Derivada em 'x' usando derivação "
+"(Apenas modo Fragment/Light) (Escalar) Derivada em 'x' a usar derivação "
"local."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -9341,14 +9367,14 @@ msgid ""
"(Fragment/Light mode only) (Vector) Derivative in 'y' using local "
"differencing."
msgstr ""
-"(Apenas modo Fragment/Light) (Vetor) Derivada em 'y' usando derivação local."
+"(Apenas modo Fragment/Light) (Vetor) Derivada em 'y' a usar derivação local."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"(Fragment/Light mode only) (Scalar) Derivative in 'y' using local "
"differencing."
msgstr ""
-"(Apenas modo Fragment/Light) (Escalar) Derivada em 'y' usando derivação "
+"(Apenas modo Fragment/Light) (Escalar) Derivada em 'y' a usar derivação "
"local."
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -9813,8 +9839,8 @@ msgid ""
"the \"Application\" category."
msgstr ""
"Não consigo executar o projeto: cena principal não definida.\n"
-"Edite o projeto e defina a cena principal em Definições do Projeto dentro da "
-"categoria \"Aplicação\"."
+"Edite o projeto e defina a cena principal em Configurações do Projeto dentro "
+"da categoria \"Application\"."
#: editor/project_manager.cpp
msgid ""
@@ -9869,6 +9895,7 @@ msgstr ""
"Pretende pesquisar %s pastas por projetos Godot existentes?\n"
"Pode demorar um pouco."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Gestor de Projetos"
@@ -9970,11 +9997,11 @@ msgstr "Adicionar evento ação de entrada"
#: editor/project_settings_editor.cpp
msgid "All Devices"
-msgstr "Todos os Dispositivos"
+msgstr "Todos os Aparelhos"
#: editor/project_settings_editor.cpp
msgid "Device"
-msgstr "Dispositivo"
+msgstr "Aparelho"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key..."
@@ -10154,7 +10181,7 @@ msgstr "Modo filtro de localização alterado"
#: editor/project_settings_editor.cpp
msgid "Project Settings (project.godot)"
-msgstr "Definições do Projeto (project.godot)"
+msgstr "Configurações do Projeto (project.godot)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "General"
@@ -10186,7 +10213,7 @@ msgstr "Zona morta"
#: editor/project_settings_editor.cpp
msgid "Device:"
-msgstr "Dispositivo:"
+msgstr "Aparelho:"
#: editor/project_settings_editor.cpp
msgid "Index:"
@@ -10309,11 +10336,18 @@ msgid "Batch Rename"
msgstr "Renomear em massa"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Substituir: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Prefixo"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Sufixo"
#: editor/rename_dialog.cpp
@@ -10361,7 +10395,8 @@ msgid "Per-level Counter"
msgstr "Contador por nível"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Se definido o contador reinicia para cada grupo de nós filhos"
#: editor/rename_dialog.cpp
@@ -10421,7 +10456,8 @@ msgid "Reset"
msgstr "Repor"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Erro em Expressão Regular"
#: editor/rename_dialog.cpp
@@ -10430,11 +10466,11 @@ msgstr "No carácter %s"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent Node"
-msgstr "Recolocar Nó"
+msgstr "Repôr Nó"
#: editor/reparent_dialog.cpp
msgid "Reparent Location (Select new Parent):"
-msgstr "Recolocar localização (selecionar novo Parente):"
+msgstr "Repôr localização (selecionar novo Parente):"
#: editor/reparent_dialog.cpp
msgid "Keep Global Transform"
@@ -10442,7 +10478,7 @@ msgstr "Manter transformação global"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent"
-msgstr "Recolocar"
+msgstr "Repôr"
#: editor/run_settings_dialog.cpp
msgid "Run Mode:"
@@ -10530,6 +10566,10 @@ msgid "Make node as Root"
msgstr "Tornar Nó Raiz"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "Apagar %d nós e filhos?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Apagar %d nós?"
@@ -10563,7 +10603,7 @@ msgid ""
"reverted to their default."
msgstr ""
"Desativar \"editable_instance\" irá reverter todas as propriedades do nó "
-"para os seus valores padrão."
+"para os seus valores predefinição."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -10571,7 +10611,8 @@ msgid ""
"cause all properties of the node to be reverted to their default."
msgstr ""
"Ativar \"Carregar como Espaço Reservado\" vai desativar \"Filhos Editáveis\" "
-"e fazer com que todas as propriedades do nó revertam para valores padrão."
+"e fazer com que todas as propriedades do nó revertam para valores "
+"predefinidos."
#: editor/scene_tree_dock.cpp
msgid "Make Local"
@@ -10681,7 +10722,7 @@ msgstr "Mudar tipo"
#: editor/scene_tree_dock.cpp
msgid "Reparent to New Node"
-msgstr "Recolocar o Novo Nó"
+msgstr "Repôr o Novo Nó"
#: editor/scene_tree_dock.cpp
msgid "Make Scene Root"
@@ -11540,7 +11581,7 @@ msgstr "Mudar nome do argumento"
#: modules/visual_script/visual_script_editor.cpp
msgid "Set Variable Default Value"
-msgstr "Definir Valor Padrão da Variável"
+msgstr "Definir Valor Predefinido da Variável"
#: modules/visual_script/visual_script_editor.cpp
msgid "Set Variable Type"
@@ -11882,7 +11923,7 @@ msgstr "VariableSet não encontrado no script: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
msgstr ""
-"Nó personalizado não tem método _step(), não podendo processar um gráfico."
+"Nó personalizado não tem método _step(), sem poder processar um gráfico."
#: modules/visual_script/visual_script_nodes.cpp
msgid ""
@@ -11932,7 +11973,7 @@ msgstr "O pacote deve ter pelo menos um separador '.'."
#: platform/android/export/export.cpp
msgid "Select device from the list"
-msgstr "Selecionar dispositivo da lista"
+msgstr "Selecionar aparelho da lista"
#: platform/android/export/export.cpp
msgid "ADB executable not configured in the Editor Settings."
@@ -12084,7 +12125,7 @@ msgstr "Executar no Navegador"
#: platform/javascript/export/export.cpp
msgid "Run exported HTML in the system's default browser."
-msgstr "Executar HTML exportado no Navegador padrão do sistema."
+msgstr "Executar HTML exportado no navegador predefinido do sistema."
#: platform/javascript/export/export.cpp
msgid "Could not write file:"
@@ -12108,7 +12149,7 @@ msgstr "Não consigo ler ficheiro de imagem do ecrã de inicialização:"
#: platform/javascript/export/export.cpp
msgid "Using default boot splash image."
-msgstr "A usar imagem padrão de inicialização."
+msgstr "A usar imagem de inicialização predefinida."
#: platform/uwp/export/export.cpp
msgid "Invalid package short name."
@@ -12191,7 +12232,7 @@ msgid ""
"Consider adding a CollisionShape2D or CollisionPolygon2D as a child to "
"define its shape."
msgstr ""
-"Este nó não tem forma, não podendo colidir ou interagir com outros objetos.\n"
+"Este nó não tem forma, em poder colidir ou interagir com outros objetos.\n"
"Considere adicionar nós CollisionShape2D ou CollisionPolygon2D como filhos "
"para definir a sua forma."
@@ -12227,6 +12268,14 @@ msgstr ""
"Uma forma tem de ser fornecida para CollisionShape2D funcionar. Crie um "
"recurso forma!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Formas baseadas em polígono não pretendem ser usadas ou editadas diretamente "
+"através do nó CollisionShape2D. Em vez disso use o nó CollisionPolygon2D."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12292,7 +12341,7 @@ msgid ""
"A material to process the particles is not assigned, so no behavior is "
"imprinted."
msgstr ""
-"Não foi atribuído um Material para processar as partículas, não possuindo um "
+"Não foi atribuído um Material para processar as partículas, sem possuir um "
"comportamento."
#: scene/2d/particles_2d.cpp
@@ -12326,7 +12375,7 @@ msgstr ""
#: scene/2d/skeleton_2d.cpp
msgid "This Bone2D chain should end at a Skeleton2D node."
-msgstr "Esta corrente de Bone2D deve terminar em um nó Skeleton2D."
+msgstr "Esta corrente de Bone2D deve terminar num nó Skeleton2D."
#: scene/2d/skeleton_2d.cpp
msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node."
@@ -12417,7 +12466,7 @@ msgid ""
"Consider adding a CollisionShape or CollisionPolygon as a child to define "
"its shape."
msgstr ""
-"Este nó não tem forma, não podendo colidir ou interagir com outros objetos.\n"
+"Este nó não tem forma, sem poder colidir ou interagir com outros objetos.\n"
"Considere adicionar nós CollisionShape ou CollisionPolygon como filhos para "
"definir a sua forma."
@@ -12490,6 +12539,11 @@ msgstr ""
"Sondas GI não são suportadas pelo driver vídeo GLES2.\n"
"Em vez disso, use um BakedLightmap."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "Uma SpotLight com ângulo superior a 90 graus não cria sombras."
@@ -12541,8 +12595,8 @@ msgid ""
"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its "
"parent Path's Curve resource."
msgstr ""
-"ROTATION_ORIENTED de PathFollow requer \"Up Vector\" habilitado no recurso "
-"de Curva do Caminho do seu pai."
+"ROTATION_ORIENTED de PathFollow requer \"Up Vector\" ativado no recurso de "
+"Curva do Caminho do seu pai."
#: scene/3d/physics_body.cpp
msgid ""
@@ -12642,7 +12696,7 @@ msgstr "Não foi definida uma raiz AnimationNode para o gráfico."
#: scene/animation/animation_tree.cpp
msgid "Path to an AnimationPlayer node containing animations is not set."
msgstr ""
-"Caminho para um nó AnimationPlayer contendo animações não está definido."
+"Caminho para um nó AnimationPlayer a conter animações não está definido."
#: scene/animation/animation_tree.cpp
msgid "Path set for AnimationPlayer does not lead to an AnimationPlayer node."
@@ -12747,7 +12801,7 @@ msgid ""
"Default Environment as specified in Project Settings (Rendering -> "
"Environment -> Default Environment) could not be loaded."
msgstr ""
-"Ambiente Padrão especificado em Configuração do Projeto (Rendering -> "
+"Ambiente predefinido especificado em Configurações do Projeto (Rendering -> "
"Environment -> Default Environment) não pode ser carregado."
#: scene/main/viewport.cpp
@@ -12794,6 +12848,20 @@ msgstr "Variações só podem ser atribuídas na função vértice."
msgid "Constants cannot be modified."
msgstr "Constantes não podem ser modificadas."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Sistema de Ficheiros e Docas de Importação"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Ao exportar ou distribuir, o executável vai tentar ligar-se ao IP deste "
+#~ "computador para depuração."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "A cena atual nunca foi guardada, por favor guarde-a antes de executar."
+
#~ msgid "Not in resource path."
#~ msgstr "Não está no caminho do recurso."
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index 70878acad2..29b0350e10 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -94,12 +94,18 @@
# Kleyton Luiz de Sousa Vieira <kleytonluizdesouzavieira@gmail.com>, 2020.
# 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.
+# 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.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: 2016-05-30\n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
-"Last-Translator: José Paulo <jose.paulo1919@gmail.com>\n"
+"PO-Revision-Date: 2020-09-12 00:46+0000\n"
+"Last-Translator: Felipe Fetter <felipetfetter@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
@@ -107,7 +113,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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -182,7 +188,7 @@ msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
-msgstr "Livre"
+msgstr "Gratuito"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
@@ -238,7 +244,7 @@ msgstr "Alterar Transição da Animação"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
-msgstr "Alterar Transformação da Anim"
+msgstr "Alterar Transformação da Animação"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
@@ -246,7 +252,7 @@ msgstr "Alterar Valor de Quadro-Chave da Anim"
#: editor/animation_track_editor.cpp
msgid "Anim Change Call"
-msgstr "Alterar Chamada da Anim"
+msgstr "Alterar Chamada da Animação"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Keyframe Time"
@@ -616,6 +622,7 @@ msgid "Seconds"
msgstr "Segundos"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -794,7 +801,7 @@ msgstr "Caso de correspondência"
msgid "Whole Words"
msgstr "Palavras Inteiras"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Substituir"
@@ -986,6 +993,11 @@ msgid "Signals"
msgstr "Sinais"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtros do tile"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Tem certeza que quer remover todas conexões desse sinal?"
@@ -1023,7 +1035,7 @@ msgid "Recent:"
msgstr "Recente:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Pesquisar:"
@@ -1204,9 +1216,12 @@ msgstr "Fundadores do Projeto"
msgid "Lead Developer"
msgstr "Desenvolvedor-chefe"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
-msgstr "Gerenciador de Projetos "
+msgstr "Gerente do Projeto "
#: editor/editor_about.cpp
msgid "Developers"
@@ -1225,6 +1240,14 @@ msgid "Gold Sponsors"
msgstr "Patrocinadores Ouro"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "Patrocinadores Prata"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "Patrocinadores Bronze"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Patrocinadores Mini"
@@ -1557,7 +1580,7 @@ msgstr "Caminho:"
#: editor/editor_autoload_settings.cpp
msgid "Node Name:"
-msgstr "Nome do nó:"
+msgstr "Nome do Nó:"
#: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp
#: editor/editor_profiler.cpp editor/project_manager.cpp
@@ -1700,16 +1723,17 @@ msgid "Scene Tree Editing"
msgstr "Edição da Árvore de Cena"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Importar Dock"
+msgid "Node Dock"
+msgstr "Painel de Nós"
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
-msgstr "Dock de Nós"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Arquivos"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Sistema de Arquivos e Importar Docks"
+msgid "Import Dock"
+msgstr "Importar Dock"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1791,7 +1815,7 @@ msgstr "Novo"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/project_manager.cpp
msgid "Import"
-msgstr "Importar"
+msgstr "Import"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
@@ -1972,7 +1996,7 @@ msgstr "Diretórios & Arquivos:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Previsualização:"
@@ -2410,10 +2434,6 @@ msgid "There is no defined scene to run."
msgstr "Não há cena definida para rodar."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "A cena atual nunca foi salva. Por favor salve antes de rodá-la."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Não se pôde iniciar sub-processo!"
@@ -2858,24 +2878,28 @@ msgstr "Distribuir com Depuragem Remota"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Quando exportando ou instalando, o programa resultante tentará conectar ao "
-"IP deste computador para poder ser depurado."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Pequena DIstribuição com Sistema de Arquivos de Rede"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Quando esta opção está habilitada, a exportação ou instalação produzirá um "
"executável mínimo.\n"
@@ -2888,9 +2912,10 @@ msgid "Visible Collision Shapes"
msgstr "Formas de Colisão Visíveis"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Formas de colisão e nós do tipo RayCast (2D e 3D) serão visíveis durante a "
"execução do jogo caso esta opção esteja habilitada."
@@ -2900,23 +2925,26 @@ msgid "Visible Navigation"
msgstr "Navegação Visível"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Malhas e polígonos de navegação serão visíveis no jogo em execução se esta "
"opção estiver ligada."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Sincronizar Mudanças de Cena"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Quando essa opção está ativa, quaisquer alterações feitas à cena no editor "
"serão replicadas no jogo em execução.\n"
@@ -2924,15 +2952,17 @@ msgstr ""
"sistema de arquivos via rede."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Sincronizar Mudanças de Script"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Quando essa opção está ativa, qualquer script que é salvo será recarregado "
"no jogo em execução.\n"
@@ -2996,7 +3026,7 @@ msgstr "Ajuda"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Pesquisar"
@@ -3415,9 +3445,11 @@ msgid "Add Key/Value Pair"
msgstr "Adicionar Par de Chave/Valor"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Não foi encontrado uma definição de exportação executável para esta "
"plataforma.\n"
@@ -3869,7 +3901,7 @@ msgstr "Criar Script"
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
msgid "Find in Files"
-msgstr "Localizar nos Arquivos"
+msgstr "Localizar nos arquivos"
#: editor/find_in_files.cpp
msgid "Find:"
@@ -3954,7 +3986,7 @@ msgstr "Grupos"
#: editor/groups_editor.cpp
msgid "Nodes Not in Group"
-msgstr "Nodes fora do Grupo"
+msgstr "Nós fora do Grupo"
#: editor/groups_editor.cpp editor/scene_tree_dock.cpp
#: editor/scene_tree_editor.cpp
@@ -4052,7 +4084,7 @@ msgstr "Erro ao rodar script pós-importação:"
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
-msgstr "Você retornou um objeto derivado de nó no método `post import ()`?"
+msgstr "Você retornou um objeto derivado de Nó no método `post_import()`?"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -4177,7 +4209,7 @@ msgstr "Alterações podem ser perdidas!"
#: editor/multi_node_edit.cpp
msgid "MultiNode Set"
-msgstr "Múltiplos Nodes definidos"
+msgstr "Conjunto de Multi-Nós"
#: editor/node_dock.cpp
msgid "Select a single node to edit its signals and groups."
@@ -4481,7 +4513,7 @@ msgid ""
"Animation player has no valid root node path, so unable to retrieve track "
"names."
msgstr ""
-"O reprodutor de animações não tem caminho de nó raiz válido, então não é "
+"O reprodutor de animações não tem um caminho de nó raiz válido, então não é "
"possível obter os nomes das trilhas."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
@@ -4504,7 +4536,7 @@ msgstr "Nó Renomeado"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
-msgstr "Adicionar nó..."
+msgstr "Adicionar Nó..."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/root_motion_editor_plugin.cpp
@@ -4763,7 +4795,7 @@ msgstr "Viagem"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Start and end nodes are needed for a sub-transition."
-msgstr "Nós inicial e final são necessários para uma sub-transição."
+msgstr "Nó inicial e final são necessários para uma sub-transição."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "No playback resource set at path: %s."
@@ -5192,7 +5224,7 @@ msgid "Bake Lightmaps"
msgstr "Preparar Lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Visualização"
@@ -5290,15 +5322,14 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Presets for the anchors and margins values of a Control node."
-msgstr ""
-"Predefinições para os valores de âncoras e margens de um nó de controle."
+msgstr "Predefinições para os valores de âncoras e margens de um nó Control."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"When active, moving Control nodes changes their anchors instead of their "
"margins."
msgstr ""
-"Quando ativo, os nós de Controle móveis mudam suas âncoras em vez de suas "
+"Quando ativo, os nós Control móveis mudam suas âncoras em vez de suas "
"margens."
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6818,7 +6849,7 @@ msgstr "Localizar próximo"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find Previous"
-msgstr "Encontrar Anterior"
+msgstr "Localizar anterior"
#: editor/plugins/script_editor_plugin.cpp
msgid "Filter scripts"
@@ -7081,7 +7112,7 @@ msgstr "Recortar"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Select All"
-msgstr "Selecionar Tudo"
+msgstr "Selecionar tudo"
#: editor/plugins/script_text_editor.cpp
msgid "Delete Line"
@@ -7527,7 +7558,7 @@ msgstr "Usar Espaço Local"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr "Use Snap"
+msgstr "Use Encaixar"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -7841,7 +7872,8 @@ msgid "New Animation"
msgstr "Nova animação"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Velocidade (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8997,11 +9029,11 @@ msgstr "Converte um valor em radianos para graus."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-e Exponential."
-msgstr "Exponencial de Base e."
+msgstr "Exponencial de base e."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-2 Exponential."
-msgstr "Exponencial na base 2."
+msgstr "Exponencial de base 2."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest integer less than or equal to the parameter."
@@ -9021,7 +9053,7 @@ msgstr "Logaritmo natural."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-2 logarithm."
-msgstr "Logaritmo de base-2."
+msgstr "Logaritmo de base 2."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the greater of two values."
@@ -9395,8 +9427,8 @@ msgid ""
"Returns falloff based on the dot product of surface normal and view "
"direction of camera (pass associated inputs to it)."
msgstr ""
-"Retorna decaimento com base no produto escalar da normal da superfície com o "
-"a direção de visão da câmera (passe as entradas associadas a ele)."
+"Retorna decaimento com base no produto escalar da normal da superfície com a "
+"direção de visão da câmera (passe as entradas associadas a ele)."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9966,6 +9998,7 @@ msgstr ""
"existentes?\n"
"Isso pode levar algum tempo."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Gerenciador de Projetos"
@@ -10406,11 +10439,18 @@ msgid "Batch Rename"
msgstr "Renomear em lote"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Substituir: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Prefixo"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Sufixo"
#: editor/rename_dialog.cpp
@@ -10458,7 +10498,8 @@ msgid "Per-level Counter"
msgstr "Contador de nível"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Se definido, o contador será reiniciado para cada grupo de nós filhos"
#: editor/rename_dialog.cpp
@@ -10518,7 +10559,8 @@ msgid "Reset"
msgstr "Recompor"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Erro de Expressão Regular"
#: editor/rename_dialog.cpp
@@ -10628,6 +10670,10 @@ msgid "Make node as Root"
msgstr "Tornar Raiz o Nó"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "Deletar nó \"%d\" e seus filhos?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Excluir %d nós?"
@@ -11915,11 +11961,11 @@ msgstr "Localizar Tipo de Nó"
#: modules/visual_script/visual_script_editor.cpp
msgid "Copy Nodes"
-msgstr "Copiar Nodes"
+msgstr "Copiar Nós"
#: modules/visual_script/visual_script_editor.cpp
msgid "Cut Nodes"
-msgstr "Recortar Nodes"
+msgstr "Recortar Nós"
#: modules/visual_script/visual_script_editor.cpp
msgid "Make Function"
@@ -11951,7 +11997,7 @@ msgstr "Nome da propriedade de índice inválido."
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
-msgstr "Objeto base não é um nó!"
+msgstr "Objeto base não é um Nó!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Path does not lead Node!"
@@ -12049,10 +12095,9 @@ msgstr ""
"na predefinição."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-"Keystore de liberação icorretamente configurada na predefinição de "
+"Keystore de liberação incorretamente configurada na predefinição de "
"exportação."
#: platform/android/export/export.cpp
@@ -12097,21 +12142,18 @@ msgstr ""
"\"Use Custom Build\" precisa estar ativo para ser possível utilizar plugins."
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR"
"\"."
msgstr ""
-"\"Degrees Of Freedom\" só é válido quando o \"Oculus Mobile VR\" está no "
-"\"Mode Xr\"."
+"\"Degrees Of Freedom\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile VR"
+"\"."
#: platform/android/export/export.cpp
-#, fuzzy
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"."
msgstr ""
-"\"Hand Tracking\" só é válido quando o\"Oculus Mobile VR\" está no \"Xr Mode"
-"\"."
+"\"Hand Tracking\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile VR\"."
#: platform/android/export/export.cpp
msgid ""
@@ -12327,6 +12369,14 @@ msgstr ""
"Uma forma deve ser fornecida para que o nó CollisionShape2D funcione. Por "
"favor, crie um recurso de forma para ele!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Formas baseadas em polígonos não foram feitas para serem diretamente "
+"editadas no nó CollisionShape2D. Em vez disso use o nó CollisionPolygon2D."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12594,6 +12644,11 @@ msgstr ""
"GIProbes não são suportados pelo driver de vídeo GLES2.\n"
"Use um BakedLightmap em vez disso."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "Um SpotLight com um ângulo maior que 90 graus não pode criar sombras."
@@ -12807,7 +12862,7 @@ msgid ""
"The Hint Tooltip won't be displayed as the control's Mouse Filter is set to "
"\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"."
msgstr ""
-"A sugestão de dica não será exibida quando o Filtro do Mouse do controle "
+"A Sugestão de Dica não será exibida quando o Filtro do Mouse do controle "
"estiver definido como \"Ignorar\". Para resolver isto, defina o Filtro do "
"Mouse como \"Parar\" ou \"Passar\"."
@@ -12840,8 +12895,8 @@ msgid ""
"Use a container as child (VBox, HBox, etc.), or a Control and set the custom "
"minimum size manually."
msgstr ""
-"Um ScrollContainer foi feito para trabalhar com um componente filho único.\n"
-"Use um container como filho (VBox, HBox, etc.) ou um Control e defina o "
+"Um ScrollContainer foi feito para trabalhar com um único componente filho.\n"
+"Use um contêiner como filho (VBox, HBox, etc.) ou um Control e defina o "
"tamanho mínimo manualmente."
#: scene/gui/tree.cpp
@@ -12871,7 +12926,7 @@ msgstr ""
#: scene/main/viewport.cpp
msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
-"O tamanho da viewport deve ser maior do que 0 para renderizar qualquer coisa."
+"O tamanho da Viewport deve ser maior do que 0 para renderizar qualquer coisa."
#: scene/resources/visual_shader_nodes.cpp
msgid "Invalid source for preview."
@@ -12901,6 +12956,19 @@ msgstr "Variáveis só podem ser atribuídas na função de vértice."
msgid "Constants cannot be modified."
msgstr "Constantes não podem serem modificadas."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Sistema de Arquivos e Importar Docks"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Quando exportando ou instalando, o programa resultante tentará conectar "
+#~ "ao IP deste computador para poder ser depurado."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "A cena atual nunca foi salva. Por favor salve antes de rodá-la."
+
#~ msgid "Not in resource path."
#~ msgstr "Não está no caminho de recursos."
diff --git a/editor/translations/ro.po b/editor/translations/ro.po
index cbf6a8f0a0..1549250858 100644
--- a/editor/translations/ro.po
+++ b/editor/translations/ro.po
@@ -3,20 +3,22 @@
# Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Calin Sopterean <csopterean@gmail.com>, 2018.
-# Filip <filipanton@tutanota.com>, 2018.
+# Filip <filipanton@tutanota.com>, 2018, 2020.
# Nitroretro <nitroretro@protonmail.com>, 2018.
# TigerxWood <TigerxWood@gmail.com>, 2018.
# Grigore Antoniuc <grisa181@gmail.com>, 2018.
# Boby Ilea <boby.ilea@gmail.com>, 2019.
-# EVOKZH <avip.ady@gmail.com>, 2019.
+# EVOKZH <avip.ady@gmail.com>, 2019, 2020.
# Marincia Catalin <catalinmarincia@gmail.com>, 2020.
# Marincia Cătălin <catalinmarincia@gmail.com>, 2020.
+# Teodor <teo.virghi@yahoo.ro>, 2020.
+# f0roots <f0rootss@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-23 15:05+0000\n"
-"Last-Translator: Marincia Cătălin <catalinmarincia@gmail.com>\n"
+"PO-Revision-Date: 2020-08-11 14:04+0000\n"
+"Last-Translator: Filip <filipanton@tutanota.com>\n"
"Language-Team: Romanian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ro/>\n"
"Language: ro\n"
@@ -25,7 +27,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
-"X-Generator: Weblate 3.11-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -56,7 +58,7 @@ msgstr "Operanzi invalizi la operatorii %s, %s și %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr "Indice invalid de tip %s pentru tipul de bază %s"
+msgstr "Index invalid de tip %s pentru tipul de bază %s"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
@@ -108,7 +110,7 @@ msgstr "Echilibrat"
#: editor/animation_bezier_editor.cpp
msgid "Mirror"
-msgstr "Reflectează"
+msgstr "Oglinda"
#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
msgid "Time:"
@@ -120,7 +122,7 @@ msgstr "Valoare:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr "Inserează Cheie Aici"
+msgstr "Inserează Cheia Aici"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
@@ -140,7 +142,7 @@ msgstr "Mută Punct Bezier"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "Anim Clonare Chei"
+msgstr "Anim Chei duplicate"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
@@ -160,7 +162,7 @@ msgstr "Anim Schimbare transformare"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
-msgstr "Anim Schimbare valoare cadre cheie"
+msgstr "Anim Schimbare valoare Keyframe"
#: editor/animation_track_editor.cpp
msgid "Anim Change Call"
@@ -267,6 +269,7 @@ msgstr "Mod Intercalare"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
msgstr ""
+"Mod de înfășurare a buclei (Intercalează sfârșitul cu începutul în buclă)"
#: editor/animation_track_editor.cpp
msgid "Remove this track."
@@ -311,20 +314,20 @@ msgstr "Cubic"
#: editor/animation_track_editor.cpp
msgid "Clamp Loop Interp"
-msgstr ""
+msgstr "Limitați intercalarea buclei"
#: editor/animation_track_editor.cpp
msgid "Wrap Loop Interp"
-msgstr ""
+msgstr "Înfășurați intercalarea buclei"
#: editor/animation_track_editor.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr "Inserează Notă"
+msgstr "Inserare cheie"
#: editor/animation_track_editor.cpp
msgid "Duplicate Key(s)"
-msgstr "Clonare Chei(s)"
+msgstr "Clonare Chei"
#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
@@ -405,6 +408,10 @@ msgid ""
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
msgstr ""
+"Track-urile audio pot sa fie folosite numai în noduri de tipul:\n"
+"- AudioStreamPlayer\n"
+"-AudioStreamPlayer2D\n"
+"-AudioStreamPlayer3D"
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
@@ -413,6 +420,8 @@ msgstr "Pistele de animație pot direcționa numai nodurilor AnimațieJucător."
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
msgstr ""
+"Un player de animatie nu se poate anima insusi, doar alti playeri de "
+"animatie."
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
@@ -489,6 +498,15 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
+"Aceasta animație aparține unei scene importante, schimbările de importare "
+"ale Track-urilor nu vor fi salvate.\n"
+"\n"
+"Pentru a activa opțiunea de a adaugă Track-uri, navigați la setările de "
+"import ale scenei și setați\n"
+"\"Animație > Depozitare\" către \"Fișiere\", activați \"Animație > Păstrează "
+"Track-uri personalizate\", după re-importați.\n"
+"Alternativ, folosiți un import presetat care importa animațiile către "
+"fișiere separate."
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
@@ -520,6 +538,7 @@ msgid "Seconds"
msgstr "Secunde"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS(cadre pe secundă)"
@@ -652,11 +671,11 @@ msgstr "Anim Adăugați Pistă Audio"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip Start Offset"
-msgstr ""
+msgstr "Schimbați decalajul de pornire a clipului audio"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip End Offset"
-msgstr ""
+msgstr "Schimbați decalajul de oprire a clipului audio"
#: editor/array_property_edit.cpp
msgid "Resize Array"
@@ -679,9 +698,8 @@ msgid "Line Number:"
msgstr "Linia Numărul:"
#: editor/code_editor.cpp
-#, fuzzy
msgid "%d replaced."
-msgstr "Înlocuiți"
+msgstr "%d Înlocuit"
#: editor/code_editor.cpp editor/editor_help.cpp
msgid "%d match."
@@ -699,7 +717,7 @@ msgstr "Potrivește Caz-ul"
msgid "Whole Words"
msgstr "Cuvinte Complete"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Înlocuiți"
@@ -718,23 +736,23 @@ msgstr "Standard"
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
-msgstr ""
+msgstr "Porniti sau opriti panoul de scripturi"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom In"
-msgstr "Zoom-ați În"
+msgstr "Apropiere"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Out"
-msgstr "Zoom-ați Afară"
+msgstr "Departare"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr "Resetați Zoom-area"
+msgstr "Resetați zoom-ul"
#: editor/code_editor.cpp
msgid "Warnings"
@@ -749,9 +767,8 @@ msgid "Method in target node must be specified."
msgstr "Metoda din nodul țintă trebuie specificată."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "Metoda din nodul țintă trebuie specificată."
+msgstr "Numele metodei trebuie să fie un identificator valid."
#: editor/connections_dialog.cpp
msgid ""
@@ -818,6 +835,7 @@ msgstr "Amânat(ă)"
msgid ""
"Defers the signal, storing it in a queue and only firing it at idle time."
msgstr ""
+"Amână semnalul stocând-ul într-o coadă, dându-i drumul numai la timp inactiv."
#: editor/connections_dialog.cpp
msgid "Oneshot"
@@ -891,6 +909,11 @@ msgid "Signals"
msgstr "Semnale"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtrare Tiles"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Ești sigur că vrei să ștergi toate conexiunile de la acest semnal?"
@@ -928,7 +951,7 @@ msgid "Recent:"
msgstr "Recent:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Cautați:"
@@ -1109,6 +1132,9 @@ msgstr "Fondatorii Proiectului"
msgid "Lead Developer"
msgstr "Dezvoltator Principal"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Manager de Proiect "
@@ -1130,6 +1156,16 @@ msgid "Gold Sponsors"
msgstr "Sponsori Aur"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Donatori de Argint"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Donatori de Bronz"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini Sponsori"
@@ -1289,7 +1325,7 @@ msgstr "Opțiuni Pistă Audio"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
-msgstr "Duplicați"
+msgstr "Duplicat"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
@@ -1419,7 +1455,7 @@ msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Keyword cannot be used as an autoload name."
-msgstr ""
+msgstr "Cuvântul cheie nu poate fi utilizat ca nume de încărcare automată."
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
@@ -1451,7 +1487,7 @@ msgstr "Rearanjați Autoload-urile"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr ""
+msgstr "Nu pot adaugă încărcare automata:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1514,7 +1550,7 @@ msgstr "Alegeţi un Director"
#: editor/filesystem_dock.cpp editor/project_manager.cpp
#: scene/gui/file_dialog.cpp
msgid "Create Folder"
-msgstr "Creați Director"
+msgstr "Creare folder"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
@@ -1538,7 +1574,7 @@ msgstr "Fişierul se Stochează:"
#: editor/editor_export.cpp
msgid "No export template found at the expected path:"
-msgstr ""
+msgstr "Nu a fost găsit niciun șablon de export pe calea așteptată:"
#: editor/editor_export.cpp
msgid "Packing"
@@ -1549,12 +1585,16 @@ msgid ""
"Target platform requires 'ETC' texture compression for GLES2. Enable 'Import "
"Etc' in Project Settings."
msgstr ""
+"Platforma țintă necesită textură compresată „ETC” pentru GLES2. Activați "
+"„Import Etc” în Setările proiectului."
#: editor/editor_export.cpp
msgid ""
"Target platform requires 'ETC2' texture compression for GLES3. Enable "
"'Import Etc 2' in Project Settings."
msgstr ""
+"Platforma țintă necesită textură compresata „ETC2” pentru GLES3. Activați "
+"„Import Etc 2” în Setările proiectului."
#: editor/editor_export.cpp
msgid ""
@@ -1563,6 +1603,10 @@ msgid ""
"Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback "
"Enabled'."
msgstr ""
+"Platforma țintă necesită o textură compresată „ETC” pentru revenirea "
+"driverului la GLES2.\n"
+"Activați „Import Etc” în Setările de proiect sau dezactivați „Driver "
+"Fallback Enabled”."
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
@@ -1574,7 +1618,7 @@ msgstr "Fișierul șablon de depanare personalizat nu a fost găsit."
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
-msgstr ""
+msgstr "Șablonul personalizat de lansare nu a fost găsit."
#: editor/editor_export.cpp platform/javascript/export/export.cpp
msgid "Template file not found:"
@@ -1583,6 +1627,7 @@ msgstr "Fișierul șablon nu a fost găsit:"
#: editor/editor_export.cpp
msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
msgstr ""
+"La exporturile pe 32 de biți PCK-ul încorporat nu poate fi mai mare de 4 GiB."
#: editor/editor_feature_profile.cpp
msgid "3D Editor"
@@ -1590,7 +1635,7 @@ msgstr "Editor 3D"
#: editor/editor_feature_profile.cpp
msgid "Script Editor"
-msgstr "Editorul de Scripturi"
+msgstr "Editor de scripturi"
#: editor/editor_feature_profile.cpp
msgid "Asset Library"
@@ -1601,16 +1646,17 @@ msgid "Scene Tree Editing"
msgstr "Editează Arborele Scenei"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Importă Bară"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Nod Bară"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Sistemul De Fișiere și încărcare Bare"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Sistemul De Fișiere"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Importă Bară"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1619,6 +1665,7 @@ msgstr "Ștergeți profilul '%s'?(ireversibil)"
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
msgstr ""
+"Profilul trebuie sa fie un nume valid de fisier si nu trebuie sa contina '.'"
#: editor/editor_feature_profile.cpp
msgid "Profile with this name already exists."
@@ -1626,7 +1673,7 @@ msgstr "Un profil cu acest nume există deja."
#: editor/editor_feature_profile.cpp
msgid "(Editor Disabled, Properties Disabled)"
-msgstr ""
+msgstr "(Editorul Dezactivat, Proprietatile Dezactivate)"
#: editor/editor_feature_profile.cpp
msgid "(Properties Disabled)"
@@ -1650,7 +1697,7 @@ msgstr "Proprietăți Activate:"
#: editor/editor_feature_profile.cpp
msgid "Enabled Features:"
-msgstr ""
+msgstr "Caracteristici active:"
#: editor/editor_feature_profile.cpp
msgid "Enabled Classes:"
@@ -1658,13 +1705,15 @@ msgstr "Clase Activate:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
-msgstr ""
+msgstr "Formatul fișierului '%s' este invalid, importarea este anulată."
#: editor/editor_feature_profile.cpp
msgid ""
"Profile '%s' already exists. Remove it first before importing, import "
"aborted."
msgstr ""
+"Profilul '%s' este deja existent. Elimină-l inainte de a-l importa, "
+"importara este anulata."
#: editor/editor_feature_profile.cpp
msgid "Error saving profile to path: '%s'."
@@ -1672,7 +1721,7 @@ msgstr "Eroare la salvarea profilului la calea: '%s'."
#: editor/editor_feature_profile.cpp
msgid "Unset"
-msgstr ""
+msgstr "Nesetat(ă)"
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
@@ -1686,12 +1735,12 @@ msgstr "Faceți Curent"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/version_control_editor_plugin.cpp
msgid "New"
-msgstr ""
+msgstr "Nou"
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/project_manager.cpp
msgid "Import"
-msgstr "Importă"
+msgstr "Importare"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
@@ -1743,7 +1792,7 @@ msgstr "Selectaţi directorul curent"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Copy Path"
-msgstr "Copiaţi Calea"
+msgstr "Copiere cale"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
msgid "Open in File Manager"
@@ -1761,7 +1810,7 @@ msgstr "Director Nou..."
#: editor/editor_file_dialog.cpp editor/find_in_files.cpp
#: editor/plugins/version_control_editor_plugin.cpp
msgid "Refresh"
-msgstr "Reîmprospătați"
+msgstr "Reîmprospătare"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1820,19 +1869,19 @@ msgstr "Comutați Favorite"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr "Modul de Comutare"
+msgstr "Comutare mod"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr "Calea Focală"
+msgstr "Cale focalizare"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr "Deplasați Favorit Sus"
+msgstr "Mutare favorită în sus"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr "Deplasați Favorit Jos"
+msgstr "Mutare favorită în jos"
#: editor/editor_file_dialog.cpp
msgid "Go to previous folder."
@@ -1872,7 +1921,7 @@ msgstr "Directoare și Fişiere:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Previzualizați:"
@@ -1893,6 +1942,8 @@ msgid ""
"There are multiple importers for different types pointing to file %s, import "
"aborted"
msgstr ""
+"Există importatori multiplii pentru tipuri diferite care trimit spre "
+"fișierul %s, importarea este anulată"
#: editor/editor_file_system.cpp
msgid "(Re)Importing Assets"
@@ -1929,7 +1980,7 @@ msgstr "Proprietăți"
#: editor/editor_help.cpp
msgid "override:"
-msgstr ""
+msgstr "extindere:"
#: editor/editor_help.cpp
msgid "default:"
@@ -1953,7 +2004,7 @@ msgstr "Constante"
#: editor/editor_help.cpp
msgid "Property Descriptions"
-msgstr "Descriere Proprietate"
+msgstr "Descrieri Proprietate"
#: editor/editor_help.cpp
msgid "(value)"
@@ -2051,15 +2102,15 @@ msgstr "Proprietate Temă"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
-msgstr ""
+msgstr "Proprietate:"
#: editor/editor_inspector.cpp
msgid "Set"
-msgstr ""
+msgstr "Stabilește"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
-msgstr ""
+msgstr "Seteaza Multiple:"
#: editor/editor_log.cpp
msgid "Output:"
@@ -2095,7 +2146,7 @@ msgstr "Start"
#: editor/editor_network_profiler.cpp
msgid "%s/s"
-msgstr ""
+msgstr "%s/s"
#: editor/editor_network_profiler.cpp
msgid "Down"
@@ -2103,7 +2154,7 @@ msgstr "Descarcă"
#: editor/editor_network_profiler.cpp
msgid "Up"
-msgstr ""
+msgstr "Sus"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
msgid "Node"
@@ -2111,32 +2162,32 @@ msgstr "Nod"
#: editor/editor_network_profiler.cpp
msgid "Incoming RPC"
-msgstr ""
+msgstr "Intrare RPC"
#: editor/editor_network_profiler.cpp
msgid "Incoming RSET"
-msgstr ""
+msgstr "Intrare RSET"
#: editor/editor_network_profiler.cpp
msgid "Outgoing RPC"
-msgstr ""
+msgstr "Ieșire RPC"
#: editor/editor_network_profiler.cpp
msgid "Outgoing RSET"
-msgstr ""
+msgstr "Ieșire RSET"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "New Window"
-msgstr ""
+msgstr "Fereastră Nouă"
#: editor/editor_node.cpp
msgid "Imported resources can't be saved."
-msgstr ""
+msgstr "Resursele importate nu pot fi salvate."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: scene/gui/dialogs.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
@@ -2147,6 +2198,8 @@ msgid ""
"This resource can't be saved because it does not belong to the edited scene. "
"Make it unique first."
msgstr ""
+"Resursa aceasta nu poate fi salvată deoarece nu aparține scenei editate. "
+"Resursa trebuie să fie unică."
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As..."
@@ -2166,7 +2219,7 @@ msgstr "Eroare la salvare."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Can't open '%s'. The file could have been moved or deleted."
-msgstr ""
+msgstr "'%s' nu poate fi deschis. Fișierul ar putea fi modificat sau șters."
#: editor/editor_node.cpp
msgid "Error while parsing '%s'."
@@ -2205,6 +2258,8 @@ msgid ""
"This scene can't be saved because there is a cyclic instancing inclusion.\n"
"Please resolve it and then attempt to save again."
msgstr ""
+"Această scenă nu poate fi salvată, deoarece există o includere ciclică.\n"
+"Rezolvați-l și apoi încercați să salvați din nou."
#: editor/editor_node.cpp
msgid ""
@@ -2216,11 +2271,11 @@ msgstr ""
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "Can't overwrite scene that is still open!"
-msgstr ""
+msgstr "Nu pot salva peste scena care este înca deschisă!"
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
-msgstr "Imposibil de încărcat MeshLibrary pentru unire!"
+msgstr "Nu pot încarca MeshLibrary pentru combinare!"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
@@ -2262,7 +2317,6 @@ msgstr ""
"înţelege mai bine cum sa lucrați cu acestea."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"This resource belongs to a scene that was instanced or inherited.\n"
"Changes to it won't be kept when saving the current scene."
@@ -2279,41 +2333,34 @@ msgstr ""
"setările din panoul de import şi apoi reimportați."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"This scene was imported, so changes to it won't be kept.\n"
"Instancing it or inheriting will allow making changes to it.\n"
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"Această scenă a fost importată, astfel încât modificările la acesta nu vor "
-"fi păstrate.\n"
-"Instanțarea sau moştenirea vă permite efectuarea de modificări la acesta.\n"
-"Vă rugăm să citiţi documentaţia relevantă pentru importul scene pentru a "
-"înţelege mai bine acest mod de lucru."
+"Această scenă a fost importată, astfel încât modificările acesteia nu vor fi "
+"păstrate.\n"
+"Instanțarea sau moştenirea vă permite efectuarea de modificări pentru ea.\n"
+"Vă rugăm să citiți documentația relevantă pentru importarea scenei pentru a "
+"înțelege mai bine acest mod de lucru."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"This is a remote object, so changes to it won't be kept.\n"
"Please read the documentation relevant to debugging to better understand "
"this workflow."
msgstr ""
-"Acesta este un obiect îndepărtat, astfel încât modificările la acesta nu vor "
+"Acesta este un obiect îndepărtat, astfel încât modificările acesteia nu vor "
"fi păstrate.\n"
-"Vă rugăm să citiţi documentaţia relevantă pentru depanare pentru a înţelege "
-"mai bine acest mod de lucru."
+"Vă rugăm să citiți documentația relevantă depanării pentru a înțelege mai "
+"bine acest mod de lucru."
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
msgstr "Nu există nici o scenă definită pentru a execuție."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"Scena curentă nu a fost salvată niciodată, salvați-o înainte de rulare."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Nu s-a putut porni subprocesul!"
@@ -2326,9 +2373,8 @@ msgid "Open Base Scene"
msgstr "Deschide o scenă de bază"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Quick Open..."
-msgstr "Deschide o scenă rapid..."
+msgstr "Deschidere rapidă..."
#: editor/editor_node.cpp
msgid "Quick Open Scene..."
@@ -2347,13 +2393,12 @@ msgid "Save changes to '%s' before closing?"
msgstr "Salvează schimbările la ’%s’ înainte de ieșire?"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Saved %s modified resource(s)."
-msgstr "Încărcarea resursei a eșuat."
+msgstr "Resurse modificate %s salvate."
#: editor/editor_node.cpp
msgid "A root node is required to save the scene."
-msgstr ""
+msgstr "Un nod rădăcină este necesar pentru a salva scena."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2381,11 +2426,11 @@ msgstr "Exportă Librăria de Mesh-uri"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
-msgstr "Această operațiune nu poate fi făcută fără un nod de bază."
+msgstr "Această operațiune nu poate fi făcută fără un nod rădăcină."
#: editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr "Exportă Setul de Plăci"
+msgstr "Exportă Tile Setul"
#: editor/editor_node.cpp
msgid "This operation can't be done without a selected node."
@@ -2397,26 +2442,27 @@ msgstr "Scena curentă nu este salvată. Deschizi oricum?"
#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
-msgstr "Nu se poate reîncărca o scenă care nu a fost salvată niciodată."
+msgstr "Nu pot reîncărca o scenă care nu a fost salvată niciodată."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "Salvează Scena"
+msgstr "Reîncarcă scenă salvată"
#: editor/editor_node.cpp
msgid ""
"The current scene has unsaved changes.\n"
"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
+"Scena actuală are modificări nesalvate.\n"
+"Reîncărcați scena salvată? Această acțiune nu poate fi anulată."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
-msgstr "Execută Rapid Scena..."
+msgstr "Rulează Rapid Scena..."
#: editor/editor_node.cpp
msgid "Quit"
-msgstr "Închidere"
+msgstr "Închide"
#: editor/editor_node.cpp
msgid "Exit the editor?"
@@ -2424,7 +2470,7 @@ msgstr "Ieși din editor?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
-msgstr "Deschizi Managerul de Proiect?"
+msgstr "Deschide Managerul de Proiect?"
#: editor/editor_node.cpp
msgid "Save & Quit"
@@ -2458,9 +2504,8 @@ msgid "Close Scene"
msgstr "Închide Scena"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reopen Closed Scene"
-msgstr "Închide Scena"
+msgstr "Redeschidere scenă închisă"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
@@ -2477,13 +2522,12 @@ msgid "Unable to load addon script from path: '%s'."
msgstr "Nu a putut fi încărcat scriptul add-on din calea: '%s'."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"Unable to load addon script from path: '%s' There seems to be an error in "
"the code, please check the syntax."
msgstr ""
-"Nu a putut fi încărcat scriptul add-on din calea: '%s' Scriptul nu este în "
-"modul unealtă."
+"Imposibil de încărcat scriptul addon din cale: '%s' Se pare că există o "
+"eroare în cod, verificați sintaxa."
#: editor/editor_node.cpp
msgid ""
@@ -2565,37 +2609,34 @@ msgstr "Implicit"
#: editor/editor_node.cpp editor/editor_properties.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Show in FileSystem"
-msgstr "Sistemul De Fișiere"
+msgstr "Afișare în FileSystem"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Play This Scene"
-msgstr "Rulează Scena"
+msgstr "Redare scenă"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Close Tab"
-msgstr "Aproape"
+msgstr "Închidere filă"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Undo Close Tab"
-msgstr "Aproape"
+msgstr "Anulare fila Închidere"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
msgid "Close Other Tabs"
-msgstr ""
+msgstr "Închideți Alte File"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Close Tabs to the Right"
-msgstr ""
+msgstr "Închidere file la dreapta"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Close All Tabs"
-msgstr "Aproape"
+msgstr "Inchide toate filele"
#: editor/editor_node.cpp
msgid "Switch Scene Tab"
@@ -2638,9 +2679,8 @@ msgid "Go to previously opened scene."
msgstr "Mergi la o scenă deschisă anterior."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Copy Text"
-msgstr "Copiaţi Calea"
+msgstr "Copiază textul"
#: editor/editor_node.cpp
msgid "Next tab"
@@ -2679,9 +2719,8 @@ msgid "Save Scene"
msgstr "Salvează Scena"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Save All Scenes"
-msgstr "Salvează toate Scenele"
+msgstr "Salvați toate scenele"
#: editor/editor_node.cpp
msgid "Convert To..."
@@ -2715,45 +2754,43 @@ msgid "Project"
msgstr "Proiect"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Project Settings..."
-msgstr "Setări ale Proiectului"
+msgstr "Setări proiect..."
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
-#, fuzzy
msgid "Version Control"
-msgstr "Versiune:"
+msgstr "Control versiune"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
+#, fuzzy
msgid "Set Up Version Control"
-msgstr ""
+msgstr "Configurați controlul versiunii"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Shut Down Version Control"
-msgstr ""
+msgstr "Închidere control versiune"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Export..."
-msgstr "Exportare"
+msgstr "Export..."
#: editor/editor_node.cpp
+#, fuzzy
msgid "Install Android Build Template..."
-msgstr ""
+msgstr "Instalare șablon compilare Android..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Project Data Folder"
-msgstr "Deschizi Managerul de Proiect?"
+msgstr "Deschideți folderul datelor proiectului"
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
msgstr "Unelte"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Orphan Resource Explorer..."
-msgstr "Explorator de Resurse Orfane"
+msgstr "Explorator de resurse orfane ..."
#: editor/editor_node.cpp
msgid "Quit to Project List"
@@ -2770,24 +2807,28 @@ msgstr "Lansează cu Depanare la Distanță"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Când exporți sau lansezi, executabilul rezultat va încerca să se conecteze "
-"la IP-ul acestui computer pentru a putea fi depanat."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Mini Lansare cu Rețea FS"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Când această opțiune este activată, exportarea sau lansarea va produce un "
"executabil minimal.\n"
@@ -2800,9 +2841,10 @@ msgid "Visible Collision Shapes"
msgstr "Forme de Coliziune Vizibile"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Formele de coliziune si nodurile raycast (pentru 2D și 3D) vor fi vizibile "
"când jocul rulează dacă această opțiune este activată."
@@ -2812,23 +2854,26 @@ msgid "Visible Navigation"
msgstr "Navigare Vizibilă"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Structurile de navigare și poligoanele vor fi vizibile când jocul rulează "
"dacă această opțiune este activată."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Sincronizează Modificările Scenei"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Când această opțiune este activată, orice modificare facută în scenă din "
"editor va fi replicată în jocul care rulează.\n"
@@ -2836,15 +2881,17 @@ msgstr ""
"mult mai eficient dacă este folosit un sistem de fișiere în rețea."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Sincronizează Modificările Scriptului"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Când această opțiune este activată, orice script salvat ulterior va fi "
"reîncărcat în jocul care rulează.\n"
@@ -2856,56 +2903,48 @@ msgid "Editor"
msgstr "Editor"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Editor Settings..."
-msgstr "Setări ale Editorului"
+msgstr "Setări Editor..."
#: editor/editor_node.cpp
msgid "Editor Layout"
-msgstr "Schema Editorului"
+msgstr "Schema Editor"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Take Screenshot"
-msgstr "Salvează Scena"
+msgstr "Captură de ecran"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Screenshots are stored in the Editor Data/Settings Folder."
-msgstr "Setări ale Editorului"
+msgstr "Capturile de ecran sunt stocate în folderul Date/Setări editor."
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr "Comută în Ecran Complet"
+msgstr "Comutare ecran complet"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Toggle System Console"
-msgstr "Modul de Comutare"
+msgstr "Cumutează Consola de Sistem"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Editor Data/Settings Folder"
-msgstr "Setări ale Editorului"
+msgstr "Deschide Dosarul De Date/Setări"
#: editor/editor_node.cpp
msgid "Open Editor Data Folder"
-msgstr ""
+msgstr "Deschidere dosarul de date editor"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Editor Settings Folder"
-msgstr "Setări ale Editorului"
+msgstr "Deschide Dosarul de Setări Editor"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Editor Features..."
-msgstr "Administrează Șabloanele de Export"
+msgstr "Gestionare caracteristici editor..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Export Templates..."
-msgstr "Administrează Șabloanele de Export"
+msgstr "Gestionare șabloane export..."
#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
msgid "Help"
@@ -2916,7 +2955,7 @@ msgstr "Ajutor"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Căutare"
@@ -2930,13 +2969,12 @@ msgid "Q&A"
msgstr "Întrebări și Răspunsuri"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Report a Bug"
-msgstr "Reimportă"
+msgstr "Raportează o Eroare"
#: editor/editor_node.cpp
msgid "Send Docs Feedback"
-msgstr ""
+msgstr "Trimite Feedbackul Docs"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
@@ -2955,12 +2993,13 @@ msgid "Play"
msgstr "Rulează"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Pause the scene execution for debugging."
-msgstr ""
+msgstr "Întrerupeți executarea scenei pentru depanare."
#: editor/editor_node.cpp
msgid "Pause Scene"
-msgstr "Întrerupere Scenă"
+msgstr "Pauză scenă"
#: editor/editor_node.cpp
msgid "Stop the scene."
@@ -2992,22 +3031,18 @@ msgid "Save & Restart"
msgstr "Salvează și Restartează"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Spins when the editor window redraws."
-msgstr "Se rotește când ferestra editorului se recolorează!"
+msgstr "Se rotește când fereastra editorului se redeschide."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update Continuously"
-msgstr "Continuu"
+msgstr "Actualizare continuă"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update When Changed"
-msgstr "Modificări ale Actualizării"
+msgstr "Actualizează Doar La Modificare"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Hide Update Spinner"
msgstr "Dezactivează Cercul de Actualizare"
@@ -3020,9 +3055,8 @@ msgid "Inspector"
msgstr "Inspector"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand Bottom Panel"
-msgstr "Extinde toate"
+msgstr "Extinde Panoul De Jos"
#: editor/editor_node.cpp
msgid "Output"
@@ -3035,11 +3069,11 @@ msgstr "Nu Salva"
#: editor/editor_node.cpp
msgid "Android build template is missing, please install relevant templates."
msgstr ""
+"Android construi șablon lipsește, vă rugăm să instalați șabloane relevante."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Templates"
-msgstr "Administrează Șabloanele de Export"
+msgstr "Gestionați șabloanele"
#: editor/editor_node.cpp
msgid ""
@@ -3065,9 +3099,8 @@ msgid "Import Templates From ZIP File"
msgstr "Importă Șabloane Dintr-o Arhivă ZIP"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Template Package"
-msgstr "Exportă Managerul de Șabloane"
+msgstr "Pachetul cu șabloane"
#: editor/editor_node.cpp
msgid "Export Library"
@@ -3122,9 +3155,8 @@ msgid "Warning!"
msgstr ""
#: editor/editor_path.cpp
-#, fuzzy
msgid "No sub-resources found."
-msgstr "Nicio sursă de suprafață specificată."
+msgstr "Nu s-a găsit nici o sub-resursă."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3135,14 +3167,12 @@ msgid "Thumbnail..."
msgstr "Miniatură..."
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Main Script:"
-msgstr "Execută Scriptul"
+msgstr "Script principal:"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Edit Plugin"
-msgstr "Editează Poligon"
+msgstr "Editare Plugin"
#: editor/editor_plugin_settings.cpp
msgid "Installed Plugins:"
@@ -3166,9 +3196,8 @@ msgid "Status:"
msgstr "Stare:"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Edit:"
-msgstr "Modificare"
+msgstr "Editare:"
#: editor/editor_profiler.cpp
msgid "Measure:"
@@ -3211,9 +3240,8 @@ msgid "Calls"
msgstr "Apeluri"
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Edit Text:"
-msgstr "Membri"
+msgstr "Editare text:"
#: editor/editor_properties.cpp editor/script_create_dialog.cpp
msgid "On"
@@ -3236,9 +3264,8 @@ msgid "Assign..."
msgstr ""
#: editor/editor_properties.cpp
-#, fuzzy
msgid "Invalid RID"
-msgstr "Nume nevalid."
+msgstr "RID nevalid"
#: editor/editor_properties.cpp
msgid ""
@@ -3269,9 +3296,8 @@ msgid "New Script"
msgstr ""
#: editor/editor_properties.cpp editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Extend Script"
-msgstr "Execută Scriptul"
+msgstr "Extinde Script"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "New %s"
@@ -3317,23 +3343,23 @@ msgid "Remove Item"
msgstr ""
#: editor/editor_properties_array_dict.cpp
-#, fuzzy
msgid "New Key:"
-msgstr "Nume nou:"
+msgstr "Cheie Nouă:"
#: editor/editor_properties_array_dict.cpp
-#, fuzzy
msgid "New Value:"
-msgstr "Nume nou:"
+msgstr "Valoare Nouă:"
#: editor/editor_properties_array_dict.cpp
msgid "Add Key/Value Pair"
msgstr ""
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Nu a fost găsită nicio presetare de export care să poată rula pentru această "
"platformă.\n"
@@ -3384,7 +3410,6 @@ msgid "Import From Node:"
msgstr "Importă Din Nod:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Redownload"
msgstr "Descarcă din nou"
@@ -3426,9 +3451,8 @@ msgid "Can't open export templates zip."
msgstr "Nu se pot deschide șabloanele de export zip."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside templates: %s."
-msgstr "Format nevalid versiune.txt în șabloane."
+msgstr "Formatul versiune.txt nevalid din interiorul șabloanelor: % s."
#: editor/export_template_manager.cpp
msgid "No version.txt found inside templates."
@@ -3495,9 +3519,8 @@ msgid "Download Complete."
msgstr "Descărcare Completă."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Cannot remove temporary file:"
-msgstr "Nu se poate șterge:"
+msgstr "Nu pot sterge fișierul temporar:"
#: editor/export_template_manager.cpp
msgid ""
@@ -3506,9 +3529,8 @@ msgid ""
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error requesting URL:"
-msgstr "Eroare la solicitarea URL: "
+msgstr "Eroare la solicitarea URL:"
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror..."
@@ -3557,9 +3579,8 @@ msgid "SSL Handshake Error"
msgstr "Eroare SSL Handshake"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uncompressing Android Build Sources"
-msgstr "Decomprimare Asset-uri"
+msgstr "Decomprimare Surse de compilare Android"
#: editor/export_template_manager.cpp
msgid "Current Version:"
@@ -3580,12 +3601,11 @@ msgstr "Elimină Șablon"
#: editor/export_template_manager.cpp
#, fuzzy
msgid "Select Template File"
-msgstr "Selectează fișierul șablon"
+msgstr "Selectare fișier șablon"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Godot Export Templates"
-msgstr "Administrează Șabloanele de Export"
+msgstr "Șabloane de export Godot"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
@@ -3596,14 +3616,12 @@ msgid "Download Templates"
msgstr "Descarcă Șabloane"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select mirror from list: (Shift+Click: Open in Browser)"
-msgstr "Selectează oglinda din listă: "
+msgstr "Selectează oglinda din listă: (Shift+Click: Deschide in Browser)"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Favorites"
-msgstr "Favorite:"
+msgstr "Favorite"
#: editor/filesystem_dock.cpp
msgid "Status: Import of file failed. Please fix file and reimport manually."
@@ -3636,9 +3654,8 @@ msgid "No name provided."
msgstr "Niciun nume furnizat."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Provided name contains invalid characters."
-msgstr "Numele furnizat conține caractere nevalide"
+msgstr "Numele furnizat conține caractere nevalide."
#: editor/filesystem_dock.cpp
msgid "A file or folder with this name already exists."
@@ -3665,33 +3682,28 @@ msgid "Duplicating folder:"
msgstr "Duplicând directorul:"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Inherited Scene"
-msgstr "Scenă Derivată Nouă..."
+msgstr "Nouă scenă moștenită"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Set As Main Scene"
-msgstr "Alege o Scenă Principală"
+msgstr "Setează ca scenă principală"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Open Scenes"
-msgstr "Deschide o scenă"
+msgstr "Deschide Scene"
#: editor/filesystem_dock.cpp
msgid "Instance"
msgstr "Instanță"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Add to Favorites"
-msgstr "Favorite:"
+msgstr "Adauga la Favorite"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Remove from Favorites"
-msgstr "Elimină din Grup"
+msgstr "Eliminare din Preferințe"
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies..."
@@ -3714,31 +3726,26 @@ msgid "Move To..."
msgstr "Mută În..."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Scene..."
-msgstr "Scenă Nouă"
+msgstr "Scenă nouă..."
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "New Script..."
-msgstr "Deschide un script rapid..."
+msgstr "Script nou ..."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "New Resource..."
-msgstr "Salvați Resursa Ca..."
+msgstr "Resursă nouă ..."
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Expand All"
-msgstr "Extinde toate"
+msgstr "Extinde Toate"
#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Collapse All"
-msgstr "Restrânge toate"
+msgstr "Reduceți Toate"
#: editor/filesystem_dock.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -3748,28 +3755,24 @@ msgid "Rename"
msgstr "Redenumește"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Previous Folder/File"
-msgstr "Fila anterioară"
+msgstr "Folder/Fișier Anterior"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Next Folder/File"
-msgstr "Creați Director"
+msgstr "Folder/Fișier Următor"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
msgstr "Rescanează Sistemul de Fișiere"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Toggle Split Mode"
-msgstr "Modul de Comutare"
+msgstr "Comută Modul Split"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Search files"
-msgstr "Căutare Clase"
+msgstr "Căută fișiere"
#: editor/filesystem_dock.cpp
msgid ""
@@ -3784,42 +3787,36 @@ msgid "Move"
msgstr "Mută"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "There is already file or folder with the same name in this location."
-msgstr "Un fișier sau un director cu acest nume există deja."
+msgstr "Există deja un fișier sau un dosar cu același nume în această locație."
#: editor/filesystem_dock.cpp
msgid "Overwrite"
msgstr ""
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Create Scene"
-msgstr "Salvează Scena"
+msgstr "Crează scenă"
#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
msgstr ""
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Find in Files"
-msgstr "%d mai multe fișiere"
+msgstr "Caută în fișiere"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Find:"
-msgstr "Găsiți"
+msgstr "Găsiți:"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Folder:"
-msgstr "Creați Director"
+msgstr "Folderul:"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Filters:"
-msgstr "Filtre..."
+msgstr "Filtre:"
#: editor/find_in_files.cpp
msgid ""
@@ -3841,29 +3838,24 @@ msgid "Cancel"
msgstr ""
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Find: "
-msgstr "Găsiți"
+msgstr "Găsiți: "
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace: "
-msgstr "Înlocuiți"
+msgstr "Înlocuiți: "
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace all (no undo)"
-msgstr "Înlocuiți Tot"
+msgstr "Înlocuiește tot (fără anulare)"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Searching..."
-msgstr "Se Salvează..."
+msgstr "Caut..."
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Search complete"
-msgstr "Căutați Text"
+msgstr "Căutare completă"
#: editor/groups_editor.cpp
msgid "Add to Group"
@@ -3874,33 +3866,28 @@ msgid "Remove from Group"
msgstr "Elimină din Grup"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Group name already exists."
-msgstr "EROARE: Numele animației există deja!"
+msgstr "Numele grupului există deja."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Invalid group name."
-msgstr "Nume nevalid."
+msgstr "Nume de grup nevalid."
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Rename Group"
-msgstr "Grupuri"
+msgstr "Renumește Grupul"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Delete Group"
-msgstr "Șterge Schema"
+msgstr "Șterge Grupul"
#: editor/groups_editor.cpp editor/node_dock.cpp
msgid "Groups"
msgstr "Grupuri"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Nodes Not in Group"
-msgstr "Adaugă în Grup"
+msgstr "Nodurile Nu Sunt în Grup"
#: editor/groups_editor.cpp editor/scene_tree_dock.cpp
#: editor/scene_tree_editor.cpp
@@ -3908,23 +3895,20 @@ msgid "Filter nodes"
msgstr ""
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Nodes in Group"
-msgstr "Adaugă în Grup"
+msgstr "Noduri în Grup"
#: editor/groups_editor.cpp
msgid "Empty groups will be automatically removed."
msgstr ""
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Group Editor"
-msgstr "Deschide Editorul de Scripturi"
+msgstr "Editor Grup"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Manage Groups"
-msgstr "Grupuri"
+msgstr "Gestionați grupuri"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Single Scene"
@@ -4008,9 +3992,8 @@ msgid "Saving..."
msgstr "Se Salvează..."
#: editor/import_dock.cpp
-#, fuzzy
msgid "%d Files"
-msgstr " Fișiere"
+msgstr "%d Fișiere"
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
@@ -4025,9 +4008,8 @@ msgid "Import As:"
msgstr "Importă Ca:"
#: editor/import_dock.cpp
-#, fuzzy
msgid "Preset"
-msgstr "Presetare..."
+msgstr "Presetare"
#: editor/import_dock.cpp
msgid "Reimport"
@@ -4038,9 +4020,8 @@ msgid "Save Scenes, Re-Import, and Restart"
msgstr ""
#: editor/import_dock.cpp
-#, fuzzy
msgid "Changing the type of an imported file requires editor restart."
-msgstr "Schimbarea driver-ului video necesită restartarea editorului."
+msgstr "Modificarea tipului de fișier importat necesită repornirea editorului."
#: editor/import_dock.cpp
msgid ""
@@ -4052,14 +4033,12 @@ msgid "Failed to load resource."
msgstr "Încărcarea resursei a eșuat."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Expand All Properties"
-msgstr "Extinde toate proprietăţile"
+msgstr "Extindeți toate proprietățile"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Collapse All Properties"
-msgstr "Restrânge toate proprietăţile"
+msgstr "Reduceți toate proprietățile"
#: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -4071,9 +4050,8 @@ msgid "Copy Params"
msgstr "Copie Parametrii"
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Edit Resource Clipboard"
-msgstr "Clip-board de resurse gol !"
+msgstr "Editare clipboard resursă"
#: editor/inspector_dock.cpp
msgid "Copy Resource"
@@ -4120,9 +4098,8 @@ msgid "Object properties."
msgstr "Proprietățile obiectului."
#: editor/inspector_dock.cpp
-#, fuzzy
msgid "Filter properties"
-msgstr "Proprietățile obiectului."
+msgstr "Proprietăți filtrare"
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4133,24 +4110,20 @@ msgid "MultiNode Set"
msgstr "Set MultiNod"
#: editor/node_dock.cpp
-#, fuzzy
msgid "Select a single node to edit its signals and groups."
-msgstr "Selectează un Nod pentru a edita Semnalele și Grupurile."
+msgstr "Selectați un singur nod pentru a-i edita semnalele și grupurile."
#: editor/plugin_config_dialog.cpp
-#, fuzzy
msgid "Edit a Plugin"
-msgstr "Editează Poligon"
+msgstr "Editează un Plugin"
#: editor/plugin_config_dialog.cpp
-#, fuzzy
msgid "Create a Plugin"
-msgstr "Crează Poligon"
+msgstr "Crează un plugin"
#: editor/plugin_config_dialog.cpp
-#, fuzzy
msgid "Plugin Name:"
-msgstr "Plugin-uri"
+msgstr "Nume plugin:"
#: editor/plugin_config_dialog.cpp
msgid "Subfolder:"
@@ -4170,37 +4143,31 @@ msgstr ""
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon"
-msgstr "Crează Poligon"
+msgstr "Crează poligon"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Create points."
-msgstr "Șterge puncte"
+msgstr "Creați puncte."
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid ""
"Edit points.\n"
"LMB: Move Point\n"
"RMB: Erase Point"
msgstr ""
-"Editează poligon existent:\n"
-"LMB: Mută Punct.\n"
-"Ctrl+LMB: Despică Segment.\n"
-"RMB: Șterge Punct."
+"Editează puncte\n"
+"LMB: Mută Punct\n"
+"RMB: Șterge Punct"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
msgid "Erase points."
-msgstr "RMB: Șterge Punctul."
+msgstr "Șterge puncte."
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Edit Polygon"
msgstr "Editează Poligon"
@@ -4209,14 +4176,12 @@ msgid "Insert Point"
msgstr "Inserează Punct"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Edit Polygon (Remove Point)"
-msgstr "Editează Poligon (Elimină Punct)"
+msgstr "Editează Poligon (Șterge puncte)"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Remove Polygon And Point"
-msgstr "Elimină Poligon Și Punct"
+msgstr "Șterge Poligon Și Punct"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4230,25 +4195,21 @@ msgstr "Adaugă Animația"
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Load..."
-msgstr "Încărcați"
+msgstr "Încărca..."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Move Node Point"
-msgstr "Deplasare punct"
+msgstr "Mută punct nod"
#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
msgid "Change BlendSpace1D Limits"
-msgstr "Schimbă Timpul Amestecului"
+msgstr "Modifică limitele BlendSpace1D"
#: editor/plugins/animation_blend_space_1d_editor.cpp
-#, fuzzy
msgid "Change BlendSpace1D Labels"
-msgstr "Schimbă Timpul Amestecului"
+msgstr "Modifică etichetele BlendSpace1D"
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4323,9 +4284,8 @@ msgid "Open Animation Node"
msgstr "Nod de Animație"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Triangle already exists."
-msgstr "EROARE: Numele animației există deja!"
+msgstr "Triunghiul există deja."
#: editor/plugins/animation_blend_space_2d_editor.cpp
#, fuzzy
@@ -4438,9 +4398,8 @@ msgid "Delete Node(s)"
msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Filter On/Off"
-msgstr "Comutează modul fără distrageri."
+msgstr "Comutare filtru activat/dezactivat"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#, fuzzy
@@ -4477,9 +4436,8 @@ msgstr "Funcții"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Node Renamed"
-msgstr "Nume Nod:"
+msgstr "Nod redenumit"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -4488,9 +4446,8 @@ msgstr ""
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/root_motion_editor_plugin.cpp
-#, fuzzy
msgid "Edit Filtered Tracks:"
-msgstr "Editează Filtrele"
+msgstr "Editare piste filtrate:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#, fuzzy
@@ -4614,9 +4571,8 @@ msgid "Animation"
msgstr "Animație"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Edit Transitions..."
-msgstr "Tranziții"
+msgstr "Editare tranziții..."
#: editor/plugins/animation_player_editor_plugin.cpp
#, fuzzy
@@ -4718,9 +4674,8 @@ msgid "Move Node"
msgstr "Mod Mutare"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition exists!"
-msgstr "Tranziție"
+msgstr "Tranziţia există!"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
@@ -4783,14 +4738,12 @@ msgid ""
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Create new nodes."
-msgstr "Creați %s Nou"
+msgstr "Creați noduri noi."
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Connect nodes."
-msgstr "Conectați la Nod:"
+msgstr "Conectați nodurile."
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
@@ -4806,14 +4759,12 @@ msgid "Set the end animation. This is useful for sub-transitions."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition: "
-msgstr "Tranziție"
+msgstr "Tranziție: "
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Play Mode:"
-msgstr "Mod În Jur"
+msgstr "Mod redare:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -5008,14 +4959,12 @@ msgid "Redirect loop."
msgstr "Buclă de Redirecționare."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Request failed, timeout"
-msgstr "Cerere eșuată, cod returnat:"
+msgstr "Solicitare nereușită, expirare"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Timeout."
-msgstr "Timp"
+msgstr "Pauză."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
@@ -5038,14 +4987,12 @@ msgid "Asset Download Error:"
msgstr "Eroare la Descărcarea Asset-ului:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Downloading (%s / %s)..."
-msgstr "Se Descarcă"
+msgstr "Se descarcă (%s / %s)..."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Downloading..."
-msgstr "Se Descarcă"
+msgstr "Descărcare..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving..."
@@ -5060,9 +5007,8 @@ msgid "Idle"
msgstr "Inactiv"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Install..."
-msgstr "Instalați"
+msgstr "Instalare..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
@@ -5130,14 +5076,12 @@ msgid "No results for \"%s\"."
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Import..."
-msgstr "Importă"
+msgstr "Import..."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Plugins..."
-msgstr "Plugin-uri"
+msgstr "Plugin-uri..."
#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
msgid "Sort:"
@@ -5153,9 +5097,8 @@ msgid "Site:"
msgstr "Site:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Support"
-msgstr "Suport..."
+msgstr "Suport"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Official"
@@ -5166,9 +5109,8 @@ msgid "Testing"
msgstr "Se Testează"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Loading..."
-msgstr "Încărcați"
+msgstr "Încărcare..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
@@ -5203,7 +5145,7 @@ msgid "Bake Lightmaps"
msgstr "Procesează Lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Previzualizare"
@@ -5397,9 +5339,8 @@ msgid "Full Rect"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Keep Ratio"
-msgstr "Proporție Scalare:"
+msgstr "Păstrare raport"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Anchors only"
@@ -5486,14 +5427,13 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
-#, fuzzy
msgid "Zoom Reset"
-msgstr "Zoom-ați Afară"
+msgstr "Resetare zoom"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode"
-msgstr "Mod Selectare"
+msgstr "Selectare mod"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag: Rotate"
@@ -5547,14 +5487,12 @@ msgid "Pan Mode"
msgstr "Mod În Jur"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Ruler Mode"
-msgstr "Modul de Execuție:"
+msgstr "Mod riglă"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Toggle smart snapping."
-msgstr "Comutare snapping"
+msgstr "Comutați fixarea inteligentă."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -5562,9 +5500,8 @@ msgid "Use Smart Snap"
msgstr "Utilizează Snap"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Toggle grid snapping."
-msgstr "Comutare snapping"
+msgstr "Comutare grilă fixare."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -5683,7 +5620,7 @@ msgstr "Arată Grila"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Helpers"
-msgstr "Arată Asistenții"
+msgstr "Afișare ajutoare"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Rulers"
@@ -5691,7 +5628,7 @@ msgstr "Arată Riglele"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Guides"
-msgstr "Arată Ghizii"
+msgstr "Afișare ghiduri"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Origin"
@@ -5730,9 +5667,8 @@ msgid "Scale mask for inserting keys."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Insert keys (based on mask)."
-msgstr "Inserează Notă (Melodii existente)"
+msgstr "Introduce cheile (bazat pe masca)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5754,7 +5690,7 @@ msgstr "Lungime Animație (în secunde)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
-msgstr "Inserează Notă (Melodii existente)"
+msgstr "Inserează Cheie (Track-uri existente)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
@@ -5838,9 +5774,8 @@ msgstr "Încărcare Mască de Emisie"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "Restart"
-msgstr "Restartare (s):"
+msgstr "Restart"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -5875,9 +5810,8 @@ msgstr ""
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Directed Border Pixels"
-msgstr "Directoare și Fişiere:"
+msgstr "Pixeli borduri direcționați"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -6009,9 +5943,8 @@ msgid "Mesh is empty!"
msgstr "Mesh-ul este gol!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Couldn't create a Trimesh collision shape."
-msgstr "Creează un Frate de Coliziune Trimesh"
+msgstr "Nu a putut crea o formă de coliziune Trimesh."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
@@ -6044,9 +5977,8 @@ msgid "Can't create multiple convex collision shapes for the scene root."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Couldn't create any collision shapes."
-msgstr "Nu s-a putut creea un contur!"
+msgstr "Nu a putut crea nici o formă de coliziune."
#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
@@ -6181,16 +6113,16 @@ msgid "Remove item %d?"
msgstr "Elimini obiectul %d?"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid ""
"Update from existing scene?:\n"
"%s"
-msgstr "Actualizează din Scenă"
+msgstr ""
+"Actualizează din Scenă existenta?:\n"
+"%s"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid "Mesh Library"
-msgstr "Librărie_de_Structuri..."
+msgstr "Bibliotecă meshuri"
#: editor/plugins/mesh_library_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
@@ -6598,9 +6530,8 @@ msgid "Paint Bone Weights"
msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Open Polygon 2D UV editor."
-msgstr "Editor UV de poligoane 2D"
+msgstr "Deschideți editorul UV Poligon 2D."
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon 2D UV Editor"
@@ -6710,9 +6641,8 @@ msgid "Show Grid"
msgstr "Arată Grila"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Configure Grid:"
-msgstr "Configurare Snap"
+msgstr "Configurare grilă:"
#: editor/plugins/polygon_2d_editor_plugin.cpp
#, fuzzy
@@ -6794,9 +6724,8 @@ msgid "AnimationTree has no path set to an AnimationPlayer"
msgstr ""
#: editor/plugins/root_motion_editor_plugin.cpp
-#, fuzzy
msgid "Path to AnimationPlayer is invalid"
-msgstr "Arborele Animației este nevalid."
+msgstr "Calea către AnimationPlayer nu este validă"
#: editor/plugins/script_editor_plugin.cpp
msgid "Clear Recent Files"
@@ -6807,14 +6736,12 @@ msgid "Close and save changes?"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error writing TextFile:"
-msgstr "Eroare la salvarea TileSet!"
+msgstr "Eroare la scrierea TextFile:"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Could not load file at:"
-msgstr "Directorul nu a putut fi creat."
+msgstr "Nu s-a putut încărca fișierul la:"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
@@ -6827,19 +6754,16 @@ msgid "Error while saving theme."
msgstr "Eroare la salvare."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error Saving"
-msgstr "Eroare mutând:"
+msgstr "Eroare La Salvarea"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error importing theme."
-msgstr "Eroare mutând:"
+msgstr "Eroare la importarea temei."
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Error Importing"
-msgstr "Eroare mutând:"
+msgstr "Eroare la importare"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
@@ -6904,18 +6828,16 @@ msgid "Find Previous"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Filter scripts"
-msgstr "Proprietățile obiectului."
+msgstr "Filtrare scripturi"
#: editor/plugins/script_editor_plugin.cpp
msgid "Toggle alphabetical sorting of the method list."
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Filter methods"
-msgstr "Proprietățile obiectului."
+msgstr "Metode de filtrare"
#: editor/plugins/script_editor_plugin.cpp
msgid "Sort"
@@ -6946,9 +6868,8 @@ msgid "File"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Open..."
-msgstr "Deschide"
+msgstr "Deschide..."
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
@@ -7033,9 +6954,8 @@ msgid "Debug with External Editor"
msgstr "Deschide Editorul următor"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Open Godot online documentation."
-msgstr "Deschide Recente"
+msgstr "Deschideți documentația online Godot."
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the reference documentation."
@@ -7098,19 +7018,19 @@ msgid "Target"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid ""
"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'."
-msgstr "Deconectați '%s' de la '%s'"
+msgstr ""
+"Lipsește metoda conectată '%s' pentru semnalul '%s' de la nodul '%s' la "
+"nodul '%s'."
#: editor/plugins/script_text_editor.cpp
msgid "[Ignore]"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Line"
-msgstr "Linie:"
+msgstr "Linie"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
@@ -7266,14 +7186,12 @@ msgid "Remove All Bookmarks"
msgstr "Eliminați Autoload"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Function..."
-msgstr "Faceți Funcția"
+msgstr "Salt la funcție..."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Go to Line..."
-msgstr "Duceți-vă la Linie"
+msgstr "Salt la linie..."
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -7727,9 +7645,8 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Settings..."
-msgstr "Setări Snap"
+msgstr "Setări ..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
@@ -7848,9 +7765,8 @@ msgid "Invalid geometry, can't replace by mesh."
msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Convert to Mesh2D"
-msgstr "Convertește În..."
+msgstr "Conversie în Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create polygon."
@@ -7901,9 +7817,8 @@ msgid "Update Preview"
msgstr "Previzualizare"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Settings:"
-msgstr "Setări Snap"
+msgstr "Setări:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
#, fuzzy
@@ -7919,9 +7834,8 @@ msgid "Add Frame"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Unable to load images"
-msgstr "Încărcarea resursei a eșuat."
+msgstr "Imposibil de încărcat imaginile"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
@@ -7953,9 +7867,8 @@ msgid "Move Frame"
msgstr "Mod Mutare"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Animations:"
-msgstr "Animație"
+msgstr "Animaţii:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
#, fuzzy
@@ -7963,7 +7876,7 @@ msgid "New Animation"
msgstr "Animație"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8238,9 +8151,8 @@ msgid "Erase Selection"
msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Fix Invalid Tiles"
-msgstr "Nume nevalid."
+msgstr "Remediere Tiles nevalide"
#: editor/plugins/tile_map_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -8287,9 +8199,8 @@ msgid "Enable Priority"
msgstr "Editează Filtrele"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Filter tiles"
-msgstr "Filtrează fișierele..."
+msgstr "Filtrare Tiles"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Give a TileSet resource to this TileMap to use its tiles."
@@ -8337,9 +8248,8 @@ msgid "Add Texture(s) to TileSet."
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove selected Texture from TileSet."
-msgstr "Elimină Obiectul Selectat"
+msgstr "Eliminați textura selectată din TileSet."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
@@ -8380,9 +8290,8 @@ msgid "Select the previous shape, subtile, or Tile."
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Region"
-msgstr "Modul de Execuție:"
+msgstr "Regiunea"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8415,9 +8324,8 @@ msgid "Z Index"
msgstr "Mod În Jur"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Region Mode"
-msgstr "Modul de Execuție:"
+msgstr "Mod regiune"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8459,9 +8367,8 @@ msgid "Copy bitmask."
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Paste bitmask."
-msgstr "Lipește Animație"
+msgstr "Lipiți bitmask."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8469,9 +8376,8 @@ msgid "Erase bitmask."
msgstr "RMB: Șterge Punctul."
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Create a new rectangle."
-msgstr "Creați %s Nou"
+msgstr "Creați un dreptunghi nou."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8496,9 +8402,10 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Remove selected texture? This will remove all tiles which use it."
-msgstr "Elimină Obiectul Selectat"
+msgstr ""
+"Eliminați textura selectată? Acest lucru va elimina toate tiles care îl "
+"utilizează."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "You haven't selected a texture to remove."
@@ -8528,9 +8435,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete selected Rect."
-msgstr "Ştergeți fişierele selectate?"
+msgstr "Ștergeți Rectul selectat."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -8539,9 +8445,8 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Delete polygon."
-msgstr "Șterge puncte"
+msgstr "Ștergeți poligonul."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -8589,9 +8494,8 @@ msgid "Edit Tile Bitmask"
msgstr "Editează Filtrele"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Edit Collision Polygon"
-msgstr "Editează poligonul existent:"
+msgstr "Editează coliziunea poligonului"
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8677,9 +8581,8 @@ msgid "This property can't be changed."
msgstr "Această operație nu se poate face fără o scenă."
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "TileSet"
-msgstr "Set_de_Plăci..."
+msgstr "Set de dale"
#: editor/plugins/version_control_editor_plugin.cpp
msgid "No VCS addons are available."
@@ -8794,9 +8697,8 @@ msgid "Add Output"
msgstr "Adaugă Intrare(Input)"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar"
-msgstr "Dimensiune:"
+msgstr "Scalar"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector"
@@ -8830,9 +8732,8 @@ msgid "Change output port type"
msgstr "Schimbă tipul implicit"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Change input port name"
-msgstr "Schimbă Numele Animației:"
+msgstr "Modificarea numelui portului de intrare"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Change output port name"
@@ -8849,9 +8750,8 @@ msgid "Remove output port"
msgstr "Elimină punct"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Set expression"
-msgstr "Versiune Curentă:"
+msgstr "Setare expresie"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Resize VisualShader node"
@@ -8902,9 +8802,8 @@ msgid "Light"
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Show resulted shader code."
-msgstr "Creează Nod"
+msgstr "Afișează codul shader rezultat."
#: editor/plugins/visual_shader_editor_plugin.cpp
#, fuzzy
@@ -8912,18 +8811,16 @@ msgid "Create Shader Node"
msgstr "Creează Nod"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color function."
-msgstr "Faceți Funcția"
+msgstr "Funcția de culoare."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Color operator."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Grayscale function."
-msgstr "Faceți Funcția"
+msgstr "Funcția tonuri de gri."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts HSV vector to RGB equivalent."
@@ -8934,9 +8831,8 @@ msgid "Converts RGB vector to HSV equivalent."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Sepia function."
-msgstr "Faceți Funcția"
+msgstr "Funcția sepia."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Burn operator."
@@ -8947,18 +8843,16 @@ msgid "Darken operator."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Difference operator."
-msgstr "Doar Diferențe"
+msgstr "Operator de diferență."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Dodge operator."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "HardLight operator."
-msgstr "Dimensiune (raport):"
+msgstr "Operator HardLight."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Lighten operator."
@@ -8977,14 +8871,12 @@ msgid "SoftLight operator."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color constant."
-msgstr "Permanent"
+msgstr "Constantă de culoare."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Color uniform."
-msgstr "Anim Schimbare transformare"
+msgstr "Culoare uniformă."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the boolean result of the %s comparison between two parameters."
@@ -9065,9 +8957,8 @@ msgid "'%s' input parameter for all shader modes."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Input parameter."
-msgstr "Snap către părinte"
+msgstr "Parametru de intrare."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "'%s' input parameter for vertex and fragment shader modes."
@@ -9094,14 +8985,12 @@ msgid "'%s' input parameter for vertex and fragment shader mode."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar function."
-msgstr "Scalați Selecția"
+msgstr "Funcție scalară."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar operator."
-msgstr "Dimensiune (raport):"
+msgstr "Operator scalar."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "E constant (2.718282). Represents the base of the natural logarithm."
@@ -9330,9 +9219,8 @@ msgid "Scalar constant."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Scalar uniform."
-msgstr "Anim Schimbare transformare"
+msgstr "Scalare uniformă."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Perform the cubic texture lookup."
@@ -9355,9 +9243,8 @@ msgid "2D texture uniform lookup with triplanar."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform function."
-msgstr "Crează Poligon"
+msgstr "Funcție de transformare."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
@@ -9399,19 +9286,16 @@ msgid "Multiplies vector by transform."
msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform constant."
-msgstr "Crează Poligon"
+msgstr "Transformare constantă."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Transform uniform."
-msgstr "Crează Poligon"
+msgstr "Transformare uniformă."
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Vector function."
-msgstr "Faceți Funcția"
+msgstr "Funcție vectorială."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Vector operator."
@@ -9622,9 +9506,8 @@ msgid "Runnable"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
msgid "Add initial export..."
-msgstr "Adaugă Intrare(Input)"
+msgstr "Adăugare export inițial..."
#: editor/project_export.cpp
msgid "Add previous patches..."
@@ -9732,9 +9615,8 @@ msgid "Make Patch"
msgstr ""
#: editor/project_export.cpp
-#, fuzzy
msgid "Pack File"
-msgstr " Fișiere"
+msgstr "Împachetează Fișierul"
#: editor/project_export.cpp
msgid "Features"
@@ -9754,9 +9636,8 @@ msgid "Script"
msgstr "Execută Scriptul"
#: editor/project_export.cpp
-#, fuzzy
msgid "Script Export Mode:"
-msgstr "Exportă Proiectul"
+msgstr "Mod export script:"
#: editor/project_export.cpp
msgid "Text"
@@ -9787,9 +9668,8 @@ msgid "Export Project"
msgstr "Exportă Proiectul"
#: editor/project_export.cpp
-#, fuzzy
msgid "Export mode?"
-msgstr "Exportă Proiectul"
+msgstr "Exportă Proiectul?"
#: editor/project_export.cpp
#, fuzzy
@@ -9797,9 +9677,8 @@ msgid "Export All"
msgstr "Exportare"
#: editor/project_export.cpp editor/project_manager.cpp
-#, fuzzy
msgid "ZIP File"
-msgstr " Fișiere"
+msgstr "Fișiere ZIP"
#: editor/project_export.cpp
msgid "Godot Game Pack"
@@ -10065,6 +9944,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -10147,18 +10027,16 @@ msgid ""
msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "An action with the name '%s' already exists."
-msgstr "EROARE: Numele animației există deja!"
+msgstr "Există deja o acțiune cu numele '%s'."
#: editor/project_settings_editor.cpp
msgid "Rename Input Action Event"
msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Change Action deadzone"
-msgstr "Schimbă Numele Animației:"
+msgstr "Modificare acțiune deadzone"
#: editor/project_settings_editor.cpp
msgid "Add Input Action Event"
@@ -10507,17 +10385,21 @@ msgid "Batch Rename"
msgstr "Redenumește"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Înlocuiți: "
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Use Regular Expressions"
-msgstr "Versiune Curentă:"
+msgstr "Folosiți expresii regulate"
#: editor/rename_dialog.cpp
#, fuzzy
@@ -10529,23 +10411,20 @@ msgid "Substitute"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Node name"
-msgstr "Nume Nod:"
+msgstr "Nume nod"
#: editor/rename_dialog.cpp
msgid "Node's parent name, if available"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Node type"
-msgstr "Nume Nod:"
+msgstr "Tip nod"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Current scene name"
-msgstr "Scena curentă nu este salvată. Deschizi oricum?"
+msgstr "Numele scenei curente"
#: editor/rename_dialog.cpp
#, fuzzy
@@ -10563,7 +10442,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10571,9 +10450,8 @@ msgid "Initial value for the counter"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Step"
-msgstr "Pas (s):"
+msgstr "Pas"
#: editor/rename_dialog.cpp
msgid "Amount by which counter is incremented for each node"
@@ -10623,13 +10501,13 @@ msgid "Reset"
msgstr "Resetați Zoom-area"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
-msgstr ""
+#, fuzzy
+msgid "Regular Expression Error:"
+msgstr "Folosiți expresii regulate"
#: editor/rename_dialog.cpp
-#, fuzzy
msgid "At character %s"
-msgstr "Caractere valide:"
+msgstr "La caracterul %s"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent Node"
@@ -10733,8 +10611,12 @@ msgstr "Salvează Scena"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Ștergeți %d noduri?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
-msgstr "Creează Nod"
+msgstr "Ștergeți %d noduri?"
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
@@ -10745,9 +10627,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "Creează Nod"
+msgstr "Ștergeți nodul \"%s\"?"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -10784,9 +10665,8 @@ msgid "New Scene Root"
msgstr "Salvează Scena"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Create Root Node:"
-msgstr "Creează Nod"
+msgstr "Creare nod rădăcină:"
#: editor/scene_tree_dock.cpp
#, fuzzy
@@ -10910,9 +10790,8 @@ msgid "Delete (No Confirm)"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Add/Create a New Node."
-msgstr "Creați %s Nou"
+msgstr "Adaugă/Creează un Nod nou."
#: editor/scene_tree_dock.cpp
msgid ""
@@ -10985,9 +10864,8 @@ msgid ""
msgstr ""
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Open Script:"
-msgstr "Execută Scriptul"
+msgstr "Deschide scriptul:"
#: editor/scene_tree_editor.cpp
msgid ""
@@ -11032,14 +10910,12 @@ msgid "Select a Node"
msgstr ""
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Path is empty."
-msgstr "Mesh-ul este gol!"
+msgstr "Calea este goală."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Filename is empty."
-msgstr "Mesh-ul este gol!"
+msgstr "Numele fișierului este gol."
#: editor/script_create_dialog.cpp
msgid "Path is not local."
@@ -11130,9 +11006,8 @@ msgid "Built-in script (into scene file)."
msgstr "Operațiuni cu fișiere tip scenă."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Will create a new script file."
-msgstr "Creați %s Nou"
+msgstr "Va crea un nou fișier script."
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -11140,9 +11015,8 @@ msgid "Will load an existing script file."
msgstr "Încărcaţi o Schemă de Pistă Audio existentă."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Script file already exists."
-msgstr "AutoLoad '%s' există deja!"
+msgstr "Fișierul script există deja."
#: editor/script_create_dialog.cpp
msgid ""
@@ -11156,14 +11030,12 @@ msgid "Class Name:"
msgstr "Clasă:"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Template:"
-msgstr "Elimină Șablon"
+msgstr "Şablon:"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Built-in Script:"
-msgstr "Execută Scriptul"
+msgstr "Script încorporat:"
#: editor/script_create_dialog.cpp
msgid "Attach Node Script"
@@ -11182,19 +11054,16 @@ msgid "Warning:"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Error:"
-msgstr "Eroare!"
+msgstr "Eroare:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Error"
-msgstr "Eroare!"
+msgstr "Eroare C++"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Error:"
-msgstr "Eroare!"
+msgstr "Eroare C++:"
#: editor/script_editor_debugger.cpp
#, fuzzy
@@ -11202,14 +11071,12 @@ msgid "C++ Source"
msgstr "Resursă"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Source:"
-msgstr "Resursă"
+msgstr "Sursă:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Source:"
-msgstr "Resursă"
+msgstr "Sursă C++:"
#: editor/script_editor_debugger.cpp
msgid "Stack Trace"
@@ -11220,9 +11087,8 @@ msgid "Errors"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Child process connected."
-msgstr "Deconectat"
+msgstr "Procesul copilului conectat."
#: editor/script_editor_debugger.cpp
msgid "Copy Error"
@@ -11645,9 +11511,8 @@ msgid "Pick Distance:"
msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Filter meshes"
-msgstr "Proprietățile obiectului."
+msgstr "Filtru meshuri"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
@@ -11789,18 +11654,16 @@ msgstr ""
"motor tip."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new function."
-msgstr "Creați %s Nou"
+msgstr "Creați o nouă funcție."
#: modules/visual_script/visual_script_editor.cpp
msgid "Variables:"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new variable."
-msgstr "Creați %s Nou"
+msgstr "Creați o nouă variabilă."
#: modules/visual_script/visual_script_editor.cpp
msgid "Signals:"
@@ -11938,14 +11801,12 @@ msgid "Disconnect Nodes"
msgstr "Deconectat"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Data"
-msgstr "Conectați la Nod:"
+msgstr "Conectare date nod"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Sequence"
-msgstr "Conectați la Nod:"
+msgstr "Conectare secvență nod"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
@@ -12014,18 +11875,16 @@ msgid "Editing Signal:"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Tool:"
-msgstr "Creează Oase"
+msgstr "Creare Unealta:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Members:"
msgstr "Membri:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Base Type:"
-msgstr "Schimbați Tipul %s"
+msgstr "Modificare tip bază:"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -12033,9 +11892,8 @@ msgid "Add Nodes..."
msgstr "Se adaugă %s..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function..."
-msgstr "Faceți Funcția"
+msgstr "Adăugare funcție..."
#: modules/visual_script/visual_script_editor.cpp
msgid "function_name"
@@ -12206,9 +12064,8 @@ msgid "Invalid public key for APK expansion."
msgstr ""
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Invalid package name:"
-msgstr "Nume nevalid."
+msgstr "Nume pachet nevalid:"
#: platform/android/export/export.cpp
msgid ""
@@ -12277,9 +12134,8 @@ msgid "App Store Team ID not specified - cannot configure the project."
msgstr ""
#: platform/iphone/export/export.cpp
-#, fuzzy
msgid "Invalid Identifier:"
-msgstr "Nume nevalid."
+msgstr "Identificator nevalid:"
#: platform/iphone/export/export.cpp
msgid "Required icon is not specified in the preset."
@@ -12422,6 +12278,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12634,6 +12496,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12743,14 +12610,12 @@ msgid "In node '%s', invalid animation: '%s'."
msgstr ""
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "Invalid animation: '%s'."
-msgstr "EROARE: Nume animație nevalid!"
+msgstr "Animație nevalidă: '%s'."
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "Nothing connected to input '%s' of node '%s'."
-msgstr "Deconectați '%s' de la '%s'"
+msgstr "Nimic conectat la intrarea '%s' a nodului '%s'."
#: scene/animation/animation_tree.cpp
msgid "No root AnimationNode for the graph is set."
@@ -12890,6 +12755,20 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Sistemul De Fișiere și încărcare Bare"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Când exporți sau lansezi, executabilul rezultat va încerca să se "
+#~ "conecteze la IP-ul acestui computer pentru a putea fi depanat."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Scena curentă nu a fost salvată niciodată, salvați-o înainte de rulare."
+
#~ msgid "Not in resource path."
#~ msgstr "Nu în calea de resurse."
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index a2e562446d..2c85fe4e8c 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -9,7 +9,7 @@
# DimOkGamer <dimokgamer@gmail.com>, 2016-2017.
# Forest Swamp <sample1989@mail.ru>, 2018.
# Igor S <scorched@bk.ru>, 2017.
-# ijet <my-ijet@mail.ru>, 2017-2018.
+# ijet <my-ijet@mail.ru>, 2017-2018, 2020.
# Maxim Kim <habamax@gmail.com>, 2016.
# Maxim toby3d Lebedev <mail@toby3d.ru>, 2016.
# outbools <drag4e@yandex.ru>, 2017.
@@ -78,12 +78,21 @@
# Alex Tern <ternvein@gmail.com>, 2020.
# Varion Drakon Neonovich <variondrakon@gmail.com>, 2020.
# d2cyb <dmitrydpb@gmail.com>, 2020.
+# Алексей Смирнов <tir74@mail.ru>, 2020.
+# Calamander <Calamander@yandex.ru>, 2020.
+# Terminator <fresh-ter@yandex.com>, 2020.
+# Anatoly Kuznetsov <muffinnorth@yandex.ru>, 2020.
+# kyanukovich <ianu0001@algonquinlive.com>, 2020.
+# Ron788 <ustinov200511@gmail.com>, 2020.
+# Daniel <dan.ef1999@gmail.com>, 2020.
+# NeoLan Qu <it.bulla@mail.ru>, 2020.
+# Nikita Epifanov <nikgreens@protonmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-22 06:40+0000\n"
-"Last-Translator: Александр <ol-vin@mail.ru>\n"
+"PO-Revision-Date: 2020-09-15 07:17+0000\n"
+"Last-Translator: Danil Alexeev <danil@alexeev.xyz>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ru/>\n"
"Language: ru\n"
@@ -92,12 +101,12 @@ 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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Неверный тип аргумента для convert(), используйте константы TYPE_*."
+msgstr "Неверный параметр типа для convert(), используйте константы TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
@@ -297,7 +306,7 @@ msgstr "Продолжительность анимации (в секундах
#: editor/animation_track_editor.cpp
msgid "Add Track"
-msgstr "Добавить новый трек"
+msgstr "Добавить трек"
#: editor/animation_track_editor.cpp
msgid "Animation Looping"
@@ -318,7 +327,7 @@ msgstr "Дорожки анимации:"
#: editor/animation_track_editor.cpp
msgid "Change Track Path"
-msgstr "Изменить Путь Следования"
+msgstr "Изменить путь трека"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
@@ -326,7 +335,7 @@ msgstr "Включить/выключить этот трек."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr "Режим Обновления (Как это свойство устанавливается)"
+msgstr "Режим обновления (как это свойство устанавливается)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
@@ -375,7 +384,7 @@ msgstr "Линейный"
#: editor/animation_track_editor.cpp
msgid "Cubic"
-msgstr "Кубическая"
+msgstr "Кубический"
#: editor/animation_track_editor.cpp
msgid "Clamp Loop Interp"
@@ -602,6 +611,7 @@ msgid "Seconds"
msgstr "Секунды"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -780,7 +790,7 @@ msgstr "Учитывать регистр"
msgid "Whole Words"
msgstr "Целые слова"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Заменить"
@@ -830,9 +840,8 @@ msgid "Method in target node must be specified."
msgstr "Метод в целевом узле должен быть указан."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "Имя не является допустимым идентификатором:"
+msgstr "Имя не является допустимым идентификатором."
#: editor/connections_dialog.cpp
msgid ""
@@ -974,6 +983,11 @@ msgid "Signals"
msgstr "Сигналы"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Фильтр тайлов"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Вы уверены, что хотите удалить все подключения от сигнала?"
@@ -1011,7 +1025,7 @@ msgid "Recent:"
msgstr "Недавнее:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Поиск:"
@@ -1191,6 +1205,9 @@ msgstr "Основатели Проекта"
msgid "Lead Developer"
msgstr "Ведущий разработчик"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Менеджер проектов "
@@ -1212,6 +1229,14 @@ msgid "Gold Sponsors"
msgstr "Золотые спонсоры"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "Серебряные спонсоры"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "Бронзовые спонсоры"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Мини спонсоры"
@@ -1687,16 +1712,17 @@ msgid "Scene Tree Editing"
msgstr "Редактирование дерева сцены"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Панель «Импорт»"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Панель «Узел»"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Панели «Файловая система» и «Импорт»"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Файловая система"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Панель «Импорт»"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1893,35 +1919,35 @@ msgstr "Назад"
#: editor/editor_file_dialog.cpp
msgid "Go Forward"
-msgstr "Вперёд"
+msgstr "Перейти вперёд"
#: editor/editor_file_dialog.cpp
msgid "Go Up"
-msgstr "Вверх"
+msgstr "Подняться"
#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr "Скрыть файлы"
+msgstr "Переключение скрытых файлов"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr "Переключить избранное"
+msgstr "Избранное"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr "Переключить режим отображения"
+msgstr "Режим отображения"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr "Фокус на пути"
+msgstr "Переместить фокус на строку пути"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr "Переместить избранное вверх"
+msgstr "Поднять избранное"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr "Переместить избранное вниз"
+msgstr "Опустить избранное"
#: editor/editor_file_dialog.cpp
msgid "Go to previous folder."
@@ -1961,7 +1987,7 @@ msgstr "Каталоги и файлы:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Предпросмотр:"
@@ -2400,10 +2426,6 @@ msgid "There is no defined scene to run."
msgstr "Нет открытой сцены для запуска."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "Текущая сцена никогда не была сохранена, сохраните её перед запуском."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Не удаётся запустить подпроцесс!"
@@ -2775,12 +2797,12 @@ msgstr "Набор тайлов..."
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Undo"
-msgstr "Отменить (Undo)"
+msgstr "Отменить"
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Redo"
-msgstr "Повторить (Redo)"
+msgstr "Повторить"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
@@ -2829,7 +2851,7 @@ msgstr "Обзор ресурсов-сирот..."
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr "Выйти в список проектов"
+msgstr "Выйти к списку проектов"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
@@ -2842,24 +2864,28 @@ msgstr "Развернуть с удалённой отладкой"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"При экспорте или развёртывании, полученный исполняемый файл будет пытаться "
-"подключиться к IP этого компьютера с целью отладки."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Небольшое развёртывание через сеть"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Когда эта опция включена, экспорт или развёртывание будет создавать "
"минимальный исполняемый файл.\n"
@@ -2872,9 +2898,10 @@ msgid "Visible Collision Shapes"
msgstr "Видимые области соприкосновения"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Когда эта опция включена, области соприкосновений и узлы Raycast(в 2D и 3D) "
"будут видимыми в запущенной игре."
@@ -2884,23 +2911,26 @@ msgid "Visible Navigation"
msgstr "Видимая навигация"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Когда эта опция включена, навигационные полисетки и полигоны будут видимыми "
"в запущенной игре."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Синхронизация изменений в сцене"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Когда эта опция включена, все изменения, внесённые на сцену, в редакторе "
"будут перенесены в запущенную игру.\n"
@@ -2908,15 +2938,17 @@ msgstr ""
"сетевой файловой системой."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Синхронизация изменений в скриптах"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Когда эта опция включена, любой сохранённый скрипт будет перезагружен в "
"запущенную игру.\n"
@@ -2945,7 +2977,7 @@ msgstr "Снимки экрана хранятся в папке данных/н
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr "Переключить полноэкранный режим"
+msgstr "Включить полноэкранный режим"
#: editor/editor_node.cpp
msgid "Toggle System Console"
@@ -2980,7 +3012,7 @@ msgstr "Справка"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Поиск"
@@ -3015,7 +3047,7 @@ msgstr "Запустить проект."
#: editor/editor_node.cpp
msgid "Play"
-msgstr "Воспроизвести"
+msgstr "Запустить"
#: editor/editor_node.cpp
msgid "Pause the scene execution for debugging."
@@ -3080,7 +3112,7 @@ msgstr "Инспектор"
#: editor/editor_node.cpp
msgid "Expand Bottom Panel"
-msgstr "Развернуть нижнюю панель"
+msgstr "Расширить боковую панель"
#: editor/editor_node.cpp
msgid "Output"
@@ -3399,9 +3431,11 @@ msgid "Add Key/Value Pair"
msgstr "Добавить пару: Ключ/Значение"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Не найден рабочий экспортер для этой платформы.\n"
"Пожалуйста, добавьте его в меню экспорта."
@@ -5166,7 +5200,7 @@ msgid "Bake Lightmaps"
msgstr "Запекать карты освещения"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Предпросмотр"
@@ -5459,7 +5493,7 @@ 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
@@ -5485,7 +5519,7 @@ msgstr "Режим осмотра"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Ruler Mode"
-msgstr "Режим линейки"
+msgstr "Режим измерения"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle smart snapping."
@@ -5599,11 +5633,11 @@ msgstr "Обзор"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Always Show Grid"
-msgstr "Всегда показывать сетку"
+msgstr "Всегда отображать сетку"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Helpers"
-msgstr "Показывать помощники"
+msgstr "Показывать помощников"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Rulers"
@@ -5611,7 +5645,7 @@ msgstr "Показывать линейки"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Guides"
-msgstr "Показывать направляющие"
+msgstr "Отображение направляющих"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Origin"
@@ -5635,7 +5669,7 @@ msgstr "Кадрировать выбранное"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Preview Canvas Scale"
-msgstr "Масштаб при просмотре холста"
+msgstr "Просмотреть Canvas Scale"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Translation mask for inserting keys."
@@ -5676,7 +5710,7 @@ msgstr "Опции анимационных ключей и поз"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
-msgstr "Вставить ключ (существующие треки)"
+msgstr "Вставить ключ (существующие дорожки)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
@@ -5696,7 +5730,7 @@ msgstr "Разделить шаг сетки на 2"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan View"
-msgstr "Панорама"
+msgstr "Панорамировать вид"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -6786,7 +6820,7 @@ msgstr "Найти следующее"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find Previous"
-msgstr "Найти предыдущее"
+msgstr "Найти предыдущий"
#: editor/plugins/script_editor_plugin.cpp
msgid "Filter scripts"
@@ -6808,13 +6842,13 @@ msgstr "Сортировать"
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
-msgstr "Переместить вверх"
+msgstr "Двигаться вверх"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
-msgstr "Переместить вниз"
+msgstr "Двигаться вниз"
#: editor/plugins/script_editor_plugin.cpp
msgid "Next script"
@@ -6834,7 +6868,7 @@ msgstr "Открыть..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reopen Closed Script"
-msgstr "Открыть ранее закрытый скрипт"
+msgstr "Переоткрыть закрытый скрипт"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save All"
@@ -6842,7 +6876,7 @@ msgstr "Сохранить всё"
#: editor/plugins/script_editor_plugin.cpp
msgid "Soft Reload Script"
-msgstr "Мягко перезагрузить скрипт"
+msgstr "Мягкая перезагрузка скрипта"
#: editor/plugins/script_editor_plugin.cpp
msgid "Copy Script Path"
@@ -7023,7 +7057,7 @@ msgstr "нижний регистр"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Capitalize"
-msgstr "Прописные"
+msgstr "Заглавная буква"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Syntax Highlighter"
@@ -7051,7 +7085,7 @@ msgstr "Вырезать"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Select All"
-msgstr "Выбрать все"
+msgstr "Выделить всё"
#: editor/plugins/script_text_editor.cpp
msgid "Delete Line"
@@ -7083,11 +7117,11 @@ msgstr "Развернуть все строки"
#: editor/plugins/script_text_editor.cpp
msgid "Clone Down"
-msgstr "Копировать вниз"
+msgstr "Продублировать вниз"
#: editor/plugins/script_text_editor.cpp
msgid "Complete Symbol"
-msgstr "Список автозавершения"
+msgstr "Завершить символ"
#: editor/plugins/script_text_editor.cpp
msgid "Evaluate Selection"
@@ -7095,7 +7129,7 @@ msgstr "Вычислить выделенное"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
-msgstr "Удаление пробелов в конце строк"
+msgstr "Обрезать замыкающие пробелы"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Indent to Spaces"
@@ -7103,11 +7137,11 @@ msgstr "Преобразовать отступ в пробелы"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Indent to Tabs"
-msgstr "Преобразовать отступ в табуляцию"
+msgstr "Преобразовать отступы в табуляторы"
#: editor/plugins/script_text_editor.cpp
msgid "Auto Indent"
-msgstr "Автоотступ"
+msgstr "Авто-отступ"
#: editor/plugins/script_text_editor.cpp
msgid "Find in Files..."
@@ -7123,11 +7157,11 @@ msgstr "Переключить закладку"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Next Bookmark"
-msgstr "Перейти к следующей закладке"
+msgstr "Переход к следующей закладке"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Previous Bookmark"
-msgstr "Перейти к предыдущей закладке"
+msgstr "Переход к предыдущей закладке"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Bookmarks"
@@ -7148,11 +7182,11 @@ msgstr "Точка остановки"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Breakpoints"
-msgstr "Удалить все точки остановок"
+msgstr "Удалить все точки останова"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Next Breakpoint"
-msgstr "Перейти к следующей точке остановки"
+msgstr "Переход к следующей точке останова"
#: editor/plugins/script_text_editor.cpp
msgid "Go to Previous Breakpoint"
@@ -7336,7 +7370,7 @@ msgstr "Зад"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Transform with View"
-msgstr "Выравнять преобразование с областью просмотра"
+msgstr "Выровнять трансформации с видом"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Rotation with View"
@@ -7360,7 +7394,7 @@ msgstr "Блокировать вращение камеры"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
-msgstr "Режим нормалей"
+msgstr "Нормальный режим"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Wireframe"
@@ -7412,11 +7446,11 @@ msgstr "Недоступно при использовании рендерер
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
-msgstr "Обзор налево"
+msgstr "Свободный вид, лево"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Right"
-msgstr "Обзор направо"
+msgstr "Свободный вид, право"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Forward"
@@ -7424,23 +7458,23 @@ msgstr "Обзор вперёд"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Backwards"
-msgstr "Обзор назад"
+msgstr "Свободный вид, назад"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Up"
-msgstr "Обзор вверх"
+msgstr "Свободный вид, вверх"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Down"
-msgstr "Обзор вниз"
+msgstr "Свободный вид, вниз"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Speed Modifier"
-msgstr "Обзор модификатор скорости"
+msgstr "Модификатор скорости свободного вида"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Slow Modifier"
-msgstr "Медленный модификатор свободного просмотра"
+msgstr "Модификатор замедления свободного вида"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
@@ -7498,7 +7532,7 @@ msgstr "Использовать локальное пространство"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr "Использовать привязку"
+msgstr "Использовать привязки"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -7526,7 +7560,7 @@ msgstr "Вид справа"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Switch Perspective/Orthogonal View"
-msgstr "Переключить перспективный/ортогональный вид"
+msgstr "Переключение перспективного/ортогонального вида"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Insert Animation Key"
@@ -7534,7 +7568,7 @@ msgstr "Вставить ключ анимации"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
-msgstr "Фокус на центре"
+msgstr "Сфокусироваться на начале координат"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
@@ -7542,7 +7576,7 @@ msgstr "Показать выбранное"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Toggle Freelook"
-msgstr "Переключить свободный обзор"
+msgstr "Включить свободный вид"
#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
@@ -7551,7 +7585,7 @@ msgstr "Преобразование"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Object to Floor"
-msgstr "Привязать объект к полу"
+msgstr "Привязка объекта к полу"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog..."
@@ -7813,7 +7847,8 @@ msgid "New Animation"
msgstr "Новая анимация"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Скорость (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -8105,7 +8140,7 @@ msgstr "Очистить карту тайлов"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Find Tile"
-msgstr "Найти плитку"
+msgstr "Найти тайл"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Transpose"
@@ -8129,7 +8164,7 @@ msgstr "Задайте TileSet ресурс этому Tilemap чтобы исп
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint Tile"
-msgstr "Рисовать тайл"
+msgstr "Покрасить тайл"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid ""
@@ -8153,11 +8188,11 @@ msgstr "Повернуть вправо"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Flip Horizontally"
-msgstr "Отразить по горизонтали"
+msgstr "Перевернуть по горизонтали"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Flip Vertically"
-msgstr "Отразить по вертикали"
+msgstr "Перевернуть по вертикали"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Clear Transform"
@@ -8173,11 +8208,11 @@ msgstr "Удалить выбранную текстуру из TileSet."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
-msgstr "Создать из сцены"
+msgstr "Создать из Сцены"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from Scene"
-msgstr "Слияние из сцены"
+msgstr "Слияние из Сцены"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "New Single Tile"
@@ -8950,7 +8985,7 @@ msgstr "Возвращает обратный гиперболический т
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid ""
"Finds the nearest integer that is greater than or equal to the parameter."
-msgstr "Вычисляет ближайшее целое число, большее или равное аргументу."
+msgstr "Находит ближайшее целое, которое больше или равно параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Constrains a value to lie between two further values."
@@ -8958,11 +8993,11 @@ msgstr "Удерживает значение в пределах двух др
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the cosine of the parameter."
-msgstr "Возвращает косинус аргумента."
+msgstr "Возвращает косинус параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the hyperbolic cosine of the parameter."
-msgstr "Возвращает гиперболический косинус аргумента."
+msgstr "Возвращает гиперболический косинус параметра."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in radians to degrees."
@@ -8978,7 +9013,7 @@ msgstr "Экспонента с основанием 2."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest integer less than or equal to the parameter."
-msgstr "Вычисляет ближайшее целое, меньшее или равное аргументу."
+msgstr "Находит ближайшее целое, меньшее или равное аргументу."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Computes the fractional part of the argument."
@@ -8986,7 +9021,7 @@ msgstr "Вычисляет дробную часть аргумента."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse of the square root of the parameter."
-msgstr "Возвращает обратный корень из аргумента."
+msgstr "Возвращает обратный квадратный корень из аргумента."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Natural logarithm."
@@ -9031,11 +9066,11 @@ msgstr "1.0 / скаляр"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest integer to the parameter."
-msgstr "Вычисляет ближайшее целое число."
+msgstr "Находит ближайшее к параметру целое число."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest even integer to the parameter."
-msgstr "Вычисляет ближайшее чётное число."
+msgstr "Находит ближайшее чётное число к параметру."
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Clamps the value between 0.0 and 1.0."
@@ -9579,7 +9614,7 @@ msgstr "Файл пакета"
#: editor/project_export.cpp
msgid "Features"
-msgstr "Свойства"
+msgstr "Возможности"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
@@ -9937,6 +9972,7 @@ msgstr ""
"Вы действительно хотите поискать существующие проекты Godot в %s папках?\n"
"Это может занять много времени."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Менеджер проектов"
@@ -10373,14 +10409,21 @@ msgstr "Выбрать метод"
#: editor/rename_dialog.cpp editor/scene_tree_dock.cpp
msgid "Batch Rename"
-msgstr "Пакетное переименование"
+msgstr "Групповое переименование"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Заменить: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Префикс"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Суффикс"
#: editor/rename_dialog.cpp
@@ -10428,7 +10471,8 @@ msgid "Per-level Counter"
msgstr "Счетчик для каждого уровня"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
"Если установить, счетчик перезапустится для каждой группы дочерних узлов"
@@ -10490,7 +10534,8 @@ msgid "Reset"
msgstr "Сбросить"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Ошибка в регулярном выражении"
#: editor/rename_dialog.cpp
@@ -10563,7 +10608,7 @@ msgstr "Добавить дочернюю сцену"
#: editor/scene_tree_dock.cpp
msgid "Detach Script"
-msgstr "Прикрепить скрипт"
+msgstr "Открепить скрипт"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10600,6 +10645,10 @@ msgid "Make node as Root"
msgstr "Сделать узел корневым"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "Удалить узел «%d» и его дочерние элементы?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Удалить %d узлов?"
@@ -10768,7 +10817,7 @@ msgstr "Сохранить ветку, как сцену"
#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp
msgid "Copy Node Path"
-msgstr "Копировать путь"
+msgstr "Копировать путь ноды"
#: editor/scene_tree_dock.cpp
msgid "Delete (No Confirm)"
@@ -11885,7 +11934,7 @@ msgstr "Удалить выделенное"
#: modules/visual_script/visual_script_editor.cpp
msgid "Find Node Type"
-msgstr "Найти тип узла"
+msgstr "Найти тип нода"
#: modules/visual_script/visual_script_editor.cpp
msgid "Copy Nodes"
@@ -11901,7 +11950,7 @@ msgstr "Сделать функцию"
#: modules/visual_script/visual_script_editor.cpp
msgid "Refresh Graph"
-msgstr "Обновить граф"
+msgstr "Обновить график"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Member"
@@ -12015,14 +12064,13 @@ msgstr "OpenJDK jarsigner не настроен в Настройках Реда
#: platform/android/export/export.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-"Отладочная клавиатура не настроена ни в настройках редактора, ни в "
+"Отладочное хранилище ключей не настроено ни в настройках редактора, ни в "
"предустановках."
#: platform/android/export/export.cpp
msgid "Release keystore incorrectly configured in the export preset."
msgstr ""
-"Отладочная клавиатура не настроена ни в настройках редактора, ни в "
-"предустановках."
+"Хранилище ключей не настроено ни в настройках редактора, ни в предустановках."
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
@@ -12291,6 +12339,15 @@ msgstr ""
"Shape должен быть предусмотрен для функций CollisionShape2D. Пожалуйста, "
"создайте shape-ресурс для этого!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Полигональные фигуры не предназначены для использования или редактирования "
+"непосредственно через узел \"CollisionShape2D\". Пожалуйста, используйте "
+"вместо этого узел \"CollisionPolygon2D\" ."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12559,6 +12616,11 @@ msgstr ""
"GIProbes не поддерживаются видеодрайвером GLES2.\n"
"Вместо этого используйте BakedLightmap."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight с углом более 90 градусов не может отбрасывать тени."
@@ -12863,6 +12925,20 @@ msgstr "Изменения могут быть назначены только
msgid "Constants cannot be modified."
msgstr "Константы не могут быть изменены."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Панели «Файловая система» и «Импорт»"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "При экспорте или развёртывании, полученный исполняемый файл будет "
+#~ "пытаться подключиться к IP этого компьютера с целью отладки."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Текущая сцена никогда не была сохранена, сохраните её перед запуском."
+
#~ msgid "Not in resource path."
#~ msgstr "Не в пути ресурсов."
diff --git a/editor/translations/si.po b/editor/translations/si.po
index 141696c00a..d474b218ba 100644
--- a/editor/translations/si.po
+++ b/editor/translations/si.po
@@ -527,6 +527,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -706,7 +707,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -896,6 +897,10 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -933,7 +938,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1107,6 +1112,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1128,6 +1136,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1591,15 +1607,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1862,7 +1878,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2273,10 +2289,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2693,22 +2705,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2717,8 +2733,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2727,32 +2743,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2812,7 +2828,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3213,7 +3229,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4950,7 +4967,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7551,7 +7568,7 @@ msgid "New Animation"
msgstr "සජීවීකරණ පුනරාවර්ථනය"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9546,6 +9563,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9976,11 +9994,15 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10026,7 +10048,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10084,7 +10106,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10191,6 +10213,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "යතුරු මකා දමන්න"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "යතුරු මකා දමන්න"
@@ -11807,6 +11834,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12019,6 +12052,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index 0920487af3..9ef7eb1d1a 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-15 01:48+0000\n"
+"PO-Revision-Date: 2020-09-08 11:40+0000\n"
"Last-Translator: Richard Urban <redasuio1@gmail.com>\n"
"Language-Team: Slovak <https://hosted.weblate.org/projects/godot-engine/"
"godot/sk/>\n"
@@ -23,7 +23,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -32,7 +32,7 @@ msgstr "Chybný argument convert(), použite TYPE_* konštanty."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "dĺžka očakávaného stringu 1 (písmeno)"
+msgstr "dĺžka očakávaného stringu 1 (písmeno)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -42,7 +42,7 @@ msgstr "Nedostatok bajtov na dekódovanie, alebo chybný formát."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "Neplatný vstup %i (neprešlo) vo výraze"
+msgstr "Nesprávny vstup(input) %i (neschválený) v požiadavke"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
@@ -98,7 +98,7 @@ msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
-msgstr "zadarmo"
+msgstr "Voľný"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
@@ -118,7 +118,7 @@ msgstr "Hodnota:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr "Sem Vložte Kľúč"
+msgstr "Tu vložiť kľúč"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
@@ -130,7 +130,7 @@ msgstr "Zmazať označené kľúč(e)"
#: editor/animation_bezier_editor.cpp
msgid "Add Bezier Point"
-msgstr "Pridať Bezierov bod"
+msgstr "Pridať Bezier bod"
#: editor/animation_bezier_editor.cpp
msgid "Move Bezier Points"
@@ -191,7 +191,7 @@ msgstr "Zmeniť Dĺžku Animácie (Change Animation Length)"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr "Zmeniť opakovanie Animácie (Change Animation Loop)"
+msgstr "Zmeniť Opakovanie Animácie"
#: editor/animation_track_editor.cpp
msgid "Property Track"
@@ -256,7 +256,7 @@ msgstr "Zapnúť/Vypnúť tento track."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr "Update Mode (ako je nastavená táto možnosť)"
+msgstr "Update Mode (Tak ako je táto možnosť nastavená)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
@@ -517,7 +517,7 @@ msgstr "Zoskupte track-y pomocou node-u alebo ich zobrazte ako plain list."
#: editor/animation_track_editor.cpp
msgid "Snap:"
-msgstr "Snap:"
+msgstr "Prichytiť:"
#: editor/animation_track_editor.cpp
msgid "Animation step value."
@@ -528,6 +528,7 @@ msgid "Seconds"
msgstr "Sekundy"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -706,7 +707,7 @@ msgstr "Match Case"
msgid "Whole Words"
msgstr "Celé slová"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Nahradiť"
@@ -756,9 +757,8 @@ msgid "Method in target node must be specified."
msgstr "Metóda v target node-e musí byť špecifikovaná."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "Metóda v target node-e musí byť špecifikovaná."
+msgstr "Meno Metódy musí byť špecifikované."
#: editor/connections_dialog.cpp
msgid ""
@@ -898,6 +898,11 @@ msgid "Signals"
msgstr "Signály"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filter:"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Naozaj chcete odstrániť všetky pripojenia z tohto signálu?"
@@ -935,7 +940,7 @@ msgid "Recent:"
msgstr "Nedávne:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Hľadať:"
@@ -1115,6 +1120,9 @@ msgstr "Zakladatelia Projektu"
msgid "Lead Developer"
msgstr "Vedúci Vývojár"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Manažér Projektu "
@@ -1136,6 +1144,14 @@ msgid "Gold Sponsors"
msgstr "Zlatý Sponzori"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "Strieborný Sponzori"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "Bronzový Sponzori"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Malý Sponzori"
@@ -1611,16 +1627,17 @@ msgid "Scene Tree Editing"
msgstr "Editovanie Stromu Scén"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Importovať Dock"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Node Dock"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Systém súborov a Import Dock-y"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "FileSystém"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Importovať Dock"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1884,9 +1901,9 @@ msgstr "Priečinky a Súbory:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
-msgstr "Ako to bude vyzerať:"
+msgstr "Predzobraziť:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File:"
@@ -2321,10 +2338,6 @@ msgid "There is no defined scene to run."
msgstr "Nieje definovaná žiadna scéna na spustenie."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "Aktuálna scéna sa nikdy neuložila, prosím uložte ju pred spustením."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Subprocess sa nedá spustiť!"
@@ -2765,39 +2778,44 @@ msgstr "Deploy-ovanie z Remote Debug-om"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Pri exportovaní alebo deploy-ovaní, súbor resulting executable sa pokúsi o "
-"pripojenie do IP vášho počítača aby mohol byť debugg-ovaný."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Malý Deploy z Network FS"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Keď bude povolená táto možnosť, export alebo deploy vyprodukujú menej \n"
"súboru executable.\n"
-"Filesystém bude z projektu poskytovaný editorom v sieti. Na Androide, pre "
-"deploy budete potrebovať USB kábel \n"
-"rýchlejší výkon. Táto možnosť zrýchľuje proces testovania."
+"Filesystém bude z projektu poskytovaný editorom v sieti.\n"
+"Na Androide, predeploy budete potrebovať USB kábel pre rýchlejší výkon. Táto "
+"možnosť zrýchľuje proces testovania."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "Viditeľné Tvary Kolízie"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Tvary Kolízie a raycast node-y (pre 2D a 3D) budú viditeľné po spustení hry "
"ak budete mať zapnutú túto možnosť."
@@ -2807,23 +2825,26 @@ msgid "Visible Navigation"
msgstr "Viditeľná Navigácia"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Navigačné mesh-e a polygony budú viditeľné po spustení hry ak budete mať "
"zapnutú túto možnosť."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Zmeny Synchronizácie Scény"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Keď zapnete túto možnosť, akékoľvek zmeny v scéne v editore budú náhradné so "
"spustenou hrou.\n"
@@ -2831,15 +2852,17 @@ msgstr ""
"filesystémom."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Zmeny Synchronizácie Scriptu"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Keď je zapnutá táto Možnosť, akýkoľvek uložený script bude znovu načítaný v "
"spustenej hre.\n"
@@ -2903,7 +2926,7 @@ msgstr "Pomoc"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Vyhľadať"
@@ -3057,19 +3080,19 @@ msgstr "Importovať Šablóny Zo ZIP File-u"
#: editor/editor_node.cpp
msgid "Template Package"
-msgstr "Balíček Šablón"
+msgstr "Balík Šablón"
#: editor/editor_node.cpp
msgid "Export Library"
-msgstr "Exportovať Library"
+msgstr "Exportovať Knižnicu"
#: editor/editor_node.cpp
msgid "Merge With Existing"
-msgstr "Spojiť Z Existujúcim"
+msgstr "Zlúčiť s existujúcim"
#: editor/editor_node.cpp
msgid "Open & Run a Script"
-msgstr "Otvoriť & Spustiť Script"
+msgstr "Otvoriť a vykonať skript"
#: editor/editor_node.cpp
msgid "New Inherited"
@@ -3109,7 +3132,7 @@ msgstr "Otvoriť predchádzajúci Editor"
#: editor/editor_node.h
msgid "Warning!"
-msgstr "Varovanie!"
+msgstr "Upozornenie!"
#: editor/editor_path.cpp
msgid "No sub-resources found."
@@ -3117,7 +3140,7 @@ msgstr "Nenašli sa žiadne \"sub-resources\"."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
-msgstr "Vytváranie Zobrazenia \"Mesh-u\""
+msgstr "Vytváranie Predzobrazenia Mesh-u"
#: editor/editor_plugin.cpp
msgid "Thumbnail..."
@@ -3319,9 +3342,11 @@ msgid "Add Key/Value Pair"
msgstr "Pridať Kľúč/Hodnota \"Pair\""
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Pre túto platformu sa nenašiel žiadny spustiteľný \"export preset\" .\n"
"Prosím pridajte spustiteľný \"preset\" v export menu."
@@ -4227,7 +4252,7 @@ msgstr "Vyberte a premiestnite body, vytvorte body z RMB."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp
msgid "Enable snap and show grid."
-msgstr "Povoliť snap a show grid."
+msgstr "Povoliť prichytenie a zobraziť mriežku."
#: editor/plugins/animation_blend_space_1d_editor.cpp
#: editor/plugins/animation_blend_space_2d_editor.cpp
@@ -4257,118 +4282,117 @@ msgstr "Pridať Trojuholník"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Change BlendSpace2D Limits"
-msgstr ""
+msgstr "Zmeniť Limity BlendSpace2D"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Change BlendSpace2D Labels"
-msgstr ""
+msgstr "Zmeniť Label BlendSpace2D"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Remove BlendSpace2D Point"
-msgstr "Všetky vybrané"
+msgstr "Vymazať BlendSpace2D Bod"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Remove BlendSpace2D Triangle"
-msgstr ""
+msgstr "Vymazať BlendSpace2D Trojuholník"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
-msgstr ""
+msgstr "BlendSpace2D nepatrí ku AnimationTree node."
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "No triangles exist, so no blending can take place."
msgstr ""
+"Neexistujú žiadne trojuholníky, takže si nemôže zabrať miesto žiadny "
+"blending."
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Toggle Auto Triangles"
-msgstr ""
+msgstr "Prepnúť Automatické Trojuholníky"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Create triangles by connecting points."
-msgstr ""
+msgstr "Vytvoriť trojuholníky spájaním bodov."
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Erase points and triangles."
-msgstr ""
+msgstr "Vymazať body a trojuholníky."
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Generate blend triangles automatically (instead of manually)"
-msgstr ""
+msgstr "Vygenerovať blend trojuholníky Automaticky (nie manuálne)"
#: editor/plugins/animation_blend_space_2d_editor.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend:"
-msgstr ""
+msgstr "Blend:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Parameter Changed"
-msgstr ""
+msgstr "Parameter sa Zmenil"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
-#, fuzzy
msgid "Edit Filters"
-msgstr "Súbor:"
+msgstr "Upraviť Filtre"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Output node can't be added to the blend tree."
-msgstr ""
+msgstr "Nemôžete pridať output node do blend tree."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Add Node to BlendTree"
-msgstr ""
+msgstr "Pridať Node do BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Node Moved"
-msgstr ""
+msgstr "Node sa pohol"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Unable to connect, port may be in use or connection may be invalid."
-msgstr ""
+msgstr "Nepodarilo sa pripojiť, port sa možno používa alebo je neplatný."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Nodes Connected"
-msgstr ""
+msgstr "Node-y Spojené"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Nodes Disconnected"
-msgstr ""
+msgstr "Node-y Odpojené"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Set Animation"
-msgstr "Popis:"
+msgstr "Nastaviť Animáciu"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Delete Node"
-msgstr "Všetky vybrané"
+msgstr "Zmazať Node"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)"
-msgstr ""
+msgstr "Zmazať Node(y)"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Toggle Filter On/Off"
-msgstr ""
+msgstr "Zapnúť/Vypnúť Filter"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Change Filter"
-msgstr ""
+msgstr "Zmeniť Filter"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
msgstr ""
+"Nieje nastavený Animačný Prehrávač, takže sa nepodarilo získať mená trackov."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Player path set is invalid, so unable to retrieve track names."
-msgstr ""
+msgstr "Cesta prehrávača je neplatná, takže sa nepodarilo získať mená trackov."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/root_motion_editor_plugin.cpp
@@ -4376,312 +4400,302 @@ msgid ""
"Animation player has no valid root node path, so unable to retrieve track "
"names."
msgstr ""
+"Animačný Prehrávač nemá žiadny platnú root node cestu, takže sa nepodarilo "
+"zistiť mená trackov."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Anim Clips"
-msgstr "Klipy Animácie:"
+msgstr "Klipy Animácie"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Audio Clips"
-msgstr "Zvukové Klipy:"
+msgstr "Zvukové Klipy"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Functions"
-msgstr "Funkcie:"
+msgstr "Funkcie"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Node Renamed"
-msgstr ""
+msgstr "Node Premenovaný"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Add Node..."
-msgstr ""
+msgstr "Pridať Node..."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/root_motion_editor_plugin.cpp
-#, fuzzy
msgid "Edit Filtered Tracks:"
-msgstr "Súbor:"
+msgstr "Upraviť Filtrované Tracky:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Enable Filtering"
-msgstr ""
+msgstr "Povoliť Filtrovanie"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
-msgstr ""
+msgstr "Prepnúť Autoplay"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
-msgstr ""
+msgstr "Nové Meno Animácie:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
-msgstr ""
+msgstr "Nová Animácia"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Animation Name:"
-msgstr ""
+msgstr "Zmeniť Meno Animácie:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Animation?"
-msgstr ""
+msgstr "Naozaj chcete vymazať Animáciu?"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Remove Animation"
-msgstr ""
+msgstr "Vymazať Animáciu"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Invalid animation name!"
-msgstr ""
+msgstr "Meno animácie je Vadné!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation name already exists!"
-msgstr ""
+msgstr "Toto meno Animácie už existuje!"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Rename Animation"
-msgstr ""
+msgstr "Premenovať Animáciu"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
-msgstr ""
+msgstr "Blend sa Ďalej Zmenil"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Blend Time"
-msgstr ""
+msgstr "Zmeniť Blend Time"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load Animation"
-msgstr ""
+msgstr "Načítať Animáciu"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Duplicate Animation"
-msgstr ""
+msgstr "Duplikovať Animáciu"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation to copy!"
-msgstr ""
+msgstr "Žiadne animácie na skopírovanie!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation resource on clipboard!"
-msgstr ""
+msgstr "Žiadny zroj animácie v clipboard!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
-msgstr ""
+msgstr "Prilepená Animácia"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Paste Animation"
-msgstr ""
+msgstr "Prilepiť Animáciu"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation to edit!"
-msgstr ""
+msgstr "Žiadna animácia na úpravu!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
-msgstr ""
+msgstr "Spusťiť vybranú animáciu odzadu z aktuálnej pozície. (A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr ""
+msgstr "Spustiť vybranú animáciu odzadu z konca. (Shift+A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Stop animation playback. (S)"
-msgstr ""
+msgstr "Zastaviť playback animácie. (S)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from start. (Shift+D)"
-msgstr ""
+msgstr "Spustiť vybranú animáciu od začiatku. (Shift+D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from current pos. (D)"
-msgstr ""
+msgstr "Spustiť vybranú animáciu z aktuálnej pozície. (D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation position (in seconds)."
-msgstr ""
+msgstr "Pozícia Animácie (v sekundách)."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Scale animation playback globally for the node."
-msgstr ""
+msgstr "Zväčšiť playback animácie globálne pre node."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
-msgstr ""
+msgstr "Animačné Náradie"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation"
msgstr "Animácie"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Edit Transitions..."
-msgstr "Prechody"
+msgstr "Upraviť Prechody..."
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Open in Inspector"
-msgstr "Otvorit priečinok"
+msgstr "Otvorit v Inšpektor-ovi"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Display list of animations in player."
-msgstr ""
+msgstr "Zobraziť list animácii v prehrávači."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Autoplay on Load"
-msgstr ""
+msgstr "Autoplay pri Načítaní"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Povoliť Onion Skinning"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning Options"
-msgstr ""
+msgstr "Onion Skinning Možnosti"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Popis:"
+msgstr "Smery"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "Vložiť"
+msgstr "Minulosť"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Future"
-msgstr ""
+msgstr "Budúcnosť"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Hĺbka"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 krok"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 kroky"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 kroky"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Iba Odlišnosti"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "Force White Modulate"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Zahŕňa Gizmos (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pin AnimationPlayer"
-msgstr ""
+msgstr "Pripnúť Prehrávač Animácie"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
-msgstr ""
+msgstr "Vytvoriť Novú Animáciu"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Name:"
-msgstr ""
+msgstr "Meno Animácie:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
msgid "Error!"
-msgstr ""
+msgstr "Chyba!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Times:"
-msgstr ""
+msgstr "Blend Times:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Next (Auto Queue):"
-msgstr ""
+msgstr "Ďalej (Automatický Rad):"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
-msgstr ""
+msgstr "Cross-Animation Blend Times"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Move Node"
-msgstr "Vložiť"
+msgstr "Premiestniť Node"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition exists!"
-msgstr "Prechody"
+msgstr "Prechod existuje!"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Add Transition"
-msgstr "Prechody"
+msgstr "Pridať Prechod"
#: editor/plugins/animation_state_machine_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
-msgstr ""
+msgstr "Pridať Node"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "End"
-msgstr ""
+msgstr "Koniec"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Immediate"
-msgstr ""
+msgstr "Okamžite"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Sync"
-msgstr ""
+msgstr "Synchronizácia"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "At End"
-msgstr ""
+msgstr "Na Konci"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Travel"
-msgstr ""
+msgstr "Cestovať"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Start and end nodes are needed for a sub-transition."
-msgstr ""
+msgstr "Pre sub-prechod je potrebné začať a skončiť node-y."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "No playback resource set at path: %s."
-msgstr ""
+msgstr "Nieje nastavený žiadny zdrojový playback ako cesta: %s."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Node Removed"
-msgstr ""
+msgstr "Node Zmazaný"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition Removed"
-msgstr "Prechody"
+msgstr "Prechod Vymazaný"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Set Start Node (Autoplay)"
-msgstr ""
+msgstr "Nastaviť Začiatočný Node (Autoplay)"
#: editor/plugins/animation_state_machine_editor.cpp
msgid ""
@@ -4689,363 +4703,356 @@ msgid ""
"RMB to add new nodes.\n"
"Shift+LMB to create connections."
msgstr ""
+"Vybrať a premiestniť node-y.\n"
+"Pravím tlačítkom myši pridáte node-y.\n"
+"Shift+Lavé tlačíko myši vytvoriť pripojenie."
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Create new nodes."
-msgstr "Vytvoriť adresár"
+msgstr "Vytvoriť Nové Node-y."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Connect nodes."
-msgstr ""
+msgstr "Spojiť Node-y."
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Remove selected node or transition."
-msgstr "Odstrániť výber"
+msgstr "Vymazať označený node alebo prechod."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Toggle autoplay this animation on start, restart or seek to zero."
msgstr ""
+"Prepnúť autoplay na tejto animácii pri štarte, reštarte alebo seek to zero."
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Set the end animation. This is useful for sub-transitions."
-msgstr ""
+msgstr "Nastaviť koniec animácie. Toto je užitočné pre sub-prechody."
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition: "
-msgstr "Prechody"
+msgstr "Prechody: "
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Play Mode:"
-msgstr "Cesta k Node:"
+msgstr "Prehrať Mód:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "AnimationTree"
-msgstr ""
+msgstr "AnimačnýStrom"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "New name:"
-msgstr ""
+msgstr "Nové Meno:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Scale:"
-msgstr ""
+msgstr "Veľkosť:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Fade In (s):"
-msgstr ""
+msgstr "Miznutie do (s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Fade Out (s):"
-msgstr ""
+msgstr "Miznutie Von (s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend"
-msgstr ""
+msgstr "Blend"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Mix"
-msgstr ""
+msgstr "Mix"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Auto Restart:"
-msgstr ""
+msgstr "Auto Reštart:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Restart (s):"
-msgstr ""
+msgstr "Reštart (s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Random Restart (s):"
-msgstr ""
+msgstr "Náhodný Reštart (s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Start!"
-msgstr ""
+msgstr "Štart!"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Amount:"
-msgstr ""
+msgstr "Množstvo:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend 0:"
-msgstr ""
+msgstr "Blend 0:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend 1:"
-msgstr ""
+msgstr "Blend 1:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "X-Fade Time (s):"
-msgstr ""
+msgstr "Čas X-Miznutia (s):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Current:"
-msgstr ""
+msgstr "Aktuálny:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Input"
-msgstr ""
+msgstr "Pridať Vstup"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Clear Auto-Advance"
-msgstr ""
+msgstr "Čistý Auto-Advance"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Set Auto-Advance"
-msgstr ""
+msgstr "Nastaviť Auto-Advance"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Delete Input"
-msgstr ""
+msgstr "Zmazať Vstup"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation tree is valid."
-msgstr ""
+msgstr "Animačný Strom je platný."
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation tree is invalid."
-msgstr ""
+msgstr "Animačný Strom je neplatný."
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation Node"
-msgstr ""
+msgstr "Animačný Node"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "OneShot Node"
-msgstr ""
+msgstr "OneShot Node"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Mix Node"
-msgstr ""
+msgstr "Mix Node"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend2 Node"
-msgstr ""
+msgstr "Blend2 Node"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend3 Node"
-msgstr ""
+msgstr "Blend3 Node"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend4 Node"
-msgstr ""
+msgstr "Blend4 Node"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "TimeScale Node"
-msgstr ""
+msgstr "TimeScale Node"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "TimeSeek Node"
-msgstr ""
+msgstr "TimeSeek Node"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Transition Node"
-msgstr ""
+msgstr "Prechodový Node"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Import Animations..."
-msgstr ""
+msgstr "Importovať Animácie..."
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Node Filters"
-msgstr ""
+msgstr "Nastaviť Node Filtre"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Filters..."
-msgstr ""
+msgstr "Filtre..."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Contents:"
-msgstr "Konštanty:"
+msgstr "Obsah:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "View Files"
-msgstr "Súbor:"
+msgstr "Zobraziť Súbory"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Connection error, please try again."
-msgstr ""
+msgstr "Chyba pripojenia, prosím skúste znovu."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect to host:"
-msgstr ""
+msgstr "Nepodarilo sa pripojiť k host:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No response from host:"
-msgstr ""
+msgstr "Žiadna odozva od host-a:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve hostname:"
-msgstr ""
+msgstr "Nepodarilo sa rozlúštiť hostove meno:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, return code:"
-msgstr ""
+msgstr "Žiadosť zlyhala, spätný kód:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed."
-msgstr ""
+msgstr "Žiadosť zlyhala."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Cannot save response to:"
-msgstr "Nemôžete odstrániť:"
+msgstr "Nepodarilo sa uložiť odpoveď do:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Write error."
-msgstr ""
+msgstr "Chyba písania."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, too many redirects"
-msgstr ""
+msgstr "Žiadosť zlyhala, príliš veľa presmerovaní"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Redirect loop."
-msgstr ""
+msgstr "Presmerovací loop."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, timeout"
-msgstr ""
+msgstr "Žiadosť zlyhala, čas vypršal"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Timeout."
-msgstr "Čas:"
+msgstr "Čas vypršal."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
-msgstr ""
+msgstr "Zlý download hash, za predpokladu že bolo narábané so súborom."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Expected:"
-msgstr ""
+msgstr "Očakávané:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Got:"
-msgstr ""
+msgstr "Má:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed sha256 hash check"
-msgstr ""
+msgstr "Zlyhalo sha256 hash check"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr ""
+msgstr "Zlyhalo Sťahovanie Prostriedku:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading (%s / %s)..."
-msgstr ""
+msgstr "Sťahovanie (%s / %s)..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Downloading..."
-msgstr ""
+msgstr "Sťahovanie..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving..."
-msgstr ""
+msgstr "Rieši sa..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Error making request"
-msgstr ""
+msgstr "Pri vytváraní žiadosťi nastala chyba"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Idle"
-msgstr ""
+msgstr "Idle"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Install..."
-msgstr "Inštalovať"
+msgstr "Inštalovať..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
-msgstr ""
+msgstr "Skúsiť znova"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download Error"
-msgstr ""
+msgstr "Chyba Sťahovania"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download for this asset is already in progress!"
-msgstr ""
+msgstr "Sťahovanie tohoto prostriedku už prebieha!"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Recently Updated"
-msgstr ""
+msgstr "Nedávno Vylepšené"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Least Recently Updated"
-msgstr ""
+msgstr "Za Poslednú Dobu Najmenej Aktualizované"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Name (A-Z)"
-msgstr ""
+msgstr "Meno (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Name (Z-A)"
-msgstr ""
+msgstr "Meno (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (A-Z)"
-msgstr "Licencia"
+msgstr "Licencia (A-Z)"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "License (Z-A)"
-msgstr "Licencia"
+msgstr "Licencia (Z-A)"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "First"
-msgstr ""
+msgstr "Prvý"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Previous"
-msgstr ""
+msgstr "Minulý"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Next"
-msgstr ""
+msgstr "Ďalší"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Last"
-msgstr ""
+msgstr "Posledný"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "All"
-msgstr ""
+msgstr "Všetky"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No results for \"%s\"."
-msgstr ""
+msgstr "Žiadne výsledky pre \"%s\"."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Import..."
-msgstr ""
+msgstr "Import..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Plugins..."
-msgstr ""
+msgstr "Pluginy..."
#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
msgid "Sort:"
-msgstr ""
+msgstr "Zoradiť:"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
msgid "Category:"
-msgstr ""
+msgstr "Kategória:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Site:"
@@ -5053,23 +5060,23 @@ msgstr "Stránka:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Support"
-msgstr ""
+msgstr "Podpora"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Official"
-msgstr ""
+msgstr "Oficiálne"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Testing"
-msgstr ""
+msgstr "Testovanie"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Loading..."
-msgstr ""
+msgstr "Načitávanie..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
-msgstr ""
+msgstr "Prostriedky Súboru ZIP"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
@@ -5077,216 +5084,215 @@ msgid ""
"Save your scene (for images to be saved in the same dir), or pick a save "
"path from the BakedLightmap properties."
msgstr ""
+"Nedá sa určiť cesta pre uloženie lightmap obrázkov.\n"
+"Uložte svoju scénu (Aby sa obrázky na to isté miesto), alebo vyberte cestu "
+"na uloženie so BakedLightmap vlastností."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid ""
"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
"Light' flag is on."
msgstr ""
+"Žiadne mesh-e na bake. Uistite sa že obsahujú UV2 channel a je na ňom 'Bake "
+"Light' vlajka."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Failed creating lightmap images, make sure path is writable."
msgstr ""
+"Nepodarilo sa vytvoriť lightmap obrázok, uistite sa že či je cesta "
+"zapisovateľná."
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Bake Lightmaps"
-msgstr ""
+msgstr "Bake Lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
-msgstr ""
+msgstr "Predzobraziť"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap"
-msgstr ""
+msgstr "Konfigurovať Prichytenie"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Grid Offset:"
-msgstr ""
+msgstr "Odchýlka Mriežky:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Grid Step:"
-msgstr ""
+msgstr "Krok Mriežky:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Primary Line Every:"
-msgstr ""
+msgstr "Všetky Primary Line:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "steps"
-msgstr ""
+msgstr "kroky"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Offset:"
-msgstr ""
+msgstr "Odchýlka Rotácie:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Step:"
-msgstr ""
+msgstr "Krok Rotácie:"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Scale Step:"
-msgstr "Zmeniť veľkosť výberu"
+msgstr "Krok Veľkosti:"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move Vertical Guide"
-msgstr "Popis:"
+msgstr "Presunúť Vertikálny Návod"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Vertical Guide"
-msgstr "Popis:"
+msgstr "Vytvoriť Vertikálny Návod"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Vertical Guide"
-msgstr "Všetky vybrané"
+msgstr "Vymazať Vertikálny Návod"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move Horizontal Guide"
-msgstr "Všetky vybrané"
+msgstr "Presunúť Horizontálny Návod"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Horizontal Guide"
-msgstr "Popis:"
+msgstr "Vytvoriť Horizontálny Návod"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove Horizontal Guide"
-msgstr "Všetky vybrané"
+msgstr "Vymazať Horizontálny Návod"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create Horizontal and Vertical Guides"
-msgstr "Popis:"
+msgstr "Vytvoriť Horizontálne a Vertikálne Návody"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move pivot"
-msgstr "Všetky vybrané"
+msgstr "Presunúť pivot"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotate CanvasItem"
-msgstr ""
+msgstr "Otočiť CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move anchor"
-msgstr ""
+msgstr "Presunúť kovadlinu"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Resize CanvasItem"
-msgstr ""
+msgstr "Zmeniť Veľkosť CanvasItem-u"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale CanvasItem"
-msgstr ""
+msgstr "Veľkosť CanvasItem-u"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move CanvasItem"
-msgstr ""
+msgstr "Presunúť CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
msgstr ""
+"Dieťa kontajnerov majú svoje kovadliny a okraje prepísané svojimi rodičmi."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Presets for the anchors and margins values of a Control node."
-msgstr ""
+msgstr "Prenastaviť pre kovadliny a okraje hodnoty Control node-u."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"When active, moving Control nodes changes their anchors instead of their "
"margins."
msgstr ""
+"Pri aktivovaní, pohybovanim Control node-ov zmeníte ich kovadliny namiesto "
+"ich okrajov."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Top Left"
-msgstr ""
+msgstr "Vľavo Hore"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Top Right"
-msgstr ""
+msgstr "Vpravo Hore"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Bottom Right"
-msgstr ""
+msgstr "Vpravo Dole"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Bottom Left"
-msgstr ""
+msgstr "Vľavo Dole"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Left"
-msgstr ""
+msgstr "Od Stredu Vľavo"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Top"
-msgstr ""
+msgstr "Od Stredu Hore"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Right"
-msgstr ""
+msgstr "Od Stredu Vpravo"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Bottom"
-msgstr ""
+msgstr "Od Stredu Dole"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center"
-msgstr ""
+msgstr "V Strede"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Left Wide"
-msgstr "Lineárne"
+msgstr "Ľavá Šírka"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Top Wide"
-msgstr ""
+msgstr "Horná Šírka"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Right Wide"
-msgstr "Lineárne"
+msgstr "Pravá Šírka"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Bottom Wide"
-msgstr ""
+msgstr "Dolná Šírka"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "VCenter Wide"
-msgstr ""
+msgstr "VerStredná Šírka"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "HCenter Wide"
-msgstr ""
+msgstr "HorStredná Šírka"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Full Rect"
-msgstr ""
+msgstr "Plný Obdĺžnik"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Keep Ratio"
-msgstr ""
+msgstr "Udržovať Pomer"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Anchors only"
-msgstr ""
+msgstr "Iba Kovadliny"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Anchors and Margins"
-msgstr ""
+msgstr "Zmeniť Kovadliny a Okraje"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Anchors"
-msgstr ""
+msgstr "Zmeniť Kovadliny"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5294,6 +5300,8 @@ msgid ""
"Game Camera Override\n"
"Overrides game camera with editor viewport camera."
msgstr ""
+"Prepísanie Hernej Kamery\n"
+"Prepísať hernú kameru s viewport kamerou editora."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5301,104 +5309,103 @@ msgid ""
"Game Camera Override\n"
"No game instance running."
msgstr ""
+"Prepísanie Hernej Kamery\n"
+"Nieje spustená žiadna herná inštancia."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Lock Selected"
-msgstr "Všetky vybrané"
+msgstr "Zamknúť Označené"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Unlock Selected"
-msgstr "Všetky vybrané"
+msgstr "Odomknúť Označené"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Group Selected"
-msgstr "Odstrániť výber"
+msgstr "Pridať Označené do Skupiny"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Ungroup Selected"
-msgstr "Odstrániť výber"
+msgstr "Odskupiť Označené"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
-msgstr ""
+msgstr "Prilepiť Pózu"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Clear Guides"
-msgstr "Všetky vybrané"
+msgstr "Zmazať Návody"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create Custom Bone(s) from Node(s)"
-msgstr ""
+msgstr "Vytvoriť Vlastnú Kosť(i) z Node-u(ou)"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Clear Bones"
-msgstr "Všetky vybrané"
+msgstr "Zmazať Kosti"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
-msgstr ""
+msgstr "Vytvoriť IK Reťaz"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear IK Chain"
-msgstr ""
+msgstr "Zmazať IK Reťaz"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Warning: Children of a container get their position and size determined only "
"by their parent."
msgstr ""
+"Upozornenie: Dieťa kontajnera získa ich pozíciu a veľkosť iba podľa svojho "
+"rodiča."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp
msgid "Zoom Reset"
-msgstr ""
+msgstr "Resetovať Priblíženie"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode"
-msgstr ""
+msgstr "Vybrať Režim"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag: Rotate"
-msgstr ""
+msgstr "Potiahnutím: Otáčenie"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+Drag: Move"
-msgstr ""
+msgstr "Alt+Potiahnutie: Pohyb"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
msgstr ""
+"Stačte 'v' pre Zmenu Pivot-a, 'Shift+v' pre hýbanie s Pivot-om (keď sa hýbe)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+RMB: Depth list selection"
-msgstr ""
+msgstr "Alt+RMB: Výber hĺbkového zoznamu"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Move Mode"
-msgstr ""
+msgstr "Move Mode"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Mode"
-msgstr ""
+msgstr "Rotačný Režim"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Mode"
-msgstr ""
+msgstr "Zmena Veľkosti"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5406,187 +5413,186 @@ msgid ""
"Show a list of all objects at the position clicked\n"
"(same as Alt+RMB in select mode)."
msgstr ""
+"Zobraziť list všetkých objektov na kliknutej pozícii\n"
+"(rovnako ako Alt+RMB v výberovom režime)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Click to change object's rotation pivot."
-msgstr ""
+msgstr "Kliknite pre zmenu rotačného pivota objektu."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan Mode"
-msgstr ""
+msgstr "Pohyb Mód"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Ruler Mode"
-msgstr "Režim Interpolácie"
+msgstr "Pravítko"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle smart snapping."
-msgstr ""
+msgstr "Prepnúť smart prichytenie."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Smart Snap"
-msgstr ""
+msgstr "Použiť Smart Prichytenie"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggle grid snapping."
-msgstr ""
+msgstr "Prepnúť Prichytenie Mriežky."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Grid Snap"
-msgstr ""
+msgstr "Použiť Príchyt Mriežky"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snapping Options"
-msgstr ""
+msgstr "Možnosti Prichytávania"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Rotation Snap"
-msgstr ""
+msgstr "Použiť Prichytávanie Rotácie"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Scale Snap"
-msgstr ""
+msgstr "Použiť Prichytávanie Veľkosti"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap Relative"
-msgstr ""
+msgstr "Prichytiť Relatívne"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Pixel Snap"
-msgstr ""
+msgstr "Použiť Pixelové Prichytenie"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Smart Snapping"
-msgstr ""
+msgstr "Smart Prichytávanie"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Configure Snap..."
-msgstr ""
+msgstr "Konfigurovať Prichytávanie..."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to Parent"
-msgstr ""
+msgstr "Prichytiť na Rodiča"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to Node Anchor"
-msgstr ""
+msgstr "Prichytiť na Kovadlinu Node-u"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to Node Sides"
-msgstr ""
+msgstr "Prichitiť na strany Node-u"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to Node Center"
-msgstr ""
+msgstr "Prichytiť na Stred Node-u"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to Other Nodes"
-msgstr "Vložiť"
+msgstr "Prichytiť na Ostatné Node-y"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to Guides"
-msgstr ""
+msgstr "Prichytiť na Návody"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Lock the selected object in place (can't be moved)."
-msgstr ""
+msgstr "Zamknúť označený objekt na mieste (už sa s ním nebude dať hýbať)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
-msgstr ""
+msgstr "Odomknúť označený objekt (dá sa s ním hýbať)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
-msgstr ""
+msgstr "Uistite sa že sa nedá označiť dieťa objektu."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
-msgstr ""
+msgstr "Aby ste označili dieťa objektu tak mu musíte obnoviť schopnosť."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Skeleton Options"
-msgstr "Všetky vybrané"
+msgstr "Nastavenia Kostry"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Bones"
-msgstr ""
+msgstr "Zobraziť Kosti"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make Custom Bone(s) from Node(s)"
-msgstr ""
+msgstr "Vytvoriť Vlastnú Kosť(i) z Node-u(ou)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Custom Bones"
-msgstr ""
+msgstr "Zmazať Vlastné Kosti"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View"
-msgstr ""
+msgstr "Zobrazenie"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Always Show Grid"
-msgstr ""
+msgstr "Vždy Zobraziť Mriežku"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Helpers"
-msgstr ""
+msgstr "Zobraziť Pomocníkov"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Rulers"
-msgstr ""
+msgstr "Zobraziť Pravítka"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Guides"
-msgstr ""
+msgstr "Zobraziť Návody"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Origin"
-msgstr ""
+msgstr "Zobraziť Pôvod"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Viewport"
-msgstr ""
+msgstr "Zobraziť Výrez"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Group And Lock Icons"
-msgstr ""
+msgstr "Zobraziť Skupinu a Zamknúť Ikony"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
-msgstr ""
+msgstr "Výber Stredu"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Frame Selection"
-msgstr ""
+msgstr "Výber Frame-u"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Preview Canvas Scale"
-msgstr ""
+msgstr "Predzobraziť Veľkosť Plátna"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Translation mask for inserting keys."
-msgstr ""
+msgstr "Prekladová maska na vkladanie kľúčov."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation mask for inserting keys."
-msgstr ""
+msgstr "Rotačná maska na vkladanie kľúčov."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale mask for inserting keys."
-msgstr ""
+msgstr "Veľkostná maska na vkladanie kľúčov."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert keys (based on mask)."
-msgstr ""
+msgstr "Vkladanie kľúčov (založené na maske)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5595,67 +5601,69 @@ msgid ""
"Keys are only added to existing tracks, no new tracks will be created.\n"
"Keys must be inserted manually for the first time."
msgstr ""
+"Automaticky vložiť kľúče keď sú objekty preložené, rotované alebo zväčšené "
+"(založené na maske).\n"
+"Kľúče sú pridané iba do existujúcich track-ov, nebudú vytvorené žiadne nové "
+"tracky.\n"
+"Prvý krát musia byť kľúče vložené manuálne."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Auto Insert Key"
-msgstr "Animácia Vložiť Kľúč"
+msgstr "Automaticky Vložiť Kľúč"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Animation Key and Pose Options"
-msgstr "Dĺžka Času Animácie (v sekundách)"
+msgstr "Animačný Kľúč a Možnosti Pozície"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
-msgstr ""
+msgstr "Vložte Kľúč (Existujúce Tracky)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
-msgstr ""
+msgstr "Kopírovať Pozíciu"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Pose"
-msgstr ""
+msgstr "Zmazať Pozíciu"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
-msgstr ""
+msgstr "Zdvojnásobiť krok mriežky dvomi"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Divide grid step by 2"
-msgstr ""
+msgstr "vydeliť krok mriežky dvomi"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan View"
-msgstr ""
+msgstr "Zobrazenie Pan"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
-msgstr ""
+msgstr "Pridať %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
-msgstr ""
+msgstr "Pridávanie %s..."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Cannot instantiate multiple nodes without root."
-msgstr ""
+msgstr "Nie je možné vytvoriť inštanciu viacerých node-ov bez koreňa."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Create Node"
-msgstr ""
+msgstr "Vytvoriť Node"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Error instancing scene from %s"
-msgstr ""
+msgstr "Chyba pri inštalácovaní scény z %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Change Default Type"
-msgstr "Zmeniť %s Typ"
+msgstr "Zmeniť Predvolený Typ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -5664,214 +5672,204 @@ msgid ""
msgstr ""
#: editor/plugins/collision_polygon_editor_plugin.cpp
-#, fuzzy
msgid "Create Polygon3D"
-msgstr "Vytvoriť adresár"
+msgstr "Vytvoriť Polygon3D"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Edit Poly"
-msgstr ""
+msgstr "Upraviť Poly"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Edit Poly (Remove Point)"
-msgstr ""
+msgstr "Upraviť Poly (Odstrániť Bod)"
#: editor/plugins/collision_shape_2d_editor_plugin.cpp
msgid "Set Handle"
-msgstr ""
+msgstr "Nastaviť Rukoväť"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Load Emission Mask"
-msgstr ""
+msgstr "Načíť Emisnú Masku"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "Restart"
-msgstr "Uložiť súbor"
+msgstr "Reštartovať"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Clear Emission Mask"
-msgstr ""
+msgstr "Zmazať Emisnú Masku"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
-msgstr ""
+msgstr "Particly"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generated Point Count:"
-msgstr ""
+msgstr "Generovaný Bodový Počet:"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Mask"
-msgstr ""
+msgstr "Emisná Maska"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Solid Pixels"
-msgstr ""
+msgstr "Pevné Pixely"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Border Pixels"
-msgstr ""
+msgstr "Ohraničené Pixely"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Directed Border Pixels"
-msgstr "Priečinky a Súbory:"
+msgstr "Pixely s Priamym Ohraničením"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Capture from Pixel"
-msgstr ""
+msgstr "Snímanie z Pixelu"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Colors"
-msgstr ""
+msgstr "Emisné Farby"
#: editor/plugins/cpu_particles_editor_plugin.cpp
msgid "CPUParticles"
-msgstr ""
+msgstr "CPUParticly"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emission Points From Mesh"
-msgstr ""
+msgstr "Vytvoriť Emisné Body z Mesh-u"
#: editor/plugins/cpu_particles_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emission Points From Node"
-msgstr ""
+msgstr "Vytvoriť Emisné Body z Node-u"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat 0"
-msgstr ""
+msgstr "Plochý 0"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat 1"
-msgstr ""
+msgstr "Plochý 1"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease In"
-msgstr ""
+msgstr "Zvyšovanie"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease Out"
-msgstr ""
+msgstr "Znižovanie"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Smoothstep"
-msgstr ""
+msgstr "Hladkýkrok"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Point"
-msgstr ""
+msgstr "Modifikovať Bod Krivky"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Tangent"
-msgstr ""
+msgstr "Modifikovať Tangetu Krivky"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load Curve Preset"
-msgstr ""
+msgstr "Načítať Predvoľbu Krivky"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Add Point"
-msgstr "Signály:"
+msgstr "Pridať Bod"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove Point"
-msgstr "Všetky vybrané"
+msgstr "Vymazať Bod"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Left Linear"
-msgstr "Lineárne"
+msgstr "Lineárne Vľavo"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Right Linear"
-msgstr "Lineárne"
+msgstr "Lineárne Vpravo"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Load Preset"
-msgstr "Načítať predvolené"
+msgstr "Načítať Predvoľbu"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove Curve Point"
-msgstr "Všetky vybrané"
+msgstr "Vymazať Bod Krivky"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Toggle Curve Linear Tangent"
-msgstr ""
+msgstr "Prepnúť Lineárnu Tangetu Krivky"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Hold Shift to edit tangents individually"
-msgstr ""
+msgstr "Podržte Shift aby ste upravili tangetu individuálne"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Right click to add point"
-msgstr ""
+msgstr "Pravým kliknutím pridáťe Bod"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
-msgstr ""
+msgstr "Vypiecť GI Probe"
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Gradient Edited"
-msgstr ""
+msgstr "Prechod je Upravený"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
-msgstr ""
+msgstr "Predmet %d"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Items"
-msgstr ""
+msgstr "Predmety"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item List Editor"
-msgstr ""
+msgstr "List Editor Predmetov"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Occluder Polygon"
-msgstr ""
+msgstr "Vytvoriť Occluder Polygon"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh is empty!"
-msgstr ""
+msgstr "Mesh je prázdny!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Couldn't create a Trimesh collision shape."
-msgstr "Vytvoriť adresár"
+msgstr "Nepodarilo sa vytvoriť Trimesh collision shape."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
-msgstr ""
+msgstr "Vytvoriť Static Trimesh Telo"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "This doesn't work on scene root!"
-msgstr ""
+msgstr "Toto nefunguje na koreni scény!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Shape"
-msgstr ""
+msgstr "Vytvoriť Trimesh Static Shape"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Can't create a single convex collision shape for the scene root."
@@ -6533,11 +6531,11 @@ msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Snap"
-msgstr ""
+msgstr "Prichytiť"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Enable Snap"
-msgstr ""
+msgstr "Povoliť Prichytávanie"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid"
@@ -7360,7 +7358,7 @@ msgstr "Filter:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Cinematic Preview"
-msgstr ""
+msgstr "Filmové Predzobrazenie"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
@@ -7423,11 +7421,11 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
-msgstr ""
+msgstr "Prichytiť Node-y Na Zem"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Couldn't find a solid floor to snap the selection to."
-msgstr ""
+msgstr "Nepodarilo sa nájsť pevnú zem na prichytenie výberu."
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
@@ -7442,7 +7440,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr ""
+msgstr "Použiť Prichytávanie"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
@@ -7496,7 +7494,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Object to Floor"
-msgstr ""
+msgstr "Prichytiť Objekt na Zem"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog..."
@@ -7545,19 +7543,19 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
-msgstr ""
+msgstr "Nastavenie Prichytenia"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate Snap:"
-msgstr ""
+msgstr "Preložiť Preloženie:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Snap (deg.):"
-msgstr ""
+msgstr "Prichytenie Rotácie (v stupňoch.):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Snap (%):"
-msgstr ""
+msgstr "Prichytenie Veľkosti (%):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Viewport Settings"
@@ -7614,7 +7612,7 @@ msgstr "Vytvoriť adresár"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Mesh2D Preview"
-msgstr ""
+msgstr "Predzobraziť Mash2D"
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -7623,7 +7621,7 @@ msgstr "Vytvoriť adresár"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Polygon2D Preview"
-msgstr ""
+msgstr "Predzobraziť Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -7631,9 +7629,8 @@ msgid "Create CollisionPolygon2D"
msgstr "Vytvoriť adresár"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "CollisionPolygon2D Preview"
-msgstr "Vytvoriť adresár"
+msgstr "Predzobraziť CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
#, fuzzy
@@ -7641,9 +7638,8 @@ msgid "Create LightOccluder2D"
msgstr "Vytvoriť adresár"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "LightOccluder2D Preview"
-msgstr "Vytvoriť adresár"
+msgstr "Predzobraziť LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite is empty!"
@@ -7705,7 +7701,7 @@ msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Update Preview"
-msgstr ""
+msgstr "Predzobraziť Vylepšenie"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Settings:"
@@ -7767,7 +7763,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -7839,7 +7835,7 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap Mode:"
-msgstr ""
+msgstr "Režim Prichytenia:"
#: editor/plugins/texture_region_editor_plugin.cpp
#: scene/resources/visual_shader.cpp
@@ -7848,11 +7844,11 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Pixel Snap"
-msgstr ""
+msgstr "Prichytenie Pixelov"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Snap"
-msgstr ""
+msgstr "Prichytenie Mriežky"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
@@ -8278,6 +8274,7 @@ msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Enable snap and show grid (configurable via the Inspector)."
msgstr ""
+"Povoliť prichytávanie a zobraziť mriežku (konfigurovatelné cez inšpektor)."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Display Tile Names (Hold Alt Key)"
@@ -8326,11 +8323,12 @@ msgid "Delete selected Rect."
msgstr "Všetky vybrané"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid ""
"Select current edited sub-tile.\n"
"Click on another Tile to edit it."
-msgstr "Vytvoriť adresár"
+msgstr ""
+"Vybrať aktuálne upravený pod-nadpis.\n"
+"Kliknite na ďalší Nadpis aby ste ho upravili."
#: editor/plugins/tile_set_editor_plugin.cpp
#, fuzzy
@@ -8338,13 +8336,16 @@ msgid "Delete polygon."
msgstr "Všetky vybrané"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid ""
"LMB: Set bit on.\n"
"RMB: Set bit off.\n"
"Shift+LMB: Set wildcard bit.\n"
"Click on another Tile to edit it."
-msgstr "Vytvoriť adresár"
+msgstr ""
+"LMB: Zapnúť bit.\n"
+"RMB: Vypnúť bit.\n"
+"Shift+LMB: Nastaviť wildcard bit.\n"
+"Kliknite na ďalší Nadpis pre úpravu."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid ""
@@ -8360,11 +8361,12 @@ msgid ""
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid ""
"Select sub-tile to change its z index.\n"
"Click on another Tile to edit it."
-msgstr "Vytvoriť adresár"
+msgstr ""
+"Vybrať podnadpis aby ste zmenili jeho index.\n"
+"Kliknite na ďalší Nadpis na úpravu."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Set Tile Region"
@@ -9836,6 +9838,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -10277,11 +10280,16 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Nahradiť: "
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10327,7 +10335,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10385,7 +10393,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10492,9 +10500,12 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Zmazať %d node-y a nejaké deti?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
-msgstr "Všetky vybrané"
+msgstr "Zmazať %d node-y?"
#: editor/scene_tree_dock.cpp
msgid "Delete the root node \"%s\"?"
@@ -10505,9 +10516,8 @@ msgid "Delete node \"%s\" and its children?"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete node \"%s\"?"
-msgstr "Všetky vybrané"
+msgstr "Zmazať node \"%s\"?"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -10710,9 +10720,8 @@ msgid "Button Group"
msgstr "Tlačidlo"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid "(Connecting From)"
-msgstr "Pripojiť Signál: "
+msgstr "(Pripájanie z)"
#: editor/scene_tree_editor.cpp
msgid "Node configuration warning:"
@@ -10916,9 +10925,8 @@ msgid "Attach Node Script"
msgstr "Popis:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Remote "
-msgstr "Všetky vybrané"
+msgstr "Diaľkový "
#: editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -11311,7 +11319,7 @@ msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Snap View"
-msgstr ""
+msgstr "Prichytiť Zobrazenie"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Disabled"
@@ -12171,6 +12179,12 @@ msgstr ""
"Musíte nastaviť tvar objektu CollisionShape2D aby fungoval. Prosím, vytvorte "
"preň tvarový objekt!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12354,13 +12368,12 @@ msgid ""
msgstr ""
#: scene/3d/collision_shape.cpp
-#, fuzzy
msgid ""
"A shape must be provided for CollisionShape to function. Please create a "
"shape resource for it."
msgstr ""
-"Musíte nastaviť tvar objektu CollisionShape2D aby fungoval. Prosím, vytvorte "
-"preň tvarový objekt!"
+"Aby CollisionShape fungoval musíte nastaviť tvar. Prosím, vytvorte preň "
+"tvarový objekt."
#: scene/3d/collision_shape.cpp
msgid ""
@@ -12393,6 +12406,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12618,9 +12636,8 @@ msgid "Viewport size must be greater than 0 to render anything."
msgstr ""
#: scene/resources/visual_shader_nodes.cpp
-#, fuzzy
msgid "Invalid source for preview."
-msgstr "Nesprávna veľkosť písma."
+msgstr "Neplatný zdroj pre predzobrazenie."
#: scene/resources/visual_shader_nodes.cpp
#, fuzzy
@@ -12648,6 +12665,19 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Systém súborov a Import Dock-y"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Pri exportovaní alebo deploy-ovaní, súbor resulting executable sa pokúsi "
+#~ "o pripojenie do IP vášho počítača aby mohol byť debugg-ovaný."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "Aktuálna scéna sa nikdy neuložila, prosím uložte ju pred spustením."
+
#~ msgid "Not in resource path."
#~ msgstr "Nieje v resource path."
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index 114dce1e63..a97fb1ae39 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -11,12 +11,13 @@
# Andrej Poženel <andrej.pozenel@outlook.com>, 2019.
# Arnold Marko <arnold.marko@gmail.com>, 2019.
# Alex <alexrixhardson@gmail.com>, 2019.
+# Andrew Poženel <andrej.pozenel@outlook.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-10-26 03:53+0000\n"
-"Last-Translator: Alex <alexrixhardson@gmail.com>\n"
+"PO-Revision-Date: 2020-07-15 02:42+0000\n"
+"Last-Translator: Andrew Poženel <andrej.pozenel@outlook.com>\n"
"Language-Team: Slovenian <https://hosted.weblate.org/projects/godot-engine/"
"godot/sl/>\n"
"Language: sl\n"
@@ -25,22 +26,22 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3;\n"
-"X-Generator: Weblate 3.9.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Neveljavna vrsta argumenta za convert(), uporabite TYPE_* konstanto."
+msgstr "Neveljavna vrsta argumenta za convert(), uporabite TYPE_* konstante."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "Pričakovan niz dolžine 1 (znak)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "Ni dovolj bajtov za dekodiranje, ali pa format ni ustrezen."
+msgstr "Ni dovolj bajtov za dekodiranje, ali pa je neveljaven format."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -48,7 +49,7 @@ msgstr "Napačen vnos %i(ni podan) v izrazu"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr "self ne more biti uporabljen, ker instanca ni null (ni podano)"
+msgstr "self ne more biti uporabljen, ker je instanca null (ni podano)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -115,9 +116,8 @@ msgid "Time:"
msgstr "Čas:"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Value:"
-msgstr "Novo ime:"
+msgstr "Vrednost:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
@@ -132,14 +132,12 @@ msgid "Delete Selected Key(s)"
msgstr "Izbriši Izbran/e Ključ/e"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Add Bezier Point"
-msgstr "Dodaj točko"
+msgstr "Dodaj Bezierjevo točko"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Move Bezier Points"
-msgstr "Odstrani točko"
+msgstr "Premakni Bezierjevo točko"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
@@ -195,35 +193,33 @@ msgid "Anim Multi Change Call"
msgstr "Animacija Spremeni klic"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Animation Length"
-msgstr "Spremeni Ime Animacije:"
+msgstr "Spremeni dolžino animacije"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "Spremeni ponavljanje animacije"
#: editor/animation_track_editor.cpp
msgid "Property Track"
-msgstr ""
+msgstr "Sled atributa"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "3D Transform Track"
-msgstr "Preoblikovanje"
+msgstr "Sled 3D preoblikovanja"
#: editor/animation_track_editor.cpp
msgid "Call Method Track"
-msgstr ""
+msgstr "Sled klica funkcije"
#: editor/animation_track_editor.cpp
msgid "Bezier Curve Track"
-msgstr ""
+msgstr "Sled Bezierjeve Krivulje"
#: editor/animation_track_editor.cpp
msgid "Audio Playback Track"
-msgstr ""
+msgstr "Zvočna Sled"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -559,6 +555,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -747,7 +744,7 @@ msgstr "Ujemanje Velikih Črk"
msgid "Whole Words"
msgstr "Cele Besede"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Zamenjaj"
@@ -951,6 +948,11 @@ msgid "Signals"
msgstr "Signali"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtriraj datoteke..."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -991,7 +993,7 @@ msgid "Recent:"
msgstr "Nedavni:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Iskanje:"
@@ -1176,6 +1178,9 @@ msgstr "Ustanovitelji Projekta"
msgid "Lead Developer"
msgstr "Vodilni Razvajalec"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Upravljalnik Projekta "
@@ -1197,6 +1202,16 @@ msgid "Gold Sponsors"
msgstr "Zlati Sponzorji"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Srebrni Donatorji"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Bronasti Donatorji"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Majhni Sponzorji"
@@ -1685,21 +1700,21 @@ msgstr ""
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "Import Dock"
-msgstr "Uvozi"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
msgstr "Način Premika"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "DatotečniSistem"
#: editor/editor_feature_profile.cpp
#, fuzzy
+msgid "Import Dock"
+msgstr "Uvozi"
+
+#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Erase profile '%s'? (no undo)"
msgstr "Zamenjaj Vse"
@@ -1988,7 +2003,7 @@ msgstr "Mape & Datoteke:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Predogled:"
@@ -2443,10 +2458,6 @@ msgid "There is no defined scene to run."
msgstr "Ni določene scene za zagon."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "Trenutna scena ni bila shranjena, shranite jo pred zagonom."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Nemorem začeti podprocesa!"
@@ -2902,24 +2913,28 @@ msgstr "Uvajanje z Oddaljenim Razhroščevanjem"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Pri izvažanju ali uvajanju se bo končna izvršljiva datoteka razhroščevala, "
-"tako da se bo skušala povezati z IP-jem tega računalnika."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Kratko Uvajanje z Omrežjem FS"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Ko je ta možnost omogočena, se bo pri izvozu ali uvajanju ustvarila "
"minimalna izvršljiva datoteka.\n"
@@ -2932,9 +2947,10 @@ msgid "Visible Collision Shapes"
msgstr "Vidne Oblike Trka"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Gradniki oblike trka in prikaz žarka (za 2D in 3D) bodo vidni pri poteku "
"igre, če je ta možnost vklopljena."
@@ -2944,37 +2960,42 @@ msgid "Visible Navigation"
msgstr "Vidna Navigacija"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Če je ta možnost vključena, bodo navigacijske oblike in poligoni vidni pri "
"poteku igre."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Usklajuj Spremembe Prizora"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Ko je ta možnost vključena, bodo vse spremebe v prizoru ali urejevalniku "
"ponovljene med potekom igre."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Usklajuj Spremembe Skript"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Če je ta možnost vključena, bo vsaka shranjena skripta ponovno naložena v "
"igro, ki se izvaja.\n"
@@ -3046,7 +3067,7 @@ msgstr "Pomoč"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Iskanje"
@@ -3461,9 +3482,11 @@ msgid "Add Key/Value Pair"
msgstr ""
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Za to platformo ni mogoče najti obstoječih izvoznih nastavitev.\n"
"V izvoznem meniju dodajte svoje nastavitve."
@@ -5333,7 +5356,7 @@ msgid "Bake Lightmaps"
msgstr "Zapeči Svetlobne karte"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Predogled"
@@ -8073,7 +8096,7 @@ msgid "New Animation"
msgstr "Animacija"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -10174,6 +10197,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Upravljalnik Projekta"
@@ -10614,11 +10638,16 @@ msgid "Batch Rename"
msgstr "Preimenuj"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Zamenjaj"
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10670,7 +10699,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10730,8 +10759,9 @@ msgid "Reset"
msgstr "Ponastavi Povečavo/Pomanjšavo"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
-msgstr ""
+#, fuzzy
+msgid "Regular Expression Error:"
+msgstr "Trenutna Različica:"
#: editor/rename_dialog.cpp
#, fuzzy
@@ -10840,6 +10870,11 @@ msgstr "Shrani Prizor"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Izberi Gradnik"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "Izberi Gradnik"
@@ -12555,6 +12590,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12772,6 +12813,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -13039,6 +13085,20 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstante ni možno spreminjati."
+#, fuzzy
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "DatotečniSistem"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Pri izvažanju ali uvajanju se bo končna izvršljiva datoteka "
+#~ "razhroščevala, tako da se bo skušala povezati z IP-jem tega računalnika."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "Trenutna scena ni bila shranjena, shranite jo pred zagonom."
+
#~ msgid "Not in resource path."
#~ msgstr "Ni na poti virov."
diff --git a/editor/translations/sq.po b/editor/translations/sq.po
index 32d08c7bc9..6dd423a048 100644
--- a/editor/translations/sq.po
+++ b/editor/translations/sq.po
@@ -513,6 +513,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -694,7 +695,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -892,6 +893,11 @@ msgid "Signals"
msgstr "Sinjalet"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtro Skedarët..."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "A jeni i sigurt që doni të hiqni të gjitha lidhjet nga ky sinjal?"
@@ -929,7 +935,7 @@ msgid "Recent:"
msgstr "Të fundit:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Kërko:"
@@ -1114,6 +1120,9 @@ msgstr "Themeluesit e Projektit"
msgid "Lead Developer"
msgstr "Krye Zhvilluesi"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Menaxheri Projektit "
@@ -1135,6 +1144,16 @@ msgid "Gold Sponsors"
msgstr "Sponsorat Flori"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Dhuruesit Argjend"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Dhuruesit Bronz"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini Sponsorat"
@@ -1628,21 +1647,21 @@ msgstr ""
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "Import Dock"
-msgstr "Importo"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
msgstr "Nyje"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "FileSystem"
#: editor/editor_feature_profile.cpp
#, fuzzy
+msgid "Import Dock"
+msgstr "Importo"
+
+#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Erase profile '%s'? (no undo)"
msgstr "Zëvendëso të gjitha (pa kthim pas)"
@@ -1921,7 +1940,7 @@ msgstr "Direktorit & Skedarët:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Shikim paraprak:"
@@ -2372,11 +2391,6 @@ msgid "There is no defined scene to run."
msgstr "Nuk ka një skenë të përcaktuar për të filluar."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"Skena aktuale nuk është ruajtur më parë, ju lutem ruajeni para se të filloni."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Nuk mund të fillojë subprocess-in!"
@@ -2828,24 +2842,28 @@ msgstr "Dorëzo me Rregullim në Largësi"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Kur eksporton ose dorëzon, rezultati i ekzekutueshëm do të tentoj të lidhet "
-"me IP-në e këtij kompjuteri në mënyrë që të rregullohet."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Dorëzim i Vogël me Rrjet FS"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Kur ky opsion është i aktivizuar, eksportimi ose dorëzimi do të prodhojë një "
"të ekzekutueshëm minimal.\n"
@@ -2858,9 +2876,10 @@ msgid "Visible Collision Shapes"
msgstr "Format e Përplasjes të Dukshme"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Format e përplasjes dhe nyjet 'raycast' (për 2D dhe 3D) do të jenë të "
"dukshme gjatë ekzekutimit të lojës nëse ky opsion është i aktivizuar."
@@ -2870,38 +2889,43 @@ msgid "Visible Navigation"
msgstr "Navigim i Dukshëm"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Rrjetat e navigimit dhe poligonet do të jenë të dukshme gjatë lojës nëse ky "
"opsion është i aktivizuar."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Sinkronizo Nryshimet e Skenës"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Kur ky opsion është i aktivizuar, çdo ndryshim i bërë në këtë skenë do të "
"kopjohet dhe në lojën duke u ekzekutuar.\n"
"Kur përdoret në largësi është më efikas me rrjet 'filesystem'."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Sinkronizo Ndryshimet e Shkrimit"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Kurbky opsion është aktivizuar, çdo shkrim që ruhet do të ringarkohet në "
"lojën që është duke u ekzekutuar.\n"
@@ -2970,7 +2994,7 @@ msgstr "Ndihmë"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Kërko"
@@ -3386,9 +3410,11 @@ msgid "Add Key/Value Pair"
msgstr "Shto Palë Çelës/Vlerë"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Nuk u gjet eksport paraprak i saktë për këtë platformë.\n"
"Ju lutem shtoni një eksport paraprak të saktë në menu."
@@ -5171,7 +5197,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7803,7 +7829,7 @@ msgid "New Animation"
msgstr "Animacionin i Ri"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9822,6 +9848,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -10255,11 +10282,16 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Zëvendëso: "
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10306,7 +10338,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10364,8 +10396,9 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
-msgstr ""
+#, fuzzy
+msgid "Regular Expression Error:"
+msgstr "Versioni Aktual:"
#: editor/rename_dialog.cpp
#, fuzzy
@@ -10473,6 +10506,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Fshi Nyjen"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "Fshi Nyjen"
@@ -12127,6 +12165,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12339,6 +12383,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12590,6 +12639,22 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#, fuzzy
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "FileSystem"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Kur eksporton ose dorëzon, rezultati i ekzekutueshëm do të tentoj të "
+#~ "lidhet me IP-në e këtij kompjuteri në mënyrë që të rregullohet."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Skena aktuale nuk është ruajtur më parë, ju lutem ruajeni para se të "
+#~ "filloni."
+
#~ msgid "Not in resource path."
#~ msgstr "Jo në rrugën e resurseve."
diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po
index 01d8c4ca91..1c68f56270 100644
--- a/editor/translations/sr_Cyrl.po
+++ b/editor/translations/sr_Cyrl.po
@@ -593,6 +593,7 @@ msgid "Seconds"
msgstr "Секунди"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -786,7 +787,7 @@ msgstr "Подударање великих и малих слова"
msgid "Whole Words"
msgstr "Целе речи"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Замени"
@@ -999,6 +1000,11 @@ msgstr "Сигнали"
#: editor/connections_dialog.cpp
#, fuzzy
+msgid "Filter signals"
+msgstr "Филтрирај датотеке..."
+
+#: editor/connections_dialog.cpp
+#, fuzzy
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Сугурно желиш да уклониш све везе са овог сигнала?"
@@ -1042,7 +1048,7 @@ msgid "Recent:"
msgstr "Честе:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Тражи:"
@@ -1228,6 +1234,9 @@ msgstr "Оснивачи пројекта"
msgid "Lead Developer"
msgstr "Главни девелопер"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
#, fuzzy
msgid "Project Manager "
@@ -1250,6 +1259,16 @@ msgid "Gold Sponsors"
msgstr "Златни спонзори"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Сребрни донатори"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Бронзани донатори"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Мали спонзори"
@@ -1759,21 +1778,21 @@ msgstr "Едитовање Стабла Сцене"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "Import Dock"
-msgstr "Увоз"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
msgstr "Режим померања"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "Датотечни систем"
#: editor/editor_feature_profile.cpp
#, fuzzy
+msgid "Import Dock"
+msgstr "Увоз"
+
+#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Erase profile '%s'? (no undo)"
msgstr "Замени све"
@@ -2068,7 +2087,7 @@ msgstr "Директоријуми и датотеке:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Преглед:"
@@ -2549,10 +2568,6 @@ msgid "There is no defined scene to run."
msgstr "Не постоји дефинисана сцена за покретање."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "Тренутна сцена није сачувана, молим сачувајте је пре покретања."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Не могу покренути подпроцес!"
@@ -3012,24 +3027,28 @@ msgstr "Извршити са удаљеним дебагом"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"При извозу или извршавању, крајља датотека ће покушати да се повеже са "
-"адресом овог рачунара како би се могла дебаговати."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Мали извоз са Network FS"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Када је ова опција укључена, извоз ће правити датотеку најмање могуће "
"величине.\n"
@@ -3042,9 +3061,10 @@ msgid "Visible Collision Shapes"
msgstr "Видљиви облици судара"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Облици судара и чворова зракова (за 2Д и 3Д) ћу бити видљиви током игре ако "
"је ова опција укључена."
@@ -3054,23 +3074,26 @@ msgid "Visible Navigation"
msgstr "Видљива навигација"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Навигационе мреже и полигони ће бити видљиви током игре ако је ова опција "
"укључена."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Синхронизуј промене сцене"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Када је ова опција укључена, све промене сцене ће бити приказане у "
"покренутој игри.\n"
@@ -3078,15 +3101,17 @@ msgstr ""
"мрежним датотечним системом."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Синхронизуј промене скриптица"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Када је ова опција укључена, све скриптице које се сачувају ће бити поново "
"учитане у покренутој игри.\n"
@@ -3159,7 +3184,7 @@ msgstr "Помоћ"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Тражи"
@@ -3619,9 +3644,11 @@ msgid "Add Key/Value Pair"
msgstr "Додај Кључ/Вредност пар"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Нису пронађене поставке извоза за ову платформу.\n"
"Молим, додајте поставке у менију за извоз."
@@ -5583,7 +5610,7 @@ msgid "Bake Lightmaps"
msgstr "Изпеци МапеСенчења"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Преглед"
@@ -8500,7 +8527,8 @@ msgid "New Animation"
msgstr "Анимација"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Брзина (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -10998,6 +11026,7 @@ msgstr ""
"пројектима?\n"
"Ово може потрајати."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Менаџер пројекта"
@@ -11539,12 +11568,17 @@ msgstr "Преименуј Гомилу"
#: editor/rename_dialog.cpp
#, fuzzy
-msgid "Prefix"
+msgid "Replace:"
+msgstr "Замени"
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Предметак"
#: editor/rename_dialog.cpp
#, fuzzy
-msgid "Suffix"
+msgid "Suffix:"
msgstr "Наставак"
#: editor/rename_dialog.cpp
@@ -11601,7 +11635,7 @@ msgstr "Пред-Ниво Бројач"
#: editor/rename_dialog.cpp
#, fuzzy
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Ако је постављен, бројач се рестартује за сваку групу деце чворова"
#: editor/rename_dialog.cpp
@@ -11675,7 +11709,7 @@ msgstr "Ресетуј увеличање"
#: editor/rename_dialog.cpp
#, fuzzy
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr "Регуларни Израз Грешка"
#: editor/rename_dialog.cpp
@@ -11811,6 +11845,11 @@ msgstr "Направи Корен од чвора"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Обриши чвор \"%s\" и његову децу?"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "Обриши %d чворове?"
@@ -13785,6 +13824,12 @@ msgstr ""
"Облик мора бити снабдевен за СударниОблик2Д да би радио. Молимо креирај "
"облик ресурс за њега!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
#, fuzzy
msgid ""
@@ -14089,6 +14134,11 @@ msgstr ""
" \n"
"Као замену користи ИспеченеСенкеМапу."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
#, fuzzy
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -14435,6 +14485,20 @@ msgstr "Варијације могу само бити одређене у фу
msgid "Constants cannot be modified."
msgstr "Константе није могуће мењати."
+#, fuzzy
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Датотечни систем"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "При извозу или извршавању, крајља датотека ће покушати да се повеже са "
+#~ "адресом овог рачунара како би се могла дебаговати."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "Тренутна сцена није сачувана, молим сачувајте је пре покретања."
+
#~ msgid "Not in resource path."
#~ msgstr "Није на пут ресурса."
diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po
index fe13877f42..ad26751fe5 100644
--- a/editor/translations/sr_Latn.po
+++ b/editor/translations/sr_Latn.po
@@ -531,6 +531,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -715,7 +716,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -905,6 +906,10 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -942,7 +947,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1116,6 +1121,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1137,6 +1145,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1600,15 +1616,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1874,7 +1890,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2287,10 +2303,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2708,22 +2720,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2732,8 +2748,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2742,32 +2758,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2828,7 +2844,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3230,7 +3246,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4974,7 +4991,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7598,7 +7615,7 @@ msgid "New Animation"
msgstr "Optimizuj Animaciju"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9621,6 +9638,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -10055,11 +10073,15 @@ msgid "Batch Rename"
msgstr "Animacija Preimenuj Kanal"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10105,7 +10127,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10163,7 +10185,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10270,6 +10292,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Animacija Obriši Ključeve"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "Animacija Obriši Ključeve"
@@ -11895,6 +11922,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12107,6 +12140,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/sv.po b/editor/translations/sv.po
index ddd0188d5d..ff50441f17 100644
--- a/editor/translations/sv.po
+++ b/editor/translations/sv.po
@@ -5,7 +5,7 @@
# bergmarklund <davemcgroin@gmail.com>, 2017, 2018.
# Christoffer Sundbom <christoffer_karlsson@live.se>, 2017.
# Jakob Sinclair <sinclair.jakob@mailbox.org>, 2018.
-# . <grenoscar@gmail.com>, 2018.
+# . <grenoscar@gmail.com>, 2018, 2020.
# Kristoffer Grundström <kristoffer.grundstrom1983@gmail.com>, 2018.
# Magnus Helander <helander@fastmail.net>, 2018.
# Daniel K <danielkimblad@hotmail.com>, 2018.
@@ -15,12 +15,15 @@
# Anonymous <noreply@weblate.org>, 2020.
# Joakim Lundberg <joakim@joakimlundberg.com>, 2020.
# Kristoffer Grundström <swedishsailfishosuser@tutanota.com>, 2020.
+# Jonas Robertsson <jonas.robertsson@posteo.net>, 2020.
+# André Andersson <andre.eric.andersson@gmail.com>, 2020.
+# Andreas Westrell <andreas.westrell@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-03 20:09+0000\n"
-"Last-Translator: Kristoffer Grundström <swedishsailfishosuser@tutanota.com>\n"
+"PO-Revision-Date: 2020-08-18 02:54+0000\n"
+"Last-Translator: Andreas Westrell <andreas.westrell@gmail.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/godot-engine/"
"godot/sv/>\n"
"Language: sv\n"
@@ -28,7 +31,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.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -37,14 +40,13 @@ msgstr "Ogiltligt typargument till convert(), använd TYPE_* konstanter."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr "Förväntade en sträng med längden 1 (en karaktär)."
+msgstr "Förväntas en string av längden 1 (en karaktär)."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
-"Inte tillräckligt antal bytes eller ogiltigt format för avkodning av bytes."
+msgstr "Inte tillräckligt med bytes för avkodning byte, eller ogiltigt format."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -152,7 +154,7 @@ msgstr "Anim Ta Bort Nycklar"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Time"
-msgstr "Anim Ändra Tid för Nyckebild"
+msgstr "Anim Ändra Nyckelbildstid"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
@@ -164,7 +166,7 @@ msgstr "Anim Ändra Transformation"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
-msgstr "Anim Ändra Värde På Nyckelbild"
+msgstr "Anim Ändra Värdet På Tidsnyckeln"
#: editor/animation_track_editor.cpp
msgid "Anim Change Call"
@@ -172,7 +174,7 @@ msgstr "Anim Ändra Anrop"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Keyframe Time"
-msgstr "Anim multi-ändring nyckelbildstid"
+msgstr "Anim Fler-Ändra Nyckelbildstid"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Transition"
@@ -188,7 +190,7 @@ msgstr "Anim Fler-Ändra Nyckelbildsvärde"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Call"
-msgstr "Anim Fler-Ändra Anrop"
+msgstr "Anim Ändra Anrop"
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
@@ -229,7 +231,7 @@ msgstr "Animation längd (bildrutor)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
-msgstr "Animationslängd (i sekunder)"
+msgstr "Animationens längd (sekunder)"
#: editor/animation_track_editor.cpp
msgid "Add Track"
@@ -294,7 +296,7 @@ msgstr "Diskret"
#: editor/animation_track_editor.cpp
msgid "Trigger"
-msgstr "Utlös"
+msgstr "Avtryckare"
#: editor/animation_track_editor.cpp
msgid "Capture"
@@ -499,6 +501,15 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
+"Denna animationen tillhör en importerad scen, så ändringar i de importerade "
+"spåren kommer inte sparas.\n"
+"\n"
+"För att aktivera förmågan att lägga till anpassade spår, navigera till "
+"scenens importinställningar och ställ in\n"
+"\"Animation > Lagring\" till \"Filer\", aktivera \"Animation > Behåll "
+"Anpassade Spår\", sedan importera om.\n"
+"Alternativt, använd en importförinställning som importerar animationer till "
+"separata filer."
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
@@ -514,23 +525,22 @@ msgstr "Visa enbart spår från valda noder i trädet."
#: editor/animation_track_editor.cpp
msgid "Group tracks by node or display them as plain list."
-msgstr ""
+msgstr "Gruppera spår efter noder eller visa dem som enkel lista."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Snap:"
-msgstr "Steg (s):"
+msgstr "Fäst:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation step value."
-msgstr "Animation"
+msgstr "Animationens stegvärde."
#: editor/animation_track_editor.cpp
msgid "Seconds"
msgstr "Sekunder"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -545,14 +555,12 @@ msgid "Edit"
msgstr "Redigera"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation properties."
-msgstr "Animation"
+msgstr "Animationens egenskaper."
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Copy Tracks"
-msgstr "Kopiera Params"
+msgstr "Kopiera Spår"
#: editor/animation_track_editor.cpp
msgid "Scale Selection"
@@ -571,19 +579,16 @@ msgid "Duplicate Transposed"
msgstr "Fördubbla Transponerade"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Delete Selection"
-msgstr "Duplicera urval"
+msgstr "Radera Markering"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Next Step"
-msgstr "Gå Till Nästa Steg"
+msgstr "Gå till Nästa Steg"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Go to Previous Step"
-msgstr "Ge Till Föregående Steg"
+msgstr "Gå till Föregående Steg"
#: editor/animation_track_editor.cpp
msgid "Optimize Animation"
@@ -591,7 +596,7 @@ msgstr "Optimera Animation"
#: editor/animation_track_editor.cpp
msgid "Clean-Up Animation"
-msgstr "Städa upp Animation"
+msgstr "Rensa Animation"
#: editor/animation_track_editor.cpp
msgid "Pick the node that will be animated:"
@@ -646,9 +651,8 @@ msgid "Scale Ratio:"
msgstr "Skalnings förhållande:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select Tracks to Copy"
-msgstr "Ange övergångar:"
+msgstr "Välj Spår att Kopiera"
#: editor/animation_track_editor.cpp editor/editor_log.cpp
#: editor/editor_properties.cpp
@@ -660,22 +664,20 @@ msgid "Copy"
msgstr "Kopiera"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select All/None"
-msgstr "Välj Node"
+msgstr "Välj Alla/Inga"
#: editor/animation_track_editor_plugins.cpp
-#, fuzzy
msgid "Add Audio Track Clip"
-msgstr "Ljud-Lyssnare"
+msgstr "Lägg till Ljudspårsklipp"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip Start Offset"
-msgstr ""
+msgstr "Byt Ljudspårsklippets Startförskjutning"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip End Offset"
-msgstr ""
+msgstr "Byt Ljudspårsklippets Slutförskjutning"
#: editor/array_property_edit.cpp
msgid "Resize Array"
@@ -698,18 +700,16 @@ msgid "Line Number:"
msgstr "Radnummer:"
#: editor/code_editor.cpp
-#, fuzzy
msgid "%d replaced."
-msgstr "Ersätt..."
+msgstr "%d ersatt."
#: editor/code_editor.cpp editor/editor_help.cpp
msgid "%d match."
-msgstr ""
+msgstr "%d matcha."
#: editor/code_editor.cpp editor/editor_help.cpp
-#, fuzzy
msgid "%d matches."
-msgstr "Inga matchningar"
+msgstr "%d matchningar."
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Match Case"
@@ -719,7 +719,7 @@ msgstr "Matcha gemener/versaler"
msgid "Whole Words"
msgstr "Hela Ord"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Ersätt"
@@ -734,11 +734,11 @@ msgstr "Endast Urval"
#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp
#: editor/plugins/text_editor.cpp
msgid "Standard"
-msgstr ""
+msgstr "Standard"
#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
-msgstr ""
+msgstr "Växla Skriptpanel"
#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
@@ -757,51 +757,44 @@ msgid "Reset Zoom"
msgstr "Återställ Zoom"
#: editor/code_editor.cpp
-#, fuzzy
msgid "Warnings"
-msgstr "Varning"
+msgstr "Varningar"
#: editor/code_editor.cpp
msgid "Line and column numbers."
-msgstr ""
+msgstr "Rad- och Kolumnnummer."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method in target node must be specified."
-msgstr "Metod i Mål-Node måste specificeras!"
+msgstr "Metod i målnod måste specificeras."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "Metod i Mål-Node måste specificeras!"
+msgstr "Metodnamn måste vara en giltig identifierare."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid ""
"Target method not found. Specify a valid method or attach a script to the "
"target node."
msgstr ""
-"Målmetod hittades inte! Specificera en giltig metod eller koppla ett skript "
-"till Mål-Node."
+"Målmetod hittades inte. Specificera en giltig metod eller koppla ett skript "
+"till målnoden."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect to Node:"
-msgstr "Anslut Till Node:"
+msgstr "Anslut till Nod:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect to Script:"
-msgstr "Anslut Till Node:"
+msgstr "Anslut till Skript:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "From Signal:"
-msgstr "Signaler:"
+msgstr "Från Signal:"
#: editor/connections_dialog.cpp
msgid "Scene does not contain any script."
-msgstr ""
+msgstr "Scenen innehåller inte något skript."
#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
@@ -829,14 +822,12 @@ msgid "Extra Call Arguments:"
msgstr "Extra Call Argument:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Receiver Method:"
-msgstr "Filtrera noder"
+msgstr "Mottagarmetod:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Advanced"
-msgstr "Balanserad"
+msgstr "Avancerad"
#: editor/connections_dialog.cpp
msgid "Deferred"
@@ -846,6 +837,8 @@ msgstr "Uppskjuten"
msgid ""
"Defers the signal, storing it in a queue and only firing it at idle time."
msgstr ""
+"Skjuter upp signalen och sparar den i en kö och avfyrar den endast under "
+"vilotid."
#: editor/connections_dialog.cpp
msgid "Oneshot"
@@ -853,12 +846,11 @@ msgstr "Oneshot"
#: editor/connections_dialog.cpp
msgid "Disconnects the signal after its first emission."
-msgstr ""
+msgstr "Kopplar av signalen efter sitt första utsläpp."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Cannot connect signal"
-msgstr "Ansluter Signal:"
+msgstr "Kan ej ansluta signal"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/export_template_manager.cpp editor/groups_editor.cpp
@@ -879,23 +871,20 @@ msgid "Connect"
msgstr "Anslut"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Signal:"
-msgstr "Signaler:"
+msgstr "Signal:"
#: editor/connections_dialog.cpp
msgid "Connect '%s' to '%s'"
msgstr "Anslut '%s' till '%s'"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Disconnect '%s' from '%s'"
-msgstr "Anslut '%s' till '%s'"
+msgstr "Koppla av '%s' från '%s'"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Disconnect all from signal: '%s'"
-msgstr "Anslut '%s' till '%s'"
+msgstr "Koppla av alla från signal: '%s'"
#: editor/connections_dialog.cpp
msgid "Connect..."
@@ -907,55 +896,53 @@ msgid "Disconnect"
msgstr "Koppla från"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connect a Signal to a Method"
-msgstr "Ansluter Signal:"
+msgstr "Anslut en Signal till en Metod"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Edit Connection:"
-msgstr "Anslutningsfel"
+msgstr "Redigera Koppling:"
#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from the \"%s\" signal?"
-msgstr ""
+msgstr "Är du säker att du vill ta bort alla kopplingar från \"%s\" signalen?"
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
msgstr "Signaler"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Filtrera Filer..."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
-msgstr ""
+msgstr "Är du säker att du vill ta bort alla kopplingar från denna signal?"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Disconnect All"
-msgstr "Koppla från"
+msgstr "Koppla av alla"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Edit..."
-msgstr "Redigera"
+msgstr "Ändra..."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Go To Method"
-msgstr "Metoder"
+msgstr "Gå Till Metod"
#: editor/create_dialog.cpp
-#, fuzzy
msgid "Change %s Type"
-msgstr "Ändra Typ"
+msgstr "Ändra %s Typ"
#: editor/create_dialog.cpp editor/project_settings_editor.cpp
msgid "Change"
msgstr "Ändra"
#: editor/create_dialog.cpp
-#, fuzzy
msgid "Create New %s"
-msgstr "Skapa Ny"
+msgstr "Skapa Ny %s"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -967,7 +954,7 @@ msgid "Recent:"
msgstr "Senaste:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Sök:"
@@ -995,22 +982,20 @@ msgid "Dependencies For:"
msgstr "Beroenden För:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Scene '%s' is currently being edited.\n"
"Changes will only take effect when reloaded."
msgstr ""
"Scen '%s' håller på att redigeras.\n"
-"Ändringarna börjar inte gälla förrän omladdning."
+"Ändringar börjar inte gälla förrän omladdning."
#: editor/dependency_editor.cpp
-#, fuzzy
msgid ""
"Resource '%s' is in use.\n"
"Changes will only take effect when reloaded."
msgstr ""
"Resurs '%s' är i användning.\n"
-"Ändringarna börjar gälla när den laddas om."
+"Ändringar börjar endast gälla efter omladdning."
#: editor/dependency_editor.cpp
#: modules/gdnative/gdnative_library_editor_plugin.cpp
@@ -1057,9 +1042,8 @@ msgid "Owners Of:"
msgstr "Ägare av:"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Remove selected files from the project? (Can't be restored)"
-msgstr "Ta bort valda filer från projektet? (går inte ångra)"
+msgstr "Ta bort valda filer från projektet? (Kan ej återställas)"
#: editor/dependency_editor.cpp
msgid ""
@@ -1071,9 +1055,8 @@ msgstr ""
"Ta bort dem ändå? (går inte ångra)"
#: editor/dependency_editor.cpp
-#, fuzzy
msgid "Cannot remove:"
-msgstr "Kan inte ta bort:\n"
+msgstr "Kan inte ta bort:"
#: editor/dependency_editor.cpp
msgid "Error loading:"
@@ -1153,10 +1136,12 @@ msgstr "Projektgrundare"
msgid "Lead Developer"
msgstr "Ledande utvecklare"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
-#, fuzzy
msgid "Project Manager "
-msgstr "Projektledare"
+msgstr "Projektledare "
#: editor/editor_about.cpp
msgid "Developers"
@@ -1175,6 +1160,16 @@ msgid "Gold Sponsors"
msgstr "Guldsponsorer"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Silverdonatorer"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Bronsdonatorer"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Minisponsorer"
@@ -1199,12 +1194,10 @@ msgid "License"
msgstr "Licens"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Third-party Licenses"
msgstr "Tredje parts Licens"
#: editor/editor_about.cpp
-#, fuzzy
msgid ""
"Godot Engine relies on a number of third-party free and open source "
"libraries, all compatible with the terms of its MIT license. The following "
@@ -1229,14 +1222,12 @@ msgid "Licenses"
msgstr "Licenser"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Error opening package file, not in ZIP format."
-msgstr "Fel vid öppning av paketetfil, inte i zip-format."
+msgstr "Fel vid öppning av paketfil, är inte ZIP-format."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (Already Exists)"
-msgstr "Autoload '%s' finns redan!"
+msgstr "%s (Existerar Redan)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1244,15 +1235,13 @@ msgstr "Dekomprimerar Tillgångar"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "The following files failed extraction from package:"
-msgstr ""
+msgstr "Följande filer gick inte att packa upp från tillägget:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "And %s more files."
-msgstr "%d fler filer"
+msgstr "%d fler filer."
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Package installed successfully!"
msgstr "Paketet installerades!"
@@ -1262,9 +1251,8 @@ msgid "Success!"
msgstr "Klart!"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Package Contents:"
-msgstr "Innehåll:"
+msgstr "Packet Innehåll:"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
@@ -1287,9 +1275,8 @@ msgid "Rename Audio Bus"
msgstr "Byt namn på Ljud-Buss"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Change Audio Bus Volume"
-msgstr "Växla Ljud-Buss Solo"
+msgstr "Växla Ljud-Buss Volum"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
@@ -1397,7 +1384,7 @@ msgstr "Öppna Ljud-Buss Layout"
#: editor/editor_audio_buses.cpp
msgid "There is no '%s' file."
-msgstr ""
+msgstr "Det finns ingen '%s' fil."
#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp
msgid "Layout"
@@ -1408,18 +1395,16 @@ msgid "Invalid file, not an audio bus layout."
msgstr "Ogiltig fil, inte en Ljud-Buss Layout."
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Error saving file: %s"
-msgstr "Fel vid sparande av TileSet!"
+msgstr "Fel vid sparande av fil: %s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
msgstr "Lägg till Buss"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "Spara Ljud-Buss Layout Som..."
+msgstr "Lägg till en ny Audio-Buss för detta layout"
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1478,7 +1463,7 @@ msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Keyword cannot be used as an autoload name."
-msgstr ""
+msgstr "Nyckelord kan inte användas som ett autoladdningsnamn."
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
@@ -1510,7 +1495,7 @@ msgstr "Ändra ordning på Autoloads"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr ""
+msgstr "Kunde inte lägga till autoladdning:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1561,7 +1546,7 @@ msgstr "(tom)"
#: editor/editor_data.cpp
msgid "[unsaved]"
-msgstr "[osparad]"
+msgstr "[inte sparad]"
#: editor/editor_dir_dialog.cpp
#, fuzzy
@@ -1600,7 +1585,7 @@ msgstr "Lagrar Fil:"
#: editor/editor_export.cpp
msgid "No export template found at the expected path:"
-msgstr ""
+msgstr "Ingen exportmall hittades vid den förväntade sökvägen:"
#: editor/editor_export.cpp
msgid "Packing"
@@ -1611,12 +1596,16 @@ msgid ""
"Target platform requires 'ETC' texture compression for GLES2. Enable 'Import "
"Etc' in Project Settings."
msgstr ""
+"Målplattformen kräver 'ETC' texturkomprimering för GLES2. Aktivera 'Import "
+"Etc' i Projektinställningarna."
#: editor/editor_export.cpp
msgid ""
"Target platform requires 'ETC2' texture compression for GLES3. Enable "
"'Import Etc 2' in Project Settings."
msgstr ""
+"Målplattformen kräver 'ETC2' texturkomprimering för GLES3. Aktivera 'Import "
+"Etc 2' i Projektinställningarna."
#: editor/editor_export.cpp
msgid ""
@@ -1629,9 +1618,8 @@ msgstr ""
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
-#, fuzzy
msgid "Custom debug template not found."
-msgstr "Mallfil hittades inte:\n"
+msgstr "Mallfil hittades inte:"
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
@@ -1640,9 +1628,8 @@ msgid "Custom release template not found."
msgstr ""
#: editor/editor_export.cpp platform/javascript/export/export.cpp
-#, fuzzy
msgid "Template file not found:"
-msgstr "Mallfil hittades inte:\n"
+msgstr "Mallfil hittades inte:"
#: editor/editor_export.cpp
msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
@@ -1669,17 +1656,18 @@ msgstr "Scenträd (Noder):"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "Import Dock"
-msgstr "Importera"
+msgid "Node Dock"
+msgstr "Node Namn:"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "Node Dock"
-msgstr "Node Namn:"
+msgid "FileSystem Dock"
+msgstr "FilSystem"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr ""
+#, fuzzy
+msgid "Import Dock"
+msgstr "Importera"
#: editor/editor_feature_profile.cpp
#, fuzzy
@@ -1967,7 +1955,7 @@ msgstr "Kataloger & Filer:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Förhandsvisning:"
@@ -2425,10 +2413,6 @@ msgid "There is no defined scene to run."
msgstr "Det finns ingen definierad scen att köra."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "Nuvarande scen har aldrig sparats, vänligen spara den innan körning."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Kunde inte starta underprocess!"
@@ -2805,9 +2789,8 @@ msgid "Convert To..."
msgstr "Konvertera Till..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "MeshLibrary..."
-msgstr "MeshLibrary..."
+msgstr "MeshBibliotek..."
#: editor/editor_node.cpp
#, fuzzy
@@ -2889,22 +2872,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2913,8 +2900,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2923,32 +2910,34 @@ msgstr "Synlig Navigation"
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Synkronisera scenändringar"
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Synkronisera skriptändringar"
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2965,9 +2954,8 @@ msgid "Editor Layout"
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Take Screenshot"
-msgstr "Vettigt!"
+msgstr "Ta Skärmdump"
#: editor/editor_node.cpp
msgid "Screenshots are stored in the Editor Data/Settings Folder."
@@ -3012,7 +3000,7 @@ msgstr "Hjälp"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Sök"
@@ -3213,9 +3201,8 @@ msgid "Open the previous Editor"
msgstr ""
#: editor/editor_node.h
-#, fuzzy
msgid "Warning!"
-msgstr "Varning"
+msgstr "Varning!"
#: editor/editor_path.cpp
#, fuzzy
@@ -3432,7 +3419,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -3942,14 +3930,12 @@ msgid "Cancel"
msgstr "Avbryt"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Find: "
-msgstr "Hitta"
+msgstr "Hitta:"
#: editor/find_in_files.cpp
-#, fuzzy
msgid "Replace: "
-msgstr "Ersätt"
+msgstr "Ersätt:"
#: editor/find_in_files.cpp
#, fuzzy
@@ -3975,9 +3961,8 @@ msgid "Remove from Group"
msgstr "Ta bort från Grupp"
#: editor/groups_editor.cpp
-#, fuzzy
msgid "Group name already exists."
-msgstr "ERROR: Animationsnamn finns redan!"
+msgstr "Gruppnamn existerar redan."
#: editor/groups_editor.cpp
#, fuzzy
@@ -4417,9 +4402,8 @@ msgid "Open Animation Node"
msgstr "Animations-Node"
#: editor/plugins/animation_blend_space_2d_editor.cpp
-#, fuzzy
msgid "Triangle already exists."
-msgstr "ERROR: Animationsnamn finns redan!"
+msgstr "Triangel existerar redan."
#: editor/plugins/animation_blend_space_2d_editor.cpp
#, fuzzy
@@ -4650,14 +4634,12 @@ msgid "Duplicate Animation"
msgstr "Duplicera Animation"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation to copy!"
-msgstr "Animation zoom."
+msgstr "Ingen animation finns att kopiera!"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation resource on clipboard!"
-msgstr "Inte i resursens sökväg."
+msgstr "Ingen animationsresurs i urklipp!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
@@ -4668,9 +4650,8 @@ msgid "Paste Animation"
msgstr "Klistra in Animation"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "No animation to edit!"
-msgstr "Animations-Node"
+msgstr "Ingen animation finns att redigera!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
@@ -4706,7 +4687,7 @@ msgstr "Animeringsverktyg"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation"
-msgstr "Animering"
+msgstr "Animation"
#: editor/plugins/animation_player_editor_plugin.cpp
#, fuzzy
@@ -4815,9 +4796,8 @@ msgid "Move Node"
msgstr "Flytta Nod(er)"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition exists!"
-msgstr "Övergång"
+msgstr "Övergång existerar!"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
@@ -4903,9 +4883,8 @@ msgid "Set the end animation. This is useful for sub-transitions."
msgstr ""
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition: "
-msgstr "Övergång"
+msgstr "Övergång:"
#: editor/plugins/animation_state_machine_editor.cpp
#, fuzzy
@@ -5289,7 +5268,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Förhandsgranska"
@@ -7881,9 +7860,8 @@ msgid "LightOccluder2D Preview"
msgstr "Skapa Mapp"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Sprite is empty!"
-msgstr "Sökvägen är tom"
+msgstr "Spriten är tom!"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Can't convert a sprite using animation frames to mesh."
@@ -8008,7 +7986,7 @@ msgid "New Animation"
msgstr "Animation"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -10106,6 +10084,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Projektledare"
@@ -10184,9 +10163,8 @@ msgid ""
msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "An action with the name '%s' already exists."
-msgstr "ERROR: Animationsnamn finns redan!"
+msgstr "En process med namnet '%s' existerar redan."
#: editor/project_settings_editor.cpp
msgid "Rename Input Action Event"
@@ -10546,11 +10524,16 @@ msgid "Batch Rename"
msgstr "Byt namn"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Ersätt:"
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10602,7 +10585,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10664,8 +10647,9 @@ msgid "Reset"
msgstr "Återställ Zoom"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
-msgstr ""
+#, fuzzy
+msgid "Regular Expression Error:"
+msgstr "Nuvarande Version:"
#: editor/rename_dialog.cpp
#, fuzzy
@@ -10768,9 +10752,13 @@ msgid "Instantiated scenes can't become root"
msgstr ""
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Make node as Root"
-msgstr "Vettigt!"
+msgstr "Gör nod som Rot"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Ta bort Nod(er)"
#: editor/scene_tree_dock.cpp
#, fuzzy
@@ -10821,9 +10809,8 @@ msgid "Make Local"
msgstr "Gör Patch"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "New Scene Root"
-msgstr "Vettigt!"
+msgstr "Ny Scenrot"
#: editor/scene_tree_dock.cpp
#, fuzzy
@@ -10932,9 +10919,8 @@ msgid "Reparent to New Node"
msgstr "Byt Förälder-Node"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Make Scene Root"
-msgstr "Vettigt!"
+msgstr "Skapa Scenrot"
#: editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -11188,9 +11174,8 @@ msgid "Will load an existing script file."
msgstr "Ladda in befintlig Skript-fil"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Script file already exists."
-msgstr "Autoload '%s' finns redan!"
+msgstr "Skriptfil existerar redan."
#: editor/script_create_dialog.cpp
msgid ""
@@ -12349,9 +12334,8 @@ msgid "Run exported HTML in the system's default browser."
msgstr "Kör exporterad HTML i systemets standardwebbläsare."
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not write file:"
-msgstr "Kunde inte skriva till filen:\n"
+msgstr "Kunde inte skriva till filen:"
#: platform/javascript/export/export.cpp
#, fuzzy
@@ -12367,9 +12351,8 @@ msgid "Could not read custom HTML shell:"
msgstr ""
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read boot splash image file:"
-msgstr "Kunde inte skriva till filen:\n"
+msgstr "Kunde inte skriva till filen:"
#: platform/javascript/export/export.cpp
msgid "Using default boot splash image."
@@ -12482,6 +12465,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12711,6 +12700,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12824,9 +12818,8 @@ msgid "In node '%s', invalid animation: '%s'."
msgstr ""
#: scene/animation/animation_tree.cpp
-#, fuzzy
msgid "Invalid animation: '%s'."
-msgstr "ERROR: Ogiltigt animationsnamn!"
+msgstr "Ogiltig animation: '%s'."
#: scene/animation/animation_tree.cpp
#, fuzzy
@@ -12974,6 +12967,10 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Nuvarande scen har aldrig sparats, vänligen spara den innan körning."
+
#~ msgid "Not in resource path."
#~ msgstr "Inte i resursens sökväg."
diff --git a/editor/translations/ta.po b/editor/translations/ta.po
index 8f161acfc9..bff90ce603 100644
--- a/editor/translations/ta.po
+++ b/editor/translations/ta.po
@@ -4,13 +4,14 @@
# This file is distributed under the same license as the Godot source code.
#
# Senthil Kumar K <logickumar@gmail.com>, 2017.
-#
+# Survesh VRL <123survesh@gmail.com>, 2020.
+# Sridhar <sreeafmarketing@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2018-12-13 14:43+0100\n"
-"Last-Translator: Senthil Kumar K <logickumar@gmail.com>\n"
+"PO-Revision-Date: 2020-09-01 10:38+0000\n"
+"Last-Translator: Sridhar <sreeafmarketing@gmail.com>\n"
"Language-Team: Tamil <https://hosted.weblate.org/projects/godot-engine/godot/"
"ta/>\n"
"Language: ta\n"
@@ -18,34 +19,37 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Poedit 2.2\n"
+"X-Generator: Weblate 4.2.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr ""
+msgstr "தவறான வகை வாதம் மாற்று(), TYPE_ * மாறிலிகளைப் பயன்படுத்தவும்."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "நீளமுள்ள சொல் (ஒரு எழுத்து) எதிர்பார்க்கப்படுகிறது."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
+msgstr "டிகோடிங் போதுமான பைட்டுகள் இல்லை, அல்லது தவறான வடிவத்தில் உள்ளது."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr ""
+msgstr "தவறான உள்ளீடு% i (அனுப்பப்படவில்லை) இல் வெளிப்பாட்டில்"
#: core/math/expression.cpp
+#, fuzzy
msgid "self can't be used because instance is null (not passed)"
msgstr ""
+"சுயத்தை பயன்படுத்த முடியாது, ஏனெனில் உதாரணம்(instance) பூஜ்யமானது "
+"(நிறைவேற்றப்படவில்லை)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr ""
+msgstr "ஆபரேட்டர்% s,% s மற்றும்% s க்கு தவறான செயல்பாடுகள் உள்ளது."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
@@ -526,6 +530,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -707,7 +712,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -897,6 +902,10 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -934,7 +943,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1108,6 +1117,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1129,6 +1141,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1592,15 +1612,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1864,7 +1884,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2275,10 +2295,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2695,22 +2711,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2719,8 +2739,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2729,32 +2749,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2815,7 +2835,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3216,7 +3236,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4954,7 +4975,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7549,7 +7570,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9540,6 +9561,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9972,11 +9994,15 @@ msgid "Batch Rename"
msgstr "அசைவூட்டு பாதைக்கு மறுபெயர் இடு"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10022,7 +10048,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10080,7 +10106,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10187,6 +10213,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "அனைத்து தேர்வுகள்"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "அனைத்து தேர்வுகள்"
@@ -11801,6 +11832,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12013,6 +12050,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/te.po b/editor/translations/te.po
index 87fb947dd0..2c6d8146e2 100644
--- a/editor/translations/te.po
+++ b/editor/translations/te.po
@@ -2,11 +2,11 @@
# Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.
# Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
-# suresh p <suresh9247@gmail.com>, 2019.
+# suresh p <suresh9247@gmail.com>, 2019, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2019-01-16 20:20+0000\n"
+"PO-Revision-Date: 2020-09-15 07:17+0000\n"
"Last-Translator: suresh p <suresh9247@gmail.com>\n"
"Language-Team: Telugu <https://hosted.weblate.org/projects/godot-engine/"
"godot/te/>\n"
@@ -14,16 +14,17 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.4-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
msgstr ""
+"() కు మార్చడానికి ఈ వాదన (argument) సరికాదు, దానికి TYPE_* స్థిరాంకాలను(constants) ఉపయోగించండి."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "స్ట్రింగ్(string ) యొక్క పొడవు 1 అక్షరం మాత్రమే ఆశిస్తుంది."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -39,11 +40,11 @@ msgstr "వ్యక్తీకరణలో చెల్లని ఇన్ప
#: core/math/expression.cpp
#, fuzzy
msgid "self can't be used because instance is null (not passed)"
-msgstr "తనకు తానుగా ఉపయోగించుకోలేదు ఎందుకంటే instance ఒక శూన్యం (ఆమోదించబడలేదు )"
+msgstr "తనకు తానుగా(self) ఉపయోగించుకోలేదు ఎందుకంటే instance ఒక శూన్యం (ఆమోదించబడలేదు )"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr ""
+msgstr "oparator % s,% s మరియు % s కు చెల్లని oparands."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
@@ -508,6 +509,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -686,7 +688,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -875,6 +877,10 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+msgid "Filter signals"
+msgstr ""
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -912,7 +918,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1086,6 +1092,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1107,6 +1116,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1570,15 +1587,15 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
+msgid "Node Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Node Dock"
+msgid "FileSystem Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1841,7 +1858,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2251,10 +2268,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2670,22 +2683,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2694,8 +2711,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2704,32 +2721,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2789,7 +2806,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3189,7 +3206,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -4913,7 +4931,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7495,7 +7513,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9472,6 +9490,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -9902,11 +9921,15 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -9952,7 +9975,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10010,7 +10033,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10116,6 +10139,10 @@ msgid "Make node as Root"
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr ""
@@ -11717,6 +11744,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -11929,6 +11962,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/th.po b/editor/translations/th.po
index 3af6fde5a0..d1afffd2cd 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -6,12 +6,13 @@
# Poommetee Ketson (Noshyaar) <poommetee@protonmail.com>, 2017-2018.
# Thanachart Monpassorn <nunf_2539@hotmail.com>, 2020.
# Anonymous <noreply@weblate.org>, 2020.
+# Lon3r <mptube.p@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-26 13:41+0000\n"
-"Last-Translator: Thanachart Monpassorn <nunf_2539@hotmail.com>\n"
+"PO-Revision-Date: 2020-08-28 13:09+0000\n"
+"Last-Translator: Lon3r <mptube.p@gmail.com>\n"
"Language-Team: Thai <https://hosted.weblate.org/projects/godot-engine/godot/"
"th/>\n"
"Language: th\n"
@@ -19,7 +20,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.1-dev\n"
+"X-Generator: Weblate 4.2.1-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -516,6 +517,7 @@ msgid "Seconds"
msgstr "วินาที"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "เฟรมเรท"
@@ -694,7 +696,7 @@ msgstr "ตรงตามอักษรพิมพ์เล็ก-ใหญ
msgid "Whole Words"
msgstr "ทั้งคำ"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "แทนที่"
@@ -744,9 +746,8 @@ msgid "Method in target node must be specified."
msgstr "ต้องระบุเมธอดในโหนดเป้าหมาย"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "ไม่สามารถใช้ชื่อนี้ได้:"
+msgstr "ไม่สามารถใช้ชื่อนี้ได้."
#: editor/connections_dialog.cpp
msgid ""
@@ -884,6 +885,11 @@ msgid "Signals"
msgstr "สัญญาณ"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "ตัวกรองไทล์"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -921,7 +927,7 @@ msgid "Recent:"
msgstr "ล่าสุด:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "ค้นหา:"
@@ -1101,6 +1107,9 @@ msgstr "ผู้ริเริ่มโครงการ"
msgid "Lead Developer"
msgstr "ผู้พัฒนาหลัก"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "ผู้จัดการโครงการ "
@@ -1122,6 +1131,16 @@ msgid "Gold Sponsors"
msgstr "ผู้สนับสนุนระดับทอง"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "ผู้บริจาคระดับเงิน"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "ผู้บริจาคระดับทองแดง"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "ผู้สนับสนุน"
@@ -1438,7 +1457,7 @@ msgstr "จัดลำดับออโต้โหลด"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr ""
+msgstr "เพิ่มออโต้โหลดไม่ได้:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1596,20 +1615,20 @@ msgstr "แก้ไขผังฉาก"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "Import Dock"
-msgstr "นำเข้า"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
msgstr "โหมดเคลื่อนย้าย"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "ระบบไฟล์"
#: editor/editor_feature_profile.cpp
+#, fuzzy
+msgid "Import Dock"
+msgstr "นำเข้า"
+
+#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
msgstr "ลบโปรไฟล์ '%s' หรือไม่? (ทำกลับไม่ได้)"
@@ -1869,7 +1888,7 @@ msgstr "ไฟล์และโฟลเดอร์:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "ตัวอย่าง:"
@@ -2051,7 +2070,7 @@ msgstr "กำหนด"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
-msgstr ""
+msgstr "กำหนด หลายอย่าง:"
#: editor/editor_log.cpp
msgid "Output:"
@@ -2103,19 +2122,21 @@ msgstr "โหนด"
#: editor/editor_network_profiler.cpp
msgid "Incoming RPC"
-msgstr ""
+msgstr "RPC กำลังมา"
#: editor/editor_network_profiler.cpp
msgid "Incoming RSET"
-msgstr ""
+msgstr "RSET กำลังมา"
#: editor/editor_network_profiler.cpp
+#, fuzzy
msgid "Outgoing RPC"
-msgstr ""
+msgstr "RPC กำลังออก"
#: editor/editor_network_profiler.cpp
+#, fuzzy
msgid "Outgoing RSET"
-msgstr ""
+msgstr "RSET กำลังออก"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "New Window"
@@ -2290,10 +2311,6 @@ msgid "There is no defined scene to run."
msgstr "ยังไม่ได้เลือกฉากที่จะเล่น"
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "ฉากปัจจุบันยังไม่ได้บันทึก กรุณาบันทึกก่อนเริ่มโปรแกรม"
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "ไม่สามารถเริ่มขั้นตอนย่อย!"
@@ -2723,22 +2740,28 @@ msgstr "ส่งออกพร้อมการแก้ไขจุดบก
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
-msgstr "เมื่อส่งออก โปรแกรมจะพยายามเชื่อมต่อมายังคอมพิวเตอร์เครื่องนี้เพื่อทำการแก้ไขจุดบกพร่อง"
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
+msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "ส่งออกโดยใช้ระบบไฟล์เครือข่าย"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"ถ้าเปิดตัวเลือกนี้ ตัวเกมที่ส่งออกจะมีขนาดแค่พอใช้งานได้\n"
"ตัวเกมจะได้รับระบบไฟล์จากโปรแกรมแก้ไขผ่านเครือข่าย\n"
@@ -2749,9 +2772,10 @@ msgid "Visible Collision Shapes"
msgstr "ขอบเขตการชนที่มองเห็นได้"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr "รูปทรงกายภาพและรังสี (2D และ 3D) จะมองเห็นได้ขณะเริ่มโปรแกรมถ้าเปิดตัวเลือกนี้"
#: editor/editor_node.cpp
@@ -2759,35 +2783,40 @@ msgid "Visible Navigation"
msgstr "แสดงการนำทาง"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr "รูปทรงที่มีเส้นนำทางจะมองเห็นได้เมื่อเริ่มโปรแกรมถ้าเปิดตัวเลือกนี้"
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "ซิงค์การเปลี่ยนแปลงฉาก"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"ถ้าเปิดตัวเลือกนี้ โปรแกรมที่รันอยู่จะได้รับการแก้ไขทันที\n"
"เมื่อใช้กับอุปกรณ์แบบรีโมท จะดีกว่าถ้าเปิดระบบไฟล์เครือข่ายด้วย"
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "ซิงค์การเปลี่ยนแปลงสคริปต์"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"เมื่อเปิดตัวเลือกนี้ สคริปต์ที่บันทึกจะโหลดในเกมทันที\n"
"ถ้าใช้กับอุปกรณ์รีโมท จะดีกว่าถ้าเปิดระบบไฟล์เครือข่ายด้วย"
@@ -2849,7 +2878,7 @@ msgstr "ช่วยเหลือ"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "ค้นหา"
@@ -3250,9 +3279,11 @@ msgid "Add Key/Value Pair"
msgstr "เพิ่มคู่ของคีย์/ค่า"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"ไม่มีแม่แบบส่งออกที่สามารถรันเกมได้ของแพลตฟอร์มนี้\n"
"กรุณาเพิ่มแม่แบบส่งออกในเมนูส่งออก"
@@ -5015,7 +5046,7 @@ msgid "Bake Lightmaps"
msgstr "สร้าง Lightmaps"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "ตัวอย่าง"
@@ -7754,7 +7785,8 @@ msgid "New Animation"
msgstr "แอนิเมชันใหม่"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "ความเร็ว (เฟรม/วินาที):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9849,6 +9881,7 @@ msgstr ""
"ทำการสแกนหาโปรเจกต์ ในโฟลเดอร์ %s หรือไม่?\n"
"อาจจะใช้เวลาสักครู่"
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "ตัวจัดการโปรเจกต์"
@@ -10289,11 +10322,18 @@ msgid "Batch Rename"
msgstr "เปลี่ยนชื่อ"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "แทนที่: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "คำนำหน้า"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "คำต่อท้าย"
#: editor/rename_dialog.cpp
@@ -10340,7 +10380,7 @@ msgid "Per-level Counter"
msgstr "ตัวนับต่อเลเวล"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10401,7 +10441,7 @@ msgstr "รีเซ็ตซูม"
#: editor/rename_dialog.cpp
#, fuzzy
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr "แก้ไขสมการ"
#: editor/rename_dialog.cpp
@@ -10508,6 +10548,11 @@ msgid "Make node as Root"
msgstr "ทำโหนดให้เป็นโหนดแม่"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "ลบโหนด \"%s\" และโหนดลูก?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "ลบโหนด %d ?"
@@ -12168,6 +12213,12 @@ msgid ""
"shape resource for it!"
msgstr "ต้องมีรูปทรงเพื่อให้ CollisionShape2D ทำงานได้ กรุณาสร้างรูปทรง!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12407,6 +12458,11 @@ msgstr ""
"ไดรเวอร์วีดีโอ GLES2 ไม่สนับสนุน GIProbe\n"
"ใช้ BakedLightmap แทน"
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12689,6 +12745,19 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "ค่าคงที่ไม่สามารถแก้ไขได้"
+#, fuzzy
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "ระบบไฟล์ และ นำเข้า"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "เมื่อส่งออก โปรแกรมจะพยายามเชื่อมต่อมายังคอมพิวเตอร์เครื่องนี้เพื่อทำการแก้ไขจุดบกพร่อง"
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "ฉากปัจจุบันยังไม่ได้บันทึก กรุณาบันทึกก่อนเริ่มโปรแกรม"
+
#~ msgid "Not in resource path."
#~ msgstr "ไม่อยู่ในโฟลเดอร์รีซอร์ส"
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index 27886e1d4d..c443d7bb94 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -47,12 +47,18 @@
# Anonymous <noreply@weblate.org>, 2020.
# Güneş Gümüş <gunes.gumus.001@gmail.com>, 2020.
# Oğuz Ersen <oguzersen@protonmail.com>, 2020.
+# Vedat Günel <gunel15@itu.edu.tr>, 2020.
+# Ahmet Elgün <ahmetelgn@gmail.com>, 2020.
+# Efruz Yıldırır <efruzyildirir@gmail.com>, 2020.
+# Hazar <duurkak@yandex.com>, 2020.
+# Mutlu ORAN <mutlu.oran66@gmail.com>, 2020.
+# Yusuf Osman YILMAZ <wolfkan4219@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-05-22 21:01+0000\n"
-"Last-Translator: Güneş Gümüş <gunes.gumus.001@gmail.com>\n"
+"PO-Revision-Date: 2020-09-15 07:17+0000\n"
+"Last-Translator: Yusuf Osman YILMAZ <wolfkan4219@gmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/"
"godot/tr/>\n"
"Language: tr\n"
@@ -60,7 +66,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.1-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -570,6 +576,7 @@ msgid "Seconds"
msgstr "Saniye"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -748,7 +755,7 @@ msgstr "Büyük/Küçük Harf Eşleştir"
msgid "Whole Words"
msgstr "Tam Kelimeler"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Değiştir"
@@ -798,9 +805,8 @@ msgid "Method in target node must be specified."
msgstr "Hedef düğümdeki metod tanımlanmalı."
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "Ad doğru bir belirleyici değil:"
+msgstr "Metod ismi geçerli bir tanımlayıcı değil."
#: editor/connections_dialog.cpp
msgid ""
@@ -941,6 +947,11 @@ msgid "Signals"
msgstr "Sinyaller"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Döşemelerde Bul"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Bu sinyalden, tüm bağlantıları kaldırmak istediğinizden emin misiniz?"
@@ -978,7 +989,7 @@ msgid "Recent:"
msgstr "Yakın zamanda:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Ara:"
@@ -1158,6 +1169,9 @@ msgstr "Projenin Kurucuları"
msgid "Lead Developer"
msgstr "Baş Geliştirici"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Proje Yöneticisi "
@@ -1179,6 +1193,16 @@ msgid "Gold Sponsors"
msgstr "Altın Sponsorlar"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Gümüş Bağışçılar"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Bronz Bağışçılar"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Mini Sponsorlar"
@@ -1497,7 +1521,7 @@ msgstr "KendindenYüklenme'leri Yeniden Sırala"
#: editor/editor_autoload_settings.cpp
msgid "Can't add autoload:"
-msgstr ""
+msgstr "Otomatik yükleme eklenemiyor:"
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1655,16 +1679,17 @@ msgid "Scene Tree Editing"
msgstr "Sahne Ağacı Düzenleme"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Dock İçe Aktar"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Dock Nod"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "DosyaSistemi ve İçe Aktarım"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "DosyaSistemi"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Dock İçe Aktar"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1927,7 +1952,7 @@ msgstr "Dizinler & Dosyalar:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Önizleme:"
@@ -1974,7 +1999,7 @@ msgstr "Şundan miras alındı:"
#: editor/editor_help.cpp
msgid "Description"
-msgstr "Tanım"
+msgstr "Açıklama"
#: editor/editor_help.cpp
msgid "Online Tutorials"
@@ -1994,7 +2019,7 @@ msgstr "varsayılan:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr "Metotlar"
+msgstr "Yöntemler"
#: editor/editor_help.cpp
msgid "Theme Properties"
@@ -2025,8 +2050,9 @@ msgstr ""
"bulunarak[/url][/color] yardım edebilirsiniz!"
#: editor/editor_help.cpp
+#, fuzzy
msgid "Method Descriptions"
-msgstr "Metot Açıklamaları"
+msgstr "Yöntem Açıklamaları"
#: editor/editor_help.cpp
msgid ""
@@ -2364,10 +2390,6 @@ msgid "There is no defined scene to run."
msgstr "Çalıştırmak için herhangi bir sahne seçilmedi."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "Şimdiki sahne hiç kaydedilmedi, lütfen çalıştırmadan önce kaydediniz."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Alt işlem başlatılamadı!"
@@ -2452,15 +2474,16 @@ msgid "Can't reload a scene that was never saved."
msgstr "Hiç kaydedilmemiş bir sahne yeniden yüklenemiyor."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Reload Saved Scene"
-msgstr "Sahne Kaydet"
+msgstr "Kaydedilmiş Sahneyi Yeniden Yükle"
#: editor/editor_node.cpp
msgid ""
"The current scene has unsaved changes.\n"
"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
+"Mevcut sahnede kaydedilmemiş değişiklikler var.\n"
+"Sahne yine de yeniden yüklensin mi? Bu işlem geri alınamaz."
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2806,24 +2829,28 @@ msgstr "Uzaktan Hata Ayıklama ile Dağıt"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Verilen yürütülebilir dosya, dışa aktarılırken veya dağıtıldığında, hata "
-"ayıklanacak şekilde bu bilgisayarın IP'sine bağlanmaya çalışacaktır."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Ağ DS ile Küçük Dağıtım"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Bu seçenek etkinleştirildiğinde, dışa aktarma veya dağıtma çok küçük bir "
"çalıştırılabilir dosya üretir.\n"
@@ -2836,9 +2863,10 @@ msgid "Visible Collision Shapes"
msgstr "Görünür Çarpışma Şekilleri"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Bu seçenek açıksa, çalışan oyunda çarpışma şekilleri ve raycast düğümleri "
"(2B ve 3B için) görünür olacaktır."
@@ -2848,23 +2876,26 @@ msgid "Visible Navigation"
msgstr "Görünür Yönlendirici"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Bu seçenek açıksa, çalışan oyunda yönlendirici örüntüleri ve çokgenler "
"görünür olacaktır."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Sahne Değişikliklerini Eş Zamanla"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Bu seçenek etkinleştirildiğinde, düzenleyicide bulunan sahnedeki "
"değişiklikler çalışmakta olan oyununda çoğaltılır.\n"
@@ -2872,15 +2903,17 @@ msgstr ""
"verimli olur."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Betik Değişikliklerini Eş Zamanla"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Bu seçenek etkinleştirildiğinde, kaydedilen tüm betik çalışan oyunda yeniden "
"yüklenecektir.\n"
@@ -2944,7 +2977,7 @@ msgstr "Yardım"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Ara"
@@ -3363,9 +3396,11 @@ msgid "Add Key/Value Pair"
msgstr "Anahtar/Değer İkilisini Ekle"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Çalıştırılabilir dışa aktarma önayarı bu platform için bulunamadı.\n"
"Lütfen dışa aktar menüsünden çalıştırılabilir bir önayar ekleyin."
@@ -3395,11 +3430,10 @@ msgid "Did you forget the '_run' method?"
msgstr "'_run()' metodunu unuttunuz mu?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Alıcı bırakmak için Ctrl'e basılı tutun. Genel imza bırakmak için Shift'e "
-"basılı tutun."
+"Tamsayılara yuvarlamak için Ctrl tuşunu basılı tutun. Hassas değişiklikler "
+"için Shift tuşunu basılı tutun."
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -4000,7 +4034,7 @@ msgstr "sonradan-içe aktarılmış betik çalıştırılırken hata:"
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
-msgstr ""
+msgstr "`Post_import ()` yönteminde Node türevi bir nesne döndürdünüz mü?"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -4024,7 +4058,7 @@ msgstr "Şu Şekilde İçe Aktar:"
#: editor/import_dock.cpp
msgid "Preset"
-msgstr "Önayar"
+msgstr "Ön ayar"
#: editor/import_dock.cpp
msgid "Reimport"
@@ -4037,7 +4071,7 @@ msgstr "Sahneleri kaydet, tekrar içe aktar ve baştan başlat"
#: editor/import_dock.cpp
msgid "Changing the type of an imported file requires editor restart."
msgstr ""
-"İçe aktarılmış dosyanın tipini değiştirmek editörü baştan başlatılmasını "
+"İçe aktarılmış dosyanın tipini değiştirmek editörü yeniden başlatmanı "
"gerektiriyor."
#: editor/import_dock.cpp
@@ -5135,7 +5169,7 @@ msgid "Bake Lightmaps"
msgstr "Işık-Haritalarını Pişir"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Önizleme"
@@ -6947,9 +6981,8 @@ msgstr ""
"'%s' düğümünden '%s' düğümüne, '%s' sinyali için '%s' bağlantı metodu eksik."
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "[Ignore]"
-msgstr "(gözardı et)"
+msgstr "[Gözardı et]"
#: editor/plugins/script_text_editor.cpp
msgid "Line"
@@ -7434,6 +7467,11 @@ msgid ""
"Closed eye: Gizmo is hidden.\n"
"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")."
msgstr ""
+"Görünürlük ifadelerini değiştirmek için tıklayın.\n"
+"\n"
+"Açık göz: Gizmo görünür.\n"
+"Kapalı göz: Gizmo görünmez.\n"
+"Yarı-açık göz: Gizmo aynı zamanda saydam yüzeylerden görünür (\"x-ray\")."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Nodes To Floor"
@@ -7773,7 +7811,8 @@ msgid "New Animation"
msgstr "Yeni Animasyon"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Hız (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9896,6 +9935,7 @@ msgstr ""
"misiniz?\n"
"Bu biraz zaman alabilir."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Proje Yöneticisi"
@@ -10335,11 +10375,18 @@ msgid "Batch Rename"
msgstr "Tümden Yeniden Adlandır"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Değiştir: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Ön Ek"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Son Ek"
#: editor/rename_dialog.cpp
@@ -10387,7 +10434,8 @@ msgid "Per-level Counter"
msgstr "Seviye Başına Sayaç"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Ayarlanmışsa, sayaç her bir alt düğüm grubu için yeniden başlar"
#: editor/rename_dialog.cpp
@@ -10447,7 +10495,8 @@ msgid "Reset"
msgstr "Sıfırla"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Düzenli İfade Hatası"
#: editor/rename_dialog.cpp
@@ -10519,9 +10568,8 @@ msgid "Instance Child Scene"
msgstr "Çocuk Sahnesini Örnekle"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach Script"
-msgstr "Betik İliştir"
+msgstr "Betiği Ayır"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
@@ -10558,6 +10606,10 @@ msgid "Make node as Root"
msgstr "Düğümü Kök düğüm yap"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "\"%s\" düğümü ve alt düğümleri silinsin mi?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "%d düğümleri silelim mi?"
@@ -10691,6 +10743,8 @@ msgid ""
"This is probably because this editor was built with all language modules "
"disabled."
msgstr ""
+"Bir yazı eklenemiyor: kayıtlı dil yok.\n"
+"Bu muhtemelen editor tüm dil modülleri kapalıyken kurulduğu için oldu."
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -10741,14 +10795,12 @@ msgstr ""
"alınmış bir sahne oluşturur."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script to the selected node."
-msgstr "Seçili düğüm için yeni veya mevcut bir betik iliştir."
+msgstr "Seçili düğüme yeni veya mevcut bir betik iliştir."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Detach the script from the selected node."
-msgstr "Seçilen düğüm için betik temizle."
+msgstr "Seçilen düğümden betiği ayır."
#: editor/scene_tree_dock.cpp
msgid "Remote"
@@ -12009,6 +12061,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr ""
+"Eklentileri kullanabilmek için \"Özel Derleme Kullan\" seçeneği aktif olmalı."
#: platform/android/export/export.cpp
msgid ""
@@ -12234,6 +12287,12 @@ msgstr ""
"CollisionShape2D'nin işlevini yerine getirmesi için ona bir şekil sağlanması "
"gerekmektedir. Lütfen onun için bir şekil kaynağı oluşturun!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12501,6 +12560,11 @@ msgstr ""
"GIProbes GLES2 video sürücüsü tarafından desteklenmez.\n"
"Bunun yerine bir BakedLightmap kullanın."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "90 dereceden geniş açılı SpotIşık gölge oluşturamaz."
@@ -12808,6 +12872,20 @@ msgstr "varyings yalnızca vertex işlevinde atanabilir."
msgid "Constants cannot be modified."
msgstr "Sabit değerler değiştirilemez."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "DosyaSistemi ve İçe Aktarım"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Verilen yürütülebilir dosya, dışa aktarılırken veya dağıtıldığında, hata "
+#~ "ayıklanacak şekilde bu bilgisayarın IP'sine bağlanmaya çalışacaktır."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Şimdiki sahne hiç kaydedilmedi, lütfen çalıştırmadan önce kaydediniz."
+
#~ msgid "Not in resource path."
#~ msgstr "Kaynak yolunda değil."
diff --git a/editor/translations/uk.po b/editor/translations/uk.po
index 03990a655e..417c5aeeeb 100644
--- a/editor/translations/uk.po
+++ b/editor/translations/uk.po
@@ -14,11 +14,12 @@
# Богдан Матвіїв <bomtvv@gmail.com>, 2019.
# Tymofij Lytvynenko <till.svit@gmail.com>, 2020.
# Vladislav Glinsky <cl0ne@mithril.org.ua>, 2020.
+# Микола Тимошенко <9081@ukr.net>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Ukrainian (Godot Engine)\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
+"PO-Revision-Date: 2020-09-05 09:37+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/"
"godot/uk/>\n"
@@ -28,7 +29,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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -545,6 +546,7 @@ msgid "Seconds"
msgstr "Секунди"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "Кадри за секунду"
@@ -723,7 +725,7 @@ msgstr "Враховувати регістр"
msgid "Whole Words"
msgstr "Цілі слова"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Замінити"
@@ -916,6 +918,11 @@ msgid "Signals"
msgstr "Сигнали"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Фільтрувати плитки"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Ви справді хочете вилучити усі з'єднання з цього сигналу?"
@@ -953,7 +960,7 @@ msgid "Recent:"
msgstr "Нещодавні:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Пошук:"
@@ -1135,6 +1142,9 @@ msgstr "Засновники проєкту"
msgid "Lead Developer"
msgstr "Ведучий розробник"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "Керівник проектів "
@@ -1156,6 +1166,14 @@ msgid "Gold Sponsors"
msgstr "Золоті спонсори"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "Срібні донори"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "Бронзові донори"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Міні-спонсори"
@@ -1632,16 +1650,17 @@ msgid "Scene Tree Editing"
msgstr "Редагування ієрархії сцени"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Бічна панель імпортування"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Бічна панель вузлів"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "Бічна панель файлової системи та імпортування"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "Файлова система"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Бічна панель імпортування"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1905,7 +1924,7 @@ msgstr "Каталоги та файли:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Попередній перегляд:"
@@ -2342,11 +2361,6 @@ msgid "There is no defined scene to run."
msgstr "Немає визначеної сцени для виконання."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"Поточна сцена ніколи не була збережена, будь ласка, збережіть її до запуску."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Не вдалося запустити підпроцес!"
@@ -2791,24 +2805,28 @@ msgstr "Розгортання за допомогою віддаленого н
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"При експорті або розгортанні, отриманий виконуваний файл буде намагатися "
-"підключитися до IP цього комп'ютера, для налагодження."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "Маленьке розгортання з Network File System"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"Якщо цей параметр увімкнено, експорт або розгортання дають мінімальний "
"виконуваний файл.\n"
@@ -2821,9 +2839,10 @@ msgid "Visible Collision Shapes"
msgstr "Видимі контури зіткнень"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
"Контури зіткнення та вузли raycast (для 2D та 3D) буде видно в роботі гри, "
"якщо ця опція увімкнена."
@@ -2833,23 +2852,26 @@ msgid "Visible Navigation"
msgstr "Видимі навігації"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
"Навігаційні полісітки та полігони будуть видимі у запущеній грі, якщо ця "
"опція увімкнена."
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "Синхронізувати зміни сцени"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Якщо цей параметр увімкнено, будь-які зміни, внесені в сцену в редакторі, "
"будуть відтворені в роботі гри.\n"
@@ -2857,15 +2879,17 @@ msgstr ""
"файловою системою."
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "Синхронізувати зміни в скрипті"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"Якщо цей параметр увімкнено, будь-який скрипт, який буде збережений, буде "
"перезавантажений у поточній грі.\n"
@@ -2929,7 +2953,7 @@ msgstr "Довідка"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Пошук"
@@ -3348,9 +3372,11 @@ msgid "Add Key/Value Pair"
msgstr "Додати пару ключ-значення"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"Не знайдено робочий експортер для цієї платформи.\n"
"Будь ласка, додайте його в меню експорту."
@@ -5122,7 +5148,7 @@ msgid "Bake Lightmaps"
msgstr "Запікати карти освітлення"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Попередній перегляд"
@@ -7774,7 +7800,8 @@ msgid "New Animation"
msgstr "Нова анімація"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "Частота (кадри за сек.):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9906,6 +9933,7 @@ msgstr ""
"Ви справді хочете виконати пошук у %s теках наявних проєктів Godot?\n"
"Пошук може бути доволі тривалим."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "Керівник проекту"
@@ -10345,11 +10373,18 @@ msgid "Batch Rename"
msgstr "Пакетне перейменування"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Замінити: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "Префікс"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "Суфікс"
#: editor/rename_dialog.cpp
@@ -10397,7 +10432,8 @@ msgid "Per-level Counter"
msgstr "Лічильник на рівень"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
"Якщо позначено, лічильник перезапускатиметься для кожної групи дочірніх "
"вузлів"
@@ -10459,7 +10495,8 @@ msgid "Reset"
msgstr "Скинути"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "Помилка у формальному виразі"
#: editor/rename_dialog.cpp
@@ -10569,6 +10606,10 @@ msgid "Make node as Root"
msgstr "Зробити вузол кореневим"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "Вилучити %d вузлів та усі їхні дочірні записи?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Вилучити %d вузлів?"
@@ -12015,7 +12056,7 @@ msgstr ""
#: platform/android/export/export.cpp
msgid "Invalid public key for APK expansion."
-msgstr "Неокректний відкритий ключ для розгортання APK."
+msgstr "Некоректний відкритий ключ для розгортання APK."
#: platform/android/export/export.cpp
msgid "Invalid package name:"
@@ -12275,6 +12316,15 @@ msgstr ""
"Для забезпечення працездатності CollisionShape2D слід надати форму. Будь "
"ласка, створіть ресурс форми для цього елемента!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"Засновані на багатокутниках форми не призначено для використання або "
+"редагування з вузла CollisionShape2D. Будь ласка, скористайтеся замість "
+"нього вузлом CollisionPolygon2D."
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12545,6 +12595,11 @@ msgstr ""
"У драйвері GLES2 не передбачено підтримки GIProbes.\n"
"Скористайтеся замість них BakedLightmap."
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight з кутом, який є більшим за 90 градусів, не може давати тіні."
@@ -12854,6 +12909,21 @@ msgstr "Змінні величини можна пов'язувати лише
msgid "Constants cannot be modified."
msgstr "Сталі не можна змінювати."
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "Бічна панель файлової системи та імпортування"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "При експорті або розгортанні, отриманий виконуваний файл буде намагатися "
+#~ "підключитися до IP цього комп'ютера, для налагодження."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr ""
+#~ "Поточна сцена ніколи не була збережена, будь ласка, збережіть її до "
+#~ "запуску."
+
#~ msgid "Not in resource path."
#~ msgstr "Не в ресурсному шляху."
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index 6985cbdc39..2859b66ac9 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -516,6 +516,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -696,7 +697,7 @@ msgstr ""
msgid "Whole Words"
msgstr ""
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr ""
@@ -892,6 +893,11 @@ msgid "Signals"
msgstr ""
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "سب سکریپشن بنائیں"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -930,7 +936,7 @@ msgid "Recent:"
msgstr ""
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr ""
@@ -1104,6 +1110,9 @@ msgstr ""
msgid "Lead Developer"
msgstr ""
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr ""
@@ -1125,6 +1134,14 @@ msgid "Gold Sponsors"
msgstr ""
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr ""
@@ -1594,16 +1611,16 @@ msgid "Scene Tree Editing"
msgstr ""
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr ""
-
-#: editor/editor_feature_profile.cpp
#, fuzzy
msgid "Node Dock"
msgstr "ایکشن منتقل کریں"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
+msgstr ""
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
msgstr ""
#: editor/editor_feature_profile.cpp
@@ -1878,7 +1895,7 @@ msgstr ""
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr ""
@@ -2296,10 +2313,6 @@ msgid "There is no defined scene to run."
msgstr ""
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2721,22 +2734,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2745,8 +2762,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2755,32 +2772,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2841,7 +2858,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr ""
@@ -3248,7 +3265,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -5014,7 +5032,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -7666,7 +7684,7 @@ msgid "New Animation"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9707,6 +9725,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -10143,11 +10162,15 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Prefix"
+msgid "Replace:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Prefix:"
+msgstr ""
+
+#: editor/rename_dialog.cpp
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10193,7 +10216,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10251,7 +10274,7 @@ msgid "Reset"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10359,6 +10382,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr ".اینیمیشن کی کیز کو ڈیلیٹ کرو"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr ".اینیمیشن کی کیز کو ڈیلیٹ کرو"
@@ -12011,6 +12039,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12223,6 +12257,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
diff --git a/editor/translations/vi.po b/editor/translations/vi.po
index ff214a7091..2b56df15ed 100644
--- a/editor/translations/vi.po
+++ b/editor/translations/vi.po
@@ -12,12 +12,16 @@
# Steve Dang <itsnguu@outlook.com>, 2019, 2020.
# Peter Anh <peteranh3105@gmail.com>, 2019.
# Dũng Đinh <dqdthanhthanh@gmail.com>, 2019.
+# Steve Dang <bynguu@outlook.com>, 2020.
+# Harry Mitchell <minhyh0987@gmail.com>, 2020.
+# HSGamer <huynhqtienvtag@gmail.com>, 2020.
+# LetterC67 <hoangdeptoong@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-02-02 08:51+0000\n"
-"Last-Translator: Steve Dang <itsnguu@outlook.com>\n"
+"PO-Revision-Date: 2020-08-11 14:04+0000\n"
+"Last-Translator: LetterC67 <hoangdeptoong@gmail.com>\n"
"Language-Team: Vietnamese <https://hosted.weblate.org/projects/godot-engine/"
"godot/vi/>\n"
"Language: vi\n"
@@ -25,16 +29,16 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.11-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Hàm convert() có đối số không hợp lệ, sử dụng các hằng TYPE_*."
+msgstr "Hàm convert() có loại đối số không hợp lệ, sử dụng các hằng TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
-msgstr ""
+msgstr "Mong đợi một chuỗi có độ dài 01 ký tự."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/mono/glue/gd_glue.cpp
@@ -72,31 +76,31 @@ msgstr "Khi cuộc gọi đến '%s':"
#: core/ustring.cpp
msgid "B"
-msgstr ""
+msgstr "B"
#: core/ustring.cpp
msgid "KiB"
-msgstr ""
+msgstr "KiB"
#: core/ustring.cpp
msgid "MiB"
-msgstr ""
+msgstr "MiB"
#: core/ustring.cpp
msgid "GiB"
-msgstr ""
+msgstr "GiB"
#: core/ustring.cpp
msgid "TiB"
-msgstr ""
+msgstr "TiB"
#: core/ustring.cpp
msgid "PiB"
-msgstr ""
+msgstr "PiB"
#: core/ustring.cpp
msgid "EiB"
-msgstr ""
+msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
@@ -120,7 +124,7 @@ msgstr "Giá trị:"
#: editor/animation_bezier_editor.cpp
msgid "Insert Key Here"
-msgstr "Thêm Khoá Tại Đây"
+msgstr "Chèn Khóa Tại Đây"
#: editor/animation_bezier_editor.cpp
msgid "Duplicate Selected Key(s)"
@@ -136,23 +140,23 @@ msgstr "Thêm điểm Bezier"
#: editor/animation_bezier_editor.cpp
msgid "Move Bezier Points"
-msgstr "Di chuyển điểm Bezier"
+msgstr "Di chuyển các điểm Bezier"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "Nhân đôi Các Key của Animation"
+msgstr "Nhân đôi các Animation Key"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
-msgstr "Xóa phím Anim"
+msgstr "Xóa các Animation Key"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Time"
-msgstr "Đổi thời gian khung hình"
+msgstr "Đổi thời gian khung hình Animation"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transition"
-msgstr "Đổi Transition Animation"
+msgstr "Đổi Animation Chuyển tiếp"
#: editor/animation_track_editor.cpp
msgid "Anim Change Transform"
@@ -160,7 +164,7 @@ msgstr "Đổi Transform Animation"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Value"
-msgstr "Đổi giá trị khung hình"
+msgstr "Đổi giá trị khung hình Animation"
#: editor/animation_track_editor.cpp
msgid "Anim Change Call"
@@ -530,6 +534,7 @@ msgid "Seconds"
msgstr "Giây"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -713,7 +718,7 @@ msgstr "Khớp Trường Hợp"
msgid "Whole Words"
msgstr "Cả từ"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "Thay thế"
@@ -907,6 +912,11 @@ msgid "Signals"
msgstr "Tín hiệu (Signal)"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "Lọc tệp tin ..."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "Bạn có chắc muốn xóa bỏ tất cả kết nối từ tín hiệu này?"
@@ -944,7 +954,7 @@ msgid "Recent:"
msgstr "Gần đây:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "Tìm kiếm:"
@@ -1118,15 +1128,18 @@ msgstr "Đóng góp vào Godot Engine"
#: editor/editor_about.cpp
msgid "Project Founders"
-msgstr "Sáng lập dự án"
+msgstr "Các đồng sáng lập dự án"
#: editor/editor_about.cpp
msgid "Lead Developer"
msgstr "Phát triển chính"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
-msgstr "Quản lí dự án "
+msgstr "Quản lí Dự án "
#: editor/editor_about.cpp
msgid "Developers"
@@ -1145,6 +1158,16 @@ msgid "Gold Sponsors"
msgstr "Nhà tài trợ Vàng"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "Người ủng hộ Bạc"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "Người ủng hộ Đồng"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "Nhà tài trợ Nhỏ"
@@ -1567,12 +1590,16 @@ msgid ""
"Target platform requires 'ETC' texture compression for GLES2. Enable 'Import "
"Etc' in Project Settings."
msgstr ""
+"Nền tảng yêu cầu dùng kiểu nén 'ETC' cho GLES2. Bật 'Nhập ETC' trong Cài đặt "
+"Dự án."
#: editor/editor_export.cpp
msgid ""
"Target platform requires 'ETC2' texture compression for GLES3. Enable "
"'Import Etc 2' in Project Settings."
msgstr ""
+"Nền tảng yêu cầu dùng kiểu nén 'ETC2' cho GLES3. Bật 'Nhập ETC2' trong Cài "
+"đặt Dự án."
#: editor/editor_export.cpp
msgid ""
@@ -1581,6 +1608,9 @@ msgid ""
"Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback "
"Enabled'."
msgstr ""
+"Nền tảng yêu cầu kiểu nén 'ETC' cho trình điều khiển dự phòng GLES2.\n"
+"Chọn kích hoạt 'Nhập ETC' trong Cài đặt Dự án, hoặc chọn tắt 'Kích hoạt "
+"Trình điều khiển Dự phòng'."
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
@@ -1619,19 +1649,19 @@ msgid "Scene Tree Editing"
msgstr "Chỉnh sửa cảnh"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "Nhập vào"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "Nút"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "Hệ thống tập tin"
#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "Nhập vào"
+
+#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
msgstr "Xoá hồ sơ '%s'? (không hoàn tác)"
@@ -1899,7 +1929,7 @@ msgstr "Các Thư mục và Tệp tin:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "Xem thử:"
@@ -2340,10 +2370,6 @@ msgid "There is no defined scene to run."
msgstr "Không có cảnh được xác định để chạy."
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "Cảnh hiện tại chưa được lưu, hãy lưu nó trước khi chạy."
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "Không thể bắt đầu quá trình nhỏ!"
@@ -2452,7 +2478,7 @@ msgstr "Thoát trình biên tập?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
-msgstr "Mở Quản lý dự án?"
+msgstr "Mở Quản lý Dự án?"
#: editor/editor_node.cpp
msgid "Save & Quit"
@@ -2464,7 +2490,7 @@ msgstr "Lưu thay đổi trong các scene sau trước khi thoát?"
#: editor/editor_node.cpp
msgid "Save changes the following scene(s) before opening Project Manager?"
-msgstr "Lưu thay đổi trong các scene sau trước khi mở Project Manager?"
+msgstr "Lưu thay đổi trong các cảnh sau trước khi mở Quản lí Dự án?"
#: editor/editor_node.cpp
msgid ""
@@ -2527,7 +2553,7 @@ msgid ""
"Error loading scene, it must be inside the project path. Use 'Import' to "
"open the scene, then save it inside the project path."
msgstr ""
-"Lỗi nạp cảnh, nó phải trong đường dẫn dự án. Sử dụng 'Nhập vào' để mở cảnh, "
+"Lỗi nạp cảnh, nó phải trong đường dẫn dự án. Sử dụng 'Nhập' để mở các cảnh, "
"sau đó lưu lại trong đường dẫn dự án."
#: editor/editor_node.cpp
@@ -2554,7 +2580,7 @@ msgid ""
"category."
msgstr ""
"Cảnh đã chọn '%s' không tồn tại, chọn một cảnh hợp lệ?\n"
-"Bạn có thể thay đổi nó sau trong \"Cài đặt dự án\", nằm trong mục 'ứng dụng'."
+"Bạn có thể thay đổi nó sau trong \"Cài đặt Dự án\", nằm trong mục 'ứng dụng'."
#: editor/editor_node.cpp
msgid ""
@@ -2562,8 +2588,8 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"Chọn '%s' không phải một tệp cảnh, chọn tệp cảnh hợp lệ?\n"
-"Bạn có thể thay đổi nó sau trong \"Cài đặt dự án\", nằm trong mục 'ứng dụng'."
+"'%s' không phải một tệp phân cảnh, chọn tệp phân cảnh hợp lệ?\n"
+"Bạn có thể thay đổi nó sau trong \"Cài đặt Dự án\", nằm trong mục 'ứng dụng'."
#: editor/editor_node.cpp
msgid "Save Layout"
@@ -2717,17 +2743,16 @@ msgstr "Làm lại"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
-msgstr ""
+msgstr "Linh tinh dự án hoặc công cụ toàn phân cảnh."
#: editor/editor_node.cpp editor/project_manager.cpp
#: editor/script_create_dialog.cpp
msgid "Project"
-msgstr "Dự án"
+msgstr "Dự Án"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Project Settings..."
-msgstr "List Project"
+msgstr "Cài đặt Dự Án"
#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp
#, fuzzy
@@ -2754,7 +2779,7 @@ msgstr "Cài đặt mẫu xây dựng Android"
#: editor/editor_node.cpp
msgid "Open Project Data Folder"
-msgstr "Mở thư mục dữ liệu dự án"
+msgstr "Mở Thư mục dữ liệu của Dự Án"
#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp
msgid "Tools"
@@ -2767,7 +2792,7 @@ msgstr "Lưu tài nguyên thành ..."
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr "Thoát danh sách dự án"
+msgstr "Thoát khỏi Danh sách Dự án"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
#: editor/project_export.cpp
@@ -2780,25 +2805,33 @@ msgstr "Triển khai gỡ lỗi từ xa"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"Khi xuất ra hoặc triển khai, kết quả thực thi sẽ kết nối đến IP máy tính này "
-"để được gỡ lỗi."
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
+"Khi tuỳ chọn này được bật, lúc xuất hoặc triển khai sẽ tạo một tệp thực thi "
+"tối giản nhất.\n"
+"Hệ thống tệp tin sẽ được cung cấp từ dự án bởi trình soạn thảo qua mạng.\n"
+"Trên nền tảng Android, triển khai sẽ sử dụng cáp USB để có hiệu suất nhanh "
+"hơn. Tuỳ chọn này tăng tốc độ khi thử nghiệm cho các trò chơi nặng."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
@@ -2806,8 +2839,8 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2816,32 +2849,32 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+msgid "Synchronize Script Changes"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2893,9 +2926,8 @@ msgid "Manage Editor Features..."
msgstr "Quản lý tính năng Trình biên tập"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Manage Export Templates..."
-msgstr "Quản lý mẫu Xuất ra"
+msgstr "Quản lý Các Mẫu Xuất Bản ..."
#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
msgid "Help"
@@ -2906,7 +2938,7 @@ msgstr "Trợ giúp"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "Tìm kiếm"
@@ -3005,7 +3037,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Inspector"
-msgstr "Quản lý đối tượng"
+msgstr "Quan Sát Viên"
#: editor/editor_node.cpp
msgid "Expand Bottom Panel"
@@ -3022,10 +3054,11 @@ msgstr "Không Lưu"
#: editor/editor_node.cpp
msgid "Android build template is missing, please install relevant templates."
msgstr ""
+"Mẫu xuất bản cho Android bị thiếu, vui lòng cài các mẫu xuất bản liên quan."
#: editor/editor_node.cpp
msgid "Manage Templates"
-msgstr "Quản lý Mẫu"
+msgstr "Quản lý Mẫu xuất bản"
#: editor/editor_node.cpp
msgid ""
@@ -3037,6 +3070,12 @@ msgid ""
"the \"Use Custom Build\" option should be enabled in the Android export "
"preset."
msgstr ""
+"Điều này sẽ thiết lập dự án của bạn cho các bản dựng Android tùy chỉnh bằng "
+"cách cài đặt nguồn mẫu thành \"res://android/build\".\n"
+"Bạn có thể áp dụng các sửa đổi và xây dựng APK tùy chỉnh khi xuất (thêm các "
+"mô-đun, thay đổi AndroidManifest.xml, ...).\n"
+"Lưu ý rằng để tạo các bản dựng tùy chỉnh, tùy chọn \"Sử dụng Bản dựng Tùy "
+"chỉnh\" phải được BẬT trong Cài đặt xuất Android."
#: editor/editor_node.cpp
msgid ""
@@ -3045,15 +3084,17 @@ msgid ""
"Remove the \"res://android/build\" directory manually before attempting this "
"operation again."
msgstr ""
+"Mẫu bản dựng cho Android đã được cài đặt trong dự án này sẽ không bị ghi "
+"đè.\n"
+"Xóa thủ công thư mục \"res://android/build\" trước khi thử lại thao tác này."
#: editor/editor_node.cpp
msgid "Import Templates From ZIP File"
-msgstr "Nhập mẫu vào từ tệp nén ZIP"
+msgstr "Nạp các mẫu xuất bản bằng tệp ZIP"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Template Package"
-msgstr "Khung project"
+msgstr "Gói Ví Dụ"
#: editor/editor_node.cpp
msgid "Export Library"
@@ -3315,7 +3356,8 @@ msgstr "Thêm cặp Khoá/Giá trị"
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -3382,7 +3424,7 @@ msgstr "Tải"
#: editor/export_template_manager.cpp
msgid "Official export templates aren't available for development builds."
-msgstr ""
+msgstr "Các mẫu xuất bản chính thức không có sẵn cho các bản dựng phát triển."
#: editor/export_template_manager.cpp
msgid "(Missing)"
@@ -3402,23 +3444,23 @@ msgstr "Xóa template phiên bản '%s'?"
#: editor/export_template_manager.cpp
msgid "Can't open export templates zip."
-msgstr ""
+msgstr "Không thể mở tệp zip các mẫu xuất bản."
#: editor/export_template_manager.cpp
msgid "Invalid version.txt format inside templates: %s."
-msgstr ""
+msgstr "Định dạng version.txt không hợp lệ bên trong các mẫu xuất bản: %s."
#: editor/export_template_manager.cpp
msgid "No version.txt found inside templates."
-msgstr "Không thấy version.txt trong templates."
+msgstr "Không thấy version.txt trong các mẫu xuất bản."
#: editor/export_template_manager.cpp
msgid "Error creating path for templates:"
-msgstr ""
+msgstr "Lỗi tạo đường dẫn đến các mẫu xuất bản:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
-msgstr ""
+msgstr "Trích xuất các Mẫu xuất bản"
#: editor/export_template_manager.cpp
msgid "Importing:"
@@ -3480,6 +3522,8 @@ msgid ""
"Templates installation failed.\n"
"The problematic templates archives can be found at '%s'."
msgstr ""
+"Cài đặt các mẫu xuất bản thất bại.\n"
+"Các lưu trữ mẫu xuất bản có vấn đề có thể được tìm thấy tại '%s'."
#: editor/export_template_manager.cpp
#, fuzzy
@@ -3558,9 +3602,8 @@ msgid "Select Template File"
msgstr "Chọn file template"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Godot Export Templates"
-msgstr "Quản lý mẫu Xuất ra"
+msgstr "Các mẫu xuất bản Godot"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
@@ -3568,7 +3611,7 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Download Templates"
-msgstr "Tải các Mẫu"
+msgstr "Tải Xuống Các Mẫu Xuất Bản"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: (Shift+Click: Open in Browser)"
@@ -3780,8 +3823,8 @@ msgid ""
"Include the files with the following extensions. Add or remove them in "
"ProjectSettings."
msgstr ""
-"Bao gồm các tệp tin với các phần mở rộng sau. Thêm hoặc loại bỏ chúng trong "
-"Cài đặt Dự án."
+"Bao gồm các tệp tin với các phần mở rộng. Thêm hoặc loại bỏ chúng trong Cài "
+"đặt Dự án."
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -5092,7 +5135,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "Xem thử"
@@ -7765,7 +7808,7 @@ msgid "New Animation"
msgstr "Tạo Animation mới"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9412,6 +9455,8 @@ msgid ""
"Failed to export the project for platform '%s'.\n"
"Export templates seem to be missing or invalid."
msgstr ""
+"Không thể xuất bản dự án cho nền tảng '%s'.\n"
+"Mẫu xuất bản dường như bị thiếu hoặc không hợp lệ."
#: editor/project_export.cpp
msgid ""
@@ -9419,6 +9464,9 @@ msgid ""
"This might be due to a configuration issue in the export preset or your "
"export settings."
msgstr ""
+"Không thể xuất dự án cho nền tảng '%s'.\n"
+"Có thể là do vấn đề cấu hình trong cài đặt xuất bản hoặc cài đặt xuất bản "
+"của bạn."
#: editor/project_export.cpp
msgid "Release"
@@ -9434,7 +9482,7 @@ msgstr ""
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted:"
-msgstr ""
+msgstr "Các mẫu xuất bản cho nền tảng này bị thiếu/hỏng:"
#: editor/project_export.cpp
msgid "Presets"
@@ -9461,7 +9509,7 @@ msgstr ""
#: editor/project_export.cpp
msgid "Export all resources in the project"
-msgstr ""
+msgstr "Xuất ra tất cả tài nguyên dùng trong dự án"
#: editor/project_export.cpp
msgid "Export selected scenes (and dependencies)"
@@ -9490,6 +9538,8 @@ msgid ""
"Filters to exclude files/folders from project\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
+"Bộ lọc loại trừ các tệp tin/thư mục khỏi từ dự án\n"
+"(phân tách bằng dấu phẩy, ví dụ: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
msgid "Patches"
@@ -9551,7 +9601,7 @@ msgstr ""
#: editor/project_export.cpp
msgid "Export Project"
-msgstr "Xuất dự án ra"
+msgstr "Xuất bản Dự án"
#: editor/project_export.cpp
msgid "Export mode?"
@@ -9573,11 +9623,11 @@ msgstr ""
#: editor/project_export.cpp
msgid "Export templates for this platform are missing:"
-msgstr ""
+msgstr "Các mẫu xuất bản cho nền tảng này bị thiếu:"
#: editor/project_export.cpp
msgid "Manage Export Templates"
-msgstr "Quản lý mẫu Xuất ra"
+msgstr "Quản Lý Các Mẫu Xuất Bản"
#: editor/project_export.cpp
msgid "Export With Debug"
@@ -9597,6 +9647,7 @@ msgstr "Lỗi không thể mở gói, không phải dạng nén."
msgid ""
"Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file."
msgstr ""
+"Tệp dự án \".zip\" không hợp lệ; trong nó không chứa tệp \"project.godot\"."
#: editor/project_manager.cpp
msgid "Please choose an empty folder."
@@ -9604,24 +9655,23 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Please choose a \"project.godot\" or \".zip\" file."
-msgstr ""
+msgstr "Chọn tệp \"project.godot\" hoặc tệp \".zip\"."
#: editor/project_manager.cpp
msgid "This directory already contains a Godot project."
-msgstr ""
+msgstr "Thư mục này đã chứa một dự án Godot."
#: editor/project_manager.cpp
msgid "New Game Project"
-msgstr ""
+msgstr "Dự án Trò chơi Mới"
#: editor/project_manager.cpp
msgid "Imported Project"
-msgstr ""
+msgstr "Đã nạp Dự án"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid Project Name."
-msgstr "Kích thước font không hợp lệ."
+msgstr "Tên dự án không hợp lệ."
#: editor/project_manager.cpp
msgid "Couldn't create folder."
@@ -9633,33 +9683,35 @@ msgstr ""
#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
-msgstr ""
+msgstr "Nó là một ý tưởng tuyệt để đặt tên cho dự án của bạn."
#: editor/project_manager.cpp
msgid "Invalid project path (changed anything?)."
-msgstr ""
+msgstr "Đường dẫn dự án không hợp lệ (bạn có thay đổi điều gì?)."
#: editor/project_manager.cpp
msgid ""
"Couldn't load project.godot in project path (error %d). It may be missing or "
"corrupted."
msgstr ""
+"Không thể nạp 'project.godot' trong đường dẫn dự án (lỗi %d). Nó có thể bị "
+"thiếu hoặc đã hỏng."
#: editor/project_manager.cpp
msgid "Couldn't edit project.godot in project path."
-msgstr ""
+msgstr "Không thể chỉnh sửa 'project.godot' trong đường dẫn dự án."
#: editor/project_manager.cpp
msgid "Couldn't create project.godot in project path."
-msgstr ""
+msgstr "Không thể tạo 'project.godot' trong đường dẫn dự án."
#: editor/project_manager.cpp
msgid "Rename Project"
-msgstr ""
+msgstr "Đổi tên Dự án"
#: editor/project_manager.cpp
msgid "Import Existing Project"
-msgstr ""
+msgstr "Nạp Dự án có sẵn"
#: editor/project_manager.cpp
msgid "Import & Edit"
@@ -9667,7 +9719,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Create New Project"
-msgstr ""
+msgstr "Tạo mới Dự án"
#: editor/project_manager.cpp
msgid "Create & Edit"
@@ -9675,7 +9727,7 @@ msgstr "Tạo & Sửa"
#: editor/project_manager.cpp
msgid "Install Project:"
-msgstr ""
+msgstr "Cài đặt Dự án:"
#: editor/project_manager.cpp
msgid "Install & Edit"
@@ -9683,15 +9735,15 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Project Name:"
-msgstr ""
+msgstr "Tên Dự án:"
#: editor/project_manager.cpp
msgid "Project Path:"
-msgstr ""
+msgstr "Đường dẫn Dự án:"
#: editor/project_manager.cpp
msgid "Project Installation Path:"
-msgstr ""
+msgstr "Đường dẫn cài đặt Dự án:"
#: editor/project_manager.cpp
msgid "Renderer:"
@@ -9727,25 +9779,23 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Unnamed Project"
-msgstr ""
+msgstr "Dự án không tên"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Missing Project"
-msgstr "Dự án"
+msgstr "Dự án bị lỗi"
#: editor/project_manager.cpp
msgid "Error: Project is missing on the filesystem."
-msgstr ""
+msgstr "Lỗi: Dự án bị thiếu trên hệ thống tệp tin."
#: editor/project_manager.cpp
-#, fuzzy
msgid "Can't open project at '%s'."
-msgstr "Không thể chạy project"
+msgstr "Không thể mở dự án tại '%s'."
#: editor/project_manager.cpp
msgid "Are you sure to open more than one project?"
-msgstr ""
+msgstr "Bạn chắc chắn mở nhiều hơn một dự án?"
#: editor/project_manager.cpp
msgid ""
@@ -9759,6 +9809,13 @@ msgid ""
"Warning: You won't be able to open the project with previous versions of the "
"engine anymore."
msgstr ""
+"Tệp dự án không chỉ định phiên bản Godot mà nó được tạo.\n"
+"\n"
+"%s\n"
+"\n"
+"Nếu bạn vẫn tiến hành mở dự án, tệp dự án sẽ được chuyển đổi sang cấu hình "
+"Godot hiện tại.\n"
+"Cảnh báo: Bạn sẽ không thể mở dự án với các phiên bản cũ của Godot nữa."
#: editor/project_manager.cpp
msgid ""
@@ -9771,12 +9828,21 @@ msgid ""
"Warning: You won't be able to open the project with previous versions of the "
"engine anymore."
msgstr ""
+"Tệp dự án được tạo bởi phiên bản Godot cũ và cần được chuyển đổi cho phiên "
+"bản này:\n"
+"\n"
+"%s\n"
+"\n"
+"Bạn có muốn chuyển đổi nó?\n"
+"Cảnh báo: Bạn sẽ không thể mở dự án với các phiên bản Godot cũ nữa."
#: editor/project_manager.cpp
msgid ""
"The project settings were created by a newer engine version, whose settings "
"are not compatible with this version."
msgstr ""
+"Các cài đặt dự án đã được tạo bởi phiên bản Godot mới, có các cài đặt không "
+"tương thích với phiên bản này."
#: editor/project_manager.cpp
msgid ""
@@ -9784,53 +9850,68 @@ msgid ""
"Please edit the project and set the main scene in the Project Settings under "
"the \"Application\" category."
msgstr ""
+"Không thể chạy dự án: chưa chọn phân cảnh chính.\n"
+"Để chọn phân cảnh chính, mở \"Cài đặt Dự án\" sau đó vào mục \"Ứng dụng\"."
#: editor/project_manager.cpp
msgid ""
"Can't run project: Assets need to be imported.\n"
"Please edit the project to trigger the initial import."
msgstr ""
+"Không thể chạy dự án: Các tài sản chưa được nạp.\n"
+"Vui lòng thiết lập dự án để kích hoạt nạp tài sản ban đầu."
#: editor/project_manager.cpp
msgid "Are you sure to run %d projects at once?"
-msgstr ""
+msgstr "Bạn có chắc chắn chạy các dự án %d cùng lúc?"
#: editor/project_manager.cpp
msgid ""
"Remove %d projects from the list?\n"
"The project folders' contents won't be modified."
msgstr ""
+"Gỡ các dự án %d khỏi danh sách?\n"
+"Nội dung các thư mục dự án sẽ không được sửa đổi."
#: editor/project_manager.cpp
msgid ""
"Remove this project from the list?\n"
"The project folder's contents won't be modified."
msgstr ""
+"Gỡ dự án này khỏi danh sách?\n"
+"Nội dung của thư mục dự án sẽ không được sửa đổi."
#: editor/project_manager.cpp
msgid ""
"Remove all missing projects from the list?\n"
"The project folders' contents won't be modified."
msgstr ""
+"Gỡ tất cả dự án bị hỏng khỏi danh sách?\n"
+"Nội dung các thư mục dự án sẽ không bị sửa đổi."
#: editor/project_manager.cpp
msgid ""
"Language changed.\n"
"The interface will update after restarting the editor or project manager."
msgstr ""
+"Đã thay đổi ngôn ngữ.\n"
+"Giao diện sẽ cập nhật sau khi khởi động lại trình biên tập hoặc trình quản "
+"lí dự án."
#: editor/project_manager.cpp
msgid ""
"Are you sure to scan %s folders for existing Godot projects?\n"
"This could take a while."
msgstr ""
+"Bạn có chắc chắn quét các thư mục %s để tìm các dự án Godot có sẵn?\n"
+"Điều này sẽ mất chút thời gian."
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
-msgstr ""
+msgstr "Trình quản lý Dự án"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Projects"
msgstr "Dự án"
@@ -9848,7 +9929,7 @@ msgstr "Chọn một Folder để Quét"
#: editor/project_manager.cpp
msgid "New Project"
-msgstr "Tạo Project"
+msgstr "Tạo Dự Án"
#: editor/project_manager.cpp
#, fuzzy
@@ -9857,7 +9938,7 @@ msgstr "Xóa Animation"
#: editor/project_manager.cpp
msgid "Templates"
-msgstr "Khung project"
+msgstr "Thư Viện"
#: editor/project_manager.cpp
msgid "Restart Now"
@@ -9865,16 +9946,15 @@ msgstr "Restart ngay"
#: editor/project_manager.cpp
msgid "Can't run project"
-msgstr "Không thể chạy project"
+msgstr "Không thể chạy dự án"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"You currently don't have any projects.\n"
"Would you like to explore official example projects in the Asset Library?"
msgstr ""
-"Hiện giờ bạn không có project nào.\n"
-"Bạn có muốn xem các project official ví dụ trên Asset Library không?"
+"Hiện tại bạn không có bất kỳ dự án nào.\n"
+"Bạn có muốn xem qua các dự án ví dụ trên Thư Viện không?"
#: editor/project_manager.cpp
msgid ""
@@ -9882,6 +9962,9 @@ msgid ""
"To filter projects by name and full path, the query must contain at least "
"one `/` character."
msgstr ""
+"Hộp tìm kiếm lọc các dự án theo tên và phần cuối đường dẫn.\n"
+"Để lọc các dự án theo tên và đường dẫn đầy đủ, truy vấn phải chứa ít nhất "
+"một ký tự '/'."
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -10107,7 +10190,7 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Project Settings (project.godot)"
-msgstr ""
+msgstr "Cài đặt Dự án (project.godot)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "General"
@@ -10265,11 +10348,16 @@ msgid "Batch Rename"
msgstr "Đổi tên"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "Thay thế: "
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10316,7 +10404,8 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "Nếu đặt bộ đếm khởi động lại cho từng nhóm nút con"
#: editor/rename_dialog.cpp
@@ -10376,8 +10465,9 @@ msgid "Reset"
msgstr "Đặt lại phóng"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
-msgstr ""
+#, fuzzy
+msgid "Regular Expression Error:"
+msgstr "Phiên bản hiện tại:"
#: editor/rename_dialog.cpp
#, fuzzy
@@ -10488,6 +10578,11 @@ msgid "Make node as Root"
msgstr "Gán nút là nút Gốc"
#: editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "Xoá nút \"%s\" và các nút con của nó?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "Xoá %d nút?"
@@ -10906,9 +11001,8 @@ msgid "Class Name:"
msgstr "Lớp:"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Template:"
-msgstr "Khung project"
+msgstr "Bản mẫu:"
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -11941,6 +12035,8 @@ msgid ""
"Android build template not installed in the project. Install it from the "
"Project menu."
msgstr ""
+"Mẫu xuất bản cho Android chưa được cài đặt trong dự án. Cài đặt nó từ menu "
+"Dự Án."
#: platform/android/export/export.cpp
msgid "Invalid public key for APK expansion."
@@ -11982,6 +12078,8 @@ msgid ""
"Trying to build from a custom built template, but no version info for it "
"exists. Please reinstall from the 'Project' menu."
msgstr ""
+"Cố gắng xây dựng từ một mẫu xuất bản tùy chỉnh, nhưng không có thông tin "
+"phiên bản nào tồn tại. Vui lòng cài đặt lại từ menu 'Dự án'."
#: platform/android/export/export.cpp
msgid ""
@@ -11990,16 +12088,22 @@ msgid ""
" Godot Version: %s\n"
"Please reinstall Android build template from 'Project' menu."
msgstr ""
+"Phiên bản xây dựng Android không khớp:\n"
+" Mẫu xuất bản được cài đặt: %s\n"
+" Phiên bản Godot sử dụng: %s\n"
+"Vui lòng cài đặt lại mẫu xuất bản Android từ menu 'Dự Án'."
#: platform/android/export/export.cpp
msgid "Building Android Project (gradle)"
-msgstr ""
+msgstr "Đang dựng dự án Android (gradle)"
#: platform/android/export/export.cpp
msgid ""
"Building of Android project failed, check output for the error.\n"
"Alternatively visit docs.godotengine.org for Android build documentation."
msgstr ""
+"Xây dựng dự án Android không thành công, kiểm tra lỗi đầu ra.\n"
+"Hoặc truy cập 'docs.godotengine.org' xem tài liệu xây dựng Android."
#: platform/android/export/export.cpp
msgid "No build apk generated at: "
@@ -12015,7 +12119,7 @@ msgstr ""
#: platform/iphone/export/export.cpp
msgid "App Store Team ID not specified - cannot configure the project."
-msgstr ""
+msgstr "App Store Team ID không được chỉ định - không thể cấu hình dự án."
#: platform/iphone/export/export.cpp
#, fuzzy
@@ -12163,6 +12267,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12375,6 +12485,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -12521,7 +12636,7 @@ msgstr ""
#: scene/gui/color_picker.cpp
msgid "Pick a color from the editor window."
-msgstr ""
+msgstr "Chọn một màu từ cửa sổ biên tập"
#: scene/gui/color_picker.cpp
msgid "HSV"
@@ -12591,6 +12706,8 @@ msgid ""
"Default Environment as specified in Project Settings (Rendering -> "
"Environment -> Default Environment) could not be loaded."
msgstr ""
+"Environment mặc định được chỉ định trong Cài đặt Dự án (Rendering -> "
+"Environment -> Default Environment) không thể nạp được."
#: scene/main/viewport.cpp
msgid ""
@@ -12633,6 +12750,16 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Không thể chỉnh sửa hằng số."
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "Khi xuất ra hoặc triển khai, kết quả thực thi sẽ kết nối đến IP máy tính "
+#~ "này để được gỡ lỗi."
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "Cảnh hiện tại chưa được lưu, hãy lưu nó trước khi chạy."
+
#, fuzzy
#~ msgid "Revert"
#~ msgstr "Trở lại"
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index f9dc64aea2..1fd689420b 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -3,7 +3,7 @@
# Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# 360119124 <360119124@qq.com>, 2018.
-# 柠檬杀手 <lemonkiller@gmail.com>, 2018.
+# 柠檬杀手 <lemonkiller@gmail.com>, 2018, 2020.
# 纯洁的坏蛋 <tqj.zyy@gmail.com>, 2016.
# 孤月蓝风 <trlanfeng@foxmail.com>, 2016.
# 吴亮弟 <wu@liangdi.me>, 2017.
@@ -34,7 +34,7 @@
# 刘庆文 <liuqingwen@163.com>, 2018.
# Haowen Liu <liu.haowen.andy@gmail.com>, 2018.
# tangdou1 <1093505442@qq.com>, 2018, 2019.
-# yzt <834950797@qq.com>, 2018, 2019.
+# yzt <834950797@qq.com>, 2018, 2019, 2020.
# DKLost <514dklost@gmail.com>, 2018.
# thanksshu <hezihanshangyuan@gmail.com>, 2018.
# Jsheng <yangea@outlook.com>, 2019.
@@ -66,12 +66,17 @@
# Tim Bao <honiebao@gmail.com>, 2020.
# UnluckyNinja <unluckyninja1994@gmail.com>, 2020.
# 无双流 <1257678024@qq.com>, 2020.
+# ZhangXinyu <zhang2xinyu@outlook.com>, 2020.
+# Silence Tai <silence.m@hotmail.com>, 2020.
+# MintSoda <lionlxh@qq.com>, 2020.
+# Gardner Belgrade <hapenia@sina.com>, 2020.
+# godhidden <z2zz2zz@yahoo.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Chinese (Simplified) (Godot Engine)\n"
"POT-Creation-Date: 2018-01-20 12:15+0200\n"
-"PO-Revision-Date: 2020-06-25 08:40+0000\n"
-"Last-Translator: UnluckyNinja <unluckyninja1994@gmail.com>\n"
+"PO-Revision-Date: 2020-09-24 12:43+0000\n"
+"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hans/>\n"
"Language: zh_CN\n"
@@ -79,12 +84,12 @@ 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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "convert()的参数类型无效,请使用TYPE_*常量。"
+msgstr "convert() 的参数类型无效,请使用 TYPE_* 常量。"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
@@ -98,7 +103,7 @@ msgstr "没有足够的字节来解码,或格式无效。"
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "表达式中包含得%i无效(未传递)"
+msgstr "表达式中包含的%i无效(未传递)"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
@@ -580,6 +585,7 @@ msgid "Seconds"
msgstr "秒"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -758,7 +764,7 @@ msgstr "大小写匹配"
msgid "Whole Words"
msgstr "全字匹配"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "替换"
@@ -947,6 +953,11 @@ msgid "Signals"
msgstr "信号"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "筛选图块"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "你确定要从该广播信号中移除所有连接吗?"
@@ -984,7 +995,7 @@ msgid "Recent:"
msgstr "最近使用:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "搜索:"
@@ -1164,6 +1175,9 @@ msgstr "项目创始人"
msgid "Lead Developer"
msgstr "主要开发者"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "项目管理员 "
@@ -1185,6 +1199,14 @@ msgid "Gold Sponsors"
msgstr "黄金赞助"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "白银赞助"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "青铜赞助"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "迷你赞助"
@@ -1652,16 +1674,17 @@ msgid "Scene Tree Editing"
msgstr "场景树编辑"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "导入面板"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "节点面板"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "文件系统和导入面板"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "文件系统"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "导入面板"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
@@ -1923,7 +1946,7 @@ msgstr "目录与文件:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "预览:"
@@ -2008,7 +2031,7 @@ msgstr "属性说明"
#: editor/editor_help.cpp
msgid "(value)"
-msgstr "(值)"
+msgstr "(值)"
#: editor/editor_help.cpp
msgid ""
@@ -2348,10 +2371,6 @@ msgid "There is no defined scene to run."
msgstr "没有设置要执行的场景。"
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "当前场景尚未保存,请保存后再尝试执行。"
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr "无法启动子进程!"
@@ -2635,15 +2654,15 @@ msgstr "面板位置"
#: editor/editor_node.cpp
msgid "Distraction Free Mode"
-msgstr "无干扰模式"
+msgstr "专注模式"
#: editor/editor_node.cpp
msgid "Toggle distraction-free mode."
-msgstr "切换无干扰模式。"
+msgstr "切换专注模式。"
#: editor/editor_node.cpp
msgid "Add a new scene."
-msgstr "添加新场景。"
+msgstr "添加场景。"
#: editor/editor_node.cpp
msgid "Scene"
@@ -2659,11 +2678,11 @@ msgstr "复制文本"
#: editor/editor_node.cpp
msgid "Next tab"
-msgstr "下一个标签页"
+msgstr "下一标签"
#: editor/editor_node.cpp
msgid "Previous tab"
-msgstr "上一个标签"
+msgstr "上一标签"
#: editor/editor_node.cpp
msgid "Filter Files..."
@@ -2779,23 +2798,28 @@ msgstr "使用远程调试部署"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"导出或发布项目时,为了能够调试项目,可执行文件将试图通过本机IP连接到调试器。"
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "使用网络文件系统进行小型部署"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
"当启用此项后,将在导出或发布项目时生成最小化可自行文件。\n"
"文件系统将通过网络连接到编辑器来实现。\n"
@@ -2806,9 +2830,10 @@ msgid "Visible Collision Shapes"
msgstr "显示碰撞区域"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr "如果启用此项,节点的碰撞区域和raycast将在游戏运行时可见。"
#: editor/editor_node.cpp
@@ -2816,35 +2841,40 @@ msgid "Visible Navigation"
msgstr "显示导航"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr "如果启用此项,用于导航的mesh和多边形将在游戏运行时可见。"
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "同步场景修改"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"开启此项后,在编辑器中对场景的所有修改都会被应用与正在运行的游戏中。\n"
"当使用远程设备调试时,使用网络文件系统能有效提高编辑效率。"
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "同步脚本变更"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"开启此项后,所有脚本在保存时都会被正在运行的游戏重新加载。\n"
"当使用远程设备调试时,使用网络文件系统能有效提高编辑效率。"
@@ -2906,7 +2936,7 @@ msgstr "帮助"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "搜索"
@@ -3116,7 +3146,7 @@ msgstr "找不到子资源。"
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
-msgstr "创建网格预览"
+msgstr "正在创建网格预览"
#: editor/editor_plugin.cpp
msgid "Thumbnail..."
@@ -3315,9 +3345,11 @@ msgid "Add Key/Value Pair"
msgstr "添加键/值对"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
"没有对应该平台的可执行导出预设。\n"
"请在导出菜单中添加可执行预设。"
@@ -3758,7 +3790,7 @@ msgstr "创建脚本"
#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
msgid "Find in Files"
-msgstr "在文件中查找"
+msgstr "跨文件查找"
#: editor/find_in_files.cpp
msgid "Find:"
@@ -5058,7 +5090,7 @@ msgid "Bake Lightmaps"
msgstr "烘焙光照贴图"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "预览"
@@ -6953,7 +6985,7 @@ msgstr "取消折叠所有行"
#: editor/plugins/script_text_editor.cpp
msgid "Clone Down"
-msgstr "拷贝到下一行"
+msgstr "复制到下一行"
#: editor/plugins/script_text_editor.cpp
msgid "Complete Symbol"
@@ -7014,7 +7046,7 @@ msgstr "转到行..."
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Toggle Breakpoint"
-msgstr "设置断点"
+msgstr "切换断点"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Breakpoints"
@@ -7370,7 +7402,7 @@ msgstr "使用吸附"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
-msgstr "仰视图。"
+msgstr "仰视图"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View"
@@ -7402,7 +7434,7 @@ msgstr "插入动画帧"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
-msgstr "显示原点"
+msgstr "聚焦原点"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
@@ -7679,7 +7711,8 @@ msgid "New Animation"
msgstr "新建动画"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "速度(FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -9402,7 +9435,7 @@ msgstr "包文件"
#: editor/project_export.cpp
msgid "Features"
-msgstr "功能"
+msgstr "特性"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
@@ -9410,7 +9443,7 @@ msgstr "自定义 (以逗号分隔):"
#: editor/project_export.cpp
msgid "Feature List:"
-msgstr "功能列表:"
+msgstr "特性列表:"
#: editor/project_export.cpp
msgid "Script"
@@ -9748,6 +9781,7 @@ msgstr ""
"您确定要扫描%s文件夹中的现有Godot项目吗? \n"
"这可能需要一段时间。"
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "项目管理器"
@@ -9803,7 +9837,7 @@ msgid ""
"one `/` character."
msgstr ""
"搜索框根据名称和路径的末尾部分来过滤项目。\n"
-"如果要根据名称和完整路径过滤,搜索内容应至少包含一个“/”字符。"
+"如果要根据名称和完整路径过滤,搜索内容应至少包含一个 `/` 字符。"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -10183,11 +10217,18 @@ msgid "Batch Rename"
msgstr "批量重命名"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "替换: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "前缀"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "后缀"
#: editor/rename_dialog.cpp
@@ -10235,7 +10276,8 @@ msgid "Per-level Counter"
msgstr "各级单独计数"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "如果启用,计数器将为每组子节点重置"
#: editor/rename_dialog.cpp
@@ -10295,7 +10337,8 @@ msgid "Reset"
msgstr "重置"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "正则表达式出错"
#: editor/rename_dialog.cpp
@@ -10401,6 +10444,10 @@ msgid "Make node as Root"
msgstr "将节点设置为根节点"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "是否删除节点“%s”及其子节点?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "是否删除%d个节点?"
@@ -10784,7 +10831,7 @@ msgstr "内置脚本(到场景文件中)。"
#: editor/script_create_dialog.cpp
msgid "Will create a new script file."
-msgstr "将创建一个新的脚本文件。"
+msgstr "将创建新脚本文件。"
#: editor/script_create_dialog.cpp
msgid "Will load an existing script file."
@@ -10834,7 +10881,7 @@ msgstr "错误:"
#: editor/script_editor_debugger.cpp
msgid "C++ Error"
-msgstr "C ++错误"
+msgstr "C++错误"
#: editor/script_editor_debugger.cpp
msgid "C++ Error:"
@@ -10842,7 +10889,7 @@ msgstr "C++错误:"
#: editor/script_editor_debugger.cpp
msgid "C++ Source"
-msgstr "C++源程序"
+msgstr "C++源文件"
#: editor/script_editor_debugger.cpp
msgid "Source:"
@@ -10850,7 +10897,7 @@ msgstr "源文件:"
#: editor/script_editor_debugger.cpp
msgid "C++ Source:"
-msgstr "C++源程序:"
+msgstr "C++源文件:"
#: editor/script_editor_debugger.cpp
msgid "Stack Trace"
@@ -10878,11 +10925,11 @@ msgstr "跳过断点"
#: editor/script_editor_debugger.cpp
msgid "Inspect Previous Instance"
-msgstr "编辑上一个实例"
+msgstr "查看上一个实例"
#: editor/script_editor_debugger.cpp
msgid "Inspect Next Instance"
-msgstr "编辑下一个实例"
+msgstr "查看下一个实例"
#: editor/script_editor_debugger.cpp
msgid "Stack Frames"
@@ -10918,7 +10965,7 @@ msgstr "占用显存的资源列表:"
#: editor/script_editor_debugger.cpp
msgid "Total:"
-msgstr "合计:"
+msgstr "合计:"
#: editor/script_editor_debugger.cpp
msgid "Export list to a CSV file"
@@ -10966,15 +11013,15 @@ msgstr "导出为CSV格式"
#: editor/settings_config_dialog.cpp
msgid "Erase Shortcut"
-msgstr "清除快捷方式"
+msgstr "清除快捷键"
#: editor/settings_config_dialog.cpp
msgid "Restore Shortcut"
-msgstr "恢复快捷方式"
+msgstr "恢复快捷键"
#: editor/settings_config_dialog.cpp
msgid "Change Shortcut"
-msgstr "更改快捷方式"
+msgstr "更改快捷键"
#: editor/settings_config_dialog.cpp
msgid "Editor Settings"
@@ -11098,7 +11145,7 @@ msgstr "动态链接库"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Enabled GDNative Singleton"
-msgstr "启用gdnative singleton"
+msgstr "启用的 GDNative 单例"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Disabled GDNative Singleton"
@@ -11206,11 +11253,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"
@@ -11298,7 +11345,7 @@ msgstr "清除导航网格(mesh)。"
#: modules/recast/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
-msgstr "正在设置配置..。"
+msgstr "正在设置配置..."
#: modules/recast/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
@@ -11677,7 +11724,7 @@ msgstr "生成函数"
#: modules/visual_script/visual_script_editor.cpp
msgid "Refresh Graph"
-msgstr "刷新图"
+msgstr "刷新节点"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Member"
@@ -12040,6 +12087,14 @@ msgid ""
"shape resource for it!"
msgstr "形状资源必须是通过CollisionShape2D节点的shape属性创建的!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"基于多边形的形状不应该被 CollisionShape2D 节点直接使用或编辑。请使用 "
+"CollisionPolygon2D 节点。"
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12249,7 +12304,7 @@ msgstr "平面形状无法正常工作,未来版本将被删除。请勿使用
#: scene/3d/collision_shape.cpp
msgid ""
"ConcavePolygonShape doesn't support RigidBody in another mode than static."
-msgstr "ConcavePolygonShape仅支持静态RigidBody。"
+msgstr "ConcavePolygonShape 只支持静态模式下的 RigidBody。"
#: scene/3d/cpu_particles.cpp
msgid "Nothing is visible because no mesh has been assigned."
@@ -12275,6 +12330,11 @@ msgstr ""
"GLES2视频驱动程序不支持GIProbe。\n"
"请改用BakedLightmap。"
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "角度宽于 90 度的 SpotLight 无法投射出阴影。"
@@ -12320,7 +12380,7 @@ msgid ""
"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its "
"parent Path's Curve resource."
msgstr ""
-"PathFollow的ROTATION_ORIENTED要求在其父路径的Curve资源中启用“向上矢量”。"
+"PathFollow 的 ROTATION_ORIENTED 要求在其父路径的 Curve 资源中启用“向上矢量”。"
#: scene/3d/physics_body.cpp
msgid ""
@@ -12558,6 +12618,19 @@ msgstr "变量只能在顶点函数中指定。"
msgid "Constants cannot be modified."
msgstr "不允许修改常量。"
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "文件系统和导入面板"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "导出或发布项目时,为了能够调试项目,可执行文件将试图通过本机IP连接到调试"
+#~ "器。"
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "当前场景尚未保存,请保存后再尝试执行。"
+
#~ msgid "Not in resource path."
#~ msgstr "不在资源路径下。"
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index 90c85892f6..5ccf540635 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -549,6 +549,7 @@ msgid "Seconds"
msgstr ""
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr ""
@@ -742,7 +743,7 @@ msgstr "符合大小寫"
msgid "Whole Words"
msgstr "完整詞語"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
#, fuzzy
msgid "Replace"
msgstr "取代"
@@ -938,6 +939,11 @@ msgid "Signals"
msgstr "訊號"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "篩選檔案..."
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr ""
@@ -980,7 +986,7 @@ msgid "Recent:"
msgstr "最近:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "搜尋:"
@@ -1158,6 +1164,9 @@ msgstr "專案開荒人"
msgid "Lead Developer"
msgstr "主要開發者"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "開啟 Project Manager "
@@ -1179,6 +1188,16 @@ msgid "Gold Sponsors"
msgstr "黃金級贊助人"
#: editor/editor_about.cpp
+#, fuzzy
+msgid "Silver Sponsors"
+msgstr "白銀級捐款人"
+
+#: editor/editor_about.cpp
+#, fuzzy
+msgid "Bronze Sponsors"
+msgstr "青銅級捐款人"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "迷你贊助人"
@@ -1673,21 +1692,21 @@ msgstr "即時編輯"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "Import Dock"
-msgstr "導入"
-
-#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
msgstr "移動模式"
#: editor/editor_feature_profile.cpp
#, fuzzy
-msgid "FileSystem and Import Docks"
+msgid "FileSystem Dock"
msgstr "檔案系統"
#: editor/editor_feature_profile.cpp
#, fuzzy
+msgid "Import Dock"
+msgstr "導入"
+
+#: editor/editor_feature_profile.cpp
+#, fuzzy
msgid "Erase profile '%s'? (no undo)"
msgstr "全部取代"
@@ -1972,7 +1991,7 @@ msgstr "資料夾和檔案:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "預覽:"
@@ -2406,10 +2425,6 @@ msgid "There is no defined scene to run."
msgstr "沒有可以已定義的場景可以運行。"
#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-
-#: editor/editor_node.cpp
msgid "Could not start subprocess!"
msgstr ""
@@ -2865,22 +2880,26 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+msgid "Small Deploy with Network Filesystem"
msgstr ""
#: editor/editor_node.cpp
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
#: editor/editor_node.cpp
@@ -2890,8 +2909,8 @@ msgstr "可見碰撞圖形"
#: editor/editor_node.cpp
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
msgstr ""
#: editor/editor_node.cpp
@@ -2900,33 +2919,34 @@ msgstr ""
#: editor/editor_node.cpp
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
msgstr ""
#: editor/editor_node.cpp
#, fuzzy
-msgid "Sync Scene Changes"
+msgid "Synchronize Scene Changes"
msgstr "同步場景的變動"
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "同步更新腳本"
#: editor/editor_node.cpp
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2994,7 +3014,7 @@ msgstr "幫助"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "搜尋"
@@ -3419,7 +3439,8 @@ msgstr ""
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
#: editor/editor_run_script.cpp
@@ -5296,7 +5317,7 @@ msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -8029,7 +8050,7 @@ msgid "New Animation"
msgstr "新的動畫名稱:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+msgid "Speed:"
msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -10134,6 +10155,7 @@ msgid ""
"This could take a while."
msgstr ""
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr ""
@@ -10587,11 +10609,16 @@ msgid "Batch Rename"
msgstr "重新命名..."
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "取代: "
+
+#: editor/rename_dialog.cpp
+msgid "Prefix:"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Suffix"
+msgid "Suffix:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10641,7 +10668,7 @@ msgid "Per-level Counter"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+msgid "If set, the counter restarts for each group of child nodes."
msgstr ""
#: editor/rename_dialog.cpp
@@ -10702,7 +10729,7 @@ msgid "Reset"
msgstr "重設縮放比例"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+msgid "Regular Expression Error:"
msgstr ""
#: editor/rename_dialog.cpp
@@ -10813,6 +10840,11 @@ msgstr "儲存場景"
#: editor/scene_tree_dock.cpp
#, fuzzy
+msgid "Delete %d nodes and any children?"
+msgstr "删除root node \"%s\"?"
+
+#: editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Delete %d nodes?"
msgstr "不選"
@@ -12533,6 +12565,12 @@ msgid ""
"shape resource for it!"
msgstr ""
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12745,6 +12783,11 @@ msgid ""
"Use a BakedLightmap instead."
msgstr ""
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
@@ -13003,6 +13046,10 @@ msgid "Constants cannot be modified."
msgstr ""
#, fuzzy
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "檔案系統"
+
+#, fuzzy
#~ msgid "Not in resource path."
#~ msgstr "不在資源路徑。"
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index 129a3fdad4..4c693ce275 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -24,11 +24,12 @@
# Allen H. <w84miracle@gmail.com>, 2020.
# BinotaLIU <binota@protonmail.ch>, 2020.
# BinotaLIU <me@binota.org>, 2020.
+# MintSoda <lionlxh@qq.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-22 06:40+0000\n"
+"PO-Revision-Date: 2020-09-08 11:40+0000\n"
"Last-Translator: BinotaLIU <me@binota.org>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hant/>\n"
@@ -37,7 +38,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.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -52,7 +53,7 @@ msgstr "應為一個長度為 1(一個字元)的字串。"
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "欲解碼的位元組不足或格式無效。"
+msgstr "位元組長度不足以進行解碼或或格式無效。"
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -196,7 +197,7 @@ msgstr "更改多個動畫的關鍵畫格數值"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Call"
-msgstr "更改多個動畫的回調"
+msgstr "更改多個動畫的呼叫"
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
@@ -302,7 +303,7 @@ msgstr "不連續"
#: editor/animation_track_editor.cpp
msgid "Trigger"
-msgstr "觸發器"
+msgstr "觸發程序"
#: editor/animation_track_editor.cpp
msgid "Capture"
@@ -408,7 +409,7 @@ msgstr "重新排列軌道"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr "變形軌只能套用至 Spatial 節點。"
+msgstr "變形軌僅可套用至 Spatial 節點。"
#: editor/animation_track_editor.cpp
msgid ""
@@ -417,18 +418,18 @@ msgid ""
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
msgstr ""
-"音訊軌只能指向以下類型的節點:\n"
+"音訊軌僅可指向以下類型節點:\n"
"-AudioStreamPlayer\n"
"-AudioStreamPlayer2D\n"
"-AudioStreamPlayer3D"
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr "動畫軌只能指向 AnimationPlayer 節點。"
+msgstr "動畫軌僅可指向 AnimationPlayer 節點。"
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
-msgstr "動畫 Player 無法播放自己,只能播放其他 Player。"
+msgstr "動畫 Player 無法播放自己,僅可播放其他 Player。"
#: editor/animation_track_editor.cpp
msgid "Not possible to add a new track without a root"
@@ -460,7 +461,7 @@ msgstr "添加軌道關鍵畫格"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a method key."
-msgstr "無效的軌道路徑,無法新增方法關鍵畫格。"
+msgstr "無效軌道路徑,無法新增方法關鍵畫格。"
#: editor/animation_track_editor.cpp
msgid "Add Method Track Key"
@@ -503,11 +504,12 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
-"這個動畫是由外部匯入之場景提供,套用於匯入軌道的修改將不會被保存。\n"
+"該動畫屬於外部匯入之場景,套用於匯入軌道的修改將不會被保存。\n"
"\n"
-"若要開啟「加入客制軌」的功能,請在場景在匯入設定中將「動畫 -> 儲存」設定為\n"
-"「檔案」,並啟用「動畫 -> 保存客制軌」,然後重新匯入。\n"
-"或者也可使用會將動畫匯入獨立檔案的匯入 Preset。"
+"若要開啟「加入客制軌」的功能,請在場景在匯入設定中將 [Animation] -> "
+"[Storage] 設定為\n"
+"[Files],並啟用 [Animation] -> [Keep Custom Tracks],然後重新匯入。\n"
+"另可使用會將動畫匯入獨立檔案的匯入預設設定。"
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
@@ -538,6 +540,7 @@ msgid "Seconds"
msgstr "秒"
#: editor/animation_track_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "FPS"
msgstr "FPS"
@@ -597,7 +600,7 @@ msgstr "清除動畫"
#: editor/animation_track_editor.cpp
msgid "Pick the node that will be animated:"
-msgstr "選擇要設定動畫的節點:"
+msgstr "選擇欲設定動畫之節點:"
#: editor/animation_track_editor.cpp
msgid "Use Bezier Curves"
@@ -698,7 +701,7 @@ msgstr "行號:"
#: editor/code_editor.cpp
msgid "%d replaced."
-msgstr "已取代了 %d 件。"
+msgstr "已取代 %d 件。"
#: editor/code_editor.cpp editor/editor_help.cpp
msgid "%d match."
@@ -714,9 +717,9 @@ msgstr "區分大小寫"
#: editor/code_editor.cpp editor/find_in_files.cpp
msgid "Whole Words"
-msgstr "搜尋完整單字"
+msgstr "搜尋完整單詞"
-#: editor/code_editor.cpp editor/rename_dialog.cpp
+#: editor/code_editor.cpp
msgid "Replace"
msgstr "取代"
@@ -759,16 +762,15 @@ msgstr "警告"
#: editor/code_editor.cpp
msgid "Line and column numbers."
-msgstr "行號和列號。"
+msgstr "行號與列號。"
#: editor/connections_dialog.cpp
msgid "Method in target node must be specified."
-msgstr "必須指定目標節點的方法。"
+msgstr "必須指定目標節點方法。"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Method name must be a valid identifier."
-msgstr "名稱不是一個有效的識別符:"
+msgstr "方法名稱必須為有效識別符。"
#: editor/connections_dialog.cpp
msgid ""
@@ -790,7 +792,7 @@ msgstr "自訊號:"
#: editor/connections_dialog.cpp
msgid "Scene does not contain any script."
-msgstr "場景中無任何的腳本。"
+msgstr "場景中無任何腳本。"
#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
@@ -819,7 +821,7 @@ msgstr "額外呼叫引數:"
#: editor/connections_dialog.cpp
msgid "Receiver Method:"
-msgstr "Receiver 方法:"
+msgstr "接收器方法:"
#: editor/connections_dialog.cpp
msgid "Advanced"
@@ -906,6 +908,11 @@ msgid "Signals"
msgstr "訊號"
#: editor/connections_dialog.cpp
+#, fuzzy
+msgid "Filter signals"
+msgstr "篩選圖塊"
+
+#: editor/connections_dialog.cpp
msgid "Are you sure you want to remove all connections from this signal?"
msgstr "確定要刪除所有來自此訊號的連接嗎?"
@@ -943,7 +950,7 @@ msgid "Recent:"
msgstr "最近存取:"
#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp
-#: editor/property_selector.cpp editor/quick_open.cpp
+#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Search:"
msgstr "搜尋:"
@@ -1028,7 +1035,7 @@ msgstr "開啟"
#: editor/dependency_editor.cpp
msgid "Owners Of:"
-msgstr "擁有者:"
+msgstr "為下列之擁有者:"
#: editor/dependency_editor.cpp
msgid "Remove selected files from the project? (Can't be restored)"
@@ -1101,7 +1108,7 @@ msgstr "沒有明確從屬關係的資源:"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Key"
-msgstr "改變字典鍵"
+msgstr "改變字典索引鍵"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Value"
@@ -1123,6 +1130,9 @@ msgstr "專案創始人"
msgid "Lead Developer"
msgstr "主要開發者"
+#. TRANSLATORS: This refers to a job title.
+#. The trailing space is used to distinguish with the project list application,
+#. you do not have to keep it in your translation.
#: editor/editor_about.cpp
msgid "Project Manager "
msgstr "專案管理員 "
@@ -1144,6 +1154,14 @@ msgid "Gold Sponsors"
msgstr "黃金贊助"
#: editor/editor_about.cpp
+msgid "Silver Sponsors"
+msgstr "白銀贊助"
+
+#: editor/editor_about.cpp
+msgid "Bronze Sponsors"
+msgstr "青銅贊助"
+
+#: editor/editor_about.cpp
msgid "Mini Sponsors"
msgstr "迷你贊助"
@@ -1179,7 +1197,7 @@ msgid ""
"respective copyright statements and license terms."
msgstr ""
"Godot Engine 依賴數個自由且開放原始碼的第三方函式庫,所有函式庫皆相容於 MIT "
-"授權條款。以下是這些第三方元件的完整列表於其各自之著作權宣告與授權條款。"
+"授權條款。以下為這些第三方元件的完整列表與其著作權宣告及授權條款。"
#: editor/editor_about.cpp
msgid "All Components"
@@ -1244,39 +1262,39 @@ msgstr "新增效果"
#: editor/editor_audio_buses.cpp
msgid "Rename Audio Bus"
-msgstr "重新命名音訊 Bus"
+msgstr "重新命名音訊匯流排"
#: editor/editor_audio_buses.cpp
msgid "Change Audio Bus Volume"
-msgstr "更改音訊 Bus 音量"
+msgstr "更改音訊匯流排音量"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
-msgstr "切換音訊 Bus 的 Solo"
+msgstr "切換音訊匯流排 Solo"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Mute"
-msgstr "靜音/取消靜音音訊 Bus"
+msgstr "靜音/取消靜音音訊匯流排"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Bypass Effects"
-msgstr "忽略/取消忽略音訊 Bus 效果"
+msgstr "忽略/取消忽略音訊匯流排效果"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
-msgstr "選擇 Bus 輸出地點"
+msgstr "選擇音訊匯流排輸出位置"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus Effect"
-msgstr "新增音效 Bus 效果"
+msgstr "新增音效匯流排效果"
#: editor/editor_audio_buses.cpp
msgid "Move Bus Effect"
-msgstr "移動 Bus 效果"
+msgstr "移動匯流排效果"
#: editor/editor_audio_buses.cpp
msgid "Delete Bus Effect"
-msgstr "刪除 Bus 效果"
+msgstr "刪除匯流排效果"
#: editor/editor_audio_buses.cpp
msgid "Drag & drop to rearrange."
@@ -1296,7 +1314,7 @@ msgstr "忽略效果"
#: editor/editor_audio_buses.cpp
msgid "Bus options"
-msgstr "Bus 選項"
+msgstr "匯流排選項"
#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -1317,31 +1335,31 @@ msgstr "音訊"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
-msgstr "新增音訊 Bus"
+msgstr "新增音訊匯流排"
#: editor/editor_audio_buses.cpp
msgid "Master bus can't be deleted!"
-msgstr "Master Bus 不可刪除!"
+msgstr "不可刪除主匯流排!"
#: editor/editor_audio_buses.cpp
msgid "Delete Audio Bus"
-msgstr "刪除音訊 Bus"
+msgstr "刪除音訊匯流排"
#: editor/editor_audio_buses.cpp
msgid "Duplicate Audio Bus"
-msgstr "重複音訊 Bus"
+msgstr "重複音訊匯流排"
#: editor/editor_audio_buses.cpp
msgid "Reset Bus Volume"
-msgstr "重設 Bus 音量"
+msgstr "重設匯流排音量"
#: editor/editor_audio_buses.cpp
msgid "Move Audio Bus"
-msgstr "移動音訊 Bus"
+msgstr "移動音訊匯流排"
#: editor/editor_audio_buses.cpp
msgid "Save Audio Bus Layout As..."
-msgstr "另存音訊 Bus 配置為..."
+msgstr "將音訊匯流排配置另存為..."
#: editor/editor_audio_buses.cpp
msgid "Location for New Layout..."
@@ -1349,7 +1367,7 @@ msgstr "新配置的位置..."
#: editor/editor_audio_buses.cpp
msgid "Open Audio Bus Layout"
-msgstr "開啟音訊 Bus 配置"
+msgstr "開啟音訊匯流排配置"
#: editor/editor_audio_buses.cpp
msgid "There is no '%s' file."
@@ -1361,7 +1379,7 @@ msgstr "畫面配置"
#: editor/editor_audio_buses.cpp
msgid "Invalid file, not an audio bus layout."
-msgstr "無效的檔案,或該檔案不是音訊 Bus 配置檔。"
+msgstr "無效檔案或該檔案並非音訊匯流排配置檔。"
#: editor/editor_audio_buses.cpp
msgid "Error saving file: %s"
@@ -1369,11 +1387,11 @@ msgstr "無法保存檔案:%s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
-msgstr "新增 Bus"
+msgstr "新增匯流排"
#: editor/editor_audio_buses.cpp
msgid "Add a new Audio Bus to this layout."
-msgstr "新增一個新的音訊 Bus 至該配置。"
+msgstr "新增一個新的音訊匯流排至該配置。"
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1383,7 +1401,7 @@ msgstr "載入"
#: editor/editor_audio_buses.cpp
msgid "Load an existing Bus Layout."
-msgstr "讀取現存的 Bus 配置。"
+msgstr "讀取現有的匯流排配置。"
#: editor/editor_audio_buses.cpp
msgid "Save As"
@@ -1391,7 +1409,7 @@ msgstr "另存新檔"
#: editor/editor_audio_buses.cpp
msgid "Save this Bus Layout to a file."
-msgstr "將該 Bus 配置保存至檔案。"
+msgstr "將該匯流排配置保存至檔案。"
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
@@ -1399,11 +1417,11 @@ msgstr "載入預設"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr "載入預設的 Bus 配置。"
+msgstr "載入預設匯流排配置。"
#: editor/editor_audio_buses.cpp
msgid "Create a new Bus Layout."
-msgstr "建立新的 Bus 配置。"
+msgstr "建立新匯流排配置。"
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
@@ -1419,7 +1437,7 @@ msgstr "不可與現存的引擎類別名稱衝突。"
#: editor/editor_autoload_settings.cpp
msgid "Must not collide with an existing built-in type name."
-msgstr "不可與內建的列表名稱衝突。"
+msgstr "不可與內建的類別名稱衝突。"
#: editor/editor_autoload_settings.cpp
msgid "Must not collide with an existing global constant name."
@@ -1484,7 +1502,7 @@ msgstr "名稱"
#: editor/editor_autoload_settings.cpp
msgid "Singleton"
-msgstr "單例 (Singleton)"
+msgstr "單例"
#: editor/editor_data.cpp editor/inspector_dock.cpp
msgid "Paste Params"
@@ -1512,7 +1530,7 @@ msgstr "[未保存]"
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first."
-msgstr "請先選擇一個基礎的資料夾。"
+msgstr "請先選擇基礎資料夾。"
#: editor/editor_dir_dialog.cpp
msgid "Choose a Directory"
@@ -1557,15 +1575,16 @@ msgid ""
"Target platform requires 'ETC' texture compression for GLES2. Enable 'Import "
"Etc' in Project Settings."
msgstr ""
-"目標平台上的 GLES2 必須使用「ETC」紋理壓縮。請在專案設定中啟用「匯入 ETC」。"
+"目標平台上的 GLES2 必須使用「ETC」紋理壓縮。請在專案設定中啟用「Import "
+"Etc」。"
#: editor/editor_export.cpp
msgid ""
"Target platform requires 'ETC2' texture compression for GLES3. Enable "
"'Import Etc 2' in Project Settings."
msgstr ""
-"目標平台上的 GLES3 必須使用「ETC2」紋理壓縮。請在專案設定中啟用「匯入 "
-"ETC2」。"
+"目標平台上的 GLES3 必須使用「ETC2」紋理壓縮。請在專案設定中啟用「Import Etc "
+"2」。"
#: editor/editor_export.cpp
msgid ""
@@ -1575,7 +1594,7 @@ msgid ""
"Enabled'."
msgstr ""
"目標平台上的 GLES2 回退驅動器功能必須使用「ETC」紋理壓縮。\n"
-"請在專案設定中啟用「匯入 ETC」或是禁用「啟用驅動器回退」。"
+"請在專案設定中啟用「Import Etc」或是禁用「Driver Fallback Enabled」。"
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
@@ -1587,7 +1606,7 @@ msgstr "找不到自定義偵錯樣板。"
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
msgid "Custom release template not found."
-msgstr "找不到自定義釋出樣板。"
+msgstr "找不到自定義發行樣板。"
#: editor/editor_export.cpp platform/javascript/export/export.cpp
msgid "Template file not found:"
@@ -1595,7 +1614,7 @@ msgstr "找不到樣板檔案:"
#: editor/editor_export.cpp
msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
-msgstr "匯出 32 位元檔時,內嵌的 PCK 大小不得超過 4 GB。"
+msgstr "匯出 32 位元檔時,內嵌 PCK 大小不得超過 4 GB。"
#: editor/editor_feature_profile.cpp
msgid "3D Editor"
@@ -1614,28 +1633,29 @@ msgid "Scene Tree Editing"
msgstr "正在編輯場景樹"
#: editor/editor_feature_profile.cpp
-msgid "Import Dock"
-msgstr "匯入 Dock"
-
-#: editor/editor_feature_profile.cpp
msgid "Node Dock"
msgstr "節點 Dock"
#: editor/editor_feature_profile.cpp
-msgid "FileSystem and Import Docks"
-msgstr "檔案系統與匯入 Dock"
+#, fuzzy
+msgid "FileSystem Dock"
+msgstr "檔案系統"
+
+#: editor/editor_feature_profile.cpp
+msgid "Import Dock"
+msgstr "匯入 Dock"
#: editor/editor_feature_profile.cpp
msgid "Erase profile '%s'? (no undo)"
-msgstr "確定要清除 Profile「%s」嗎?(無法復原)"
+msgstr "確定要清除設定檔「%s」嗎?(無法復原)"
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
-msgstr "Profile 必須為一個有效的檔案名稱,並且不包含「.」"
+msgstr "設定檔必須為有效檔名,且不可包含「.」"
#: editor/editor_feature_profile.cpp
msgid "Profile with this name already exists."
-msgstr "已有相同名稱的 Profile 存在。"
+msgstr "已有相同名稱的設定檔存在。"
#: editor/editor_feature_profile.cpp
msgid "(Editor Disabled, Properties Disabled)"
@@ -1677,11 +1697,11 @@ msgstr "檔案「%s」的格式無效,已中止匯入。"
msgid ""
"Profile '%s' already exists. Remove it first before importing, import "
"aborted."
-msgstr "Profile「%s」已經存在。匯入前請先將其移除。已中止匯入。"
+msgstr "設定檔「%s」已存在。匯入前請先將其移除。已中止匯入。"
#: editor/editor_feature_profile.cpp
msgid "Error saving profile to path: '%s'."
-msgstr "保存 Profile 至路徑「%s」時發生錯誤。"
+msgstr "在下列路徑保存設定檔時發生錯誤:%s。"
#: editor/editor_feature_profile.cpp
msgid "Unset"
@@ -1689,7 +1709,7 @@ msgstr "未設定"
#: editor/editor_feature_profile.cpp
msgid "Current Profile:"
-msgstr "目前版本:"
+msgstr "目前設定檔:"
#: editor/editor_feature_profile.cpp
msgid "Make Current"
@@ -1712,7 +1732,7 @@ msgstr "匯出"
#: editor/editor_feature_profile.cpp
msgid "Available Profiles:"
-msgstr "可用的 Profile:"
+msgstr "可用設定檔:"
#: editor/editor_feature_profile.cpp
msgid "Class Options"
@@ -1720,31 +1740,31 @@ msgstr "類別選項"
#: editor/editor_feature_profile.cpp
msgid "New profile name:"
-msgstr "新增 Profile 名稱:"
+msgstr "新增設定檔名稱:"
#: editor/editor_feature_profile.cpp
msgid "Erase Profile"
-msgstr "清除 Profile"
+msgstr "清除設定檔"
#: editor/editor_feature_profile.cpp
msgid "Godot Feature Profile"
-msgstr "Godot 功能 Profile"
+msgstr "Godot 功能設定檔"
#: editor/editor_feature_profile.cpp
msgid "Import Profile(s)"
-msgstr "匯入 Profile"
+msgstr "匯入設定檔"
#: editor/editor_feature_profile.cpp
msgid "Export Profile"
-msgstr "匯出 Profile"
+msgstr "匯出設定檔"
#: editor/editor_feature_profile.cpp
msgid "Manage Editor Feature Profiles"
-msgstr "管理編輯器功能 Profile"
+msgstr "管理編輯器功能設定檔"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select Current Folder"
-msgstr "選擇目前的資料夾"
+msgstr "選擇目前資料夾"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File Exists, Overwrite?"
@@ -1865,7 +1885,7 @@ msgstr "重新整理檔案。"
#: editor/editor_file_dialog.cpp
msgid "(Un)favorite current folder."
-msgstr "將目前的資料夾新增或移除我的最愛。"
+msgstr "將目前資料夾新增或移除至我的最愛。"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Toggle the visibility of hidden files."
@@ -1885,7 +1905,7 @@ msgstr "資料夾與檔案:"
#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp
#: editor/plugins/style_box_editor_plugin.cpp
-#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp
msgid "Preview:"
msgstr "預覽:"
@@ -1913,7 +1933,7 @@ msgstr "(重新)匯入素材"
#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
msgid "Top"
-msgstr "上"
+msgstr "頂端"
#: editor/editor_help.cpp
msgid "Class:"
@@ -2009,27 +2029,27 @@ msgstr "全部顯示"
#: editor/editor_help_search.cpp
msgid "Classes Only"
-msgstr "僅限類別"
+msgstr "僅顯示類別"
#: editor/editor_help_search.cpp
msgid "Methods Only"
-msgstr "僅限方法"
+msgstr "僅顯示方法"
#: editor/editor_help_search.cpp
msgid "Signals Only"
-msgstr "僅限信號"
+msgstr "僅顯示訊號"
#: editor/editor_help_search.cpp
msgid "Constants Only"
-msgstr "僅限常數"
+msgstr "僅顯示常數"
#: editor/editor_help_search.cpp
msgid "Properties Only"
-msgstr "僅限屬性"
+msgstr "僅顯示屬性"
#: editor/editor_help_search.cpp
msgid "Theme Properties Only"
-msgstr "僅限主題屬性"
+msgstr "僅顯示主題屬性"
#: editor/editor_help_search.cpp
msgid "Member Type"
@@ -2156,7 +2176,7 @@ msgstr "保存資源錯誤!"
msgid ""
"This resource can't be saved because it does not belong to the edited scene. "
"Make it unique first."
-msgstr "由於該資源不屬於已編輯的場景,無法保存該資源。請先確保其獨立。"
+msgstr "由於該資源不屬於已編輯的場景,無法保存該資源。請先使其獨立化。"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As..."
@@ -2305,11 +2325,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
-msgstr "沒有已定義的場景可執行。"
-
-#: editor/editor_node.cpp
-msgid "Current scene was never saved, please save it prior to running."
-msgstr "目前的場景從未被保存,請先保存以執行。"
+msgstr "未定義欲執行之場景。"
#: editor/editor_node.cpp
msgid "Could not start subprocess!"
@@ -2365,7 +2381,7 @@ msgstr "是"
#: editor/editor_node.cpp
msgid "This scene has never been saved. Save before running?"
-msgstr "此場景從未被保存。是否要在執行前先保存?"
+msgstr "此場景從未被保存。是否於執行前先保存?"
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
@@ -2381,15 +2397,15 @@ msgstr "該操作必須要有跟節點才可完成。"
#: editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr "匯出 Tile Set"
+msgstr "匯出圖塊集"
#: editor/editor_node.cpp
msgid "This operation can't be done without a selected node."
-msgstr "該操作必須要有已選擇的節點才可完成。"
+msgstr "請先選擇節點以執行該操作。"
#: editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
-msgstr "目前的場景尚未保存。仍然要開啟嗎?"
+msgstr "尚未保存目前場景。仍然要開啟嗎?"
#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
@@ -2404,8 +2420,8 @@ msgid ""
"The current scene has unsaved changes.\n"
"Reload the saved scene anyway? This action cannot be undone."
msgstr ""
-"目前的場景有未保存的改動。\n"
-"仍然要重新載入場景嗎?這個操作將無法復原。"
+"目前場景有未保存的改動。\n"
+"仍要重新載入場景嗎?此操作將無法復原。"
#: editor/editor_node.cpp
msgid "Quick Run Scene..."
@@ -2439,9 +2455,7 @@ msgstr "開啟專案管理員前要先保存以下場景嗎?"
msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
-msgstr ""
-"該選項已停止維護。遇到需要強制重新整理的狀況現在已被視為程式錯誤。請回報該問"
-"題。"
+msgstr "該選項已停止維護。目前已將需強制重新整理之狀況視為 Bug,請回報該問題。"
#: editor/editor_node.cpp
msgid "Pick a Main Scene"
@@ -2471,12 +2485,12 @@ msgstr "無法自路徑「%s」載入擴充腳本。"
msgid ""
"Unable to load addon script from path: '%s' There seems to be an error in "
"the code, please check the syntax."
-msgstr "無法從路徑「%s」載入擴充腳本。看樣子是程式碼中有錯誤,請檢查語法。"
+msgstr "無法自路徑「%s」載入擴充腳本。可能為程式碼中有錯誤,請檢查語法。"
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
-msgstr "無法自路徑「%s」載入擴充腳本,基礎型別不是 EditorPlugin。"
+msgstr "無法自路徑「%s」載入擴充腳本,基礎型別非 EditorPlugin。"
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
@@ -2495,7 +2509,7 @@ msgid ""
"Error loading scene, it must be inside the project path. Use 'Import' to "
"open the scene, then save it inside the project path."
msgstr ""
-"載入場景時發生錯誤,場景必須置於專案路徑內。請使用「匯入」來開啟該場景,並將"
+"載入場景時發生錯誤,場景必須置於專案路徑內。請使用 [匯入] 來開啟該場景,並將"
"其保存於專案路徑內。"
#: editor/editor_node.cpp
@@ -2513,7 +2527,7 @@ msgid ""
"category."
msgstr ""
"尚未定義主場景。要選擇一個場景嗎?\n"
-"稍後可在「應用程式」分類中的「專案設定」修改。"
+"稍後可在「專案設定」的 [Application] 分類中修改。"
#: editor/editor_node.cpp
msgid ""
@@ -2522,7 +2536,7 @@ msgid ""
"category."
msgstr ""
"所選的場景「%s」不存在,是否要選擇一個有效的場景?\n"
-"稍後可在「應用程式」分類中的「專案設定」中修改。"
+"稍後可在「專案設定」的 [Application] 分類中修改。"
#: editor/editor_node.cpp
msgid ""
@@ -2530,8 +2544,8 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"所選的場景「%s」不是場景檔案,是否要選擇另一個有效的場景?\n"
-"稍後可在「應用程式」分類中的「專案設定」中修改。"
+"所選的場景「%s」並非場景檔案,是否要選擇另一個有效的場景?\n"
+"稍後可在「專案設定」中的 [Application] 中修改。"
#: editor/editor_node.cpp
msgid "Save Layout"
@@ -2589,7 +2603,7 @@ msgstr "還有 %d 個資料夾"
#: editor/editor_node.cpp
msgid "%d more files"
-msgstr "還有 %d 個檔案"
+msgstr "其他 %d 個檔案"
#: editor/editor_node.cpp
msgid "Dock Position"
@@ -2741,75 +2755,86 @@ msgstr "部署並啟用遠端偵錯"
#: editor/editor_node.cpp
msgid ""
-"When exporting or deploying, the resulting executable will attempt to "
-"connect to the IP of this computer in order to be debugged."
+"When this option is enabled, using one-click deploy will make the executable "
+"attempt to connect to this computer's IP so the running project can be "
+"debugged.\n"
+"This option is intended to be used for remote debugging (typically with a "
+"mobile device).\n"
+"You don't need to enable it to use the GDScript debugger locally."
msgstr ""
-"匯出或部署時,輸出的可執行檔將會嘗試連接到這台電腦的 IP 位置以進行除錯。"
#: editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
+#, fuzzy
+msgid "Small Deploy with Network Filesystem"
msgstr "使用網路檔案系統進行小型部署"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
+"When this option is enabled, using one-click deploy for Android will only "
+"export an executable without the project data.\n"
"The filesystem will be provided from the project by the editor over the "
"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
+"On Android, deploying will use the USB cable for faster performance. This "
+"option speeds up testing for projects with large assets."
msgstr ""
-"當該選項啟用後,匯出或部署將會產生最小化的可執行檔。\n"
-"檔案系統將由這個編輯器在網路上提供。\n"
-"Android 平台上,部署需要使用 USB 線以獲得更快速的效能。該選項對於大型遊戲能加"
-"速測試。"
+"啟用該選項後,匯出或部署是會產生最小可執行檔。\n"
+"專案之檔案系統將由本編輯器以網路提供。\n"
+"部署至 Android 平台需使用 USB 線以獲得更快速的效能。該選項對於大型遊戲能加速"
+"測試。"
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
msgstr "顯示碰撞區域"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
-"running game if this option is turned on."
-msgstr "該選項開啟後,執行遊戲時將可看見碰撞區域與(2D 或 3D 的)射線節點。"
+"When this option is enabled, collision shapes and raycast nodes (for 2D and "
+"3D) will be visible in the running project."
+msgstr "開啟選項後,執行遊戲時將可看見碰撞區域與(2D 或 3D 的)射線節點。"
#: editor/editor_node.cpp
msgid "Visible Navigation"
msgstr "顯示導航"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
-msgstr "該選項開啟後,執行遊戲時將可看見導航網格 (mesh) 與多邊形。"
+"When this option is enabled, navigation meshes and polygons will be visible "
+"in the running project."
+msgstr "開啟該選項後,執行遊戲時將可看見導航網格 (mesh) 與多邊形。"
#: editor/editor_node.cpp
-msgid "Sync Scene Changes"
+#, fuzzy
+msgid "Synchronize Scene Changes"
msgstr "同步場景改動"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any changes made to the scene in the editor "
+"will be replicated in the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
"開啟該選項後,編輯器中對該場景的所有改動都將被套用至執行中的遊戲。\n"
"若在遠端裝置上使用,可使用網路檔案系統 NFS 以獲得最佳效能。"
#: editor/editor_node.cpp
-msgid "Sync Script Changes"
+#, fuzzy
+msgid "Synchronize Script Changes"
msgstr "同步腳本改動"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
+"When this option is enabled, any script that is saved will be reloaded in "
+"the running project.\n"
+"When used remotely on a device, this is more efficient when the network "
+"filesystem option is enabled."
msgstr ""
-"當開啟該選項後,保存的腳本都將在執行中的遊戲重新載入。\n"
+"開啟該選項後,保存之腳本都將於執行中的遊戲重新載入。\n"
"若在遠端裝置上使用,可使用網路檔案系統 NFS 以獲得最佳效能。"
#: editor/editor_node.cpp editor/script_create_dialog.cpp
@@ -2842,7 +2867,7 @@ msgstr "開啟/關閉系統主控台"
#: editor/editor_node.cpp
msgid "Open Editor Data/Settings Folder"
-msgstr "開啟「編輯器資料/編輯器設定」資料夾"
+msgstr "開啟 編輯器資料/編輯器設定 資料夾"
#: editor/editor_node.cpp
msgid "Open Editor Data Folder"
@@ -2869,7 +2894,7 @@ msgstr "說明"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp
-#: editor/project_settings_editor.cpp editor/rename_dialog.cpp
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
msgstr "搜尋"
@@ -2997,12 +3022,12 @@ msgid ""
"the \"Use Custom Build\" option should be enabled in the Android export "
"preset."
msgstr ""
-"將通過在「res://android/build」中安裝原始樣板以為該項目設定自定 Android 建構"
-"樣板。\n"
-"輸出時可以套用修改並建構自定 APK(如新增模組、修改 AndroidManifest.xml …"
+"將於「res://android/build」安裝原始樣板以為該項目設定自定 Android 建構樣"
+"板。\n"
+"輸出時可套用修改並建構自定 APK(如新增模組、修改 AndroidManifest.xml …"
"等)。\n"
-"請注意,若要使用自定建構而非使用預先建構好的 APK,請啟用 Android 匯出 Preset "
-"中的「使用自定建構」選項。"
+"請注意,若要使用自定建構而非使用預先建構之 APK,請啟用 Android 匯出預設設定中"
+"的 [Use Custom Build] 選項。"
#: editor/editor_node.cpp
msgid ""
@@ -3145,7 +3170,7 @@ msgstr "全部"
#: editor/editor_profiler.cpp
msgid "Self"
-msgstr "僅自己"
+msgstr "自身"
#: editor/editor_profiler.cpp
msgid "Frame #:"
@@ -3198,7 +3223,7 @@ msgid ""
"Can't create a ViewportTexture on resources saved as a file.\n"
"Resource needs to belong to a scene."
msgstr ""
-"無法為要保存為檔案的資源建立檢視區紋理 (ViewportTexture)。\n"
+"無法為欲保存為檔案之資源建立 ViewportTexture。\n"
"資源必須屬於一個場景。"
#: editor/editor_properties.cpp
@@ -3209,11 +3234,11 @@ msgid ""
"containing it up to a node)."
msgstr ""
"無法為該資源建立檢視區紋理 (ViewportTexture),因其未設定對應的本地場景。\n"
-"請開啟其(與其至節點的所有資源)的「本地化場景」屬性。"
+"請開啟其(與其至節點的所有資源)「Local to Scene」屬性。"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Pick a Viewport"
-msgstr "選擇檢視區"
+msgstr "選擇 Viewport"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "New Script"
@@ -3247,11 +3272,11 @@ msgstr "貼上"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Convert To %s"
-msgstr "轉換成 %s"
+msgstr "轉換為 %s"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Selected node is not a Viewport!"
-msgstr "所選節點不是檢視區 (Viewport)!"
+msgstr "所選節點並非 Viewport!"
#: editor/editor_properties_array_dict.cpp
msgid "Size: "
@@ -3268,7 +3293,7 @@ msgstr "移除項目"
#: editor/editor_properties_array_dict.cpp
msgid "New Key:"
-msgstr "新增鍵值:"
+msgstr "新增索引鍵:"
#: editor/editor_properties_array_dict.cpp
msgid "New Value:"
@@ -3276,15 +3301,17 @@ msgstr "新增數值:"
#: editor/editor_properties_array_dict.cpp
msgid "Add Key/Value Pair"
-msgstr "新增鍵/值配對"
+msgstr "新增索引鍵/值組"
#: editor/editor_run_native.cpp
+#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
-"Please add a runnable preset in the export menu."
+"Please add a runnable preset in the Export menu or define an existing preset "
+"as runnable."
msgstr ""
-"該平台沒有可執行的匯出 Preset。\n"
-"請在匯出選單中新增一個可執行的 Preset。"
+"該平台沒有可執行的匯出預設設定。\n"
+"請在匯出選單中新增一個可執行的預設設定。"
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -3300,7 +3327,7 @@ msgstr "無法實體化腳本:"
#: editor/editor_run_script.cpp
msgid "Did you forget the 'tool' keyword?"
-msgstr "是否遺漏「tool」關鍵字?"
+msgstr "是否未加上「tool」關鍵字?"
#: editor/editor_run_script.cpp
msgid "Couldn't run script:"
@@ -3308,7 +3335,7 @@ msgstr "無法執行腳本:"
#: editor/editor_run_script.cpp
msgid "Did you forget the '_run' method?"
-msgstr "是否遺漏了「_run」方法?"
+msgstr "是否未新增「_run」方法?"
#: editor/editor_spin_slider.cpp
msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
@@ -3403,7 +3430,7 @@ msgstr "解析鏡像列表的 JSON 時發生錯誤。請回報此問題!"
msgid ""
"No download links found for this version. Direct download is only available "
"for official releases."
-msgstr "為找到該版本的下載鏈接。直接下載僅適用於正式版本。"
+msgstr "未找到該版本的下載鏈接。直接下載僅適用於正式發行版本。"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3446,8 +3473,8 @@ msgid ""
"Templates installation failed.\n"
"The problematic templates archives can be found at '%s'."
msgstr ""
-"未找到樣板安裝。\n"
-"有問題的樣板檔案存放於「%s」。"
+"樣板安裝失敗。\n"
+"發生問題之樣板檔案存放於「%s」。"
#: editor/export_template_manager.cpp
msgid "Error requesting URL:"
@@ -3573,7 +3600,7 @@ msgstr "未提供名稱。"
#: editor/filesystem_dock.cpp
msgid "Provided name contains invalid characters."
-msgstr "提供的名稱包含了無效的字元。"
+msgstr "提供的名稱包含無效字元。"
#: editor/filesystem_dock.cpp
msgid "A file or folder with this name already exists."
@@ -3581,7 +3608,7 @@ msgstr "已有相同名稱的檔案或資料夾存在。"
#: editor/filesystem_dock.cpp
msgid "Name contains invalid characters."
-msgstr "名稱包含了無效的字元。"
+msgstr "名稱包含無效字元。"
#: editor/filesystem_dock.cpp
msgid "Renaming file:"
@@ -3891,7 +3918,7 @@ msgstr "正在執行自定腳本..."
#: editor/import/resource_importer_scene.cpp
msgid "Couldn't load post-import script:"
-msgstr "無法載入匯入後腳本:"
+msgstr "無法載入 Post-Import 腳本:"
#: editor/import/resource_importer_scene.cpp
msgid "Invalid/broken script for post-import (check console):"
@@ -3903,7 +3930,7 @@ msgstr "執行匯入後腳本時發生錯誤:"
#: editor/import/resource_importer_scene.cpp
msgid "Did you return a Node-derived object in the `post_import()` method?"
-msgstr "是否有在 `post_import()` 方法內回傳 Node 衍生之物件?"
+msgstr "是否有在 `post_import()` 方法內回傳繼承 Node 之物件?"
#: editor/import/resource_importer_scene.cpp
msgid "Saving..."
@@ -3927,7 +3954,7 @@ msgstr "匯入為:"
#: editor/import_dock.cpp
msgid "Preset"
-msgstr "Preset"
+msgstr "預設設定"
#: editor/import_dock.cpp
msgid "Reimport"
@@ -3944,7 +3971,7 @@ msgstr "修改匯入檔案的型別需要重新啟動編輯器。"
#: editor/import_dock.cpp
msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
-msgstr "警告:有素材使用該資源,將會無法正確加載。"
+msgstr "警告:有素材使用該資源,將無法正確加載。"
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
@@ -3989,7 +4016,7 @@ msgstr "在說明中開啟"
#: editor/inspector_dock.cpp
msgid "Create a new resource in memory and edit it."
-msgstr "在記憶體中建立一個新的資源名編輯。"
+msgstr "在記憶體中建立新資源並編輯。"
#: editor/inspector_dock.cpp
msgid "Load an existing resource from disk and edit it."
@@ -4001,11 +4028,11 @@ msgstr "保存目前編輯的資源。"
#: editor/inspector_dock.cpp
msgid "Go to the previous edited object in history."
-msgstr "在歷史記錄中跳至上一個編輯的物件。"
+msgstr "跳至歷史記錄中上一個編輯的物件。"
#: editor/inspector_dock.cpp
msgid "Go to the next edited object in history."
-msgstr "在歷史記錄中跳至下一個編輯的物件。"
+msgstr "跳至歷史記錄中下一個編輯的物件。"
#: editor/inspector_dock.cpp
msgid "History of recently edited objects."
@@ -4017,7 +4044,7 @@ msgstr "物件屬性。"
#: editor/inspector_dock.cpp
msgid "Filter properties"
-msgstr "過濾屬性"
+msgstr "篩選屬性"
#: editor/inspector_dock.cpp
msgid "Changes may be lost!"
@@ -4207,23 +4234,23 @@ msgstr "新增三角形"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Change BlendSpace2D Limits"
-msgstr "修改混合空間 2D 限制"
+msgstr "修改 BlendSpace2D 限制"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Change BlendSpace2D Labels"
-msgstr "修改混合空間 2D 標籤"
+msgstr "修改 BlendSpace2D 標籤"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Remove BlendSpace2D Point"
-msgstr "移除混合空間 2D 頂點"
+msgstr "移除 BlendSpace2D 頂點"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "Remove BlendSpace2D Triangle"
-msgstr "移除混合空間 2D 三角形"
+msgstr "移除 BlendSpace2D 三角形"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "BlendSpace2D does not belong to an AnimationTree node."
-msgstr "混合空間 2D 不屬於任何動畫樹節點。"
+msgstr "BlendSpace2D 不屬於任何 AnimationTree 節點。"
#: editor/plugins/animation_blend_space_2d_editor.cpp
msgid "No triangles exist, so no blending can take place."
@@ -4257,11 +4284,11 @@ msgstr "已更改參數"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Filters"
-msgstr "編輯篩選"
+msgstr "編輯篩選條件"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Output node can't be added to the blend tree."
-msgstr "輸出節點無法被新增到混合樹。"
+msgstr "輸出節點無法被新增至混合樹。"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Add Node to BlendTree"
@@ -4302,11 +4329,11 @@ msgstr "刪除節點"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Toggle Filter On/Off"
-msgstr "開啟/關閉過濾"
+msgstr "開啟/關閉篩選"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Change Filter"
-msgstr "更改過濾"
+msgstr "更改篩選條件"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "No animation player set, so unable to retrieve track names."
@@ -4352,7 +4379,7 @@ msgstr "編輯已篩選的軌道:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Enable Filtering"
-msgstr "啟用篩選"
+msgstr "啟用條件篩選"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
@@ -4415,7 +4442,7 @@ msgstr "無動畫可複製!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "No animation resource on clipboard!"
-msgstr "剪貼簿中沒有動畫資源!"
+msgstr "剪貼簿中無動畫資源!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
@@ -4483,11 +4510,11 @@ msgstr "載入後自動播放"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr "啟用洋蔥皮化 (Onion Skinning)"
+msgstr "啟用描圖紙"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning Options"
-msgstr "洋蔥皮化選項"
+msgstr "描圖紙選項"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Directions"
@@ -4531,7 +4558,7 @@ msgstr "包含 Gizmo (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pin AnimationPlayer"
-msgstr "固定動畫播放器"
+msgstr "固定 AnimationPlayer"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -4641,7 +4668,7 @@ msgstr "移除所選的節點或轉場。"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Toggle autoplay this animation on start, restart or seek to zero."
-msgstr "開啟/關閉該動畫在開始、重新啟動或尋覓至 0 時的自動播放。"
+msgstr "開啟/關閉自動播放動畫於開始、重新啟動或搜尋至 0 時。"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Set the end animation. This is useful for sub-transitions."
@@ -4716,7 +4743,7 @@ msgstr "混合 1:"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "X-Fade Time (s):"
-msgstr "交叉淡化 (X-Fade) 時間(秒):"
+msgstr "淡入與淡出時間(秒):"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Current:"
@@ -4750,39 +4777,39 @@ msgstr "無效的動畫樹。"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Animation Node"
-msgstr "動畫節點"
+msgstr "Animation 節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "OneShot Node"
-msgstr "單項節點"
+msgstr "OneShot 節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Mix Node"
-msgstr "混合節點"
+msgstr "Mix 節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend2 Node"
-msgstr "混合 2 節點"
+msgstr "Blend2 節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend3 Node"
-msgstr "混合 3 節點"
+msgstr "Blend3 節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Blend4 Node"
-msgstr "混合 4 節點"
+msgstr "Blend4 節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "TimeScale Node"
-msgstr "時間縮放節點"
+msgstr "TimeScale 節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "TimeSeek Node"
-msgstr "時間尋覓節點"
+msgstr "TimeSeek 節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Transition Node"
-msgstr "轉場節點"
+msgstr "Transition 節點"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Import Animations..."
@@ -4790,11 +4817,11 @@ msgstr "匯入動畫…"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Edit Node Filters"
-msgstr "編輯節點過濾"
+msgstr "編輯節點篩選條件"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "Filters..."
-msgstr "過濾..."
+msgstr "篩選..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Contents:"
@@ -4858,7 +4885,7 @@ msgstr "下載雜湊錯誤,檔案可能被篡改。"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Expected:"
-msgstr "預計:"
+msgstr "應為:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Got:"
@@ -5011,7 +5038,8 @@ msgstr ""
msgid ""
"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
"Light' flag is on."
-msgstr "沒有可 Bake 的網格。請確保網格包含 UV2 通道並已開啟「Bake 光照」旗標。"
+msgstr ""
+"無可製作之網格。請確保這些網格包含 UV2 通道並已開啟「Bake Light」旗標。"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Failed creating lightmap images, make sure path is writable."
@@ -5019,10 +5047,10 @@ msgstr "建立光照圖失敗,請確保該路徑可寫入。"
#: editor/plugins/baked_lightmap_editor_plugin.cpp
msgid "Bake Lightmaps"
-msgstr "Bake 光照圖"
+msgstr "建立光照圖"
#: editor/plugins/camera_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Preview"
msgstr "預覽"
@@ -5092,7 +5120,7 @@ msgstr "移動軸心"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotate CanvasItem"
-msgstr "旋轉畫布項目"
+msgstr "旋轉 CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move anchor"
@@ -5100,31 +5128,31 @@ msgstr "移動錨點"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Resize CanvasItem"
-msgstr "調整畫布項目大小"
+msgstr "調整 CanvasItem 大小"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Scale CanvasItem"
-msgstr "縮放畫布項目"
+msgstr "縮放 CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move CanvasItem"
-msgstr "移動畫布項目"
+msgstr "移動 CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
-msgstr "容器子項目的錨點與外邊距 (margin) 值被其母項目複寫。"
+msgstr "容器子項目的錨點與外邊距值遭其母項目複寫。"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Presets for the anchors and margins values of a Control node."
-msgstr "控制節點的錨點與外邊距的 Preset。"
+msgstr "控制節點的錨點與外邊距之預設設定。"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"When active, moving Control nodes changes their anchors instead of their "
"margins."
-msgstr "啟用時,移動控制節點將修改錨點而非外邊距。"
+msgstr "啟用後,移動控制節點將修改錨點而非外邊距。"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Top Left"
@@ -5164,27 +5192,27 @@ msgstr "中央"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Left Wide"
-msgstr "左延長"
+msgstr "左延展"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Top Wide"
-msgstr "上延長"
+msgstr "上延展"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Right Wide"
-msgstr "右延長"
+msgstr "右延展"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Bottom Wide"
-msgstr "下延長"
+msgstr "下延展"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "VCenter Wide"
-msgstr "垂直中央延長"
+msgstr "垂直中央延展"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "HCenter Wide"
-msgstr "水平中央延長"
+msgstr "水平中央延展"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Full Rect"
@@ -5212,7 +5240,7 @@ msgid ""
"Game Camera Override\n"
"Overrides game camera with editor viewport camera."
msgstr ""
-"遊戲相機覆蓋\n"
+"遊戲相機複寫\n"
"以檢視區相機取代遊戲相機。"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5221,7 +5249,7 @@ msgid ""
"Game Camera Override\n"
"No game instance running."
msgstr ""
-"遊戲相機覆蓋\n"
+"遊戲相機複寫\n"
"無正在執行的遊戲實體。"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5254,7 +5282,7 @@ msgstr "清除參考線"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create Custom Bone(s) from Node(s)"
-msgstr "子節點建立自定骨骼"
+msgstr "自節點建立自定骨骼"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Bones"
@@ -5272,7 +5300,7 @@ msgstr "清除 IK 鏈"
msgid ""
"Warning: Children of a container get their position and size determined only "
"by their parent."
-msgstr "警告:容器的子項目的位置與大小有其母項目決定。"
+msgstr "警告:容器子項目之位置與大小由其母項目決定。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/texture_region_editor_plugin.cpp
@@ -5510,8 +5538,8 @@ msgid ""
"Keys are only added to existing tracks, no new tracks will be created.\n"
"Keys must be inserted manually for the first time."
msgstr ""
-"檔物件被轉換、旋轉、或(基於遮罩)縮放時自動插入關鍵影格。\n"
-"關鍵影格只會被新增至現存的軌道,將不會建立新的軌道。\n"
+"當物件被轉換、旋轉 或(基於遮罩)縮放時自動插入關鍵影格。\n"
+"關鍵影格只會被新增至現有軌道,不會建立新軌道。\n"
"第一次必須先手動插入關鍵影格。"
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5524,7 +5552,7 @@ msgstr "動畫關鍵影格與姿勢選項"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
-msgstr "插入關鍵影格(在現有軌道)"
+msgstr "插入關鍵影格(於現有軌道)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
@@ -5582,7 +5610,7 @@ msgstr ""
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Create Polygon3D"
-msgstr "建立多邊形 3D"
+msgstr "建立 Polygon3D"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Edit Poly"
@@ -5678,11 +5706,11 @@ msgstr "Flat 1"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease In"
-msgstr "緩入"
+msgstr "緩慢移入"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease Out"
-msgstr "緩出"
+msgstr "緩慢移出"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Smoothstep"
@@ -5698,7 +5726,7 @@ msgstr "修改曲線切線"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load Curve Preset"
-msgstr "加載曲線 Preset"
+msgstr "加載曲線預設設定"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Add Point"
@@ -5718,7 +5746,7 @@ msgstr "右線性"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load Preset"
-msgstr "載入 Preset"
+msgstr "載入預設設定"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Remove Curve Point"
@@ -5738,7 +5766,7 @@ msgstr "右鍵點擊以新增控制點"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
-msgstr "Bake GI 探針"
+msgstr "製作 GI 探查"
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Gradient Edited"
@@ -5810,7 +5838,7 @@ msgstr "建立導航網格"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Contained Mesh is not of type ArrayMesh."
-msgstr "包含的網格的型別不是陣列網格 (ArrayMesh)。"
+msgstr "包含之 Mesh 並非 ArrayMesh 型別。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "UV Unwrap failed, mesh may not be manifold?"
@@ -5818,7 +5846,7 @@ msgstr "UV 展開失敗,該網格可能並非流形?"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "No mesh to debug."
-msgstr "沒有可除錯的網格。"
+msgstr "沒有可進行偵錯之網格。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Model has no UV in this layer"
@@ -5826,15 +5854,15 @@ msgstr "模型在該圖層上無 UV"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
-msgstr "網格實體 (MeshInstance) 缺乏網格!"
+msgstr "MeshInstance 未包含 Mesh!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh has not surface to create outlines from!"
-msgstr "網格未包含可建立輪廓的表面!"
+msgstr "Mesh 未包含可建立輪廓的表面!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!"
-msgstr "網格的原始類型不是 PRIMITIVE_TRIANGLES!"
+msgstr "Mesh 的原始類型並非 PRIMITIVE_TRIANGLES!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
@@ -5858,8 +5886,8 @@ msgid ""
"automatically.\n"
"This is the most accurate (but slowest) option for collision detection."
msgstr ""
-"建立靜態形體 (StaticBody) 並自動指派一個基於多邊形的碰撞形體。\n"
-"對於碰撞偵測,這是最精確(但最慢)的選項。"
+"建立 StaticBody 並自動指派一個基於多邊形的碰撞形體。\n"
+"對於碰撞偵測,該選項為最精確(但最慢)的選項。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Collision Sibling"
@@ -5871,7 +5899,7 @@ msgid ""
"This is the most accurate (but slowest) option for collision detection."
msgstr ""
"建立基於多邊形的碰撞形狀。\n"
-"對於碰撞偵測,這是最精確(但最慢)的選項。"
+"對於碰撞偵測,該選項為最精確(但最慢)的選項。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Single Convex Collision Sibling"
@@ -5883,7 +5911,7 @@ msgid ""
"This is the fastest (but least accurate) option for collision detection."
msgstr ""
"建立單一凸面碰撞形狀。\n"
-"對於碰撞偵測,這是最快(但最不精確)的選項。"
+"對於碰撞偵測,該選項為最快(但最不精確)的選項。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Multiple Convex Collision Siblings"
@@ -5949,7 +5977,7 @@ msgstr ""
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Mesh Library"
-msgstr "網格庫 (Mesh Library)"
+msgstr "網格庫"
#: editor/plugins/mesh_library_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
@@ -5970,11 +5998,11 @@ msgstr "自場景更新"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and no MultiMesh set in node)."
-msgstr "未指定網格來源(且節點中沒有多網格集 (MultiMesh Set))。"
+msgstr "未指定網格來源(且節點中沒有 MultiMesh 集)。"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and MultiMesh contains no Mesh)."
-msgstr "未指定網格來源(且多網格 (MultiMesh) 未包含網格 (Mesh))。"
+msgstr "未指定網格來源(且 MultiMesh 未包含 Mesh)。"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (invalid path)."
@@ -5982,11 +6010,11 @@ msgstr "網格來源無效(無效的路徑)。"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (not a MeshInstance)."
-msgstr "網格來源無效(不是網格實體 (MeshInstance))。"
+msgstr "網格來源無效(非 MeshInstance)。"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (contains no Mesh resource)."
-msgstr "網格來源無效(未包含網格 (Mesh) 資源)。"
+msgstr "網格來源無效(未包含 Mesh 資源)。"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No surface source specified."
@@ -6010,7 +6038,7 @@ msgstr "選擇來源網格:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Target Surface:"
-msgstr "選擇目標網格:"
+msgstr "選擇目標表面:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate Surface"
@@ -6018,7 +6046,7 @@ msgstr "填充表面"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate MultiMesh"
-msgstr "填充多網格 (MultiMesh)"
+msgstr "填充 MultiMesh"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Target Surface:"
@@ -6080,7 +6108,7 @@ msgstr "產生矩形可見性"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Can only set point into a ParticlesMaterial process material"
-msgstr "僅限指向粒子材料的處理材料 (ParticlesMaterial Process Material)"
+msgstr "僅可將為 ParticlesMaterial 處理材料設定點"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -6097,7 +6125,7 @@ msgstr "幾何體未包含任何面。"
#: editor/plugins/particles_editor_plugin.cpp
msgid "\"%s\" doesn't inherit from Spatial."
-msgstr "「%s」非自 Spatial 繼承。"
+msgstr "「%s」非繼承自 Spatial。"
#: editor/plugins/particles_editor_plugin.cpp
msgid "\"%s\" doesn't contain geometry."
@@ -6133,7 +6161,7 @@ msgstr "發射源: "
#: editor/plugins/particles_editor_plugin.cpp
msgid "A processor material of type 'ParticlesMaterial' is required."
-msgstr "需要「粒子材料 (ParticlesMaterial)」型別的處理器材料。"
+msgstr "需「ParticlesMaterial」型別的處理器材料。"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
@@ -6232,12 +6260,12 @@ msgstr "選項"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Mirror Handle Angles"
-msgstr "鏡像手柄角度"
+msgstr "鏡像控點角度"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Mirror Handle Lengths"
-msgstr "鏡像手柄長度"
+msgstr "鏡像控點長度"
#: editor/plugins/path_editor_plugin.cpp
msgid "Curve Point #"
@@ -6245,15 +6273,15 @@ msgstr "曲線控制點 #"
#: editor/plugins/path_editor_plugin.cpp
msgid "Set Curve Point Position"
-msgstr "設定曲線控制點的位置"
+msgstr "設定曲線控制點位置"
#: editor/plugins/path_editor_plugin.cpp
msgid "Set Curve In Position"
-msgstr "設定曲線的內控制點位置"
+msgstr "設定曲線內控制點位置"
#: editor/plugins/path_editor_plugin.cpp
msgid "Set Curve Out Position"
-msgstr "設定曲線的外控制點位置"
+msgstr "設定曲線外控制點位置"
#: editor/plugins/path_editor_plugin.cpp
msgid "Split Path"
@@ -6282,7 +6310,7 @@ msgstr "移動關節"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid ""
"The skeleton property of the Polygon2D does not point to a Skeleton2D node"
-msgstr "多邊形 2D (Polygon2D) 的骨架屬性未指向骨架 2D (Skeleton2D) 節點"
+msgstr "Polygon2D 的骨架屬性未指向 Skeleton2D 節點"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Sync Bones"
@@ -6304,7 +6332,7 @@ msgstr "建立 UV Map"
msgid ""
"Polygon 2D has internal vertices, so it can no longer be edited in the "
"viewport."
-msgstr "多邊形 2D 有內部頂點,將無法在檢視區編輯。"
+msgstr "Polygon2D 有內部頂點,將無法在檢視區編輯。"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Polygon & UV"
@@ -6344,11 +6372,11 @@ msgstr "描繪骨骼權重"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Open Polygon 2D UV editor."
-msgstr "開啟多邊形 2D UV 編輯器。"
+msgstr "Polygon2D UV 編輯器。"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon 2D UV Editor"
-msgstr "多邊形 2D UV 編輯器"
+msgstr "Polygon2D UV 編輯器"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "UV"
@@ -6396,13 +6424,13 @@ msgstr "縮放多邊形"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create a custom polygon. Enables custom polygon rendering."
-msgstr "建立自定多邊形。啟用自定多邊形算圖。"
+msgstr "建立自定多邊形。啟用自定多邊形算繪。"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid ""
"Remove a custom polygon. If none remain, custom polygon rendering is "
"disabled."
-msgstr "移除自定多邊形。若無剩餘多邊形,將禁用自定多邊形算圖。"
+msgstr "移除自定多邊形。若無剩餘多邊形,將禁用自定多邊形算繪。"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Paint weights with specified intensity."
@@ -6520,11 +6548,11 @@ msgstr "載入資源"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ResourcePreloader"
-msgstr "資源預加載 (ResourcePreloader)"
+msgstr "ResourcePreloader"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "AnimationTree has no path set to an AnimationPlayer"
-msgstr "動畫樹 (AnimationTree) 未設定至動畫播放器 (AnimationPlayer) 的路徑"
+msgstr "AnimationTree 未設定至 AnimationPlayer 的路徑"
#: editor/plugins/root_motion_editor_plugin.cpp
msgid "Path to AnimationPlayer is invalid"
@@ -6540,7 +6568,7 @@ msgstr "關閉並保存修改嗎?"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error writing TextFile:"
-msgstr "寫入文字檔案 (TextFile) 時發生錯誤:"
+msgstr "寫入 TextFile 時發生錯誤:"
#: editor/plugins/script_editor_plugin.cpp
msgid "Could not load file at:"
@@ -6593,7 +6621,7 @@ msgstr "腳本不在工具模式下,無法執行。"
#: editor/plugins/script_editor_plugin.cpp
msgid ""
"To run this script, it must inherit EditorScript and be set to tool mode."
-msgstr "欲執行該腳本,其必須繼承自編輯器腳本 (EditorScript) 並設為工具模式。"
+msgstr "該腳本必須繼承 EditorScript 並設為工具模式才可執行。"
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
@@ -6627,7 +6655,7 @@ msgstr "尋找上一個"
#: editor/plugins/script_editor_plugin.cpp
msgid "Filter scripts"
-msgstr "過濾腳本"
+msgstr "篩選腳本"
#: editor/plugins/script_editor_plugin.cpp
msgid "Toggle alphabetical sorting of the method list."
@@ -6635,7 +6663,7 @@ msgstr "開啟/關閉按照字母順序排列方法列表。"
#: editor/plugins/script_editor_plugin.cpp
msgid "Filter methods"
-msgstr "過濾方法"
+msgstr "篩選方法"
#: editor/plugins/script_editor_plugin.cpp
msgid "Sort"
@@ -6724,11 +6752,11 @@ msgstr "執行"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Into"
-msgstr "步入"
+msgstr "逐步執行"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Over"
-msgstr "步過"
+msgstr "不進入函式"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Break"
@@ -6773,7 +6801,7 @@ msgid ""
"What action should be taken?:"
msgstr ""
"磁碟中的下列檔案已更新。\n"
-"要執行什麼?:"
+"請選擇於執行之操作:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/shader_editor_plugin.cpp
@@ -6833,7 +6861,7 @@ msgstr "只可拖移來自檔案系統的資源。"
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't drop nodes because script '%s' is not used in this scene."
-msgstr "無法防止節點,由於腳本「%s」並未在該場景中使用。"
+msgstr "無法放置節點,由於腳本「%s」並未在該場景中使用。"
#: editor/plugins/script_text_editor.cpp
msgid "Lookup Symbol"
@@ -6901,7 +6929,7 @@ msgstr "向右縮排"
#: editor/plugins/script_text_editor.cpp
msgid "Toggle Comment"
-msgstr "展開/收起註解"
+msgstr "註解/取消註解"
#: editor/plugins/script_text_editor.cpp
msgid "Fold/Unfold Line"
@@ -7006,27 +7034,27 @@ msgstr "著色器"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "This skeleton has no bones, create some children Bone2D nodes."
-msgstr "此骨架未包含骨骼,請建立一些子骨骼 2D (Bone2D) 節點。"
+msgstr "此骨架未包含骨骼,請建立一些子 Bone2D 節點。"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Create Rest Pose from Bones"
-msgstr "自骨骼建立放鬆姿勢"
+msgstr "自骨骼建立靜止姿勢"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Set Rest Pose to Bones"
-msgstr "設定放鬆姿勢至骨骼"
+msgstr "設定靜止姿勢至骨骼"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Skeleton2D"
-msgstr "骨架2D (Sekeleton2D)"
+msgstr "Sekeleton2D"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Make Rest Pose (From Bones)"
-msgstr "製作放鬆姿勢(自骨骼)"
+msgstr "製作靜止姿勢(自骨骼)"
#: editor/plugins/skeleton_2d_editor_plugin.cpp
msgid "Set Bones to Rest Pose"
-msgstr "設定骨骼為放鬆姿勢"
+msgstr "設定骨骼為靜止姿勢"
#: editor/plugins/skeleton_editor_plugin.cpp
msgid "Create physical bones"
@@ -7242,7 +7270,7 @@ msgstr "效果預覽"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr "使用 GLES2 算圖器時無法使用。"
+msgstr "使用 GLES2 轉譯器時無法使用。"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -7285,7 +7313,7 @@ msgid ""
"Note: The FPS value displayed is the editor's framerate.\n"
"It cannot be used as a reliable indication of in-game performance."
msgstr ""
-"注意:顯示的 FPS 值時編輯器的畫面速率。\n"
+"注意:顯示的 FPS 值為編輯器之畫面速率。\n"
"無法實際反映為遊戲中的效能。"
#: editor/plugins/spatial_editor_plugin.cpp
@@ -7496,35 +7524,35 @@ msgstr "未命名的 Gizmo"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
-msgstr "建立網格 2D (Mesh2D)"
+msgstr "建立 Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Mesh2D Preview"
-msgstr "建立網格 2D (Mesh2D) 預覽"
+msgstr "建立 Mesh2D 預覽"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Polygon2D"
-msgstr "建立多邊形 2D (Polygon2D)"
+msgstr "建立 Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Polygon2D Preview"
-msgstr "預覽多邊形 2D (Polygon2D)"
+msgstr "預覽 Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create CollisionPolygon2D"
-msgstr "建立碰撞多邊形 2D (CollisionPolygon2D)"
+msgstr "建立 CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "CollisionPolygon2D Preview"
-msgstr "碰撞多邊形 2D (CollisionPolygon2D) 預覽"
+msgstr "碰撞 CollisionPolygon2D 預覽"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create LightOccluder2D"
-msgstr "建立遮光 2D (LightOccluder2D)"
+msgstr "建立 LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "LightOccluder2D Preview"
-msgstr "遮光 2D (LightOccluder2D) 預覽"
+msgstr "LightOccluder2D 預覽"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite is empty!"
@@ -7540,7 +7568,7 @@ msgstr "無效的幾何圖形,無法以網格取代。"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Convert to Mesh2D"
-msgstr "轉換為網格 2D (Mesh2D)"
+msgstr "轉換為 Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create polygon."
@@ -7548,7 +7576,7 @@ msgstr "無效的幾何圖形,無法建立多邊形。"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Convert to Polygon2D"
-msgstr "轉換為多邊形 2D (Polygon2D)"
+msgstr "轉換為 Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create collision polygon."
@@ -7556,7 +7584,7 @@ msgstr "無效的幾何圖形,無法建立碰撞多邊形。"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create CollisionPolygon2D Sibling"
-msgstr "建立碰撞多邊形 2D (CollisionPolygon2D) 同級"
+msgstr "建立 CollisionPolygon2D 同級"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create light occluder."
@@ -7564,7 +7592,7 @@ msgstr "無效的幾何圖形,無法建立遮光。"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create LightOccluder2D Sibling"
-msgstr "建立遮光 2D (LightOccluder2D) 同級"
+msgstr "建立 LightOccluder2D 同級"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite"
@@ -7643,7 +7671,8 @@ msgid "New Animation"
msgstr "新增動畫"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
+#, fuzzy
+msgid "Speed:"
msgstr "速度 (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -7700,7 +7729,7 @@ msgstr "自 Sprite 表建立幀"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "SpriteFrames"
-msgstr "SpriteFrames(Sprite 影格)"
+msgstr "SpriteFrame"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Set Region Rect"
@@ -7708,7 +7737,7 @@ msgstr "設定區域矩形 (Region Rect)"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Set Margin"
-msgstr "設置外邊距"
+msgstr "設定外邊距"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap Mode:"
@@ -7745,7 +7774,7 @@ msgstr "分隔線:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "TextureRegion"
-msgstr "紋理區域 (TextureRegion)"
+msgstr "TextureRegion"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add All Items"
@@ -7849,7 +7878,7 @@ msgstr "許多"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Disabled LineEdit"
-msgstr "已停用的行編輯"
+msgstr "已停用的 LineEdit"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Tab 1"
@@ -7951,7 +7980,7 @@ msgstr "啟用優先級"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Filter tiles"
-msgstr "過濾圖塊"
+msgstr "篩選圖塊"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Give a TileSet resource to this TileMap to use its tiles."
@@ -8229,7 +8258,7 @@ msgstr "建立圖塊"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Set Tile Icon"
-msgstr "設定磁貼圖示"
+msgstr "設定圖塊圖示"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Edit Tile Bitmask"
@@ -8466,7 +8495,7 @@ msgstr "設定表示式"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Resize VisualShader node"
-msgstr "調整視覺著色器 (VisualShader) 節點大小"
+msgstr "調整 VisualShader 節點大小"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Set Uniform Name"
@@ -8535,7 +8564,7 @@ msgstr "將 HSV 向量轉為同等之 RGB。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts RGB vector to HSV equivalent."
-msgstr "將 RGB 向量轉為同等至 HSV。"
+msgstr "將 RGB 向量轉為同等之 HSV。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Sepia function."
@@ -8649,7 +8678,7 @@ msgstr "回傳兩個參數間比較的布林結果。"
msgid ""
"Returns the boolean result of the comparison between INF (or NaN) and a "
"scalar parameter."
-msgstr "回傳 INF(或 NaN)與一個純量間比較的布林結果。"
+msgstr "回傳 INF (或 NaN) 與一個純量間比較的布林結果。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Boolean constant."
@@ -8701,7 +8730,7 @@ msgstr "純量運算子。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "E constant (2.718282). Represents the base of the natural logarithm."
-msgstr "E 常數(2.718282)。表示自然對數的底數。"
+msgstr "E 常數 (2.718282)。表示自然對數的底數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Epsilon constant (0.00001). Smallest possible scalar number."
@@ -8725,7 +8754,7 @@ msgstr "π (Pi) 常數 (3.141593) 或 180 度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Tau constant (6.283185) or 360 degrees."
-msgstr "τ 常數 (6.283185) 或 360 度。"
+msgstr "τ (Tau) 常數 (6.283185) 或 360 度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Sqrt2 constant (1.414214). Square root of 2."
@@ -8770,7 +8799,7 @@ msgstr "尋找大於或等於該參數最近的整數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Constrains a value to lie between two further values."
-msgstr "將值限制欲兩個值之間。"
+msgstr "將值限制於兩個值之間。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the cosine of the parameter."
@@ -8782,7 +8811,7 @@ msgstr "回傳參數的雙曲餘弦值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in radians to degrees."
-msgstr "將弧度轉換為度。"
+msgstr "將弧度轉換為角度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Base-e Exponential."
@@ -8802,7 +8831,7 @@ msgstr "計算引數的小數部分。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the inverse of the square root of the parameter."
-msgstr "回傳參數的平方根的倒數。"
+msgstr "回傳參數的平方根之倒數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Natural logarithm."
@@ -8839,7 +8868,7 @@ msgstr "回傳第一個參數的第二個參數冪次的值。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Converts a quantity in degrees to radians."
-msgstr "將度數轉換為弧度。"
+msgstr "將角度轉換為弧度。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "1.0 / scalar"
@@ -8851,7 +8880,7 @@ msgstr "尋找參數最近的整數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Finds the nearest even integer to the parameter."
-msgstr "尋找參數最近的整數。"
+msgstr "尋找參數最近的偶數。"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Clamps the value between 0.0 and 1.0."
@@ -9230,7 +9259,7 @@ msgstr "(限片段/光照模式)(純量)加總「x」與「y」進行
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "VisualShader"
-msgstr "視覺著色器 (VisualShader)"
+msgstr "VisualShader"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Edit Visual Property"
@@ -9258,7 +9287,7 @@ msgstr "是否要自列表中刪除「%s」修正檔?"
#: editor/project_export.cpp
msgid "Delete preset '%s'?"
-msgstr "確定要刪除 Preset「%s」?"
+msgstr "確定要刪除預設設定「%s」?"
#: editor/project_export.cpp
msgid ""
@@ -9275,11 +9304,11 @@ msgid ""
"export settings."
msgstr ""
"為平台「%s」匯出專案失敗。\n"
-"可能使由於匯出 Preset 或匯出設定中的組態設定有問題導致。"
+"可能是由於匯出預設設定或匯出設定中的組態設定有問題導致。"
#: editor/project_export.cpp
msgid "Release"
-msgstr "釋出"
+msgstr "發行"
#: editor/project_export.cpp
msgid "Exporting All"
@@ -9295,7 +9324,7 @@ msgstr "該平台的匯出範本遺失/損毀:"
#: editor/project_export.cpp
msgid "Presets"
-msgstr "Preset"
+msgstr "預設設定"
#: editor/project_export.cpp editor/project_settings_editor.cpp
msgid "Add..."
@@ -9306,8 +9335,8 @@ msgid ""
"If checked, the preset will be available for use in one-click deploy.\n"
"Only one preset per platform may be marked as runnable."
msgstr ""
-"若選中,則 Preset 將可使用一鍵部署。\n"
-"每個平台只可將一個 Preset 設為可執行。"
+"若選中,則預設設定將可使用單鍵部署。\n"
+"每個平台只可將一個預設設定設為可執行。"
#: editor/project_export.cpp
msgid "Export Path"
@@ -9342,7 +9371,7 @@ msgid ""
"Filters to export non-resource files/folders\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
-"過濾非資源的檔案/資料夾以匯出\n"
+"篩選非資源的檔案/資料夾以進行匯出\n"
"(以半形逗號區分,如: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
@@ -9350,7 +9379,7 @@ msgid ""
"Filters to exclude files/folders from project\n"
"(comma-separated, e.g: *.json, *.txt, docs/*)"
msgstr ""
-"過濾以在專案內排除檔案/資料夾\n"
+"進行篩選以在專案內排除檔案/資料夾\n"
"(以半形逗號區分,如: *.json, *.txt, docs/*)"
#: editor/project_export.cpp
@@ -9550,7 +9579,7 @@ msgstr "專案安裝路徑:"
#: editor/project_manager.cpp
msgid "Renderer:"
-msgstr "算圖器:"
+msgstr "轉譯器:"
#: editor/project_manager.cpp
msgid "OpenGL ES 3.0"
@@ -9586,7 +9615,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Renderer can be changed later, but scenes may need to be adjusted."
-msgstr "稍後仍可更改算圖器,但可能需要對場景進行調整。"
+msgstr "稍後仍可更改轉譯器,但可能需要對場景進行調整。"
#: editor/project_manager.cpp
msgid "Unnamed Project"
@@ -9602,7 +9631,7 @@ msgstr "錯誤:專案在檔案系統上遺失。"
#: editor/project_manager.cpp
msgid "Can't open project at '%s'."
-msgstr "無法在「%s」中打開專案。"
+msgstr "無法於「%s」打開專案。"
#: editor/project_manager.cpp
msgid "Are you sure to open more than one project?"
@@ -9625,7 +9654,7 @@ msgstr ""
"%s\n"
"\n"
"若您繼續開啟,會將其轉換為目前 Godot 版本的組態設定檔案格式。\n"
-"警告:您將不再可使用過往版本的引擎開啟該專案。"
+"警告:您將不再可使用舊版的 Godot 開啟該專案。"
#: editor/project_manager.cpp
msgid ""
@@ -9638,12 +9667,13 @@ msgid ""
"Warning: You won't be able to open the project with previous versions of the "
"engine anymore."
msgstr ""
-"下列專案設定檔時由較舊版本的引擎所產生,且需要將其轉換為目前的版本:\n"
+"下列專案設定檔是由較舊版本的 Godot 產生,需進行轉換以適用於目前版本的 "
+"Godot:\n"
"\n"
"%s\n"
"\n"
"要進行轉換嗎?\n"
-"警告:您將不再可使用過往版本的引擎開啟該專案。"
+"警告:您將不再可使用舊版的 Godot 開啟該專案。"
#: editor/project_manager.cpp
msgid ""
@@ -9709,9 +9739,10 @@ msgid ""
"Are you sure to scan %s folders for existing Godot projects?\n"
"This could take a while."
msgstr ""
-"確定要為現存的 Godot 專案掃描 %s 資料夾嗎?\n"
+"確定要掃描 %s 中的 Godot 專案嗎?\n"
"這可能需要一段時間。"
+#. TRANSLATORS: This refers to the application where users manage their Godot projects.
#: editor/project_manager.cpp
msgid "Project Manager"
msgstr "專案管理員"
@@ -9766,12 +9797,12 @@ msgid ""
"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 "
-msgstr "鍵 "
+msgstr "按鍵 "
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -9789,7 +9820,7 @@ msgstr "滑鼠按鈕"
msgid ""
"Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'"
-msgstr "無效的操作名稱。不能為空或包含「/」、「:」、「=」、「\\」或「\"」"
+msgstr "無效的操作名稱。名稱不可留空或包含 “/”, “:”, “=”, “\\” 或 “\"”"
#: editor/project_settings_editor.cpp
msgid "An action with the name '%s' already exists."
@@ -9885,7 +9916,7 @@ msgstr "新增事件"
#: editor/project_settings_editor.cpp
msgid "Button"
-msgstr "Button (按鈕)"
+msgstr "按鈕"
#: editor/project_settings_editor.cpp
msgid "Left Button."
@@ -9931,7 +9962,7 @@ msgstr "刪除項目"
msgid ""
"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or "
"'\"'."
-msgstr "無效的操作名稱。不能為空或包含「/」、「:」、「=」、「\\」或「\"」。"
+msgstr "無效的操作名稱。名稱不可留空或包含 “/”, “:”, “=”, “\\” 或 “\"”。"
#: editor/project_settings_editor.cpp
msgid "Add Input Action"
@@ -9983,11 +10014,11 @@ msgstr "移除資源重映射選項"
#: editor/project_settings_editor.cpp
msgid "Changed Locale Filter"
-msgstr "更改區域過濾"
+msgstr "更改地區設定篩選條件"
#: editor/project_settings_editor.cpp
msgid "Changed Locale Filter Mode"
-msgstr "更改區域過濾模式"
+msgstr "更改地區設定篩選模式"
#: editor/project_settings_editor.cpp
msgid "Project Settings (project.godot)"
@@ -10051,31 +10082,31 @@ msgstr "資源:"
#: editor/project_settings_editor.cpp
msgid "Remaps by Locale:"
-msgstr "依語言重映射:"
+msgstr "依地區設定重映射:"
#: editor/project_settings_editor.cpp
msgid "Locale"
-msgstr "語言"
+msgstr "地區"
#: editor/project_settings_editor.cpp
msgid "Locales Filter"
-msgstr "語言過濾"
+msgstr "地區篩選條件"
#: editor/project_settings_editor.cpp
msgid "Show All Locales"
-msgstr "顯示所有語言"
+msgstr "顯示所有地區"
#: editor/project_settings_editor.cpp
msgid "Show Selected Locales Only"
-msgstr "僅顯示選定的語言"
+msgstr "僅顯示選定的地區"
#: editor/project_settings_editor.cpp
msgid "Filter mode:"
-msgstr "過濾模式:"
+msgstr "篩選模式:"
#: editor/project_settings_editor.cpp
msgid "Locales:"
-msgstr "語言:"
+msgstr "地區:"
#: editor/project_settings_editor.cpp
msgid "AutoLoad"
@@ -10087,7 +10118,7 @@ msgstr "外掛"
#: editor/property_editor.cpp
msgid "Preset..."
-msgstr "Preset..."
+msgstr "預設設定..."
#: editor/property_editor.cpp
msgid "Zero"
@@ -10099,7 +10130,7 @@ msgstr "緩入緩出"
#: editor/property_editor.cpp
msgid "Easing Out-In"
-msgstr "緩入緩出(反向)"
+msgstr "緩出緩入"
#: editor/property_editor.cpp
msgid "File..."
@@ -10146,11 +10177,18 @@ msgid "Batch Rename"
msgstr "批次重新命名"
#: editor/rename_dialog.cpp
-msgid "Prefix"
+#, fuzzy
+msgid "Replace:"
+msgstr "取代: "
+
+#: editor/rename_dialog.cpp
+#, fuzzy
+msgid "Prefix:"
msgstr "前置"
#: editor/rename_dialog.cpp
-msgid "Suffix"
+#, fuzzy
+msgid "Suffix:"
msgstr "後置"
#: editor/rename_dialog.cpp
@@ -10198,7 +10236,8 @@ msgid "Per-level Counter"
msgstr "各級別分別計數器"
#: editor/rename_dialog.cpp
-msgid "If set the counter restarts for each group of child nodes"
+#, fuzzy
+msgid "If set, the counter restarts for each group of child nodes."
msgstr "若啟用則計數器將依據每組子節點重新啟動"
#: editor/rename_dialog.cpp
@@ -10258,7 +10297,8 @@ msgid "Reset"
msgstr "重設"
#: editor/rename_dialog.cpp
-msgid "Regular Expression Error"
+#, fuzzy
+msgid "Regular Expression Error:"
msgstr "正規表示式錯誤"
#: editor/rename_dialog.cpp
@@ -10333,7 +10373,7 @@ msgstr "取消附加腳本"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
-msgstr "此操作無法在樹狀根執行。"
+msgstr "此操作無法在樹狀根節點執行。"
#: editor/scene_tree_dock.cpp
msgid "Move Node In Parent"
@@ -10364,6 +10404,10 @@ msgid "Make node as Root"
msgstr "將節點設為根節點"
#: editor/scene_tree_dock.cpp
+msgid "Delete %d nodes and any children?"
+msgstr "確定要刪除節點「%s」與其子節點嗎?"
+
+#: editor/scene_tree_dock.cpp
msgid "Delete %d nodes?"
msgstr "刪除 %d 個節點?"
@@ -10456,7 +10500,7 @@ msgstr "更改節點的型別"
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
-msgstr "無法保存新場景。很可能由於無法滿足其依賴性(實體)。"
+msgstr "無法保存新場景。可能是由於無法滿足其依賴性(實體)。"
#: editor/scene_tree_dock.cpp
msgid "Error saving scene."
@@ -10493,7 +10537,7 @@ msgid ""
"disabled."
msgstr ""
"無法附加腳本:未註冊任何語言。\n"
-"有可能是由於編輯器在建構時未啟用任何語言模組。"
+"可能是由於編輯器在建構時未啟用任何語言模組。"
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
@@ -10634,7 +10678,7 @@ msgid ""
"AnimationPlayer is pinned.\n"
"Click to unpin."
msgstr ""
-"已固定動畫播放器 (AnimationPlayer)。\n"
+"已固定 AnimationPlayer。\n"
"點擊以取消固定。"
#: editor/scene_tree_editor.cpp
@@ -10739,7 +10783,7 @@ msgstr "可用的腳本路徑/名稱。"
#: editor/script_create_dialog.cpp
msgid "Allowed: a-z, A-Z, 0-9, _ and ."
-msgstr "可使用:a-z、A-Z、0-9、_ 以及 ."
+msgstr "可使用:a-z, A-Z, 0-9, _ 以及 ."
#: editor/script_create_dialog.cpp
msgid "Built-in script (into scene file)."
@@ -10761,7 +10805,7 @@ msgstr "腳本檔案已存在。"
msgid ""
"Note: Built-in scripts have some limitations and can't be edited using an "
"external editor."
-msgstr "注意:內置腳本有些限制,且無法使用外部編輯器來編輯。"
+msgstr "注意:內建腳本有些限制,且無法使用外部編輯器來編輯。"
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -10869,11 +10913,11 @@ msgstr "數值"
#: editor/script_editor_debugger.cpp
msgid "Monitors"
-msgstr "監視程式"
+msgstr "監視器"
#: editor/script_editor_debugger.cpp
msgid "Pick one or more items from the list to display the graph."
-msgstr "子列表中選擇一個或多個項目以顯示圖表。"
+msgstr "在子列表中選擇一個或多個項目以顯示圖表。"
#: editor/script_editor_debugger.cpp
msgid "List of Video Memory Usage by Resource:"
@@ -10957,7 +11001,7 @@ msgstr "更改光照半徑"
#: editor/spatial_editor_gizmos.cpp
msgid "Change AudioStreamPlayer3D Emission Angle"
-msgstr "更改音訊串流播放器 3D (AudioStreamPlayer3D) 發射角"
+msgstr "更改 AudioStreamPlayer3D 發射角"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Camera FOV"
@@ -10977,7 +11021,7 @@ msgstr "更改粒子 AABB"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Probe Extents"
-msgstr "更改探針範圍"
+msgstr "更改探查範圍"
#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp
msgid "Change Sphere Shape Radius"
@@ -11237,11 +11281,11 @@ msgstr "選擇距離:"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Filter meshes"
-msgstr "過濾網格"
+msgstr "篩選網格"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
-msgstr "提供網格庫資源予該網格地圖以使用其網格。"
+msgstr "提供 MeshLibrary 予該 GridMap 以使用其網格。"
#: modules/mono/csharp_script.cpp
msgid "Class name can't be a reserved keyword"
@@ -11253,7 +11297,7 @@ msgstr "內部異常堆疊回溯結束"
#: modules/recast/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
-msgstr "Bake 導航網格 (NavMesh)"
+msgstr "製作 NavMesh"
#: modules/recast/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
@@ -11391,11 +11435,11 @@ msgstr "訊號:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Create a new signal."
-msgstr "建立一個新的訊號。"
+msgstr "建立一個新訊號。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name is not a valid identifier:"
-msgstr "名稱不是一個有效的識別符:"
+msgstr "名稱並非有效識別符:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name already in use by another func/var/signal:"
@@ -11451,13 +11495,12 @@ msgstr "重複視覺腳本 (VisualScript) 節點"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature."
-msgstr ""
-"按住 %s 以拖移 Getter 節點。按住 Shift 以拖移一個通用的簽章 (Signature)。"
+msgstr "按住 %s 以拖移 Getter 節點。按住 Shift 以拖移通用簽章 (Signature)。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
-"按住 Ctrl 以拖移 Getter 節點。按住 Shift 以拖移一個通用的簽名 (Signature)。"
+"按住 Ctrl 以拖移 Getter 節點。按住 Shift 以拖移通用通用簽章 (Signature)。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a simple reference to the node."
@@ -11477,7 +11520,7 @@ msgstr "按住 Ctrl 以拖動一個變數 Setter 節點。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Preload Node"
-msgstr "新增餘載 (Preload) 節點"
+msgstr "新增預載 (Preload) 節點"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -11665,7 +11708,7 @@ msgstr "無效的索引屬性名稱。"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
-msgstr "基礎物件不是一個節點!"
+msgstr "基礎物件並非節點!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Path does not lead Node!"
@@ -11677,11 +11720,11 @@ msgstr "無效的索引屬性名稱「%s」,於節點「%s」。"
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
-msgstr ": 無效的引數型別 : "
+msgstr ": 無效的引數型別: "
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid arguments: "
-msgstr ": 無效的引數 : "
+msgstr ": 無效的引數: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableGet not found in script: "
@@ -11751,11 +11794,11 @@ msgstr "尚未於編輯器設定中設定 OpenJDK Jarsigner。"
#: platform/android/export/export.cpp
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
-msgstr "尚未於編輯器設定或 Preset 中設定除錯鑰匙圈 (Keystore)。"
+msgstr "尚未於編輯器設定或預設設定中設定金鑰儲存區 (Keystore)。"
#: platform/android/export/export.cpp
msgid "Release keystore incorrectly configured in the export preset."
-msgstr "釋出 Keystore 中不正確之組態設定至匯出 Preset。"
+msgstr "發行金鑰儲存區中不正確之組態設定至匯出預設設定。"
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
@@ -11866,7 +11909,7 @@ msgstr "無效的識別符:"
#: platform/iphone/export/export.cpp
msgid "Required icon is not specified in the preset."
-msgstr "必須在 Preset 中指定必填圖示。"
+msgstr "必須在預設設定中指定必填圖示。"
#: platform/javascript/export/export.cpp
msgid "Stop HTTP Server"
@@ -11979,8 +12022,7 @@ msgid ""
"define its shape."
msgstr ""
"該節點無形狀,故無法與其他物件碰撞或互動。\n"
-"請考慮新增一個 CollisionShape2D 或 CollisionPolygon2D 為其子節點以定義其形"
-"狀。"
+"建議您新增 CollisionShape2D 或 CollisionPolygon2D 作為其子節點以定義其形狀。"
#: scene/2d/collision_polygon_2d.cpp
msgid ""
@@ -11988,7 +12030,7 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
-"CollisionPolygon2D 只能為 CollisionObject2D 衍生的節點提供碰撞形狀資訊。請僅"
+"CollisionPolygon2D 僅可為 CollisionObject2D 衍生的節點提供碰撞形狀資訊。請僅"
"於 Area2D、StaticBody2D、RigidBody2D、KinematicBody2D…等節點下作為子節點使"
"用。"
@@ -12002,7 +12044,7 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
-"CollisionShape2D 只能為 CollisionObject2D 衍生的節點提供碰撞形狀資訊。請僅於 "
+"CollisionShape2D 僅可為 CollisionObject2D 衍生的節點提供碰撞形狀資訊。請僅於 "
"Area2D、StaticBody2D、RigidBody2D、KinematicBody2D…等節點下作為子節點使用以提"
"供形狀。"
@@ -12012,6 +12054,14 @@ msgid ""
"shape resource for it!"
msgstr "CollisionShape2D 必須被賦予形狀才能運作。請先建立形狀!"
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"Polygon-based shapes are not meant be used nor edited directly through the "
+"CollisionShape2D node. Please use the CollisionPolygon2D node instead."
+msgstr ""
+"基於多邊形的形狀不應該被 CollisionShape2D 節點直接使用或編輯。請使用 "
+"CollisionPolygon2D 節點。"
+
#: scene/2d/cpu_particles_2d.cpp
msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
@@ -12063,7 +12113,7 @@ msgid ""
"CPUParticles\" option for this purpose."
msgstr ""
"GLES2 視訊驅動程式目前不支援基於 GPU 的粒子。\n"
-"請改為使用 CPUParticles2D 節點。你可以使用「轉換為 CPUParticles」選項。"
+"請改為使用 CPUParticles2D 節點。可使用「Convert to CPUParticles」選項。"
#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
msgid ""
@@ -12075,7 +12125,9 @@ msgstr "尚未指定要處理粒子的材料,故未產生任何行為。"
msgid ""
"Particles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
-msgstr "Particles2D 動畫需要使用開啟了「粒子動畫」的 CanvasItemMaterial。"
+msgstr ""
+"Particles2D 動畫需要使用開啟了「Particles Animation(粒子動畫)」的 "
+"CanvasItemMaterial。"
#: scene/2d/path_2d.cpp
msgid "PathFollow2D only works when set as a child of a Path2D node."
@@ -12106,7 +12158,7 @@ msgstr "Bone2D 僅在其為 Skeleton2D 或另一個 Bone2D 的子節點時有效
#: scene/2d/skeleton_2d.cpp
msgid ""
"This bone lacks a proper REST pose. Go to the Skeleton2D node and set one."
-msgstr "該骨骼缺少適當的 REST 姿勢。請跳至 Skeleton2D 節點並進行設定。"
+msgstr "該骨骼缺少適當的「靜止姿勢」。請跳至 Skeleton2D 節點並進行設定。"
#: scene/2d/tile_map.cpp
msgid ""
@@ -12114,7 +12166,7 @@ msgid ""
"to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, "
"KinematicBody2D, etc. to give them a shape."
msgstr ""
-"CollisionShape2D 只能為 CollisionObject2D 衍生的節點提供碰撞形狀資訊。請將其"
+"CollisionShape2D 僅可為 CollisionObject2D 衍生的節點提供碰撞形狀資訊。請將其"
"設為 Area2D、StaticBody2D、RigidBody2D、KinematicBody2D… 的子節點以賦予其形"
"狀。"
@@ -12183,7 +12235,7 @@ msgid ""
"its shape."
msgstr ""
"該節點沒有形狀,故無法與其他物件碰撞或互動。\n"
-"請考慮新增一個 CollisionShape 或 CollisionPolygon 作為其子節點以定義其形狀。"
+"建議您新增 CollisionShape 或 CollisionPolygon 作為其子節點以定義其形狀。"
#: scene/3d/collision_polygon.cpp
msgid ""
@@ -12191,7 +12243,7 @@ msgid ""
"CollisionObject derived node. Please only use it as a child of Area, "
"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
msgstr ""
-"CollisionPolygon 只能為 CollisionObject 衍生的節點提供碰撞形狀資訊。請僅於 "
+"CollisionPolygon 僅可為 CollisionObject 衍生的節點提供碰撞形狀資訊。請僅於 "
"Area、StaticBody、RigidBody、KinematicBody…等節點下作為子節點使用。"
#: scene/3d/collision_polygon.cpp
@@ -12204,7 +12256,7 @@ msgid ""
"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
"KinematicBody, etc. to give them a shape."
msgstr ""
-"CollisionShape 只能為 CollisionObject 衍生的節點提供碰撞形狀資訊。請僅於 "
+"CollisionShape 僅可為 CollisionObject 衍生的節點提供碰撞形狀資訊。請僅於 "
"Area、StaticBody、RigidBody、KinematicBody…等節點下作為子節點使用。"
#: scene/3d/collision_shape.cpp
@@ -12217,7 +12269,7 @@ msgstr "CollisionShape 必須被賦予形狀才能運作。請先建立形狀。
msgid ""
"Plane shapes don't work well and will be removed in future versions. Please "
"don't use them."
-msgstr "平面形狀的運作不太正常,且將在未來的版本移除。請勿使用。"
+msgstr "平面形狀時常無法正常使用,且將在未來的版本移除。請勿使用。"
#: scene/3d/collision_shape.cpp
msgid ""
@@ -12248,6 +12300,11 @@ msgstr ""
"GLES2 視訊驅動程式不支援 GIProbs。\n"
"請改為使用 BakedLightmap。"
+#: scene/3d/interpolated_camera.cpp
+msgid ""
+"InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
+msgstr ""
+
#: scene/3d/light.cpp
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "角度大於 90 度的 SpotLight 無法投射出陰影。"
@@ -12271,7 +12328,7 @@ msgid ""
"\" option for this purpose."
msgstr ""
"GLES2 視訊驅動程式不支援基於 GPU 的粒子。\n"
-"請改為使用 CPUParticles 節點。為此您可以使用「轉換為 CPUParticles」選項。"
+"請改為使用 CPUParticles 節點。可使用「Convert to CPUParticles」選項。"
#: scene/3d/particles.cpp
msgid ""
@@ -12295,8 +12352,8 @@ msgid ""
"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its "
"parent Path's Curve resource."
msgstr ""
-"PathFollow 的 ROTATION_ORIENTED 需要在其母節點 Path 的 Curve 資源內啟用「上向"
-"量 (Up Vector)」。"
+"PathFollow 的 ROTATION_ORIENTED 需要在其母節點 Path 的 Curve 資源內啟用「Up "
+"Vector」。"
#: scene/3d/physics_body.cpp
msgid ""
@@ -12313,7 +12370,7 @@ msgid ""
"The \"Remote Path\" property must point to a valid Spatial or Spatial-"
"derived node to work."
msgstr ""
-"「遠端路徑」屬性必須指向一個有效的 Spatial 或 Spatial 衍生之節點才可運作。"
+"「Remote Path」屬性必須指向一個有效的 Spatial 或 Spatial 衍生之節點才可運作。"
#: scene/3d/soft_body.cpp
msgid "This body will be ignored until you set a mesh."
@@ -12362,8 +12419,8 @@ msgid ""
"This WorldEnvironment is ignored. Either add a Camera (for 3D scenes) or set "
"this environment's Background Mode to Canvas (for 2D scenes)."
msgstr ""
-"已忽略該 WorldEnvironment。請(為 3D 場景)新增一個相機或(為 2D 場景)設定環"
-"境之背景模式 (Background Mode) 為畫布 (Canvas)。"
+"已忽略該 WorldEnvironment。請(為 3D 場景)新增一個相機或(為 2D 場景)將 "
+"Environment 之 Background Mode 設為 Canvas。"
#: scene/animation/animation_blend_tree.cpp
msgid "On BlendTree node '%s', animation not found: '%s'"
@@ -12413,7 +12470,7 @@ msgid ""
msgstr ""
"色彩: #%s\n"
"左鍵點擊:設定色彩\n"
-"右鍵點擊:刪除 Preset"
+"右鍵點擊:刪除預設設定"
#: scene/gui/color_picker.cpp
msgid "Pick a color from the editor window."
@@ -12433,7 +12490,7 @@ msgstr "在 16 進位與代碼值之間切換。"
#: scene/gui/color_picker.cpp
msgid "Add current color as a preset."
-msgstr "將目前的顏色加入 Preset。"
+msgstr "將目前的顏色加入預設設定。"
#: scene/gui/container.cpp
msgid ""
@@ -12450,8 +12507,8 @@ msgid ""
"The Hint Tooltip won't be displayed as the control's Mouse Filter is set to "
"\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"."
msgstr ""
-"由於設定的滑鼠篩選 (Mouse Filter) 設定為「忽略 (Ignore)」,將不會顯示提示 "
-"Tooltip 。要解決該問題,請將滑鼠篩選設為「停止 (Stop)」或「通過 (Pass)」。"
+"由於設定的 Mouse Filter 設定為「Ignore」,將不會顯示提示工具提示 。要解決該問"
+"題,請將 Mouse Filter 設為「Stop」或「Pass」。"
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -12472,7 +12529,7 @@ msgstr ""
#: scene/gui/range.cpp
msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0."
-msgstr "若啟用「表示式編輯」,則「最小值」必須大於 0。"
+msgstr "若啟用「Exp Edit」,則「Min Value」必須大於 0。"
#: scene/gui/scroll_container.cpp
msgid ""
@@ -12492,7 +12549,7 @@ msgstr "(其它)"
msgid ""
"Default Environment as specified in Project Settings (Rendering -> "
"Environment -> Default Environment) could not be loaded."
-msgstr "無法載入專案設定中指定的預設環境(算圖 -> 環境 -> 預設環境)。"
+msgstr "無法載入專案設定中指定的預設環境(算繪 -> 環境 -> 預設環境)。"
#: scene/main/viewport.cpp
msgid ""
@@ -12501,13 +12558,13 @@ msgid ""
"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
"texture to some node for display."
msgstr ""
-"該 Viewport 尚未被設定為算圖目標。若你想直接將其內容顯示於畫面上,請將其設為 "
+"該 Viewport 尚未被設定為算繪目標。若你想直接將其內容顯示於畫面上,請將其設為 "
"Control 的子節點以讓其取得大小。否則請將其設為 RenderTarget 並指派其內部紋理"
"為其他節點以顯示。"
#: scene/main/viewport.cpp
msgid "Viewport size must be greater than 0 to render anything."
-msgstr "Viewport 大小必須大於 0 才可進行算圖。"
+msgstr "Viewport 大小必須大於 0 才可進行算繪。"
#: scene/resources/visual_shader_nodes.cpp
msgid "Invalid source for preview."
@@ -12537,6 +12594,18 @@ msgstr "Varying 變數只可在頂點函式中指派。"
msgid "Constants cannot be modified."
msgstr "不可修改常數。"
+#~ msgid "FileSystem and Import Docks"
+#~ msgstr "檔案系統與匯入 Dock"
+
+#~ msgid ""
+#~ "When exporting or deploying, the resulting executable will attempt to "
+#~ "connect to the IP of this computer in order to be debugged."
+#~ msgstr ""
+#~ "匯出或部署時,輸出的可執行檔將會嘗試連接到這台電腦的 IP 位置以進行除錯。"
+
+#~ msgid "Current scene was never saved, please save it prior to running."
+#~ msgstr "目前的場景從未被保存,請先保存以執行。"
+
#~ msgid "Not in resource path."
#~ msgstr "不在資源路徑中。"