diff options
Diffstat (limited to 'editor')
166 files changed, 14058 insertions, 8823 deletions
diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index d569a2ca0a..52c984cbc0 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -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 37db3ba780..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,7 +1451,7 @@ 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); } } } @@ -1591,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; } @@ -1620,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; } @@ -1645,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() { @@ -1681,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); @@ -1693,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); 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 d3dff3f375..d1661fd7b3 100644 --- a/editor/connections_dialog.cpp +++ b/editor/connections_dialog.cpp @@ -714,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. @@ -754,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); } } 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/editor_about.cpp b/editor/editor_about.cpp index aae476ccf4..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 }; 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_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 0e851734a7..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)) { @@ -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 bce34db740..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); 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 381ff88890..a6321ce058 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"))); @@ -2543,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: { @@ -2624,6 +2629,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { case SETTINGS_TOGGLE_CONSOLE: { bool was_visible = DisplayServer::get_singleton()->is_console_visible(); DisplayServer::get_singleton()->console_set_visible(!was_visible); + EditorSettings::get_singleton()->set_setting("interface/editor/hide_console_window", was_visible); } break; case EDITOR_SCREENSHOT: { screenshot_timer->start(); @@ -2816,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()); @@ -3622,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() { @@ -4710,10 +4717,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()) { @@ -5115,7 +5122,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]; @@ -5146,9 +5152,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); } } @@ -5344,9 +5347,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)); @@ -5615,10 +5620,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(); @@ -6192,7 +6197,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(); @@ -6617,6 +6624,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))); @@ -6624,6 +6632,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)); 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 dea76ac997..9e68ef2f35 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(); } @@ -2924,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(); } } @@ -2993,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"); } } @@ -3090,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; + } } } 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 f86b485dd1..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")) { @@ -334,6 +334,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("interface/editor/automatically_open_screenshots", true); _initial_set("interface/editor/single_window_mode", false); hints["interface/editor/single_window_mode"] = PropertyInfo(Variant::BOOL, "interface/editor/single_window_mode", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); + _initial_set("interface/editor/hide_console_window", false); _initial_set("interface/editor/save_each_scene_on_quit", true); // Regression _initial_set("interface/editor/quit_confirmation", true); @@ -444,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); @@ -543,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"); @@ -705,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)); @@ -934,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; } @@ -1478,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) { @@ -1542,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); @@ -1550,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 8d54bc8021..79525ced51 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -218,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); } @@ -868,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)); @@ -1179,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 da191fbc92..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")); } diff --git a/editor/editor_translation_parser.h b/editor/editor_translation_parser.h index fb8aa6ec9b..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; }; 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 31903c89be..0071f169ac 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -2300,6 +2300,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 +2311,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); 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/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/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 52cf9c1869..c67e16d371 100644 --- a/editor/input_map_editor.cpp +++ b/editor/input_map_editor.cpp @@ -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_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/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/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 ed77e6e3c4..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); @@ -3113,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() { @@ -3123,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) { @@ -3214,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; } @@ -3252,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) { @@ -3536,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); @@ -3561,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); } @@ -3717,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(); } } @@ -4391,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]); } @@ -5275,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 @@ -5977,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))); @@ -6695,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 20eef1cebd..be8ddf789b 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -1585,15 +1585,14 @@ void ScriptEditor::get_breakpoints(List<String> *p_breakpoints) { continue; } - List<int> bpoints; - se->get_breakpoints(&bpoints); String base = script->get_path(); 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)); } } } diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h index 1234ebd267..c2b0b458eb 100644 --- a/editor/plugins/script_editor_plugin.h +++ b/editor/plugins/script_editor_plugin.h @@ -151,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; diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index 4b89ca1216..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 { @@ -145,9 +145,9 @@ void ScriptTextEditor::set_edited_resource(const RES &p_res) { script = p_res; - 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(); @@ -167,9 +167,19 @@ void ScriptTextEditor::enable_editor() { } 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"); @@ -178,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"); @@ -203,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); @@ -233,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 */ @@ -284,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(); } } @@ -295,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(); @@ -313,20 +321,20 @@ void ScriptTextEditor::reload_text() { } 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() { @@ -334,12 +342,13 @@ 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() { const bool unsaved = - code_editor->get_text_edit()->get_version() != code_editor->get_text_edit()->get_saved_version() || + code_editor->get_text_editor()->get_version() != code_editor->get_text_editor()->get_saved_version() || script->get_path().empty(); // In memory. return unsaved; } @@ -385,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) { @@ -409,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() { @@ -443,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; @@ -540,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); } } @@ -566,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; } @@ -576,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) { @@ -593,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(). } } @@ -704,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); } } @@ -717,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; } @@ -727,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) { @@ -744,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) { @@ -771,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("_"); @@ -866,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) { @@ -874,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); @@ -902,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) { @@ -943,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; } @@ -974,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: { @@ -1109,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++) { @@ -1128,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(); @@ -1145,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; @@ -1177,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; } @@ -1202,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); @@ -1220,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); @@ -1303,7 +1341,7 @@ void ScriptTextEditor::set_syntax_highlighter(Ref<EditorSyntaxHighlighter> p_hig el = el->next(); } - TextEdit *te = code_editor->get_text_edit(); + CodeEdit *te = code_editor->get_text_editor(); p_highlighter->_set_edited_resource(script); te->set_syntax_highlighter(p_highlighter); } @@ -1312,6 +1350,16 @@ 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); @@ -1331,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; @@ -1342,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) { @@ -1393,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); @@ -1466,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; @@ -1519,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; } } @@ -1567,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) { @@ -1636,12 +1684,15 @@ void ScriptTextEditor::_enable_code_editor() { 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->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->get_text_edit()->connect("gui_input", callable_mp(this, &ScriptTextEditor::_text_edit_gui_input)); + 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(); editor_box->add_child(warnings_panel); warnings_panel->add_theme_font_override( @@ -1758,6 +1809,16 @@ ScriptTextEditor::ScriptTextEditor() { 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); @@ -1768,12 +1829,12 @@ ScriptTextEditor::ScriptTextEditor() { update_settings(); - code_editor->get_text_edit()->set_callhint_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_edit()->set_select_identifiers_on_hover(true); - code_editor->get_text_edit()->set_context_menu_enabled(false); + 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); @@ -1816,7 +1877,7 @@ ScriptTextEditor::ScriptTextEditor() { connection_info_dialog = memnew(ConnectionInfoDialog); - code_editor->get_text_edit()->set_drag_forwarding(this); + code_editor->get_text_editor()->set_drag_forwarding(this); } ScriptTextEditor::~ScriptTextEditor() { diff --git a/editor/plugins/script_text_editor.h b/editor/plugins/script_text_editor.h index e931c9fdc6..1e436fbe65 100644 --- a/editor/plugins/script_text_editor.h +++ b/editor/plugins/script_text_editor.h @@ -81,6 +81,14 @@ class ScriptTextEditor : public ScriptEditorBase { ScriptEditorQuickOpen *quick_open = nullptr; ConnectionInfoDialog *connection_info_dialog = nullptr; + 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; @@ -154,6 +162,7 @@ protected: void _show_warnings_panel(bool p_show); void _warning_clicked(Variant p_line); + void _notification(int p_what); static void _bind_methods(); Map<String, Ref<EditorSyntaxHighlighter>> highlighters; @@ -169,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); @@ -211,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 2a7f3f0656..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,29 +107,29 @@ 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")); @@ -176,7 +176,7 @@ void ShaderTextEditor::_load_theme_settings() { } 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; @@ -189,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(); } } @@ -207,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(¶ms); @@ -225,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(""); } @@ -245,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 ******/ @@ -253,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(); @@ -281,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; @@ -290,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; @@ -309,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(); @@ -324,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(); @@ -343,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"); } } @@ -358,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() { @@ -466,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); @@ -480,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")); @@ -507,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(); } @@ -521,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; } @@ -529,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); @@ -581,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 1073da7d8c..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: { @@ -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 82e231e396..8935b698b6 100644 --- a/editor/plugins/text_editor.cpp +++ b/editor/plugins/text_editor.cpp @@ -50,7 +50,7 @@ void TextEditor::set_syntax_highlighter(Ref<EditorSyntaxHighlighter> p_highlight el = el->next(); } - TextEdit *te = code_editor->get_text_edit(); + CodeEdit *te = code_editor->get_text_editor(); te->set_syntax_highlighter(p_highlighter); } @@ -59,7 +59,7 @@ void TextEditor::_change_syntax_highlighter(int 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"); @@ -147,9 +147,9 @@ void TextEditor::set_edited_resource(const RES &p_res) { 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(); @@ -171,13 +171,14 @@ 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(); @@ -207,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; } @@ -215,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); @@ -235,12 +236,12 @@ 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() { const bool unsaved = - code_editor->get_text_edit()->get_version() != code_editor->get_text_edit()->get_saved_version() || + code_editor->get_text_editor()->get_version() != code_editor->get_text_editor()->get_saved_version() || text_file->get_path().empty(); // In memory. return unsaved; } @@ -280,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) { @@ -300,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() { @@ -316,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() { @@ -328,7 +329,7 @@ void TextEditor::clear_edit_menu() { } 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: { @@ -416,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; @@ -470,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")); @@ -503,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(); @@ -552,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); @@ -649,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 f3e9e599cf..ea425bd033 100644 --- a/editor/plugins/text_editor.h +++ b/editor/plugins/text_editor.h @@ -119,7 +119,7 @@ public: 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 18a107ff75..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); diff --git a/editor/plugins/tile_map_editor_plugin.cpp b/editor/plugins/tile_map_editor_plugin.cpp index e71485e9fc..9261113706 100644 --- a/editor/plugins/tile_map_editor_plugin.cpp +++ b/editor/plugins/tile_map_editor_plugin.cpp @@ -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; } @@ -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 274c64263f..684d8f0f10 100644 --- a/editor/plugins/tile_set_editor_plugin.cpp +++ b/editor/plugins/tile_set_editor_plugin.cpp @@ -3109,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; @@ -3118,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; @@ -3132,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 53bd1150ec..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,49 +1151,9 @@ void VisualShaderEditor::_update_created_node(GraphNode *node) { } } -void VisualShaderEditor::_update_graph() { - if (updating) { - return; - } - - if (visual_shader.is_null()) { - return; - } - - graph->set_scroll_ofs(visual_shader->get_graph_offset() * EDSCALE); - - VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); - graph->clear_connections(); - //erase all nodes - for (int i = 0; i < graph->get_child_count(); i++) { - if (Object::cast_to<GraphNode>(graph->get_child(i))) { - Node *node = graph->get_child(i); - graph->remove_child(node); - memdelete(node); - i--; - } - } - - 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); - - Vector<int> nodes = visual_shader->get_node_list(type); - +void VisualShaderEditor::_update_uniforms(bool p_update_refs) { VisualShaderNodeUniformRef::clear_uniforms(); - // scan for all 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++) { @@ -527,388 +1188,73 @@ void VisualShaderEditor::_update_graph() { } } } + if (p_update_refs) { + graph_plugin->update_uniform_refs(); + } +} - 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); - - 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(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(); - } +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); - 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); + 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]); } } } - - 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()); +void VisualShaderEditor::_update_graph() { + if (updating) { + return; + } - 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); + if (visual_shader.is_null()) { + return; + } - 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); - } - } + graph->set_scroll_ofs(visual_shader->get_graph_offset() * EDSCALE); - offset = memnew(Control); - offset->set_custom_minimum_size(Size2(0, 4 * EDSCALE)); - node->add_child(offset); + VisualShader::Type type = get_current_shader_type(); - 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); + graph->clear_connections(); + //erase all nodes + for (int i = 0; i < graph->get_child_count(); i++) { + if (Object::cast_to<GraphNode>(graph->get_child(i))) { + Node *node = graph->get_child(i); + graph->remove_child(node); + memdelete(node); + i--; } + } - 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"); - 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 = keyword_list.front(); E; E = E->next()) { - expression_syntax_highlighter->add_keyword_color(E->get(), keyword_color); - } + List<VisualShader::Connection> connections; + visual_shader->get_node_connections(type, &connections); + graph_plugin->set_connections(connections); - 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_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); + Vector<int> nodes = visual_shader->get_node_list(type); - expression_box->set_text(expression); - expression_box->set_context_menu_enabled(false); - expression_box->set_show_line_numbers(true); + _update_uniforms(false); - expression_box->connect("focus_exited", callable_mp(this, &VisualShaderEditor::_expression_focus_out), varray(expression_box, nodes[n_i])); - } + graph_plugin->clear_links(); + graph_plugin->make_dirty(true); - 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; @@ -919,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); @@ -1036,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); } } } @@ -1049,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); @@ -1079,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); } } } @@ -1092,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) { @@ -1156,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()); @@ -1284,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); @@ -1293,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); @@ -1331,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) { @@ -1443,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); } } @@ -1467,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) { @@ -1488,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) { @@ -1496,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(); @@ -1540,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) { @@ -1580,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); + + 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); + } + } + } + + Set<String> uniform_names; + + 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->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); + 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()); + } - undo_redo->add_do_method(this, "_clear_buffer"); - undo_redo->add_undo_method(this, "_clear_buffer"); + // 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()); + } - // 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()); + 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); @@ -1874,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()); } @@ -1900,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) { @@ -1930,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; @@ -1941,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(); @@ -1959,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(); @@ -1972,117 +2458,62 @@ 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; - - 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()); - } - } - } - - if (to_erase.empty()) { - return; - } - - undo_redo->create_action(TTR("Delete Nodes")); - - for (List<int>::Element *F = to_erase.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_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()); - } - } - - List<VisualShader::Connection> conns; - visual_shader->get_node_connections(type, &conns); - - 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; - } - } - 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(this, "_update_graph"); - undo_redo->add_undo_method(this, "_update_graph"); - undo_redo->commit_action(); -} - 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(); } -void VisualShaderEditor::_input_select_item(Ref<VisualShaderNodeInput> input, String name) { - String prev_name = input->get_input_name(); +void VisualShaderEditor::_input_select_item(Ref<VisualShaderNodeInput> p_input, String p_name) { + String prev_name = p_input->get_input_name(); - if (name == prev_name) { + if (p_name == prev_name) { return; } - bool type_changed = input->get_input_type_by_name(name) != input->get_input_type_by_name(prev_name); + bool type_changed = p_input->get_input_type_by_name(p_name) != p_input->get_input_type_by_name(prev_name); 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); - - 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); + 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(VisualShaderEditor::get_singleton(), "_update_graph"); - undo_redo->add_undo_method(VisualShaderEditor::get_singleton(), "_update_graph"); - undo_redo->commit_action(); } @@ -2101,23 +2532,56 @@ void VisualShaderEditor::_uniform_select_item(Ref<VisualShaderNodeUniformRef> p_ 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); - if (type_changed) { - //restore connections if type changed - VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); + // 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); - 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_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); + 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); + } + } } + 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(VisualShaderEditor::get_singleton(), "_update_graph"); - undo_redo->add_undo_method(VisualShaderEditor::get_singleton(), "_update_graph"); + undo_redo->commit_action(); +} + +void VisualShaderEditor::_float_constant_selected(int p_index, int p_node) { + if (p_index == 0) { + graph_plugin->update_node_size(p_node); + return; + } + + --p_index; + + ERR_FAIL_INDEX(p_index, MAX_FLOAT_CONST_DEFS); + + VisualShader::Type type = get_current_shader_type(); + Ref<VisualShaderNodeFloatConstant> node = visual_shader->get_node(type, p_node); + if (!node.is_valid()) { + return; + } + 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(); } @@ -2206,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(); @@ -2281,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++; } } @@ -2340,7 +2824,6 @@ 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); @@ -2349,6 +2832,10 @@ void VisualShaderEditor::_bind_methods() { 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); @@ -2400,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)); @@ -2428,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); @@ -2458,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); @@ -2614,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)); @@ -2644,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 @@ -2772,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)); @@ -2808,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)); @@ -2846,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 @@ -2911,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)); @@ -2951,15 +3485,15 @@ VisualShaderEditor::VisualShaderEditor() { 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(); ///////////////////////////////////////////////////////////////////// @@ -2979,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)); } @@ -3119,6 +3657,8 @@ public: 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) { @@ -3147,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(); @@ -3164,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); } @@ -3193,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); @@ -3220,11 +3764,9 @@ 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. } @@ -3313,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 9b80488b22..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,13 +340,17 @@ 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); void _change_input_port_type(int p_type, int p_node, int p_port); @@ -244,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); @@ -268,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); @@ -279,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> ¤t, 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 35311b32eb..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); } } @@ -1012,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); @@ -1045,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; @@ -1055,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 { @@ -1066,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; @@ -1077,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); @@ -1238,8 +1238,6 @@ void ProjectList::load_projects() { create_project_item_control(i); } - sort_projects(); - set_v_scroll(0); update_icons_async(); @@ -1391,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() { @@ -1798,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: { @@ -1806,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(); } @@ -1813,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: { @@ -1833,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() { @@ -1853,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) { @@ -1930,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; } @@ -1947,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(); @@ -1970,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); @@ -2088,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; @@ -2113,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(); @@ -2226,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(); @@ -2304,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. @@ -2341,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: { @@ -2372,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; } @@ -2385,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); @@ -2416,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(); @@ -2637,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() { @@ -2656,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 9be1a7c2fe..b6621d0d1e 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -113,11 +113,17 @@ void ProjectSettingsEditor::_add_setting() { inspector->set_current_section(setting.get_slice("/", 1)); } -void ProjectSettingsEditor::_delete_setting() { +void ProjectSettingsEditor::_delete_setting(bool p_confirmed) { String setting = _get_setting_name(); Variant value = ps->get(setting); int order = ps->get_order(setting); + 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")); undo_redo->add_do_method(ps, "clear", setting); @@ -171,7 +177,7 @@ void ProjectSettingsEditor::_update_advanced_bar() { } } - disable_add = !bad_category; + disable_add = bad_category; if (!property_text.is_valid_identifier()) { disable_add = true; @@ -327,11 +333,10 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { header->add_child(search_bar); search_box = memnew(LineEdit); - search_box->set_custom_minimum_size(Size2(300, 0)); + search_box->set_placeholder(TTR("Search")); + search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL); search_bar->add_child(search_box); - search_bar->add_spacer(); - advanced = memnew(CheckButton); advanced->set_text(TTR("Advanced")); advanced->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_advanced_pressed)); @@ -345,12 +350,14 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { 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); + advanced_bar->add_margin_child(TTR("Add or Remove Custom Project Settings:"), hbc, true); category_box = memnew(LineEdit); - category_box->set_custom_minimum_size(Size2(140, 0) * EDSCALE); + 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); @@ -370,7 +377,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { hbc->add_child(l); type = memnew(OptionButton); - type->set_custom_minimum_size(Size2(70, 0) * EDSCALE); + type->set_custom_minimum_size(Size2(100, 0) * EDSCALE); hbc->add_child(type); // Start at 1 to avoid adding "Nil" as an option @@ -383,26 +390,24 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { hbc->add_child(l); feature_override = memnew(OptionButton); - feature_override->set_custom_minimum_size(Size2(70, 0) * EDSCALE); + 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); - hbc->add_spacer(); - add_button = memnew(Button); + add_button->set_flat(true); add_button->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_add_setting)); hbc->add_child(add_button); del_button = memnew(Button); - del_button->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_delete_setting)); + del_button->set_flat(true); + del_button->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_delete_setting), varray(false)); hbc->add_child(del_button); error_label = memnew(Label); advanced_bar->add_child(error_label); } - header->add_child(memnew(HSeparator)); - inspector = memnew(SectionedInspector); inspector->get_inspector()->set_undo_redo(EditorNode::get_singleton()->get_undo_redo()); inspector->set_v_size_flags(Control::SIZE_EXPAND_FILL); @@ -468,6 +473,10 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { 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 0d7e19b242..4ecd28e514 100644 --- a/editor/project_settings_editor.h +++ b/editor/project_settings_editor.h @@ -77,6 +77,8 @@ class ProjectSettingsEditor : public AcceptDialog { OptionButton *feature_override; Label *error_label; + ConfirmationDialog *del_confirmation; + Label *restart_label; TextureRect *restart_icon; PanelContainer *restart_container; @@ -94,7 +96,7 @@ class ProjectSettingsEditor : public AcceptDialog { void _setting_edited(const String &p_name); void _setting_selected(const String &p_path); void _add_setting(); - void _delete_setting(); + void _delete_setting(bool p_confirmed); void _editor_restart_request(); void _editor_restart(); 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 211e365454..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); @@ -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); @@ -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 ce869feddd..c4e90ca3ff 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -1115,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")); @@ -1127,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")); @@ -1137,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); @@ -1160,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); @@ -1314,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); + } } } } @@ -2085,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); } 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 628475bbc0..90efb11b7d 100644 --- a/editor/script_create_dialog.cpp +++ b/editor/script_create_dialog.cpp @@ -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..04fbac3463 100644 --- a/editor/shader_globals_editor.cpp +++ b/editor/shader_globals_editor.cpp @@ -437,6 +437,9 @@ void ShaderGlobalsEditor::_notification(int p_what) { inspector->edit(interface); } } + if (p_what == NOTIFICATION_PREDELETE) { + inspector->edit(nullptr); + } } ShaderGlobalsEditor::ShaderGlobalsEditor() { @@ -474,6 +477,5 @@ ShaderGlobalsEditor::ShaderGlobalsEditor() { } ShaderGlobalsEditor::~ShaderGlobalsEditor() { - inspector->edit(nullptr); memdelete(interface); } diff --git a/editor/translations/af.po b/editor/translations/af.po index 90dca850de..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:" @@ -2829,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 @@ -2853,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 @@ -2863,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 @@ -2950,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" @@ -3355,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 @@ -5174,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 "" @@ -7850,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 @@ -9903,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" @@ -10340,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 @@ -10392,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 @@ -10452,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 @@ -12451,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 075bc25f6e..6335b82b15 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -44,12 +44,13 @@ # أحمد مصطفى الطبراني <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-08-11 14:04+0000\n" -"Last-Translator: Musab Alasaifer <mousablasefer@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" @@ -58,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)." @@ -157,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" @@ -185,7 +186,7 @@ msgstr "تغيير وقت الإطار الرئيسي للحركة" #: editor/animation_track_editor.cpp msgid "Anim Change Transition" -msgstr "تغيير إنتقالية التحريك" +msgstr "تغيير إنتقالية الرسوم المتحركة" #: editor/animation_track_editor.cpp msgid "Anim Change Transform" @@ -254,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" @@ -381,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?" @@ -445,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" @@ -457,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." @@ -469,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" @@ -497,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" @@ -510,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 "" @@ -524,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" @@ -560,6 +563,7 @@ msgid "Seconds" msgstr "ثواني" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "إطار خلال ثانية" @@ -595,7 +599,7 @@ msgstr "تكرير المحدد" #: editor/animation_track_editor.cpp msgid "Duplicate Transposed" -msgstr "نسخ محمّل" +msgstr "نقل مكرر" #: editor/animation_track_editor.cpp msgid "Delete Selection" @@ -623,7 +627,7 @@ msgstr "إختار العقدة التي سوف يتم تحريكها:" #: editor/animation_track_editor.cpp msgid "Use Bezier Curves" -msgstr "إستعمل منحنيات بيزية" +msgstr "إستعمل منحنيات بيزر" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" @@ -738,7 +742,7 @@ msgstr "قضية تشابه" msgid "Whole Words" msgstr "كل الكلمات" -#: editor/code_editor.cpp editor/rename_dialog.cpp +#: editor/code_editor.cpp msgid "Replace" msgstr "إستبدال" @@ -796,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 @@ -922,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" @@ -966,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 "بحث:" @@ -991,7 +1000,7 @@ msgstr "البحث عن بديل لـ:" #: editor/dependency_editor.cpp msgid "Dependencies For:" -msgstr "تابعة لـ:" +msgstr "تبعيات لـ:" #: editor/dependency_editor.cpp msgid "" @@ -1096,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" @@ -1132,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" @@ -1146,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 "مدير المشروع " @@ -1167,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 "الرعاة الصغار" @@ -1201,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 @@ -1224,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" @@ -1269,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." @@ -1321,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 @@ -1342,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..." @@ -1374,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." @@ -1386,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." @@ -1408,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" @@ -1416,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" @@ -1424,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." @@ -1476,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" @@ -1484,7 +1504,7 @@ msgstr "اعادة ترتيب التحميلات التلقائية" #: editor/editor_autoload_settings.cpp msgid "Can't add autoload:" -msgstr "لا يمكن اضافة التحميل التلقائي" +msgstr "لا يمكن إضافة التحميل التلقائي:" #: editor/editor_autoload_settings.cpp msgid "Add AutoLoad" @@ -1642,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)" @@ -1679,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" @@ -1748,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" @@ -1913,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 "إستعراض:" @@ -1978,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" @@ -2010,7 +2031,7 @@ msgstr "" #: editor/editor_help.cpp msgid "Method Descriptions" -msgstr "أوصاف الدوال Method" +msgstr "أوصاف الدوال" #: editor/editor_help.cpp msgid "" @@ -2087,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:" @@ -2232,7 +2253,7 @@ msgstr "حفظ المشهد" #: editor/editor_node.cpp msgid "Analyzing" -msgstr "يحلل" +msgstr "جاري التحليل" #: editor/editor_node.cpp msgid "Creating Thumbnail" @@ -2240,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 "" @@ -2386,7 +2407,7 @@ msgstr "يتطلب حفظ المشهد توافر عُقدة رئيسة." #: editor/editor_node.cpp msgid "Save Scene As..." -msgstr "حفظ المشهد كـ..." +msgstr "حفظ المشهد كـ…" #: editor/editor_node.cpp msgid "No" @@ -2497,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 "" @@ -2702,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 @@ -2724,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 @@ -2737,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" @@ -2761,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..." @@ -2769,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 @@ -2782,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" @@ -2846,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" @@ -2879,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" @@ -2891,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" @@ -2903,7 +2937,7 @@ msgstr "فتح مجلّد إعدادات المحرّر" #: editor/editor_node.cpp msgid "Manage Editor Features..." -msgstr "إدارة ميّزات المحرّر" +msgstr "إدارة ميّزات المحرّر…" #: editor/editor_node.cpp msgid "Manage Export Templates..." @@ -2918,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 "بحث" @@ -2933,7 +2967,7 @@ msgstr "الأسئلة و الأجوبة" #: editor/editor_node.cpp msgid "Report a Bug" -msgstr "إرسال تقرير عن bug أو خلل في شيء ما" +msgstr "إرسال تقرير عن خلل برمجي" #: editor/editor_node.cpp msgid "Send Docs Feedback" @@ -2945,7 +2979,7 @@ msgstr "المجتمع" #: editor/editor_node.cpp msgid "About" -msgstr "عن" +msgstr "عن هذا التطبيق" #: editor/editor_node.cpp msgid "Play the project." @@ -2957,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." @@ -2969,7 +3003,7 @@ msgstr "إيقاف المشهد." #: editor/editor_node.cpp msgid "Play the edited scene." -msgstr "تشغيل المشهد المُعدل." +msgstr "تشغيل المشهد المُعدّل." #: editor/editor_node.cpp msgid "Play Scene" @@ -2994,7 +3028,7 @@ msgstr "حفظ و إعادة تشغيل" #: editor/editor_node.cpp msgid "Spins when the editor window redraws." -msgstr "يدور حينما يتم إعادة رسم نافذة المحرّر" +msgstr "قم بالتدوير أثناء إعادة رسم نافذة المحرّر." #: editor/editor_node.cpp msgid "Update Continuously" @@ -3014,7 +3048,7 @@ msgstr "نظام الملفات" #: editor/editor_node.cpp msgid "Inspector" -msgstr "مُراقب" +msgstr "المُراقب" #: editor/editor_node.cpp msgid "Expand Bottom Panel" @@ -3099,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!" @@ -3236,7 +3270,7 @@ msgstr "إلحاق..." #: editor/editor_properties.cpp msgid "Invalid RID" -msgstr "إسم RID غير صالح." +msgstr "RID غير صالح" #: editor/editor_properties.cpp msgid "" @@ -3333,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" "من فضلك أضف إعداد تصدير عامل في قائمة التصدير." @@ -3584,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" @@ -3708,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 @@ -3733,7 +3769,7 @@ msgstr "إعادة التسمية" #: editor/filesystem_dock.cpp msgid "Previous Folder/File" -msgstr "المجلد/الملف السابق" +msgstr "المجلد/الملف السابق" #: editor/filesystem_dock.cpp msgid "Next Folder/File" @@ -3793,7 +3829,7 @@ msgstr "مجلد:" #: editor/find_in_files.cpp msgid "Filters:" -msgstr "فلتر:" +msgstr "تنقيات:" #: editor/find_in_files.cpp msgid "" @@ -3822,7 +3858,7 @@ msgstr "إيجاد: " #: editor/find_in_files.cpp msgid "Replace: " -msgstr "إستبدال:" +msgstr "إستبدال: " #: editor/find_in_files.cpp msgid "Replace all (no undo)" @@ -3895,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" @@ -3911,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" @@ -3944,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?" @@ -3980,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" @@ -4429,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" @@ -4472,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" @@ -4500,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..." @@ -4604,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 @@ -4858,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" @@ -4922,7 +4958,7 @@ msgstr "فشل الطلب ، انتهت المهلة" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Timeout." -msgstr "إنتهى الوقت" +msgstr "انتهت المهلة." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." @@ -4962,7 +4998,7 @@ msgstr "خطأ في إنشاء الطلب" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Idle" -msgstr "عاطل" +msgstr "الخمول (idle)" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install..." @@ -5096,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 "استعراض" @@ -7320,7 +7356,6 @@ msgid "Audio Listener" msgstr "المستمع الصوتي" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Enable Doppler" msgstr "تفعيل دوبلر" @@ -7548,7 +7583,6 @@ msgid "View Z-Near:" msgstr "إظهار Z-Near:" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Z-Far:" msgstr "إظهار Z-Far:" @@ -7655,9 +7689,8 @@ 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" @@ -7736,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 @@ -7918,7 +7952,7 @@ msgstr "عنصر مُفعل اختياري" #: editor/plugins/theme_editor_plugin.cpp msgid "Named Sep." -msgstr "الفاصل المُسمّى" +msgstr "الفاصل المُسمّى." #: editor/plugins/theme_editor_plugin.cpp msgid "Submenu" @@ -7998,9 +8032,8 @@ 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 @@ -8028,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" @@ -8045,9 +8077,8 @@ msgid "Enable Priority" 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." @@ -8095,9 +8126,8 @@ 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" @@ -8112,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" @@ -8150,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" @@ -8174,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" @@ -8194,21 +8223,19 @@ 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 msgid "Create a new rectangle." @@ -8497,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" @@ -8846,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." @@ -8866,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." @@ -8900,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." @@ -8953,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" @@ -8977,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." @@ -9014,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." @@ -9061,7 +9088,6 @@ msgid "Perform the texture lookup." msgstr "إجراء البحث عن النقش." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Cubic texture uniform lookup." msgstr "البحث عن النقش المكعبي الموحد." @@ -9150,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." @@ -9273,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." @@ -9866,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 "مدير المشروع" @@ -9945,7 +9972,7 @@ msgid "" "Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'" msgstr "" -"اسم فعالية غير صحيح. لا يمكن أن يكون فارغاً أو يتضمن '/'، ':'، '='، '\\' أو " +"اسم فعالية غير صحيح. لا يمكن أن يكون فارغاً أو يتضمن '/'، ':'، '='، '\\' أو " "'\"'" #: editor/project_settings_editor.cpp @@ -10305,11 +10332,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 @@ -10357,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 @@ -10417,7 +10452,8 @@ msgid "Reset" msgstr "إعادة تعيين" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +#, fuzzy +msgid "Regular Expression Error:" msgstr "خطأ ذو علاقة بالتعبير الاعتيادي Regular Expression" #: editor/rename_dialog.cpp @@ -10530,7 +10566,7 @@ msgstr "حذف العُقدة %d مع جميع أبنائها؟" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" -msgstr "حذف العُقد %d" +msgstr "حذف العُقد %d؟" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -10677,9 +10713,8 @@ msgid "Change Type" msgstr "تغيير النوع" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" -msgstr "إنشاء %s جديد" +msgstr "تعين لعقدة جديدة" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" @@ -10735,22 +10770,19 @@ msgstr "مسح الموروث؟ (لا تراجع!)" #: editor/scene_tree_editor.cpp 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:" @@ -10845,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." @@ -10912,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 "" @@ -10949,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" @@ -10976,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" @@ -11019,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" @@ -11029,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" @@ -11081,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" @@ -11126,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" @@ -11209,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" @@ -11265,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" @@ -11285,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" @@ -11303,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" @@ -11357,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" @@ -11431,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" @@ -11452,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." @@ -11561,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" @@ -11584,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:" @@ -11646,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" @@ -11659,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" @@ -11750,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'" @@ -11773,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." @@ -11807,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" @@ -11832,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." @@ -11881,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: " @@ -11941,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 "" @@ -11952,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" @@ -12009,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." @@ -12045,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 "" @@ -12213,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 "" @@ -12255,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 "" @@ -12263,32 +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 @@ -12301,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 "" @@ -12329,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 "" @@ -12352,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." @@ -12366,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 "" @@ -12378,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%%" @@ -12423,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 "" @@ -12443,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 "" @@ -12450,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." @@ -12461,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." @@ -12509,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 "" @@ -12522,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." @@ -12543,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 "" @@ -12550,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 "" @@ -12567,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'" @@ -12679,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!" @@ -12700,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 "" @@ -12711,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)" @@ -12721,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 "" @@ -12729,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." @@ -12762,6 +12849,16 @@ 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 "المشهد الحالي لم يتم حفظه. الرجاء حفظ المشهد قبل تشغيله و اختباره." diff --git a/editor/translations/bg.po b/editor/translations/bg.po index b0378d612c..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 "" @@ -2678,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 @@ -2702,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 @@ -2712,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 @@ -2797,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 "Търсене" @@ -3199,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 @@ -4239,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" @@ -4402,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 @@ -4761,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." @@ -4810,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" @@ -4882,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:" @@ -4900,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" @@ -4943,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 "Преглед" @@ -4968,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:" @@ -7590,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 @@ -9643,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 "Управление на проектите" @@ -10073,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 @@ -10123,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 @@ -10181,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" @@ -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." @@ -12232,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 "" @@ -12488,7 +12517,7 @@ 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 "" diff --git a/editor/translations/bn.po b/editor/translations/bn.po index 5fdcfb385b..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 "প্রিভিউ:" @@ -2957,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" @@ -2988,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) দৃশ্যমান হবে।" @@ -3000,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" @@ -3024,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" @@ -3105,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 "অনুসন্ধান করুন" @@ -3542,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" "অনুগ্রহ করে এক্সপোর্ট মেনুতে একটি সঠিক প্রিসেট যোগ করুন।" @@ -5482,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 "প্রিভিউ" @@ -8326,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 @@ -10518,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 "প্রজেক্ট ম্যানেজার" @@ -10979,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 @@ -11035,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 @@ -11099,7 +11137,7 @@ msgstr "সম্প্রসারন/সংকোচন অপসারণ ক #: editor/rename_dialog.cpp #, fuzzy -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "অভিব্যক্তি (Expression) পরিবর্তন করুন" #: editor/rename_dialog.cpp @@ -13279,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 "" @@ -13558,6 +13601,18 @@ 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 "" #~ "বর্তমান দৃশ্যটি কখনোই সংরক্ষণ করা হয় নি, অনুগ্রহ করে চালানোর পূর্বে এটি সংরক্ষণ " diff --git a/editor/translations/ca.po b/editor/translations/ca.po index 359aea8184..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:" @@ -2787,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" @@ -2818,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ó." @@ -2830,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" @@ -2854,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" @@ -2928,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" @@ -3355,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ó." @@ -5157,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ó" @@ -7893,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 @@ -10136,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" @@ -10581,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 @@ -10635,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 @@ -10697,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 @@ -12860,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." @@ -13167,6 +13214,16 @@ 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." diff --git a/editor/translations/cs.po b/editor/translations/cs.po index 0d2ae15065..2839053135 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -21,12 +21,13 @@ # 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-08-11 14:04+0000\n" -"Last-Translator: Daniel Kříž <Daniel.kriz@protonmail.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" @@ -34,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 @@ -546,6 +547,7 @@ msgid "Seconds" msgstr "Sekundy" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -724,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" @@ -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" @@ -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:" @@ -2553,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 "" @@ -2769,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" @@ -2799,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." @@ -2811,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" @@ -2834,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" @@ -2909,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" @@ -3173,7 +3205,7 @@ msgstr "Fyzikální snímek %" #: editor/editor_profiler.cpp msgid "Inclusive" -msgstr "" +msgstr "Inkluzivní" #: editor/editor_profiler.cpp msgid "Self" @@ -3312,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" @@ -3352,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" @@ -3361,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:" @@ -3933,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?" @@ -4027,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" @@ -4407,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:" @@ -4450,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" @@ -4505,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" @@ -4529,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" @@ -4607,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" @@ -4721,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):" @@ -4742,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!" @@ -4781,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" @@ -5072,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" @@ -7754,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 @@ -9872,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ů" @@ -10318,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 @@ -10370,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 @@ -10430,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 @@ -12473,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 "" @@ -12758,6 +12812,17 @@ msgstr "Odlišnosti mohou být přiřazeny pouze ve vertex funkci." 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." diff --git a/editor/translations/da.po b/editor/translations/da.po index da54615917..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:" @@ -2874,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" @@ -2904,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." @@ -2916,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" @@ -2940,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" @@ -3018,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" @@ -3429,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." @@ -5294,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 "" @@ -8010,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 @@ -10109,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 @@ -10553,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 @@ -10608,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 @@ -10670,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 @@ -12758,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 "" @@ -13037,6 +13079,18 @@ 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." diff --git a/editor/translations/de.po b/editor/translations/de.po index 081dfb8e4f..082f22322b 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -55,12 +55,17 @@ # 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-08-05 16:58+0000\n" -"Last-Translator: Bjarne Hiller <bjarne.hiller@gmail.com>\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" @@ -68,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 @@ -77,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" @@ -581,6 +586,7 @@ msgid "Seconds" msgstr "Sekunden" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -759,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" @@ -952,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?" @@ -989,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:" @@ -1173,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" @@ -1194,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" @@ -1660,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)" @@ -1945,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:" @@ -2129,7 +2152,7 @@ msgstr "Eigenschaft:" #: editor/editor_inspector.cpp msgid "Set" -msgstr "Festlegen" +msgstr "Set" #: editor/editor_inspector.cpp msgid "Set Multiple:" @@ -2828,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" @@ -2836,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" @@ -2867,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." @@ -2879,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" @@ -2903,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" @@ -2976,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" @@ -2999,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" @@ -3011,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." @@ -3031,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" @@ -3039,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." @@ -3256,7 +3289,7 @@ msgstr "Gesamt" #: editor/editor_profiler.cpp msgid "Self" -msgstr "Eigenanteil" +msgstr "Selbst" #: editor/editor_profiler.cpp msgid "Frame #:" @@ -3395,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." @@ -5173,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" @@ -5695,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" @@ -6833,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" @@ -6878,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..." @@ -7110,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" @@ -7836,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 @@ -9398,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 "" @@ -9972,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" @@ -10323,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" @@ -10414,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 @@ -10466,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" @@ -10527,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 @@ -10756,7 +10802,7 @@ 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" @@ -10845,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" @@ -11926,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" @@ -11942,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" @@ -12627,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 "" @@ -12949,6 +13000,16 @@ 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 " diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index 87dca17afd..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 "" @@ -2660,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 @@ -2684,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 @@ -2694,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 @@ -2779,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 "" @@ -3179,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 @@ -4903,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 "" @@ -7485,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 @@ -9461,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 "" @@ -9891,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 @@ -9941,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 @@ -9999,7 +10025,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -11928,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 7c2a202767..2571598414 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -536,6 +536,7 @@ msgid "Seconds" msgstr "Δευτερόλεπτα" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -714,7 +715,7 @@ msgstr "Αντιστοίχηση πεζών-κεφαλαίων" msgid "Whole Words" msgstr "Ολόκληρες λέξεις" -#: editor/code_editor.cpp editor/rename_dialog.cpp +#: editor/code_editor.cpp msgid "Replace" msgstr "Αντικατάσταση" @@ -908,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 "" "Είστε σίγουροι πως θέλετε να αφαιρέσετε όλες της συνδέσεις απο αυτό το σήμα;" @@ -946,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 "Αναζήτηση:" @@ -1126,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 "Διαχειριστής έργων " @@ -1147,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 "Μικροί Χορηγοί" @@ -1625,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)" @@ -1897,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 "Προεπισκόπηση:" @@ -2786,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" @@ -2817,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) θα είναι ορατά στο " "παιχνίδι εάν αυτή η επιλογή είναι ενεργοποιημένη." @@ -2829,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" @@ -2853,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" @@ -2927,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 "Αναζήτηση" @@ -3347,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" "Παρακαλούμε προσθέστε μία εκτελέσιμη διαμόρφωση στο μενού εξαγωγής." @@ -5127,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 "Προεπισκόπηση" @@ -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 @@ -9924,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 "Διαχειριστής" @@ -10364,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 @@ -10416,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 @@ -10476,7 +10518,8 @@ msgid "Reset" msgstr "Επαναφορά" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +#, fuzzy +msgid "Regular Expression Error:" msgstr "Σφάλμα Κανονικής Εκφράσεως" #: editor/rename_dialog.cpp @@ -12582,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 "" @@ -12894,6 +12942,16 @@ 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 "" #~ "Η τρέχουσα σκηνή δεν έχει αποθηκευτεί, αποθηκεύστε πριν να τρέξετε το " diff --git a/editor/translations/eo.po b/editor/translations/eo.po index e740ea7d7a..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 "" @@ -2737,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" @@ -2767,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." @@ -2779,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" @@ -2873,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" @@ -3278,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 @@ -5016,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 "" @@ -7611,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 @@ -9610,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 "" @@ -10041,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 @@ -10091,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 @@ -10149,7 +10184,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -12101,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 "" @@ -12354,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 172ce58604..fa8391cf89 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -50,12 +50,13 @@ # 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-07-31 03:47+0000\n" -"Last-Translator: Lisandro Lorea <lisandrolorea@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" @@ -63,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 @@ -580,6 +581,7 @@ msgid "Seconds" msgstr "Segundos" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -758,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" @@ -952,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?" @@ -990,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:" @@ -1172,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" @@ -1193,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" @@ -1670,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)" @@ -1945,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:" @@ -2833,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" @@ -2863,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." @@ -2875,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" @@ -2899,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" @@ -2973,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" @@ -3394,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" @@ -5173,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" @@ -7831,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 @@ -9965,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" @@ -10405,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 @@ -10457,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 @@ -10517,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 @@ -12624,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 "" @@ -12937,6 +12984,16 @@ 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." diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index f2c72ce1be..6171c0e27d 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -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:" @@ -2793,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" @@ -2824,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." @@ -2836,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" @@ -2860,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" @@ -2932,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" @@ -3352,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" @@ -5131,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" @@ -7782,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 @@ -9916,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" @@ -10356,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 @@ -10408,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 @@ -10468,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 @@ -12570,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 "" @@ -12878,6 +12926,16 @@ 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." diff --git a/editor/translations/et.po b/editor/translations/et.po index 504de558d5..a8692d1332 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2020-08-11 14:04+0000\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" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 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 @@ -515,6 +515,7 @@ msgid "Seconds" msgstr "Sekundid" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "K/S" @@ -693,7 +694,7 @@ msgstr "" msgid "Whole Words" msgstr "" -#: editor/code_editor.cpp editor/rename_dialog.cpp +#: editor/code_editor.cpp msgid "Replace" msgstr "" @@ -799,7 +800,7 @@ msgstr "" #: editor/connections_dialog.cpp msgid "Advanced" -msgstr "" +msgstr "Täpsem" #: editor/connections_dialog.cpp msgid "Deferred" @@ -882,6 +883,11 @@ msgid "Signals" 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?" msgstr "" @@ -912,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 @@ -936,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:" @@ -1059,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" @@ -1079,7 +1085,7 @@ msgstr "" #: editor/editor_about.cpp msgid "Thanks from the Godot community!" -msgstr "Tänu Godot kogukonnale!" +msgstr "Suur tänu Godot kogukonnalt!" #: editor/editor_about.cpp msgid "Godot Engine contributors" @@ -1093,6 +1099,9 @@ msgstr "Projekti asutajad" msgid "Lead Developer" 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 "Projekti juht " @@ -1114,6 +1123,16 @@ msgid "Gold Sponsors" 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 "Väikesponsorid" @@ -1148,14 +1167,18 @@ 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" @@ -1204,7 +1227,7 @@ msgstr "" #: editor/editor_audio_buses.cpp msgid "Speakers" -msgstr "" +msgstr "Heliväljundi" #: editor/editor_audio_buses.cpp msgid "Add Effect" @@ -1269,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" @@ -1584,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 @@ -1858,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:" @@ -2287,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" @@ -2423,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 "" @@ -2609,7 +2639,7 @@ msgstr "Salvesta kõik stseenid" #: editor/editor_node.cpp msgid "Convert To..." -msgstr "" +msgstr "Teisenda..." #: editor/editor_node.cpp msgid "MeshLibrary..." @@ -2689,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 @@ -2713,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 @@ -2723,32 +2757,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 -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 @@ -2808,7 +2844,7 @@ msgstr "Abi" #: 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 "Otsi" @@ -2827,7 +2863,7 @@ msgstr "Teavita veast" #: editor/editor_node.cpp msgid "Send Docs Feedback" -msgstr "Saada dokumentatsioonide tagasisede" +msgstr "Saada dokumentatsioonide tagasiside" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" @@ -2971,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" @@ -3027,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)" @@ -3064,7 +3100,7 @@ msgstr "" #: editor/editor_profiler.cpp msgid "Frame %" -msgstr "" +msgstr "Kaadri %" #: editor/editor_profiler.cpp msgid "Physics Frame %" @@ -3080,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:" @@ -3140,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" @@ -3199,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" @@ -3208,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 @@ -3428,7 +3465,7 @@ msgstr "" #: editor/export_template_manager.cpp msgid "Current Version:" -msgstr "" +msgstr "Praegune versioon:" #: editor/export_template_manager.cpp msgid "Installed Versions:" @@ -3540,7 +3577,7 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Add to Favorites" -msgstr "" +msgstr "Lisa lemmikutesse" #: editor/filesystem_dock.cpp msgid "Remove from Favorites" @@ -3548,45 +3585,45 @@ 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 @@ -3597,11 +3634,11 @@ 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" @@ -3609,7 +3646,7 @@ 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" @@ -3639,7 +3676,7 @@ 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" @@ -3954,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" @@ -3962,7 +3999,7 @@ msgstr "" #: editor/plugin_config_dialog.cpp msgid "Plugin Name:" -msgstr "" +msgstr "Pistikprogrammi nimi:" #: editor/plugin_config_dialog.cpp msgid "Subfolder:" @@ -3970,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?" @@ -4214,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" @@ -4379,7 +4416,7 @@ 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..." @@ -4443,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" @@ -4715,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." @@ -4875,7 +4912,7 @@ 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:" @@ -4932,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" @@ -5349,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" @@ -5373,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" @@ -6392,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 @@ -6530,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" @@ -6617,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" @@ -7095,7 +7132,7 @@ 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" @@ -7262,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" @@ -7319,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.):" @@ -7475,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!" @@ -7514,7 +7551,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 @@ -7748,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 @@ -7876,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" @@ -8247,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" @@ -9119,7 +9156,7 @@ msgstr "" #: editor/project_export.cpp editor/project_settings_editor.cpp msgid "Add..." -msgstr "" +msgstr "Lisa..." #: editor/project_export.cpp msgid "" @@ -9193,7 +9230,7 @@ msgstr "" #: editor/project_export.cpp msgid "Script" -msgstr "" +msgstr "Skript" #: editor/project_export.cpp msgid "Script Export Mode:" @@ -9492,6 +9529,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 "projektihaldur" @@ -9807,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" @@ -9859,7 +9897,7 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Plugins" -msgstr "" +msgstr "Pistikprogrammid" #: editor/property_editor.cpp msgid "Preset..." @@ -9922,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 @@ -9935,7 +9977,7 @@ msgstr "" #: editor/rename_dialog.cpp msgid "Advanced Options" -msgstr "" +msgstr "Täpsemad sätted" #: editor/rename_dialog.cpp msgid "Substitute" @@ -9972,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 @@ -10030,7 +10072,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -10218,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)" @@ -10244,7 +10286,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Sub-Resources" -msgstr "" +msgstr "Alamressursid" #: editor/scene_tree_dock.cpp msgid "Clear Inheritance" @@ -10260,7 +10302,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Open Documentation" -msgstr "" +msgstr "Ava dokumentatsioon" #: editor/scene_tree_dock.cpp msgid "" @@ -10275,11 +10317,11 @@ 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" @@ -10287,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" @@ -10295,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)" @@ -10477,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." @@ -10583,7 +10625,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Errors" -msgstr "" +msgstr "Vead" #: editor/script_editor_debugger.cpp msgid "Child process connected." @@ -10591,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" @@ -10611,7 +10653,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Stack Frames" -msgstr "" +msgstr "Virnakaadrid" #: editor/script_editor_debugger.cpp msgid "Profiler" @@ -10623,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." @@ -10639,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:" @@ -10651,7 +10693,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Resource Path" -msgstr "" +msgstr "Ressursi tee" #: editor/script_editor_debugger.cpp msgid "Type" @@ -10659,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:" @@ -10686,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" @@ -10831,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" @@ -11960,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 "" diff --git a/editor/translations/eu.po b/editor/translations/eu.po index 906a258f32..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:" @@ -2671,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 @@ -2695,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 @@ -2705,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 @@ -2790,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" @@ -3190,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 @@ -4920,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 "" @@ -7502,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 @@ -9481,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 "" @@ -9913,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 @@ -9963,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 @@ -10021,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 @@ -11953,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 dc7ae9ec69..2d17cc0abb 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -14,12 +14,13 @@ # 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-07-21 13:41+0000\n" -"Last-Translator: Tetra Homer <tetrahomer@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" @@ -27,7 +28,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.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 @@ -416,7 +417,7 @@ 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." @@ -452,7 +453,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" @@ -534,6 +535,7 @@ msgid "Seconds" msgstr "ثانیه ها" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "لحظه بر ثانیه" @@ -553,7 +555,7 @@ msgstr "خصوصیات انیمیشن." #: editor/animation_track_editor.cpp msgid "Copy Tracks" -msgstr "" +msgstr "کپی میسر ها" #: editor/animation_track_editor.cpp msgid "Scale Selection" @@ -593,7 +595,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" @@ -712,7 +714,7 @@ msgstr "بین حروف کوچک و بزرگ لاتین تمایز قائل شو msgid "Whole Words" msgstr "عین کلمات (بدون هیچ کم و کاستی)" -#: editor/code_editor.cpp editor/rename_dialog.cpp +#: editor/code_editor.cpp msgid "Replace" msgstr "جایگزینی" @@ -751,11 +753,11 @@ msgstr "بازنشانی مقیاس" #: editor/code_editor.cpp msgid "Warnings" -msgstr "" +msgstr "هشدارها" #: editor/code_editor.cpp msgid "Line and column numbers." -msgstr "" +msgstr "شماره های خط و ستون." #: editor/connections_dialog.cpp msgid "Method in target node must be specified." @@ -823,7 +825,7 @@ msgstr "پیشرفته" #: editor/connections_dialog.cpp msgid "Deferred" -msgstr "معوق" +msgstr "به تعویق افتاده" #: editor/connections_dialog.cpp msgid "" @@ -896,12 +898,18 @@ 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 "" @@ -939,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 "جستجو:" @@ -994,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:" @@ -1086,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" @@ -1120,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 "مدیر پروژه " @@ -1134,15 +1145,25 @@ msgstr "مؤلفان" #: editor/editor_about.cpp msgid "Platinum Sponsors" -msgstr "حامیان پلاتینیُم (درجه ۱)" +msgstr "حامیان پلاتین" #: editor/editor_about.cpp 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 "اسپانسرهای کوچک" +msgstr "حامیان مالی کوچک" #: editor/editor_about.cpp msgid "Gold Donors" @@ -1282,24 +1303,25 @@ 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" @@ -1315,11 +1337,12 @@ 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 msgid "Delete Audio Bus" @@ -1436,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" @@ -1478,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" @@ -1540,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 "" @@ -1607,16 +1631,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)" @@ -1758,7 +1783,7 @@ msgstr "گشودن در مدیر پرونده" #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" -msgstr "نمایش در مدیر پرونده" +msgstr "نمایش فایل داخلی مرجع" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." @@ -1878,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 "" @@ -2703,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 @@ -2727,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 @@ -2737,32 +2766,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 "تغییر بده" #: 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 +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 "جستجو" @@ -3246,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 @@ -3466,7 +3497,7 @@ msgstr "خطای اتصال" #: editor/export_template_manager.cpp msgid "SSL Handshake Error" -msgstr "دست دادن خطای اس اس ال" +msgstr "خطای اس اس ال اتفاق افتاد است" #: editor/export_template_manager.cpp #, fuzzy @@ -5094,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 "" @@ -7822,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 @@ -9931,6 +9962,7 @@ msgstr "" "شما درخواست بررسی پوشه های s٪ برای پیدا کردن پروژه های گودات را داده اید. " "آیا انجام این عمل را تایید می کنید؟" +#. TRANSLATORS: This refers to the application where users manage their Godot projects. #: editor/project_manager.cpp msgid "Project Manager" msgstr "مدیر پروژه" @@ -10225,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..." @@ -10383,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 @@ -10437,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 @@ -10499,7 +10536,7 @@ msgstr "بازنشانی بزرگنمایی" #: editor/rename_dialog.cpp #, fuzzy -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "انتقال را در انیمیشن تغییر بده" #: editor/rename_dialog.cpp @@ -12612,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 "" @@ -12892,6 +12934,9 @@ msgstr "" msgid "Constants cannot be modified." 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 124ae4f2e0..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-08-05 16:58+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)" @@ -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:" @@ -2762,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" @@ -2793,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." @@ -2805,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" @@ -2899,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" @@ -3317,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." @@ -5089,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" @@ -7737,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 @@ -9862,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" @@ -10301,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 @@ -10353,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 @@ -10413,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 @@ -12498,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 "" @@ -12805,6 +12851,16 @@ 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." diff --git a/editor/translations/fil.po b/editor/translations/fil.po index 490d9d92ec..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" @@ -2674,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 @@ -2698,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 @@ -2708,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 @@ -2793,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 "" @@ -2816,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." @@ -3195,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 @@ -4920,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 "" @@ -7506,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 @@ -9485,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 "" @@ -9915,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 @@ -9965,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 @@ -10023,7 +10051,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -11957,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 9bb04cb2b0..c39d4c7e0c 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -79,8 +79,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-08-01 11:14+0000\n" -"Last-Translator: Pierre Caye <pierrecaye@laposte.net>\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" "Language: 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" @@ -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)" @@ -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 :" @@ -2861,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" @@ -2893,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." @@ -2905,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" @@ -2929,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" @@ -3002,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" @@ -3422,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." @@ -5207,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" @@ -7876,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 @@ -8580,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" @@ -10017,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" @@ -10457,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 @@ -10509,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 @@ -10569,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 @@ -12683,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 "" @@ -13000,6 +13046,17 @@ 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 " diff --git a/editor/translations/ga.po b/editor/translations/ga.po index a496566c2e..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 "" @@ -2669,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 @@ -2693,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 @@ -2703,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 @@ -2788,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 "" @@ -3188,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 @@ -4917,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 "" @@ -7500,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 @@ -9481,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 "" @@ -9911,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 @@ -9961,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 @@ -10019,7 +10046,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -11955,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 0f9a19c842..3a508c0d6d 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -15,11 +15,12 @@ # 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-08-11 14:04+0000\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" @@ -29,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.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)." -msgstr "צפויה מחרוזת באורך 1 (תו)." +msgstr "היתה צפויה מחרוזת באורך 1 (תו)." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp @@ -52,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." @@ -64,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'" @@ -76,7 +77,7 @@ msgstr "בקריאה ל־‚%s’:" #: core/ustring.cpp msgid "B" -msgstr "ב׳" +msgstr "B" #: core/ustring.cpp msgid "KiB" @@ -124,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" @@ -247,7 +248,7 @@ msgstr "פונקציות:" #: editor/animation_track_editor.cpp msgid "Audio Clips:" -msgstr "רצועות שמע:" +msgstr "קטעי שמע:" #: editor/animation_track_editor.cpp msgid "Anim Clips:" @@ -259,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)" @@ -267,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." @@ -283,7 +284,7 @@ msgstr "זמן (שניות): " #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" -msgstr "" +msgstr "הפעלת/ביטול רצועה" #: editor/animation_track_editor.cpp msgid "Continuous" @@ -316,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 @@ -336,7 +337,6 @@ msgid "Delete Key(s)" msgstr "מחיקת מפתח(ות)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Update Mode" msgstr "שינוי מצב עדכון הנפשה" @@ -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 @@ -558,9 +559,8 @@ msgid "Animation properties." msgstr "מאפייני ההנפשה." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Copy Tracks" -msgstr "העתקת משתנים" +msgstr "העתקת רצועות" #: editor/animation_track_editor.cpp msgid "Scale Selection" @@ -665,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 @@ -703,7 +703,7 @@ msgstr "מעבר לשורה" #: editor/code_editor.cpp msgid "Line Number:" -msgstr "מספר השורה:" +msgstr "שורה מספר:" #: editor/code_editor.cpp msgid "%d replaced." @@ -711,7 +711,7 @@ 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 msgid "%d matches." @@ -725,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" @@ -921,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 "" @@ -934,9 +939,8 @@ msgid "Edit..." msgstr "עריכה..." #: editor/connections_dialog.cpp -#, fuzzy msgid "Go To Method" -msgstr "שיטות" +msgstr "מעבר למתודה" #: editor/create_dialog.cpp msgid "Change %s Type" @@ -960,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 "חיפוש:" @@ -1127,7 +1131,7 @@ msgstr "תודה רבה מקהילת Godot!" #: editor/editor_about.cpp msgid "Godot Engine contributors" -msgstr "מתנדבי מנוע Godot" +msgstr "מתנדבי מנוע גודו" #: editor/editor_about.cpp msgid "Project Founders" @@ -1137,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 "מנהל המיזם " @@ -1158,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 "מממנים זעירים" @@ -1212,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" @@ -1636,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 "להחליף הכול" @@ -1801,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 "הצגה במנהל הקבצים" @@ -1857,39 +1871,39 @@ 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 msgid "Go to previous folder." @@ -1900,18 +1914,16 @@ msgid "Go to next folder." 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 msgid "Refresh files." 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." @@ -1931,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 "תצוגה מקדימה:" @@ -1951,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" @@ -1975,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" @@ -1990,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" @@ -2015,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 @@ -2051,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 @@ -2153,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 @@ -2167,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" @@ -2188,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!" @@ -2224,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..." @@ -2235,7 +2229,7 @@ msgstr "לא ניתן לפתוח קובץ לכתיבה:" #: editor/editor_node.cpp msgid "Requested file format unknown:" -msgstr "תבנית הקובץ המבוקשת לא ידועה:" +msgstr "סוג הקובץ המבוקש לא ידוע:" #: editor/editor_node.cpp msgid "Error while saving." @@ -2243,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" @@ -2271,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." @@ -2282,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!" @@ -2317,7 +2311,7 @@ msgstr "שמירת הפריסה נכשלה!" #: editor/editor_node.cpp msgid "Default editor layout overridden." -msgstr "בררת המחדל של פריסת העורך שוכתבה." +msgstr "ברירת המחדל של עורך הפריסה נדרסה." #: editor/editor_node.cpp msgid "Layout name not found!" @@ -2325,7 +2319,7 @@ msgstr "שם הפריסה לא נמצא!" #: editor/editor_node.cpp msgid "Restored default layout to base settings." -msgstr "פריסת בררת המחדל שוחזרה להגדרות הבסיס." +msgstr "פריסת ברירת המחדל שוחזרה להגדרות הבסיס." #: editor/editor_node.cpp msgid "" @@ -2333,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 "" @@ -2355,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 "" @@ -2362,6 +2363,8 @@ 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." @@ -2380,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..." @@ -2398,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..." @@ -2431,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." @@ -2439,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." @@ -2454,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" @@ -2509,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 "" @@ -2566,6 +2573,8 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"לא הוגדרה סצנה ראשית, לבחור אחת?\n" +"אפשר לשנות זאת מאוחר יותר ב-\"הגדרות מיזם\" תחת הקטגוריה 'יישום'." #: editor/editor_node.cpp msgid "" @@ -2573,6 +2582,8 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"הסצינה שנבחרה '%s' לא קיימת, לבחור סצנה קיימת?\n" +"אפשר לשנות זאת מאוחר יותר ב\"הגדרות מיזם\" תחת הקטגוריה 'יישום'." #: editor/editor_node.cpp msgid "" @@ -2580,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." @@ -2666,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" @@ -2683,7 +2690,7 @@ msgstr "הלשונית הקודמת" #: editor/editor_node.cpp msgid "Filter Files..." -msgstr "" +msgstr "סנן קבצים..." #: editor/editor_node.cpp msgid "Operations with scene files." @@ -2710,7 +2717,6 @@ msgid "Save Scene" msgstr "שמירת סצנה" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "שמירת כל הסצנות" @@ -2720,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 @@ -2750,17 +2756,16 @@ msgid "Project Settings..." 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 msgid "Export..." @@ -2768,7 +2773,7 @@ msgstr "ייצוא..." #: editor/editor_node.cpp msgid "Install Android Build Template..." -msgstr "" +msgstr "התקנת תבנית בנייה לאנדרואיד..." #: editor/editor_node.cpp msgid "Open Project Data Folder" @@ -2784,7 +2789,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 @@ -2797,69 +2802,89 @@ 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" @@ -2874,46 +2899,40 @@ 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 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" @@ -2924,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 "חיפוש" @@ -2938,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" @@ -2952,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" @@ -2976,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" @@ -3029,9 +3042,8 @@ msgid "Inspector" msgstr "חוקר" #: editor/editor_node.cpp -#, fuzzy msgid "Expand Bottom Panel" -msgstr "להרחיב הכול" +msgstr "הרחבת פאנל תחתון" #: editor/editor_node.cpp msgid "Output" @@ -3043,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 "" @@ -3060,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 "" @@ -3127,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." @@ -3340,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 @@ -3596,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 @@ -3663,9 +3679,8 @@ msgid "Duplicating folder:" msgstr "תיקייה משוכפלת:" #: editor/filesystem_dock.cpp -#, fuzzy msgid "New Inherited Scene" -msgstr "סצנה חדשה בירושה…" +msgstr "סצנה חדשה יורשת" #: editor/filesystem_dock.cpp #, fuzzy @@ -3800,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 @@ -3869,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 @@ -4064,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" @@ -4308,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 @@ -4365,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." @@ -4405,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 @@ -4508,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 @@ -4539,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" @@ -4557,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)" @@ -4702,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 @@ -5176,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 "" @@ -6473,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 @@ -6648,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:" @@ -7038,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." @@ -7896,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 @@ -8841,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." @@ -9333,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." @@ -9983,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 "מנהל המיזמים" @@ -10061,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" @@ -10426,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 @@ -10481,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 @@ -10543,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 @@ -10657,7 +10664,6 @@ msgid "Delete %d nodes and any children?" msgstr "מחיקת שורה" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" msgstr "מחק %d מפרקים?" @@ -10953,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 @@ -11063,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 "" @@ -11642,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" @@ -11980,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: " @@ -12000,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." @@ -12020,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: " @@ -12047,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" @@ -12091,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" @@ -12240,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 "" @@ -12315,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 "" @@ -12322,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." @@ -12333,30 +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 "" +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 "" @@ -12372,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 "" @@ -12391,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 "" @@ -12403,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." @@ -12414,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 "" @@ -12438,44 +12466,45 @@ 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%%" @@ -12487,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 "" @@ -12507,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 "" @@ -12514,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." @@ -12525,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 "" @@ -12583,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 "" @@ -12612,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 "" @@ -12629,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 "" @@ -12707,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 "" @@ -12735,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 "" @@ -12756,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 "" @@ -12767,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)" @@ -12777,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 "" @@ -12785,41 +12866,52 @@ 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 "הסצנה הנוכחית מעולם לא נשמרה, נא לשמור אותה בטרם ההרצה." diff --git a/editor/translations/hi.po b/editor/translations/hi.po index 70d7a4d6b3..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 "पूर्व दर्शन:" @@ -2741,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" @@ -2770,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 डी के लिए) " "चल रहे खेल पर दिखाई देंगे।" @@ -2782,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" @@ -2804,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" @@ -2876,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 "ढूंढें" @@ -3289,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" "कृपया निर्यात मेनू में एक रननेबल प्रीसेट जोड़ें।" @@ -5022,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 "" @@ -7642,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 @@ -9675,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 "प्रोजेक्ट मैनेजर" @@ -10108,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 @@ -10158,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 @@ -10217,7 +10255,7 @@ msgid "Reset" msgstr "रीसेट आकार" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -12194,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 "" @@ -12450,6 +12493,16 @@ 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 "वर्तमान दृश्य कभी नहीं बचाया गया था, कृपया इसे चलाने से पहले बचाने के लिए ।" diff --git a/editor/translations/hr.po b/editor/translations/hr.po index a515a912b0..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:" @@ -2687,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 @@ -2711,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 @@ -2721,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 @@ -2806,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 "" @@ -3209,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 @@ -4941,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 "" @@ -7536,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 @@ -9529,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 "" @@ -9959,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 @@ -10009,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 @@ -10067,7 +10097,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -12017,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 c6828cc7d3..cac984d6d6 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -11,11 +11,12 @@ # 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-08-11 14:04+0000\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" @@ -24,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 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 "" -"É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 @@ -57,17 +58,15 @@ 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':" @@ -123,15 +122,15 @@ 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" @@ -139,7 +138,7 @@ msgstr "Bézier pont hozzáadása" #: editor/animation_bezier_editor.cpp msgid "Move Bezier Points" -msgstr "Bézier pont mozgatása" +msgstr "Bézier pontok áthelyezése" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" @@ -147,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" @@ -196,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 @@ -204,14 +204,12 @@ 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" @@ -219,16 +217,16 @@ 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 "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)" @@ -239,33 +237,33 @@ 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 "A sáv ki/be kapcsolása." @@ -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)" @@ -288,12 +286,11 @@ msgstr "Kiválasztott nyomvonal eltávolítása." #: editor/animation_track_editor.cpp msgid "Time (s): " -msgstr "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" @@ -335,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" @@ -368,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 @@ -388,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" @@ -411,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." @@ -444,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." @@ -457,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" @@ -517,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." @@ -535,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 @@ -563,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" @@ -582,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 @@ -599,21 +582,20 @@ 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" @@ -621,19 +603,19 @@ 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" @@ -664,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 @@ -678,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" @@ -697,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 "Ugrás Sorra" +msgstr "Ugrás sorra" #: editor/code_editor.cpp msgid "Line Number:" 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 "Egész 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 @@ -755,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 @@ -772,54 +751,47 @@ 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 @@ -840,21 +812,19 @@ 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" @@ -871,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 @@ -897,26 +866,24 @@ 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 @@ -924,45 +891,45 @@ msgid "Disconnect" 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" @@ -970,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 @@ -979,10 +946,10 @@ msgstr "Kedvencek:" #: editor/create_dialog.cpp editor/editor_file_dialog.cpp msgid "Recent:" -msgstr "Legutolsó:" +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:" @@ -991,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 @@ -1003,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 @@ -1072,7 +1037,6 @@ 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ó)" @@ -1094,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" @@ -1119,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" @@ -1167,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ő " @@ -1188,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" @@ -1212,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 @@ -1242,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" @@ -1257,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 @@ -1275,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" @@ -1332,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" @@ -1407,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" @@ -1418,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 @@ -1470,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!" @@ -1519,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" @@ -1571,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" @@ -1607,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" @@ -1636,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:" @@ -1655,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 "" +msgstr "Jelenetfa szerkesztése" #: editor/editor_feature_profile.cpp -#, fuzzy -msgid "Import Dock" -msgstr "Importálás" - -#: 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 @@ -1785,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" @@ -1833,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..." @@ -1910,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:" @@ -1978,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:" @@ -2022,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" @@ -2037,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" @@ -2062,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 "" @@ -2080,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 "" @@ -2095,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 @@ -2208,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 @@ -2217,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" @@ -2240,27 +2146,27 @@ 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 @@ -2276,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..." @@ -2296,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'." @@ -2345,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!" @@ -2392,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 "" @@ -2410,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 " @@ -2452,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..." @@ -2473,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." @@ -2507,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" @@ -2526,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..." @@ -2546,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?" @@ -2554,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?" @@ -2571,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" @@ -2580,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." @@ -2604,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 "" @@ -2696,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" @@ -2721,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" @@ -2769,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" @@ -2779,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..." @@ -2810,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..." @@ -2846,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 @@ -2901,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" @@ -2932,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." @@ -2944,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" @@ -2968,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" @@ -2988,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" @@ -3048,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" @@ -3059,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" @@ -3088,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." @@ -3112,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" @@ -3153,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" @@ -3170,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 "" @@ -3198,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" @@ -3228,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" @@ -3236,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" @@ -3252,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" @@ -3268,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:" @@ -3299,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:" @@ -3344,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 "" @@ -3399,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 @@ -3430,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!" @@ -3438,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." @@ -3505,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:" @@ -3516,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" @@ -3558,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." @@ -3580,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 "" @@ -3611,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." @@ -3627,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..." @@ -3689,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:" @@ -3710,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" @@ -3728,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." @@ -3768,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." @@ -3797,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..." @@ -3846,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 @@ -3880,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 "" @@ -3973,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" @@ -4006,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" @@ -4141,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'" @@ -4158,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" @@ -4168,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 @@ -4203,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" @@ -4252,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!" @@ -4265,53 +4106,47 @@ 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 msgid "" @@ -4325,28 +4160,24 @@ msgstr "" #: 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 @@ -4360,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 @@ -4388,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" @@ -4429,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" @@ -4486,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." @@ -4500,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)" @@ -4512,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 @@ -4531,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." @@ -4541,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." @@ -4594,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" @@ -4655,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 @@ -4686,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" @@ -4704,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)" @@ -4746,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." @@ -4768,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" @@ -4813,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" @@ -4845,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" @@ -4870,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 "" @@ -4915,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." @@ -4938,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:" @@ -5117,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." @@ -5172,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..." @@ -5194,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" @@ -5212,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" @@ -5252,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" @@ -5260,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:" @@ -5286,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" @@ -5299,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" @@ -5338,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" @@ -5356,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:" @@ -5372,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 "" @@ -5458,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" @@ -5528,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" @@ -5564,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" @@ -5621,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 @@ -5651,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 @@ -5660,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 @@ -5682,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" @@ -5716,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" @@ -5729,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" @@ -5739,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 @@ -5789,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" @@ -5802,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 @@ -5812,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" @@ -5842,7 +5559,7 @@ 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" @@ -5865,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 "" @@ -5878,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)" @@ -5897,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" @@ -5908,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" @@ -5935,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 "" @@ -5948,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" @@ -5973,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 @@ -6010,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 @@ -6022,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 @@ -6045,7 +5754,6 @@ msgid "Flat 0" msgstr "Lapos 0" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Flat 1" msgstr "Lapos 1" @@ -6074,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" @@ -6111,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" @@ -6121,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" @@ -6144,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" @@ -6157,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." @@ -6170,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" @@ -6255,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 "" @@ -6266,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 "" @@ -6317,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 @@ -6447,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" @@ -6472,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" @@ -6548,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" @@ -6580,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 @@ -6661,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 "" @@ -6671,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 "" @@ -6692,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" @@ -6747,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" @@ -6825,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" @@ -6846,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!" @@ -6930,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" @@ -6943,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." @@ -7026,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 @@ -7041,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" @@ -7083,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" @@ -7105,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" @@ -7119,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" @@ -7165,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." @@ -7213,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" @@ -7237,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." @@ -7266,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" @@ -7305,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 @@ -7356,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 @@ -7427,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" @@ -7454,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" @@ -7465,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)" @@ -7476,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" @@ -7683,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." @@ -7752,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." @@ -7825,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..." @@ -7871,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" @@ -7940,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." @@ -7992,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" @@ -8040,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)" @@ -8063,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!" @@ -8092,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 @@ -8117,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" @@ -8145,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:" @@ -8158,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" @@ -8177,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:" @@ -8233,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." @@ -8262,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" @@ -8307,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" @@ -8323,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" @@ -8340,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" @@ -8374,18 +7964,16 @@ 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 @@ -8413,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" @@ -8428,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." @@ -8454,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" @@ -8472,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." @@ -8483,7 +8066,7 @@ 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" @@ -8498,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." @@ -8527,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." @@ -8641,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." @@ -8658,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." @@ -8673,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 "" @@ -8684,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 "" @@ -8720,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." @@ -8835,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" @@ -8859,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 @@ -8935,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" @@ -8958,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" @@ -9051,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." @@ -9083,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." @@ -9096,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." @@ -9128,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." @@ -9204,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." @@ -9217,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." @@ -9246,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." @@ -9478,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." @@ -9506,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 "" @@ -9550,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." @@ -9686,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 "" @@ -9759,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" @@ -9780,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..." @@ -9812,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:" @@ -9841,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" @@ -9888,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" @@ -9905,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" @@ -9943,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" @@ -9974,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 "" @@ -10002,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" @@ -10119,9 +9613,8 @@ msgid "Unnamed Project" 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." @@ -10130,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 "" @@ -10168,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 "" @@ -10218,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 "Projektkezelő" #: editor/project_manager.cpp -#, fuzzy msgid "Projects" -msgstr "Projekt" +msgstr "Projektek" #: editor/project_manager.cpp msgid "Last Modified" @@ -10236,29 +9726,29 @@ msgid "Scan" 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 "" @@ -10275,7 +9765,7 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Key " -msgstr "" +msgstr "Kulcs " #: editor/project_settings_editor.cpp msgid "Joy Button" @@ -10287,7 +9777,7 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Mouse Button" -msgstr "" +msgstr "Egérgomb" #: editor/project_settings_editor.cpp msgid "" @@ -10296,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" @@ -10315,7 +9803,7 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "All Devices" -msgstr "" +msgstr "Minden eszköz" #: editor/project_settings_editor.cpp msgid "Device" @@ -10323,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" @@ -10406,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" @@ -10445,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" @@ -10462,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" @@ -10521,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" @@ -10531,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" @@ -10570,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:" @@ -10613,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" @@ -10652,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 -msgid "Prefix" +#, fuzzy +msgid "Replace:" +msgstr "Csere: " + +#: 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 "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 "" @@ -10713,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 @@ -10721,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" @@ -10760,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" @@ -10846,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." @@ -10879,19 +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 -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Node létrehozás" +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\"?" @@ -10902,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." @@ -10931,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!" @@ -11015,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 "" @@ -11031,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" @@ -11066,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 "" @@ -11081,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" @@ -11098,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:" @@ -11140,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 "" @@ -11187,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." @@ -11245,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 "" @@ -11308,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" @@ -11339,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" @@ -11377,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" @@ -11390,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" @@ -11411,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" @@ -11440,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" @@ -11485,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" @@ -11567,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" @@ -11626,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" @@ -11707,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" @@ -11781,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" @@ -11803,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." @@ -11936,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:" @@ -11983,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" @@ -12095,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'" @@ -12118,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." @@ -12151,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." @@ -12210,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" @@ -12222,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." @@ -12257,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!" @@ -12265,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." @@ -12294,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" @@ -12369,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 "" @@ -12440,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." @@ -12487,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)." @@ -12803,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 "" @@ -12903,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." @@ -12991,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 "" @@ -13040,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." @@ -13068,6 +12461,14 @@ 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." diff --git a/editor/translations/id.po b/editor/translations/id.po index cf4bd738fa..7e94f233c1 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -20,7 +20,7 @@ # 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. @@ -31,8 +31,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-06 04:41+0000\n" -"Last-Translator: yusuf afandi <afandi.yusuf.04@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" @@ -551,6 +551,7 @@ msgid "Seconds" msgstr "Detik" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -729,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" @@ -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:" @@ -2435,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..." @@ -2785,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" @@ -2815,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." @@ -2827,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" @@ -2851,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" @@ -2923,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" @@ -3341,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." @@ -5103,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" @@ -7750,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 @@ -9884,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" @@ -10324,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 @@ -10376,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 @@ -10436,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 @@ -10683,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,10 +12289,14 @@ msgstr "" "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 "" @@ -12429,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 "" @@ -12485,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 "" @@ -12506,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 "" @@ -12805,6 +12865,16 @@ 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 " diff --git a/editor/translations/is.po b/editor/translations/is.po index d53a9d609d..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 "" @@ -2709,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 @@ -2733,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 @@ -2743,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 +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 "" @@ -3231,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 @@ -4972,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 "" @@ -7576,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 @@ -9587,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" @@ -10021,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 @@ -10071,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 @@ -10129,7 +10155,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -12077,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 b2dac5ae0e..b16db7243d 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -54,12 +54,13 @@ # 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-08-05 16:58+0000\n" -"Last-Translator: Lorenzo Cerqua <lorenzocerqua@tutanota.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" @@ -67,7 +68,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 @@ -578,6 +579,7 @@ msgid "Seconds" msgstr "Secondi" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -730,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:" @@ -756,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" @@ -949,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?" @@ -986,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:" @@ -1167,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 " @@ -1188,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" @@ -1666,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)" @@ -1758,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" @@ -1871,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" @@ -1939,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:" @@ -2741,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" @@ -2829,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" @@ -2861,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." @@ -2873,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" @@ -2897,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" @@ -2970,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" @@ -3025,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" @@ -3033,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." @@ -3159,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" @@ -3390,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" @@ -4800,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:" @@ -5169,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" @@ -5604,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" @@ -7006,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." @@ -7830,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 @@ -8259,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" @@ -8275,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" @@ -9970,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" @@ -10410,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 @@ -10462,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 @@ -10522,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 @@ -11913,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" @@ -12058,7 +12099,7 @@ msgstr "" #: platform/android/export/export.cpp msgid "Release keystore incorrectly configured in the export preset." msgstr "" -"Debug keystore non configurato correttamente nel preset di esportazione." +"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." @@ -12191,9 +12232,8 @@ msgid "Run in Browser" msgstr "Esegui nel Browser" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Run exported HTML in the system's default browser." -msgstr "Esegui HTML esportato all'interno del browser di sistema predefinito." +msgstr "Esegui il codice HTML esportato nel browser di sistema predefinito." #: platform/javascript/export/export.cpp msgid "Could not write file:" @@ -12216,9 +12256,8 @@ msgid "Could not read boot splash image file:" msgstr "Impossibile leggere il file immagine di avvio splash:" #: platform/javascript/export/export.cpp -#, fuzzy 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." @@ -12628,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 "" @@ -12934,6 +12978,17 @@ 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 " diff --git a/editor/translations/ja.po b/editor/translations/ja.po index e0a1d4d909..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-08-11 14:04+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 @@ -557,6 +557,7 @@ msgid "Seconds" msgstr "秒" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "フレームレート(FPS)" @@ -608,7 +609,7 @@ msgstr "前のステップへ" #: editor/animation_track_editor.cpp msgid "Optimize Animation" -msgstr "アニメーションの最適化" +msgstr "アニメーションを最適化" #: editor/animation_track_editor.cpp msgid "Clean-Up Animation" @@ -735,7 +736,7 @@ msgstr "大文字小文字を区別する" msgid "Whole Words" msgstr "単語全体" -#: editor/code_editor.cpp editor/rename_dialog.cpp +#: editor/code_editor.cpp msgid "Replace" msgstr "置換" @@ -926,6 +927,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 "このシグナルからすべての接続を除去してもよろしいですか?" @@ -963,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 "検索:" @@ -1143,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 "プロジェクトマネージャー " @@ -1164,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 "ミニスポンサー" @@ -1640,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)" @@ -1914,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 "プレビュー:" @@ -2751,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..." @@ -2792,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" @@ -2823,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 "" "このオプションを有効にすると、コリジョン形状とレイキャストノードが、ゲーム実" "行中にも表示されるようになります。" @@ -2835,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" @@ -2894,11 +2922,11 @@ 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" @@ -2929,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 "検索" @@ -3347,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" "エクスポートメニューに実行可能なプリセットを追加してください。" @@ -5109,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 "プレビュー" @@ -7011,11 +7041,11 @@ 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" @@ -7023,7 +7053,7 @@ msgstr "すべての行を折りたたむ" #: editor/plugins/script_text_editor.cpp msgid "Unfold All Lines" -msgstr "すべての行を展開する" +msgstr "すべての行を展開" #: editor/plugins/script_text_editor.cpp msgid "Clone Down" @@ -7035,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" @@ -7753,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 @@ -9873,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 "プロジェクトマネージャー" @@ -10313,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 @@ -10365,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 @@ -10425,7 +10465,8 @@ msgid "Reset" msgstr "リセット" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +#, fuzzy +msgid "Regular Expression Error:" msgstr "正規表現エラー" #: editor/rename_dialog.cpp @@ -12504,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度を超える角度のスポットライトは、シャドウを投影できません。" @@ -12808,6 +12854,16 @@ 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 "現在のシーンは保存されませんでした。実行する前に保存してください。" diff --git a/editor/translations/ka.po b/editor/translations/ka.po index 1bfd23080b..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 "" @@ -2789,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 @@ -2813,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 @@ -2823,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 @@ -2909,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 "" @@ -3313,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 @@ -5092,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 "" @@ -7742,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 @@ -9783,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 "" @@ -10219,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 @@ -10269,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 @@ -10329,7 +10359,7 @@ msgid "Reset" msgstr "ზუმის საწყისზე დაყენება" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -12311,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 9b19450d58..d39f172539 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-31 03:47+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" @@ -32,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 @@ -541,6 +541,7 @@ msgid "Seconds" msgstr "초" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "초당 프레임" @@ -719,7 +720,7 @@ msgstr "대소문자 구분" msgid "Whole Words" msgstr "단어 단위로" -#: editor/code_editor.cpp editor/rename_dialog.cpp +#: editor/code_editor.cpp msgid "Replace" msgstr "바꾸기" @@ -912,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 "이 시그널의 모든 연결을 삭제할까요?" @@ -949,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 "검색:" @@ -1129,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 "프로젝트 매니저 " @@ -1150,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 +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)" @@ -1897,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 "미리 보기:" @@ -2767,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" "이 경우, 실행 파일이 네트워크 너머에 있는 편집기의 파일 시스템을 사용합니" @@ -2797,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 노드" "가 보이게 됩니다." @@ -2809,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" @@ -2833,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" @@ -2905,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 "검색" @@ -3317,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" "내보내기 메뉴에서 실행할 수 있는 프리셋을 추가해주세요." @@ -5077,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 "미리 보기" @@ -7710,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 @@ -9802,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 "프로젝트 매니저" @@ -10241,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 @@ -10293,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 @@ -10353,7 +10393,8 @@ msgid "Reset" msgstr "되돌리기" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +#, fuzzy +msgid "Regular Expression Error:" msgstr "정규 표현식 오류" #: editor/rename_dialog.cpp @@ -12401,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도 이상으로 잡게되면 그림자를 투영할 수 없습니다." @@ -12700,6 +12746,16 @@ 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 "현재 씬이 아직 저장되지 않았습니다. 실행하기 전에 저장해주세요." diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 4d3884d5f8..c723a4ebb5 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -5,12 +5,13 @@ # 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: 2020-07-06 04:41+0000\n" -"Last-Translator: Ignotas Gražys <ignotas.gr@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" @@ -19,12 +20,13 @@ 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: 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 "Netinkamo tipo argumentas į convert(), naudoti TYPE_* konstantas." +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)." @@ -530,6 +532,7 @@ msgid "Seconds" msgstr "" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "" @@ -712,7 +715,7 @@ msgstr "" msgid "Whole Words" msgstr "" -#: editor/code_editor.cpp editor/rename_dialog.cpp +#: editor/code_editor.cpp msgid "Replace" msgstr "" @@ -743,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" @@ -862,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" @@ -913,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 "" @@ -953,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 "" @@ -1127,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 "" @@ -1148,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 "" @@ -1615,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 @@ -1901,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 "" @@ -2745,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 @@ -2769,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 @@ -2779,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 @@ -2865,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 "" @@ -3036,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" @@ -3274,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 @@ -5066,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 "" @@ -7711,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 @@ -9762,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 "" @@ -10195,11 +10220,15 @@ msgid "Batch Rename" msgstr "Animacija: Pervadinti Takelį" #: 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 @@ -10246,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 @@ -10306,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 @@ -10418,9 +10447,8 @@ msgid "Delete %d nodes and any children?" msgstr "Ištrinti Efektą" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Ištrinti Efektą" +msgstr "Ištrinti %d nodus?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -10431,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." @@ -12287,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 2612b441c6..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 "" @@ -2706,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 @@ -2730,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 @@ -2740,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 @@ -2825,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 "" @@ -3225,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 @@ -4949,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 "" @@ -7559,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 @@ -9576,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 "" @@ -10009,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 @@ -10059,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 @@ -10118,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 @@ -12077,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 07a3bdae3c..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 "" @@ -2658,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 @@ -2682,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 @@ -2692,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 @@ -2777,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 "" @@ -3177,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 @@ -4901,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 "" @@ -7483,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 @@ -9459,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 "" @@ -9889,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 @@ -9939,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 @@ -9997,7 +10023,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -11926,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 aa7844d7ab..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 "" @@ -2670,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 @@ -2694,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 @@ -2704,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 @@ -2789,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 "" @@ -3189,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 @@ -4916,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 "" @@ -7499,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 @@ -9475,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 "" @@ -9905,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 @@ -9955,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 @@ -10013,7 +10039,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -11943,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 043d7e643e..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 "" @@ -2665,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 @@ -2689,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 @@ -2699,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 @@ -2784,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 "" @@ -3184,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 @@ -4908,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 "" @@ -7490,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 @@ -9466,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 "" @@ -9896,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 @@ -9946,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 @@ -10004,7 +10030,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -11933,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 ad70f291ca..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,150 +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 "" +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." @@ -2691,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 @@ -2715,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 @@ -2725,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 @@ -2758,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" @@ -2811,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 "" @@ -3211,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 @@ -4064,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" @@ -4209,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 @@ -4391,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" @@ -4491,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 @@ -4538,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)" @@ -4574,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:" @@ -4948,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 "" @@ -5621,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 @@ -7540,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 @@ -8065,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 "" @@ -8076,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 "" @@ -8477,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." @@ -8822,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." @@ -9532,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 "" @@ -9963,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 @@ -10013,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 @@ -10071,7 +10151,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -10177,14 +10257,12 @@ msgid "Make node as Root" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Semua Pilihan" +msgstr "Padamkan nod %d dan mana-mana kanak-kanak?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Semua Pilihan" +msgstr "Padam nod %d?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -10195,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." @@ -11172,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" @@ -11419,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" @@ -12014,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 dbad564d9a..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:" @@ -2914,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" @@ -2946,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." @@ -2958,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" @@ -2982,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" @@ -3063,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" @@ -3491,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." @@ -5389,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" @@ -8167,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 @@ -10302,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" @@ -10746,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 @@ -10802,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 @@ -10864,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 @@ -12922,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 "" @@ -13180,6 +13222,18 @@ 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." diff --git a/editor/translations/nl.po b/editor/translations/nl.po index 7f111ad901..122782e1b0 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -47,8 +47,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-04 08:58+0000\n" -"Last-Translator: marnicq van loon <marnicqvanloon@gmail.com>\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" "Language: nl\n" @@ -56,7 +56,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.2.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -567,6 +567,7 @@ msgid "Seconds" msgstr "Seconden" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -745,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" @@ -939,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?" @@ -977,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:" @@ -1160,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 " @@ -1181,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" @@ -1656,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)" @@ -1929,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:" @@ -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,9 +10639,8 @@ msgid "Make node as Root" msgstr "Knoop tot wortelknoop maken" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Verwijder knoop \"%s\" en zijn kinderen?" +msgstr "%d knopen en hun (eventuele) kinderen verwijderen?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -12567,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 "" @@ -12873,6 +12920,17 @@ 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." diff --git a/editor/translations/or.po b/editor/translations/or.po index 5859fe6b0a..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 "" @@ -2664,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 @@ -2688,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 @@ -2698,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 @@ -2783,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 "" @@ -3183,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 @@ -4907,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 "" @@ -7489,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 @@ -9465,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 "" @@ -9895,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 @@ -9945,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 @@ -10003,7 +10029,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -11932,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 d7ff515b05..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. @@ -41,12 +41,15 @@ # 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-07-31 03:47+0000\n" -"Last-Translator: Tomek <kobewi4e@gmail.com>\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" @@ -55,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 @@ -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:" @@ -2794,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" @@ -2824,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." @@ -2836,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" @@ -2860,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" @@ -2932,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" @@ -3089,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" @@ -3202,7 +3233,7 @@ msgstr "Klatka %" #: editor/editor_profiler.cpp msgid "Physics Frame %" -msgstr "Klatki Fizyki %" +msgstr "Klatka fizyki %" #: editor/editor_profiler.cpp msgid "Inclusive" @@ -3348,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" @@ -3934,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" @@ -4061,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" @@ -4487,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" @@ -4527,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)" @@ -4591,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" @@ -4872,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" @@ -4949,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:" @@ -5050,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..." @@ -5122,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" @@ -5408,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 @@ -7771,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 @@ -9539,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):" @@ -9898,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" @@ -10338,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 @@ -10390,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 @@ -10450,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 @@ -12538,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." @@ -12841,6 +12889,16 @@ 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 " diff --git a/editor/translations/pr.po b/editor/translations/pr.po index bf2d3ef0ad..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 "" @@ -2750,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 @@ -2774,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 @@ -2784,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 @@ -2872,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 "" @@ -3281,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 @@ -5072,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 "" @@ -7734,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 @@ -9789,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 "" @@ -10228,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 @@ -10280,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 @@ -10339,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 @@ -12365,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 b9d6c82ff0..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-07-31 03:47+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.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 +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" @@ -836,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 @@ -911,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?" @@ -948,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:" @@ -1037,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 "" @@ -1045,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)" @@ -1129,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 " @@ -1143,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" @@ -1403,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." @@ -1505,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..." @@ -1551,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:" @@ -1627,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)" @@ -1899,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:" @@ -1962,7 +1980,7 @@ msgstr "Sobrepõe:" #: editor/editor_help.cpp msgid "default:" -msgstr "Padrão:" +msgstr "predefinição:" #: editor/editor_help.cpp msgid "Methods" @@ -1994,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" @@ -2006,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 @@ -2220,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." @@ -2273,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!" @@ -2281,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 "" @@ -2289,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." @@ -2318,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." @@ -2521,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 @@ -2547,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 "" @@ -2557,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 "" @@ -2568,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" @@ -2582,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 @@ -2730,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" @@ -2779,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" @@ -2809,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." @@ -2821,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 @@ -2917,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" @@ -3048,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." @@ -3334,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." @@ -3464,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 @@ -3509,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:" @@ -3981,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:" @@ -4011,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 @@ -4304,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." @@ -4381,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 @@ -4395,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 @@ -5101,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" @@ -5598,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 @@ -5658,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 "" @@ -6396,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" @@ -6489,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 @@ -7742,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 @@ -8577,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" @@ -8997,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 "" @@ -9087,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." @@ -9177,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." @@ -9215,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 "" @@ -9229,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 "" @@ -9305,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 @@ -9321,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 @@ -9336,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 @@ -9808,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 "" @@ -9864,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" @@ -9965,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..." @@ -10149,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" @@ -10181,7 +10213,7 @@ msgstr "Zona morta" #: editor/project_settings_editor.cpp msgid "Device:" -msgstr "Dispositivo:" +msgstr "Aparelho:" #: editor/project_settings_editor.cpp msgid "Index:" @@ -10304,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 @@ -10356,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 @@ -10416,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 @@ -10425,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" @@ -10437,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:" @@ -10562,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 "" @@ -10570,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" @@ -10680,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" @@ -11539,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" @@ -11881,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 "" @@ -11931,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." @@ -12083,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:" @@ -12107,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." @@ -12190,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." @@ -12299,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 @@ -12333,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." @@ -12424,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." @@ -12497,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." @@ -12548,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 "" @@ -12649,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." @@ -12754,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 @@ -12801,6 +12848,16 @@ 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." diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index 6c035decd5..29b0350e10 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -99,12 +99,13 @@ # 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-08-11 14:04+0000\n" -"Last-Translator: Jairo Tuboi <tuboi.jairo@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" @@ -112,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 @@ -621,6 +622,7 @@ msgid "Seconds" msgstr "Segundos" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -799,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" @@ -991,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?" @@ -1028,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:" @@ -1209,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" @@ -1230,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" @@ -1705,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" - -#: editor/editor_feature_profile.cpp msgid "Node Dock" msgstr "Painel de Nós" #: editor/editor_feature_profile.cpp -msgid "FileSystem and Import Docks" -msgstr "Sistema de Arquivos e Importar Docks" +#, fuzzy +msgid "FileSystem Dock" +msgstr "Arquivos" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "Importar Dock" #: editor/editor_feature_profile.cpp msgid "Erase profile '%s'? (no undo)" @@ -1977,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:" @@ -2859,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" @@ -2889,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." @@ -2901,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" @@ -2925,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" @@ -2997,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" @@ -3416,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" @@ -5193,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" @@ -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 @@ -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 @@ -12602,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." @@ -12909,6 +12956,16 @@ 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." diff --git a/editor/translations/ro.po b/editor/translations/ro.po index 29487392f8..1549250858 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -538,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ă)" @@ -716,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" @@ -908,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?" @@ -945,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:" @@ -1126,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 " @@ -1147,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" @@ -1627,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)" @@ -1901,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:" @@ -2787,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" @@ -2817,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ă." @@ -2829,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" @@ -2853,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" @@ -2925,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" @@ -3325,9 +3355,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 "" "Nu a fost găsită nicio presetare de export care să poată rula pentru această " "platformă.\n" @@ -5113,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" @@ -7844,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 @@ -9912,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 "" @@ -10352,11 +10385,16 @@ 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 @@ -10404,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 @@ -10463,8 +10501,9 @@ 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 msgid "At character %s" @@ -12457,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 "" @@ -12711,6 +12755,16 @@ 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." diff --git a/editor/translations/ru.po b/editor/translations/ru.po index 7b12d8195c..2c85fe4e8c 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -85,12 +85,14 @@ # 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-08-01 11:14+0000\n" -"Last-Translator: Daniel <dan.ef1999@gmail.com>\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" @@ -99,7 +101,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 @@ -304,7 +306,7 @@ msgstr "Продолжительность анимации (в секундах #: editor/animation_track_editor.cpp msgid "Add Track" -msgstr "Добавить новый трек" +msgstr "Добавить трек" #: editor/animation_track_editor.cpp msgid "Animation Looping" @@ -325,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." @@ -333,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" @@ -382,7 +384,7 @@ msgstr "Линейный" #: editor/animation_track_editor.cpp msgid "Cubic" -msgstr "Кубическая" +msgstr "Кубический" #: editor/animation_track_editor.cpp msgid "Clamp Loop Interp" @@ -609,6 +611,7 @@ msgid "Seconds" msgstr "Секунды" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -787,7 +790,7 @@ msgstr "Учитывать регистр" msgid "Whole Words" msgstr "Целые слова" -#: editor/code_editor.cpp editor/rename_dialog.cpp +#: editor/code_editor.cpp msgid "Replace" msgstr "Заменить" @@ -980,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 "Вы уверены, что хотите удалить все подключения от сигнала?" @@ -1017,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 "Поиск:" @@ -1197,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 "Менеджер проектов " @@ -1218,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 "Мини спонсоры" @@ -1693,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)" @@ -1919,7 +1939,7 @@ msgstr "Режим отображения" #: editor/editor_file_dialog.cpp msgid "Focus Path" -msgstr "Фокус на пути" +msgstr "Переместить фокус на строку пути" #: editor/editor_file_dialog.cpp msgid "Move Favorite Up" @@ -1967,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 "Предпросмотр:" @@ -2777,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." @@ -2844,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" @@ -2874,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) " "будут видимыми в запущенной игре." @@ -2886,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" @@ -2910,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" @@ -2982,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 "Поиск" @@ -3401,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" "Пожалуйста, добавьте его в меню экспорта." @@ -5168,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 "Предпросмотр" @@ -7815,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 @@ -8952,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." @@ -8960,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." @@ -8980,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." @@ -8988,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." @@ -9033,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." @@ -9939,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 "Менеджер проектов" @@ -10378,11 +10412,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 @@ -10430,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 "" "Если установить, счетчик перезапустится для каждой группы дочерних узлов" @@ -10492,7 +10534,8 @@ msgid "Reset" msgstr "Сбросить" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +#, fuzzy +msgid "Regular Expression Error:" msgstr "Ошибка в регулярном выражении" #: editor/rename_dialog.cpp @@ -12021,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." @@ -12574,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 градусов не может отбрасывать тени." @@ -12878,6 +12925,16 @@ 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 "" #~ "Текущая сцена никогда не была сохранена, сохраните её перед запуском." diff --git a/editor/translations/si.po b/editor/translations/si.po index c8b0a57cbe..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 "" @@ -2689,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 @@ -2713,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 @@ -2723,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 @@ -2808,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 "" @@ -3209,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 @@ -4946,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 "" @@ -7547,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 @@ -9542,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 "" @@ -9972,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 @@ -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 @@ -12026,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 59cd8da671..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:" @@ -2761,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ť." @@ -2803,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" @@ -2827,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" @@ -2899,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ť" @@ -3053,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" @@ -3105,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." @@ -3113,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..." @@ -3315,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." @@ -4223,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 @@ -4253,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 @@ -4372,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 "" @@ -4685,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:" @@ -5049,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 "" @@ -5073,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 @@ -5290,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 @@ -5297,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 @@ -5402,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 "" @@ -5591,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 "" @@ -5660,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." @@ -6529,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" @@ -7356,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." @@ -7419,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 "" @@ -7438,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" @@ -7492,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..." @@ -7541,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" @@ -7610,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 @@ -7619,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 @@ -7627,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 @@ -7637,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!" @@ -7701,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:" @@ -7763,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 @@ -7835,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 @@ -7844,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" @@ -8274,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)" @@ -8322,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 @@ -8334,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 "" @@ -8356,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" @@ -9832,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 "" @@ -10273,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 @@ -10323,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 @@ -10381,7 +10393,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -10488,14 +10500,12 @@ msgid "Make node as Root" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Všetky vybrané" +msgstr "Zmazať %d node-y a nejaké deti?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Všetky vybrané" +msgstr "Zmazať %d node-y?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -10506,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." @@ -10711,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:" @@ -10917,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:" @@ -11312,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" @@ -12361,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 "" @@ -12400,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 "" @@ -12625,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 @@ -12655,6 +12665,16 @@ 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." diff --git a/editor/translations/sl.po b/editor/translations/sl.po index c40bc3b40f..a97fb1ae39 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -555,6 +555,7 @@ msgid "Seconds" msgstr "" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "" @@ -743,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" @@ -947,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 "" @@ -987,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:" @@ -1172,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 " @@ -1193,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" @@ -1681,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" @@ -1984,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:" @@ -2894,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" @@ -2924,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." @@ -2936,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" @@ -3038,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" @@ -3453,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." @@ -5325,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" @@ -8065,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 @@ -10166,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" @@ -10606,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 @@ -10662,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 @@ -10722,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 @@ -12775,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 "" @@ -13042,6 +13085,17 @@ 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." diff --git a/editor/translations/sq.po b/editor/translations/sq.po index 2df44bdd5b..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:" @@ -2823,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" @@ -2853,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." @@ -2865,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" @@ -2965,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" @@ -3381,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." @@ -5166,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 "" @@ -7798,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 @@ -9817,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 "" @@ -10250,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 @@ -10301,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 @@ -10359,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 @@ -12345,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 "" @@ -12596,6 +12639,17 @@ 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ë " diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index 0bb67647f8..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 "Преглед:" @@ -3008,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" @@ -3038,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Д) ћу бити видљиви током игре ако " "је ова опција укључена." @@ -3050,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" @@ -3074,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" @@ -3155,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 "Тражи" @@ -3615,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" "Молим, додајте поставке у менију за извоз." @@ -5579,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 "Преглед" @@ -8496,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 @@ -10994,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 "Менаџер пројекта" @@ -11535,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 @@ -11597,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 @@ -11671,7 +11709,7 @@ msgstr "Ресетуј увеличање" #: editor/rename_dialog.cpp #, fuzzy -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "Регуларни Израз Грешка" #: editor/rename_dialog.cpp @@ -14096,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." @@ -14442,6 +14485,17 @@ 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 "Тренутна сцена није сачувана, молим сачувајте је пре покретања." diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index 4dece6c33c..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 "" @@ -2704,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 @@ -2728,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 @@ -2738,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 @@ -2824,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 "" @@ -3226,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 @@ -4970,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 "" @@ -7594,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 @@ -9617,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 "" @@ -10051,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 @@ -10101,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 @@ -10159,7 +10185,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -12114,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 d3cda1a61a..ff50441f17 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -17,12 +17,13 @@ # 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-07-15 02:42+0000\n" -"Last-Translator: Jonas Robertsson <jonas.robertsson@posteo.net>\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" @@ -539,6 +540,7 @@ msgid "Seconds" msgstr "Sekunder" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -717,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" @@ -910,6 +912,11 @@ 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 "Är du säker att du vill ta bort alla kopplingar från denna signal?" @@ -947,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:" @@ -1129,9 +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 msgid "Project Manager " -msgstr "Projekthanterare " +msgstr "Projektledare " #: editor/editor_about.cpp msgid "Developers" @@ -1150,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" @@ -1231,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" @@ -1256,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" @@ -1385,9 +1403,8 @@ 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 @@ -1639,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 @@ -1937,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:" @@ -2854,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 @@ -2878,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 @@ -2888,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 @@ -2976,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" @@ -3395,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 @@ -5243,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" @@ -7961,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 @@ -10059,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" @@ -10498,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 @@ -10554,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 @@ -10616,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 @@ -12668,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 "" diff --git a/editor/translations/ta.po b/editor/translations/ta.po index 01cbcc1881..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 "" @@ -2691,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 @@ -2715,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 @@ -2725,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 @@ -2811,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 "" @@ -3212,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 @@ -4950,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 "" @@ -7545,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 @@ -9536,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 "" @@ -9968,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 @@ -10018,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 @@ -10076,7 +10106,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -12020,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 3523306b0d..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 "" @@ -2666,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 @@ -2690,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 @@ -2700,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 @@ -2785,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 "" @@ -3185,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 @@ -4909,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 "" @@ -7491,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 @@ -9468,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 "" @@ -9898,11 +9921,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 @@ -9948,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 @@ -10006,7 +10033,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -11935,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 279f8c08ba..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" @@ -2719,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" @@ -2745,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 @@ -2755,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" "ถ้าใช้กับอุปกรณ์รีโมท จะดีกว่าถ้าเปิดระบบไฟล์เครือข่ายด้วย" @@ -2845,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 "ค้นหา" @@ -3246,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" "กรุณาเพิ่มแม่แบบส่งออกในเมนูส่งออก" @@ -5011,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 "ตัวอย่าง" @@ -7750,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 @@ -9845,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 "ตัวจัดการโปรเจกต์" @@ -10285,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 @@ -10336,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 @@ -10397,7 +10441,7 @@ msgstr "รีเซ็ตซูม" #: editor/rename_dialog.cpp #, fuzzy -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "แก้ไขสมการ" #: editor/rename_dialog.cpp @@ -12414,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 "" @@ -12696,6 +12745,16 @@ 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 "ฉากปัจจุบันยังไม่ได้บันทึก กรุณาบันทึกก่อนเริ่มโปรแกรม" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index edc01421d2..c443d7bb94 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -50,12 +50,15 @@ # 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-07-06 04:41+0000\n" -"Last-Translator: Efruz Yıldırır <efruzyildirir@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" @@ -63,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.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 @@ -573,6 +576,7 @@ msgid "Seconds" msgstr "Saniye" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -751,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" @@ -943,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?" @@ -980,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:" @@ -1160,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 " @@ -1181,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" @@ -1657,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)" @@ -1929,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:" @@ -1976,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" @@ -1996,7 +2019,7 @@ msgstr "varsayılan:" #: editor/editor_help.cpp msgid "Methods" -msgstr "Metotlar" +msgstr "Yöntemler" #: editor/editor_help.cpp msgid "Theme Properties" @@ -2027,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 "" @@ -2805,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" @@ -2835,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." @@ -2847,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" @@ -2871,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" @@ -2943,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" @@ -3362,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." @@ -5133,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" @@ -7431,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" @@ -7770,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 @@ -9893,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" @@ -10332,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 @@ -10384,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 @@ -10444,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 @@ -10516,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." @@ -10555,7 +10606,6 @@ msgid "Make node as Root" msgstr "Düğümü Kök düğüm yap" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" msgstr "\"%s\" düğümü ve alt düğümleri silinsin mi?" @@ -10693,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" @@ -10743,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" @@ -12510,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." @@ -12817,6 +12872,16 @@ 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." diff --git a/editor/translations/uk.po b/editor/translations/uk.po index f7386bf72d..417c5aeeeb 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-08-04 06:43+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" @@ -29,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 @@ -546,6 +546,7 @@ msgid "Seconds" msgstr "Секунди" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "Кадри за секунду" @@ -724,7 +725,7 @@ msgstr "Враховувати регістр" msgid "Whole Words" msgstr "Цілі слова" -#: editor/code_editor.cpp editor/rename_dialog.cpp +#: editor/code_editor.cpp msgid "Replace" msgstr "Замінити" @@ -917,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 "Ви справді хочете вилучити усі з'єднання з цього сигналу?" @@ -954,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 "Пошук:" @@ -1136,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 "Керівник проектів " @@ -1157,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 "Міні-спонсори" @@ -1633,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)" @@ -1906,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 "Попередній перегляд:" @@ -2787,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" @@ -2817,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) буде видно в роботі гри, " "якщо ця опція увімкнена." @@ -2829,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" @@ -2853,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" @@ -2925,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 "Пошук" @@ -3344,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" "Будь ласка, додайте його в меню експорту." @@ -5118,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 "Попередній перегляд" @@ -7770,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 @@ -9902,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 "Керівник проекту" @@ -10341,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 @@ -10393,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 "" "Якщо позначено, лічильник перезапускатиметься для кожної групи дочірніх " "вузлів" @@ -10455,7 +10495,8 @@ msgid "Reset" msgstr "Скинути" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +#, fuzzy +msgid "Regular Expression Error:" msgstr "Помилка у формальному виразі" #: editor/rename_dialog.cpp @@ -12554,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 градусів, не може давати тіні." @@ -12863,6 +12909,16 @@ 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 "" #~ "Поточна сцена ніколи не була збережена, будь ласка, збережіть її до " diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index 4f4dccd8bb..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 "" @@ -2717,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 @@ -2741,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 @@ -2751,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 @@ -2837,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 "" @@ -3244,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 @@ -5010,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 "" @@ -7662,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 @@ -9703,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 "" @@ -10139,11 +10162,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 @@ -10189,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 @@ -10247,7 +10274,7 @@ msgid "Reset" msgstr "" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -12230,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 bd52b850e4..2b56df15ed 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -534,6 +534,7 @@ msgid "Seconds" msgstr "Giây" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "" @@ -717,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ế" @@ -911,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?" @@ -948,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:" @@ -1128,6 +1134,9 @@ msgstr "Các đồng sáng lập dự án" 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 " @@ -1149,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ỏ" @@ -1630,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)" @@ -1910,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ử:" @@ -2786,24 +2805,27 @@ 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" @@ -2817,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 @@ -2827,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 @@ -2916,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" @@ -3334,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 @@ -5112,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ử" @@ -7785,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 @@ -9883,6 +9906,7 @@ 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 "Trình quản lý Dự án" @@ -10324,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 @@ -10375,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 @@ -10435,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 @@ -12454,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 "" @@ -12714,6 +12750,13 @@ 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." diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index f35da2476c..1fd689420b 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -70,12 +70,13 @@ # 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-08-11 14:04+0000\n" -"Last-Translator: Gardner Belgrade <hapenia@sina.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" @@ -83,7 +84,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 @@ -584,6 +585,7 @@ msgid "Seconds" msgstr "秒" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -762,7 +764,7 @@ msgstr "大小写匹配" msgid "Whole Words" msgstr "全字匹配" -#: editor/code_editor.cpp editor/rename_dialog.cpp +#: editor/code_editor.cpp msgid "Replace" msgstr "替换" @@ -951,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 "你确定要从该广播信号中移除所有连接吗?" @@ -988,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 "搜索:" @@ -1168,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 "项目管理员 " @@ -1189,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 "迷你赞助" @@ -1656,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)" @@ -1927,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 "预览:" @@ -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" "请在导出菜单中添加可执行预设。" @@ -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 "预览" @@ -5319,7 +5351,7 @@ msgstr "重置缩放" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Select Mode" -msgstr "鼠标模式" +msgstr "选择模式" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag: Rotate" @@ -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" @@ -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 "项目管理器" @@ -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 @@ -10788,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." @@ -10838,7 +10881,7 @@ msgstr "错误:" #: editor/script_editor_debugger.cpp msgid "C++ Error" -msgstr "C ++错误" +msgstr "C++错误" #: editor/script_editor_debugger.cpp msgid "C++ Error:" @@ -10846,7 +10889,7 @@ msgstr "C++错误:" #: editor/script_editor_debugger.cpp msgid "C++ Source" -msgstr "C++源程序" +msgstr "C++源文件" #: editor/script_editor_debugger.cpp msgid "Source:" @@ -10854,7 +10897,7 @@ msgstr "源文件:" #: editor/script_editor_debugger.cpp msgid "C++ Source:" -msgstr "C++源程序:" +msgstr "C++源文件:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -10882,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" @@ -10922,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" @@ -10970,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" @@ -11102,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" @@ -11210,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" @@ -11302,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..." @@ -12287,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 无法投射出阴影。" @@ -12570,6 +12618,16 @@ 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 "当前场景尚未保存,请保存后再尝试执行。" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index d4e1bf62dd..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 "預覽:" @@ -2861,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 @@ -2886,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 @@ -2896,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 @@ -2990,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 "搜尋" @@ -3415,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 @@ -5292,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 "" @@ -8025,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 @@ -10130,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 "" @@ -10583,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 @@ -10637,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 @@ -10698,7 +10729,7 @@ msgid "Reset" msgstr "重設縮放比例" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +msgid "Regular Expression Error:" msgstr "" #: editor/rename_dialog.cpp @@ -12752,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 "" @@ -13010,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 51efdfd2b8..4c693ce275 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -29,8 +29,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-31 03:47+0000\n" -"Last-Translator: MintSoda <lionlxh@qq.com>\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" "Language: zh_TW\n" @@ -38,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 @@ -540,6 +540,7 @@ msgid "Seconds" msgstr "秒" #: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" msgstr "FPS" @@ -718,7 +719,7 @@ msgstr "區分大小寫" msgid "Whole Words" msgstr "搜尋完整單詞" -#: editor/code_editor.cpp editor/rename_dialog.cpp +#: editor/code_editor.cpp msgid "Replace" msgstr "取代" @@ -907,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 "確定要刪除所有來自此訊號的連接嗎?" @@ -944,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 "搜尋:" @@ -1124,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 "專案管理員 " @@ -1145,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 "迷你贊助" @@ -1616,16 +1633,17 @@ 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)" @@ -1887,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 "預覽:" @@ -2737,23 +2755,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" @@ -2765,9 +2788,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 @@ -2775,35 +2799,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" "若在遠端裝置上使用,可使用網路檔案系統 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 以獲得最佳效能。" @@ -2865,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 "搜尋" @@ -3275,9 +3304,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" "請在匯出選單中新增一個可執行的預設設定。" @@ -5019,7 +5050,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 "預覽" @@ -7640,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 @@ -9710,6 +9742,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 "專案管理員" @@ -10144,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 @@ -10196,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 @@ -10256,7 +10297,8 @@ msgid "Reset" msgstr "重設" #: editor/rename_dialog.cpp -msgid "Regular Expression Error" +#, fuzzy +msgid "Regular Expression Error:" msgstr "正規表示式錯誤" #: editor/rename_dialog.cpp @@ -12258,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 無法投射出陰影。" @@ -12547,6 +12594,15 @@ 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 "目前的場景從未被保存,請先保存以執行。" |