diff options
Diffstat (limited to 'editor')
93 files changed, 22378 insertions, 6548 deletions
diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index 8426dfd1ac..9eabc31621 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -1522,6 +1522,8 @@ void AnimationTimelineEdit::set_animation(const Ref<Animation> &p_animation, boo animation = p_animation; read_only = p_read_only; + length->set_read_only(read_only); + if (animation.is_valid()) { len_hb->show(); if (read_only) { @@ -2003,7 +2005,6 @@ void AnimationTrackEdit::_notification(int p_what) { draw_texture(down_icon, Vector2(ofs, int(get_size().height - down_icon->get_height()) / 2)); update_mode_rect.size.x += down_icon->get_width(); } else if (animation->track_get_type(track) == Animation::TYPE_BEZIER) { - Ref<Texture2D> bezier_icon = get_theme_icon(SNAME("EditBezier"), SNAME("EditorIcons")); update_mode_rect.size.x += down_icon->get_width(); update_mode_rect = Rect2(); } else { @@ -2228,7 +2229,7 @@ void AnimationTrackEdit::draw_key(int p_index, float p_pixels_sec, int p_x, bool if (i > 0) { text += ", "; } - text += String(args[i]); + text += args[i].get_construct_string(); } text += ")"; @@ -2540,7 +2541,7 @@ String AnimationTrackEdit::get_tooltip(const Point2 &p_pos) const { if (i > 0) { text += ", "; } - text += String(args[i]); + text += args[i].get_construct_string(); } text += ")\n"; @@ -3311,25 +3312,15 @@ void AnimationTrackEditor::set_animation(const Ref<Animation> &p_anim, bool p_re snap->set_disabled(false); snap_mode->set_disabled(false); - bezier_edit_icon->set_disabled(true); - imported_anim_warning->hide(); - bool import_warning_done = false; - bool bezier_done = false; for (int i = 0; i < animation->get_track_count(); i++) { if (animation->track_is_imported(i)) { imported_anim_warning->show(); - import_warning_done = true; - } - if (animation->track_get_type(i) == Animation::TrackType::TYPE_BEZIER) { - bezier_edit_icon->set_disabled(false); - bezier_done = true; - } - if (import_warning_done && bezier_done) { break; } } + _check_bezier_exist(); } else { hscroll->hide(); edit->set_disabled(true); @@ -3343,6 +3334,24 @@ void AnimationTrackEditor::set_animation(const Ref<Animation> &p_anim, bool p_re } } +void AnimationTrackEditor::_check_bezier_exist() { + bool is_exist = false; + for (int i = 0; i < animation->get_track_count(); i++) { + if (animation->track_get_type(i) == Animation::TrackType::TYPE_BEZIER) { + is_exist = true; + break; + } + } + if (is_exist) { + bezier_edit_icon->set_disabled(false); + } else { + if (bezier_edit->is_visible()) { + _cancel_bezier_edit(); + } + bezier_edit_icon->set_disabled(true); + } +} + Ref<Animation> AnimationTrackEditor::get_current_animation() const { return animation; } @@ -4292,6 +4301,8 @@ void AnimationTrackEditor::_update_tracks() { memdelete(track_vbox->get_child(0)); } + timeline->set_track_edit(nullptr); + track_edits.clear(); groups.clear(); @@ -4490,6 +4501,8 @@ void AnimationTrackEditor::_animation_changed() { return; // All will be updated, don't bother with anything. } + _check_bezier_exist(); + if (key_edit) { if (key_edit->setting) { // If editing a key, just redraw the edited track, makes refresh less costly. @@ -4710,7 +4723,6 @@ void AnimationTrackEditor::_new_track_node_selected(NodePath p_path) { adding_track_path = path_to; prop_selector->set_type_filter(filter); prop_selector->select_property_from_instance(node); - bezier_edit_icon->set_disabled(false); } break; case Animation::TYPE_AUDIO: { if (!node->is_class("AudioStreamPlayer") && !node->is_class("AudioStreamPlayer2D") && !node->is_class("AudioStreamPlayer3D")) { diff --git a/editor/animation_track_editor.h b/editor/animation_track_editor.h index 2a59bda2a4..c733f397e3 100644 --- a/editor/animation_track_editor.h +++ b/editor/animation_track_editor.h @@ -399,6 +399,7 @@ class AnimationTrackEditor : public VBoxContainer { void _update_tracks(); void _redraw_tracks(); void _redraw_groups(); + void _check_bezier_exist(); void _name_limit_changed(); void _timeline_changed(float p_new_pos, bool p_drag, bool p_timeline_only); diff --git a/editor/animation_track_editor_plugins.cpp b/editor/animation_track_editor_plugins.cpp index 2895aa9710..be4a070213 100644 --- a/editor/animation_track_editor_plugins.cpp +++ b/editor/animation_track_editor_plugins.cpp @@ -847,9 +847,14 @@ bool AnimationTrackEditTypeAudio::is_key_selectable_by_distance() const { void AnimationTrackEditTypeAudio::draw_key(int p_index, float p_pixels_sec, int p_x, bool p_selected, int p_clip_left, int p_clip_right) { Ref<AudioStream> stream = get_animation()->audio_track_get_key_stream(get_track(), p_index); - if (!stream.is_valid()) { - AnimationTrackEdit::draw_key(p_index, p_pixels_sec, p_x, p_selected, p_clip_left, p_clip_right); + AnimationTrackEdit::draw_key(p_index, p_pixels_sec, p_x, p_selected, p_clip_left, p_clip_right); // Draw diamond. + return; + } + + float len = stream->get_length(); + if (len == 0) { + AnimationTrackEdit::draw_key(p_index, p_pixels_sec, p_x, p_selected, p_clip_left, p_clip_right); // Draw diamond. return; } @@ -871,16 +876,10 @@ void AnimationTrackEditTypeAudio::draw_key(int p_index, float p_pixels_sec, int int font_size = get_theme_font_size(SNAME("font_size"), SNAME("Label")); float fh = int(font->get_height(font_size) * 1.5); - float len = stream->get_length(); - Ref<AudioStreamPreview> preview = AudioStreamPreviewGenerator::get_singleton()->generate_preview(stream); float preview_len = preview->get_length(); - if (len == 0) { - len = preview_len; - } - int pixel_total_len = len * p_pixels_sec; len -= end_ofs; @@ -1044,16 +1043,13 @@ void AnimationTrackEditTypeAudio::gui_input(const Ref<InputEvent> &p_event) { continue; } - float start_ofs = get_animation()->audio_track_get_key_start_offset(get_track(), i); - float end_ofs = get_animation()->audio_track_get_key_end_offset(get_track(), i); float len = stream->get_length(); - if (len == 0) { - Ref<AudioStreamPreview> preview = AudioStreamPreviewGenerator::get_singleton()->generate_preview(stream); - float preview_len = preview->get_length(); - len = preview_len; + continue; } + float start_ofs = get_animation()->audio_track_get_key_start_offset(get_track(), i); + float end_ofs = get_animation()->audio_track_get_key_end_offset(get_track(), i); len -= end_ofs; len -= start_ofs; diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index b217cd57bf..9a8a1097cd 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -1312,20 +1312,15 @@ void CodeTextEditor::move_lines_up() { Vector<int> new_group{ c }; Pair<int, int> group_border; - if (text_editor->has_selection(c)) { - group_border.first = text_editor->get_selection_from_line(c); - group_border.second = text_editor->get_selection_to_line(c); - } else { - group_border.first = text_editor->get_caret_line(c); - group_border.second = text_editor->get_caret_line(c); - } + group_border.first = _get_affected_lines_from(c); + group_border.second = _get_affected_lines_to(c); for (int j = i; j < caret_edit_order.size() - 1; j++) { int c_current = caret_edit_order[j]; int c_next = caret_edit_order[j + 1]; - int next_start_pos = text_editor->has_selection(c_next) ? text_editor->get_selection_from_line(c_next) : text_editor->get_caret_line(c_next); - int next_end_pos = text_editor->has_selection(c_next) ? text_editor->get_selection_to_line(c_next) : text_editor->get_caret_line(c_next); + int next_start_pos = _get_affected_lines_from(c_next); + int next_end_pos = _get_affected_lines_to(c_next); int current_start_pos = text_editor->has_selection(c_current) ? text_editor->get_selection_from_line(c_current) : text_editor->get_caret_line(c_current); @@ -1405,27 +1400,22 @@ void CodeTextEditor::move_lines_down() { // Lists of carets representing each group Vector<Vector<int>> caret_groups; Vector<Pair<int, int>> group_borders; - + Vector<int> group_border_ends; // Search for groups of carets and their selections residing on the same lines for (int i = 0; i < caret_edit_order.size(); i++) { int c = caret_edit_order[i]; Vector<int> new_group{ c }; Pair<int, int> group_border; - if (text_editor->has_selection(c)) { - group_border.first = text_editor->get_selection_from_line(c); - group_border.second = text_editor->get_selection_to_line(c); - } else { - group_border.first = text_editor->get_caret_line(c); - group_border.second = text_editor->get_caret_line(c); - } + group_border.first = _get_affected_lines_from(c); + group_border.second = _get_affected_lines_to(c); for (int j = i; j < caret_edit_order.size() - 1; j++) { int c_current = caret_edit_order[j]; int c_next = caret_edit_order[j + 1]; - int next_start_pos = text_editor->has_selection(c_next) ? text_editor->get_selection_from_line(c_next) : text_editor->get_caret_line(c_next); - int next_end_pos = text_editor->has_selection(c_next) ? text_editor->get_selection_to_line(c_next) : text_editor->get_caret_line(c_next); + int next_start_pos = _get_affected_lines_from(c_next); + int next_end_pos = _get_affected_lines_to(c_next); int current_start_pos = text_editor->has_selection(c_current) ? text_editor->get_selection_from_line(c_current) : text_editor->get_caret_line(c_current); @@ -1442,16 +1432,17 @@ void CodeTextEditor::move_lines_down() { } } group_borders.push_back(group_border); + group_border_ends.push_back(text_editor->has_selection(c) ? text_editor->get_selection_to_line(c) : text_editor->get_caret_line(c)); caret_groups.push_back(new_group); } for (int i = 0; i < group_borders.size(); i++) { - if (group_borders[i].second + 1 > text_editor->get_line_count() - 1) { + if (group_border_ends[i] + 1 > text_editor->get_line_count() - 1) { continue; } // If the group starts overlapping with the upper group don't move it - if (i > 0 && group_borders[i].second + 1 >= group_borders[i - 1].first) { + if (i > 0 && group_border_ends[i] + 1 >= group_borders[i - 1].first) { continue; } @@ -1498,87 +1489,44 @@ void CodeTextEditor::move_lines_down() { text_editor->queue_redraw(); } -void CodeTextEditor::_delete_line(int p_line, int p_caret) { - // this is currently intended to be called within delete_lines() - // so `begin_complex_operation` is omitted here - text_editor->set_line(p_line, ""); - if (p_line == 0 && text_editor->get_line_count() > 1) { - text_editor->set_caret_line(1, p_caret == 0, true, 0, p_caret); - text_editor->set_caret_column(0, p_caret == 0, p_caret); - } - text_editor->backspace(p_caret); - if (p_line < text_editor->get_line_count()) { - text_editor->unfold_line(p_line); - } - text_editor->set_caret_line(p_line, p_caret == 0, true, 0, p_caret); -} - void CodeTextEditor::delete_lines() { text_editor->begin_complex_operation(); - Vector<int> carets_to_remove; - Vector<int> caret_edit_order = text_editor->get_caret_index_edit_order(); - for (int i = 0; i < caret_edit_order.size(); i++) { - int c = caret_edit_order[i]; - int cl = text_editor->get_caret_line(c); - - bool swaped_caret = false; - for (int j = i + 1; j < caret_edit_order.size(); j++) { - if (text_editor->has_selection(caret_edit_order[j])) { - if (text_editor->get_selection_from_line() == cl) { - carets_to_remove.push_back(caret_edit_order[j]); - continue; - } - - if (text_editor->get_selection_to_line() == cl) { - if (text_editor->has_selection(c)) { - if (text_editor->get_selection_to_line(c) != cl) { - text_editor->select(cl + 1, 0, text_editor->get_selection_to_line(c), text_editor->get_selection_to_column(c), c); - break; - } - } - - carets_to_remove.push_back(c); - i = j - 1; - swaped_caret = true; - break; - } - break; - } - - if (text_editor->get_caret_line(caret_edit_order[j]) == cl) { - carets_to_remove.push_back(caret_edit_order[j]); - i = j; + Vector<int> lines; + int last_line = INT_MAX; + for (const int &c : caret_edit_order) { + for (int line = _get_affected_lines_to(c); line >= _get_affected_lines_from(c); line--) { + if (line >= last_line) { continue; } - break; + last_line = line; + lines.append(line); } + } - if (swaped_caret) { - continue; + for (const int &line : lines) { + if (line != text_editor->get_line_count() - 1) { + text_editor->remove_text(line, 0, line + 1, 0); + } else { + text_editor->remove_text(line - 1, text_editor->get_line(line - 1).length(), line, text_editor->get_line(line).length()); } - - if (text_editor->has_selection(c)) { - int to_line = text_editor->get_selection_to_line(c); - int from_line = text_editor->get_selection_from_line(c); - int count = Math::abs(to_line - from_line) + 1; - - text_editor->set_caret_line(from_line, false, true, 0, c); - text_editor->deselect(c); - for (int j = 0; j < count; j++) { - _delete_line(from_line, c); + // Readjust carets. + int new_line = MIN(line, text_editor->get_line_count() - 1); + text_editor->unfold_line(new_line); + for (const int &c : caret_edit_order) { + if (text_editor->get_caret_line(c) == line || (text_editor->get_caret_line(c) == line + 1 && text_editor->get_caret_column(c) == 0)) { + text_editor->deselect(c); + text_editor->set_caret_line(new_line, c == 0, true, 0, c); + continue; } - } else { - _delete_line(text_editor->get_caret_line(c), c); + if (text_editor->get_caret_line(c) > line) { + text_editor->set_caret_line(text_editor->get_caret_line(c) - 1, c == 0, true, 0, c); + continue; + } + break; } } - - // Sort and remove backwards to preserve indexes. - carets_to_remove.sort(); - for (int i = carets_to_remove.size() - 1; i >= 0; i--) { - text_editor->remove_caret(carets_to_remove[i]); - } text_editor->merge_overlapping_carets(); text_editor->end_complex_operation(); } @@ -1634,77 +1582,68 @@ void CodeTextEditor::toggle_inline_comment(const String &delimiter) { text_editor->begin_complex_operation(); Vector<int> caret_edit_order = text_editor->get_caret_index_edit_order(); - for (const int &c : caret_edit_order) { - if (text_editor->has_selection(c)) { - int begin = text_editor->get_selection_from_line(c); - int end = text_editor->get_selection_to_line(c); - - // End of selection ends on the first column of the last line, ignore it. - if (text_editor->get_selection_to_column(c) == 0) { - end -= 1; + caret_edit_order.reverse(); + int last_line = -1; + for (const int &c1 : caret_edit_order) { + int from = _get_affected_lines_from(c1); + from += from == last_line ? 1 : 0; + int to = _get_affected_lines_to(c1); + last_line = to; + // Check first if there's any uncommented lines in selection. + bool is_commented = true; + for (int line = from; line <= to; line++) { + if (!text_editor->get_line(line).begins_with(delimiter)) { + is_commented = false; + break; } + } - int col_to = text_editor->get_selection_to_column(c); - int cursor_pos = text_editor->get_caret_column(c); - - // Check if all lines in the selected block are commented. - bool is_commented = true; - for (int i = begin; i <= end; i++) { - if (!text_editor->get_line(i).begins_with(delimiter)) { - is_commented = false; - break; - } + // Caret positions need to be saved since they could be moved at the eol. + Vector<int> caret_cols; + Vector<int> selection_to_cols; + for (const int &c2 : caret_edit_order) { + if (text_editor->get_caret_line(c2) >= from && text_editor->get_caret_line(c2) <= to) { + caret_cols.append(text_editor->get_caret_column(c2)); } - for (int i = begin; i <= end; i++) { - String line_text = text_editor->get_line(i); - - if (line_text.strip_edges().is_empty()) { - line_text = delimiter; - } else { - if (is_commented) { - line_text = line_text.substr(delimiter.length(), line_text.length()); - } else { - line_text = delimiter + line_text; - } - } - text_editor->set_line(i, line_text); + if (text_editor->has_selection(c2) && text_editor->get_selection_to_line(c2) >= from && text_editor->get_selection_to_line(c2) <= to) { + selection_to_cols.append(text_editor->get_selection_to_column(c2)); } + } - // Adjust selection & cursor position. - int offset = (is_commented ? -1 : 1) * delimiter.length(); - int col_from = text_editor->get_selection_from_column(c) > 0 ? text_editor->get_selection_from_column(c) + offset : 0; - - if (is_commented && text_editor->get_caret_column(c) == text_editor->get_line(text_editor->get_caret_line(c)).length() + 1) { - cursor_pos += 1; + // Comment/uncomment. + for (int line = from; line <= to; line++) { + String line_text = text_editor->get_line(line); + if (line_text.strip_edges().is_empty()) { + text_editor->set_line(line, delimiter); + continue; } - - if (text_editor->get_selection_to_column(c) != 0 && col_to != text_editor->get_line(text_editor->get_selection_to_line(c)).length() + 1) { - col_to += offset; + if (is_commented) { + text_editor->set_line(line, line_text.substr(delimiter.length(), line_text.length())); + continue; } + text_editor->set_line(line, delimiter + line_text); + } - if (text_editor->get_caret_column(c) != 0) { - cursor_pos += offset; + // Readjust carets and selections. + int caret_i = 0; + int selection_i = 0; + int offset = (is_commented ? -1 : 1) * delimiter.length(); + for (const int &c2 : caret_edit_order) { + bool is_line_selection = text_editor->has_selection(c2) && text_editor->get_selection_from_line(c2) < text_editor->get_selection_to_line(c2); + if (text_editor->get_caret_line(c2) >= from && text_editor->get_caret_line(c2) <= to) { + int caret_col = caret_cols[caret_i++]; + caret_col += (is_line_selection && caret_col == 0) ? 0 : offset; + text_editor->set_caret_column(caret_col, c2 == 0, c2); } - - text_editor->select(begin, col_from, text_editor->get_selection_to_line(c), col_to, c); - text_editor->set_caret_column(cursor_pos, c == 0, c); - - } else { - int begin = text_editor->get_caret_line(c); - String line_text = text_editor->get_line(begin); - int delimiter_length = delimiter.length(); - - int col = text_editor->get_caret_column(c); - if (line_text.begins_with(delimiter)) { - line_text = line_text.substr(delimiter_length, line_text.length()); - col -= delimiter_length; - } else { - line_text = delimiter + line_text; - col += delimiter_length; + if (text_editor->has_selection(c2) && text_editor->get_selection_to_line(c2) >= from && text_editor->get_selection_to_line(c2) <= to) { + int from_col = text_editor->get_selection_from_column(c2); + from_col += (is_line_selection && from_col == 0) ? 0 : offset; + int to_col = selection_to_cols[selection_i++]; + to_col += (to_col == 0) ? 0 : offset; + text_editor->select( + text_editor->get_selection_from_line(c2), from_col, + text_editor->get_selection_to_line(c2), to_col, c2); } - - text_editor->set_line(begin, line_text); - text_editor->set_caret_column(col, c == 0, c); } } text_editor->merge_overlapping_carets(); @@ -1942,6 +1881,22 @@ void CodeTextEditor::_toggle_scripts_pressed() { update_toggle_scripts_button(); } +int CodeTextEditor::_get_affected_lines_from(int p_caret) { + return text_editor->has_selection(p_caret) ? text_editor->get_selection_from_line(p_caret) : text_editor->get_caret_line(p_caret); +} + +int CodeTextEditor::_get_affected_lines_to(int p_caret) { + if (!text_editor->has_selection(p_caret)) { + return text_editor->get_caret_line(p_caret); + } + int line = text_editor->get_selection_to_line(p_caret); + // Don't affect a line with no selected characters + if (text_editor->get_selection_to_column(p_caret) == 0) { + line--; + } + return line; +} + void CodeTextEditor::_error_pressed(const Ref<InputEvent> &p_event) { Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT) { @@ -2010,9 +1965,36 @@ void CodeTextEditor::set_warning_count(int p_warning_count) { } void CodeTextEditor::toggle_bookmark() { - for (int i = 0; i < text_editor->get_caret_count(); i++) { - int line = text_editor->get_caret_line(i); - text_editor->set_line_as_bookmarked(line, !text_editor->is_line_bookmarked(line)); + Vector<int> caret_edit_order = text_editor->get_caret_index_edit_order(); + caret_edit_order.reverse(); + int last_line = -1; + for (const int &c : caret_edit_order) { + int from = text_editor->has_selection(c) ? text_editor->get_selection_from_line(c) : text_editor->get_caret_line(c); + from += from == last_line ? 1 : 0; + int to = text_editor->has_selection(c) ? text_editor->get_selection_to_line(c) : text_editor->get_caret_line(c); + if (to < from) { + continue; + } + // Check first if there's any bookmarked lines in the selection. + bool selection_has_bookmarks = false; + for (int line = from; line <= to; line++) { + if (text_editor->is_line_bookmarked(line)) { + selection_has_bookmarks = true; + break; + } + } + + // Set bookmark on caret or remove all bookmarks from the selection. + if (!selection_has_bookmarks) { + if (text_editor->get_caret_line(c) != last_line) { + text_editor->set_line_as_bookmarked(text_editor->get_caret_line(c), true); + } + } else { + for (int line = from; line <= to; line++) { + text_editor->set_line_as_bookmarked(line, false); + } + } + last_line = to; } } diff --git a/editor/code_editor.h b/editor/code_editor.h index fe2a31a7a7..343720637b 100644 --- a/editor/code_editor.h +++ b/editor/code_editor.h @@ -198,9 +198,11 @@ class CodeTextEditor : public VBoxContainer { void _update_status_bar_theme(); - void _delete_line(int p_line, int p_caret); void _toggle_scripts_pressed(); + int _get_affected_lines_from(int p_caret); + int _get_affected_lines_to(int p_caret); + protected: virtual void _load_theme_settings() {} virtual void _validate_script() {} diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp index f843733f2c..a6defd0e14 100644 --- a/editor/editor_autoload_settings.cpp +++ b/editor/editor_autoload_settings.cpp @@ -890,7 +890,7 @@ EditorAutoloadSettings::EditorAutoloadSettings() { hbc->add_child(autoload_add_path); autoload_add_path->set_h_size_flags(Control::SIZE_EXPAND_FILL); autoload_add_path->set_clear_button_enabled(true); - autoload_add_path->set_placeholder(vformat(TTR(R"(Set path or press "%s" to create a script.)"), TTR("Add"))); + autoload_add_path->set_placeholder(vformat(TTR("Set path or press \"%s\" to create a script."), TTR("Add"))); autoload_add_path->connect("text_changed", callable_mp(this, &EditorAutoloadSettings::_autoload_path_text_changed)); browse_button = memnew(Button); diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index ec1ef8a6bc..8a595be6e6 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -1237,10 +1237,23 @@ void EditorFileSystem::_notification(int p_what) { case NOTIFICATION_PROCESS: { if (use_threads) { + /** This hack exists because of the EditorProgress nature + * of processing events recursively. This needs to be rewritten + * at some point entirely, but in the meantime the following + * hack prevents deadlock on import. + */ + + static bool prevent_recursive_process_hack = false; + if (prevent_recursive_process_hack) { + break; + } + + prevent_recursive_process_hack = true; + + bool done_importing = false; + if (scanning_changes) { if (scanning_changes_done) { - scanning_changes = false; - set_process(false); thread_sources.wait_to_finish(); @@ -1251,6 +1264,8 @@ void EditorFileSystem::_notification(int p_what) { } emit_signal(SNAME("sources_changed"), sources_changed.size() > 0); first_scan = false; + scanning_changes = false; // Changed to false here to prevent recursive triggering of scan thread. + done_importing = true; } } else if (!scanning && thread.is_started()) { set_process(false); @@ -1268,10 +1283,12 @@ void EditorFileSystem::_notification(int p_what) { first_scan = false; } - if (!is_processing() && scan_changes_pending) { + if (done_importing && scan_changes_pending) { scan_changes_pending = false; scan_changes(); } + + prevent_recursive_process_hack = false; } } break; } @@ -2167,6 +2184,11 @@ void EditorFileSystem::_find_group_files(EditorFileSystemDirectory *efd, HashMap void EditorFileSystem::reimport_file_with_custom_parameters(const String &p_file, const String &p_importer, const HashMap<StringName, Variant> &p_custom_params) { _reimport_file(p_file, p_custom_params, p_importer); + + // Emit the resource_reimported signal for the single file we just reimported. + Vector<String> reloads; + reloads.append(p_file); + emit_signal(SNAME("resources_reimported"), reloads); } void EditorFileSystem::_reimport_thread(uint32_t p_index, ImportThreadData *p_import_data) { @@ -2175,6 +2197,7 @@ void EditorFileSystem::_reimport_thread(uint32_t p_index, ImportThreadData *p_im } void EditorFileSystem::reimport_files(const Vector<String> &p_files) { + ERR_FAIL_COND_MSG(importing, "Attempted to call reimport_files() recursively, this is not allowed."); importing = true; Vector<String> reloads; diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index bb7098643a..acbc3ce0dc 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -45,15 +45,34 @@ DocTools *EditorHelp::doc = nullptr; -void EditorHelp::_update_theme() { - text_color = get_theme_color(SNAME("text_color"), SNAME("EditorHelp")); - title_color = get_theme_color(SNAME("title_color"), SNAME("EditorHelp")); - headline_color = get_theme_color(SNAME("headline_color"), SNAME("EditorHelp")); - comment_color = get_theme_color(SNAME("comment_color"), SNAME("EditorHelp")); - symbol_color = get_theme_color(SNAME("symbol_color"), SNAME("EditorHelp")); - value_color = get_theme_color(SNAME("value_color"), SNAME("EditorHelp")); - qualifier_color = get_theme_color(SNAME("qualifier_color"), SNAME("EditorHelp")); - type_color = get_theme_color(SNAME("type_color"), SNAME("EditorHelp")); +void EditorHelp::_update_theme_item_cache() { + VBoxContainer::_update_theme_item_cache(); + + theme_cache.text_color = get_theme_color(SNAME("text_color"), SNAME("EditorHelp")); + theme_cache.title_color = get_theme_color(SNAME("title_color"), SNAME("EditorHelp")); + theme_cache.headline_color = get_theme_color(SNAME("headline_color"), SNAME("EditorHelp")); + theme_cache.comment_color = get_theme_color(SNAME("comment_color"), SNAME("EditorHelp")); + theme_cache.symbol_color = get_theme_color(SNAME("symbol_color"), SNAME("EditorHelp")); + theme_cache.value_color = get_theme_color(SNAME("value_color"), SNAME("EditorHelp")); + theme_cache.qualifier_color = get_theme_color(SNAME("qualifier_color"), SNAME("EditorHelp")); + theme_cache.type_color = get_theme_color(SNAME("type_color"), SNAME("EditorHelp")); + + theme_cache.doc_font = get_theme_font(SNAME("doc"), SNAME("EditorFonts")); + theme_cache.doc_bold_font = get_theme_font(SNAME("doc_bold"), SNAME("EditorFonts")); + theme_cache.doc_italic_font = get_theme_font(SNAME("doc_italic"), SNAME("EditorFonts")); + theme_cache.doc_title_font = get_theme_font(SNAME("doc_title"), SNAME("EditorFonts")); + theme_cache.doc_code_font = get_theme_font(SNAME("doc_source"), SNAME("EditorFonts")); + theme_cache.doc_kbd_font = get_theme_font(SNAME("doc_keyboard"), SNAME("EditorFonts")); + + theme_cache.doc_font_size = get_theme_font_size(SNAME("doc_size"), SNAME("EditorFonts")); + theme_cache.doc_title_font_size = get_theme_font_size(SNAME("doc_title_size"), SNAME("EditorFonts")); + theme_cache.doc_code_font_size = get_theme_font_size(SNAME("doc_source_size"), SNAME("EditorFonts")); + theme_cache.doc_kbd_font_size = get_theme_font_size(SNAME("doc_keyboard_size"), SNAME("EditorFonts")); + + theme_cache.background_style = get_theme_stylebox(SNAME("background"), SNAME("EditorHelp")); + + class_desc->add_theme_font_override("normal_font", theme_cache.doc_font); + class_desc->add_theme_font_size_override("normal_font_size", theme_cache.doc_font_size); class_desc->add_theme_color_override("selection_color", get_theme_color(SNAME("selection_color"), SNAME("EditorHelp"))); class_desc->add_theme_constant_override("line_separation", get_theme_constant(SNAME("line_separation"), SNAME("EditorHelp"))); @@ -61,13 +80,6 @@ void EditorHelp::_update_theme() { class_desc->add_theme_constant_override("table_v_separation", get_theme_constant(SNAME("table_v_separation"), SNAME("EditorHelp"))); class_desc->add_theme_constant_override("text_highlight_h_padding", get_theme_constant(SNAME("text_highlight_h_padding"), SNAME("EditorHelp"))); class_desc->add_theme_constant_override("text_highlight_v_padding", get_theme_constant(SNAME("text_highlight_v_padding"), SNAME("EditorHelp"))); - - doc_font = get_theme_font(SNAME("doc"), SNAME("EditorFonts")); - doc_bold_font = get_theme_font(SNAME("doc_bold"), SNAME("EditorFonts")); - doc_title_font = get_theme_font(SNAME("doc_title"), SNAME("EditorFonts")); - doc_code_font = get_theme_font(SNAME("doc_source"), SNAME("EditorFonts")); - - doc_title_font_size = get_theme_font_size(SNAME("doc_title_size"), SNAME("EditorFonts")); } void EditorHelp::_search(bool p_search_previous) { @@ -187,14 +199,12 @@ void EditorHelp::_class_desc_input(const Ref<InputEvent> &p_input) { void EditorHelp::_class_desc_resized(bool p_force_update_theme) { // Add extra horizontal margins for better readability. // The margins increase as the width of the editor help container increases. - Ref<Font> font = get_theme_font(SNAME("doc_source"), SNAME("EditorFonts")); - int font_size = get_theme_font_size(SNAME("doc_source_size"), SNAME("EditorFonts")); - real_t char_width = font->get_char_size('x', font_size).width; + real_t char_width = theme_cache.doc_code_font->get_char_size('x', theme_cache.doc_code_font_size).width; const int new_display_margin = MAX(30 * EDSCALE, get_parent_anchorable_rect().size.width - char_width * 120 * EDSCALE) * 0.5; if (display_margin != new_display_margin || p_force_update_theme) { display_margin = new_display_margin; - Ref<StyleBox> class_desc_stylebox = EditorNode::get_singleton()->get_theme_base()->get_theme_stylebox(SNAME("background"), SNAME("EditorHelp"))->duplicate(); + Ref<StyleBox> class_desc_stylebox = theme_cache.background_style->duplicate(); class_desc_stylebox->set_content_margin(SIDE_LEFT, display_margin); class_desc_stylebox->set_content_margin(SIDE_RIGHT, display_margin); class_desc->add_theme_style_override("normal", class_desc_stylebox); @@ -204,7 +214,7 @@ void EditorHelp::_class_desc_resized(bool p_force_update_theme) { void EditorHelp::_add_type(const String &p_type, const String &p_enum) { if (p_type.is_empty() || p_type == "void") { - class_desc->push_color(Color(type_color, 0.5)); + class_desc->push_color(Color(theme_cache.type_color, 0.5)); class_desc->push_hint(TTR("No return value.")); class_desc->add_text("void"); class_desc->pop(); @@ -224,7 +234,7 @@ void EditorHelp::_add_type(const String &p_type, const String &p_enum) { } } - class_desc->push_color(type_color); + class_desc->push_color(theme_cache.type_color); bool add_array = false; if (can_ref) { if (t.ends_with("[]")) { @@ -333,7 +343,7 @@ void EditorHelp::_add_method(const DocData::MethodDoc &p_method, bool p_overview class_desc->push_meta("@method " + p_method.name); } - class_desc->push_color(headline_color); + class_desc->push_color(theme_cache.headline_color); _add_text(p_method.name); class_desc->pop(); @@ -341,12 +351,12 @@ void EditorHelp::_add_method(const DocData::MethodDoc &p_method, bool p_overview class_desc->pop(); //meta } - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text("("); class_desc->pop(); for (int j = 0; j < p_method.arguments.size(); j++) { - class_desc->push_color(text_color); + class_desc->push_color(theme_cache.text_color); if (j > 0) { class_desc->add_text(", "); } @@ -355,10 +365,10 @@ void EditorHelp::_add_method(const DocData::MethodDoc &p_method, bool p_overview class_desc->add_text(": "); _add_type(p_method.arguments[j].type, p_method.arguments[j].enumeration); if (!p_method.arguments[j].default_value.is_empty()) { - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(" = "); class_desc->pop(); - class_desc->push_color(value_color); + class_desc->push_color(theme_cache.value_color); _add_text(_fix_constant(p_method.arguments[j].default_value)); class_desc->pop(); } @@ -367,21 +377,21 @@ void EditorHelp::_add_method(const DocData::MethodDoc &p_method, bool p_overview } if (is_vararg) { - class_desc->push_color(text_color); + class_desc->push_color(theme_cache.text_color); if (p_method.arguments.size()) { class_desc->add_text(", "); } - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text("..."); class_desc->pop(); class_desc->pop(); } - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(")"); class_desc->pop(); if (!p_method.qualifiers.is_empty()) { - class_desc->push_color(qualifier_color); + class_desc->push_color(theme_cache.qualifier_color); PackedStringArray qualifiers = p_method.qualifiers.split_spaces(); for (const String &qualifier : qualifiers) { @@ -426,6 +436,38 @@ void EditorHelp::_add_bulletpoint() { class_desc->add_text(String(prefix)); } +void EditorHelp::_push_normal_font() { + class_desc->push_font(theme_cache.doc_font); + class_desc->push_font_size(theme_cache.doc_font_size); +} + +void EditorHelp::_pop_normal_font() { + class_desc->pop(); + class_desc->pop(); +} + +void EditorHelp::_push_title_font() { + class_desc->push_color(theme_cache.title_color); + class_desc->push_font(theme_cache.doc_title_font); + class_desc->push_font_size(theme_cache.doc_title_font_size); +} + +void EditorHelp::_pop_title_font() { + class_desc->pop(); + class_desc->pop(); + class_desc->pop(); +} + +void EditorHelp::_push_code_font() { + class_desc->push_font(theme_cache.doc_code_font); + class_desc->push_font_size(theme_cache.doc_code_font_size); +} + +void EditorHelp::_pop_code_font() { + class_desc->pop(); + class_desc->pop(); +} + Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) { if (!doc->class_list.has(p_class)) { return ERR_DOES_NOT_EXIST; @@ -447,13 +489,9 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) { } void EditorHelp::_update_method_list(const Vector<DocData::MethodDoc> p_methods) { - Ref<Font> font = get_theme_font(SNAME("doc_source"), SNAME("EditorFonts")); - class_desc->pop(); // title font size - class_desc->pop(); // title font - class_desc->pop(); // title color - class_desc->add_newline(); - class_desc->push_font(font); + + _push_code_font(); class_desc->push_indent(1); class_desc->push_table(2); class_desc->set_table_column_expand(1, true); @@ -504,18 +542,14 @@ void EditorHelp::_update_method_list(const Vector<DocData::MethodDoc> p_methods) class_desc->pop(); //table class_desc->pop(); - class_desc->pop(); // font + _pop_code_font(); + class_desc->add_newline(); class_desc->add_newline(); } void EditorHelp::_update_method_descriptions(const DocData::ClassDoc p_classdoc, const Vector<DocData::MethodDoc> p_methods, const String &p_method_type) { - Ref<Font> font = get_theme_font(SNAME("doc"), SNAME("EditorFonts")); - Ref<Font> code_font = get_theme_font(SNAME("doc_source"), SNAME("EditorFonts")); - String link_color_text = title_color.to_html(false); - class_desc->pop(); // title font size - class_desc->pop(); // title font - class_desc->pop(); // title color + String link_color_text = theme_cache.title_color.to_html(false); class_desc->add_newline(); class_desc->add_newline(); @@ -531,15 +565,15 @@ void EditorHelp::_update_method_descriptions(const DocData::ClassDoc p_classdoc, } for (int i = 0; i < methods_filtered.size(); i++) { - class_desc->push_font(code_font); + _push_code_font(); _add_method(methods_filtered[i], false); - class_desc->pop(); + _pop_code_font(); class_desc->add_newline(); class_desc->add_newline(); - class_desc->push_color(text_color); - class_desc->push_font(font); + class_desc->push_color(theme_cache.text_color); + _push_normal_font(); class_desc->push_indent(1); if (methods_filtered[i].errors_returned.size()) { class_desc->append_text(TTR("Error codes returned:")); @@ -571,7 +605,7 @@ void EditorHelp::_update_method_descriptions(const DocData::ClassDoc p_classdoc, } else { class_desc->add_image(get_theme_icon(SNAME("Error"), SNAME("EditorIcons"))); class_desc->add_text(" "); - class_desc->push_color(comment_color); + class_desc->push_color(theme_cache.comment_color); if (p_classdoc.is_script_doc) { class_desc->append_text(vformat(TTR("There is currently no description for this %s."), p_method_type)); } else { @@ -581,8 +615,9 @@ void EditorHelp::_update_method_descriptions(const DocData::ClassDoc p_classdoc, } class_desc->pop(); + _pop_normal_font(); class_desc->pop(); - class_desc->pop(); + class_desc->add_newline(); class_desc->add_newline(); class_desc->add_newline(); @@ -601,25 +636,20 @@ void EditorHelp::_update_doc() { method_line.clear(); section_line.clear(); - _update_theme(); - String link_color_text = title_color.to_html(false); + String link_color_text = theme_cache.title_color.to_html(false); DocData::ClassDoc cd = doc->class_list[edited_class]; // Make a copy, so we can sort without worrying. // Class name section_line.push_back(Pair<String, int>(TTR("Top"), 0)); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); - class_desc->push_color(title_color); + _push_title_font(); class_desc->add_text(TTR("Class:") + " "); - _add_type_icon(edited_class, doc_title_font_size); + _add_type_icon(edited_class, theme_cache.doc_title_font_size); class_desc->add_text(" "); - class_desc->push_color(headline_color); + class_desc->push_color(theme_cache.headline_color); _add_text(edited_class); class_desc->pop(); // color - class_desc->pop(); // color - class_desc->pop(); // font size - class_desc->pop(); // font + _pop_title_font(); if (cd.is_deprecated) { class_desc->add_text(" "); @@ -639,8 +669,8 @@ void EditorHelp::_update_doc() { // Ascendents if (!cd.inherits.is_empty()) { - class_desc->push_color(title_color); - class_desc->push_font(doc_font); + class_desc->push_color(theme_cache.title_color); + _push_normal_font(); class_desc->add_text(TTR("Inherits:") + " "); String inherits = cd.inherits; @@ -657,7 +687,7 @@ void EditorHelp::_update_doc() { } } - class_desc->pop(); + _pop_normal_font(); class_desc->pop(); class_desc->add_newline(); } @@ -667,11 +697,11 @@ void EditorHelp::_update_doc() { bool found = false; bool prev = false; - class_desc->push_font(doc_font); + _push_normal_font(); for (const KeyValue<String, DocData::ClassDoc> &E : doc->class_list) { if (E.value.inherits == cd.name) { if (!found) { - class_desc->push_color(title_color); + class_desc->push_color(theme_cache.title_color); class_desc->add_text(TTR("Inherited by:") + " "); found = true; } @@ -685,7 +715,7 @@ void EditorHelp::_update_doc() { prev = true; } } - class_desc->pop(); + _pop_normal_font(); if (found) { class_desc->pop(); @@ -722,13 +752,14 @@ void EditorHelp::_update_doc() { if (!cd.brief_description.strip_edges().is_empty()) { has_description = true; - class_desc->push_color(text_color); - class_desc->push_font(doc_bold_font); + class_desc->push_color(theme_cache.text_color); + class_desc->push_font(theme_cache.doc_bold_font); class_desc->push_indent(1); _add_text(DTR(cd.brief_description)); class_desc->pop(); class_desc->pop(); class_desc->pop(); + class_desc->add_newline(); class_desc->add_newline(); class_desc->add_newline(); @@ -740,23 +771,20 @@ void EditorHelp::_update_doc() { section_line.push_back(Pair<String, int>(TTR("Description"), class_desc->get_paragraph_count() - 2)); description_line = class_desc->get_paragraph_count() - 2; - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Description")); - class_desc->pop(); // font size - class_desc->pop(); // font - class_desc->pop(); // color + _pop_title_font(); class_desc->add_newline(); class_desc->add_newline(); - class_desc->push_color(text_color); - class_desc->push_font(doc_font); + class_desc->push_color(theme_cache.text_color); + _push_normal_font(); class_desc->push_indent(1); _add_text(DTR(cd.description)); class_desc->pop(); + _pop_normal_font(); class_desc->pop(); - class_desc->pop(); + class_desc->add_newline(); class_desc->add_newline(); class_desc->add_newline(); @@ -765,7 +793,7 @@ void EditorHelp::_update_doc() { if (!has_description) { class_desc->add_image(get_theme_icon(SNAME("Error"), SNAME("EditorIcons"))); class_desc->add_text(" "); - class_desc->push_color(comment_color); + class_desc->push_color(theme_cache.comment_color); if (cd.is_script_doc) { class_desc->append_text(TTR("There is currently no description for this class.")); @@ -780,18 +808,15 @@ void EditorHelp::_update_doc() { // Online tutorials if (cd.tutorials.size()) { - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Online Tutorials")); - class_desc->pop(); // font size - class_desc->pop(); // font - class_desc->pop(); // color + _pop_title_font(); - class_desc->push_indent(1); - class_desc->push_font(doc_code_font); class_desc->add_newline(); + class_desc->push_indent(1); + _push_code_font(); + for (int i = 0; i < cd.tutorials.size(); i++) { const String link = DTR(cd.tutorials[i].link); String linktxt = (cd.tutorials[i].title.is_empty()) ? link : DTR(cd.tutorials[i].title); @@ -800,14 +825,15 @@ void EditorHelp::_update_doc() { linktxt = link.substr(seppos + 2); } - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->append_text("[url=" + link + "]" + linktxt + "[/url]"); class_desc->pop(); class_desc->add_newline(); } + _pop_code_font(); class_desc->pop(); - class_desc->pop(); + class_desc->add_newline(); class_desc->add_newline(); } @@ -829,16 +855,13 @@ void EditorHelp::_update_doc() { if (has_properties) { section_line.push_back(Pair<String, int>(TTR("Properties"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Properties")); - class_desc->pop(); // font size - class_desc->pop(); // font - class_desc->pop(); // color + _pop_title_font(); class_desc->add_newline(); - class_desc->push_font(doc_code_font); + + _push_code_font(); class_desc->push_indent(1); class_desc->push_table(4); class_desc->set_table_column_expand(1, true); @@ -853,9 +876,9 @@ void EditorHelp::_update_doc() { // Property type. class_desc->push_cell(); class_desc->push_paragraph(HORIZONTAL_ALIGNMENT_RIGHT, Control::TEXT_DIRECTION_AUTO, ""); - class_desc->push_font(doc_code_font); + _push_code_font(); _add_type(cd.properties[i].type, cd.properties[i].enumeration); - class_desc->pop(); + _pop_code_font(); class_desc->pop(); class_desc->pop(); // cell @@ -880,8 +903,8 @@ void EditorHelp::_update_doc() { // Property name. class_desc->push_cell(); - class_desc->push_font(doc_code_font); - class_desc->push_color(headline_color); + _push_code_font(); + class_desc->push_color(theme_cache.headline_color); if (describe) { class_desc->push_meta("@member " + cd.properties[i].name); @@ -894,15 +917,15 @@ void EditorHelp::_update_doc() { } class_desc->pop(); - class_desc->pop(); + _pop_code_font(); class_desc->pop(); // cell // Property value. class_desc->push_cell(); - class_desc->push_font(doc_code_font); + _push_code_font(); if (!cd.properties[i].default_value.is_empty()) { - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); if (cd.properties[i].overridden) { class_desc->add_text(" ["); class_desc->push_meta("@member " + cd.properties[i].overrides + "." + cd.properties[i].name); @@ -914,11 +937,11 @@ void EditorHelp::_update_doc() { } class_desc->pop(); - class_desc->push_color(value_color); + class_desc->push_color(theme_cache.value_color); _add_text(_fix_constant(cd.properties[i].default_value)); class_desc->pop(); - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text("]"); class_desc->pop(); } @@ -930,46 +953,47 @@ void EditorHelp::_update_doc() { EXPERIMENTAL_DOC_TAG; } - class_desc->pop(); + _pop_code_font(); class_desc->pop(); // cell // Property setters and getters. class_desc->push_cell(); - class_desc->push_font(doc_code_font); + _push_code_font(); if (cd.is_script_doc && (!cd.properties[i].setter.is_empty() || !cd.properties[i].getter.is_empty())) { - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(" [" + TTR("property:") + " "); class_desc->pop(); // color if (!cd.properties[i].setter.is_empty()) { - class_desc->push_color(value_color); + class_desc->push_color(theme_cache.value_color); class_desc->add_text("setter"); class_desc->pop(); // color } if (!cd.properties[i].getter.is_empty()) { if (!cd.properties[i].setter.is_empty()) { - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(", "); class_desc->pop(); // color } - class_desc->push_color(value_color); + class_desc->push_color(theme_cache.value_color); class_desc->add_text("getter"); class_desc->pop(); // color } - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text("]"); class_desc->pop(); // color } - class_desc->pop(); + _pop_code_font(); class_desc->pop(); // cell } class_desc->pop(); // table class_desc->pop(); - class_desc->pop(); // font + _pop_code_font(); + class_desc->add_newline(); class_desc->add_newline(); } @@ -998,10 +1022,10 @@ void EditorHelp::_update_doc() { } section_line.push_back(Pair<String, int>(TTR("Constructors"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Constructors")); + _pop_title_font(); + _update_method_list(cd.constructors); } @@ -1011,10 +1035,10 @@ void EditorHelp::_update_doc() { } section_line.push_back(Pair<String, int>(TTR("Methods"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Methods")); + _pop_title_font(); + _update_method_list(methods); } @@ -1024,23 +1048,19 @@ void EditorHelp::_update_doc() { } section_line.push_back(Pair<String, int>(TTR("Operators"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Operators")); + _pop_title_font(); + _update_method_list(cd.operators); } // Theme properties if (!cd.theme_properties.is_empty()) { section_line.push_back(Pair<String, int>(TTR("Theme Properties"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Theme Properties")); - class_desc->pop(); // font size - class_desc->pop(); // font - class_desc->pop(); // color + _pop_title_font(); class_desc->add_newline(); class_desc->add_newline(); @@ -1062,59 +1082,55 @@ void EditorHelp::_update_doc() { if (theme_data_type != cd.theme_properties[i].data_type) { theme_data_type = cd.theme_properties[i].data_type; - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); if (data_type_names.has(theme_data_type)) { class_desc->add_text(data_type_names[theme_data_type]); } else { class_desc->add_text(""); } - class_desc->pop(); // font size - class_desc->pop(); // font - class_desc->pop(); // color + _pop_title_font(); class_desc->add_newline(); class_desc->add_newline(); } // Theme item header. - class_desc->push_font(doc_code_font); + _push_code_font(); _add_bulletpoint(); // Theme item object type. _add_type(cd.theme_properties[i].type); // Theme item name. - class_desc->push_color(headline_color); + class_desc->push_color(theme_cache.headline_color); class_desc->add_text(" "); _add_text(cd.theme_properties[i].name); class_desc->pop(); // Theme item default value. if (!cd.theme_properties[i].default_value.is_empty()) { - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(" [" + TTR("default:") + " "); class_desc->pop(); - class_desc->push_color(value_color); + class_desc->push_color(theme_cache.value_color); _add_text(_fix_constant(cd.theme_properties[i].default_value)); class_desc->pop(); - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text("]"); class_desc->pop(); } - class_desc->pop(); // monofont + _pop_code_font(); // Theme item description. if (!cd.theme_properties[i].description.strip_edges().is_empty()) { - class_desc->push_font(doc_font); - class_desc->push_color(comment_color); + class_desc->push_color(theme_cache.comment_color); + _push_normal_font(); class_desc->push_indent(1); _add_text(DTR(cd.theme_properties[i].description)); class_desc->pop(); // indent + _pop_normal_font(); class_desc->pop(); // color - class_desc->pop(); // font } class_desc->add_newline(); @@ -1132,13 +1148,9 @@ void EditorHelp::_update_doc() { } section_line.push_back(Pair<String, int>(TTR("Signals"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Signals")); - class_desc->pop(); // font size - class_desc->pop(); // font - class_desc->pop(); // color + _pop_title_font(); class_desc->add_newline(); class_desc->add_newline(); @@ -1148,16 +1160,16 @@ void EditorHelp::_update_doc() { for (int i = 0; i < cd.signals.size(); i++) { signal_line[cd.signals[i].name] = class_desc->get_paragraph_count() - 2; // Gets overridden if description. - class_desc->push_font(doc_code_font); // monofont + _push_code_font(); _add_bulletpoint(); - class_desc->push_color(headline_color); + class_desc->push_color(theme_cache.headline_color); _add_text(cd.signals[i].name); class_desc->pop(); - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text("("); class_desc->pop(); for (int j = 0; j < cd.signals[i].arguments.size(); j++) { - class_desc->push_color(text_color); + class_desc->push_color(theme_cache.text_color); if (j > 0) { class_desc->add_text(", "); } @@ -1166,7 +1178,7 @@ void EditorHelp::_update_doc() { class_desc->add_text(": "); _add_type(cd.signals[i].arguments[j].type); if (!cd.signals[i].arguments[j].default_value.is_empty()) { - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(" = "); class_desc->pop(); _add_text(cd.signals[i].arguments[j].default_value); @@ -1175,7 +1187,7 @@ void EditorHelp::_update_doc() { class_desc->pop(); } - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(")"); if (cd.signals[i].is_deprecated) { @@ -1186,16 +1198,18 @@ void EditorHelp::_update_doc() { } class_desc->pop(); - class_desc->pop(); // end monofont + _pop_code_font(); + if (!cd.signals[i].description.strip_edges().is_empty()) { - class_desc->push_font(doc_font); - class_desc->push_color(comment_color); + class_desc->push_color(theme_cache.comment_color); + _push_normal_font(); class_desc->push_indent(1); _add_text(DTR(cd.signals[i].description)); class_desc->pop(); // indent - class_desc->pop(); - class_desc->pop(); // font + _pop_normal_font(); + class_desc->pop(); // color } + class_desc->add_newline(); class_desc->add_newline(); } @@ -1228,13 +1242,9 @@ void EditorHelp::_update_doc() { // Enums if (enums.size()) { section_line.push_back(Pair<String, int>(TTR("Enumerations"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Enumerations")); - class_desc->pop(); // font size - class_desc->pop(); // font - class_desc->pop(); // color + _pop_title_font(); class_desc->push_indent(1); class_desc->add_newline(); @@ -1242,24 +1252,26 @@ void EditorHelp::_update_doc() { for (KeyValue<String, Vector<DocData::ConstantDoc>> &E : enums) { enum_line[E.key] = class_desc->get_paragraph_count() - 2; - class_desc->push_font(doc_code_font); - class_desc->push_color(title_color); + _push_code_font(); + class_desc->push_color(theme_cache.title_color); if (E.value.size() && E.value[0].is_bitfield) { class_desc->add_text("flags "); } else { class_desc->add_text("enum "); } class_desc->pop(); + String e = E.key; if ((e.get_slice_count(".") > 1) && (e.get_slice(".", 0) == edited_class)) { e = e.get_slice(".", 1); } - class_desc->push_color(headline_color); + class_desc->push_color(theme_cache.headline_color); class_desc->add_text(e); class_desc->pop(); - class_desc->pop(); - class_desc->push_color(symbol_color); + _pop_code_font(); + + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(":"); class_desc->pop(); @@ -1268,13 +1280,14 @@ void EditorHelp::_update_doc() { // Enum description. if (e != "@unnamed_enums" && cd.enums.has(e)) { - class_desc->push_color(text_color); - class_desc->push_font(doc_font); + class_desc->push_color(theme_cache.text_color); + _push_normal_font(); class_desc->push_indent(1); _add_text(cd.enums[e]); class_desc->pop(); + _pop_normal_font(); class_desc->pop(); - class_desc->pop(); + class_desc->add_newline(); class_desc->add_newline(); } @@ -1293,18 +1306,18 @@ void EditorHelp::_update_doc() { // Add the enum constant line to the constant_line map so we can locate it as a constant. constant_line[enum_list[i].name] = class_desc->get_paragraph_count() - 2; - class_desc->push_font(doc_code_font); + _push_code_font(); _add_bulletpoint(); - class_desc->push_color(headline_color); + class_desc->push_color(theme_cache.headline_color); _add_text(enum_list[i].name); class_desc->pop(); - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(" = "); class_desc->pop(); - class_desc->push_color(value_color); + class_desc->push_color(theme_cache.value_color); _add_text(_fix_constant(enum_list[i].value)); class_desc->pop(); - class_desc->pop(); + _pop_code_font(); if (enum_list[i].is_deprecated) { DEPRECATED_DOC_TAG; @@ -1317,10 +1330,10 @@ void EditorHelp::_update_doc() { class_desc->add_newline(); if (!enum_list[i].description.strip_edges().is_empty()) { - class_desc->push_font(doc_font); - class_desc->push_color(comment_color); + class_desc->push_color(theme_cache.comment_color); + _push_normal_font(); _add_text(DTR(enum_list[i].description)); - class_desc->pop(); + _pop_normal_font(); class_desc->pop(); if (DTR(enum_list[i].description).find("\n") > 0) { class_desc->add_newline(); @@ -1346,20 +1359,17 @@ void EditorHelp::_update_doc() { // Constants if (constants.size()) { section_line.push_back(Pair<String, int>(TTR("Constants"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Constants")); - class_desc->pop(); // font size - class_desc->pop(); // font - class_desc->pop(); // color + _pop_title_font(); class_desc->push_indent(1); class_desc->add_newline(); for (int i = 0; i < constants.size(); i++) { constant_line[constants[i].name] = class_desc->get_paragraph_count() - 2; - class_desc->push_font(doc_code_font); + + _push_code_font(); if (constants[i].value.begins_with("Color(") && constants[i].value.ends_with(")")) { String stripped = constants[i].value.replace(" ", "").replace("Color(", "").replace(")", ""); @@ -1373,17 +1383,17 @@ void EditorHelp::_update_doc() { _add_bulletpoint(); } - class_desc->push_color(headline_color); + class_desc->push_color(theme_cache.headline_color); _add_text(constants[i].name); class_desc->pop(); - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(" = "); class_desc->pop(); - class_desc->push_color(value_color); + class_desc->push_color(theme_cache.value_color); _add_text(_fix_constant(constants[i].value)); class_desc->pop(); - class_desc->pop(); + _pop_code_font(); if (constants[i].is_deprecated) { DEPRECATED_DOC_TAG; @@ -1396,10 +1406,10 @@ void EditorHelp::_update_doc() { class_desc->add_newline(); if (!constants[i].description.strip_edges().is_empty()) { - class_desc->push_font(doc_font); - class_desc->push_color(comment_color); + class_desc->push_color(theme_cache.comment_color); + _push_normal_font(); _add_text(DTR(constants[i].description)); - class_desc->pop(); + _pop_normal_font(); class_desc->pop(); if (DTR(constants[i].description).find("\n") > 0) { class_desc->add_newline(); @@ -1421,13 +1431,9 @@ void EditorHelp::_update_doc() { } section_line.push_back(Pair<String, int>(TTR("Annotations"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Annotations")); - class_desc->pop(); // font size - class_desc->pop(); // font - class_desc->pop(); // color + _pop_title_font(); class_desc->add_newline(); class_desc->add_newline(); @@ -1437,18 +1443,18 @@ void EditorHelp::_update_doc() { for (int i = 0; i < cd.annotations.size(); i++) { annotation_line[cd.annotations[i].name] = class_desc->get_paragraph_count() - 2; // Gets overridden if description. - class_desc->push_font(doc_code_font); // monofont + _push_code_font(); _add_bulletpoint(); - class_desc->push_color(headline_color); + class_desc->push_color(theme_cache.headline_color); _add_text(cd.annotations[i].name); class_desc->pop(); if (cd.annotations[i].arguments.size() > 0) { - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text("("); class_desc->pop(); for (int j = 0; j < cd.annotations[i].arguments.size(); j++) { - class_desc->push_color(text_color); + class_desc->push_color(theme_cache.text_color); if (j > 0) { class_desc->add_text(", "); } @@ -1457,7 +1463,7 @@ void EditorHelp::_update_doc() { class_desc->add_text(": "); _add_type(cd.annotations[i].arguments[j].type); if (!cd.annotations[i].arguments[j].default_value.is_empty()) { - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(" = "); class_desc->pop(); _add_text(cd.annotations[i].arguments[j].default_value); @@ -1467,43 +1473,43 @@ void EditorHelp::_update_doc() { } if (cd.annotations[i].qualifiers.contains("vararg")) { - class_desc->push_color(text_color); + class_desc->push_color(theme_cache.text_color); if (cd.annotations[i].arguments.size()) { class_desc->add_text(", "); } - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text("..."); class_desc->pop(); class_desc->pop(); } - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(")"); class_desc->pop(); } if (!cd.annotations[i].qualifiers.is_empty()) { - class_desc->push_color(qualifier_color); + class_desc->push_color(theme_cache.qualifier_color); class_desc->add_text(" "); _add_text(cd.annotations[i].qualifiers); class_desc->pop(); } - class_desc->pop(); // end monofont + _pop_code_font(); if (!cd.annotations[i].description.strip_edges().is_empty()) { - class_desc->push_font(doc_font); - class_desc->push_color(comment_color); + class_desc->push_color(theme_cache.comment_color); + _push_normal_font(); class_desc->push_indent(1); _add_text(DTR(cd.annotations[i].description)); class_desc->pop(); // indent - class_desc->pop(); - class_desc->pop(); // font + _pop_normal_font(); + class_desc->pop(); // color } else { class_desc->push_indent(1); class_desc->add_image(get_theme_icon(SNAME("Error"), SNAME("EditorIcons"))); class_desc->add_text(" "); - class_desc->push_color(comment_color); + class_desc->push_color(theme_cache.comment_color); if (cd.is_script_doc) { class_desc->append_text(TTR("There is currently no description for this annotation.")); } else { @@ -1523,13 +1529,9 @@ void EditorHelp::_update_doc() { // Property descriptions if (has_properties) { section_line.push_back(Pair<String, int>(TTR("Property Descriptions"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Property Descriptions")); - class_desc->pop(); // font size - class_desc->pop(); // font - class_desc->pop(); // color + _pop_title_font(); class_desc->add_newline(); class_desc->add_newline(); @@ -1538,6 +1540,10 @@ void EditorHelp::_update_doc() { if (cd.properties[i].overridden) { continue; } + // Ignore undocumented private. + if (cd.properties[i].name.begins_with("_") && cd.properties[i].description.strip_edges().is_empty()) { + continue; + } property_line[cd.properties[i].name] = class_desc->get_paragraph_count() - 2; @@ -1545,30 +1551,30 @@ void EditorHelp::_update_doc() { class_desc->set_table_column_expand(1, true); class_desc->push_cell(); - class_desc->push_font(doc_code_font); + _push_code_font(); _add_bulletpoint(); _add_type(cd.properties[i].type, cd.properties[i].enumeration); class_desc->add_text(" "); - class_desc->pop(); // font + _pop_code_font(); class_desc->pop(); // cell class_desc->push_cell(); - class_desc->push_font(doc_code_font); - class_desc->push_color(headline_color); + _push_code_font(); + class_desc->push_color(theme_cache.headline_color); _add_text(cd.properties[i].name); class_desc->pop(); // color if (!cd.properties[i].default_value.is_empty()) { - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(" [" + TTR("default:") + " "); class_desc->pop(); // color - class_desc->push_color(value_color); + class_desc->push_color(theme_cache.value_color); _add_text(_fix_constant(cd.properties[i].default_value)); class_desc->pop(); // color - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text("]"); class_desc->pop(); // color } @@ -1581,32 +1587,32 @@ void EditorHelp::_update_doc() { } if (cd.is_script_doc && (!cd.properties[i].setter.is_empty() || !cd.properties[i].getter.is_empty())) { - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(" [" + TTR("property:") + " "); class_desc->pop(); // color if (!cd.properties[i].setter.is_empty()) { - class_desc->push_color(value_color); + class_desc->push_color(theme_cache.value_color); class_desc->add_text("setter"); class_desc->pop(); // color } if (!cd.properties[i].getter.is_empty()) { if (!cd.properties[i].setter.is_empty()) { - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text(", "); class_desc->pop(); // color } - class_desc->push_color(value_color); + class_desc->push_color(theme_cache.value_color); class_desc->add_text("getter"); class_desc->pop(); // color } - class_desc->push_color(symbol_color); + class_desc->push_color(theme_cache.symbol_color); class_desc->add_text("]"); class_desc->pop(); // color } - class_desc->pop(); // font + _pop_code_font(); class_desc->pop(); // cell // Script doc doesn't have setter, getter. @@ -1621,8 +1627,9 @@ void EditorHelp::_update_doc() { class_desc->pop(); // cell class_desc->push_cell(); - class_desc->push_font(doc_code_font); - class_desc->push_color(text_color); + _push_code_font(); + class_desc->push_color(theme_cache.text_color); + if (method_map[cd.properties[i].setter].arguments.size() > 1) { // Setters with additional arguments are exposed in the method list, so we link them here for quick access. class_desc->push_meta("@method " + cd.properties[i].setter); @@ -1631,12 +1638,14 @@ void EditorHelp::_update_doc() { } else { class_desc->add_text(cd.properties[i].setter + TTR("(value)")); } + class_desc->pop(); // color - class_desc->push_color(comment_color); + class_desc->push_color(theme_cache.comment_color); class_desc->add_text(" setter"); class_desc->pop(); // color - class_desc->pop(); // font + _pop_code_font(); class_desc->pop(); // cell + method_line[cd.properties[i].setter] = property_line[cd.properties[i].name]; } @@ -1645,8 +1654,9 @@ void EditorHelp::_update_doc() { class_desc->pop(); // cell class_desc->push_cell(); - class_desc->push_font(doc_code_font); - class_desc->push_color(text_color); + _push_code_font(); + class_desc->push_color(theme_cache.text_color); + if (method_map[cd.properties[i].getter].arguments.size() > 0) { // Getters with additional arguments are exposed in the method list, so we link them here for quick access. class_desc->push_meta("@method " + cd.properties[i].getter); @@ -1655,12 +1665,14 @@ void EditorHelp::_update_doc() { } else { class_desc->add_text(cd.properties[i].getter + "()"); } - class_desc->pop(); //color - class_desc->push_color(comment_color); + + class_desc->pop(); // color + class_desc->push_color(theme_cache.comment_color); class_desc->add_text(" getter"); - class_desc->pop(); //color - class_desc->pop(); //font - class_desc->pop(); //cell + class_desc->pop(); // color + _pop_code_font(); + class_desc->pop(); // cell + method_line[cd.properties[i].getter] = property_line[cd.properties[i].name]; } } @@ -1670,15 +1682,15 @@ void EditorHelp::_update_doc() { class_desc->add_newline(); class_desc->add_newline(); - class_desc->push_color(text_color); - class_desc->push_font(doc_font); + class_desc->push_color(theme_cache.text_color); + _push_normal_font(); class_desc->push_indent(1); if (!cd.properties[i].description.strip_edges().is_empty()) { _add_text(DTR(cd.properties[i].description)); } else { class_desc->add_image(get_theme_icon(SNAME("Error"), SNAME("EditorIcons"))); class_desc->add_text(" "); - class_desc->push_color(comment_color); + class_desc->push_color(theme_cache.comment_color); if (cd.is_script_doc) { class_desc->append_text(TTR("There is currently no description for this property.")); } else { @@ -1687,8 +1699,9 @@ void EditorHelp::_update_doc() { class_desc->pop(); } class_desc->pop(); + _pop_normal_font(); class_desc->pop(); - class_desc->pop(); + class_desc->add_newline(); class_desc->add_newline(); class_desc->add_newline(); @@ -1698,30 +1711,30 @@ void EditorHelp::_update_doc() { // Constructor descriptions if (!cd.constructors.is_empty()) { section_line.push_back(Pair<String, int>(TTR("Constructor Descriptions"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Constructor Descriptions")); + _pop_title_font(); + _update_method_descriptions(cd, cd.constructors, "constructor"); } // Method descriptions if (!methods.is_empty()) { section_line.push_back(Pair<String, int>(TTR("Method Descriptions"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Method Descriptions")); + _pop_title_font(); + _update_method_descriptions(cd, methods, "method"); } // Operator descriptions if (!cd.operators.is_empty()) { section_line.push_back(Pair<String, int>(TTR("Operator Descriptions"), class_desc->get_paragraph_count() - 2)); - class_desc->push_color(title_color); - class_desc->push_font(doc_title_font); - class_desc->push_font_size(doc_title_font_size); + _push_title_font(); class_desc->add_text(TTR("Operator Descriptions")); + _pop_title_font(); + _update_method_descriptions(cd, cd.operators, "operator"); } @@ -1816,6 +1829,9 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt, Control Ref<Font> doc_code_font = p_owner_node->get_theme_font(SNAME("doc_source"), SNAME("EditorFonts")); Ref<Font> doc_kbd_font = p_owner_node->get_theme_font(SNAME("doc_keyboard"), SNAME("EditorFonts")); + int doc_code_font_size = p_owner_node->get_theme_font_size(SNAME("doc_source_size"), SNAME("EditorFonts")); + int doc_kbd_font_size = p_owner_node->get_theme_font_size(SNAME("doc_keyboard_size"), SNAME("EditorFonts")); + const Color type_color = p_owner_node->get_theme_color(SNAME("type_color"), SNAME("EditorHelp")); const Color code_color = p_owner_node->get_theme_color(SNAME("code_color"), SNAME("EditorHelp")); const Color kbd_color = p_owner_node->get_theme_color(SNAME("kbd_color"), SNAME("EditorHelp")); @@ -1939,10 +1955,12 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt, Control if (tag != "/img") { p_rt->pop(); if (code_tag) { + p_rt->pop(); // font size // Pop both color and background color. p_rt->pop(); p_rt->pop(); } else if (codeblock_tag) { + p_rt->pop(); // font size // Pop color, cell and table. p_rt->pop(); p_rt->pop(); @@ -1964,6 +1982,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt, Control // Use monospace font to make clickable references // easier to distinguish from inline code and other text. p_rt->push_font(doc_code_font); + p_rt->push_font_size(doc_code_font_size); Color target_color = link_color; if (link_tag == "method") { @@ -1978,7 +1997,9 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt, Control p_rt->add_text(link_target + (link_tag == "method" ? "()" : "")); p_rt->pop(); p_rt->pop(); - p_rt->pop(); + + p_rt->pop(); // font size + p_rt->pop(); // font pos = brk_end + 1; } else if (tag.begins_with("param ")) { @@ -1987,13 +2008,16 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt, Control // Use monospace font with translucent background color to make code easier to distinguish from other text. p_rt->push_font(doc_code_font); + p_rt->push_font_size(doc_code_font_size); + p_rt->push_bgcolor(param_bg_color); p_rt->push_color(code_color); p_rt->add_text(param_name); p_rt->pop(); p_rt->pop(); - p_rt->pop(); + p_rt->pop(); // font size + p_rt->pop(); // font pos = brk_end + 1; } else if (doc->class_list.has(tag)) { @@ -2001,29 +2025,37 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt, Control // Use monospace font to make clickable references // easier to distinguish from inline code and other text. p_rt->push_font(doc_code_font); + p_rt->push_font_size(doc_code_font_size); + p_rt->push_color(type_color); p_rt->push_meta("#" + tag); p_rt->add_text(tag); p_rt->pop(); p_rt->pop(); - p_rt->pop(); + + p_rt->pop(); // font size + p_rt->pop(); // font pos = brk_end + 1; } else if (tag == "b") { // Use bold font. p_rt->push_font(doc_bold_font); + pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "i") { // Use italics font. p_rt->push_font(doc_italic_font); + pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "code") { // Use monospace font with darkened background color to make code easier to distinguish from other text. p_rt->push_font(doc_code_font); + p_rt->push_font_size(doc_code_font_size); p_rt->push_bgcolor(code_bg_color); p_rt->push_color(code_color.lerp(p_owner_node->get_theme_color(SNAME("error_color"), SNAME("Editor")), 0.6)); + code_tag = true; pos = brk_end + 1; tag_stack.push_front(tag); @@ -2032,22 +2064,28 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt, Control // Use a single-column table with cell row background color instead of `[bgcolor]`. // This makes the background color highlight cover the entire block, rather than individual lines. p_rt->push_font(doc_code_font); + p_rt->push_font_size(doc_code_font_size); + p_rt->push_table(1); p_rt->push_cell(); p_rt->set_cell_row_background_color(code_bg_color, Color(code_bg_color, 0.99)); p_rt->set_cell_padding(Rect2(10 * EDSCALE, 10 * EDSCALE, 10 * EDSCALE, 10 * EDSCALE)); p_rt->push_color(code_dark_color); + codeblock_tag = true; pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "kbd") { // Use keyboard font with custom color and background color. p_rt->push_font(doc_kbd_font); + p_rt->push_font_size(doc_kbd_font_size); p_rt->push_bgcolor(kbd_bg_color); p_rt->push_color(kbd_color); + code_tag = true; // Though not strictly a code tag, logic is similar. pos = brk_end + 1; tag_stack.push_front(tag); + } else if (tag == "center") { // Align to center. p_rt->push_paragraph(HORIZONTAL_ALIGNMENT_CENTER, Control::TEXT_DIRECTION_AUTO, ""); @@ -2081,6 +2119,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt, Control } else if (tag.begins_with("url=")) { String url = tag.substr(4, tag.length()); p_rt->push_meta(url); + pos = brk_end + 1; tag_stack.push_front("url"); } else if (tag == "img") { @@ -2101,6 +2140,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt, Control String col = tag.substr(6, tag.length()); Color color = Color::from_string(col, Color()); p_rt->push_color(color); + pos = brk_end + 1; tag_stack.push_front("color"); @@ -2163,6 +2203,11 @@ void EditorHelp::_toggle_scripts_pressed() { void EditorHelp::_notification(int p_what) { switch (p_what) { + case NOTIFICATION_POSTINITIALIZE: { + // Requires theme to be up to date. + _class_desc_resized(false); + } break; + case NOTIFICATION_READY: case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { _wait_for_thread(); @@ -2275,13 +2320,11 @@ EditorHelp::EditorHelp() { add_child(class_desc); class_desc->set_threaded(true); class_desc->set_v_size_flags(SIZE_EXPAND_FILL); - class_desc->add_theme_color_override("selection_color", get_theme_color(SNAME("accent_color"), SNAME("Editor")) * Color(1, 1, 1, 0.4)); class_desc->connect("finished", callable_mp(this, &EditorHelp::_class_desc_finished)); class_desc->connect("meta_clicked", callable_mp(this, &EditorHelp::_class_desc_select)); class_desc->connect("gui_input", callable_mp(this, &EditorHelp::_class_desc_input)); class_desc->connect("resized", callable_mp(this, &EditorHelp::_class_desc_resized).bind(false)); - _class_desc_resized(false); // Added second so it opens at the bottom so it won't offset the entire widget. find_bar = memnew(FindBar); @@ -2431,7 +2474,6 @@ void FindBar::popup_search() { void FindBar::_notification(int p_what) { switch (p_what) { - case NOTIFICATION_ENTER_TREE: case NOTIFICATION_THEME_CHANGED: { find_prev->set_icon(get_theme_icon(SNAME("MoveUp"), SNAME("EditorIcons"))); find_next->set_icon(get_theme_icon(SNAME("MoveDown"), SNAME("EditorIcons"))); diff --git a/editor/editor_help.h b/editor/editor_help.h index 81cd6d6674..b2ffe3bc29 100644 --- a/editor/editor_help.h +++ b/editor/editor_help.h @@ -125,25 +125,33 @@ class EditorHelp : public VBoxContainer { String base_path; - Color text_color; - Color title_color; - Color headline_color; - Color comment_color; - Color symbol_color; - Color value_color; - Color qualifier_color; - Color type_color; - - Ref<Font> doc_font; - Ref<Font> doc_bold_font; - Ref<Font> doc_title_font; - Ref<Font> doc_code_font; - - int doc_title_font_size; + struct ThemeCache { + Ref<StyleBox> background_style; + + Color text_color; + Color title_color; + Color headline_color; + Color comment_color; + Color symbol_color; + Color value_color; + Color qualifier_color; + Color type_color; + + Ref<Font> doc_font; + Ref<Font> doc_bold_font; + Ref<Font> doc_italic_font; + Ref<Font> doc_title_font; + Ref<Font> doc_code_font; + Ref<Font> doc_kbd_font; + + int doc_font_size = 0; + int doc_title_font_size = 0; + int doc_code_font_size = 0; + int doc_kbd_font_size = 0; + } theme_cache; int scroll_to = -1; - void _update_theme(); void _help_callback(const String &p_topic); void _add_text(const String &p_bbcode); @@ -156,6 +164,13 @@ class EditorHelp : public VBoxContainer { void _add_bulletpoint(); + void _push_normal_font(); + void _pop_normal_font(); + void _push_title_font(); + void _pop_title_font(); + void _push_code_font(); + void _pop_code_font(); + void _class_desc_finished(); void _class_list_select(const String &p_select); void _class_desc_select(const String &p_select); @@ -181,6 +196,8 @@ class EditorHelp : public VBoxContainer { static void _gen_doc_thread(void *p_udata); protected: + virtual void _update_theme_item_cache() override; + void _notification(int p_what); static void _bind_methods(); diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 275e47e370..4533bcc51c 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -693,7 +693,7 @@ void EditorProperty::gui_input(const Ref<InputEvent> &p_event) { bool is_valid_revert = false; Variant revert_value = EditorPropertyRevert::get_property_revert_value(object, property, &is_valid_revert); ERR_FAIL_COND(!is_valid_revert); - emit_changed(property, revert_value); + emit_changed(_get_revert_property(), revert_value); update_property(); } @@ -2566,12 +2566,13 @@ bool EditorInspector::_is_property_disabled_by_feature_profile(const StringName } void EditorInspector::update_tree() { - //to update properly if all is refreshed + // Store currently selected and focused elements to restore after the update. + // TODO: Can be useful to store more context for the focusable, such as the caret position in LineEdit. StringName current_selected = property_selected; int current_focusable = -1; if (property_focusable != -1) { - //check focusable is really focusable + // Check that focusable is actually focusable. bool restore_focus = false; Control *focused = get_viewport() ? get_viewport()->gui_get_focus_owner() : nullptr; if (focused) { @@ -2579,8 +2580,8 @@ void EditorInspector::update_tree() { while (parent) { EditorInspector *inspector = Object::cast_to<EditorInspector>(parent); if (inspector) { - restore_focus = inspector == this; //may be owned by another inspector - break; //exit after the first inspector is found, since there may be nested ones + restore_focus = inspector == this; // May be owned by another inspector. + break; // Exit after the first inspector is found, since there may be nested ones. } parent = parent->get_parent(); } @@ -2591,7 +2592,9 @@ void EditorInspector::update_tree() { } } - _clear(); + // Only hide plugins if we are not editing any object. + // This should be handled outside of the update_tree call anyway (see EditorInspector::edit), but might as well keep it safe. + _clear(!object); if (!object) { return; @@ -3301,17 +3304,19 @@ void EditorInspector::update_property(const String &p_prop) { } } -void EditorInspector::_clear() { +void EditorInspector::_clear(bool p_hide_plugins) { while (main_vbox->get_child_count()) { memdelete(main_vbox->get_child(0)); } + property_selected = StringName(); property_focusable = -1; editor_property_map.clear(); sections.clear(); pending.clear(); restart_request_props.clear(); - if (_is_main_editor_inspector()) { + + if (p_hide_plugins && _is_main_editor_inspector()) { EditorNode::get_singleton()->hide_unused_editors(this); } } @@ -3405,7 +3410,6 @@ void EditorInspector::register_text_enter(Node *p_line_edit) { } void EditorInspector::_filter_changed(const String &p_text) { - _clear(); update_tree(); } diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h index eab495ef3d..37ff2e9b52 100644 --- a/editor/editor_inspector.h +++ b/editor/editor_inspector.h @@ -451,7 +451,7 @@ class EditorInspector : public ScrollContainer { List<EditorInspectorSection *> sections; HashSet<StringName> pending; - void _clear(); + void _clear(bool p_hide_plugins = true); Object *object = nullptr; // diff --git a/editor/editor_locale_dialog.cpp b/editor/editor_locale_dialog.cpp index fbf3c99690..13b4a8c128 100644 --- a/editor/editor_locale_dialog.cpp +++ b/editor/editor_locale_dialog.cpp @@ -294,7 +294,7 @@ void EditorLocaleDialog::_update_tree() { if (!is_edit_mode) { TreeItem *t = script_list->create_item(s_root); - t->set_text(0, "[Default]"); + t->set_text(0, TTR("[Default]")); t->set_metadata(0, ""); } @@ -404,7 +404,7 @@ EditorLocaleDialog::EditorLocaleDialog() { } { edit_filters = memnew(CheckButton); - edit_filters->set_text("Edit Filters"); + edit_filters->set_text(TTR("Edit Filters")); edit_filters->set_toggle_mode(true); edit_filters->set_pressed(false); edit_filters->connect("toggled", callable_mp(this, &EditorLocaleDialog::_edit_filters)); @@ -412,7 +412,7 @@ EditorLocaleDialog::EditorLocaleDialog() { } { advanced = memnew(CheckButton); - advanced->set_text("Advanced"); + advanced->set_text(TTR("Advanced")); advanced->set_toggle_mode(true); advanced->set_pressed(false); advanced->connect("toggled", callable_mp(this, &EditorLocaleDialog::_toggle_advanced)); diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 3adebb2f8e..a0e876315c 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -691,10 +691,11 @@ void EditorNode::_notification(int p_what) { bool theme_changed = EditorSettings::get_singleton()->check_changed_settings_in_group("interface/theme") || - EditorSettings::get_singleton()->check_changed_settings_in_group("text_editor/theme") || EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/font") || EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/main_font") || EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/code_font") || + EditorSettings::get_singleton()->check_changed_settings_in_group("text_editor/theme") || + EditorSettings::get_singleton()->check_changed_settings_in_group("text_editor/help/help") || EditorSettings::get_singleton()->check_changed_settings_in_group("filesystem/file_dialog/thumbnail_size"); if (theme_changed) { @@ -3685,7 +3686,7 @@ void EditorNode::_set_main_scene_state(Dictionary p_state, Node *p_for_scene) { Node *editor_node = SceneTreeDock::get_singleton()->get_tree_editor()->get_selected(); editor_node = editor_node == nullptr ? get_edited_scene() : editor_node; - if (Object::cast_to<Node2D>(editor_node) || Object::cast_to<Control>(editor_node)) { + if (Object::cast_to<CanvasItem>(editor_node)) { editor_select(EDITOR_2D); } else if (Object::cast_to<Node3D>(editor_node)) { editor_select(EDITOR_3D); diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index 33bba90c70..30c7d2b85f 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -4174,9 +4174,12 @@ struct EditorPropertyRangeHint { bool radians = false; }; -static EditorPropertyRangeHint _parse_range_hint(PropertyHint p_hint, const String &p_hint_text, double p_default_step) { +static EditorPropertyRangeHint _parse_range_hint(PropertyHint p_hint, const String &p_hint_text, double p_default_step, bool is_int = false) { EditorPropertyRangeHint hint; hint.step = p_default_step; + if (is_int) { + hint.hide_slider = false; // Always show slider for ints, unless specified in hint range. + } Vector<String> slices = p_hint_text.split(","); if (p_hint == PROPERTY_HINT_RANGE) { ERR_FAIL_COND_V_MSG(slices.size() < 2, hint, @@ -4294,7 +4297,7 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_ } else { EditorPropertyInteger *editor = memnew(EditorPropertyInteger); - EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1); + EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1, true); editor->setup(hint.min, hint.max, hint.step, hint.hide_slider, hint.or_greater, hint.or_less, hint.suffix); return editor; @@ -4383,7 +4386,7 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_ } break; case Variant::VECTOR2I: { EditorPropertyVector2i *editor = memnew(EditorPropertyVector2i(p_wide)); - EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1); + EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1, true); editor->setup(hint.min, hint.max, p_hint == PROPERTY_HINT_LINK, hint.suffix); return editor; @@ -4396,7 +4399,7 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_ } break; case Variant::RECT2I: { EditorPropertyRect2i *editor = memnew(EditorPropertyRect2i(p_wide)); - EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1); + EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1, true); editor->setup(hint.min, hint.max, hint.suffix); return editor; @@ -4410,7 +4413,7 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_ } break; case Variant::VECTOR3I: { EditorPropertyVector3i *editor = memnew(EditorPropertyVector3i(p_wide)); - EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1); + EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1, true); editor->setup(hint.min, hint.max, p_hint == PROPERTY_HINT_LINK, hint.suffix); return editor; @@ -4424,7 +4427,7 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_ } break; case Variant::VECTOR4I: { EditorPropertyVector4i *editor = memnew(EditorPropertyVector4i); - EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1); + EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1, true); editor->setup(hint.min, hint.max, hint.suffix); return editor; diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp index 24cfa7ad7b..80ebd32295 100644 --- a/editor/editor_properties_array_dict.cpp +++ b/editor/editor_properties_array_dict.cpp @@ -1009,6 +1009,14 @@ void EditorPropertyDictionary::update_property() { prop = memnew(EditorPropertyRID); } break; + case Variant::SIGNAL: { + prop = memnew(EditorPropertySignal); + + } break; + case Variant::CALLABLE: { + prop = memnew(EditorPropertyCallable); + + } break; case Variant::OBJECT: { if (Object::cast_to<EncodedObjectAsID>(value)) { EditorPropertyObjectID *editor = memnew(EditorPropertyObjectID); diff --git a/editor/editor_property_name_processor.cpp b/editor/editor_property_name_processor.cpp index a183e62618..b62615adcc 100644 --- a/editor/editor_property_name_processor.cpp +++ b/editor/editor_property_name_processor.cpp @@ -137,6 +137,7 @@ EditorPropertyNameProcessor::EditorPropertyNameProcessor() { capitalize_string_remaps["bptc"] = "BPTC"; capitalize_string_remaps["bvh"] = "BVH"; capitalize_string_remaps["ca"] = "CA"; + capitalize_string_remaps["ccdik"] = "CCDIK"; capitalize_string_remaps["cd"] = "CD"; capitalize_string_remaps["cpu"] = "CPU"; capitalize_string_remaps["csg"] = "CSG"; @@ -148,6 +149,7 @@ EditorPropertyNameProcessor::EditorPropertyNameProcessor() { capitalize_string_remaps["erp"] = "ERP"; capitalize_string_remaps["etc"] = "ETC"; capitalize_string_remaps["etc2"] = "ETC2"; + capitalize_string_remaps["fabrik"] = "FABRIK"; capitalize_string_remaps["fbx"] = "FBX"; capitalize_string_remaps["fbx2gltf"] = "FBX2glTF"; capitalize_string_remaps["fft"] = "FFT"; @@ -165,6 +167,7 @@ EditorPropertyNameProcessor::EditorPropertyNameProcessor() { capitalize_string_remaps["glb"] = "GLB"; capitalize_string_remaps["gles2"] = "GLES2"; capitalize_string_remaps["gles3"] = "GLES3"; + capitalize_string_remaps["gltf"] = "glTF"; capitalize_string_remaps["gpu"] = "GPU"; capitalize_string_remaps["gui"] = "GUI"; capitalize_string_remaps["guid"] = "GUID"; @@ -196,6 +199,7 @@ EditorPropertyNameProcessor::EditorPropertyNameProcessor() { capitalize_string_remaps["lcd"] = "LCD"; capitalize_string_remaps["ldr"] = "LDR"; capitalize_string_remaps["lod"] = "LOD"; + capitalize_string_remaps["lods"] = "LODs"; capitalize_string_remaps["lowpass"] = "Low-pass"; capitalize_string_remaps["macos"] = "macOS"; capitalize_string_remaps["mb"] = "(MB)"; // Unit. diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index 8eb2551843..23e32dcbd8 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -384,9 +384,6 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { if (score > 0 && score >= best_score) { best = locale; best_score = score; - if (score == 10) { - break; // Exact match, skip the rest. - } } } if (best_score == 0) { @@ -586,9 +583,9 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { // Help _initial_set("text_editor/help/show_help_index", true); - EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "text_editor/help/help_font_size", 15, "8,48,1") - EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "text_editor/help/help_source_font_size", 14, "8,48,1") - EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "text_editor/help/help_title_font_size", 23, "8,48,1") + EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "text_editor/help/help_font_size", 16, "8,48,1") + EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "text_editor/help/help_source_font_size", 15, "8,48,1") + EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "text_editor/help/help_title_font_size", 23, "8,64,1") EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "text_editor/help/class_reference_examples", 0, "GDScript,C#,GDScript and C#") /* Editors */ diff --git a/editor/event_listener_line_edit.cpp b/editor/event_listener_line_edit.cpp index ea4a7133bf..ee401810ad 100644 --- a/editor/event_listener_line_edit.cpp +++ b/editor/event_listener_line_edit.cpp @@ -105,7 +105,8 @@ String EventListenerLineEdit::get_event_text(const Ref<InputEvent> &p_event, boo desc = RTR(_joy_axis_descriptions[2 * (size_t)jp_motion->get_axis() + (jp_motion->get_axis_value() < 0 ? 0 : 1)]); } - text = vformat("Joypad Axis %s %s (%s)", itos((int64_t)jp_motion->get_axis()), jp_motion->get_axis_value() < 0 ? "-" : "+", desc); + // TRANSLATORS: %d is the axis number, the first %s is either "-" or "+", and the second %s is the description of the axis. + text = vformat(TTR("Joypad Axis %d %s (%s)"), (int64_t)jp_motion->get_axis(), jp_motion->get_axis_value() < 0 ? "-" : "+", desc); } if (p_include_device && (mouse.is_valid() || jp_button.is_valid() || jp_motion.is_valid())) { String device_string = get_device_string(p_event->get_device()); diff --git a/editor/export/editor_export_platform.cpp b/editor/export/editor_export_platform.cpp index a46484bb0e..96a8cc8b91 100644 --- a/editor/export/editor_export_platform.cpp +++ b/editor/export/editor_export_platform.cpp @@ -1513,7 +1513,7 @@ Error EditorExportPlatform::save_pack(const Ref<EditorExportPreset> &p_preset, b f = FileAccess::open(p_path, FileAccess::WRITE); if (f.is_null()) { DirAccess::remove_file_or_error(tmppath); - add_message(EXPORT_MESSAGE_ERROR, TTR("Save PCK"), vformat(TTR("Can't open file to read from path \"%s\"."), tmppath)); + add_message(EXPORT_MESSAGE_ERROR, TTR("Save PCK"), vformat(TTR("Can't open file for writing at path \"%s\"."), p_path)); return ERR_CANT_CREATE; } } else { @@ -1521,7 +1521,7 @@ Error EditorExportPlatform::save_pack(const Ref<EditorExportPreset> &p_preset, b f = FileAccess::open(p_path, FileAccess::READ_WRITE); if (f.is_null()) { DirAccess::remove_file_or_error(tmppath); - add_message(EXPORT_MESSAGE_ERROR, TTR("Save PCK"), vformat(TTR("Can't open executable file from path \"%s\"."), tmppath)); + add_message(EXPORT_MESSAGE_ERROR, TTR("Save PCK"), vformat(TTR("Can't open file for reading-writing at path \"%s\"."), p_path)); return ERR_FILE_CANT_OPEN; } diff --git a/editor/export/editor_export_platform_pc.cpp b/editor/export/editor_export_platform_pc.cpp index bbfd73be5e..7f934bc45b 100644 --- a/editor/export/editor_export_platform_pc.cpp +++ b/editor/export/editor_export_platform_pc.cpp @@ -33,6 +33,9 @@ #include "core/config/project_settings.h" void EditorExportPlatformPC::get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features) const { + if (p_preset->get("texture_format/bptc")) { + r_features->push_back("bptc"); + } if (p_preset->get("texture_format/s3tc")) { r_features->push_back("s3tc"); } diff --git a/editor/icons/ParallaxBackground.svg b/editor/icons/ParallaxBackground.svg index 71a586eff4..6f25954df3 100644 --- a/editor/icons/ParallaxBackground.svg +++ b/editor/icons/ParallaxBackground.svg @@ -1 +1 @@ -<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 -1036.4)"><path d="m2 2a1 1 0 0 0 -1 1v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-10a1 1 0 0 0 -1-1zm0 1h12v10h-12zm5 2-3 3 3 3zm2 0v6l3-3z" fill="#e0e0e0" transform="translate(0 1036.4)"/></g></svg> +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m3 1c-1.1046 0-2 .89543-2 2v10c0 1.1046.89543 2 2 2h10c1.1046 0 2-.89543 2-2v-10c0-1.1046-.89543-2-2-2zm0 1h10c.55228.0000096.99999.44772 1 1v10c-.00001.55228-.44772.99999-1 1h-10c-.55228-.00001-.99999-.44772-1-1v-10c.0000096-.55228.44772-.99999 1-1zm4 3-3 3 3 3zm2 0v6l3-3z" fill="#e0e0e0"/></svg> diff --git a/editor/icons/ParallaxLayer.svg b/editor/icons/ParallaxLayer.svg index 6945798e9c..df177bd7a2 100644 --- a/editor/icons/ParallaxLayer.svg +++ b/editor/icons/ParallaxLayer.svg @@ -1 +1 @@ -<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 -1036.4)"><path d="m3 1c-1.1046 0-2 .89543-2 2v10c0 1.1046.89543 2 2 2h10c1.1046 0 2-.89543 2-2v-10c0-1.1046-.89543-2-2-2zm0 1h10c.55228.0000096.99999.44772 1 1v10c-.00001.55228-.44772.99999-1 1h-10c-.55228-.00001-.99999-.44772-1-1v-10c.0000096-.55228.44772-.99999 1-1zm4 3-3 3 3 3zm2 0v6l3-3z" fill="#8da5f3" fill-rule="evenodd" transform="translate(0 1036.4)"/></g></svg> +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m3 1c-1.1079989 0-2 .8920011-2 2v10c0 1.107999.8920011 2 2 2h10c1.107999 0 2-.892001 2-2v-10c0-1.1079989-.892001-2-2-2zm4 4v6l-3-3zm2 0 3 3-3 3z" fill="#8da5f3" fill-rule="evenodd"/></svg> diff --git a/editor/import/dynamic_font_import_settings.cpp b/editor/import/dynamic_font_import_settings.cpp index 6e74c42b2c..b34656c481 100644 --- a/editor/import/dynamic_font_import_settings.cpp +++ b/editor/import/dynamic_font_import_settings.cpp @@ -36,7 +36,9 @@ #include "editor/editor_inspector.h" #include "editor/editor_locale_dialog.h" #include "editor/editor_node.h" +#include "editor/editor_property_name_processor.h" #include "editor/editor_scale.h" +#include "editor/editor_settings.h" /*************************************************************************/ /* Settings data */ @@ -926,6 +928,15 @@ void DynamicFontImportSettings::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { add_var->set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); } break; + + case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { + if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/localize_settings")) { + EditorPropertyNameProcessor::Style style = EditorPropertyNameProcessor::get_singleton()->get_settings_style(); + inspector_general->set_property_name_style(style); + inspector_vars->set_property_name_style(style); + inspector_text->set_property_name_style(style); + } + } break; } } @@ -1334,6 +1345,7 @@ DynamicFontImportSettings::DynamicFontImportSettings() { inspector_general->set_v_size_flags(Control::SIZE_EXPAND_FILL); inspector_general->set_custom_minimum_size(Size2(300 * EDSCALE, 250 * EDSCALE)); inspector_general->connect("property_edited", callable_mp(this, &DynamicFontImportSettings::_main_prop_changed)); + inspector_general->set_property_name_style(EditorPropertyNameProcessor::get_singleton()->get_settings_style()); page1_hb->add_child(inspector_general); // Page 2 layout: Configurations @@ -1386,6 +1398,7 @@ DynamicFontImportSettings::DynamicFontImportSettings() { inspector_vars = memnew(EditorInspector); inspector_vars->set_v_size_flags(Control::SIZE_EXPAND_FILL); inspector_vars->connect("property_edited", callable_mp(this, &DynamicFontImportSettings::_variation_changed)); + inspector_vars->set_property_name_style(EditorPropertyNameProcessor::get_singleton()->get_settings_style()); page2_side_vb->add_child(inspector_vars); VBoxContainer *preload_pages_vb = memnew(VBoxContainer); @@ -1461,6 +1474,7 @@ DynamicFontImportSettings::DynamicFontImportSettings() { inspector_text->set_v_size_flags(Control::SIZE_EXPAND_FILL); inspector_text->set_custom_minimum_size(Size2(300 * EDSCALE, 250 * EDSCALE)); inspector_text->connect("property_edited", callable_mp(this, &DynamicFontImportSettings::_change_text_opts)); + inspector_text->set_property_name_style(EditorPropertyNameProcessor::get_singleton()->get_settings_style()); page2_1_hb->add_child(inspector_text); text_edit = memnew(TextEdit); diff --git a/editor/import/scene_import_settings.cpp b/editor/import/scene_import_settings.cpp index 8d26feebf4..6eebb84216 100644 --- a/editor/import/scene_import_settings.cpp +++ b/editor/import/scene_import_settings.cpp @@ -64,6 +64,11 @@ class SceneImportSettingsData : public Object { current[p_name] = p_value; + // SceneImportSettings must decide if a new collider should be generated or not + if (category == ResourceImporterScene::INTERNAL_IMPORT_CATEGORY_MESH_3D_NODE) { + SceneImportSettings::get_singleton()->request_generate_collider(); + } + if (SceneImportSettings::get_singleton()->is_editing_animation()) { if (category == ResourceImporterScene::INTERNAL_IMPORT_CATEGORY_MAX) { if (ResourceImporterScene::get_animation_singleton()->get_option_visibility(path, p_name, current)) { @@ -420,9 +425,9 @@ void SceneImportSettings::_update_view_gizmos() { return; } for (const KeyValue<String, NodeData> &e : node_map) { - bool generate_collider = false; + bool show_collider_view = false; if (e.value.settings.has(SNAME("generate/physics"))) { - generate_collider = e.value.settings[SNAME("generate/physics")]; + show_collider_view = e.value.settings[SNAME("generate/physics")]; } MeshInstance3D *mesh_node = Object::cast_to<MeshInstance3D>(e.value.node); @@ -436,7 +441,7 @@ void SceneImportSettings::_update_view_gizmos() { CRASH_COND_MSG(descendants.is_empty(), "This is unreachable, since the collider view is always created even when the collision is not used! If this is triggered there is a bug on the function `_fill_scene`."); MeshInstance3D *collider_view = static_cast<MeshInstance3D *>(descendants[0].operator Object *()); - collider_view->set_visible(generate_collider); + collider_view->set_visible(show_collider_view); if (generate_collider) { // This collider_view doesn't have a mesh so we need to generate a new one. @@ -466,6 +471,8 @@ void SceneImportSettings::_update_view_gizmos() { collider_view->set_transform(transform); } } + + generate_collider = false; } void SceneImportSettings::_update_camera() { @@ -530,6 +537,10 @@ void SceneImportSettings::_load_default_subresource_settings(HashMap<StringName, } } +void SceneImportSettings::request_generate_collider() { + generate_collider = true; +} + void SceneImportSettings::update_view() { update_view_timer->start(); } diff --git a/editor/import/scene_import_settings.h b/editor/import/scene_import_settings.h index 6481221ad6..69bf58b627 100644 --- a/editor/import/scene_import_settings.h +++ b/editor/import/scene_import_settings.h @@ -191,6 +191,7 @@ class SceneImportSettings : public ConfirmationDialog { void _load_default_subresource_settings(HashMap<StringName, Variant> &settings, const String &p_type, const String &p_import_id, ResourceImporterScene::InternalImportCategory p_category); bool editing_animation = false; + bool generate_collider = false; Timer *update_view_timer = nullptr; @@ -199,6 +200,7 @@ protected: public: bool is_editing_animation() const { return editing_animation; } + void request_generate_collider(); void update_view(); void open_settings(const String &p_path, bool p_for_animation = false); static SceneImportSettings *get_singleton(); diff --git a/editor/input_event_configuration_dialog.cpp b/editor/input_event_configuration_dialog.cpp index fb450a41d3..c620858439 100644 --- a/editor/input_event_configuration_dialog.cpp +++ b/editor/input_event_configuration_dialog.cpp @@ -538,6 +538,8 @@ void InputEventConfigurationDialog::_notification(int p_what) { icon_cache.joypad_button = get_theme_icon(SNAME("JoyButton"), SNAME("EditorIcons")); icon_cache.joypad_axis = get_theme_icon(SNAME("JoyAxis"), SNAME("EditorIcons")); + event_as_text->add_theme_font_override("font", get_theme_font(SNAME("bold"), SNAME("EditorFonts"))); + _update_input_list(); } break; } @@ -591,7 +593,6 @@ InputEventConfigurationDialog::InputEventConfigurationDialog() { event_as_text = memnew(Label); event_as_text->set_autowrap_mode(TextServer::AUTOWRAP_WORD_SMART); event_as_text->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER); - event_as_text->add_theme_font_override("font", get_theme_font(SNAME("bold"), SNAME("EditorFonts"))); event_as_text->add_theme_font_size_override("font_size", 18 * EDSCALE); main_vbox->add_child(event_as_text); diff --git a/editor/plugins/mesh_library_editor_plugin.cpp b/editor/plugins/mesh_library_editor_plugin.cpp index 2981862291..cf8555d07d 100644 --- a/editor/plugins/mesh_library_editor_plugin.cpp +++ b/editor/plugins/mesh_library_editor_plugin.cpp @@ -232,8 +232,8 @@ void MeshLibraryEditor::_menu_cbk(int p_option) { } break; case MENU_OPTION_REMOVE_ITEM: { String p = InspectorDock::get_inspector_singleton()->get_selected_path(); - if (p.begins_with("/MeshLibrary/item") && p.get_slice_count("/") >= 3) { - to_erase = p.get_slice("/", 3).to_int(); + if (p.begins_with("item") && p.get_slice_count("/") >= 2) { + to_erase = p.get_slice("/", 1).to_int(); cd_remove->set_text(vformat(TTR("Remove item %d?"), to_erase)); cd_remove->popup_centered(Size2(300, 60)); } diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index b001b4f766..fc1d8936d5 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -3392,7 +3392,6 @@ void Node3DEditorViewport::_menu_option(int p_option) { VIEW_DISPLAY_SHADELESS, VIEW_DISPLAY_LIGHTING, VIEW_DISPLAY_NORMAL_BUFFER, - VIEW_DISPLAY_WIREFRAME, VIEW_DISPLAY_DEBUG_SHADOW_ATLAS, VIEW_DISPLAY_DEBUG_DIRECTIONAL_SHADOW_ATLAS, VIEW_DISPLAY_DEBUG_VOXEL_GI_ALBEDO, @@ -3422,7 +3421,6 @@ void Node3DEditorViewport::_menu_option(int p_option) { Viewport::DEBUG_DRAW_UNSHADED, Viewport::DEBUG_DRAW_LIGHTING, Viewport::DEBUG_DRAW_NORMAL_BUFFER, - Viewport::DEBUG_DRAW_WIREFRAME, Viewport::DEBUG_DRAW_SHADOW_ATLAS, Viewport::DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS, Viewport::DEBUG_DRAW_VOXEL_GI_ALBEDO, @@ -3445,9 +3443,7 @@ void Node3DEditorViewport::_menu_option(int p_option) { Viewport::DEBUG_DRAW_MOTION_VECTORS, }; - int idx = 0; - - while (display_options[idx] != VIEW_MAX) { + for (int idx = 0; display_options[idx] != VIEW_MAX; idx++) { int id = display_options[idx]; int item_idx = view_menu->get_popup()->get_item_index(id); if (item_idx != -1) { @@ -3461,7 +3457,6 @@ void Node3DEditorViewport::_menu_option(int p_option) { if (id == p_option) { viewport->set_debug_draw(debug_draw_modes[idx]); } - idx++; } } break; } diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index e515b46b1e..ccbc7c3d74 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -33,6 +33,7 @@ #include "core/config/project_settings.h" #include "core/input/input.h" #include "core/io/file_access.h" +#include "core/io/json.h" #include "core/io/resource_loader.h" #include "core/os/keyboard.h" #include "core/os/os.h" @@ -209,6 +210,27 @@ Ref<EditorSyntaxHighlighter> EditorPlainTextSyntaxHighlighter::_create() const { return syntax_highlighter; } +//// + +void EditorJSONSyntaxHighlighter::_update_cache() { + highlighter->set_text_edit(text_edit); + highlighter->clear_keyword_colors(); + highlighter->clear_member_keyword_colors(); + highlighter->clear_color_regions(); + + highlighter->set_symbol_color(EDITOR_GET("text_editor/theme/highlighting/symbol_color")); + highlighter->set_number_color(EDITOR_GET("text_editor/theme/highlighting/number_color")); + + const Color string_color = EDITOR_GET("text_editor/theme/highlighting/string_color"); + highlighter->add_color_region("\"", "\"", string_color); +} + +Ref<EditorSyntaxHighlighter> EditorJSONSyntaxHighlighter::_create() const { + Ref<EditorJSONSyntaxHighlighter> syntax_highlighter; + syntax_highlighter.instantiate(); + return syntax_highlighter; +} + //////////////////////////////////////////////////////////////////////////////// /*** SCRIPT EDITOR ****/ @@ -702,9 +724,10 @@ void ScriptEditor::_open_recent_script(int p_idx) { if (FileAccess::exists(path)) { List<String> extensions; ResourceLoader::get_recognized_extensions_for_type("Script", &extensions); + ResourceLoader::get_recognized_extensions_for_type("JSON", &extensions); if (extensions.find(path.get_extension())) { - Ref<Script> scr = ResourceLoader::load(path); + Ref<Resource> scr = ResourceLoader::load(path); if (scr.is_valid()) { edit(scr, true); return; @@ -1182,6 +1205,7 @@ void ScriptEditor::_menu_option(int p_option) { List<String> extensions; ResourceLoader::get_recognized_extensions_for_type("Script", &extensions); + ResourceLoader::get_recognized_extensions_for_type("JSON", &extensions); bool built_in = !path.is_resource_file(); if (extensions.find(path.get_extension()) || built_in) { @@ -1196,7 +1220,7 @@ void ScriptEditor::_menu_option(int p_option) { } } - Ref<Script> scr = ResourceLoader::load(path); + Ref<Resource> scr = ResourceLoader::load(path); if (!scr.is_valid()) { EditorNode::get_singleton()->show_warning(TTR("Could not load file at:") + "\n\n" + path, TTR("Error!")); file_dialog_option = -1; @@ -2319,12 +2343,23 @@ bool ScriptEditor::edit(const Ref<Resource> &p_resource, int p_line, int p_col, } se->add_syntax_highlighter(highlighter); - if (scr != nullptr && !highlighter_set) { - PackedStringArray languages = highlighter->_get_supported_languages(); + if (highlighter_set) { + continue; + } + + PackedStringArray languages = highlighter->_get_supported_languages(); + // If script try language, else use extension. + if (scr != nullptr) { if (languages.has(scr->get_language()->get_name())) { se->set_syntax_highlighter(highlighter); highlighter_set = true; } + continue; + } + + if (languages.has(p_resource->get_path().get_extension())) { + se->set_syntax_highlighter(highlighter); + highlighter_set = true; } } @@ -2483,7 +2518,7 @@ void ScriptEditor::save_all_scripts() { } else { // For built-in scripts, save their scenes instead. const String scene_path = edited_res->get_path().get_slice("::", 0); - if (!scenes_to_save.has(scene_path)) { + if (!scene_path.is_empty() && !scenes_to_save.has(scene_path)) { scenes_to_save.push_back(scene_path); } } @@ -2528,7 +2563,7 @@ void ScriptEditor::reload_scripts(bool p_refresh_only) { } Ref<Script> scr = edited_res; - if (scr != nullptr) { + if (scr.is_valid()) { Ref<Script> rel_scr = ResourceLoader::load(scr->get_path(), scr->get_class(), ResourceFormatLoader::CACHE_MODE_IGNORE); ERR_CONTINUE(!rel_scr.is_valid()); scr->set_source_code(rel_scr->get_source_code()); @@ -2536,13 +2571,17 @@ void ScriptEditor::reload_scripts(bool p_refresh_only) { scr->reload(true); } + Ref<JSON> json = edited_res; + if (json != nullptr) { + Ref<JSON> rel_json = ResourceLoader::load(json->get_path(), json->get_class(), ResourceFormatLoader::CACHE_MODE_IGNORE); + ERR_CONTINUE(!rel_json.is_valid()); + json->parse(rel_json->get_parsed_text(), true); + json->set_last_modified_time(rel_json->get_last_modified_time()); + } + Ref<TextFile> text_file = edited_res; - if (text_file != nullptr) { - Error err; - Ref<TextFile> rel_text_file = _load_text_file(text_file->get_path(), &err); - ERR_CONTINUE(!rel_text_file.is_valid()); - text_file->set_text(rel_text_file->get_text()); - text_file->set_last_modified_time(rel_text_file->get_last_modified_time()); + if (text_file.is_valid()) { + text_file->reload_from_file(); } } @@ -2568,8 +2607,9 @@ void ScriptEditor::open_text_file_create_dialog(const String &p_base_path, const Ref<Resource> ScriptEditor::open_file(const String &p_file) { List<String> extensions; ResourceLoader::get_recognized_extensions_for_type("Script", &extensions); + ResourceLoader::get_recognized_extensions_for_type("JSON", &extensions); if (extensions.find(p_file.get_extension())) { - Ref<Script> scr = ResourceLoader::load(p_file); + Ref<Resource> scr = ResourceLoader::load(p_file); if (!scr.is_valid()) { EditorNode::get_singleton()->show_warning(TTR("Could not load file at:") + "\n\n" + p_file, TTR("Error!")); return Ref<Resource>(); @@ -2870,8 +2910,8 @@ bool ScriptEditor::can_drop_data_fw(const Point2 &p_point, const Variant &p_data if (file.is_empty() || !FileAccess::exists(file)) { continue; } - if (ResourceLoader::exists(file, "Script")) { - Ref<Script> scr = ResourceLoader::load(file); + if (ResourceLoader::exists(file, "Script") || ResourceLoader::exists(file, "JSON")) { + Ref<Resource> scr = ResourceLoader::load(file); if (scr.is_valid()) { return true; } @@ -2951,7 +2991,7 @@ void ScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Co continue; } - if (!ResourceLoader::exists(file, "Script") && !textfile_extensions.has(file.get_extension())) { + if (!ResourceLoader::exists(file, "Script") && !ResourceLoader::exists(file, "JSON") && !textfile_extensions.has(file.get_extension())) { continue; } @@ -3109,6 +3149,7 @@ void ScriptEditor::set_window_layout(Ref<ConfigFile> p_layout) { HashSet<String> loaded_scripts; List<String> extensions; ResourceLoader::get_recognized_extensions_for_type("Script", &extensions); + ResourceLoader::get_recognized_extensions_for_type("JSON", &extensions); for (int i = 0; i < scripts.size(); i++) { String path = scripts[i]; @@ -3127,7 +3168,7 @@ void ScriptEditor::set_window_layout(Ref<ConfigFile> p_layout) { loaded_scripts.insert(path); if (extensions.find(path.get_extension())) { - Ref<Script> scr = ResourceLoader::load(path); + Ref<Resource> scr = ResourceLoader::load(path); if (!scr.is_valid()) { continue; } @@ -3481,6 +3522,12 @@ void ScriptEditor::_open_script_request(const String &p_path) { return; } + Ref<JSON> json = ResourceLoader::load(p_path); + if (json.is_valid()) { + script_editor->edit(json, false); + return; + } + Error err; Ref<TextFile> text_file = script_editor->_load_text_file(p_path, &err); if (text_file.is_valid()) { @@ -3543,7 +3590,8 @@ void ScriptEditor::_on_find_in_files_result_selected(String fpath, int line_numb return; } else { Ref<Script> scr = res; - if (scr.is_valid()) { + Ref<JSON> json = res; + if (scr.is_valid() || json.is_valid()) { edit(scr); ScriptTextEditor *ste = Object::cast_to<ScriptTextEditor>(_get_current_editor()); @@ -3946,6 +3994,10 @@ ScriptEditor::ScriptEditor() { add_theme_style_override("panel", EditorNode::get_singleton()->get_gui_base()->get_theme_stylebox(SNAME("ScriptEditorPanel"), SNAME("EditorStyles"))); tab_container->add_theme_style_override("panel", EditorNode::get_singleton()->get_gui_base()->get_theme_stylebox(SNAME("ScriptEditor"), SNAME("EditorStyles"))); + + Ref<EditorJSONSyntaxHighlighter> json_syntax_highlighter; + json_syntax_highlighter.instantiate(); + register_syntax_highlighter(json_syntax_highlighter); } ScriptEditor::~ScriptEditor() { @@ -3967,6 +4019,8 @@ void ScriptEditorPlugin::edit(Object *p_object) { } } script_editor->edit(p_script); + } else if (Object::cast_to<JSON>(p_object)) { + script_editor->edit(Object::cast_to<JSON>(p_object)); } else if (Object::cast_to<TextFile>(p_object)) { script_editor->edit(Object::cast_to<TextFile>(p_object)); } @@ -3981,6 +4035,10 @@ bool ScriptEditorPlugin::handles(Object *p_object) const { return true; } + if (Object::cast_to<JSON>(p_object)) { + return true; + } + return p_object->is_class("Script"); } diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h index 988d07621c..f8e684ae34 100644 --- a/editor/plugins/script_editor_plugin.h +++ b/editor/plugins/script_editor_plugin.h @@ -96,6 +96,24 @@ public: virtual Ref<EditorSyntaxHighlighter> _create() const override; }; +class EditorJSONSyntaxHighlighter : public EditorSyntaxHighlighter { + GDCLASS(EditorJSONSyntaxHighlighter, EditorSyntaxHighlighter) + +private: + Ref<CodeHighlighter> highlighter; + +public: + virtual void _update_cache() override; + virtual Dictionary _get_line_syntax_highlighting_impl(int p_line) override { return highlighter->get_line_syntax_highlighting(p_line); } + + virtual PackedStringArray _get_supported_languages() const override { return PackedStringArray{ "json" }; } + virtual String _get_name() const override { return TTR("JSON"); } + + virtual Ref<EditorSyntaxHighlighter> _create() const override; + + EditorJSONSyntaxHighlighter() { highlighter.instantiate(); } +}; + /////////////////////////////////////////////////////////////////////////////// class ScriptEditorQuickOpen : public ConfirmationDialog { diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index 6b4e7184d9..9fe1d8af99 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -1362,11 +1362,36 @@ void ScriptTextEditor::_edit_option(int p_op) { code_editor->remove_all_bookmarks(); } break; case DEBUG_TOGGLE_BREAKPOINT: { - for (int caret_idx = 0; caret_idx < tx->get_caret_count(); caret_idx++) { - int line = tx->get_caret_line(caret_idx); - 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); + Vector<int> caret_edit_order = tx->get_caret_index_edit_order(); + caret_edit_order.reverse(); + int last_line = -1; + for (const int &c : caret_edit_order) { + int from = tx->has_selection(c) ? tx->get_selection_from_line(c) : tx->get_caret_line(c); + from += from == last_line ? 1 : 0; + int to = tx->has_selection(c) ? tx->get_selection_to_line(c) : tx->get_caret_line(c); + if (to < from) { + continue; + } + // Check first if there's any lines with breakpoints in the selection. + bool selection_has_breakpoints = false; + for (int line = from; line <= to; line++) { + if (tx->is_line_breakpointed(line)) { + selection_has_breakpoints = true; + break; + } + } + + // Set breakpoint on caret or remove all bookmarks from the selection. + if (!selection_has_breakpoints) { + if (tx->get_caret_line(c) != last_line) { + tx->set_line_as_breakpoint(tx->get_caret_line(c), true); + } + } else { + for (int line = from; line <= to; line++) { + tx->set_line_as_breakpoint(line, false); + } + } + last_line = to; } } break; case DEBUG_REMOVE_ALL_BREAKPOINTS: { @@ -1820,30 +1845,72 @@ void ScriptTextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) { color_position.x = row; color_position.y = col; - int begin = 0; - int end = 0; - bool valid = false; + int begin = -1; + int end = -1; + enum EXPRESSION_PATTERNS { + NOT_PARSED, + RGBA_PARAMETER, // Color(float,float,float) or Color(float,float,float,float) + COLOR_NAME, // Color.COLOR_NAME + } expression_pattern = NOT_PARSED; + for (int i = col; i < line.length(); i++) { if (line[i] == '(') { + if (expression_pattern == NOT_PARSED) { + begin = i; + expression_pattern = RGBA_PARAMETER; + } else { + // Method call or '(' appearing twice. + expression_pattern = NOT_PARSED; + + break; + } + } else if (expression_pattern == RGBA_PARAMETER && line[i] == ')' && end < 0) { + end = i + 1; + + break; + } else if (expression_pattern == NOT_PARSED && line[i] == '.') { begin = i; + expression_pattern = COLOR_NAME; + } else if (expression_pattern == COLOR_NAME && end < 0 && (line[i] == ' ' || line[i] == '\t')) { + // Including '.' and spaces. continue; - } else if (line[i] == ')') { - end = i + 1; - valid = true; + } else if (expression_pattern == COLOR_NAME && !(line[i] == '_' || ('A' <= line[i] && line[i] <= 'Z'))) { + end = i; + break; } } - if (valid) { - color_args = line.substr(begin, end - begin); - String stripped = color_args.replace(" ", "").replace("(", "").replace(")", ""); - PackedFloat64Array color = stripped.split_floats(","); - if (color.size() > 2) { - float alpha = color.size() > 3 ? color[3] : 1.0f; - color_picker->set_pick_color(Color(color[0], color[1], color[2], alpha)); - } + + switch (expression_pattern) { + case RGBA_PARAMETER: { + color_args = line.substr(begin, end - begin); + String stripped = color_args.replace(" ", "").replace("\t", "").replace("(", "").replace(")", ""); + PackedFloat64Array color = stripped.split_floats(","); + if (color.size() > 2) { + float alpha = color.size() > 3 ? color[3] : 1.0f; + color_picker->set_pick_color(Color(color[0], color[1], color[2], alpha)); + } + } break; + case COLOR_NAME: { + if (end < 0) { + end = line.length(); + } + color_args = line.substr(begin, end - begin); + const String color_name = color_args.replace(" ", "").replace("\t", "").replace(".", ""); + const int color_index = Color::find_named_color(color_name); + if (0 <= color_index) { + const Color color_constant = Color::get_named_color(color_index); + color_picker->set_pick_color(color_constant); + } else { + has_color = false; + } + } break; + default: + has_color = false; + break; + } + if (has_color) { color_panel->set_position(get_screen_position() + local_pos); - } else { - has_color = false; } } _make_context_menu(tx->has_selection(), has_color, foldable, open_docs, goto_definition, local_pos); diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp index 7f43de3240..120cfbdefb 100644 --- a/editor/plugins/skeleton_3d_editor_plugin.cpp +++ b/editor/plugins/skeleton_3d_editor_plugin.cpp @@ -1276,8 +1276,6 @@ int Skeleton3DGizmoPlugin::subgizmos_intersect_ray(const EditorNode3DGizmo *p_gi } if (closest_idx >= 0) { - WARN_PRINT("ray:"); - WARN_PRINT(itos(closest_idx)); se->select_bone(closest_idx); return closest_idx; } diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp index a376699e54..ceb170d7d8 100644 --- a/editor/plugins/text_editor.cpp +++ b/editor/plugins/text_editor.cpp @@ -30,6 +30,7 @@ #include "text_editor.h" +#include "core/io/json.h" #include "core/os/keyboard.h" #include "editor/editor_node.h" #include "editor/editor_settings.h" @@ -67,12 +68,12 @@ void TextEditor::_load_theme_settings() { String TextEditor::get_name() { String name; - name = text_file->get_path().get_file(); + name = edited_res->get_path().get_file(); if (name.is_empty()) { // This appears for newly created built-in text_files before saving the scene. name = TTR("[unsaved]"); - } else if (text_file->is_built_in()) { - const String &text_file_name = text_file->get_name(); + } else if (edited_res->is_built_in()) { + const String &text_file_name = edited_res->get_name(); if (!text_file_name.is_empty()) { // If the built-in text_file has a custom resource name defined, // display the built-in text_file name as follows: `ResourceName (scene_file.tscn)` @@ -88,20 +89,29 @@ String TextEditor::get_name() { } Ref<Texture2D> TextEditor::get_theme_icon() { - return EditorNode::get_singleton()->get_object_icon(text_file.ptr(), ""); + return EditorNode::get_singleton()->get_object_icon(edited_res.ptr(), "TextFile"); } Ref<Resource> TextEditor::get_edited_resource() const { - return text_file; + return edited_res; } void TextEditor::set_edited_resource(const Ref<Resource> &p_res) { - ERR_FAIL_COND(text_file.is_valid()); + ERR_FAIL_COND(edited_res.is_valid()); ERR_FAIL_COND(p_res.is_null()); - text_file = p_res; + edited_res = p_res; + + Ref<TextFile> text_file = edited_res; + if (text_file != nullptr) { + code_editor->get_text_editor()->set_text(text_file->get_text()); + } + + Ref<JSON> json_file = edited_res; + if (json_file != nullptr) { + code_editor->get_text_editor()->set_text(json_file->get_parsed_text()); + } - 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(); @@ -118,6 +128,8 @@ void TextEditor::enable_editor(Control *p_shortcut_context) { _load_theme_settings(); + _validate_script(); + if (p_shortcut_context) { for (int i = 0; i < edit_hb->get_child_count(); ++i) { Control *c = cast_to<Control>(edit_hb->get_child(i)); @@ -143,7 +155,7 @@ PackedInt32Array TextEditor::get_breakpoints() { } void TextEditor::reload_text() { - ERR_FAIL_COND(text_file.is_null()); + ERR_FAIL_COND(edited_res.is_null()); CodeEdit *te = code_editor->get_text_editor(); int column = te->get_caret_column(); @@ -151,7 +163,16 @@ void TextEditor::reload_text() { int h = te->get_h_scroll(); int v = te->get_v_scroll(); - te->set_text(text_file->get_text()); + Ref<TextFile> text_file = edited_res; + if (text_file != nullptr) { + te->set_text(text_file->get_text()); + } + + Ref<JSON> json_file = edited_res; + if (json_file != nullptr) { + te->set_text(json_file->get_parsed_text()); + } + te->set_caret_line(row); te->set_caret_column(column); te->set_h_scroll(h); @@ -166,6 +187,20 @@ void TextEditor::reload_text() { void TextEditor::_validate_script() { emit_signal(SNAME("name_changed")); emit_signal(SNAME("edited_script_changed")); + + Ref<JSON> json_file = edited_res; + if (json_file != nullptr) { + CodeEdit *te = code_editor->get_text_editor(); + + te->set_line_background_color(code_editor->get_error_pos().x, Color(0, 0, 0, 0)); + code_editor->set_error(""); + + if (json_file->parse(te->get_text(), true) != OK) { + code_editor->set_error(json_file->get_error_message()); + code_editor->set_error_pos(json_file->get_error_line(), 0); + te->set_line_background_color(code_editor->get_error_pos().x, EDITOR_GET("text_editor/theme/highlighting/mark_color")); + } + } } void TextEditor::_update_bookmark_list() { @@ -204,13 +239,22 @@ void TextEditor::_bookmark_item_pressed(int p_idx) { } void TextEditor::apply_code() { - text_file->set_text(code_editor->get_text_editor()->get_text()); + Ref<TextFile> text_file = edited_res; + if (text_file != nullptr) { + text_file->set_text(code_editor->get_text_editor()->get_text()); + } + + Ref<JSON> json_file = edited_res; + if (json_file != nullptr) { + json_file->parse(code_editor->get_text_editor()->get_text(), true); + } + code_editor->get_text_editor()->get_syntax_highlighter()->update_cache(); } bool TextEditor::is_unsaved() { const bool unsaved = code_editor->get_text_editor()->get_version() != code_editor->get_text_editor()->get_saved_version() || - text_file->get_path().is_empty(); // In memory. + edited_res->get_path().is_empty(); // In memory. return unsaved; } @@ -431,7 +475,7 @@ void TextEditor::_convert_case(CodeTextEditor::CaseStyle p_case) { } static ScriptEditorBase *create_editor(const Ref<Resource> &p_resource) { - if (Object::cast_to<TextFile>(*p_resource)) { + if (Object::cast_to<TextFile>(*p_resource) || Object::cast_to<JSON>(*p_resource)) { return memnew(TextEditor); } return nullptr; @@ -656,4 +700,5 @@ TextEditor::~TextEditor() { } void TextEditor::validate() { + this->code_editor->validate_script(); } diff --git a/editor/plugins/text_editor.h b/editor/plugins/text_editor.h index 6db81508b3..85e0fee627 100644 --- a/editor/plugins/text_editor.h +++ b/editor/plugins/text_editor.h @@ -41,7 +41,7 @@ class TextEditor : public ScriptEditorBase { private: CodeTextEditor *code_editor = nullptr; - Ref<TextFile> text_file; + Ref<Resource> edited_res; bool editor_enabled = false; HBoxContainer *edit_hb = nullptr; diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp index 14ff59b442..073adb467a 100644 --- a/editor/plugins/theme_editor_plugin.cpp +++ b/editor/plugins/theme_editor_plugin.cpp @@ -3705,82 +3705,13 @@ ThemeEditor::ThemeEditor() { void ThemeEditorPlugin::edit(Object *p_node) { if (Object::cast_to<Theme>(p_node)) { theme_editor->edit(Object::cast_to<Theme>(p_node)); - } else if (Object::cast_to<Font>(p_node) || Object::cast_to<StyleBox>(p_node) || Object::cast_to<Texture2D>(p_node)) { - // Do nothing, keep editing the existing theme. } else { theme_editor->edit(Ref<Theme>()); } } bool ThemeEditorPlugin::handles(Object *p_node) const { - if (Object::cast_to<Theme>(p_node)) { - return true; - } - - Ref<Theme> edited_theme = theme_editor->get_edited_theme(); - if (edited_theme.is_null()) { - return false; - } - - // If we are editing a theme already and this particular resource happens to belong to it, - // then we just keep editing it, despite not being able to directly handle it. - // This only goes one layer deep, but if required this can be extended to support, say, Font inside of Font. - bool belongs_to_theme = false; - - if (Object::cast_to<Font>(p_node)) { - Ref<Font> font_item = Object::cast_to<Font>(p_node); - List<StringName> types; - List<StringName> names; - - edited_theme->get_font_type_list(&types); - for (const StringName &E : types) { - names.clear(); - edited_theme->get_font_list(E, &names); - - for (const StringName &F : names) { - if (font_item == edited_theme->get_font(F, E)) { - belongs_to_theme = true; - break; - } - } - } - } else if (Object::cast_to<StyleBox>(p_node)) { - Ref<StyleBox> stylebox_item = Object::cast_to<StyleBox>(p_node); - List<StringName> types; - List<StringName> names; - - edited_theme->get_stylebox_type_list(&types); - for (const StringName &E : types) { - names.clear(); - edited_theme->get_stylebox_list(E, &names); - - for (const StringName &F : names) { - if (stylebox_item == edited_theme->get_stylebox(F, E)) { - belongs_to_theme = true; - break; - } - } - } - } else if (Object::cast_to<Texture2D>(p_node)) { - Ref<Texture2D> icon_item = Object::cast_to<Texture2D>(p_node); - List<StringName> types; - List<StringName> names; - - edited_theme->get_icon_type_list(&types); - for (const StringName &E : types) { - names.clear(); - edited_theme->get_icon_list(E, &names); - - for (const StringName &F : names) { - if (icon_item == edited_theme->get_icon(F, E)) { - belongs_to_theme = true; - break; - } - } - } - } - - return belongs_to_theme; + return Object::cast_to<Theme>(p_node) != nullptr; } void ThemeEditorPlugin::make_visible(bool p_visible) { diff --git a/editor/plugins/tiles/tile_atlas_view.cpp b/editor/plugins/tiles/tile_atlas_view.cpp index fd651dd507..43c6d1a48b 100644 --- a/editor/plugins/tiles/tile_atlas_view.cpp +++ b/editor/plugins/tiles/tile_atlas_view.cpp @@ -404,13 +404,16 @@ void TileAtlasView::_draw_background_right() { } void TileAtlasView::set_atlas_source(TileSet *p_tile_set, TileSetAtlasSource *p_tile_set_atlas_source, int p_source_id) { - ERR_FAIL_COND(!p_tile_set); - ERR_FAIL_COND(!p_tile_set_atlas_source); + tile_set = p_tile_set; + tile_set_atlas_source = p_tile_set_atlas_source; + + if (!tile_set) { + return; + } + ERR_FAIL_COND(p_source_id < 0); ERR_FAIL_COND(p_tile_set->get_source(p_source_id) != p_tile_set_atlas_source); - tile_set = p_tile_set; - tile_set_atlas_source = p_tile_set_atlas_source; source_id = p_source_id; // Show or hide the view. diff --git a/editor/plugins/tiles/tile_map_editor.cpp b/editor/plugins/tiles/tile_map_editor.cpp index f0a02a3768..4d9e2db682 100644 --- a/editor/plugins/tiles/tile_map_editor.cpp +++ b/editor/plugins/tiles/tile_map_editor.cpp @@ -571,14 +571,14 @@ bool TileMapEditorTilesPlugin::forward_canvas_gui_input(const Ref<InputEvent> &p case DRAG_TYPE_PAINT: { HashMap<Vector2i, TileMapCell> to_draw = _draw_line(drag_start_mouse_pos, drag_last_mouse_pos, mpos, drag_erasing); for (const KeyValue<Vector2i, TileMapCell> &E : to_draw) { - if (!drag_erasing && E.value.source_id == TileSet::INVALID_SOURCE) { - continue; - } Vector2i coords = E.key; if (!drag_modified.has(coords)) { drag_modified.insert(coords, tile_map->get_cell(tile_map_layer, coords)); + if (!drag_erasing && E.value.source_id == TileSet::INVALID_SOURCE) { + continue; + } + tile_map->set_cell(tile_map_layer, coords, E.value.source_id, E.value.get_atlas_coords(), E.value.alternative_tile); } - tile_map->set_cell(tile_map_layer, coords, E.value.source_id, E.value.get_atlas_coords(), E.value.alternative_tile); } _fix_invalid_tiles_in_tile_map_selection(); } break; @@ -588,14 +588,14 @@ bool TileMapEditorTilesPlugin::forward_canvas_gui_input(const Ref<InputEvent> &p if (!drag_modified.has(line[i])) { HashMap<Vector2i, TileMapCell> to_draw = _draw_bucket_fill(line[i], bucket_contiguous_checkbox->is_pressed(), drag_erasing); for (const KeyValue<Vector2i, TileMapCell> &E : to_draw) { - if (!drag_erasing && E.value.source_id == TileSet::INVALID_SOURCE) { - continue; - } Vector2i coords = E.key; if (!drag_modified.has(coords)) { drag_modified.insert(coords, tile_map->get_cell(tile_map_layer, coords)); + if (!drag_erasing && E.value.source_id == TileSet::INVALID_SOURCE) { + continue; + } + tile_map->set_cell(tile_map_layer, coords, E.value.source_id, E.value.get_atlas_coords(), E.value.alternative_tile); } - tile_map->set_cell(tile_map_layer, coords, E.value.source_id, E.value.get_atlas_coords(), E.value.alternative_tile); } } } @@ -684,14 +684,14 @@ bool TileMapEditorTilesPlugin::forward_canvas_gui_input(const Ref<InputEvent> &p if (!drag_modified.has(line[i])) { HashMap<Vector2i, TileMapCell> to_draw = _draw_bucket_fill(line[i], bucket_contiguous_checkbox->is_pressed(), drag_erasing); for (const KeyValue<Vector2i, TileMapCell> &E : to_draw) { - if (!drag_erasing && E.value.source_id == TileSet::INVALID_SOURCE) { - continue; - } Vector2i coords = E.key; if (!drag_modified.has(coords)) { drag_modified.insert(coords, tile_map->get_cell(tile_map_layer, coords)); + if (!drag_erasing && E.value.source_id == TileSet::INVALID_SOURCE) { + continue; + } + tile_map->set_cell(tile_map_layer, coords, E.value.source_id, E.value.get_atlas_coords(), E.value.alternative_tile); } - tile_map->set_cell(tile_map_layer, coords, E.value.source_id, E.value.get_atlas_coords(), E.value.alternative_tile); } } } @@ -1277,7 +1277,7 @@ void TileMapEditorTilesPlugin::_stop_dragging() { tile_map->set_cell(tile_map_layer, kv.key, kv.value.source_id, kv.value.get_atlas_coords(), kv.value.alternative_tile); } - if (EditorNode::get_singleton()->is_resource_read_only(tile_set)) { + if (!EditorNode::get_singleton()->is_resource_read_only(tile_set)) { // Creating a pattern in the pattern list. select_last_pattern = true; int new_pattern_index = tile_set->get_patterns_count(); @@ -2055,7 +2055,7 @@ TileMapEditorTilesPlugin::TileMapEditorTilesPlugin() { select_tool_button->set_flat(true); select_tool_button->set_toggle_mode(true); select_tool_button->set_button_group(tool_buttons_group); - select_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/selection_tool", "Selection", Key::S)); + select_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/selection_tool", TTR("Selection"), Key::S)); select_tool_button->connect("pressed", callable_mp(this, &TileMapEditorTilesPlugin::_update_toolbar)); tilemap_tiles_tools_buttons->add_child(select_tool_button); @@ -2063,7 +2063,7 @@ TileMapEditorTilesPlugin::TileMapEditorTilesPlugin() { paint_tool_button->set_flat(true); paint_tool_button->set_toggle_mode(true); paint_tool_button->set_button_group(tool_buttons_group); - paint_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/paint_tool", "Paint", Key::D)); + paint_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/paint_tool", TTR("Paint"), Key::D)); paint_tool_button->set_tooltip_text(TTR("Shift: Draw line.") + "\n" + TTR("Shift+Ctrl: Draw rectangle.")); paint_tool_button->connect("pressed", callable_mp(this, &TileMapEditorTilesPlugin::_update_toolbar)); tilemap_tiles_tools_buttons->add_child(paint_tool_button); @@ -2072,7 +2072,8 @@ TileMapEditorTilesPlugin::TileMapEditorTilesPlugin() { line_tool_button->set_flat(true); line_tool_button->set_toggle_mode(true); line_tool_button->set_button_group(tool_buttons_group); - line_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/line_tool", "Line", Key::L)); + // TRANSLATORS: This refers to the line tool in the tilemap editor. + line_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/line_tool", TTR("Line", "Tool"), Key::L)); line_tool_button->connect("pressed", callable_mp(this, &TileMapEditorTilesPlugin::_update_toolbar)); tilemap_tiles_tools_buttons->add_child(line_tool_button); @@ -2080,7 +2081,7 @@ TileMapEditorTilesPlugin::TileMapEditorTilesPlugin() { rect_tool_button->set_flat(true); rect_tool_button->set_toggle_mode(true); rect_tool_button->set_button_group(tool_buttons_group); - rect_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/rect_tool", "Rect", Key::R)); + rect_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/rect_tool", TTR("Rect"), Key::R)); rect_tool_button->connect("pressed", callable_mp(this, &TileMapEditorTilesPlugin::_update_toolbar)); tilemap_tiles_tools_buttons->add_child(rect_tool_button); @@ -2088,7 +2089,7 @@ TileMapEditorTilesPlugin::TileMapEditorTilesPlugin() { bucket_tool_button->set_flat(true); bucket_tool_button->set_toggle_mode(true); bucket_tool_button->set_button_group(tool_buttons_group); - bucket_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/bucket_tool", "Bucket", Key::B)); + bucket_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/bucket_tool", TTR("Bucket"), Key::B)); bucket_tool_button->connect("pressed", callable_mp(this, &TileMapEditorTilesPlugin::_update_toolbar)); tilemap_tiles_tools_buttons->add_child(bucket_tool_button); toolbar->add_child(tilemap_tiles_tools_buttons); @@ -2104,7 +2105,7 @@ TileMapEditorTilesPlugin::TileMapEditorTilesPlugin() { picker_button = memnew(Button); picker_button->set_flat(true); picker_button->set_toggle_mode(true); - picker_button->set_shortcut(ED_SHORTCUT("tiles_editor/picker", "Picker", Key::P)); + picker_button->set_shortcut(ED_SHORTCUT("tiles_editor/picker", TTR("Picker"), Key::P)); picker_button->set_tooltip_text(TTR("Alternatively hold Ctrl with other tools to pick tile.")); picker_button->connect("pressed", callable_mp(CanvasItemEditor::get_singleton(), &CanvasItemEditor::update_viewport)); tools_settings->add_child(picker_button); @@ -2113,7 +2114,7 @@ TileMapEditorTilesPlugin::TileMapEditorTilesPlugin() { erase_button = memnew(Button); erase_button->set_flat(true); erase_button->set_toggle_mode(true); - erase_button->set_shortcut(ED_SHORTCUT("tiles_editor/eraser", "Eraser", Key::E)); + erase_button->set_shortcut(ED_SHORTCUT("tiles_editor/eraser", TTR("Eraser"), Key::E)); erase_button->set_tooltip_text(TTR("Alternatively use RMB to erase tiles.")); erase_button->connect("pressed", callable_mp(CanvasItemEditor::get_singleton(), &CanvasItemEditor::update_viewport)); tools_settings->add_child(erase_button); @@ -2141,7 +2142,7 @@ TileMapEditorTilesPlugin::TileMapEditorTilesPlugin() { scatter_controls_container = memnew(HBoxContainer); scatter_label = memnew(Label); - scatter_label->set_tooltip_text(TTR("Defines the probability of painting nothing instead of a randomly selected tile.")); + scatter_label->set_tooltip_text(TTR("Modifies the chance of painting nothing instead of a randomly selected tile.")); scatter_label->set_text(TTR("Scattering:")); scatter_controls_container->add_child(scatter_label); @@ -2149,7 +2150,7 @@ TileMapEditorTilesPlugin::TileMapEditorTilesPlugin() { scatter_spinbox->set_min(0.0); scatter_spinbox->set_max(1000); scatter_spinbox->set_step(0.001); - scatter_spinbox->set_tooltip_text(TTR("Defines the probability of painting nothing instead of a randomly selected tile.")); + scatter_spinbox->set_tooltip_text(TTR("Modifies the chance of painting nothing instead of a randomly selected tile.")); scatter_spinbox->get_line_edit()->add_theme_constant_override("minimum_character_width", 4); scatter_spinbox->connect("value_changed", callable_mp(this, &TileMapEditorTilesPlugin::_on_scattering_spinbox_changed)); scatter_controls_container->add_child(scatter_spinbox); @@ -3180,7 +3181,7 @@ void TileMapEditorTerrainsPlugin::_update_terrains_tree() { terrain_set_tree_item->set_icon(0, main_vbox_container->get_theme_icon(SNAME("TerrainMatchSides"), SNAME("EditorIcons"))); matches = String(TTR("Matches Sides Only")); } - terrain_set_tree_item->set_text(0, vformat("Terrain Set %d (%s)", terrain_set_index, matches)); + terrain_set_tree_item->set_text(0, vformat(TTR("Terrain Set %d (%s)"), terrain_set_index, matches)); terrain_set_tree_item->set_selectable(0, false); for (int terrain_index = 0; terrain_index < tile_set->get_terrains_count(terrain_set_index); terrain_index++) { @@ -3329,7 +3330,7 @@ TileMapEditorTerrainsPlugin::TileMapEditorTerrainsPlugin() { main_vbox_container = memnew(VBoxContainer); main_vbox_container->connect("tree_entered", callable_mp(this, &TileMapEditorTerrainsPlugin::_update_theme)); main_vbox_container->connect("theme_changed", callable_mp(this, &TileMapEditorTerrainsPlugin::_update_theme)); - main_vbox_container->set_name("Terrains"); + main_vbox_container->set_name(TTR("Terrains")); HSplitContainer *tilemap_tab_terrains = memnew(HSplitContainer); tilemap_tab_terrains->set_h_size_flags(Control::SIZE_EXPAND_FILL); @@ -3365,7 +3366,7 @@ TileMapEditorTerrainsPlugin::TileMapEditorTerrainsPlugin() { paint_tool_button->set_toggle_mode(true); paint_tool_button->set_button_group(tool_buttons_group); paint_tool_button->set_pressed(true); - paint_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/paint_tool", "Paint", Key::D)); + paint_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/paint_tool", TTR("Paint"), Key::D)); paint_tool_button->connect("pressed", callable_mp(this, &TileMapEditorTerrainsPlugin::_update_toolbar)); tilemap_tiles_tools_buttons->add_child(paint_tool_button); @@ -3373,7 +3374,7 @@ TileMapEditorTerrainsPlugin::TileMapEditorTerrainsPlugin() { line_tool_button->set_flat(true); line_tool_button->set_toggle_mode(true); line_tool_button->set_button_group(tool_buttons_group); - line_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/line_tool", "Line", Key::L)); + line_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/line_tool", TTR("Line"), Key::L)); line_tool_button->connect("pressed", callable_mp(this, &TileMapEditorTerrainsPlugin::_update_toolbar)); tilemap_tiles_tools_buttons->add_child(line_tool_button); @@ -3381,7 +3382,7 @@ TileMapEditorTerrainsPlugin::TileMapEditorTerrainsPlugin() { rect_tool_button->set_flat(true); rect_tool_button->set_toggle_mode(true); rect_tool_button->set_button_group(tool_buttons_group); - rect_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/rect_tool", "Rect", Key::R)); + rect_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/rect_tool", TTR("Rect"), Key::R)); rect_tool_button->connect("pressed", callable_mp(this, &TileMapEditorTerrainsPlugin::_update_toolbar)); tilemap_tiles_tools_buttons->add_child(rect_tool_button); @@ -3389,7 +3390,7 @@ TileMapEditorTerrainsPlugin::TileMapEditorTerrainsPlugin() { bucket_tool_button->set_flat(true); bucket_tool_button->set_toggle_mode(true); bucket_tool_button->set_button_group(tool_buttons_group); - bucket_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/bucket_tool", "Bucket", Key::B)); + bucket_tool_button->set_shortcut(ED_SHORTCUT("tiles_editor/bucket_tool", TTR("Bucket"), Key::B)); bucket_tool_button->connect("pressed", callable_mp(this, &TileMapEditorTerrainsPlugin::_update_toolbar)); tilemap_tiles_tools_buttons->add_child(bucket_tool_button); @@ -3406,7 +3407,7 @@ TileMapEditorTerrainsPlugin::TileMapEditorTerrainsPlugin() { picker_button = memnew(Button); picker_button->set_flat(true); picker_button->set_toggle_mode(true); - picker_button->set_shortcut(ED_SHORTCUT("tiles_editor/picker", "Picker", Key::P)); + picker_button->set_shortcut(ED_SHORTCUT("tiles_editor/picker", TTR("Picker"), Key::P)); picker_button->connect("pressed", callable_mp(CanvasItemEditor::get_singleton(), &CanvasItemEditor::update_viewport)); tools_settings->add_child(picker_button); @@ -3414,7 +3415,7 @@ TileMapEditorTerrainsPlugin::TileMapEditorTerrainsPlugin() { erase_button = memnew(Button); erase_button->set_flat(true); erase_button->set_toggle_mode(true); - erase_button->set_shortcut(ED_SHORTCUT("tiles_editor/eraser", "Eraser", Key::E)); + erase_button->set_shortcut(ED_SHORTCUT("tiles_editor/eraser", TTR("Eraser"), Key::E)); erase_button->connect("pressed", callable_mp(CanvasItemEditor::get_singleton(), &CanvasItemEditor::update_viewport)); tools_settings->add_child(erase_button); diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp index 912fdb03a9..fcefbb7d06 100644 --- a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp +++ b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp @@ -34,6 +34,7 @@ #include "editor/editor_inspector.h" #include "editor/editor_node.h" +#include "editor/editor_property_name_processor.h" #include "editor/editor_scale.h" #include "editor/editor_settings.h" #include "editor/editor_undo_redo_manager.h" @@ -106,13 +107,13 @@ bool TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::_get(const StringN void TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::_get_property_list(List<PropertyInfo> *p_list) const { p_list->push_back(PropertyInfo(Variant::NIL, TTR("Atlas"), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_CATEGORY)); - p_list->push_back(PropertyInfo(Variant::INT, "id", PROPERTY_HINT_RANGE, "0," + itos(INT_MAX) + ",1")); - p_list->push_back(PropertyInfo(Variant::STRING, "name", PROPERTY_HINT_NONE, "")); - p_list->push_back(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D")); - p_list->push_back(PropertyInfo(Variant::VECTOR2I, "margins", PROPERTY_HINT_NONE, "suffix:px")); - p_list->push_back(PropertyInfo(Variant::VECTOR2I, "separation", PROPERTY_HINT_NONE)); - p_list->push_back(PropertyInfo(Variant::VECTOR2I, "texture_region_size", PROPERTY_HINT_NONE, "suffix:px")); - p_list->push_back(PropertyInfo(Variant::BOOL, "use_texture_padding", PROPERTY_HINT_NONE, "")); + p_list->push_back(PropertyInfo(Variant::INT, PNAME("id"), PROPERTY_HINT_RANGE, "0," + itos(INT_MAX) + ",1")); + p_list->push_back(PropertyInfo(Variant::STRING, PNAME("name"))); + p_list->push_back(PropertyInfo(Variant::OBJECT, PNAME("texture"), PROPERTY_HINT_RESOURCE_TYPE, "Texture2D")); + p_list->push_back(PropertyInfo(Variant::VECTOR2I, PNAME("margins"), PROPERTY_HINT_NONE, "suffix:px")); + p_list->push_back(PropertyInfo(Variant::VECTOR2I, PNAME("separation"))); + p_list->push_back(PropertyInfo(Variant::VECTOR2I, PNAME("texture_region_size"), PROPERTY_HINT_NONE, "suffix:px")); + p_list->push_back(PropertyInfo(Variant::BOOL, PNAME("use_texture_padding"))); } void TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::_bind_methods() { @@ -120,10 +121,9 @@ void TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::_bind_methods() { } void TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::edit(Ref<TileSet> p_tile_set, TileSetAtlasSource *p_tile_set_atlas_source, int p_source_id) { - ERR_FAIL_COND(!p_tile_set.is_valid()); ERR_FAIL_COND(!p_tile_set_atlas_source); ERR_FAIL_COND(p_source_id < 0); - ERR_FAIL_COND(p_tile_set->get_source(p_source_id) != p_tile_set_atlas_source); + ERR_FAIL_COND(p_tile_set.is_valid() && p_tile_set->get_source(p_source_id) != p_tile_set_atlas_source); if (p_tile_set == tile_set && p_tile_set_atlas_source == tile_set_atlas_source && p_source_id == source_id) { return; @@ -393,11 +393,11 @@ void TileSetAtlasSourceEditor::AtlasTileProxyObject::_get_property_list(List<Pro if (tiles.size() == 1) { if (tiles.front()->get().alternative == 0) { p_list->push_back(PropertyInfo(Variant::NIL, TTR("Base Tile"), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_CATEGORY)); - p_list->push_back(PropertyInfo(Variant::VECTOR2I, "atlas_coords")); - p_list->push_back(PropertyInfo(Variant::VECTOR2I, "size_in_atlas")); + p_list->push_back(PropertyInfo(Variant::VECTOR2I, PNAME("atlas_coords"))); + p_list->push_back(PropertyInfo(Variant::VECTOR2I, PNAME("size_in_atlas"))); } else { p_list->push_back(PropertyInfo(Variant::NIL, TTR("Alternative Tile"), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_CATEGORY)); - p_list->push_back(PropertyInfo(Variant::INT, "alternative_id")); + p_list->push_back(PropertyInfo(Variant::INT, PNAME("alternative_id"))); } } else { p_list->push_back(PropertyInfo(Variant::NIL, TTR("Tiles"), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_CATEGORY)); @@ -414,17 +414,17 @@ void TileSetAtlasSourceEditor::AtlasTileProxyObject::_get_property_list(List<Pro } if (all_alternatve_id_zero) { - p_list->push_back(PropertyInfo(Variant::NIL, "Animation", PROPERTY_HINT_NONE, "animation_", PROPERTY_USAGE_GROUP)); - p_list->push_back(PropertyInfo(Variant::INT, "animation_columns", PROPERTY_HINT_NONE, "")); - p_list->push_back(PropertyInfo(Variant::VECTOR2I, "animation_separation", PROPERTY_HINT_NONE, "")); - p_list->push_back(PropertyInfo(Variant::FLOAT, "animation_speed", PROPERTY_HINT_NONE, "")); - p_list->push_back(PropertyInfo(Variant::INT, "animation_frames_count", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_ARRAY, "Frames,animation_frame_")); + p_list->push_back(PropertyInfo(Variant::NIL, GNAME("Animation", "animation_"), PROPERTY_HINT_NONE, "animation_", PROPERTY_USAGE_GROUP)); + p_list->push_back(PropertyInfo(Variant::INT, PNAME("animation_columns"))); + p_list->push_back(PropertyInfo(Variant::VECTOR2I, PNAME("animation_separation"))); + p_list->push_back(PropertyInfo(Variant::FLOAT, PNAME("animation_speed"))); + p_list->push_back(PropertyInfo(Variant::INT, PNAME("animation_frames_count"), PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_ARRAY, "Frames,animation_frame_")); // Not optimal, but returns value for the first tile. This is similar to what MultiNodeEdit does. if (tile_set_atlas_source->get_tile_animation_frames_count(tiles.front()->get().tile) == 1) { p_list->push_back(PropertyInfo(Variant::FLOAT, "animation_frame_0/duration", PROPERTY_HINT_NONE, "suffix:s", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_READ_ONLY)); } else { for (int i = 0; i < tile_set_atlas_source->get_tile_animation_frames_count(tiles.front()->get().tile); i++) { - p_list->push_back(PropertyInfo(Variant::FLOAT, vformat("animation_frame_%d/duration", i), PROPERTY_HINT_NONE, "suffix:s")); + p_list->push_back(PropertyInfo(Variant::FLOAT, vformat("animation_frame_%d/%s", i, PNAME("duration")), PROPERTY_HINT_NONE, "suffix:s")); } } } @@ -611,6 +611,10 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() { tile_data_editors_tree->clear(); + if (tile_set.is_null()) { + return; + } + TreeItem *root = tile_data_editors_tree->create_item(); TreeItem *group; @@ -638,9 +642,9 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() { // List of editors. // --- Rendering --- - ADD_TILE_DATA_EDITOR_GROUP("Rendering"); + ADD_TILE_DATA_EDITOR_GROUP(TTR("Rendering")); - ADD_TILE_DATA_EDITOR(group, "Texture Origin", "texture_origin"); + ADD_TILE_DATA_EDITOR(group, TTR("Texture Origin"), "texture_origin"); if (!tile_data_editors.has("texture_origin")) { TileDataTextureOriginEditor *tile_data_texture_origin_editor = memnew(TileDataTextureOriginEditor); tile_data_texture_origin_editor->hide(); @@ -650,7 +654,7 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() { tile_data_editors["texture_origin"] = tile_data_texture_origin_editor; } - ADD_TILE_DATA_EDITOR(group, "Modulate", "modulate"); + ADD_TILE_DATA_EDITOR(group, TTR("Modulate"), "modulate"); if (!tile_data_editors.has("modulate")) { TileDataDefaultEditor *tile_data_modulate_editor = memnew(TileDataDefaultEditor()); tile_data_modulate_editor->hide(); @@ -660,7 +664,7 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() { tile_data_editors["modulate"] = tile_data_modulate_editor; } - ADD_TILE_DATA_EDITOR(group, "Z Index", "z_index"); + ADD_TILE_DATA_EDITOR(group, TTR("Z Index"), "z_index"); if (!tile_data_editors.has("z_index")) { TileDataDefaultEditor *tile_data_z_index_editor = memnew(TileDataDefaultEditor()); tile_data_z_index_editor->hide(); @@ -670,7 +674,7 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() { tile_data_editors["z_index"] = tile_data_z_index_editor; } - ADD_TILE_DATA_EDITOR(group, "Y Sort Origin", "y_sort_origin"); + ADD_TILE_DATA_EDITOR(group, TTR("Y Sort Origin"), "y_sort_origin"); if (!tile_data_editors.has("y_sort_origin")) { TileDataYSortEditor *tile_data_y_sort_editor = memnew(TileDataYSortEditor); tile_data_y_sort_editor->hide(); @@ -681,7 +685,7 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() { } for (int i = 0; i < tile_set->get_occlusion_layers_count(); i++) { - ADD_TILE_DATA_EDITOR(group, vformat("Occlusion Layer %d", i), vformat("occlusion_layer_%d", i)); + ADD_TILE_DATA_EDITOR(group, vformat(TTR("Occlusion Layer %d"), i), vformat("occlusion_layer_%d", i)); if (!tile_data_editors.has(vformat("occlusion_layer_%d", i))) { TileDataOcclusionShapeEditor *tile_data_occlusion_shape_editor = memnew(TileDataOcclusionShapeEditor()); tile_data_occlusion_shape_editor->hide(); @@ -697,7 +701,7 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() { } // --- Rendering --- - ADD_TILE_DATA_EDITOR(root, "Terrains", "terrain_set"); + ADD_TILE_DATA_EDITOR(root, TTR("Terrains"), "terrain_set"); if (!tile_data_editors.has("terrain_set")) { TileDataTerrainsEditor *tile_data_terrains_editor = memnew(TileDataTerrainsEditor); tile_data_terrains_editor->hide(); @@ -707,7 +711,7 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() { } // --- Miscellaneous --- - ADD_TILE_DATA_EDITOR(root, "Probability", "probability"); + ADD_TILE_DATA_EDITOR(root, TTR("Probability"), "probability"); if (!tile_data_editors.has("probability")) { TileDataDefaultEditor *tile_data_probability_editor = memnew(TileDataDefaultEditor()); tile_data_probability_editor->hide(); @@ -718,9 +722,9 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() { } // --- Physics --- - ADD_TILE_DATA_EDITOR_GROUP("Physics"); + ADD_TILE_DATA_EDITOR_GROUP(TTR("Physics")); for (int i = 0; i < tile_set->get_physics_layers_count(); i++) { - ADD_TILE_DATA_EDITOR(group, vformat("Physics Layer %d", i), vformat("physics_layer_%d", i)); + ADD_TILE_DATA_EDITOR(group, vformat(TTR("Physics Layer %d"), i), vformat("physics_layer_%d", i)); if (!tile_data_editors.has(vformat("physics_layer_%d", i))) { TileDataCollisionEditor *tile_data_collision_editor = memnew(TileDataCollisionEditor()); tile_data_collision_editor->hide(); @@ -736,9 +740,9 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() { } // --- Navigation --- - ADD_TILE_DATA_EDITOR_GROUP("Navigation"); + ADD_TILE_DATA_EDITOR_GROUP(TTR("Navigation")); for (int i = 0; i < tile_set->get_navigation_layers_count(); i++) { - ADD_TILE_DATA_EDITOR(group, vformat("Navigation Layer %d", i), vformat("navigation_layer_%d", i)); + ADD_TILE_DATA_EDITOR(group, vformat(TTR("Navigation Layer %d"), i), vformat("navigation_layer_%d", i)); if (!tile_data_editors.has(vformat("navigation_layer_%d", i))) { TileDataNavigationEditor *tile_data_navigation_editor = memnew(TileDataNavigationEditor()); tile_data_navigation_editor->hide(); @@ -754,14 +758,14 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() { } // --- Custom Data --- - ADD_TILE_DATA_EDITOR_GROUP("Custom Data"); + ADD_TILE_DATA_EDITOR_GROUP(TTR("Custom Data")); for (int i = 0; i < tile_set->get_custom_data_layers_count(); i++) { String editor_name = vformat("custom_data_%d", i); String prop_name = tile_set->get_custom_data_layer_name(i); Variant::Type prop_type = tile_set->get_custom_data_layer_type(i); if (prop_name.is_empty()) { - ADD_TILE_DATA_EDITOR(group, vformat("Custom Data %d", i), editor_name); + ADD_TILE_DATA_EDITOR(group, vformat(TTR("Custom Data %d"), i), editor_name); } else { ADD_TILE_DATA_EDITOR(group, prop_name, editor_name); } @@ -919,6 +923,10 @@ void TileSetAtlasSourceEditor::_update_atlas_view() { alternative_tiles_control->get_child(i)->queue_free(); } + if (tile_set.is_null()) { + return; + } + Vector2i pos; Vector2 texture_region_base_size = tile_set_atlas_source->get_texture_region_size(); int texture_region_base_size_min = MIN(texture_region_base_size.x, texture_region_base_size.y); @@ -2407,6 +2415,14 @@ void TileSetAtlasSourceEditor::_notification(int p_what) { } } } break; + + case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { + if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/localize_settings")) { + EditorPropertyNameProcessor::Style style = EditorPropertyNameProcessor::get_singleton()->get_settings_style(); + atlas_source_inspector->set_property_name_style(style); + tile_inspector->set_property_name_style(style); + } + } break; } } @@ -2476,6 +2492,7 @@ TileSetAtlasSourceEditor::TileSetAtlasSourceEditor() { tile_inspector->edit(tile_proxy_object); tile_inspector->set_use_folding(true); tile_inspector->connect("property_selected", callable_mp(this, &TileSetAtlasSourceEditor::_inspector_property_selected)); + tile_inspector->set_property_name_style(EditorPropertyNameProcessor::get_singleton()->get_settings_style()); middle_vbox_container->add_child(tile_inspector); tile_inspector_no_tile_selected_label = memnew(Label); @@ -2527,6 +2544,7 @@ TileSetAtlasSourceEditor::TileSetAtlasSourceEditor() { atlas_source_inspector->set_v_size_flags(SIZE_EXPAND_FILL); atlas_source_inspector->set_show_categories(true); atlas_source_inspector->edit(atlas_source_proxy_object); + atlas_source_inspector->set_property_name_style(EditorPropertyNameProcessor::get_singleton()->get_settings_style()); middle_vbox_container->add_child(atlas_source_inspector); // -- Right side -- diff --git a/editor/plugins/tiles/tile_set_editor.cpp b/editor/plugins/tiles/tile_set_editor.cpp index 39d17c718e..358cc47977 100644 --- a/editor/plugins/tiles/tile_set_editor.cpp +++ b/editor/plugins/tiles/tile_set_editor.cpp @@ -687,7 +687,7 @@ void TileSetEditor::_undo_redo_inspector_callback(Object *p_undo_redo, Object *p void TileSetEditor::edit(Ref<TileSet> p_tile_set) { bool new_read_only_state = false; - if (tile_set.is_valid()) { + if (p_tile_set.is_valid()) { new_read_only_state = EditorNode::get_singleton()->is_resource_read_only(p_tile_set); } diff --git a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp index cc276597fa..101ec5f66c 100644 --- a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp +++ b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp @@ -32,6 +32,7 @@ #include "editor/editor_file_system.h" #include "editor/editor_node.h" +#include "editor/editor_property_name_processor.h" #include "editor/editor_resource_preview.h" #include "editor/editor_scale.h" #include "editor/editor_settings.h" @@ -362,6 +363,14 @@ void TileSetScenesCollectionSourceEditor::_notification(int p_what) { _update_scenes_list(); _update_action_buttons(); } break; + + case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { + if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/localize_settings")) { + EditorPropertyNameProcessor::Style style = EditorPropertyNameProcessor::get_singleton()->get_settings_style(); + scenes_collection_source_inspector->set_property_name_style(style); + tile_inspector->set_property_name_style(style); + } + } break; } } @@ -503,6 +512,7 @@ TileSetScenesCollectionSourceEditor::TileSetScenesCollectionSourceEditor() { scenes_collection_source_inspector = memnew(EditorInspector); scenes_collection_source_inspector->set_vertical_scroll_mode(ScrollContainer::SCROLL_MODE_DISABLED); scenes_collection_source_inspector->edit(scenes_collection_source_proxy_object); + scenes_collection_source_inspector->set_property_name_style(EditorPropertyNameProcessor::get_singleton()->get_settings_style()); middle_vbox_container->add_child(scenes_collection_source_inspector); // Tile inspector. @@ -519,6 +529,7 @@ TileSetScenesCollectionSourceEditor::TileSetScenesCollectionSourceEditor() { tile_inspector->set_vertical_scroll_mode(ScrollContainer::SCROLL_MODE_DISABLED); tile_inspector->edit(tile_proxy_object); tile_inspector->set_use_folding(true); + tile_inspector->set_property_name_style(EditorPropertyNameProcessor::get_singleton()->get_settings_style()); middle_vbox_container->add_child(tile_inspector); // Scenes list. diff --git a/editor/plugins/tiles/tiles_editor_plugin.cpp b/editor/plugins/tiles/tiles_editor_plugin.cpp index fad36660d9..78522dfa73 100644 --- a/editor/plugins/tiles/tiles_editor_plugin.cpp +++ b/editor/plugins/tiles/tiles_editor_plugin.cpp @@ -117,7 +117,7 @@ void TilesEditorPlugin::_thread() { tile_map->set_position(-(scale * encompassing_rect.get_center()) + thumbnail_size2 / 2); // Add the viewport at the last moment to avoid rendering too early. - EditorNode::get_singleton()->add_child(viewport); + EditorNode::get_singleton()->call_deferred("add_child", viewport); RS::get_singleton()->connect(SNAME("frame_pre_draw"), callable_mp(const_cast<TilesEditorPlugin *>(this), &TilesEditorPlugin::_preview_frame_started), Object::CONNECT_ONE_SHOT); diff --git a/editor/project_converter_3_to_4.cpp b/editor/project_converter_3_to_4.cpp index 706466a974..d1f3c3902a 100644 --- a/editor/project_converter_3_to_4.cpp +++ b/editor/project_converter_3_to_4.cpp @@ -32,1781 +32,19 @@ #ifndef DISABLE_DEPRECATED -const int ERROR_CODE = 77; - #include "modules/modules_enabled.gen.h" // For regex. #ifdef MODULE_REGEX_ENABLED -#include "modules/regex/regex.h" - +#include "core/error/error_macros.h" #include "core/io/dir_access.h" +#include "core/io/file_access.h" +#include "core/object/ref_counted.h" #include "core/os/time.h" #include "core/templates/hash_map.h" #include "core/templates/list.h" -#include "core/templates/local_vector.h" - -const char *ProjectConverter3To4::enum_renames[][2] = { - //// constants - { "TYPE_COLOR_ARRAY", "TYPE_PACKED_COLOR_ARRAY" }, - { "TYPE_FLOAT64_ARRAY", "TYPE_PACKED_FLOAT64_ARRAY" }, - { "TYPE_INT64_ARRAY", "TYPE_PACKED_INT64_ARRAY" }, - { "TYPE_INT_ARRAY", "TYPE_PACKED_INT32_ARRAY" }, - { "TYPE_QUAT", "TYPE_QUATERNION" }, - { "TYPE_RAW_ARRAY", "TYPE_PACKED_BYTE_ARRAY" }, - { "TYPE_REAL", "TYPE_FLOAT" }, - { "TYPE_REAL_ARRAY", "TYPE_PACKED_FLOAT32_ARRAY" }, - { "TYPE_STRING_ARRAY", "TYPE_PACKED_STRING_ARRAY" }, - { "TYPE_TRANSFORM", "TYPE_TRANSFORM3D" }, - { "TYPE_VECTOR2_ARRAY", "TYPE_PACKED_VECTOR2_ARRAY" }, - { "TYPE_VECTOR3_ARRAY", "TYPE_PACKED_VECTOR3_ARRAY" }, - - // {"FLAG_MAX", "PARTICLE_FLAG_MAX"}, // CPUParticles2D - used in more classes - { "ALIGN_BEGIN", "ALIGNMENT_BEGIN" }, //AspectRatioContainer - { "ALIGN_CENTER", "ALIGNMENT_CENTER" }, //AspectRatioContainer - { "ALIGN_END", "ALIGNMENT_END" }, //AspectRatioContainer - { "ARRAY_COMPRESS_BASE", "ARRAY_COMPRESS_FLAGS_BASE" }, // Mesh - { "ARVR_AR", "XR_AR" }, // XRInterface - { "ARVR_EXCESSIVE_MOTION", "XR_EXCESSIVE_MOTION" }, // XRInterface - { "ARVR_EXTERNAL", "XR_EXTERNAL" }, // XRInterface - { "ARVR_INSUFFICIENT_FEATURES", "XR_INSUFFICIENT_FEATURES" }, // XRInterface - { "ARVR_MONO", "XR_MONO" }, // XRInterface - { "ARVR_NONE", "XR_NONE" }, // XRInterface - { "ARVR_NORMAL_TRACKING", "XR_NORMAL_TRACKING" }, // XRInterface - { "ARVR_NOT_TRACKING", "XR_NOT_TRACKING" }, // XRInterface - { "ARVR_STEREO", "XR_STEREO" }, // XRInterface - { "ARVR_UNKNOWN_TRACKING", "XR_UNKNOWN_TRACKING" }, // XRInterface - { "BAKE_ERROR_INVALID_MESH", "BAKE_ERROR_MESHES_INVALID" }, // LightmapGI - { "BODY_MODE_CHARACTER", "BODY_MODE_RIGID_LINEAR" }, // PhysicsServer - { "BUTTON_LEFT", "MOUSE_BUTTON_LEFT" }, // Globals - { "BUTTON_MASK_LEFT", "MOUSE_BUTTON_MASK_LEFT" }, // Globals - { "BUTTON_MASK_MIDDLE", "MOUSE_BUTTON_MASK_MIDDLE" }, // Globals - { "BUTTON_MASK_RIGHT", "MOUSE_BUTTON_MASK_RIGHT" }, // Globals - { "BUTTON_MASK_XBUTTON1", "MOUSE_BUTTON_MASK_XBUTTON1" }, // Globals - { "BUTTON_MASK_XBUTTON2", "MOUSE_BUTTON_MASK_XBUTTON2" }, // Globals - { "BUTTON_MIDDLE", "MOUSE_BUTTON_MIDDLE" }, // Globals - { "BUTTON_RIGHT", "MOUSE_BUTTON_RIGHT" }, // Globals - { "BUTTON_WHEEL_DOWN", "MOUSE_BUTTON_WHEEL_DOWN" }, // Globals - { "BUTTON_WHEEL_LEFT", "MOUSE_BUTTON_WHEEL_LEFT" }, // Globals - { "BUTTON_WHEEL_RIGHT", "MOUSE_BUTTON_WHEEL_RIGHT" }, // Globals - { "BUTTON_WHEEL_UP", "MOUSE_BUTTON_WHEEL_UP" }, // Globals - { "BUTTON_XBUTTON1", "MOUSE_BUTTON_XBUTTON1" }, // Globals - { "BUTTON_XBUTTON2", "MOUSE_BUTTON_XBUTTON2" }, // Globals - { "CLEAR_MODE_ONLY_NEXT_FRAME", "CLEAR_MODE_ONCE" }, // SubViewport - { "COMPRESS_PVRTC4", "COMPRESS_PVRTC1_4" }, // Image - { "CONNECT_ONESHOT", "CONNECT_ONE_SHOT" }, // Object - { "CONTAINER_PROPERTY_EDITOR_BOTTOM", "CONTAINER_INSPECTOR_BOTTOM" }, // EditorPlugin - { "CUBEMAP_BACK", "CUBEMAP_LAYER_BACK" }, // RenderingServer - { "CUBEMAP_BOTTOM", "CUBEMAP_LAYER_BOTTOM" }, // RenderingServer - { "CUBEMAP_FRONT", "CUBEMAP_LAYER_FRONT" }, // RenderingServer - { "CUBEMAP_LEFT", "CUBEMAP_LAYER_LEFT" }, // RenderingServer - { "CUBEMAP_RIGHT", "CUBEMAP_LAYER_RIGHT" }, // RenderingServer - { "CUBEMAP_TOP", "CUBEMAP_LAYER_TOP" }, // RenderingServer - { "DAMPED_STRING_DAMPING", "DAMPED_SPRING_DAMPING" }, // PhysicsServer2D - { "DAMPED_STRING_REST_LENGTH", "DAMPED_SPRING_REST_LENGTH" }, // PhysicsServer2D - { "DAMPED_STRING_STIFFNESS", "DAMPED_SPRING_STIFFNESS" }, // PhysicsServer2D - { "FLAG_ALIGN_Y_TO_VELOCITY", "PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY" }, // CPUParticles2D - { "FLAG_DISABLE_Z", "PARTICLE_FLAG_DISABLE_Z" }, // CPUParticles2D - { "FLAG_ROTATE_Y", "PARTICLE_FLAG_ROTATE_Y" }, // CPUParticles2D - { "FLAG_USE_BAKED_LIGHT", "GI_MODE_BAKED" }, // GeometryInstance3D - { "FORMAT_PVRTC2", "FORMAT_PVRTC1_2" }, // Image - { "FORMAT_PVRTC2A", "FORMAT_PVRTC1_2A" }, // Image - { "FORMAT_PVRTC4", "FORMAT_PVRTC1_4" }, // Image - { "FORMAT_PVRTC4A", "FORMAT_PVRTC1_4A" }, // Image - { "FUNC_FRAC", "FUNC_FRACT" }, // VisualShaderNodeVectorFunc - { "INSTANCE_LIGHTMAP_CAPTURE", "INSTANCE_LIGHTMAP" }, // RenderingServer - { "JOINT_6DOF", "JOINT_TYPE_6DOF" }, // PhysicsServer3D - { "JOINT_CONE_TWIST", "JOINT_TYPE_CONE_TWIST" }, // PhysicsServer3D - { "JOINT_DAMPED_SPRING", "JOINT_TYPE_DAMPED_SPRING" }, // PhysicsServer2D - { "JOINT_GROOVE", "JOINT_TYPE_GROOVE" }, // PhysicsServer2D - { "JOINT_HINGE", "JOINT_TYPE_HINGE" }, // PhysicsServer3D - { "JOINT_PIN", "JOINT_TYPE_PIN" }, // PhysicsServer2D - { "JOINT_SLIDER", "JOINT_TYPE_SLIDER" }, // PhysicsServer3D - { "KEY_CONTROL", "KEY_CTRL" }, // Globals - { "LOOP_PING_PONG", "LOOP_PINGPONG" }, // AudioStreamWAV - { "MODE_KINEMATIC", "FREEZE_MODE_KINEMATIC" }, // RigidBody - { "MODE_OPEN_ANY", "FILE_MODE_OPEN_ANY" }, // FileDialog - { "MODE_OPEN_DIR", "FILE_MODE_OPEN_DIR" }, // FileDialog - { "MODE_OPEN_FILE", "FILE_MODE_OPEN_FILE" }, // FileDialog - { "MODE_OPEN_FILES", "FILE_MODE_OPEN_FILES" }, // FileDialog - { "MODE_SAVE_FILE", "FILE_MODE_SAVE_FILE" }, // FileDialog - { "MODE_STATIC", "FREEZE_MODE_STATIC" }, // RigidBody - { "NOTIFICATION_APP_PAUSED", "NOTIFICATION_APPLICATION_PAUSED" }, // MainLoop - { "NOTIFICATION_APP_RESUMED", "NOTIFICATION_APPLICATION_RESUMED" }, // MainLoop - { "NOTIFICATION_INSTANCED", "NOTIFICATION_SCENE_INSTANTIATED" }, // Node - { "NOTIFICATION_PATH_CHANGED", "NOTIFICATION_PATH_RENAMED" }, //Node - { "NOTIFICATION_WM_FOCUS_IN", "NOTIFICATION_APPLICATION_FOCUS_IN" }, // MainLoop - { "NOTIFICATION_WM_FOCUS_OUT", "NOTIFICATION_APPLICATION_FOCUS_OUT" }, // MainLoop - { "NOTIFICATION_WM_UNFOCUS_REQUEST", "NOTIFICATION_WM_WINDOW_FOCUS_OUT" }, //Node - { "PAUSE_MODE_INHERIT", "PROCESS_MODE_INHERIT" }, // Node - { "PAUSE_MODE_PROCESS", "PROCESS_MODE_ALWAYS" }, // Node - { "PAUSE_MODE_STOP", "PROCESS_MODE_PAUSABLE" }, // Node - { "RENDER_DRAW_CALLS_IN_FRAME", "RENDER_TOTAL_DRAW_CALLS_IN_FRAME" }, // Performance - { "RENDER_OBJECTS_IN_FRAME", "RENDER_TOTAL_OBJECTS_IN_FRAME" }, // Performance - { "SIDE_BOTTOM", "MARGIN_BOTTOM" }, // Globals - { "SIDE_LEFT", "MARGIN_LEFT" }, // Globals - { "SIDE_RIGHT", "MARGIN_RIGHT" }, // Globals - { "SIDE_TOP", "MARGIN_TOP" }, // Globals - { "TEXTURE_TYPE_2D_ARRAY", "TEXTURE_LAYERED_2D_ARRAY" }, // RenderingServer - { "TEXTURE_TYPE_CUBEMAP", "TEXTURE_LAYERED_CUBEMAP_ARRAY" }, // RenderingServer - { "TRACKER_LEFT_HAND", "TRACKER_HAND_LEFT" }, // XRPositionalTracker - { "TRACKER_RIGHT_HAND", "TRACKER_HAND_RIGHT" }, // XRPositionalTracker - { "TYPE_NORMALMAP", "TYPE_NORMAL_MAP" }, // VisualShaderNodeCubemap - - /// enums - { "AlignMode", "AlignmentMode" }, //AspectRatioContainer - { "AnimationProcessMode", "AnimationProcessCallback" }, // AnimationTree, AnimationPlayer - { "Camera2DProcessMode", "Camera2DProcessCallback" }, // Camera2D - { "CubeMapSide", "CubeMapLayer" }, // RenderingServer - { "DampedStringParam", "DampedSpringParam" }, // PhysicsServer2D - { "FFT_Size", "FFTSize" }, // AudioEffectPitchShift,AudioEffectSpectrumAnalyzer - { "PauseMode", "ProcessMode" }, // Node - { "TimerProcessMode", "TimerProcessCallback" }, // Timer - { "Tracking_status", "TrackingStatus" }, // XRInterface - { nullptr, nullptr }, -}; - -const char *ProjectConverter3To4::gdscript_function_renames[][2] = { - // { "_set_name", "get_tracker_name"}, // XRPositionalTracker - CameraFeed use this - // { "_unhandled_input", "_unhandled_key_input"}, // BaseButton, ViewportContainer broke Node, FileDialog,SubViewportContainer - // { "create_gizmo", "_create_gizmo"}, // EditorNode3DGizmoPlugin - may be used - // { "get_dependencies", "_get_dependencies" }, // ResourceFormatLoader broke ResourceLoader - // { "get_extents", "get_size" }, // BoxShape, RectangleShape broke Decal, VoxelGI, GPUParticlesCollisionBox, GPUParticlesCollisionSDF, GPUParticlesCollisionHeightField, GPUParticlesAttractorBox, GPUParticlesAttractorVectorField, FogVolume - // { "get_h_offset", "get_drag_horizontal_offset"}, // Camera2D, broke PathFollow, Camera - // { "get_mode", "get_file_mode"}, // FileDialog broke Panel, Shader, CSGPolygon, Tilemap - // { "get_motion", "get_travel"}, // PhysicsTestMotionResult2D broke ParalaxLayer - // { "get_name", "get_tracker_name"}, // XRPositionalTracker broke OS, Node - // { "get_network_connected_peers", "get_peers"}, // MultiplayerAPI broke SceneTree - // { "get_network_peer", "has_multiplayer_peer"}, // MultiplayerAPI broke SceneTree - // { "get_network_unique_id", "get_unique_id"}, // MultiplayerAPI broke SceneTree - // { "get_offset", "get_position_offset" }, // GraphNode broke Gradient - // { "get_peer_port", "get_peer" }, // ENetMultiplayerPeer broke WebSocketServer - // { "get_process_mode", "get_process_callback" }, // ClippedCamera3D broke Node, Sky - // { "get_render_info", "get_rendering_info" }, // RenderingServer broke Viewport - // { "get_type", "get_tracker_type"}, // XRPositionalTracker broke GLTFAccessor, GLTFLight - // { "get_v_offset", "get_drag_vertical_offset"}, // Camera2D, broke PathFollow, Camera - // { "has_network_peer", "has_multiplayer_peer"}, // MultiplayerAPI broke SceneTree - // { "instance", "instantiate" }, // PackedScene, ClassDB - Broke FileSystemDock signal and also tscn files - [instance=ExtResource( 17 )] - this is implemented as custom rule - // { "is_listening", "is_bound"}, // PacketPeerUDP broke TCPServer, UDPServer - // { "is_refusing_new_network_connections", "is_refusing_new_connections"}, // MultiplayerAPI broke SceneTree - // { "is_valid", "has_valid_event" }, // Shortcut broke e.g. Callable - // { "listen", "bound"}, // PacketPeerUDP broke TCPServer, UDPServer - // { "load", "_load"}, // ResourceFormatLoader broke ConfigFile, Image, StreamTexture2D - // { "make_current", "set_current" }, // Camera2D broke Camera3D, Listener2D - // { "process", "_process" }, // AnimationNode - This word is commonly used - // { "save", "_save"}, // ResourceFormatLoader broke ConfigFile, Image, StreamTexture2D - // { "set_autowrap", "set_autowrap_mode" }, // AcceptDialog broke Label - Cyclic Rename - // { "set_color", "surface_set_color"}, // ImmediateMesh broke Light2D, Theme, SurfaceTool - // { "set_event", "set_shortcut" }, // BaseButton - Cyclic Rename - // { "set_extents", "set_size"}, // BoxShape, RectangleShape broke ReflectionProbe - // { "set_flag", "set_particle_flag"}, // ParticleProcessMaterial broke Window, HingeJoint3D - // { "set_h_offset", "set_drag_horizontal_offset" }, // Camera2D broke Camera3D, PathFollow3D, PathFollow2D - // { "set_margin", "set_offset" }, // Control broke Shape3D, AtlasTexture - // { "set_mode", "set_mode_file_mode" }, // FileDialog broke Panel, Shader, CSGPolygon, Tilemap - // { "set_normal", "surface_set_normal"}, // ImmediateGeometry broke SurfaceTool, WorldMarginShape2D - // { "set_offset", "set_progress" }, // PathFollow2D, PathFollow3D - Too common - // { "set_process_mode", "set_process_callback" }, // AnimationTree broke Node, Tween, Sky - // { "set_refuse_new_network_connections", "set_refuse_new_connections"}, // MultiplayerAPI broke SceneTree - // { "set_tooltip", "set_tooltip_text" }, // Control, breaks TreeItem, at least for now. - // { "set_uv", "surface_set_uv" }, // ImmediateMesh broke Polygon2D - // { "set_v_offset", "set_drag_vertical_offset" }, // Camera2D broke Camera3D, PathFollow3D, PathFollow2D - // {"get_points","get_points_id"},// Astar, broke Line2D, Convexpolygonshape - // {"get_v_scroll","get_v_scroll_bar"},//ItemList, broke TextView - // { "get_stylebox", "get_theme_stylebox" }, // Control - Will rename the method in Theme as well, skipping - { "_about_to_show", "_about_to_popup" }, // ColorPickerButton - { "_get_configuration_warning", "_get_configuration_warnings" }, // Node - { "_set_current", "set_current" }, // Camera2D - { "_set_editor_description", "set_editor_description" }, // Node - { "_toplevel_raise_self", "_top_level_raise_self" }, // CanvasItem - { "_update_wrap_at", "_update_wrap_at_column" }, // TextEdit - { "add_animation", "add_animation_library" }, // AnimationPlayer - { "add_cancel", "add_cancel_button" }, // AcceptDialog - { "add_central_force", "apply_central_force" }, //RigidBody2D - { "add_child_below_node", "add_sibling" }, // Node - { "add_color_override", "add_theme_color_override" }, // Control - { "add_constant_override", "add_theme_constant_override" }, // Control - { "add_font_override", "add_theme_font_override" }, // Control - { "add_force", "apply_force" }, //RigidBody2D - { "add_icon_override", "add_theme_icon_override" }, // Control - { "add_scene_import_plugin", "add_scene_format_importer_plugin" }, //EditorPlugin - { "add_spatial_gizmo_plugin", "add_node_3d_gizmo_plugin" }, // EditorPlugin - { "add_stylebox_override", "add_theme_stylebox_override" }, // Control - { "add_torque", "apply_torque" }, //RigidBody2D - { "agent_set_neighbor_dist", "agent_set_neighbor_distance" }, // NavigationServer2D, NavigationServer3D - { "apply_changes", "_apply_changes" }, // EditorPlugin - { "body_add_force", "body_apply_force" }, // PhysicsServer2D - { "body_add_torque", "body_apply_torque" }, // PhysicsServer2D - { "bumpmap_to_normalmap", "bump_map_to_normal_map" }, // Image - { "can_be_hidden", "_can_be_hidden" }, // EditorNode3DGizmoPlugin - { "can_drop_data", "_can_drop_data" }, // Control - { "can_generate_small_preview", "_can_generate_small_preview" }, // EditorResourcePreviewGenerator - { "can_instance", "can_instantiate" }, // PackedScene, Script - { "canvas_light_set_scale", "canvas_light_set_texture_scale" }, // RenderingServer - { "capture_get_device", "get_input_device" }, // AudioServer - { "capture_get_device_list", "get_input_device_list" }, // AudioServer - { "capture_set_device", "set_input_device" }, // AudioServer - { "center_viewport_to_cursor", "center_viewport_to_caret" }, // TextEdit - { "change_scene", "change_scene_to_file" }, // SceneTree - { "change_scene_to", "change_scene_to_packed" }, // SceneTree - { "clip_polygons_2d", "clip_polygons" }, // Geometry2D - { "clip_polyline_with_polygon_2d", "clip_polyline_with_polygon" }, //Geometry2D - { "commit_handle", "_commit_handle" }, // EditorNode3DGizmo - { "convex_hull_2d", "convex_hull" }, // Geometry2D - { "create_gizmo", "_create_gizmo" }, // EditorNode3DGizmoPlugin - { "cursor_get_blink_speed", "get_caret_blink_interval" }, // TextEdit - { "cursor_get_column", "get_caret_column" }, // TextEdit - { "cursor_get_line", "get_caret_line" }, // TextEdit - { "cursor_set_blink_enabled", "set_caret_blink_enabled" }, // TextEdit - { "cursor_set_blink_speed", "set_caret_blink_interval" }, // TextEdit - { "cursor_set_column", "set_caret_column" }, // TextEdit - { "cursor_set_line", "set_caret_line" }, // TextEdit - { "damped_spring_joint_create", "joint_make_damped_spring" }, // PhysicsServer2D - { "damped_string_joint_get_param", "damped_spring_joint_get_param" }, // PhysicsServer2D - { "damped_string_joint_set_param", "damped_spring_joint_set_param" }, // PhysicsServer2D - { "dectime", "move_toward" }, // GDScript, Math functions - { "delete_char_at_cursor", "delete_char_at_caret" }, // LineEdit - { "deselect_items", "deselect_all" }, // FileDialog - { "disable_plugin", "_disable_plugin" }, // EditorPlugin - { "drop_data", "_drop_data" }, // Control - { "exclude_polygons_2d", "exclude_polygons" }, // Geometry2D - { "find_node", "find_child" }, // Node - { "find_scancode_from_string", "find_keycode_from_string" }, // OS - { "forward_canvas_draw_over_viewport", "_forward_canvas_draw_over_viewport" }, // EditorPlugin - { "forward_canvas_force_draw_over_viewport", "_forward_canvas_force_draw_over_viewport" }, // EditorPlugin - { "forward_canvas_gui_input", "_forward_canvas_gui_input" }, // EditorPlugin - { "forward_spatial_draw_over_viewport", "_forward_3d_draw_over_viewport" }, // EditorPlugin - { "forward_spatial_force_draw_over_viewport", "_forward_3d_force_draw_over_viewport" }, // EditorPlugin - { "forward_spatial_gui_input", "_forward_3d_gui_input" }, // EditorPlugin - { "generate_from_path", "_generate_from_path" }, // EditorResourcePreviewGenerator - { "generate_small_preview_automatically", "_generate_small_preview_automatically" }, // EditorResourcePreviewGenerator - { "get_action_list", "action_get_events" }, // InputMap - { "get_alt", "is_alt_pressed" }, // InputEventWithModifiers - { "get_animation_process_mode", "get_process_callback" }, // AnimationPlayer - { "get_applied_force", "get_constant_force" }, //RigidBody2D - { "get_applied_torque", "get_constant_torque" }, //RigidBody2D - { "get_audio_bus", "get_audio_bus_name" }, // Area3D - { "get_bound_child_nodes_to_bone", "get_bone_children" }, // Skeleton3D - { "get_camera", "get_camera_3d" }, // Viewport -> this is also convertible to get_camera_2d, broke GLTFNode - { "get_cancel", "get_cancel_button" }, // ConfirmationDialog - { "get_caption", "_get_caption" }, // AnimationNode - { "get_cast_to", "get_target_position" }, // RayCast2D, RayCast3D - { "get_child_by_name", "_get_child_by_name" }, // AnimationNode - { "get_child_nodes", "_get_child_nodes" }, // AnimationNode - { "get_closest_point_to_segment_2d", "get_closest_point_to_segment" }, // Geometry2D - { "get_closest_point_to_segment_uncapped_2d", "get_closest_point_to_segment_uncapped" }, // Geometry2D - { "get_closest_points_between_segments_2d", "get_closest_point_to_segment" }, // Geometry2D - { "get_collision_layer_bit", "get_collision_layer_value" }, // CSGShape3D and a lot of others like GridMap - { "get_collision_mask_bit", "get_collision_mask_value" }, // CSGShape3D and a lot of others like GridMap - { "get_color_types", "get_color_type_list" }, // Theme - { "get_command", "is_command_or_control_pressed" }, // InputEventWithModifiers - { "get_constant_types", "get_constant_type_list" }, // Theme - { "get_control", "is_ctrl_pressed" }, // InputEventWithModifiers - { "get_cull_mask_bit", "get_cull_mask_value" }, // Camera3D - { "get_cursor_position", "get_caret_column" }, // LineEdit - { "get_d", "get_distance" }, // LineShape2D - { "get_depth_bias_enable", "get_depth_bias_enabled" }, // RDPipelineRasterizationState - { "get_device", "get_output_device" }, // AudioServer - { "get_device_list", "get_output_device_list" }, // AudioServer - { "get_drag_data", "_get_drag_data" }, // Control - { "get_editor_viewport", "get_editor_main_screen" }, // EditorPlugin - { "get_enabled_focus_mode", "get_focus_mode" }, // BaseButton - { "get_endian_swap", "is_big_endian" }, // File - { "get_error_string", "get_error_message" }, // JSON - { "get_filename", "get_scene_file_path" }, // Node, WARNING, this may be used in a lot of other places - { "get_focus_neighbour", "get_focus_neighbor" }, // Control - { "get_follow_smoothing", "get_position_smoothing_speed" }, // Camera2D - { "get_font_types", "get_font_type_list" }, // Theme - { "get_frame_color", "get_color" }, // ColorRect - { "get_global_rate_scale", "get_playback_speed_scale" }, // AudioServer - { "get_gravity_distance_scale", "get_gravity_point_unit_distance" }, // Area(2D/3D) - { "get_gravity_vector", "get_gravity_direction" }, // Area(2D/3D) - { "get_h_scrollbar", "get_h_scroll_bar" }, //ScrollContainer - { "get_hand", "get_tracker_hand" }, // XRPositionalTracker - { "get_handle_name", "_get_handle_name" }, // EditorNode3DGizmo - { "get_handle_value", "_get_handle_value" }, // EditorNode3DGizmo - { "get_icon_align", "get_icon_alignment" }, // Button - { "get_icon_types", "get_icon_type_list" }, // Theme - { "get_idle_frames", "get_process_frames" }, // Engine - { "get_import_options", "_get_import_options" }, // EditorImportPlugin - { "get_import_order", "_get_import_order" }, // EditorImportPlugin - { "get_importer_name", "_get_importer_name" }, // EditorImportPlugin - { "get_interior_ambient", "get_ambient_color" }, // ReflectionProbe - { "get_interior_ambient_energy", "get_ambient_color_energy" }, // ReflectionProbe - { "get_iterations_per_second", "get_physics_ticks_per_second" }, // Engine - { "get_last_mouse_speed", "get_last_mouse_velocity" }, // Input - { "get_layer_mask_bit", "get_layer_mask_value" }, // VisualInstance3D - { "get_len", "get_length" }, // File - { "get_max_atlas_size", "get_max_texture_size" }, // LightmapGI - { "get_metakey", "is_meta_pressed" }, // InputEventWithModifiers - { "get_mid_height", "get_height" }, // CapsuleMesh - { "get_motion_remainder", "get_remainder" }, // PhysicsTestMotionResult2D - { "get_neighbor_dist", "get_neighbor_distance" }, // NavigationAgent2D, NavigationAgent3D - { "get_network_connected_peers", "get_peers" }, // Multiplayer API - { "get_network_master", "get_multiplayer_authority" }, // Node - { "get_network_peer", "get_multiplayer_peer" }, // Multiplayer API - { "get_network_unique_id", "get_unique_id" }, // Multiplayer API - { "get_ok", "get_ok_button" }, // AcceptDialog - { "get_oneshot", "get_one_shot" }, // AnimatedTexture - { "get_option_visibility", "_get_option_visibility" }, // EditorImportPlugin - { "get_parameter_default_value", "_get_parameter_default_value" }, // AnimationNode - { "get_parameter_list", "_get_parameter_list" }, // AnimationNode - { "get_parent_spatial", "get_parent_node_3d" }, // Node3D - { "get_pause_mode", "get_process_mode" }, // Node - { "get_physical_scancode", "get_physical_keycode" }, // InputEventKey - { "get_physical_scancode_with_modifiers", "get_physical_keycode_with_modifiers" }, // InputEventKey - { "get_plugin_icon", "_get_plugin_icon" }, // EditorPlugin - { "get_plugin_name", "_get_plugin_name" }, // EditorPlugin - { "get_preset_count", "_get_preset_count" }, // EditorImportPlugin - { "get_preset_name", "_get_preset_name" }, // EditorImportPlugin - { "get_recognized_extensions", "_get_recognized_extensions" }, // ResourceFormatLoader, EditorImportPlugin broke ResourceSaver - { "get_render_info", "get_rendering_info" }, // RenderingServer - { "get_render_targetsize", "get_render_target_size" }, // XRInterface - { "get_resource_type", "_get_resource_type" }, // ResourceFormatLoader - { "get_result", "get_data" }, //JSON - { "get_reverb_bus", "set_reverb_bus_name" }, // Area3D - { "get_rpc_sender_id", "get_remote_sender_id" }, // Multiplayer API - { "get_save_extension", "_get_save_extension" }, // EditorImportPlugin - { "get_scancode", "get_keycode" }, // InputEventKey - { "get_scancode_string", "get_keycode_string" }, // OS - { "get_scancode_with_modifiers", "get_keycode_with_modifiers" }, // InputEventKey - { "get_selected_path", "get_current_directory" }, // EditorInterface - { "get_shift", "is_shift_pressed" }, // InputEventWithModifiers - { "get_size_override", "get_size_2d_override" }, // SubViewport - { "get_slide_count", "get_slide_collision_count" }, // CharacterBody2D, CharacterBody3D - { "get_slips_on_slope", "get_slide_on_slope" }, // SeparationRayShape2D, SeparationRayShape3D - { "get_space_override_mode", "get_gravity_space_override_mode" }, // Area2D - { "get_spatial_node", "get_node_3d" }, // EditorNode3DGizmo - { "get_speed", "get_velocity" }, // InputEventMouseMotion - { "get_stylebox_types", "get_stylebox_type_list" }, // Theme - { "get_surface_material", "get_surface_override_material" }, // MeshInstance3D broke ImporterMesh - { "get_surface_material_count", "get_surface_override_material_count" }, // MeshInstance3D - { "get_tab_disabled", "is_tab_disabled" }, // Tab - { "get_tab_hidden", "is_tab_hidden" }, // Tab - { "get_text_align", "get_text_alignment" }, // Button - { "get_theme_item_types", "get_theme_item_type_list" }, // Theme - { "get_timer_process_mode", "get_timer_process_callback" }, // Timer - { "get_translation", "get_position" }, // Node3D broke GLTFNode which is used rarely - { "get_unit_db", "get_volume_db" }, // AudioStreamPlayer3D - { "get_unit_offset", "get_progress_ratio" }, // PathFollow2D, PathFollow3D - { "get_use_in_baked_light", "is_baking_navigation" }, // GridMap - { "get_used_cells_by_id", "get_used_cells" }, // TileMap - { "get_v_scrollbar", "get_v_scroll_bar" }, //ScrollContainer - { "get_visible_name", "_get_visible_name" }, // EditorImportPlugin - { "get_window_layout", "_get_window_layout" }, // EditorPlugin - { "get_word_under_cursor", "get_word_under_caret" }, // TextEdit - { "get_world", "get_world_3d" }, // Viewport, Spatial - { "get_zfar", "get_far" }, // Camera3D broke GLTFCamera - { "get_znear", "get_near" }, // Camera3D broke GLTFCamera - { "groove_joint_create", "joint_make_groove" }, // PhysicsServer2D - { "handle_menu_selected", "_handle_menu_selected" }, // EditorResourcePicker - { "handles_type", "_handles_type" }, // ResourceFormatLoader - { "has_color", "has_theme_color" }, // Control broke Theme - { "has_color_override", "has_theme_color_override" }, // Control broke Theme - { "has_constant", "has_theme_constant" }, // Control - { "has_constant_override", "has_theme_constant_override" }, // Control - { "has_filter", "_has_filter" }, // AnimationNode - { "has_font", "has_theme_font" }, // Control broke Theme - { "has_font_override", "has_theme_font_override" }, // Control - { "has_icon", "has_theme_icon" }, // Control broke Theme - { "has_icon_override", "has_theme_icon_override" }, // Control - { "has_main_screen", "_has_main_screen" }, // EditorPlugin - { "has_network_peer", "has_multiplayer_peer" }, // Multiplayer API - { "has_stylebox", "has_theme_stylebox" }, // Control broke Theme - { "has_stylebox_override", "has_theme_stylebox_override" }, // Control - { "http_escape", "uri_encode" }, // String - { "http_unescape", "uri_decode" }, // String - { "import_scene_from_other_importer", "_import_scene" }, //EditorSceneFormatImporter - { "instance_set_surface_material", "instance_set_surface_override_material" }, // RenderingServer - { "interpolate", "sample" }, // Curve, Curve2D, Curve3D, Gradient - { "intersect_polygons_2d", "intersect_polygons" }, // Geometry2D - { "intersect_polyline_with_polygon_2d", "intersect_polyline_with_polygon" }, // Geometry2D - { "is_a_parent_of", "is_ancestor_of" }, // Node - { "is_commiting_action", "is_committing_action" }, // UndoRedo - { "is_doubleclick", "is_double_click" }, // InputEventMouseButton - { "is_draw_red", "is_draw_warning" }, // EditorProperty - { "is_follow_smoothing_enabled", "is_position_smoothing_enabled" }, // Camera2D - { "is_h_drag_enabled", "is_drag_horizontal_enabled" }, // Camera2D - { "is_handle_highlighted", "_is_handle_highlighted" }, // EditorNode3DGizmo, EditorNode3DGizmoPlugin - { "is_inverting_faces", "get_flip_faces" }, // CSGPrimitive3D - { "is_network_master", "is_multiplayer_authority" }, // Node - { "is_network_server", "is_server" }, // Multiplayer API - { "is_normalmap", "is_normal_map" }, // NoiseTexture - { "is_refusing_new_network_connections", "is_refusing_new_connections" }, // Multiplayer API - { "is_region", "is_region_enabled" }, // Sprite2D - { "is_rotating", "is_ignoring_rotation" }, // Camera2D - { "is_scancode_unicode", "is_keycode_unicode" }, // OS - { "is_selectable_when_hidden", "_is_selectable_when_hidden" }, // EditorNode3DGizmoPlugin - { "is_set_as_toplevel", "is_set_as_top_level" }, // CanvasItem - { "is_shortcut", "matches_event" }, // Shortcut - { "is_size_override_stretch_enabled", "is_size_2d_override_stretch_enabled" }, // SubViewport - { "is_sort_enabled", "is_y_sort_enabled" }, // Node2D - { "is_static_body", "is_able_to_sleep" }, // PhysicalBone3D - TODO - not sure - { "is_v_drag_enabled", "is_drag_vertical_enabled" }, // Camera2D - { "joint_create_cone_twist", "joint_make_cone_twist" }, // PhysicsServer3D - { "joint_create_generic_6dof", "joint_make_generic_6dof" }, // PhysicsServer3D - { "joint_create_hinge", "joint_make_hinge" }, // PhysicsServer3D - { "joint_create_pin", "joint_make_pin" }, // PhysicsServer3D - { "joint_create_slider", "joint_make_slider" }, // PhysicsServer3D - { "line_intersects_line_2d", "line_intersects_line" }, // Geometry2D - { "load_from_globals", "load_from_project_settings" }, // InputMap - { "load_interactive", "load_threaded_request" }, // ResourceLoader - load_threaded_request is alternative, but is used differently - { "make_convex_from_brothers", "make_convex_from_siblings" }, // CollisionShape3D - { "make_visible", "_make_visible" }, // EditorPlugin - { "merge_polygons_2d", "merge_polygons" }, // Geometry2D - { "mesh_surface_get_format", "mesh_surface_get_format_attribute_stride" }, // RenderingServer - { "mesh_surface_update_region", "mesh_surface_update_attribute_region" }, // RenderingServer - { "move_to_bottom", "move_after" }, // Skeleton3D - { "move_to_top", "move_before" }, // Skeleton3D - { "multimesh_allocate", "multimesh_allocate_data" }, // RenderingServer - { "normalmap_to_xy", "normal_map_to_xy" }, // Image - { "offset_polygon_2d", "offset_polygon" }, // Geometry2D - { "offset_polyline_2d", "offset_polyline" }, // Geometry2D - { "percent_decode", "uri_decode" }, // String - { "percent_encode", "uri_encode" }, // String - { "pin_joint_create", "joint_make_pin" }, // PhysicsServer2D - { "popup_centered_minsize", "popup_centered_clamped" }, // Window - { "post_import", "_post_import" }, // EditorScenePostImport - { "print_stray_nodes", "print_orphan_nodes" }, // Node - { "property_list_changed_notify", "notify_property_list_changed" }, // Object - { "raise", "move_to_front" }, // CanvasItem - { "recognize", "_recognize" }, // ResourceFormatLoader - { "regen_normalmaps", "regen_normal_maps" }, // ArrayMesh - { "remove", "remove_at" }, // Array, broke Directory - { "remove_animation", "remove_animation_library" }, // AnimationPlayer - { "remove_color_override", "remove_theme_color_override" }, // Control - { "remove_constant_override", "remove_theme_constant_override" }, // Control - { "remove_font_override", "remove_theme_font_override" }, // Control - { "remove_icon_override", "remove_theme_icon_override" }, // Control - { "remove_scene_import_plugin", "remove_scene_format_importer_plugin" }, //EditorPlugin - { "remove_spatial_gizmo_plugin", "remove_node_3d_gizmo_plugin" }, // EditorPlugin - { "remove_stylebox_override", "remove_theme_stylebox_override" }, // Control - { "rename_animation", "rename_animation_library" }, // AnimationPlayer - { "rename_dependencies", "_rename_dependencies" }, // ResourceFormatLoader - { "save_external_data", "_save_external_data" }, // EditorPlugin - { "segment_intersects_segment_2d", "segment_intersects_segment" }, // Geometry2D - { "set_adjustment_enable", "set_adjustment_enabled" }, // Environment - { "set_alt", "set_alt_pressed" }, // InputEventWithModifiers - { "set_anchor_and_margin", "set_anchor_and_offset" }, // Control - { "set_anchors_and_margins_preset", "set_anchors_and_offsets_preset" }, // Control - { "set_animation_process_mode", "set_process_callback" }, // AnimationPlayer - { "set_as_bulk_array", "set_buffer" }, // MultiMesh - { "set_as_normalmap", "set_as_normal_map" }, // NoiseTexture - { "set_as_toplevel", "set_as_top_level" }, // CanvasItem - { "set_audio_bus", "set_audio_bus_name" }, // Area3D - { "set_autowrap", "set_autowrap_mode" }, // Label broke AcceptDialog - { "set_cast_to", "set_target_position" }, // RayCast2D, RayCast3D - { "set_collision_layer_bit", "set_collision_layer_value" }, // CSGShape3D and a lot of others like GridMap - { "set_collision_mask_bit", "set_collision_mask_value" }, // CSGShape3D and a lot of others like GridMap - { "set_column_min_width", "set_column_custom_minimum_width" }, // Tree - { "set_command", "set_meta_pressed" }, // InputEventWithModifiers - { "set_control", "set_ctrl_pressed" }, // InputEventWithModifiers - { "set_create_options", "_set_create_options" }, // EditorResourcePicker - { "set_cull_mask_bit", "set_cull_mask_value" }, // Camera3D - { "set_cursor_position", "set_caret_column" }, // LineEdit - { "set_d", "set_distance" }, // WorldMarginShape2D - { "set_depth_bias_enable", "set_depth_bias_enabled" }, // RDPipelineRasterizationState - { "set_device", "set_output_device" }, // AudioServer - { "set_doubleclick", "set_double_click" }, // InputEventMouseButton - { "set_draw_red", "set_draw_warning" }, // EditorProperty - { "set_enable_follow_smoothing", "set_position_smoothing_enabled" }, // Camera2D - { "set_enabled_focus_mode", "set_focus_mode" }, // BaseButton - { "set_endian_swap", "set_big_endian" }, // File - { "set_expand_to_text_length", "set_expand_to_text_length_enabled" }, // LineEdit - { "set_filename", "set_scene_file_path" }, // Node, WARNING, this may be used in a lot of other places - { "set_focus_neighbour", "set_focus_neighbor" }, // Control - { "set_follow_smoothing", "set_position_smoothing_speed" }, // Camera2D - { "set_frame_color", "set_color" }, // ColorRect - { "set_global_rate_scale", "set_playback_speed_scale" }, // AudioServer - { "set_gravity_distance_scale", "set_gravity_point_unit_distance" }, // Area(2D/3D) - { "set_gravity_vector", "set_gravity_direction" }, // Area(2D/3D) - { "set_h_drag_enabled", "set_drag_horizontal_enabled" }, // Camera2D - { "set_icon_align", "set_icon_alignment" }, // Button - { "set_interior_ambient", "set_ambient_color" }, // ReflectionProbe - { "set_interior_ambient_energy", "set_ambient_color_energy" }, // ReflectionProbe - { "set_invert_faces", "set_flip_faces" }, // CSGPrimitive3D - { "set_is_initialized", "_is_initialized" }, // XRInterface - { "set_is_primary", "set_primary" }, // XRInterface - { "set_iterations_per_second", "set_physics_ticks_per_second" }, // Engine - { "set_layer_mask_bit", "set_layer_mask_value" }, // VisualInstance3D - { "set_margins_preset", "set_offsets_preset" }, // Control - { "set_max_atlas_size", "set_max_texture_size" }, // LightmapGI - { "set_metakey", "set_meta_pressed" }, // InputEventWithModifiers - { "set_mid_height", "set_height" }, // CapsuleMesh - { "set_neighbor_dist", "set_neighbor_distance" }, // NavigationAgent2D, NavigationAgent3D - { "set_network_master", "set_multiplayer_authority" }, // Node - { "set_network_peer", "set_multiplayer_peer" }, // Multiplayer API - { "set_oneshot", "set_one_shot" }, // AnimatedTexture - { "set_pause_mode", "set_process_mode" }, // Node - { "set_physical_scancode", "set_physical_keycode" }, // InputEventKey - { "set_proximity_fade", "set_proximity_fade_enabled" }, // Material - { "set_refuse_new_network_connections", "set_refuse_new_connections" }, // Multiplayer API - { "set_region", "set_region_enabled" }, // Sprite2D, Sprite broke AtlasTexture - { "set_region_filter_clip", "set_region_filter_clip_enabled" }, // Sprite2D - { "set_reverb_bus", "set_reverb_bus_name" }, // Area3D - { "set_rotate", "set_rotates" }, // PathFollow2D - { "set_scancode", "set_keycode" }, // InputEventKey - { "set_shift", "set_shift_pressed" }, // InputEventWithModifiers - { "set_size_override", "set_size_2d_override" }, // SubViewport broke ImageTexture - { "set_size_override_stretch", "set_size_2d_override_stretch" }, // SubViewport - { "set_slips_on_slope", "set_slide_on_slope" }, // SeparationRayShape2D, SeparationRayShape3D - { "set_sort_enabled", "set_y_sort_enabled" }, // Node2D - { "set_space_override_mode", "set_gravity_space_override_mode" }, // Area2D - { "set_spatial_node", "set_node_3d" }, // EditorNode3DGizmo - { "set_speed", "set_velocity" }, // InputEventMouseMotion - { "set_ssao_edge_sharpness", "set_ssao_sharpness" }, // Environment - { "set_surface_material", "set_surface_override_material" }, // MeshInstance3D broke ImporterMesh - { "set_tab_align", "set_tab_alignment" }, //TabContainer - { "set_tangent", "surface_set_tangent" }, // ImmediateGeometry broke SurfaceTool - { "set_text_align", "set_text_alignment" }, // Button - { "set_timer_process_mode", "set_timer_process_callback" }, // Timer - { "set_translation", "set_position" }, // Node3D - this broke GLTFNode which is used rarely - { "set_unit_db", "set_volume_db" }, // AudioStreamPlayer3D - { "set_unit_offset", "set_progress_ratio" }, // PathFollow2D, PathFollow3D - { "set_uv2", "surface_set_uv2" }, // ImmediateMesh broke Surffacetool - { "set_v_drag_enabled", "set_drag_vertical_enabled" }, // Camera2D - { "set_valign", "set_vertical_alignment" }, // Label - { "set_window_layout", "_set_window_layout" }, // EditorPlugin - { "set_zfar", "set_far" }, // Camera3D broke GLTFCamera - { "set_znear", "set_near" }, // Camera3D broke GLTFCamera - { "shortcut_match", "is_match" }, // InputEvent - { "skeleton_allocate", "skeleton_allocate_data" }, // RenderingServer - { "surface_update_region", "surface_update_attribute_region" }, // ArrayMesh - { "targeting_method", "tween_method" }, // Tween - { "targeting_property", "tween_property" }, // Tween - { "track_remove_key_at_position", "track_remove_key_at_time" }, // Animation - { "triangulate_delaunay_2d", "triangulate_delaunay" }, // Geometry2D - { "unselect", "deselect" }, // ItemList - { "unselect_all", "deselect_all" }, // ItemList - { "update_configuration_warning", "update_configuration_warnings" }, // Node - { "update_gizmo", "update_gizmos" }, // Node3D - { "viewport_set_use_arvr", "viewport_set_use_xr" }, // RenderingServer - { "warp_mouse_position", "warp_mouse" }, // Input - { "world_to_map", "local_to_map" }, // TileMap, GridMap - { "set_shader_param", "set_shader_parameter" }, // ShaderMaterial - { "get_shader_param", "get_shader_parameter" }, // ShaderMaterial - { "set_uniform_name", "set_parameter_name" }, // ParameterRef - { "get_uniform_name", "get_parameter_name" }, // ParameterRef - - // Builtin types - // Remember to add them to builtin_types_excluded_functions variable, because for now this functions cannot be listed - // { "empty", "is_empty" }, // Array - Used as custom rule // Be careful, this will be used everywhere - { "clamped", "clamp" }, // Vector2 // Be careful, this will be used everywhere - { "get_rotation_quat", "get_rotation_quaternion" }, // Basis - { "grow_margin", "grow_side" }, // Rect2 - { "invert", "reverse" }, // Array - TODO check // Be careful, this will be used everywhere - { "is_abs_path", "is_absolute_path" }, // String - { "is_valid_integer", "is_valid_int" }, // String - { "linear_interpolate", "lerp" }, // Color - { "find_last", "rfind" }, // Array, String - { "to_ascii", "to_ascii_buffer" }, // String - { "to_utf8", "to_utf8_buffer" }, // String - { "to_wchar", "to_utf32_buffer" }, // String // TODO - utf32 or utf16? - - // @GlobalScope - // Remember to add them to builtin_types_excluded_functions variable, because for now this functions cannot be listed - { "bytes2var", "bytes_to_var" }, - { "bytes2var_with_objects", "bytes_to_var_with_objects" }, - { "db2linear", "db_to_linear" }, - { "deg2rad", "deg_to_rad" }, - { "linear2db", "linear_to_db" }, - { "rad2deg", "rad_to_deg" }, - { "rand_range", "randf_range" }, - { "range_lerp", "remap" }, - { "stepify", "snapped" }, - { "str2var", "str_to_var" }, - { "var2str", "var_to_str" }, - { "var2bytes", "var_to_bytes" }, - { "var2bytes_with_objects", "var_to_bytes_with_objects" }, - - // @GDScript - // Remember to add them to builtin_types_excluded_functions variable, because for now this functions cannot be listed - { "dict2inst", "dict_to_inst" }, - { "inst2dict", "inst_to_dict" }, - - { nullptr, nullptr }, -}; - -// gdscript_function_renames clone with CamelCase -const char *ProjectConverter3To4::csharp_function_renames[][2] = { - // { "_SetName", "GetTrackerName"}, // XRPositionalTracker - CameraFeed use this - // { "_UnhandledInput", "_UnhandledKeyInput"}, // BaseButton, ViewportContainer broke Node, FileDialog,SubViewportContainer - // { "CreateGizmo", "_CreateGizmo"}, // EditorNode3DGizmoPlugin - may be used - // { "GetDependencies", "_GetDependencies" }, // ResourceFormatLoader broke ResourceLoader - // { "GetExtents", "GetSize" }, // BoxShape, RectangleShape broke Decal, VoxelGI, GPUParticlesCollisionBox, GPUParticlesCollisionSDF, GPUParticlesCollisionHeightField, GPUParticlesAttractorBox, GPUParticlesAttractorVectorField, FogVolume - // { "GetHOffset", "GetDragHorizontalOffset"}, // Camera2D, broke PathFollow, Camera - // { "GetMode", "GetFileMode"}, // FileDialog broke Panel, Shader, CSGPolygon, Tilemap - // { "GetMotion", "GetTravel"}, // PhysicsTestMotionResult2D broke ParalaxLayer - // { "GetName", "GetTrackerName"}, // XRPositionalTracker broke OS, Node - // { "GetNetworkConnectedPeers", "GetPeers"}, // MultiplayerAPI broke SceneTree - // { "GetNetworkPeer", "HasMultiplayerPeer"}, // MultiplayerAPI broke SceneTree - // { "GetNetworkUniqueId", "GetUniqueId"}, // MultiplayerAPI broke SceneTree - // { "GetOffset", "GetPositionOffset" }, // GraphNode broke Gradient - // { "GetPeerPort", "GetPeer" }, // ENetMultiplayerPeer broke WebSocketServer - // { "GetProcessMode", "GetProcessCallback" }, // ClippedCamera3D broke Node, Sky - // { "GetRenderInfo", "GetRenderingInfo" }, // RenderingServer broke Viewport - // { "GetType", "GetTrackerType"}, // XRPositionalTracker broke GLTFAccessor, GLTFLight - // { "GetVOffset", "GetDragVerticalOffset"}, // Camera2D, broke PathFollow, Camera - // { "HasNetworkPeer", "HasMultiplayerPeer"}, // MultiplayerAPI broke SceneTree - // { "Instance", "Instantiate" }, // PackedScene, ClassDB - Broke FileSystemDock signal and also tscn files - [instance=ExtResource( 17 )] - this is implemented as custom rule - // { "IsListening", "IsBound"}, // PacketPeerUDP broke TCPServer, UDPServer - // { "IsRefusingNewNetworkConnections", "IsRefusingNewConnections"}, // MultiplayerAPI broke SceneTree - // { "IsValid", "HasValidEvent" }, // Shortcut broke e.g. Callable - // { "Listen", "Bound"}, // PacketPeerUDP broke TCPServer, UDPServer - // { "Load", "_Load"}, // ResourceFormatLoader broke ConfigFile, Image, StreamTexture2D - // { "MakeCurrent", "SetCurrent" }, // Camera2D broke Camera3D, Listener2D - // { "Process", "_Process" }, // AnimationNode - This word is commonly used - // { "Save", "_Save"}, // ResourceFormatLoader broke ConfigFile, Image, StreamTexture2D - // { "SetAutowrap", "SetAutowrapMode" }, // AcceptDialog broke Label - Cyclic Rename - // { "SetColor", "SurfaceSetColor"}, // ImmediateMesh broke Light2D, Theme, SurfaceTool - // { "SetEvent", "SetShortcut" }, // BaseButton - Cyclic Rename - // { "SetExtents", "SetSize"}, // BoxShape, RectangleShape broke ReflectionProbe - // { "SetFlag", "SetParticleFlag"}, // ParticleProcessMaterial broke Window, HingeJoint3D - // { "SetHOffset", "SetDragHorizontalOffset" }, // Camera2D broke Camera3D, PathFollow3D, PathFollow2D - // { "SetMargin", "SetOffset" }, // Control broke Shape3D, AtlasTexture - // { "SetMode", "SetModeFileMode" }, // FileDialog broke Panel, Shader, CSGPolygon, Tilemap - // { "SetNormal", "SurfaceSetNormal"}, // ImmediateGeometry broke SurfaceTool, WorldMarginShape2D - // { "SetOffset", "SetProgress" }, // PathFollow2D, PathFollow3D - Too common - // { "SetProcessMode", "SetProcessCallback" }, // AnimationTree broke Node, Tween, Sky - // { "SetRefuseNewNetworkConnections", "SetRefuseNewConnections"}, // MultiplayerAPI broke SceneTree - // { "SetTooltip", "SetTooltipText" }, // Control, breaks TreeItem, at least for now. - // { "SetUv", "SurfaceSetUv" }, // ImmediateMesh broke Polygon2D - // { "SetVOffset", "SetDragVerticalOffset" }, // Camera2D broke Camera3D, PathFollow3D, PathFollow2D - // {"GetPoints","GetPointsId"},// Astar, broke Line2D, Convexpolygonshape - // {"GetVScroll","GetVScrollBar"},//ItemList, broke TextView - // { "GetStylebox", "GetThemeStylebox" }, // Control - Will rename the method in Theme as well, skipping - { "AddSpatialGizmoPlugin", "AddNode3dGizmoPlugin" }, // EditorPlugin - { "RenderingServer", "GetTabAlignment" }, // Tab - { "_AboutToShow", "_AboutToPopup" }, // ColorPickerButton - { "_GetConfigurationWarning", "_GetConfigurationWarnings" }, // Node - { "_SetCurrent", "SetCurrent" }, // Camera2D - { "_SetEditorDescription", "SetEditorDescription" }, // Node - { "_SetPlaying", "SetPlaying" }, // AnimatedSprite3D - { "_ToplevelRaiseSelf", "_TopLevelRaiseSelf" }, // CanvasItem - { "_UpdateWrapAt", "_UpdateWrapAtColumn" }, // TextEdit - { "AddAnimation", "AddAnimationLibrary" }, // AnimationPlayer - { "AddCancel", "AddCancelButton" }, // AcceptDialog - { "AddCentralForce", "AddConstantCentralForce" }, //RigidBody2D - { "AddChildBelowNode", "AddSibling" }, // Node - { "AddColorOverride", "AddThemeColorOverride" }, // Control - { "AddConstantOverride", "AddThemeConstantOverride" }, // Control - { "AddFontOverride", "AddThemeFontOverride" }, // Control - { "AddForce", "AddConstantForce" }, //RigidBody2D - { "AddIconOverride", "AddThemeIconOverride" }, // Control - { "AddSceneImportPlugin", "AddSceneFormatImporterPlugin" }, //EditorPlugin - { "AddStyleboxOverride", "AddThemeStyleboxOverride" }, // Control - { "AddTorque", "AddConstantTorque" }, //RigidBody2D - { "AgentSetNeighborDist", "AgentSetNeighborDistance" }, // NavigationServer2D, NavigationServer3D - { "BindChildNodeToBone", "SetBoneChildren" }, // Skeleton3D - { "BumpmapToNormalmap", "BumpMapToNormalMap" }, // Image - { "CanBeHidden", "_CanBeHidden" }, // EditorNode3DGizmoPlugin - { "CanDropData", "_CanDropData" }, // Control - { "CanDropDataFw", "_CanDropDataFw" }, // ScriptEditor - { "CanGenerateSmallPreview", "_CanGenerateSmallPreview" }, // EditorResourcePreviewGenerator - { "CanInstance", "CanInstantiate" }, // PackedScene, Script - { "CanvasLightSetScale", "CanvasLightSetTextureScale" }, // RenderingServer - { "CaptureGetDevice", "GetInputDevice" }, // AudioServer - { "CaptureGetDeviceList", "GetInputDeviceList" }, // AudioServer - { "CaptureSetDevice", "SetInputDevice" }, // AudioServer - { "CenterViewportToCursor", "CenterViewportToCaret" }, // TextEdit - { "ChangeScene", "ChangeSceneToFile" }, // SceneTree - { "ChangeSceneTo", "ChangeSceneToPacked" }, // SceneTree - { "ClipPolygons2d", "ClipPolygons" }, // Geometry2D - { "ClipPolylineWithPolygon2d", "ClipPolylineWithPolygon" }, //Geometry2D - { "CommitHandle", "_CommitHandle" }, // EditorNode3DGizmo - { "ConvexHull2d", "ConvexHull" }, // Geometry2D - { "CursorGetBlinkSpeed", "GetCaretBlinkInterval" }, // TextEdit - { "CursorGetColumn", "GetCaretColumn" }, // TextEdit - { "CursorGetLine", "GetCaretLine" }, // TextEdit - { "CursorSetBlinkEnabled", "SetCaretBlinkEnabled" }, // TextEdit - { "CursorSetBlinkSpeed", "SetCaretBlinkInterval" }, // TextEdit - { "CursorSetColumn", "SetCaretColumn" }, // TextEdit - { "CursorSetLine", "SetCaretLine" }, // TextEdit - { "DampedSpringJointCreate", "JointMakeDampedSpring" }, // PhysicsServer2D - { "DampedStringJointGetParam", "DampedSpringJointGetParam" }, // PhysicsServer2D - { "DampedStringJointSetParam", "DampedSpringJointSetParam" }, // PhysicsServer2D - { "DeleteCharAtCursor", "DeleteCharAtCaret" }, // LineEdit - { "DeselectItems", "DeselectAll" }, // FileDialog - { "DropData", "_DropData" }, // Control - { "DropDataFw", "_DropDataFw" }, // ScriptEditor - { "ExcludePolygons2d", "ExcludePolygons" }, // Geometry2D - { "FindScancodeFromString", "FindKeycodeFromString" }, // OS - { "ForwardCanvasDrawOverViewport", "_ForwardCanvasDrawOverViewport" }, // EditorPlugin - { "ForwardCanvasForceDrawOverViewport", "_ForwardCanvasForceDrawOverViewport" }, // EditorPlugin - { "ForwardCanvasGuiInput", "_ForwardCanvasGuiInput" }, // EditorPlugin - { "ForwardSpatialDrawOverViewport", "_Forward3dDrawOverViewport" }, // EditorPlugin - { "ForwardSpatialForceDrawOverViewport", "_Forward3dForceDrawOverViewport" }, // EditorPlugin - { "ForwardSpatialGuiInput", "_Forward3dGuiInput" }, // EditorPlugin - { "GenerateFromPath", "_GenerateFromPath" }, // EditorResourcePreviewGenerator - { "GenerateSmallPreviewAutomatically", "_GenerateSmallPreviewAutomatically" }, // EditorResourcePreviewGenerator - { "GetActionList", "ActionGetEvents" }, // InputMap - { "GetAlt", "IsAltPressed" }, // InputEventWithModifiers - { "GetAnimationProcessMode", "GetProcessCallback" }, // AnimationPlayer - { "GetAppliedForce", "GetConstantForce" }, //RigidBody2D - { "GetAppliedTorque", "GetConstantTorque" }, //RigidBody2D - { "GetAudioBus", "GetAudioBusName" }, // Area3D - { "GetBoundChildNodesToBone", "GetBoneChildren" }, // Skeleton3D - { "GetCamera", "GetCamera3d" }, // Viewport -> this is also convertible to getCamera2d, broke GLTFNode - { "GetCancel", "GetCancelButton" }, // ConfirmationDialog - { "GetCaption", "_GetCaption" }, // AnimationNode - { "GetCastTo", "GetTargetPosition" }, // RayCast2D, RayCast3D - { "GetChildByName", "_GetChildByName" }, // AnimationNode - { "GetChildNodes", "_GetChildNodes" }, // AnimationNode - { "GetClosestPointToSegment2d", "GetClosestPointToSegment" }, // Geometry2D - { "GetClosestPointToSegmentUncapped2d", "GetClosestPointToSegmentUncapped" }, // Geometry2D - { "GetClosestPointsBetweenSegments2d", "GetClosestPointToSegment" }, // Geometry2D - { "GetCollisionLayerBit", "GetCollisionLayerValue" }, // CSGShape3D and a lot of others like GridMap - { "GetCollisionMaskBit", "GetCollisionMaskValue" }, // CSGShape3D and a lot of others like GridMap - { "GetColorTypes", "GetColorTypeList" }, // Theme - { "GetCommand", "IsCommandPressed" }, // InputEventWithModifiers - { "GetConstantTypes", "GetConstantTypeList" }, // Theme - { "GetControl", "IsCtrlPressed" }, // InputEventWithModifiers - { "GetCullMaskBit", "GetCullMaskValue" }, // Camera3D - { "GetCursorPosition", "GetCaretColumn" }, // LineEdit - { "GetD", "GetDistance" }, // LineShape2D - { "GetDepthBiasEnable", "GetDepthBiasEnabled" }, // RDPipelineRasterizationState - { "GetDevice", "GetOutputDevice" }, // AudioServer - { "GetDeviceList", "GetOutputDeviceList" }, // AudioServer - { "GetDragDataFw", "_GetDragDataFw" }, // ScriptEditor - { "GetEditorViewport", "GetViewport" }, // EditorPlugin - { "GetEnabledFocusMode", "GetFocusMode" }, // BaseButton - { "GetEndianSwap", "IsBigEndian" }, // File - { "GetErrorString", "GetErrorMessage" }, // JSON - { "GetFocusNeighbour", "GetFocusNeighbor" }, // Control - { "GetFollowSmoothing", "GetFollowSmoothingSpeed" }, // Camera2D - { "GetFontTypes", "GetFontTypeList" }, // Theme - { "GetFrameColor", "GetColor" }, // ColorRect - { "GetGlobalRateScale", "GetPlaybackSpeedScale" }, // AudioServer - { "GetGravityDistanceScale", "GetGravityPointDistanceScale" }, //Area2D - { "GetGravityVector", "GetGravityDirection" }, //Area2D - { "GetHScrollbar", "GetHScrollBar" }, //ScrollContainer - { "GetHand", "GetTrackerHand" }, // XRPositionalTracker - { "GetHandleName", "_GetHandleName" }, // EditorNode3DGizmo - { "GetHandleValue", "_GetHandleValue" }, // EditorNode3DGizmo - { "GetIconAlign", "GetIconAlignment" }, // Button - { "GetIconTypes", "GetIconTypeList" }, // Theme - { "GetIdleFrames", "GetProcessFrames" }, // Engine - { "GetImportOptions", "_GetImportOptions" }, // EditorImportPlugin - { "GetImportOrder", "_GetImportOrder" }, // EditorImportPlugin - { "GetImporterName", "_GetImporterName" }, // EditorImportPlugin - { "GetInteriorAmbient", "GetAmbientColor" }, // ReflectionProbe - { "GetInteriorAmbientEnergy", "GetAmbientColorEnergy" }, // ReflectionProbe - { "GetIterationsPerSecond", "GetPhysicsTicksPerSecond" }, // Engine - { "GetLastMouseSpeed", "GetLastMouseVelocity" }, // Input - { "GetLayerMaskBit", "GetLayerMaskValue" }, // VisualInstance3D - { "GetLen", "GetLength" }, // File - { "GetMaxAtlasSize", "GetMaxTextureSize" }, // LightmapGI - { "GetMetakey", "IsMetaPressed" }, // InputEventWithModifiers - { "GetMidHeight", "GetHeight" }, // CapsuleMesh - { "GetMotionRemainder", "GetRemainder" }, // PhysicsTestMotionResult2D - { "GetNeighborDist", "GetNeighborDistance" }, // NavigationAgent2D, NavigationAgent3D - { "GetNetworkConnectedPeers", "GetPeers" }, // Multiplayer API - { "GetNetworkMaster", "GetMultiplayerAuthority" }, // Node - { "GetNetworkPeer", "GetMultiplayerPeer" }, // Multiplayer API - { "GetNetworkUniqueId", "GetUniqueId" }, // Multiplayer API - { "GetOneshot", "GetOneShot" }, // AnimatedTexture - { "GetOk", "GetOkButton" }, // AcceptDialog - { "GetOptionVisibility", "_GetOptionVisibility" }, // EditorImportPlugin - { "GetParameterDefaultValue", "_GetParameterDefaultValue" }, // AnimationNode - { "GetParameterList", "_GetParameterList" }, // AnimationNode - { "GetParentSpatial", "GetParentNode3d" }, // Node3D - { "GetPhysicalScancode", "GetPhysicalKeycode" }, // InputEventKey - { "GetPhysicalScancodeWithModifiers", "GetPhysicalKeycodeWithModifiers" }, // InputEventKey - { "GetPluginIcon", "_GetPluginIcon" }, // EditorPlugin - { "GetPluginName", "_GetPluginName" }, // EditorPlugin - { "GetPresetCount", "_GetPresetCount" }, // EditorImportPlugin - { "GetPresetName", "_GetPresetName" }, // EditorImportPlugin - { "GetRecognizedExtensions", "_GetRecognizedExtensions" }, // ResourceFormatLoader, EditorImportPlugin broke ResourceSaver - { "GetRenderInfo", "GetRenderingInfo" }, // RenderingServer - { "GetRenderTargetsize", "GetRenderTargetSize" }, // XRInterface - { "GetResourceType", "_GetResourceType" }, // ResourceFormatLoader - { "GetResult", "GetData" }, //JSON - { "GetReverbBus", "GetReverbBusName" }, // Area3D - { "GetRpcSenderId", "GetRemoteSenderId" }, // Multiplayer API - { "GetSaveExtension", "_GetSaveExtension" }, // EditorImportPlugin - { "GetScancode", "GetKeycode" }, // InputEventKey - { "GetScancodeString", "GetKeycodeString" }, // OS - { "GetScancodeWithModifiers", "GetKeycodeWithModifiers" }, // InputEventKey - { "GetShift", "IsShiftPressed" }, // InputEventWithModifiers - { "GetSizeOverride", "GetSize2dOverride" }, // SubViewport - { "GetSlipsOnSlope", "GetSlideOnSlope" }, // SeparationRayShape2D, SeparationRayShape3D - { "GetSpaceOverrideMode", "GetGravitySpaceOverrideMode" }, // Area2D - { "GetSpatialNode", "GetNode3d" }, // EditorNode3DGizmo - { "GetSpeed", "GetVelocity" }, // InputEventMouseMotion - { "GetStyleboxTypes", "GetStyleboxTypeList" }, // Theme - { "GetSurfaceMaterial", "GetSurfaceOverrideMaterial" }, // MeshInstance3D broke ImporterMesh - { "GetSurfaceMaterialCount", "GetSurfaceOverrideMaterialCount" }, // MeshInstance3D - { "GetTabDisabled", "IsTabDisabled" }, // Tab - { "GetTabHidden", "IsTabHidden" }, // Tab - { "GetTextAlign", "GetTextAlignment" }, // Button - { "GetThemeItemTypes", "GetThemeItemTypeList" }, // Theme - { "GetTimerProcessMode", "GetTimerProcessCallback" }, // Timer - { "GetTranslation", "GetPosition" }, // Node3D broke GLTFNode which is used rarely - { "GetUnitDb", "GetVolumeDb" }, // AudioStreamPlayer3D - { "GetUnitOffset", "GetProgressRatio" }, // PathFollow2D, PathFollow3D - { "GetUseInBakedLight", "IsBakingNavigation" }, // GridMap - { "GetUsedCellsById", "GetUsedCells" }, // TileMap - { "GetVScrollbar", "GetVScrollBar" }, //ScrollContainer - { "GetVisibleName", "_GetVisibleName" }, // EditorImportPlugin - { "GetWindowLayout", "_GetWindowLayout" }, // EditorPlugin - { "GetWordUnderCursor", "GetWordUnderCaret" }, // TextEdit - { "GetWorld", "GetWorld3d" }, // Viewport, Spatial - { "GetZfar", "GetFar" }, // Camera3D broke GLTFCamera - { "GetZnear", "GetNear" }, // Camera3D broke GLTFCamera - { "GrooveJointCreate", "JointMakeGroove" }, // PhysicsServer2D - { "HandleMenuSelected", "_HandleMenuSelected" }, // EditorResourcePicker - { "HandlesType", "_HandlesType" }, // ResourceFormatLoader - { "HasColor", "HasThemeColor" }, // Control broke Theme - { "HasColorOverride", "HasThemeColorOverride" }, // Control broke Theme - { "HasConstant", "HasThemeConstant" }, // Control - { "HasConstantOverride", "HasThemeConstantOverride" }, // Control - { "HasFilter", "_HasFilter" }, // AnimationNode - { "HasFont", "HasThemeFont" }, // Control broke Theme - { "HasFontOverride", "HasThemeFontOverride" }, // Control - { "HasIcon", "HasThemeIcon" }, // Control broke Theme - { "HasIconOverride", "HasThemeIconOverride" }, // Control - { "HasMainScreen", "_HasMainScreen" }, // EditorPlugin - { "HasNetworkPeer", "HasMultiplayerPeer" }, // Multiplayer API - { "HasStylebox", "HasThemeStylebox" }, // Control broke Theme - { "HasStyleboxOverride", "HasThemeStyleboxOverride" }, // Control - { "HttpEscape", "UriEncode" }, // String - { "HttpUnescape", "UriDecode" }, // String - { "ImportAnimationFromOtherImporter", "_ImportAnimation" }, //EditorSceneFormatImporter - { "ImportSceneFromOtherImporter", "_ImportScene" }, //EditorSceneFormatImporter - { "InstanceSetSurfaceMaterial", "InstanceSetSurfaceOverrideMaterial" }, // RenderingServer - { "IntersectPolygons2d", "IntersectPolygons" }, // Geometry2D - { "IntersectPolylineWithPolygon2d", "IntersectPolylineWithPolygon" }, // Geometry2D - { "IsAParentOf", "IsAncestorOf" }, // Node - { "IsCommitingAction", "IsCommittingAction" }, // UndoRedo - { "IsDoubleclick", "IsDoubleClick" }, // InputEventMouseButton - { "IsFollowSmoothingEnabled", "IsPositionSmoothingEnabled" }, // Camera2D - { "IsHDragEnabled", "IsDragHorizontalEnabled" }, // Camera2D - { "IsHandleHighlighted", "_IsHandleHighlighted" }, // EditorNode3DGizmo, EditorNode3DGizmoPlugin - { "IsNetworkMaster", "IsMultiplayerAuthority" }, // Node - { "IsNetworkServer", "IsServer" }, // Multiplayer API - { "IsNormalmap", "IsNormalMap" }, // NoiseTexture - { "IsRefusingNewNetworkConnections", "IsRefusingNewConnections" }, // Multiplayer API - { "IsRegion", "IsRegionEnabled" }, // Sprite2D - { "IsRotating", "IsIgnoringRotation" }, // Camera2D - { "IsScancodeUnicode", "IsKeycodeUnicode" }, // OS - { "IsSelectableWhenHidden", "_IsSelectableWhenHidden" }, // EditorNode3DGizmoPlugin - { "IsSetAsToplevel", "IsSetAsTopLevel" }, // CanvasItem - { "IsShortcut", "MatchesEvent" }, // Shortcut - { "IsSizeOverrideStretchEnabled", "IsSize2dOverrideStretchEnabled" }, // SubViewport - { "IsSortEnabled", "IsYSortEnabled" }, // Node2D - { "IsStaticBody", "IsAbleToSleep" }, // PhysicalBone3D - TODO - not sure - { "IsVDragEnabled", "IsDragVerticalEnabled" }, // Camera2D - { "JointCreateConeTwist", "JointMakeConeTwist" }, // PhysicsServer3D - { "JointCreateGeneric6dof", "JointMakeGeneric6dof" }, // PhysicsServer3D - { "JointCreateHinge", "JointMakeHinge" }, // PhysicsServer3D - { "JointCreatePin", "JointMakePin" }, // PhysicsServer3D - { "JointCreateSlider", "JointMakeSlider" }, // PhysicsServer3D - { "LineIntersectsLine2d", "LineIntersectsLine" }, // Geometry2D - { "LoadFromGlobals", "LoadFromProjectSettings" }, // InputMap - { "MakeConvexFromBrothers", "MakeConvexFromSiblings" }, // CollisionShape3D - { "MergePolygons2d", "MergePolygons" }, // Geometry2D - { "MeshSurfaceGetFormat", "MeshSurfaceGetFormatAttributeStride" }, // RenderingServer - { "MeshSurfaceUpdateRegion", "MeshSurfaceUpdateAttributeRegion" }, // RenderingServer - { "MoveToBottom", "MoveAfter" }, // Skeleton3D - { "MoveToTop", "MoveBefore" }, // Skeleton3D - { "MultimeshAllocate", "MultimeshAllocateData" }, // RenderingServer - { "NormalmapToXy", "NormalMapToXy" }, // Image - { "OffsetPolygon2d", "OffsetPolygon" }, // Geometry2D - { "OffsetPolyline2d", "OffsetPolyline" }, // Geometry2D - { "PercentDecode", "UriDecode" }, // String - { "PercentEncode", "UriEncode" }, // String - { "PinJointCreate", "JointMakePin" }, // PhysicsServer2D - { "PopupCenteredMinsize", "PopupCenteredClamped" }, // Window - { "PostImport", "_PostImport" }, // EditorScenePostImport - { "PrintStrayNodes", "PrintOrphanNodes" }, // Node - { "PropertyListChangedNotify", "NotifyPropertyListChanged" }, // Object - { "Recognize", "_Recognize" }, // ResourceFormatLoader - { "RegenNormalmaps", "RegenNormalMaps" }, // ArrayMesh - { "Remove", "RemoveAt" }, // Array, broke Directory - { "RemoveAnimation", "RemoveAnimationLibrary" }, // AnimationPlayer - { "RemoveColorOverride", "RemoveThemeColorOverride" }, // Control - { "RemoveConstantOverride", "RemoveThemeConstantOverride" }, // Control - { "RemoveFontOverride", "RemoveThemeFontOverride" }, // Control - { "RemoveSceneImportPlugin", "RemoveSceneFormatImporterPlugin" }, //EditorPlugin - { "RemoveSpatialGizmoPlugin", "RemoveNode3dGizmoPlugin" }, // EditorPlugin - { "RemoveStyleboxOverride", "RemoveThemeStyleboxOverride" }, // Control - { "RenameAnimation", "RenameAnimationLibrary" }, // AnimationPlayer - { "RenameDependencies", "_RenameDependencies" }, // ResourceFormatLoader - { "SaveExternalData", "_SaveExternalData" }, // EditorPlugin - { "SegmentIntersectsSegment2d", "SegmentIntersectsSegment" }, // Geometry2D - { "SetAdjustmentEnable", "SetAdjustmentEnabled" }, // Environment - { "SetAlt", "SetAltPressed" }, // InputEventWithModifiers - { "SetAnchorAndMargin", "SetAnchorAndOffset" }, // Control - { "SetAnchorsAndMarginsPreset", "SetAnchorsAndOffsetsPreset" }, // Control - { "SetAnimationProcessMode", "SetProcessCallback" }, // AnimationPlayer - { "SetAsBulkArray", "SetBuffer" }, // MultiMesh - { "SetAsNormalmap", "SetAsNormalMap" }, // NoiseTexture - { "SetAsToplevel", "SetAsTopLevel" }, // CanvasItem - { "SetAudioBus", "SetAudioBusName" }, // Area3D - { "SetAutowrap", "SetAutowrapMode" }, // Label broke AcceptDialog - { "SetCastTo", "SetTargetPosition" }, // RayCast2D, RayCast3D - { "SetCollisionLayerBit", "SetCollisionLayerValue" }, // CSGShape3D and a lot of others like GridMap - { "SetCollisionMaskBit", "SetCollisionMaskValue" }, // CSGShape3D and a lot of others like GridMap - { "SetColumnMinWidth", "SetColumnCustomMinimumWidth" }, // Tree - { "SetCommand", "SetCommandPressed" }, // InputEventWithModifiers - { "SetControl", "SetCtrlPressed" }, // InputEventWithModifiers - { "SetCreateOptions", "_SetCreateOptions" }, // EditorResourcePicker - { "SetCullMaskBit", "SetCullMaskValue" }, // Camera3D - { "SetCursorPosition", "SetCaretColumn" }, // LineEdit - { "SetD", "SetDistance" }, // WorldMarginShape2D - { "SetDepthBiasEnable", "SetDepthBiasEnabled" }, // RDPipelineRasterizationState - { "SetDevice", "SetOutputDevice" }, // AudioServer - { "SetDoubleclick", "SetDoubleClick" }, // InputEventMouseButton - { "SetEnableFollowSmoothing", "SetFollowSmoothingEnabled" }, // Camera2D - { "SetEnabledFocusMode", "SetFocusMode" }, // BaseButton - { "SetEndianSwap", "SetBigEndian" }, // File - { "SetExpandToTextLength", "SetExpandToTextLengthEnabled" }, // LineEdit - { "SetFocusNeighbour", "SetFocusNeighbor" }, // Control - { "SetFollowSmoothing", "SetFollowSmoothingSpeed" }, // Camera2D - { "SetFrameColor", "SetColor" }, // ColorRect - { "SetGlobalRateScale", "SetPlaybackSpeedScale" }, // AudioServer - { "SetGravityDistanceScale", "SetGravityPointDistanceScale" }, // Area2D - { "SetGravityVector", "SetGravityDirection" }, // Area2D - { "SetHDragEnabled", "SetDragHorizontalEnabled" }, // Camera2D - { "SetIconAlign", "SetIconAlignment" }, // Button - { "SetInteriorAmbient", "SetAmbientColor" }, // ReflectionProbe - { "SetInteriorAmbientEnergy", "SetAmbientColorEnergy" }, // ReflectionProbe - { "SetIsInitialized", "_IsInitialized" }, // XRInterface - { "SetIsPrimary", "SetPrimary" }, // XRInterface - { "SetIterationsPerSecond", "SetPhysicsTicksPerSecond" }, // Engine - { "SetLayerMaskBit", "SetLayerMaskValue" }, // VisualInstance3D - { "SetMarginsPreset", "SetOffsetsPreset" }, // Control - { "SetMaxAtlasSize", "SetMaxTextureSize" }, // LightmapGI - { "SetMetakey", "SetMetaPressed" }, // InputEventWithModifiers - { "SetMidHeight", "SetHeight" }, // CapsuleMesh - { "SetNeighborDist", "SetNeighborDistance" }, // NavigationAgent2D, NavigationAgent3D - { "SetNetworkMaster", "SetMultiplayerAuthority" }, // Node - { "SetNetworkPeer", "SetMultiplayerPeer" }, // Multiplayer API - { "SetOneshot", "SetOneShot" }, // AnimatedTexture - { "SetPhysicalScancode", "SetPhysicalKeycode" }, // InputEventKey - { "SetProximityFade", "SetProximityFadeEnabled" }, // Material - { "SetRefuseNewNetworkConnections", "SetRefuseNewConnections" }, // Multiplayer API - { "SetRegion", "SetRegionEnabled" }, // Sprite2D, Sprite broke AtlasTexture - { "SetRegionFilterClip", "SetRegionFilterClipEnabled" }, // Sprite2D - { "SetReverbBus", "SetReverbBusName" }, // Area3D - { "SetRotate", "SetRotates" }, // PathFollow2D - { "SetScancode", "SetKeycode" }, // InputEventKey - { "SetShift", "SetShiftPressed" }, // InputEventWithModifiers - { "SetSizeOverride", "SetSize2dOverride" }, // SubViewport broke ImageTexture - { "SetSizeOverrideStretch", "SetSize2dOverrideStretch" }, // SubViewport - { "SetSlipsOnSlope", "SetSlideOnSlope" }, // SeparationRayShape2D, SeparationRayShape3D - { "SetSortEnabled", "SetYSortEnabled" }, // Node2D - { "SetSpaceOverrideMode", "SetGravitySpaceOverrideMode" }, // Area2D - { "SetSpatialNode", "SetNode3d" }, // EditorNode3DGizmo - { "SetSpeed", "SetVelocity" }, // InputEventMouseMotion - { "SetSsaoEdgeSharpness", "SetSsaoSharpness" }, // Environment - { "SetSurfaceMaterial", "SetSurfaceOverrideMaterial" }, // MeshInstance3D broke ImporterMesh - { "SetTabAlign", "SetTabAlignment" }, //TabContainer - { "SetTangent", "SurfaceSetTangent" }, // ImmediateGeometry broke SurfaceTool - { "SetTextAlign", "SetTextAlignment" }, // Button - { "SetTimerProcessMode", "SetTimerProcessCallback" }, // Timer - { "SetTonemapAutoExposure", "SetTonemapAutoExposureEnabled" }, // Environment - { "SetTranslation", "SetPosition" }, // Node3D - this broke GLTFNode which is used rarely - { "SetUnitDb", "SetVolumeDb" }, // AudioStreamPlayer3D - { "SetUnitOffset", "SetProgressRatio" }, // PathFollow2D, PathFollow3D - { "SetUv2", "SurfaceSetUv2" }, // ImmediateMesh broke Surffacetool - { "SetVDragEnabled", "SetDragVerticalEnabled" }, // Camera2D - { "SetValign", "SetVerticalAlignment" }, // Label - { "SetWindowLayout", "_SetWindowLayout" }, // EditorPlugin - { "SetZfar", "SetFar" }, // Camera3D broke GLTFCamera - { "SetZnear", "SetNear" }, // Camera3D broke GLTFCamera - { "ShortcutMatch", "IsMatch" }, // InputEvent - { "SkeletonAllocate", "SkeletonAllocateData" }, // RenderingServer - { "SurfaceUpdateRegion", "SurfaceUpdateAttributeRegion" }, // ArrayMesh - { "TargetingMethod", "TweenMethod" }, // Tween - { "TargetingProperty", "TweenProperty" }, // Tween - { "TrackRemoveKeyAtPosition", "TrackRemoveKeyAtTime" }, // Animation - { "TriangulateDelaunay2d", "TriangulateDelaunay" }, // Geometry2D - { "UnbindChildNodeFromBone", "RemoveBoneChild" }, // Skeleton3D - { "Unselect", "Deselect" }, // ItemList - { "UnselectAll", "DeselectAll" }, // ItemList - { "UpdateConfigurationWarning", "UpdateConfigurationWarnings" }, // Node - { "UpdateGizmo", "UpdateGizmos" }, // Node3D - { "ViewportSetUseArvr", "ViewportSetUseXr" }, // RenderingServer - { "WarpMousePosition", "WarpMouse" }, // Input - { "WorldToMap", "LocalToMap" }, // TileMap, GridMap - { "SetShaderParam", "SetShaderParameter" }, // ShaderMaterial - { "GetShaderParam", "GetShaderParameter" }, // ShaderMaterial - { "SetUniformName", "SetParameterName" }, // ParameterRef - { "GetUniformName", "GetParameterName" }, // ParameterRef - - // Builtin types - // { "Empty", "IsEmpty" }, // Array - Used as custom rule // Be careful, this will be used everywhere - { "Clamped", "Clamp" }, // Vector2 // Be careful, this will be used everywhere - { "GetRotationQuat", "GetRotationQuaternion" }, // Basis - { "GrowMargin", "GrowSide" }, // Rect2 - { "Invert", "Reverse" }, // Array - TODO check // Be careful, this will be used everywhere - { "IsAbsPath", "IsAbsolutePath" }, // String - { "IsValidInteger", "IsValidInt" }, // String - { "LinearInterpolate", "Lerp" }, // Color - { "ToAscii", "ToAsciiBuffer" }, // String - { "ToUtf8", "ToUtf8Buffer" }, // String - { "ToWchar", "ToUtf32Buffer" }, // String // TODO - utf32 or utf16? - - // @GlobalScope - { "Bytes2Var", "BytesToVar" }, - { "Bytes2VarWithObjects", "BytesToVarWithObjects" }, - { "Db2Linear", "DbToLinear" }, - { "Deg2Rad", "DegToRad" }, - { "Linear2Db", "LinearToDb" }, - { "Rad2Deg", "RadToDeg" }, - { "RandRange", "RandfRange" }, - { "RangeLerp", "Remap" }, - { "Stepify", "Snapped" }, - { "Str2Var", "StrToVar" }, - { "Var2Str", "VarToStr" }, - { "Var2Bytes", "VarToBytes" }, - { "Var2BytesWithObjects", "VarToBytesWithObjects" }, - - // @GDScript - { "Dict2Inst", "DictToInst" }, - { "Inst2Dict", "InstToDict" }, - - { nullptr, nullptr }, -}; - -// Some needs to be disabled, because users can use this names as variables -const char *ProjectConverter3To4::gdscript_properties_renames[][2] = { - // // { "d", "distance" }, //WorldMarginShape2D - TODO, looks that polish letters ą ę are treaten as space, not as letter, so `będą` are renamed to `będistanceą` - // // {"alt","alt_pressed"}, // This may broke a lot of comments and user variables - // // {"command","command_pressed"},// This may broke a lot of comments and user variables - // // {"control","ctrl_pressed"},// This may broke a lot of comments and user variables - // // {"extends","size"}, // BoxShape3D, LightmapGI broke ReflectionProbe - // // {"meta","meta_pressed"},// This may broke a lot of comments and user variables - // // {"pause_mode","process_mode"}, // Node - Cyclic rename, look for others - // // {"rotate","rotates"}, // PathFollow2D - probably function exists with same name - // // {"offset","progress"}, // PathFollow2D, PathFollow3D - Name is way too vague - // // {"shift","shift_pressed"},// This may broke a lot of comments and user variables - // { "autowrap", "autowrap_mode" }, // Label - // { "cast_to", "target_position" }, // RayCast2D, RayCast3D - // { "device", "output_device"}, // AudioServer - Too vague, most likely breaks comments & variables - // { "doubleclick", "double_click" }, // InputEventMouseButton - // { "group", "button_group" }, // BaseButton - // { "process_mode", "process_callback" }, // AnimationTree, Camera2D - // { "scancode", "keycode" }, // InputEventKey - // { "toplevel", "top_level" }, // Node - // { "window_title", "title" }, // Window - // { "wrap_enabled", "wrap_mode" }, // TextEdit - // { "zfar", "far" }, // Camera3D - // { "znear", "near" }, // Camera3D - // { "filename", "scene_file_path" }, // Node - // { "pressed", "button_pressed" }, // BaseButton - Will also rename the signal, skipping for now - { "as_normalmap", "as_normal_map" }, // NoiseTexture - { "bbcode_text", "text" }, // RichTextLabel - { "bg", "panel" }, // Theme - { "bg_focus", "focus" }, // Theme - { "capture_device", "input_device" }, // AudioServer - { "caret_blink_speed", "caret_blink_interval" }, // TextEdit, LineEdit - { "caret_moving_by_right_click", "caret_move_on_right_click" }, // TextEdit - { "caret_position", "caret_column" }, // LineEdit - { "check_vadjust", "check_v_offset" }, // Theme - { "close_h_ofs", "close_h_offset" }, // Theme - { "close_v_ofs", "close_v_offset" }, // Theme - { "commentfocus", "comment_focus" }, // Theme - { "contacts_reported", "max_contacts_reported" }, // RigidBody - { "depth_bias_enable", "depth_bias_enabled" }, // RDPipelineRasterizationState - { "drag_margin_bottom", "drag_bottom_margin" }, // Camera2D - { "drag_margin_h_enabled", "drag_horizontal_enabled" }, // Camera2D - { "drag_margin_left", "drag_left_margin" }, // Camera2D - { "drag_margin_right", "drag_right_margin" }, // Camera2D - { "drag_margin_top", "drag_top_margin" }, // Camera2D - { "drag_margin_v_enabled", "drag_vertical_enabled" }, // Camera2D - { "enabled_focus_mode", "focus_mode" }, // BaseButton - Removed - { "extra_spacing_bottom", "spacing_bottom" }, // Font - { "extra_spacing_top", "spacing_top" }, // Font - { "focus_neighbour_bottom", "focus_neighbor_bottom" }, // Control - { "focus_neighbour_left", "focus_neighbor_left" }, // Control - { "focus_neighbour_right", "focus_neighbor_right" }, // Control - { "focus_neighbour_top", "focus_neighbor_top" }, // Control - { "follow_viewport_enable", "follow_viewport_enabled" }, // CanvasItem - { "file_icon_modulate", "file_icon_color" }, // Theme - { "files_disabled", "file_disabled_color" }, // Theme - { "folder_icon_modulate", "folder_icon_color" }, // Theme - { "global_rate_scale", "playback_speed_scale" }, // AudioServer - { "gravity_distance_scale", "gravity_point_unit_distance" }, // Area(2D/3D) - { "gravity_vec", "gravity_direction" }, // Area(2D/3D) - { "hint_tooltip", "tooltip_text" }, // Control - { "hseparation", "h_separation" }, // Theme - { "icon_align", "icon_alignment" }, // Button - { "iterations_per_second", "physics_ticks_per_second" }, // Engine - { "invert_enable", "invert_enabled" }, // Polygon2D - { "margin_bottom", "offset_bottom" }, // Control broke NinePatchRect, StyleBox - { "margin_left", "offset_left" }, // Control broke NinePatchRect, StyleBox - { "margin_right", "offset_right" }, // Control broke NinePatchRect, StyleBox - { "margin_top", "offset_top" }, // Control broke NinePatchRect, StyleBox - { "mid_height", "height" }, // CapsuleMesh - { "neighbor_dist", "neighbor_distance" }, // NavigationAgent2D, NavigationAgent3D - { "offset_h", "drag_horizontal_offset" }, // Camera2D - { "offset_v", "drag_vertical_offset" }, // Camera2D - { "off", "unchecked" }, // Theme - { "off_disabled", "unchecked_disabled" }, // Theme - { "ofs", "offset" }, // Theme - { "on", "checked" }, // Theme - { "on_disabled", "checked_disabled" }, // Theme - { "oneshot", "one_shot" }, // AnimatedTexture - { "out_of_range_mode", "max_polyphony" }, // AudioStreamPlayer3D - { "pause_mode", "process_mode" }, // Node - { "physical_scancode", "physical_keycode" }, // InputEventKey - { "popup_exclusive", "exclusive" }, // Window - { "proximity_fade_enable", "proximity_fade_enabled" }, // Material - { "rect_position", "position" }, // Control - { "rect_global_position", "global_position" }, // Control - { "rect_size", "size" }, // Control - { "rect_min_size", "custom_minimum_size" }, // Control - { "rect_rotation", "rotation" }, // Control - { "rect_scale", "scale" }, // Control - { "rect_pivot_offset", "pivot_offset" }, // Control - { "rect_clip_content", "clip_contents" }, // Control - { "refuse_new_network_connections", "refuse_new_connections" }, // MultiplayerAPI - { "region_filter_clip", "region_filter_clip_enabled" }, // Sprite2D - { "reverb_bus_enable", "reverb_bus_enabled" }, // Area3D - { "selectedframe", "selected_frame" }, // Theme - { "size_override_stretch", "size_2d_override_stretch" }, // SubViewport - { "slips_on_slope", "slide_on_slope" }, // SeparationRayShape2D - { "smoothing_enabled", "follow_smoothing_enabled" }, // Camera2D - { "smoothing_speed", "position_smoothing_speed" }, // Camera2D - { "ss_reflections_depth_tolerance", "ssr_depth_tolerance" }, // Environment - { "ss_reflections_enabled", "ssr_enabled" }, // Environment - { "ss_reflections_fade_in", "ssr_fade_in" }, // Environment - { "ss_reflections_fade_out", "ssr_fade_out" }, // Environment - { "ss_reflections_max_steps", "ssr_max_steps" }, // Environment - { "state_machine_selectedframe", "state_machine_selected_frame" }, // Theme - { "syntax_highlighting", "syntax_highlighter" }, // TextEdit - { "tab_align", "tab_alignment" }, // TabContainer - { "table_hseparation", "table_h_separation" }, // Theme - { "table_vseparation", "table_v_separation" }, // Theme - { "translation", "position" }, // Node3D - broke GLTFNode - { "unit_db", "volume_db" }, // AudioStreamPlayer3D - { "unit_offset", "progress_ratio" }, // PathFollow2D, PathFollow3D - { "vseparation", "v_separation" }, // Theme - { "frames", "sprite_frames" }, // AnimatedSprite2D, AnimatedSprite3D - - { nullptr, nullptr }, -}; - -// Some needs to be disabled, because users can use this names as variables -const char *ProjectConverter3To4::csharp_properties_renames[][2] = { - // // { "D", "Distance" }, //WorldMarginShape2D - TODO, looks that polish letters ą ę are treaten as space, not as letter, so `będą` are renamed to `będistanceą` - // // {"Alt","AltPressed"}, // This may broke a lot of comments and user variables - // // {"Command","CommandPressed"},// This may broke a lot of comments and user variables - // // {"Control","CtrlPressed"},// This may broke a lot of comments and user variables - // // {"Extends","Size"}, // BoxShape3D, LightmapGI broke ReflectionProbe - // // {"Meta","MetaPressed"},// This may broke a lot of comments and user variables - // // {"PauseMode","ProcessMode"}, // Node - Cyclic rename, look for others - // // {"Rotate","Rotates"}, // PathFollow2D - probably function exists with same name - // // {"Offset","Progress"}, // PathFollow2D, PathFollow3D - Name is way too vague - // // {"Shift","ShiftPressed"},// This may broke a lot of comments and user variables - // { "Autowrap", "AutowrapMode" }, // Label - // { "CastTo", "TargetPosition" }, // RayCast2D, RayCast3D - // { "Doubleclick", "DoubleClick" }, // InputEventMouseButton - // { "Group", "ButtonGroup" }, // BaseButton - // { "PercentVisible, "ShowPercentage}, // ProgressBar, conflicts with Label and RichTextLabel, but may be a worth it. - // { "ProcessMode", "ProcessCallback" }, // AnimationTree, Camera2D - // { "Scancode", "Keycode" }, // InputEventKey - // { "Toplevel", "TopLevel" }, // Node - // { "WindowTitle", "Title" }, // Window - // { "WrapEnabled", "WrapMode" }, // TextEdit - // { "Zfar", "Far" }, // Camera3D - // { "Znear", "Near" }, // Camera3D - // { "Pressed", "ButtonPressed" }, // BaseButton - Will also rename the signal, skipping for now - { "AsNormalmap", "AsNormalMap" }, // NoiseTexture - { "BbcodeText", "Text" }, // RichTextLabel - { "CaretBlinkSpeed", "CaretBlinkInterval" }, // TextEdit, LineEdit - { "CaretMovingByRightClick", "CaretMoveOnRightClick" }, // TextEdit - { "CaretPosition", "CaretColumn" }, // LineEdit - { "CheckVadjust", "CheckVAdjust" }, // Theme - { "CloseHOfs", "CloseHOffset" }, // Theme - { "CloseVOfs", "CloseVOffset" }, // Theme - { "Commentfocus", "CommentFocus" }, // Theme - { "DepthBiasEnable", "DepthBiasEnabled" }, // RDPipelineRasterizationState - { "DragMarginBottom", "DragBottomMargin" }, // Camera2D - { "DragMarginHEnabled", "DragHorizontalEnabled" }, // Camera2D - { "DragMarginLeft", "DragLeftMargin" }, // Camera2D - { "DragMarginRight", "DragRightMargin" }, // Camera2D - { "DragMarginTop", "DragTopMargin" }, // Camera2D - { "DragMarginVEnabled", "DragVerticalEnabled" }, // Camera2D - { "EnabledFocusMode", "FocusMode" }, // BaseButton - Removed - { "ExtraSpacingBottom", "SpacingBottom" }, // Font - { "ExtraSpacingTop", "SpacingTop" }, // Font - { "FocusNeighbourBottom", "FocusNeighborBottom" }, // Control - { "FocusNeighbourLeft", "FocusNeighborLeft" }, // Control - { "FocusNeighbourRight", "FocusNeighborRight" }, // Control - { "FocusNeighbourTop", "FocusNeighborTop" }, // Control - { "FollowViewportEnable", "FollowViewportEnabled" }, // CanvasItem - { "GlobalRateScale", "PlaybackSpeedScale" }, // AudioServer - { "GravityDistanceScale", "GravityPointDistanceScale" }, // Area2D - { "GravityVec", "GravityDirection" }, // Area2D - { "HintTooltip", "TooltipText" }, // Control - { "Hseparation", "HSeparation" }, // Theme - { "IconAlign", "IconAlignment" }, // Button - { "IterationsPerSecond", "PhysicsTicksPerSecond" }, // Engine - { "InvertEnable", "InvertEnabled" }, // Polygon2D - { "MarginBottom", "OffsetBottom" }, // Control broke NinePatchRect, StyleBox - { "MarginLeft", "OffsetLeft" }, // Control broke NinePatchRect, StyleBox - { "MarginRight", "OffsetRight" }, // Control broke NinePatchRect, StyleBox - { "MarginTop", "OffsetTop" }, // Control broke NinePatchRect, StyleBox - { "MidHeight", "Height" }, // CapsuleMesh - { "NeighborDist", "NeighborDistance" }, // NavigationAgent2D, NavigationAgent3D - { "OffsetH", "DragHorizontalOffset" }, // Camera2D - { "OffsetV", "DragVerticalOffset" }, // Camera2D - { "Ofs", "Offset" }, // Theme - { "Oneshot", "OneShot" }, // AnimatedTexture - { "OutOfRangeMode", "MaxPolyphony" }, // AudioStreamPlayer3D - { "PauseMode", "ProcessMode" }, // Node - { "PhysicalScancode", "PhysicalKeycode" }, // InputEventKey - { "PopupExclusive", "Exclusive" }, // Window - { "ProximityFadeEnable", "ProximityFadeEnabled" }, // Material - { "RectPosition", "Position" }, // Control - { "RectGlobalPosition", "GlobalPosition" }, // Control - { "RectSize", "Size" }, // Control - { "RectMinSize", "CustomMinimumSize" }, // Control - { "RectRotation", "Rotation" }, // Control - { "RectScale", "Scale" }, // Control - { "RectPivotOffset", "PivotOffset" }, // Control - { "RectClipContent", "ClipContents" }, // Control - { "RefuseNewNetworkConnections", "RefuseNewConnections" }, // MultiplayerAPI - { "RegionFilterClip", "RegionFilterClipEnabled" }, // Sprite2D - { "ReverbBusEnable", "ReverbBusEnabled" }, // Area3D - { "Selectedframe", "SelectedFrame" }, // Theme - { "SizeOverrideStretch", "Size2dOverrideStretch" }, // SubViewport - { "SlipsOnSlope", "SlideOnSlope" }, // SeparationRayShape2D - { "SmoothingEnabled", "FollowSmoothingEnabled" }, // Camera2D - { "SmoothingSpeed", "FollowSmoothingSpeed" }, // Camera2D - { "SsReflectionsDepthTolerance", "SsrDepthTolerance" }, // Environment - { "SsReflectionsEnabled", "SsrEnabled" }, // Environment - { "SsReflectionsFadeIn", "SsrFadeIn" }, // Environment - { "SsReflectionsFadeOut", "SsrFadeOut" }, // Environment - { "SsReflectionsMaxSteps", "SsrMaxSteps" }, // Environment - { "StateMachineSelectedframe", "StateMachineSelectedFrame" }, // Theme - { "SyntaxHighlighting", "SyntaxHighlighter" }, // TextEdit - { "TabAlign", "TabAlignment" }, // TabContainer - { "TableHseparation", "TableHSeparation" }, // Theme - { "TableVseparation", "TableVSeparation" }, // Theme - { "Translation", "Position" }, // Node3D - broke GLTFNode - { "UnitDb", "VolumeDb" }, // AudioStreamPlayer3D - { "UnitOffset", "ProgressRatio" }, // PathFollow2D, PathFollow3D - { "Vseparation", "VSeparation" }, // Theme - - { nullptr, nullptr }, -}; - -const char *ProjectConverter3To4::gdscript_signals_renames[][2] = { - // {"instantiate","instance"}, // FileSystemDock - // { "hide", "hidden" }, // CanvasItem - function with same name exists - // { "tween_all_completed","loop_finished"}, // Tween - TODO, not sure - // {"changed","settings_changed"}, // EditorSettings - { "about_to_show", "about_to_popup" }, // Popup - { "button_release", "button_released" }, // XRController3D - { "cancelled", "canceled" }, // AcceptDialog - { "item_double_clicked", "item_icon_double_clicked" }, // Tree - { "network_peer_connected", "peer_connected" }, // MultiplayerAPI - { "network_peer_disconnected", "peer_disconnected" }, // MultiplayerAPI - { "network_peer_packet", "peer_packet" }, // MultiplayerAPI - { "node_unselected", "node_deselected" }, // GraphEdit - { "offset_changed", "position_offset_changed" }, // GraphNode - { "settings_changed", "changed" }, // TileMap broke EditorSettings - { "skeleton_updated", "pose_updated" }, // - { "tab_close", "tab_closed" }, // TextEdit - { "tab_hover", "tab_hovered" }, // TextEdit - { "text_entered", "text_submitted" }, // LineEdit - { "tween_completed", "finished" }, // Tween - { "tween_step", "step_finished" }, // Tween - - { nullptr, nullptr }, -}; - -const char *ProjectConverter3To4::csharp_signals_renames[][2] = { - // {"Instantiate","Instance"}, // FileSystemDock - // { "Hide", "Hidden" }, // CanvasItem - function with same name exists - // { "TweenAllCompleted","LoopFinished"}, // Tween - TODO, not sure - // {"Changed","SettingsChanged"}, // EditorSettings - { "AboutToShow", "AboutToPopup" }, // Popup - { "ButtonRelease", "ButtonReleased" }, // XRController3D - { "NetworkPeerConnected", "PeerConnected" }, // MultiplayerAPI - { "NetworkPeerDisconnected", "PeerDisconnected" }, // MultiplayerAPI - { "NetworkPeerPacket", "PeerPacket" }, // MultiplayerAPI - { "NodeUnselected", "NodeDeselected" }, // GraphEdit - { "OffsetChanged", "PositionOffsetChanged" }, // GraphNode - { "SettingsChanged", "Changed" }, // TileMap broke EditorSettings - { "SkeletonUpdated", "PoseUpdated" }, // - { "TabClose", "TabClosed" }, // TextEdit - { "TabHover", "TabHovered" }, // TextEdit - { "TextEntered", "TextSubmitted" }, // LineEdit - { "TweenCompleted", "Finished" }, // Tween - { "TweenStep", "StepFinished" }, // Tween - - { nullptr, nullptr }, - -}; - -const char *ProjectConverter3To4::project_settings_renames[][2] = { - { "audio/channel_disable_threshold_db", "audio/buses/channel_disable_threshold_db" }, - { "audio/channel_disable_time", "audio/buses/channel_disable_time" }, - { "audio/default_bus_layout", "audio/buses/default_bus_layout" }, - { "audio/driver", "audio/driver/driver" }, - { "audio/enable_audio_input", "audio/driver/enable_input" }, - { "audio/mix_rate", "audio/driver/mix_rate" }, - { "audio/output_latency", "audio/driver/output_latency" }, - { "audio/output_latency.web", "audio/driver/output_latency.web" }, - { "audio/video_delay_compensation_ms", "audio/video/video_delay_compensation_ms" }, - { "display/window/vsync/use_vsync", "display/window/vsync/vsync_mode" }, - { "editor/main_run_args", "editor/run/main_run_args" }, - { "gui/common/swap_ok_cancel", "gui/common/swap_cancel_ok" }, - { "network/limits/debugger_stdout/max_chars_per_second", "network/limits/debugger/max_chars_per_second" }, - { "network/limits/debugger_stdout/max_errors_per_second", "network/limits/debugger/max_errors_per_second" }, - { "network/limits/debugger_stdout/max_messages_per_frame", "network/limits/debugger/max_queued_messages" }, - { "network/limits/debugger_stdout/max_warnings_per_second", "network/limits/debugger/max_warnings_per_second" }, - { "network/ssl/certificates", "network/tls/certificate_bundle_override" }, - { "physics/2d/thread_model", "physics/2d/run_on_thread" }, // TODO not sure - { "rendering/environment/default_clear_color", "rendering/environment/defaults/default_clear_color" }, - { "rendering/environment/default_environment", "rendering/environment/defaults/default_environment" }, - { "rendering/quality/depth_prepass/disable_for_vendors", "rendering/driver/depth_prepass/disable_for_vendors" }, - { "rendering/quality/depth_prepass/enable", "rendering/driver/depth_prepass/enable" }, - { "rendering/quality/shading/force_blinn_over_ggx", "rendering/shading/overrides/force_blinn_over_ggx" }, - { "rendering/quality/shading/force_blinn_over_ggx.mobile", "rendering/shading/overrides/force_blinn_over_ggx.mobile" }, - { "rendering/quality/shading/force_lambert_over_burley", "rendering/shading/overrides/force_lambert_over_burley" }, - { "rendering/quality/shading/force_lambert_over_burley.mobile", "rendering/shading/overrides/force_lambert_over_burley.mobile" }, - { "rendering/quality/shading/force_vertex_shading", "rendering/shading/overrides/force_vertex_shading" }, - { "rendering/quality/shading/force_vertex_shading.mobile", "rendering/shading/overrides/force_vertex_shading.mobile" }, - { "rendering/quality/shadow_atlas/quadrant_0_subdiv", "rendering/lights_and_shadows/shadow_atlas/quadrant_0_subdiv" }, - { "rendering/quality/shadow_atlas/quadrant_1_subdiv", "rendering/lights_and_shadows/shadow_atlas/quadrant_1_subdiv" }, - { "rendering/quality/shadow_atlas/quadrant_2_subdiv", "rendering/lights_and_shadows/shadow_atlas/quadrant_2_subdiv" }, - { "rendering/quality/shadow_atlas/quadrant_3_subdiv", "rendering/lights_and_shadows/shadow_atlas/quadrant_3_subdiv" }, - { "rendering/quality/shadow_atlas/size", "rendering/lights_and_shadows/shadow_atlas/size" }, - { "rendering/quality/shadow_atlas/size.mobile", "rendering/lights_and_shadows/shadow_atlas/size.mobile" }, - { "rendering/vram_compression/import_etc2", "rendering/textures/vram_compression/import_etc2_astc" }, - { "rendering/vram_compression/import_s3tc", "rendering/textures/vram_compression/import_s3tc_bptc" }, - { "window/size/width", "window/size/viewport_width" }, - { "window/size/height", "window/size/viewport_height" }, - { "window/size/test_width", "window/size/window_width_override" }, - { "window/size/test_height", "window/size/window_height_override" }, - - { nullptr, nullptr }, -}; - -const char *ProjectConverter3To4::input_map_renames[][2] = { - { ",\"alt\":", ",\"alt_pressed\":" }, - { ",\"shift\":", ",\"shift_pressed\":" }, - { ",\"control\":", ",\"ctrl_pressed\":" }, - { ",\"meta\":", ",\"meta_pressed\":" }, - { ",\"scancode\":", ",\"keycode\":" }, - { ",\"physical_scancode\":", ",\"physical_keycode\":" }, - { ",\"doubleclick\":", ",\"double_click\":" }, - - { nullptr, nullptr }, -}; - -const char *ProjectConverter3To4::builtin_types_renames[][2] = { - { "PoolByteArray", "PackedByteArray" }, - { "PoolColorArray", "PackedColorArray" }, - { "PoolIntArray", "PackedInt32Array" }, - { "PoolRealArray", "PackedFloat32Array" }, - { "PoolStringArray", "PackedStringArray" }, - { "PoolVector2Array", "PackedVector2Array" }, - { "PoolVector3Array", "PackedVector3Array" }, - { "Quat", "Quaternion" }, - { "Transform", "Transform3D" }, - - { nullptr, nullptr }, -}; - -const char *ProjectConverter3To4::shaders_renames[][2] = { - { "ALPHA_SCISSOR", "ALPHA_SCISSOR_THRESHOLD" }, - { "CAMERA_MATRIX", "INV_VIEW_MATRIX" }, - { "INV_CAMERA_MATRIX", "VIEW_MATRIX" }, - { "NORMALMAP", "NORMAL_MAP" }, - { "NORMALMAP_DEPTH", "NORMAL_MAP_DEPTH" }, - { "TRANSMISSION", "BACKLIGHT" }, - { "WORLD_MATRIX", "MODEL_MATRIX" }, - { "depth_draw_alpha_prepass", "depth_draw_opaque" }, - { "hint_albedo", "source_color" }, - { "hint_aniso", "hint_anisotropy" }, - { "hint_black", "hint_default_black" }, - { "hint_black_albedo", "hint_default_black" }, - { "hint_color", "source_color" }, - { "hint_white", "hint_default_white" }, - { nullptr, nullptr }, -}; - -const char *ProjectConverter3To4::class_renames[][2] = { - // { "BulletPhysicsDirectBodyState", "BulletPhysicsDirectBodyState3D" }, // Class is not visible in ClassDB - // { "BulletPhysicsServer", "BulletPhysicsServer3D" }, // Class is not visible in ClassDB - // { "GDScriptFunctionState", "Node3D" }, // TODO - not sure to which should be changed - // { "GDScriptNativeClass", "Node3D" }, // TODO - not sure to which should be changed - // { "InputDefault",""}, // TODO ? - // { "Physics2DDirectBodyStateSW", "GodotPhysicsDirectBodyState2D" }, // Class is not visible in ClassDB - // { "Physics2DShapeQueryResult", "PhysicsShapeQueryResult2D" }, // Class is not visible in ClassDB - // { "PhysicsShapeQueryResult", "PhysicsShapeQueryResult3D" }, // Class is not visible in ClassDB - // { "NativeScript","GDExtension"}, ?? - { "ARVRAnchor", "XRAnchor3D" }, - { "ARVRCamera", "XRCamera3D" }, - { "ARVRController", "XRController3D" }, - { "ARVRInterface", "XRInterface" }, - { "ARVRInterfaceGDNative", "Node3D" }, - { "ARVROrigin", "XROrigin3D" }, - { "ARVRPositionalTracker", "XRPositionalTracker" }, - { "ARVRServer", "XRServer" }, - { "AStar", "AStar3D" }, - { "AnimatedSprite", "AnimatedSprite2D" }, - { "AnimationTreePlayer", "AnimationTree" }, - { "Area", "Area3D" }, // Be careful, this will be used everywhere - { "AudioStreamOGGVorbis", "AudioStreamOggVorbis" }, - { "AudioStreamRandomPitch", "AudioStreamRandomizer" }, - { "AudioStreamSample", "AudioStreamWAV" }, - { "BakedLightmap", "LightmapGI" }, - { "BakedLightmapData", "LightmapGIData" }, - { "BitmapFont", "FontFile" }, - { "BoneAttachment", "BoneAttachment3D" }, - { "BoxShape", "BoxShape3D" }, - { "CPUParticles", "CPUParticles3D" }, - { "CSGBox", "CSGBox3D" }, - { "CSGCombiner", "CSGCombiner3D" }, - { "CSGCylinder", "CSGCylinder3D" }, - { "CSGMesh", "CSGMesh3D" }, - { "CSGPolygon", "CSGPolygon3D" }, - { "CSGPrimitive", "CSGPrimitive3D" }, - { "CSGShape", "CSGShape3D" }, - { "CSGSphere", "CSGSphere3D" }, - { "CSGTorus", "CSGTorus3D" }, - { "Camera", "Camera3D" }, // Be careful, this will be used everywhere - { "CapsuleShape", "CapsuleShape3D" }, - { "ClippedCamera", "Camera3D" }, - { "CollisionObject", "CollisionObject3D" }, - { "CollisionPolygon", "CollisionPolygon3D" }, - { "CollisionShape", "CollisionShape3D" }, - { "ConcavePolygonShape", "ConcavePolygonShape3D" }, - { "ConeTwistJoint", "ConeTwistJoint3D" }, - { "ConvexPolygonShape", "ConvexPolygonShape3D" }, - { "CubeMap", "Cubemap" }, - { "CubeMesh", "BoxMesh" }, - { "CylinderShape", "CylinderShape3D" }, - { "DirectionalLight", "DirectionalLight3D" }, - { "DynamicFont", "FontFile" }, - { "DynamicFontData", "FontFile" }, - { "EditorNavigationMeshGenerator", "NavigationMeshGenerator" }, - { "EditorSceneImporter", "EditorSceneFormatImporter" }, - { "EditorSceneImporterFBX", "EditorSceneFormatImporterFBX" }, - { "EditorSceneImporterGLTF", "EditorSceneFormatImporterGLTF" }, - { "EditorSpatialGizmo", "EditorNode3DGizmo" }, - { "EditorSpatialGizmoPlugin", "EditorNode3DGizmoPlugin" }, - { "ExternalTexture", "ImageTexture" }, - { "FuncRef", "Callable" }, - { "GIProbe", "VoxelGI" }, - { "GIProbeData", "VoxelGIData" }, - { "Generic6DOFJoint", "Generic6DOFJoint3D" }, - { "Geometry", "Geometry2D" }, // Geometry class is split between Geometry2D and Geometry3D so we need to choose one - { "GeometryInstance", "GeometryInstance3D" }, - { "GradientTexture", "GradientTexture2D" }, - { "HeightMapShape", "HeightMapShape3D" }, - { "HingeJoint", "HingeJoint3D" }, - { "IP_Unix", "IPUnix" }, - { "ImmediateGeometry", "ImmediateMesh" }, - { "ImmediateGeometry3D", "ImmediateMesh" }, - { "InterpolatedCamera", "Camera3D" }, - { "InterpolatedCamera3D", "Camera3D" }, - { "JSONParseResult", "JSON" }, - { "Joint", "Joint3D" }, - { "KinematicBody", "CharacterBody3D" }, - { "KinematicBody2D", "CharacterBody2D" }, - { "KinematicCollision", "KinematicCollision3D" }, - { "LargeTexture", "ImageTexture" }, - { "Light", "Light3D" }, - { "Light2D", "PointLight2D" }, - { "LineShape2D", "WorldBoundaryShape2D" }, - { "Listener", "AudioListener3D" }, - { "Listener2D", "AudioListener2D" }, - { "MeshInstance", "MeshInstance3D" }, - { "MultiMeshInstance", "MultiMeshInstance3D" }, - { "MultiplayerPeerGDNative", "MultiplayerPeerExtension" }, - { "Navigation", "Node3D" }, - { "Navigation2D", "Node2D" }, - { "Navigation2DServer", "NavigationServer2D" }, - { "Navigation3D", "Node3D" }, - { "NavigationAgent", "NavigationAgent3D" }, - { "NavigationMeshInstance", "NavigationRegion3D" }, - { "NavigationObstacle", "NavigationObstacle3D" }, - { "NavigationPolygonInstance", "NavigationRegion2D" }, - { "NavigationRegion", "NavigationRegion3D" }, - { "NavigationServer", "NavigationServer3D" }, - { "NetworkedMultiplayerENet", "ENetMultiplayerPeer" }, - { "NetworkedMultiplayerPeer", "MultiplayerPeer" }, - { "Occluder", "OccluderInstance3D" }, - { "OmniLight", "OmniLight3D" }, - { "PHashTranslation", "OptimizedTranslation" }, - { "PacketPeerGDNative", "PacketPeerExtension" }, - { "PanoramaSky", "Sky" }, - { "Particles", "GPUParticles3D" }, // Be careful, this will be used everywhere - { "Particles2D", "GPUParticles2D" }, - { "ParticlesMaterial", "ParticleProcessMaterial" }, - { "Path", "Path3D" }, // Be careful, this will be used everywhere - { "PathFollow", "PathFollow3D" }, - { "PhysicalBone", "PhysicalBone3D" }, - { "Physics2DDirectBodyState", "PhysicsDirectBodyState2D" }, - { "Physics2DDirectSpaceState", "PhysicsDirectSpaceState2D" }, - { "Physics2DServer", "PhysicsServer2D" }, - { "Physics2DServerSW", "GodotPhysicsServer2D" }, - { "Physics2DShapeQueryParameters", "PhysicsShapeQueryParameters2D" }, - { "Physics2DTestMotionResult", "PhysicsTestMotionResult2D" }, - { "PhysicsBody", "PhysicsBody3D" }, - { "PhysicsDirectBodyState", "PhysicsDirectBodyState3D" }, - { "PhysicsDirectSpaceState", "PhysicsDirectSpaceState3D" }, - { "PhysicsServer", "PhysicsServer3D" }, - { "PhysicsShapeQueryParameters", "PhysicsShapeQueryParameters3D" }, - { "PhysicsTestMotionResult", "PhysicsTestMotionResult3D" }, - { "PinJoint", "PinJoint3D" }, - { "PlaneShape", "WorldBoundaryShape3D" }, - { "PopupDialog", "Popup" }, - { "Position2D", "Marker2D" }, - { "Position3D", "Marker3D" }, - { "ProceduralSky", "Sky" }, - { "RayCast", "RayCast3D" }, - { "RayShape", "SeparationRayShape3D" }, - { "RayShape2D", "SeparationRayShape2D" }, - { "Reference", "RefCounted" }, // Be careful, this will be used everywhere - { "RemoteTransform", "RemoteTransform3D" }, - { "ResourceInteractiveLoader", "ResourceLoader" }, - { "RigidBody", "RigidBody3D" }, - { "SceneTreeTween", "Tween" }, - { "Shape", "Shape3D" }, // Be careful, this will be used everywhere - { "ShortCut", "Shortcut" }, - { "Skeleton", "Skeleton3D" }, - { "SkeletonIK", "SkeletonIK3D" }, - { "SliderJoint", "SliderJoint3D" }, - { "SoftBody", "SoftBody3D" }, - { "Spatial", "Node3D" }, - { "SpatialGizmo", "Node3DGizmo" }, - { "SpatialMaterial", "StandardMaterial3D" }, - { "SphereShape", "SphereShape3D" }, - { "SpotLight", "SpotLight3D" }, - { "SpringArm", "SpringArm3D" }, - { "Sprite", "Sprite2D" }, - { "StaticBody", "StaticBody3D" }, - { "StreamCubemap", "CompressedCubemap" }, - { "StreamCubemapArray", "CompressedCubemapArray" }, - { "StreamPeerGDNative", "StreamPeerExtension" }, - { "StreamPeerSSL", "StreamPeerTLS" }, - { "StreamTexture", "CompressedTexture2D" }, - { "StreamTexture2D", "CompressedTexture2D" }, - { "StreamTexture2DArray", "CompressedTexture2DArray" }, - { "StreamTextureLayered", "CompressedTextureLayered" }, - { "TCP_Server", "TCPServer" }, - { "Tabs", "TabBar" }, // Be careful, this will be used everywhere - { "TextFile", "Node3D" }, - { "Texture", "Texture2D" }, // May broke TextureRect - { "TextureArray", "Texture2DArray" }, - { "TextureProgress", "TextureProgressBar" }, - { "ToolButton", "Button" }, - { "VehicleBody", "VehicleBody3D" }, - { "VehicleWheel", "VehicleWheel3D" }, - { "VideoPlayer", "VideoStreamPlayer" }, - { "Viewport", "SubViewport" }, - { "ViewportContainer", "SubViewportContainer" }, - { "VisibilityEnabler", "VisibleOnScreenEnabler3D" }, - { "VisibilityEnabler2D", "VisibleOnScreenEnabler2D" }, - { "VisibilityNotifier", "VisibleOnScreenNotifier3D" }, - { "VisibilityNotifier2D", "VisibleOnScreenNotifier2D" }, - { "VisibilityNotifier3D", "VisibleOnScreenNotifier3D" }, - { "VisualInstance", "VisualInstance3D" }, - { "VisualServer", "RenderingServer" }, - { "VisualShaderNodeCubeMap", "VisualShaderNodeCubemap" }, - { "VisualShaderNodeScalarClamp", "VisualShaderNodeClamp" }, - { "VisualShaderNodeScalarConstant", "VisualShaderNodeFloatConstant" }, - { "VisualShaderNodeScalarFunc", "VisualShaderNodeFloatFunc" }, - { "VisualShaderNodeScalarInterp", "VisualShaderNodeMix" }, - { "VisualShaderNodeScalarOp", "VisualShaderNodeFloatOp" }, - { "VisualShaderNodeScalarSmoothStep", "VisualShaderNodeSmoothStep" }, - { "VisualShaderNodeScalarSwitch", "VisualShaderNodeSwitch" }, - { "VisualShaderNodeScalarTransformMult", "VisualShaderNodeTransformOp" }, - { "VisualShaderNodeTransformMult", "VisualShaderNode" }, - { "VisualShaderNodeVectorClamp", "VisualShaderNodeClamp" }, - { "VisualShaderNodeVectorInterp", "VisualShaderNodeMix" }, - { "VisualShaderNodeVectorScalarMix", "VisualShaderNodeMix" }, - { "VisualShaderNodeVectorScalarSmoothStep", "VisualShaderNodeSmoothStep" }, - { "VisualShaderNodeVectorScalarStep", "VisualShaderNodeStep" }, - { "VisualShaderNodeVectorSmoothStep", "VisualShaderNodeSmoothStep" }, - { "VisualShaderNodeBooleanUniform", "VisualShaderNodeBooleanParameter" }, - { "VisualShaderNodeColorUniform", "VisualShaderNodeColorParameter" }, - { "VisualShaderNodeScalarUniform", "VisualShaderNodeFloatParameter" }, - { "VisualShaderNodeCubemapUniform", "VisualShaderNodeCubemapParameter" }, - { "VisualShaderNodeTextureUniform", "VisualShaderNodeTexture2DParameter" }, - { "VisualShaderNodeTextureUniformTriplanar", "VisualShaderNodeTextureParameterTriplanar" }, - { "VisualShaderNodeTransformUniform", "VisualShaderNodeTransformParameter" }, - { "VisualShaderNodeVec3Uniform", "VisualShaderNodeVec3Parameter" }, - { "VisualShaderNodeUniform", "VisualShaderNodeParameter" }, - { "VisualShaderNodeUniformRef", "VisualShaderNodeParameterRef" }, - { "WebRTCDataChannelGDNative", "WebRTCDataChannelExtension" }, - { "WebRTCMultiplayer", "WebRTCMultiplayerPeer" }, - { "WebRTCPeerConnectionGDNative", "WebRTCPeerConnectionExtension" }, - { "WindowDialog", "Window" }, - { "World", "World3D" }, // Be careful, this will be used everywhere - { "XRAnchor", "XRAnchor3D" }, - { "XRController", "XRController3D" }, - { "XROrigin", "XROrigin3D" }, - { "YSort", "Node2D" }, - - { "CullInstance", "Node3D" }, // Probably this type needs to be added to Godot 4.0, since it is for now only available only in Godot 3.x - { "RoomGroup", "Node3D" }, // Probably this type needs to be added to Godot 4.0, since it is for now only available only in Godot 3.x - { "Room", "Node3D" }, // Probably this type needs to be added to Godot 4.0, since it is for now only available only in Godot 3.x - { "RoomManager", "Node3D" }, // Probably this type needs to be added to Godot 4.0, since it is for now only available only in Godot 3.x - { "Portal", "Node3D" }, // Probably this type needs to be added to Godot 4.0, since it is for now only available only in Godot 3.x - - { nullptr, nullptr }, -}; - -const char *ProjectConverter3To4::ProjectConverter3To4::color_renames[][2] = { - { "aliceblue", "ALICE_BLUE" }, - { "antiquewhite", "ANTIQUE_WHITE" }, - { "aqua", "AQUA" }, - { "aquamarine", "AQUAMARINE" }, - { "azure", "AZURE" }, - { "beige", "BEIGE" }, - { "bisque", "BISQUE" }, - { "black", "BLACK" }, - { "blanchedalmond", "BLANCHED_ALMOND" }, - { "blue", "BLUE" }, - { "blueviolet", "BLUE_VIOLET" }, - { "brown", "BROWN" }, - { "burlywood", "BURLYWOOD" }, - { "cadetblue", "CADET_BLUE" }, - { "chartreuse", "CHARTREUSE" }, - { "chocolate", "CHOCOLATE" }, - { "coral", "CORAL" }, - { "cornflowerblue", "CORNFLOWER_BLUE" }, - { "cornsilk", "CORNSILK" }, - { "crimson", "CRIMSON" }, - { "cyan", "CYAN" }, - { "darkblue", "DARK_BLUE" }, - { "darkcyan", "DARK_CYAN" }, - { "darkgoldenrod", "DARK_GOLDENROD" }, - { "darkgray", "DARK_GRAY" }, - { "darkgreen", "DARK_GREEN" }, - { "darkkhaki", "DARK_KHAKI" }, - { "darkmagenta", "DARK_MAGENTA" }, - { "darkolivegreen", "DARK_OLIVE_GREEN" }, - { "darkorange", "DARK_ORANGE" }, - { "darkorchid", "DARK_ORCHID" }, - { "darkred", "DARK_RED" }, - { "darksalmon", "DARK_SALMON" }, - { "darkseagreen", "DARK_SEA_GREEN" }, - { "darkslateblue", "DARK_SLATE_BLUE" }, - { "darkslategray", "DARK_SLATE_GRAY" }, - { "darkturquoise", "DARK_TURQUOISE" }, - { "darkviolet", "DARK_VIOLET" }, - { "deeppink", "DEEP_PINK" }, - { "deepskyblue", "DEEP_SKY_BLUE" }, - { "dimgray", "DIM_GRAY" }, - { "dodgerblue", "DODGER_BLUE" }, - { "firebrick", "FIREBRICK" }, - { "floralwhite", "FLORAL_WHITE" }, - { "forestgreen", "FOREST_GREEN" }, - { "fuchsia", "FUCHSIA" }, - { "gainsboro", "GAINSBORO" }, - { "ghostwhite", "GHOST_WHITE" }, - { "gold", "GOLD" }, - { "goldenrod", "GOLDENROD" }, - { "gray", "GRAY" }, - { "green", "GREEN" }, - { "greenyellow", "GREEN_YELLOW" }, - { "honeydew", "HONEYDEW" }, - { "hotpink", "HOT_PINK" }, - { "indianred", "INDIAN_RED" }, - { "indigo", "INDIGO" }, - { "ivory", "IVORY" }, - { "khaki", "KHAKI" }, - { "lavender", "LAVENDER" }, - { "lavenderblush", "LAVENDER_BLUSH" }, - { "lawngreen", "LAWN_GREEN" }, - { "lemonchiffon", "LEMON_CHIFFON" }, - { "lightblue", "LIGHT_BLUE" }, - { "lightcoral", "LIGHT_CORAL" }, - { "lightcyan", "LIGHT_CYAN" }, - { "lightgoldenrod", "LIGHT_GOLDENROD" }, - { "lightgray", "LIGHT_GRAY" }, - { "lightgreen", "LIGHT_GREEN" }, - { "lightpink", "LIGHT_PINK" }, - { "lightsalmon", "LIGHT_SALMON" }, - { "lightseagreen", "LIGHT_SEA_GREEN" }, - { "lightskyblue", "LIGHT_SKY_BLUE" }, - { "lightslategray", "LIGHT_SLATE_GRAY" }, - { "lightsteelblue", "LIGHT_STEEL_BLUE" }, - { "lightyellow", "LIGHT_YELLOW" }, - { "lime", "LIME" }, - { "limegreen", "LIME_GREEN" }, - { "linen", "LINEN" }, - { "magenta", "MAGENTA" }, - { "maroon", "MAROON" }, - { "mediumaquamarine", "MEDIUM_AQUAMARINE" }, - { "mediumblue", "MEDIUM_BLUE" }, - { "mediumorchid", "MEDIUM_ORCHID" }, - { "mediumpurple", "MEDIUM_PURPLE" }, - { "mediumseagreen", "MEDIUM_SEA_GREEN" }, - { "mediumslateblue", "MEDIUM_SLATE_BLUE" }, - { "mediumspringgreen", "MEDIUM_SPRING_GREEN" }, - { "mediumturquoise", "MEDIUM_TURQUOISE" }, - { "mediumvioletred", "MEDIUM_VIOLET_RED" }, - { "midnightblue", "MIDNIGHT_BLUE" }, - { "mintcream", "MINT_CREAM" }, - { "mistyrose", "MISTY_ROSE" }, - { "moccasin", "MOCCASIN" }, - { "navajowhite", "NAVAJO_WHITE" }, - { "navyblue", "NAVY_BLUE" }, - { "oldlace", "OLD_LACE" }, - { "olive", "OLIVE" }, - { "olivedrab", "OLIVE_DRAB" }, - { "orange", "ORANGE" }, - { "orangered", "ORANGE_RED" }, - { "orchid", "ORCHID" }, - { "palegoldenrod", "PALE_GOLDENROD" }, - { "palegreen", "PALE_GREEN" }, - { "paleturquoise", "PALE_TURQUOISE" }, - { "palevioletred", "PALE_VIOLET_RED" }, - { "papayawhip", "PAPAYA_WHIP" }, - { "peachpuff", "PEACH_PUFF" }, - { "peru", "PERU" }, - { "pink", "PINK" }, - { "plum", "PLUM" }, - { "powderblue", "POWDER_BLUE" }, - { "purple", "PURPLE" }, - { "rebeccapurple", "REBECCA_PURPLE" }, - { "red", "RED" }, - { "rosybrown", "ROSY_BROWN" }, - { "royalblue", "ROYAL_BLUE" }, - { "saddlebrown", "SADDLE_BROWN" }, - { "salmon", "SALMON" }, - { "sandybrown", "SANDY_BROWN" }, - { "seagreen", "SEA_GREEN" }, - { "seashell", "SEASHELL" }, - { "sienna", "SIENNA" }, - { "silver", "SILVER" }, - { "skyblue", "SKY_BLUE" }, - { "slateblue", "SLATE_BLUE" }, - { "slategray", "SLATE_GRAY" }, - { "snow", "SNOW" }, - { "springgreen", "SPRING_GREEN" }, - { "steelblue", "STEEL_BLUE" }, - { "tan", "TAN" }, - { "teal", "TEAL" }, - { "thistle", "THISTLE" }, - { "tomato", "TOMATO" }, - { "transparent", "TRANSPARENT" }, - { "turquoise", "TURQUOISE" }, - { "violet", "VIOLET" }, - { "webgray", "WEB_GRAY" }, - { "webgreen", "WEB_GREEN" }, - { "webmaroon", "WEB_MAROON" }, - { "webpurple", "WEB_PURPLE" }, - { "wheat", "WHEAT" }, - { "white", "WHITE" }, - { "whitesmoke", "WHITE_SMOKE" }, - { "yellow", "YELLOW" }, - { "yellowgreen", "YELLOW_GREEN" }, - - { nullptr, nullptr }, -}; +#include "editor/renames_map_3_to_4.h" +#include "modules/regex/regex.h" // Find "OS.set_property(x)", capturing x into $1. static String make_regex_gds_os_property_set(String name_set) { @@ -1928,70 +166,71 @@ public: // Common. { // Enum. - for (unsigned int current_index = 0; enum_renames[current_index][0]; current_index++) { - enum_regexes.push_back(memnew(RegEx(String("\\b") + enum_renames[current_index][0] + "\\b"))); + for (unsigned int current_index = 0; RenamesMap3To4::enum_renames[current_index][0]; current_index++) { + enum_regexes.push_back(memnew(RegEx(String("\\b") + RenamesMap3To4::enum_renames[current_index][0] + "\\b"))); } // GDScript functions. - for (unsigned int current_index = 0; gdscript_function_renames[current_index][0]; current_index++) { - gdscript_function_regexes.push_back(memnew(RegEx(String("\\b") + gdscript_function_renames[current_index][0] + "\\b"))); + for (unsigned int current_index = 0; RenamesMap3To4::gdscript_function_renames[current_index][0]; current_index++) { + gdscript_function_regexes.push_back(memnew(RegEx(String("\\b") + RenamesMap3To4::gdscript_function_renames[current_index][0] + "\\b"))); } // Project Settings. - for (unsigned int current_index = 0; project_settings_renames[current_index][0]; current_index++) { - project_settings_regexes.push_back(memnew(RegEx(String("\\b") + project_settings_renames[current_index][0] + "\\b"))); + for (unsigned int current_index = 0; RenamesMap3To4::project_settings_renames[current_index][0]; current_index++) { + project_settings_regexes.push_back(memnew(RegEx(String("\\b") + RenamesMap3To4::project_settings_renames[current_index][0] + "\\b"))); } // Input Map. - for (unsigned int current_index = 0; input_map_renames[current_index][0]; current_index++) { - input_map_regexes.push_back(memnew(RegEx(String("\\b") + input_map_renames[current_index][0] + "\\b"))); + for (unsigned int current_index = 0; RenamesMap3To4::input_map_renames[current_index][0]; current_index++) { + input_map_regexes.push_back(memnew(RegEx(String("\\b") + RenamesMap3To4::input_map_renames[current_index][0] + "\\b"))); } // GDScript properties. - for (unsigned int current_index = 0; gdscript_properties_renames[current_index][0]; current_index++) { - gdscript_properties_regexes.push_back(memnew(RegEx(String("\\b") + gdscript_properties_renames[current_index][0] + "\\b"))); + for (unsigned int current_index = 0; RenamesMap3To4::gdscript_properties_renames[current_index][0]; current_index++) { + gdscript_properties_regexes.push_back(memnew(RegEx(String("\\b") + RenamesMap3To4::gdscript_properties_renames[current_index][0] + "\\b"))); } // GDScript Signals. - for (unsigned int current_index = 0; gdscript_signals_renames[current_index][0]; current_index++) { - gdscript_signals_regexes.push_back(memnew(RegEx(String("\\b") + gdscript_signals_renames[current_index][0] + "\\b"))); + for (unsigned int current_index = 0; RenamesMap3To4::gdscript_signals_renames[current_index][0]; current_index++) { + gdscript_signals_regexes.push_back(memnew(RegEx(String("\\b") + RenamesMap3To4::gdscript_signals_renames[current_index][0] + "\\b"))); } // Shaders. - for (unsigned int current_index = 0; shaders_renames[current_index][0]; current_index++) { - shaders_regexes.push_back(memnew(RegEx(String("\\b") + shaders_renames[current_index][0] + "\\b"))); + for (unsigned int current_index = 0; RenamesMap3To4::shaders_renames[current_index][0]; current_index++) { + shaders_regexes.push_back(memnew(RegEx(String("\\b") + RenamesMap3To4::shaders_renames[current_index][0] + "\\b"))); } // Builtin types. - for (unsigned int current_index = 0; builtin_types_renames[current_index][0]; current_index++) { - builtin_types_regexes.push_back(memnew(RegEx(String("\\b") + builtin_types_renames[current_index][0] + "\\b"))); + for (unsigned int current_index = 0; RenamesMap3To4::builtin_types_renames[current_index][0]; current_index++) { + builtin_types_regexes.push_back(memnew(RegEx(String("\\b") + RenamesMap3To4::builtin_types_renames[current_index][0] + "\\b"))); } // CSharp function renames. - for (unsigned int current_index = 0; csharp_function_renames[current_index][0]; current_index++) { - csharp_function_regexes.push_back(memnew(RegEx(String("\\b") + csharp_function_renames[current_index][0] + "\\b"))); + for (unsigned int current_index = 0; RenamesMap3To4::csharp_function_renames[current_index][0]; current_index++) { + csharp_function_regexes.push_back(memnew(RegEx(String("\\b") + RenamesMap3To4::csharp_function_renames[current_index][0] + "\\b"))); } // CSharp properties renames. - for (unsigned int current_index = 0; csharp_properties_renames[current_index][0]; current_index++) { - csharp_properties_regexes.push_back(memnew(RegEx(String("\\b") + csharp_properties_renames[current_index][0] + "\\b"))); + for (unsigned int current_index = 0; RenamesMap3To4::csharp_properties_renames[current_index][0]; current_index++) { + csharp_properties_regexes.push_back(memnew(RegEx(String("\\b") + RenamesMap3To4::csharp_properties_renames[current_index][0] + "\\b"))); } // CSharp signals renames. - for (unsigned int current_index = 0; csharp_signals_renames[current_index][0]; current_index++) { - csharp_signal_regexes.push_back(memnew(RegEx(String("\\b") + csharp_signals_renames[current_index][0] + "\\b"))); + for (unsigned int current_index = 0; RenamesMap3To4::csharp_signals_renames[current_index][0]; current_index++) { + csharp_signal_regexes.push_back(memnew(RegEx(String("\\b") + RenamesMap3To4::csharp_signals_renames[current_index][0] + "\\b"))); } } // Colors. { - for (unsigned int current_index = 0; color_renames[current_index][0]; current_index++) { - color_regexes.push_back(memnew(RegEx(String("\\bColor.") + color_renames[current_index][0] + "\\b"))); - color_renamed.push_back(String("Color.") + color_renames[current_index][1]); + for (unsigned int current_index = 0; RenamesMap3To4::color_renames[current_index][0]; current_index++) { + color_regexes.push_back(memnew(RegEx(String("\\bColor.") + RenamesMap3To4::color_renames[current_index][0] + "\\b"))); + color_renamed.push_back(String("Color.") + RenamesMap3To4::color_renames[current_index][1]); } } // Classes. { - for (unsigned int current_index = 0; class_renames[current_index][0]; current_index++) { - class_tscn_regexes.push_back(memnew(RegEx(String("\\b") + class_renames[current_index][0] + ".tscn\\b"))); - class_gd_regexes.push_back(memnew(RegEx(String("\\b") + class_renames[current_index][0] + ".gd\\b"))); - class_shader_regexes.push_back(memnew(RegEx(String("\\b") + class_renames[current_index][0] + ".shader\\b"))); + for (unsigned int current_index = 0; RenamesMap3To4::class_renames[current_index][0]; current_index++) { + const String class_name = RenamesMap3To4::class_renames[current_index][0]; + class_tscn_regexes.push_back(memnew(RegEx(String("\\b") + class_name + ".tscn\\b"))); + class_gd_regexes.push_back(memnew(RegEx(String("\\b") + class_name + ".gd\\b"))); + class_shader_regexes.push_back(memnew(RegEx(String("\\b") + class_name + ".shader\\b"))); - class_regexes.push_back(memnew(RegEx(String("\\b") + class_renames[current_index][0] + "\\b"))); + class_regexes.push_back(memnew(RegEx(String("\\b") + class_name + "\\b"))); - class_temp_tscn_renames.push_back(String(class_renames[current_index][0]) + ".tscn"); - class_temp_gd_renames.push_back(String(class_renames[current_index][0]) + ".gd"); - class_temp_shader_renames.push_back(String(class_renames[current_index][0]) + ".shader"); + class_temp_tscn_renames.push_back(class_name + ".tscn"); + class_temp_gd_renames.push_back(class_name + ".gd"); + class_temp_shader_renames.push_back(class_name + ".shader"); } } } @@ -2047,7 +286,7 @@ ProjectConverter3To4::ProjectConverter3To4(int p_maximum_file_size_kb, int p_max } // Function responsible for converting project. -int ProjectConverter3To4::convert() { +bool ProjectConverter3To4::convert() { print_line("Starting conversion."); uint64_t conversion_start_time = Time::get_singleton()->get_ticks_msec(); @@ -2056,8 +295,8 @@ int ProjectConverter3To4::convert() { int cached_maximum_line_length = maximum_line_length; maximum_line_length = 10000; // Use only for tests bigger value, to not break them. - ERR_FAIL_COND_V_MSG(!test_array_names(), ERROR_CODE, "Cannot start converting due to problems with data in arrays."); - ERR_FAIL_COND_V_MSG(!test_conversion(reg_container), ERROR_CODE, "Cannot start converting due to problems with converting arrays."); + ERR_FAIL_COND_V_MSG(!test_array_names(), false, "Cannot start converting due to problems with data in arrays."); + ERR_FAIL_COND_V_MSG(!test_conversion(reg_container), false, "Cannot start converting due to problems with converting arrays."); maximum_line_length = cached_maximum_line_length; @@ -2066,16 +305,16 @@ int ProjectConverter3To4::convert() { { String converter_text = "; Project was converted by built-in tool to Godot 4.0"; - ERR_FAIL_COND_V_MSG(!FileAccess::exists("project.godot"), ERROR_CODE, "Current working directory doesn't contain a \"project.godot\" file for a Godot 3 project."); + ERR_FAIL_COND_V_MSG(!FileAccess::exists("project.godot"), false, "Current working directory doesn't contain a \"project.godot\" file for a Godot 3 project."); Error err = OK; String project_godot_content = FileAccess::get_file_as_string("project.godot", &err); - ERR_FAIL_COND_V_MSG(err != OK, ERROR_CODE, "Unable to read \"project.godot\"."); - ERR_FAIL_COND_V_MSG(project_godot_content.contains(converter_text), ERROR_CODE, "Project was already converted with this tool."); + ERR_FAIL_COND_V_MSG(err != OK, false, "Unable to read \"project.godot\"."); + ERR_FAIL_COND_V_MSG(project_godot_content.contains(converter_text), false, "Project was already converted with this tool."); Ref<FileAccess> file = FileAccess::open("project.godot", FileAccess::WRITE); - ERR_FAIL_COND_V_MSG(file.is_null(), ERROR_CODE, "Unable to open \"project.godot\"."); + ERR_FAIL_COND_V_MSG(file.is_null(), false, "Unable to open \"project.godot\"."); file->store_string(converter_text + "\n" + project_godot_content); } @@ -2116,59 +355,59 @@ int ProjectConverter3To4::convert() { if (file_name.ends_with(".gd")) { rename_classes(lines, reg_container); // Using only specialized function. - rename_common(enum_renames, reg_container.enum_regexes, lines); + rename_common(RenamesMap3To4::enum_renames, reg_container.enum_regexes, lines); rename_colors(lines, reg_container); // Require to additional rename. - rename_common(gdscript_function_renames, reg_container.gdscript_function_regexes, lines); + rename_common(RenamesMap3To4::gdscript_function_renames, reg_container.gdscript_function_regexes, lines); rename_gdscript_functions(lines, reg_container, false); // Require to additional rename. - rename_common(project_settings_renames, reg_container.project_settings_regexes, lines); + rename_common(RenamesMap3To4::project_settings_renames, reg_container.project_settings_regexes, lines); rename_gdscript_keywords(lines, reg_container); - rename_common(gdscript_properties_renames, reg_container.gdscript_properties_regexes, lines); - rename_common(gdscript_signals_renames, reg_container.gdscript_signals_regexes, lines); - rename_common(shaders_renames, reg_container.shaders_regexes, lines); - rename_common(builtin_types_renames, reg_container.builtin_types_regexes, lines); + rename_common(RenamesMap3To4::gdscript_properties_renames, reg_container.gdscript_properties_regexes, lines); + rename_common(RenamesMap3To4::gdscript_signals_renames, reg_container.gdscript_signals_regexes, lines); + rename_common(RenamesMap3To4::shaders_renames, reg_container.shaders_regexes, lines); + rename_common(RenamesMap3To4::builtin_types_renames, reg_container.builtin_types_regexes, lines); custom_rename(lines, "\\.shader", ".gdshader"); } else if (file_name.ends_with(".tscn")) { rename_classes(lines, reg_container); // Using only specialized function. - rename_common(enum_renames, reg_container.enum_regexes, lines); + rename_common(RenamesMap3To4::enum_renames, reg_container.enum_regexes, lines); rename_colors(lines, reg_container); // Require to do additional renames. - rename_common(gdscript_function_renames, reg_container.gdscript_function_regexes, lines); + rename_common(RenamesMap3To4::gdscript_function_renames, reg_container.gdscript_function_regexes, lines); rename_gdscript_functions(lines, reg_container, true); // Require to do additional renames. - rename_common(project_settings_renames, reg_container.project_settings_regexes, lines); + rename_common(RenamesMap3To4::project_settings_renames, reg_container.project_settings_regexes, lines); rename_gdscript_keywords(lines, reg_container); - rename_common(gdscript_properties_renames, reg_container.gdscript_properties_regexes, lines); - rename_common(gdscript_signals_renames, reg_container.gdscript_signals_regexes, lines); - rename_common(shaders_renames, reg_container.shaders_regexes, lines); - rename_common(builtin_types_renames, reg_container.builtin_types_regexes, lines); + rename_common(RenamesMap3To4::gdscript_properties_renames, reg_container.gdscript_properties_regexes, lines); + rename_common(RenamesMap3To4::gdscript_signals_renames, reg_container.gdscript_signals_regexes, lines); + rename_common(RenamesMap3To4::shaders_renames, reg_container.shaders_regexes, lines); + rename_common(RenamesMap3To4::builtin_types_renames, reg_container.builtin_types_regexes, lines); custom_rename(lines, "\\.shader", ".gdshader"); } else if (file_name.ends_with(".cs")) { // TODO, C# should use different methods. rename_classes(lines, reg_container); // Using only specialized function. - rename_common(csharp_function_renames, reg_container.csharp_function_regexes, lines); - rename_common(builtin_types_renames, reg_container.builtin_types_regexes, lines); - rename_common(csharp_properties_renames, reg_container.csharp_properties_regexes, lines); - rename_common(csharp_signals_renames, reg_container.csharp_signal_regexes, lines); + rename_common(RenamesMap3To4::csharp_function_renames, reg_container.csharp_function_regexes, lines); + rename_common(RenamesMap3To4::builtin_types_renames, reg_container.builtin_types_regexes, lines); + rename_common(RenamesMap3To4::csharp_properties_renames, reg_container.csharp_properties_regexes, lines); + rename_common(RenamesMap3To4::csharp_signals_renames, reg_container.csharp_signal_regexes, lines); rename_csharp_functions(lines, reg_container); rename_csharp_attributes(lines, reg_container); custom_rename(lines, "public class ", "public partial class "); } else if (file_name.ends_with(".gdshader") || file_name.ends_with(".shader")) { - rename_common(shaders_renames, reg_container.shaders_regexes, lines); + rename_common(RenamesMap3To4::shaders_renames, reg_container.shaders_regexes, lines); } else if (file_name.ends_with("tres")) { rename_classes(lines, reg_container); // Using only specialized function. - rename_common(shaders_renames, reg_container.shaders_regexes, lines); - rename_common(builtin_types_renames, reg_container.builtin_types_regexes, lines); + rename_common(RenamesMap3To4::shaders_renames, reg_container.shaders_regexes, lines); + rename_common(RenamesMap3To4::builtin_types_renames, reg_container.builtin_types_regexes, lines); custom_rename(lines, "\\.shader", ".gdshader"); } else if (file_name.ends_with("project.godot")) { - rename_common(project_settings_renames, reg_container.project_settings_regexes, lines); - rename_common(builtin_types_renames, reg_container.builtin_types_regexes, lines); - rename_common(input_map_renames, reg_container.input_map_regexes, lines); + rename_common(RenamesMap3To4::project_settings_renames, reg_container.project_settings_regexes, lines); + rename_common(RenamesMap3To4::builtin_types_renames, reg_container.builtin_types_regexes, lines); + rename_common(RenamesMap3To4::input_map_renames, reg_container.input_map_regexes, lines); } else if (file_name.ends_with(".csproj")) { // TODO } else { @@ -2216,11 +455,11 @@ int ProjectConverter3To4::convert() { print_line(vformat("Conversion ended - all files(%d), converted files: (%d), not converted files: (%d).", collected_files.size(), converted_files, collected_files.size() - converted_files)); uint64_t conversion_end_time = Time::get_singleton()->get_ticks_msec(); print_line(vformat("Conversion of all files took %10.3f seconds.", (conversion_end_time - conversion_start_time) / 1000.0)); - return 0; -}; + return true; +} // Function responsible for validating project conversion. -int ProjectConverter3To4::validate_conversion() { +bool ProjectConverter3To4::validate_conversion() { print_line("Starting checking if project conversion can be done."); uint64_t conversion_start_time = Time::get_singleton()->get_ticks_msec(); @@ -2229,8 +468,8 @@ int ProjectConverter3To4::validate_conversion() { int cached_maximum_line_length = maximum_line_length; maximum_line_length = 10000; // To avoid breaking the tests, only use this for the their larger value. - ERR_FAIL_COND_V_MSG(!test_array_names(), ERROR_CODE, "Cannot start converting due to problems with data in arrays."); - ERR_FAIL_COND_V_MSG(!test_conversion(reg_container), ERROR_CODE, "Cannot start converting due to problems with converting arrays."); + ERR_FAIL_COND_V_MSG(!test_array_names(), false, "Cannot start converting due to problems with data in arrays."); + ERR_FAIL_COND_V_MSG(!test_conversion(reg_container), false, "Cannot start converting due to problems with converting arrays."); maximum_line_length = cached_maximum_line_length; @@ -2239,13 +478,13 @@ int ProjectConverter3To4::validate_conversion() { { String conventer_text = "; Project was converted by built-in tool to Godot 4.0"; - ERR_FAIL_COND_V_MSG(!FileAccess::exists("project.godot"), ERROR_CODE, "Current directory doesn't contains any Godot 3 project"); + ERR_FAIL_COND_V_MSG(!FileAccess::exists("project.godot"), false, "Current directory doesn't contains any Godot 3 project"); Error err = OK; String project_godot_content = FileAccess::get_file_as_string("project.godot", &err); - ERR_FAIL_COND_V_MSG(err != OK, ERROR_CODE, "Failed to read content of \"project.godot\" file."); - ERR_FAIL_COND_V_MSG(project_godot_content.contains(conventer_text), ERROR_CODE, "Project already was converted with this tool."); + ERR_FAIL_COND_V_MSG(err != OK, false, "Failed to read content of \"project.godot\" file."); + ERR_FAIL_COND_V_MSG(project_godot_content.contains(conventer_text), false, "Project already was converted with this tool."); } Vector<String> collected_files = check_for_files(); @@ -2282,59 +521,59 @@ int ProjectConverter3To4::validate_conversion() { if (file_name.ends_with(".gd")) { changed_elements.append_array(check_for_rename_classes(lines, reg_container)); - changed_elements.append_array(check_for_rename_common(enum_renames, reg_container.enum_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::enum_renames, reg_container.enum_regexes, lines)); changed_elements.append_array(check_for_rename_colors(lines, reg_container)); - changed_elements.append_array(check_for_rename_common(gdscript_function_renames, reg_container.gdscript_function_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::gdscript_function_renames, reg_container.gdscript_function_regexes, lines)); changed_elements.append_array(check_for_rename_gdscript_functions(lines, reg_container, false)); - changed_elements.append_array(check_for_rename_common(project_settings_renames, reg_container.project_settings_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::project_settings_renames, reg_container.project_settings_regexes, lines)); changed_elements.append_array(check_for_rename_gdscript_keywords(lines, reg_container)); - changed_elements.append_array(check_for_rename_common(gdscript_properties_renames, reg_container.gdscript_properties_regexes, lines)); - changed_elements.append_array(check_for_rename_common(gdscript_signals_renames, reg_container.gdscript_signals_regexes, lines)); - changed_elements.append_array(check_for_rename_common(shaders_renames, reg_container.shaders_regexes, lines)); - changed_elements.append_array(check_for_rename_common(builtin_types_renames, reg_container.builtin_types_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::gdscript_properties_renames, reg_container.gdscript_properties_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::gdscript_signals_renames, reg_container.gdscript_signals_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::shaders_renames, reg_container.shaders_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::builtin_types_renames, reg_container.builtin_types_regexes, lines)); changed_elements.append_array(check_for_custom_rename(lines, "\\.shader", ".gdshader")); } else if (file_name.ends_with(".tscn")) { changed_elements.append_array(check_for_rename_classes(lines, reg_container)); - changed_elements.append_array(check_for_rename_common(enum_renames, reg_container.enum_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::enum_renames, reg_container.enum_regexes, lines)); changed_elements.append_array(check_for_rename_colors(lines, reg_container)); - changed_elements.append_array(check_for_rename_common(gdscript_function_renames, reg_container.gdscript_function_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::gdscript_function_renames, reg_container.gdscript_function_regexes, lines)); changed_elements.append_array(check_for_rename_gdscript_functions(lines, reg_container, true)); - changed_elements.append_array(check_for_rename_common(project_settings_renames, reg_container.project_settings_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::project_settings_renames, reg_container.project_settings_regexes, lines)); changed_elements.append_array(check_for_rename_gdscript_keywords(lines, reg_container)); - changed_elements.append_array(check_for_rename_common(gdscript_properties_renames, reg_container.gdscript_properties_regexes, lines)); - changed_elements.append_array(check_for_rename_common(gdscript_signals_renames, reg_container.gdscript_signals_regexes, lines)); - changed_elements.append_array(check_for_rename_common(shaders_renames, reg_container.shaders_regexes, lines)); - changed_elements.append_array(check_for_rename_common(builtin_types_renames, reg_container.builtin_types_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::gdscript_properties_renames, reg_container.gdscript_properties_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::gdscript_signals_renames, reg_container.gdscript_signals_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::shaders_renames, reg_container.shaders_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::builtin_types_renames, reg_container.builtin_types_regexes, lines)); changed_elements.append_array(check_for_custom_rename(lines, "\\.shader", ".gdshader")); } else if (file_name.ends_with(".cs")) { changed_elements.append_array(check_for_rename_classes(lines, reg_container)); - changed_elements.append_array(check_for_rename_common(csharp_function_renames, reg_container.csharp_function_regexes, lines)); - changed_elements.append_array(check_for_rename_common(builtin_types_renames, reg_container.builtin_types_regexes, lines)); - changed_elements.append_array(check_for_rename_common(csharp_properties_renames, reg_container.csharp_properties_regexes, lines)); - changed_elements.append_array(check_for_rename_common(csharp_signals_renames, reg_container.csharp_signal_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::csharp_function_renames, reg_container.csharp_function_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::builtin_types_renames, reg_container.builtin_types_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::csharp_properties_renames, reg_container.csharp_properties_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::csharp_signals_renames, reg_container.csharp_signal_regexes, lines)); changed_elements.append_array(check_for_rename_csharp_functions(lines, reg_container)); changed_elements.append_array(check_for_rename_csharp_attributes(lines, reg_container)); changed_elements.append_array(check_for_custom_rename(lines, "public class ", "public partial class ")); } else if (file_name.ends_with(".gdshader") || file_name.ends_with(".shader")) { - changed_elements.append_array(check_for_rename_common(shaders_renames, reg_container.shaders_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::shaders_renames, reg_container.shaders_regexes, lines)); } else if (file_name.ends_with("tres")) { changed_elements.append_array(check_for_rename_classes(lines, reg_container)); - changed_elements.append_array(check_for_rename_common(shaders_renames, reg_container.shaders_regexes, lines)); - changed_elements.append_array(check_for_rename_common(builtin_types_renames, reg_container.builtin_types_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::shaders_renames, reg_container.shaders_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::builtin_types_renames, reg_container.builtin_types_regexes, lines)); changed_elements.append_array(check_for_custom_rename(lines, "\\.shader", ".gdshader")); } else if (file_name.ends_with("project.godot")) { - changed_elements.append_array(check_for_rename_common(project_settings_renames, reg_container.project_settings_regexes, lines)); - changed_elements.append_array(check_for_rename_common(builtin_types_renames, reg_container.builtin_types_regexes, lines)); - changed_elements.append_array(check_for_rename_common(input_map_renames, reg_container.input_map_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::project_settings_renames, reg_container.project_settings_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::builtin_types_renames, reg_container.builtin_types_regexes, lines)); + changed_elements.append_array(check_for_rename_common(RenamesMap3To4::input_map_renames, reg_container.input_map_regexes, lines)); } else if (file_name.ends_with(".csproj")) { // TODO } else { @@ -2375,7 +614,7 @@ int ProjectConverter3To4::validate_conversion() { print_line(vformat("Checking for valid conversion ended - all files(%d), files which would be converted(%d), files which would not be converted(%d).", collected_files.size(), converted_files, collected_files.size() - converted_files)); uint64_t conversion_end_time = Time::get_singleton()->get_ticks_msec(); print_line(vformat("Conversion of all files took %10.3f seconds.", (conversion_end_time - conversion_start_time) / 1000.0)); - return 0; + return true; } // Collect files which will be checked, excluding ".txt", ".mp4", ".wav" etc. files. @@ -2453,27 +692,27 @@ bool ProjectConverter3To4::test_conversion_basic(String name, String expected, c bool ProjectConverter3To4::test_conversion(RegExContainer ®_container) { bool valid = true; - valid = valid && test_conversion_basic("TYPE_REAL", "TYPE_FLOAT", enum_renames, reg_container.enum_regexes, "enum"); + valid = valid && test_conversion_basic("TYPE_REAL", "TYPE_FLOAT", RenamesMap3To4::enum_renames, reg_container.enum_regexes, "enum"); - valid = valid && test_conversion_basic("can_instance", "can_instantiate", gdscript_function_renames, reg_container.gdscript_function_regexes, "gdscript function"); + valid = valid && test_conversion_basic("can_instance", "can_instantiate", RenamesMap3To4::gdscript_function_renames, reg_container.gdscript_function_regexes, "gdscript function"); - valid = valid && test_conversion_basic("CanInstance", "CanInstantiate", csharp_function_renames, reg_container.csharp_function_regexes, "csharp function"); + valid = valid && test_conversion_basic("CanInstance", "CanInstantiate", RenamesMap3To4::csharp_function_renames, reg_container.csharp_function_regexes, "csharp function"); - valid = valid && test_conversion_basic("translation", "position", gdscript_properties_renames, reg_container.gdscript_properties_regexes, "gdscript property"); + valid = valid && test_conversion_basic("translation", "position", RenamesMap3To4::gdscript_properties_renames, reg_container.gdscript_properties_regexes, "gdscript property"); - valid = valid && test_conversion_basic("Translation", "Position", csharp_properties_renames, reg_container.csharp_properties_regexes, "csharp property"); + valid = valid && test_conversion_basic("Translation", "Position", RenamesMap3To4::csharp_properties_renames, reg_container.csharp_properties_regexes, "csharp property"); - valid = valid && test_conversion_basic("NORMALMAP", "NORMAL_MAP", shaders_renames, reg_container.shaders_regexes, "shader"); + valid = valid && test_conversion_basic("NORMALMAP", "NORMAL_MAP", RenamesMap3To4::shaders_renames, reg_container.shaders_regexes, "shader"); - valid = valid && test_conversion_basic("text_entered", "text_submitted", gdscript_signals_renames, reg_container.gdscript_signals_regexes, "gdscript signal"); + valid = valid && test_conversion_basic("text_entered", "text_submitted", RenamesMap3To4::gdscript_signals_renames, reg_container.gdscript_signals_regexes, "gdscript signal"); - valid = valid && test_conversion_basic("TextEntered", "TextSubmitted", csharp_signals_renames, reg_container.csharp_signal_regexes, "csharp signal"); + valid = valid && test_conversion_basic("TextEntered", "TextSubmitted", RenamesMap3To4::csharp_signals_renames, reg_container.csharp_signal_regexes, "csharp signal"); - valid = valid && test_conversion_basic("audio/channel_disable_threshold_db", "audio/buses/channel_disable_threshold_db", project_settings_renames, reg_container.project_settings_regexes, "project setting"); + valid = valid && test_conversion_basic("audio/channel_disable_threshold_db", "audio/buses/channel_disable_threshold_db", RenamesMap3To4::project_settings_renames, reg_container.project_settings_regexes, "project setting"); - valid = valid && test_conversion_basic("\"device\":-1,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"doubleclick\":false,\"scancode\":0,\"physical_scancode\":16777254,\"script\":null", "\"device\":-1,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"double_click\":false,\"keycode\":0,\"physical_keycode\":16777254,\"script\":null", input_map_renames, reg_container.input_map_regexes, "input map"); + valid = valid && test_conversion_basic("\"device\":-1,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"doubleclick\":false,\"scancode\":0,\"physical_scancode\":16777254,\"script\":null", "\"device\":-1,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"double_click\":false,\"keycode\":0,\"physical_keycode\":16777254,\"script\":null", RenamesMap3To4::input_map_renames, reg_container.input_map_regexes, "input map"); - valid = valid && test_conversion_basic("Transform", "Transform3D", builtin_types_renames, reg_container.builtin_types_regexes, "builtin type"); + valid = valid && test_conversion_basic("Transform", "Transform3D", RenamesMap3To4::builtin_types_renames, reg_container.builtin_types_regexes, "builtin type"); // Custom Renames. @@ -2787,9 +1026,9 @@ bool ProjectConverter3To4::test_array_names() { // Validate if all classes are valid. { - for (unsigned int current_index = 0; class_renames[current_index][0]; current_index++) { - const String old_class = class_renames[current_index][0]; - const String new_class = class_renames[current_index][1]; + for (unsigned int current_index = 0; RenamesMap3To4::class_renames[current_index][0]; current_index++) { + const String old_class = RenamesMap3To4::class_renames[current_index][0]; + const String new_class = RenamesMap3To4::class_renames[current_index][1]; // Light2D, Texture, Viewport are special classes(probably virtual ones). if (ClassDB::class_exists(StringName(old_class)) && old_class != "Light2D" && old_class != "Texture" && old_class != "Viewport") { @@ -2838,10 +1077,10 @@ bool ProjectConverter3To4::test_array_names() { } int current_element = 0; - while (gdscript_function_renames[current_element][0] != nullptr) { - String name_3_x = gdscript_function_renames[current_element][0]; - String name_4_0 = gdscript_function_renames[current_element][1]; - if (!all_functions.has(gdscript_function_renames[current_element][1])) { + while (RenamesMap3To4::gdscript_function_renames[current_element][0] != nullptr) { + String name_3_x = RenamesMap3To4::gdscript_function_renames[current_element][0]; + String name_4_0 = RenamesMap3To4::gdscript_function_renames[current_element][1]; + if (!all_functions.has(name_4_0)) { ERR_PRINT(vformat("Missing GDScript function in pair (%s - ===> %s <===)", name_3_x, name_4_0)); valid = false; } @@ -2852,18 +1091,18 @@ bool ProjectConverter3To4::test_array_names() { ERR_PRINT("Found function which is used in the converter, but it cannot be found in Godot 4. Rename this element or remove its entry if it's obsolete."); } - valid = valid && test_single_array(enum_renames); - valid = valid && test_single_array(class_renames, true); - valid = valid && test_single_array(gdscript_function_renames, true); - valid = valid && test_single_array(csharp_function_renames, true); - valid = valid && test_single_array(gdscript_properties_renames, true); - valid = valid && test_single_array(csharp_properties_renames, true); - valid = valid && test_single_array(shaders_renames, true); - valid = valid && test_single_array(gdscript_signals_renames); - valid = valid && test_single_array(project_settings_renames); - valid = valid && test_single_array(input_map_renames); - valid = valid && test_single_array(builtin_types_renames); - valid = valid && test_single_array(color_renames); + valid = valid && test_single_array(RenamesMap3To4::enum_renames); + valid = valid && test_single_array(RenamesMap3To4::class_renames, true); + valid = valid && test_single_array(RenamesMap3To4::gdscript_function_renames, true); + valid = valid && test_single_array(RenamesMap3To4::csharp_function_renames, true); + valid = valid && test_single_array(RenamesMap3To4::gdscript_properties_renames, true); + valid = valid && test_single_array(RenamesMap3To4::csharp_properties_renames, true); + valid = valid && test_single_array(RenamesMap3To4::shaders_renames, true); + valid = valid && test_single_array(RenamesMap3To4::gdscript_signals_renames); + valid = valid && test_single_array(RenamesMap3To4::project_settings_renames); + valid = valid && test_single_array(RenamesMap3To4::input_map_renames); + valid = valid && test_single_array(RenamesMap3To4::builtin_types_renames); + valid = valid && test_single_array(RenamesMap3To4::color_renames); return valid; } @@ -3092,7 +1331,7 @@ void ProjectConverter3To4::rename_colors(Vector<String> &lines, const RegExConta for (String &line : lines) { if (uint64_t(line.length()) <= maximum_line_length) { if (line.contains("Color.")) { - for (unsigned int current_index = 0; color_renames[current_index][0]; current_index++) { + for (unsigned int current_index = 0; RenamesMap3To4::color_renames[current_index][0]; current_index++) { line = reg_container.color_regexes[current_index]->sub(line, reg_container.color_renamed[current_index], true); } } @@ -3107,10 +1346,10 @@ Vector<String> ProjectConverter3To4::check_for_rename_colors(Vector<String> &lin for (String &line : lines) { if (uint64_t(line.length()) <= maximum_line_length) { if (line.contains("Color.")) { - for (unsigned int current_index = 0; color_renames[current_index][0]; current_index++) { + for (unsigned int current_index = 0; RenamesMap3To4::color_renames[current_index][0]; current_index++) { TypedArray<RegExMatch> reg_match = reg_container.color_regexes[current_index]->search_all(line); if (reg_match.size() > 0) { - found_renames.append(line_formatter(current_line, color_renames[current_index][0], color_renames[current_index][1], line)); + found_renames.append(line_formatter(current_line, RenamesMap3To4::color_renames[current_index][0], RenamesMap3To4::color_renames[current_index][1], line)); } } } @@ -3124,11 +1363,11 @@ Vector<String> ProjectConverter3To4::check_for_rename_colors(Vector<String> &lin void ProjectConverter3To4::rename_classes(Vector<String> &lines, const RegExContainer ®_container) { for (String &line : lines) { if (uint64_t(line.length()) <= maximum_line_length) { - for (unsigned int current_index = 0; class_renames[current_index][0]; current_index++) { - if (line.contains(class_renames[current_index][0])) { + for (unsigned int current_index = 0; RenamesMap3To4::class_renames[current_index][0]; current_index++) { + if (line.contains(RenamesMap3To4::class_renames[current_index][0])) { bool found_ignored_items = false; // Renaming Spatial.tscn to TEMP_RENAMED_CLASS.tscn. - if (line.contains(String(class_renames[current_index][0]) + ".")) { + if (line.contains(String(RenamesMap3To4::class_renames[current_index][0]) + ".")) { found_ignored_items = true; line = reg_container.class_tscn_regexes[current_index]->sub(line, "TEMP_RENAMED_CLASS.tscn", true); line = reg_container.class_gd_regexes[current_index]->sub(line, "TEMP_RENAMED_CLASS.gd", true); @@ -3136,7 +1375,7 @@ void ProjectConverter3To4::rename_classes(Vector<String> &lines, const RegExCont } // Causal renaming Spatial -> Node3D. - line = reg_container.class_regexes[current_index]->sub(line, class_renames[current_index][1], true); + line = reg_container.class_regexes[current_index]->sub(line, RenamesMap3To4::class_renames[current_index][1], true); // Restore Spatial.tscn from TEMP_RENAMED_CLASS.tscn. if (found_ignored_items) { @@ -3157,12 +1396,12 @@ Vector<String> ProjectConverter3To4::check_for_rename_classes(Vector<String> &li for (String &line : lines) { if (uint64_t(line.length()) <= maximum_line_length) { - for (unsigned int current_index = 0; class_renames[current_index][0]; current_index++) { - if (line.contains(class_renames[current_index][0])) { + for (unsigned int current_index = 0; RenamesMap3To4::class_renames[current_index][0]; current_index++) { + if (line.contains(RenamesMap3To4::class_renames[current_index][0])) { String old_line = line; bool found_ignored_items = false; // Renaming Spatial.tscn to TEMP_RENAMED_CLASS.tscn. - if (line.contains(String(class_renames[current_index][0]) + ".")) { + if (line.contains(String(RenamesMap3To4::class_renames[current_index][0]) + ".")) { found_ignored_items = true; line = reg_container.class_tscn_regexes[current_index]->sub(line, "TEMP_RENAMED_CLASS.tscn", true); line = reg_container.class_gd_regexes[current_index]->sub(line, "TEMP_RENAMED_CLASS.gd", true); @@ -3172,7 +1411,7 @@ Vector<String> ProjectConverter3To4::check_for_rename_classes(Vector<String> &li // Causal renaming Spatial -> Node3D. TypedArray<RegExMatch> reg_match = reg_container.class_regexes[current_index]->search_all(line); if (reg_match.size() > 0) { - found_renames.append(line_formatter(current_line, class_renames[current_index][0], class_renames[current_index][1], old_line)); + found_renames.append(line_formatter(current_line, RenamesMap3To4::class_renames[current_index][0], RenamesMap3To4::class_renames[current_index][1], old_line)); } // Restore Spatial.tscn from TEMP_RENAMED_CLASS.tscn. @@ -4353,17 +2592,6 @@ String ProjectConverter3To4::collect_string_from_vector(Vector<String> &vector) return string; } -#else // No RegEx. - -ProjectConverter3To4::ProjectConverter3To4(int _p_maximum_file_size_kb, int _p_maximum_line_length) {} - -int ProjectConverter3To4::convert() { - ERR_FAIL_V_MSG(ERROR_CODE, "Can't run converter for Godot 3.x projects, because RegEx module is disabled."); -} - -int ProjectConverter3To4::validate_conversion() { - ERR_FAIL_V_MSG(ERROR_CODE, "Can't validate conversion for Godot 3.x projects, because RegEx module is disabled."); -} - #endif // MODULE_REGEX_ENABLED + #endif // DISABLE_DEPRECATED diff --git a/editor/project_converter_3_to_4.h b/editor/project_converter_3_to_4.h index 641bc467ac..420dd79d72 100644 --- a/editor/project_converter_3_to_4.h +++ b/editor/project_converter_3_to_4.h @@ -33,31 +33,36 @@ #ifndef DISABLE_DEPRECATED -#include "core/io/file_access.h" -#include "core/object/ref_counted.h" +#include "modules/modules_enabled.gen.h" // For regex. + +#ifndef MODULE_REGEX_ENABLED + +#include "core/error/error_macros.h" + +class ProjectConverter3To4 { +public: + ProjectConverter3To4(int, int) {} + + bool validate_conversion() { + ERR_FAIL_V_MSG(false, "Can't validate conversion for Godot 3.x projects, because RegEx module is disabled."); + } + + bool convert() { + ERR_FAIL_V_MSG(false, "Can't run converter for Godot 3.x projects, because RegEx module is disabled."); + } +}; + +#else // Has regex. + #include "core/string/ustring.h" #include "core/templates/local_vector.h" +#include "core/templates/vector.h" class RegEx; class ProjectConverter3To4 { -public: class RegExContainer; - static const char *enum_renames[][2]; - static const char *gdscript_function_renames[][2]; - static const char *csharp_function_renames[][2]; - static const char *gdscript_properties_renames[][2]; - static const char *csharp_properties_renames[][2]; - static const char *gdscript_signals_renames[][2]; - static const char *csharp_signals_renames[][2]; - static const char *project_settings_renames[][2]; - static const char *input_map_renames[][2]; - static const char *builtin_types_renames[][2]; - static const char *shaders_renames[][2]; - static const char *class_renames[][2]; - static const char *color_renames[][2]; - -private: + uint64_t maximum_file_size; uint64_t maximum_line_length; @@ -108,10 +113,12 @@ private: public: ProjectConverter3To4(int, int); - int validate_conversion(); - int convert(); + bool validate_conversion(); + bool convert(); }; +#endif // MODULE_REGEX_ENABLED + #endif // DISABLE_DEPRECATED #endif // PROJECT_CONVERTER_3_TO_4_H diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 105e3a5d47..dc019d8e7c 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -510,6 +510,8 @@ private: ProjectSettings::CustomMap initial_settings; // Be sure to change this code if/when renderers are changed. + // Default values are "forward_plus" for the main setting, "mobile" for the mobile override, + // and "gl_compatibility" for the web override. String renderer_type = renderer_button_group->get_pressed_button()->get_meta(SNAME("rendering_method")); initial_settings["rendering/renderer/rendering_method"] = renderer_type; @@ -522,6 +524,8 @@ private: project_features.push_back("Mobile"); } else if (renderer_type == "gl_compatibility") { project_features.push_back("GL Compatibility"); + // Also change the default rendering method for the mobile override. + initial_settings["rendering/renderer/rendering_method.mobile"] = "gl_compatibility"; } else { WARN_PRINT("Unknown renderer type. Please report this as a bug on GitHub."); } @@ -961,8 +965,8 @@ public: default_files_container->add_child(l); vcs_metadata_selection = memnew(OptionButton); vcs_metadata_selection->set_custom_minimum_size(Size2(100, 20)); - vcs_metadata_selection->add_item("None", (int)EditorVCSInterface::VCSMetadata::NONE); - vcs_metadata_selection->add_item("Git", (int)EditorVCSInterface::VCSMetadata::GIT); + vcs_metadata_selection->add_item(TTR("None"), (int)EditorVCSInterface::VCSMetadata::NONE); + vcs_metadata_selection->add_item(TTR("Git"), (int)EditorVCSInterface::VCSMetadata::GIT); vcs_metadata_selection->select((int)EditorVCSInterface::VCSMetadata::GIT); default_files_container->add_child(vcs_metadata_selection); Control *spacer = memnew(Control); @@ -1355,6 +1359,8 @@ void ProjectList::load_projects() { create_project_item_control(i); } + sort_projects(); + set_v_scroll(0); update_icons_async(); diff --git a/editor/renames_map_3_to_4.cpp b/editor/renames_map_3_to_4.cpp new file mode 100644 index 0000000000..4c47eac6a5 --- /dev/null +++ b/editor/renames_map_3_to_4.cpp @@ -0,0 +1,1797 @@ +/**************************************************************************/ +/* renames_map_3_to_4.cpp */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* 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 "renames_map_3_to_4.h" + +#ifndef DISABLE_DEPRECATED + +const char *RenamesMap3To4::enum_renames[][2] = { + //// constants + { "TYPE_COLOR_ARRAY", "TYPE_PACKED_COLOR_ARRAY" }, + { "TYPE_FLOAT64_ARRAY", "TYPE_PACKED_FLOAT64_ARRAY" }, + { "TYPE_INT64_ARRAY", "TYPE_PACKED_INT64_ARRAY" }, + { "TYPE_INT_ARRAY", "TYPE_PACKED_INT32_ARRAY" }, + { "TYPE_QUAT", "TYPE_QUATERNION" }, + { "TYPE_RAW_ARRAY", "TYPE_PACKED_BYTE_ARRAY" }, + { "TYPE_REAL", "TYPE_FLOAT" }, + { "TYPE_REAL_ARRAY", "TYPE_PACKED_FLOAT32_ARRAY" }, + { "TYPE_STRING_ARRAY", "TYPE_PACKED_STRING_ARRAY" }, + { "TYPE_TRANSFORM", "TYPE_TRANSFORM3D" }, + { "TYPE_VECTOR2_ARRAY", "TYPE_PACKED_VECTOR2_ARRAY" }, + { "TYPE_VECTOR3_ARRAY", "TYPE_PACKED_VECTOR3_ARRAY" }, + + // {"FLAG_MAX", "PARTICLE_FLAG_MAX"}, // CPUParticles2D - used in more classes + { "ALIGN_BEGIN", "ALIGNMENT_BEGIN" }, //AspectRatioContainer + { "ALIGN_CENTER", "ALIGNMENT_CENTER" }, //AspectRatioContainer + { "ALIGN_END", "ALIGNMENT_END" }, //AspectRatioContainer + { "ARRAY_COMPRESS_BASE", "ARRAY_COMPRESS_FLAGS_BASE" }, // Mesh + { "ARVR_AR", "XR_AR" }, // XRInterface + { "ARVR_EXCESSIVE_MOTION", "XR_EXCESSIVE_MOTION" }, // XRInterface + { "ARVR_EXTERNAL", "XR_EXTERNAL" }, // XRInterface + { "ARVR_INSUFFICIENT_FEATURES", "XR_INSUFFICIENT_FEATURES" }, // XRInterface + { "ARVR_MONO", "XR_MONO" }, // XRInterface + { "ARVR_NONE", "XR_NONE" }, // XRInterface + { "ARVR_NORMAL_TRACKING", "XR_NORMAL_TRACKING" }, // XRInterface + { "ARVR_NOT_TRACKING", "XR_NOT_TRACKING" }, // XRInterface + { "ARVR_STEREO", "XR_STEREO" }, // XRInterface + { "ARVR_UNKNOWN_TRACKING", "XR_UNKNOWN_TRACKING" }, // XRInterface + { "BAKE_ERROR_INVALID_MESH", "BAKE_ERROR_MESHES_INVALID" }, // LightmapGI + { "BODY_MODE_CHARACTER", "BODY_MODE_RIGID_LINEAR" }, // PhysicsServer + { "BUTTON_LEFT", "MOUSE_BUTTON_LEFT" }, // Globals + { "BUTTON_MASK_LEFT", "MOUSE_BUTTON_MASK_LEFT" }, // Globals + { "BUTTON_MASK_MIDDLE", "MOUSE_BUTTON_MASK_MIDDLE" }, // Globals + { "BUTTON_MASK_RIGHT", "MOUSE_BUTTON_MASK_RIGHT" }, // Globals + { "BUTTON_MASK_XBUTTON1", "MOUSE_BUTTON_MASK_XBUTTON1" }, // Globals + { "BUTTON_MASK_XBUTTON2", "MOUSE_BUTTON_MASK_XBUTTON2" }, // Globals + { "BUTTON_MIDDLE", "MOUSE_BUTTON_MIDDLE" }, // Globals + { "BUTTON_RIGHT", "MOUSE_BUTTON_RIGHT" }, // Globals + { "BUTTON_WHEEL_DOWN", "MOUSE_BUTTON_WHEEL_DOWN" }, // Globals + { "BUTTON_WHEEL_LEFT", "MOUSE_BUTTON_WHEEL_LEFT" }, // Globals + { "BUTTON_WHEEL_RIGHT", "MOUSE_BUTTON_WHEEL_RIGHT" }, // Globals + { "BUTTON_WHEEL_UP", "MOUSE_BUTTON_WHEEL_UP" }, // Globals + { "BUTTON_XBUTTON1", "MOUSE_BUTTON_XBUTTON1" }, // Globals + { "BUTTON_XBUTTON2", "MOUSE_BUTTON_XBUTTON2" }, // Globals + { "CLEAR_MODE_ONLY_NEXT_FRAME", "CLEAR_MODE_ONCE" }, // SubViewport + { "COMPRESS_PVRTC4", "COMPRESS_PVRTC1_4" }, // Image + { "CONNECT_ONESHOT", "CONNECT_ONE_SHOT" }, // Object + { "CONTAINER_PROPERTY_EDITOR_BOTTOM", "CONTAINER_INSPECTOR_BOTTOM" }, // EditorPlugin + { "CUBEMAP_BACK", "CUBEMAP_LAYER_BACK" }, // RenderingServer + { "CUBEMAP_BOTTOM", "CUBEMAP_LAYER_BOTTOM" }, // RenderingServer + { "CUBEMAP_FRONT", "CUBEMAP_LAYER_FRONT" }, // RenderingServer + { "CUBEMAP_LEFT", "CUBEMAP_LAYER_LEFT" }, // RenderingServer + { "CUBEMAP_RIGHT", "CUBEMAP_LAYER_RIGHT" }, // RenderingServer + { "CUBEMAP_TOP", "CUBEMAP_LAYER_TOP" }, // RenderingServer + { "DAMPED_STRING_DAMPING", "DAMPED_SPRING_DAMPING" }, // PhysicsServer2D + { "DAMPED_STRING_REST_LENGTH", "DAMPED_SPRING_REST_LENGTH" }, // PhysicsServer2D + { "DAMPED_STRING_STIFFNESS", "DAMPED_SPRING_STIFFNESS" }, // PhysicsServer2D + { "FLAG_ALIGN_Y_TO_VELOCITY", "PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY" }, // CPUParticles2D + { "FLAG_DISABLE_Z", "PARTICLE_FLAG_DISABLE_Z" }, // CPUParticles2D + { "FLAG_ROTATE_Y", "PARTICLE_FLAG_ROTATE_Y" }, // CPUParticles2D + { "FLAG_USE_BAKED_LIGHT", "GI_MODE_BAKED" }, // GeometryInstance3D + { "FORMAT_PVRTC2", "FORMAT_PVRTC1_2" }, // Image + { "FORMAT_PVRTC2A", "FORMAT_PVRTC1_2A" }, // Image + { "FORMAT_PVRTC4", "FORMAT_PVRTC1_4" }, // Image + { "FORMAT_PVRTC4A", "FORMAT_PVRTC1_4A" }, // Image + { "FUNC_FRAC", "FUNC_FRACT" }, // VisualShaderNodeVectorFunc + { "INSTANCE_LIGHTMAP_CAPTURE", "INSTANCE_LIGHTMAP" }, // RenderingServer + { "JOINT_6DOF", "JOINT_TYPE_6DOF" }, // PhysicsServer3D + { "JOINT_CONE_TWIST", "JOINT_TYPE_CONE_TWIST" }, // PhysicsServer3D + { "JOINT_DAMPED_SPRING", "JOINT_TYPE_DAMPED_SPRING" }, // PhysicsServer2D + { "JOINT_GROOVE", "JOINT_TYPE_GROOVE" }, // PhysicsServer2D + { "JOINT_HINGE", "JOINT_TYPE_HINGE" }, // PhysicsServer3D + { "JOINT_PIN", "JOINT_TYPE_PIN" }, // PhysicsServer2D + { "JOINT_SLIDER", "JOINT_TYPE_SLIDER" }, // PhysicsServer3D + { "KEY_CONTROL", "KEY_CTRL" }, // Globals + { "LOOP_PING_PONG", "LOOP_PINGPONG" }, // AudioStreamWAV + { "MODE_KINEMATIC", "FREEZE_MODE_KINEMATIC" }, // RigidBody + { "MODE_OPEN_ANY", "FILE_MODE_OPEN_ANY" }, // FileDialog + { "MODE_OPEN_DIR", "FILE_MODE_OPEN_DIR" }, // FileDialog + { "MODE_OPEN_FILE", "FILE_MODE_OPEN_FILE" }, // FileDialog + { "MODE_OPEN_FILES", "FILE_MODE_OPEN_FILES" }, // FileDialog + { "MODE_SAVE_FILE", "FILE_MODE_SAVE_FILE" }, // FileDialog + { "MODE_STATIC", "FREEZE_MODE_STATIC" }, // RigidBody + { "NOTIFICATION_APP_PAUSED", "NOTIFICATION_APPLICATION_PAUSED" }, // MainLoop + { "NOTIFICATION_APP_RESUMED", "NOTIFICATION_APPLICATION_RESUMED" }, // MainLoop + { "NOTIFICATION_INSTANCED", "NOTIFICATION_SCENE_INSTANTIATED" }, // Node + { "NOTIFICATION_PATH_CHANGED", "NOTIFICATION_PATH_RENAMED" }, //Node + { "NOTIFICATION_WM_FOCUS_IN", "NOTIFICATION_APPLICATION_FOCUS_IN" }, // MainLoop + { "NOTIFICATION_WM_FOCUS_OUT", "NOTIFICATION_APPLICATION_FOCUS_OUT" }, // MainLoop + { "NOTIFICATION_WM_UNFOCUS_REQUEST", "NOTIFICATION_WM_WINDOW_FOCUS_OUT" }, //Node + { "PAUSE_MODE_INHERIT", "PROCESS_MODE_INHERIT" }, // Node + { "PAUSE_MODE_PROCESS", "PROCESS_MODE_ALWAYS" }, // Node + { "PAUSE_MODE_STOP", "PROCESS_MODE_PAUSABLE" }, // Node + { "RENDER_DRAW_CALLS_IN_FRAME", "RENDER_TOTAL_DRAW_CALLS_IN_FRAME" }, // Performance + { "RENDER_OBJECTS_IN_FRAME", "RENDER_TOTAL_OBJECTS_IN_FRAME" }, // Performance + { "SIDE_BOTTOM", "MARGIN_BOTTOM" }, // Globals + { "SIDE_LEFT", "MARGIN_LEFT" }, // Globals + { "SIDE_RIGHT", "MARGIN_RIGHT" }, // Globals + { "SIDE_TOP", "MARGIN_TOP" }, // Globals + { "TEXTURE_TYPE_2D_ARRAY", "TEXTURE_LAYERED_2D_ARRAY" }, // RenderingServer + { "TEXTURE_TYPE_CUBEMAP", "TEXTURE_LAYERED_CUBEMAP_ARRAY" }, // RenderingServer + { "TRACKER_LEFT_HAND", "TRACKER_HAND_LEFT" }, // XRPositionalTracker + { "TRACKER_RIGHT_HAND", "TRACKER_HAND_RIGHT" }, // XRPositionalTracker + { "TYPE_NORMALMAP", "TYPE_NORMAL_MAP" }, // VisualShaderNodeCubemap + + /// enums + { "AlignMode", "AlignmentMode" }, //AspectRatioContainer + { "AnimationProcessMode", "AnimationProcessCallback" }, // AnimationTree, AnimationPlayer + { "Camera2DProcessMode", "Camera2DProcessCallback" }, // Camera2D + { "CubeMapSide", "CubeMapLayer" }, // RenderingServer + { "DampedStringParam", "DampedSpringParam" }, // PhysicsServer2D + { "FFT_Size", "FFTSize" }, // AudioEffectPitchShift,AudioEffectSpectrumAnalyzer + { "PauseMode", "ProcessMode" }, // Node + { "TimerProcessMode", "TimerProcessCallback" }, // Timer + { "Tracking_status", "TrackingStatus" }, // XRInterface + { nullptr, nullptr }, +}; + +const char *RenamesMap3To4::gdscript_function_renames[][2] = { + // { "_set_name", "get_tracker_name"}, // XRPositionalTracker - CameraFeed use this + // { "_unhandled_input", "_unhandled_key_input"}, // BaseButton, ViewportContainer broke Node, FileDialog,SubViewportContainer + // { "create_gizmo", "_create_gizmo"}, // EditorNode3DGizmoPlugin - may be used + // { "get_dependencies", "_get_dependencies" }, // ResourceFormatLoader broke ResourceLoader + // { "get_extents", "get_size" }, // BoxShape, RectangleShape broke Decal, VoxelGI, GPUParticlesCollisionBox, GPUParticlesCollisionSDF, GPUParticlesCollisionHeightField, GPUParticlesAttractorBox, GPUParticlesAttractorVectorField, FogVolume + // { "get_h_offset", "get_drag_horizontal_offset"}, // Camera2D, broke PathFollow, Camera + // { "get_mode", "get_file_mode"}, // FileDialog broke Panel, Shader, CSGPolygon, Tilemap + // { "get_motion", "get_travel"}, // PhysicsTestMotionResult2D broke ParalaxLayer + // { "get_name", "get_tracker_name"}, // XRPositionalTracker broke OS, Node + // { "get_network_connected_peers", "get_peers"}, // MultiplayerAPI broke SceneTree + // { "get_network_peer", "has_multiplayer_peer"}, // MultiplayerAPI broke SceneTree + // { "get_network_unique_id", "get_unique_id"}, // MultiplayerAPI broke SceneTree + // { "get_offset", "get_position_offset" }, // GraphNode broke Gradient + // { "get_peer_port", "get_peer" }, // ENetMultiplayerPeer broke WebSocketServer + // { "get_process_mode", "get_process_callback" }, // ClippedCamera3D broke Node, Sky + // { "get_render_info", "get_rendering_info" }, // RenderingServer broke Viewport + // { "get_type", "get_tracker_type"}, // XRPositionalTracker broke GLTFAccessor, GLTFLight + // { "get_v_offset", "get_drag_vertical_offset"}, // Camera2D, broke PathFollow, Camera + // { "has_network_peer", "has_multiplayer_peer"}, // MultiplayerAPI broke SceneTree + // { "instance", "instantiate" }, // PackedScene, ClassDB - Broke FileSystemDock signal and also tscn files - [instance=ExtResource( 17 )] - this is implemented as custom rule + // { "is_listening", "is_bound"}, // PacketPeerUDP broke TCPServer, UDPServer + // { "is_refusing_new_network_connections", "is_refusing_new_connections"}, // MultiplayerAPI broke SceneTree + // { "is_valid", "has_valid_event" }, // Shortcut broke e.g. Callable + // { "listen", "bound"}, // PacketPeerUDP broke TCPServer, UDPServer + // { "load", "_load"}, // ResourceFormatLoader broke ConfigFile, Image, StreamTexture2D + // { "make_current", "set_current" }, // Camera2D broke Camera3D, Listener2D + // { "process", "_process" }, // AnimationNode - This word is commonly used + // { "save", "_save"}, // ResourceFormatLoader broke ConfigFile, Image, StreamTexture2D + // { "set_autowrap", "set_autowrap_mode" }, // AcceptDialog broke Label - Cyclic Rename + // { "set_color", "surface_set_color"}, // ImmediateMesh broke Light2D, Theme, SurfaceTool + // { "set_event", "set_shortcut" }, // BaseButton - Cyclic Rename + // { "set_extents", "set_size"}, // BoxShape, RectangleShape broke ReflectionProbe + // { "set_flag", "set_particle_flag"}, // ParticleProcessMaterial broke Window, HingeJoint3D + // { "set_h_offset", "set_drag_horizontal_offset" }, // Camera2D broke Camera3D, PathFollow3D, PathFollow2D + // { "set_margin", "set_offset" }, // Control broke Shape3D, AtlasTexture + // { "set_mode", "set_mode_file_mode" }, // FileDialog broke Panel, Shader, CSGPolygon, Tilemap + // { "set_normal", "surface_set_normal"}, // ImmediateGeometry broke SurfaceTool, WorldMarginShape2D + // { "set_offset", "set_progress" }, // PathFollow2D, PathFollow3D - Too common + // { "set_process_mode", "set_process_callback" }, // AnimationTree broke Node, Tween, Sky + // { "set_refuse_new_network_connections", "set_refuse_new_connections"}, // MultiplayerAPI broke SceneTree + // { "set_tooltip", "set_tooltip_text" }, // Control, breaks TreeItem, at least for now. + // { "set_uv", "surface_set_uv" }, // ImmediateMesh broke Polygon2D + // { "set_v_offset", "set_drag_vertical_offset" }, // Camera2D broke Camera3D, PathFollow3D, PathFollow2D + // {"get_points","get_points_id"},// Astar, broke Line2D, Convexpolygonshape + // {"get_v_scroll","get_v_scroll_bar"},//ItemList, broke TextView + // { "get_stylebox", "get_theme_stylebox" }, // Control - Will rename the method in Theme as well, skipping + { "_about_to_show", "_about_to_popup" }, // ColorPickerButton + { "_get_configuration_warning", "_get_configuration_warnings" }, // Node + { "_set_current", "set_current" }, // Camera2D + { "_set_editor_description", "set_editor_description" }, // Node + { "_toplevel_raise_self", "_top_level_raise_self" }, // CanvasItem + { "_update_wrap_at", "_update_wrap_at_column" }, // TextEdit + { "add_animation", "add_animation_library" }, // AnimationPlayer + { "add_cancel", "add_cancel_button" }, // AcceptDialog + { "add_central_force", "apply_central_force" }, //RigidBody2D + { "add_child_below_node", "add_sibling" }, // Node + { "add_color_override", "add_theme_color_override" }, // Control + { "add_constant_override", "add_theme_constant_override" }, // Control + { "add_font_override", "add_theme_font_override" }, // Control + { "add_force", "apply_force" }, //RigidBody2D + { "add_icon_override", "add_theme_icon_override" }, // Control + { "add_scene_import_plugin", "add_scene_format_importer_plugin" }, //EditorPlugin + { "add_spatial_gizmo_plugin", "add_node_3d_gizmo_plugin" }, // EditorPlugin + { "add_stylebox_override", "add_theme_stylebox_override" }, // Control + { "add_torque", "apply_torque" }, //RigidBody2D + { "agent_set_neighbor_dist", "agent_set_neighbor_distance" }, // NavigationServer2D, NavigationServer3D + { "apply_changes", "_apply_changes" }, // EditorPlugin + { "body_add_force", "body_apply_force" }, // PhysicsServer2D + { "body_add_torque", "body_apply_torque" }, // PhysicsServer2D + { "bumpmap_to_normalmap", "bump_map_to_normal_map" }, // Image + { "can_be_hidden", "_can_be_hidden" }, // EditorNode3DGizmoPlugin + { "can_drop_data", "_can_drop_data" }, // Control + { "can_generate_small_preview", "_can_generate_small_preview" }, // EditorResourcePreviewGenerator + { "can_instance", "can_instantiate" }, // PackedScene, Script + { "canvas_light_set_scale", "canvas_light_set_texture_scale" }, // RenderingServer + { "capture_get_device", "get_input_device" }, // AudioServer + { "capture_get_device_list", "get_input_device_list" }, // AudioServer + { "capture_set_device", "set_input_device" }, // AudioServer + { "center_viewport_to_cursor", "center_viewport_to_caret" }, // TextEdit + { "change_scene", "change_scene_to_file" }, // SceneTree + { "change_scene_to", "change_scene_to_packed" }, // SceneTree + { "clip_polygons_2d", "clip_polygons" }, // Geometry2D + { "clip_polyline_with_polygon_2d", "clip_polyline_with_polygon" }, //Geometry2D + { "commit_handle", "_commit_handle" }, // EditorNode3DGizmo + { "convex_hull_2d", "convex_hull" }, // Geometry2D + { "create_gizmo", "_create_gizmo" }, // EditorNode3DGizmoPlugin + { "cursor_get_blink_speed", "get_caret_blink_interval" }, // TextEdit + { "cursor_get_column", "get_caret_column" }, // TextEdit + { "cursor_get_line", "get_caret_line" }, // TextEdit + { "cursor_set_blink_enabled", "set_caret_blink_enabled" }, // TextEdit + { "cursor_set_blink_speed", "set_caret_blink_interval" }, // TextEdit + { "cursor_set_column", "set_caret_column" }, // TextEdit + { "cursor_set_line", "set_caret_line" }, // TextEdit + { "damped_spring_joint_create", "joint_make_damped_spring" }, // PhysicsServer2D + { "damped_string_joint_get_param", "damped_spring_joint_get_param" }, // PhysicsServer2D + { "damped_string_joint_set_param", "damped_spring_joint_set_param" }, // PhysicsServer2D + { "dectime", "move_toward" }, // GDScript, Math functions + { "delete_char_at_cursor", "delete_char_at_caret" }, // LineEdit + { "deselect_items", "deselect_all" }, // FileDialog + { "disable_plugin", "_disable_plugin" }, // EditorPlugin + { "drop_data", "_drop_data" }, // Control + { "exclude_polygons_2d", "exclude_polygons" }, // Geometry2D + { "find_node", "find_child" }, // Node + { "find_scancode_from_string", "find_keycode_from_string" }, // OS + { "forward_canvas_draw_over_viewport", "_forward_canvas_draw_over_viewport" }, // EditorPlugin + { "forward_canvas_force_draw_over_viewport", "_forward_canvas_force_draw_over_viewport" }, // EditorPlugin + { "forward_canvas_gui_input", "_forward_canvas_gui_input" }, // EditorPlugin + { "forward_spatial_draw_over_viewport", "_forward_3d_draw_over_viewport" }, // EditorPlugin + { "forward_spatial_force_draw_over_viewport", "_forward_3d_force_draw_over_viewport" }, // EditorPlugin + { "forward_spatial_gui_input", "_forward_3d_gui_input" }, // EditorPlugin + { "generate_from_path", "_generate_from_path" }, // EditorResourcePreviewGenerator + { "generate_small_preview_automatically", "_generate_small_preview_automatically" }, // EditorResourcePreviewGenerator + { "get_action_list", "action_get_events" }, // InputMap + { "get_alt", "is_alt_pressed" }, // InputEventWithModifiers + { "get_animation_process_mode", "get_process_callback" }, // AnimationPlayer + { "get_applied_force", "get_constant_force" }, //RigidBody2D + { "get_applied_torque", "get_constant_torque" }, //RigidBody2D + { "get_audio_bus", "get_audio_bus_name" }, // Area3D + { "get_bound_child_nodes_to_bone", "get_bone_children" }, // Skeleton3D + { "get_camera", "get_camera_3d" }, // Viewport -> this is also convertible to get_camera_2d, broke GLTFNode + { "get_cancel", "get_cancel_button" }, // ConfirmationDialog + { "get_caption", "_get_caption" }, // AnimationNode + { "get_cast_to", "get_target_position" }, // RayCast2D, RayCast3D + { "get_child_by_name", "_get_child_by_name" }, // AnimationNode + { "get_child_nodes", "_get_child_nodes" }, // AnimationNode + { "get_closest_point_to_segment_2d", "get_closest_point_to_segment" }, // Geometry2D + { "get_closest_point_to_segment_uncapped_2d", "get_closest_point_to_segment_uncapped" }, // Geometry2D + { "get_closest_points_between_segments_2d", "get_closest_point_to_segment" }, // Geometry2D + { "get_collision_layer_bit", "get_collision_layer_value" }, // CSGShape3D and a lot of others like GridMap + { "get_collision_mask_bit", "get_collision_mask_value" }, // CSGShape3D and a lot of others like GridMap + { "get_color_types", "get_color_type_list" }, // Theme + { "get_command", "is_command_or_control_pressed" }, // InputEventWithModifiers + { "get_constant_types", "get_constant_type_list" }, // Theme + { "get_control", "is_ctrl_pressed" }, // InputEventWithModifiers + { "get_cull_mask_bit", "get_cull_mask_value" }, // Camera3D + { "get_cursor_position", "get_caret_column" }, // LineEdit + { "get_d", "get_distance" }, // LineShape2D + { "get_depth_bias_enable", "get_depth_bias_enabled" }, // RDPipelineRasterizationState + { "get_device", "get_output_device" }, // AudioServer + { "get_device_list", "get_output_device_list" }, // AudioServer + { "get_drag_data", "_get_drag_data" }, // Control + { "get_editor_viewport", "get_editor_main_screen" }, // EditorPlugin + { "get_enabled_focus_mode", "get_focus_mode" }, // BaseButton + { "get_endian_swap", "is_big_endian" }, // File + { "get_error_string", "get_error_message" }, // JSON + { "get_filename", "get_scene_file_path" }, // Node, WARNING, this may be used in a lot of other places + { "get_focus_neighbour", "get_focus_neighbor" }, // Control + { "get_follow_smoothing", "get_position_smoothing_speed" }, // Camera2D + { "get_font_types", "get_font_type_list" }, // Theme + { "get_frame_color", "get_color" }, // ColorRect + { "get_global_rate_scale", "get_playback_speed_scale" }, // AudioServer + { "get_gravity_distance_scale", "get_gravity_point_unit_distance" }, // Area(2D/3D) + { "get_gravity_vector", "get_gravity_direction" }, // Area(2D/3D) + { "get_h_scrollbar", "get_h_scroll_bar" }, //ScrollContainer + { "get_hand", "get_tracker_hand" }, // XRPositionalTracker + { "get_handle_name", "_get_handle_name" }, // EditorNode3DGizmo + { "get_handle_value", "_get_handle_value" }, // EditorNode3DGizmo + { "get_icon_align", "get_icon_alignment" }, // Button + { "get_icon_types", "get_icon_type_list" }, // Theme + { "get_idle_frames", "get_process_frames" }, // Engine + { "get_import_options", "_get_import_options" }, // EditorImportPlugin + { "get_import_order", "_get_import_order" }, // EditorImportPlugin + { "get_importer_name", "_get_importer_name" }, // EditorImportPlugin + { "get_interior_ambient", "get_ambient_color" }, // ReflectionProbe + { "get_interior_ambient_energy", "get_ambient_color_energy" }, // ReflectionProbe + { "get_iterations_per_second", "get_physics_ticks_per_second" }, // Engine + { "get_last_mouse_speed", "get_last_mouse_velocity" }, // Input + { "get_layer_mask_bit", "get_layer_mask_value" }, // VisualInstance3D + { "get_len", "get_length" }, // File + { "get_max_atlas_size", "get_max_texture_size" }, // LightmapGI + { "get_metakey", "is_meta_pressed" }, // InputEventWithModifiers + { "get_mid_height", "get_height" }, // CapsuleMesh + { "get_motion_remainder", "get_remainder" }, // PhysicsTestMotionResult2D + { "get_neighbor_dist", "get_neighbor_distance" }, // NavigationAgent2D, NavigationAgent3D + { "get_network_connected_peers", "get_peers" }, // Multiplayer API + { "get_network_master", "get_multiplayer_authority" }, // Node + { "get_network_peer", "get_multiplayer_peer" }, // Multiplayer API + { "get_network_unique_id", "get_unique_id" }, // Multiplayer API + { "get_ok", "get_ok_button" }, // AcceptDialog + { "get_oneshot", "get_one_shot" }, // AnimatedTexture + { "get_option_visibility", "_get_option_visibility" }, // EditorImportPlugin + { "get_parameter_default_value", "_get_parameter_default_value" }, // AnimationNode + { "get_parameter_list", "_get_parameter_list" }, // AnimationNode + { "get_parent_spatial", "get_parent_node_3d" }, // Node3D + { "get_pause_mode", "get_process_mode" }, // Node + { "get_physical_scancode", "get_physical_keycode" }, // InputEventKey + { "get_physical_scancode_with_modifiers", "get_physical_keycode_with_modifiers" }, // InputEventKey + { "get_plugin_icon", "_get_plugin_icon" }, // EditorPlugin + { "get_plugin_name", "_get_plugin_name" }, // EditorPlugin + { "get_preset_count", "_get_preset_count" }, // EditorImportPlugin + { "get_preset_name", "_get_preset_name" }, // EditorImportPlugin + { "get_recognized_extensions", "_get_recognized_extensions" }, // ResourceFormatLoader, EditorImportPlugin broke ResourceSaver + { "get_render_info", "get_rendering_info" }, // RenderingServer + { "get_render_targetsize", "get_render_target_size" }, // XRInterface + { "get_resource_type", "_get_resource_type" }, // ResourceFormatLoader + { "get_result", "get_data" }, //JSON + { "get_reverb_bus", "set_reverb_bus_name" }, // Area3D + { "get_rpc_sender_id", "get_remote_sender_id" }, // Multiplayer API + { "get_save_extension", "_get_save_extension" }, // EditorImportPlugin + { "get_scancode", "get_keycode" }, // InputEventKey + { "get_scancode_string", "get_keycode_string" }, // OS + { "get_scancode_with_modifiers", "get_keycode_with_modifiers" }, // InputEventKey + { "get_selected_path", "get_current_directory" }, // EditorInterface + { "get_shift", "is_shift_pressed" }, // InputEventWithModifiers + { "get_size_override", "get_size_2d_override" }, // SubViewport + { "get_slide_count", "get_slide_collision_count" }, // CharacterBody2D, CharacterBody3D + { "get_slips_on_slope", "get_slide_on_slope" }, // SeparationRayShape2D, SeparationRayShape3D + { "get_space_override_mode", "get_gravity_space_override_mode" }, // Area2D + { "get_spatial_node", "get_node_3d" }, // EditorNode3DGizmo + { "get_speed", "get_velocity" }, // InputEventMouseMotion + { "get_stylebox_types", "get_stylebox_type_list" }, // Theme + { "get_surface_material", "get_surface_override_material" }, // MeshInstance3D broke ImporterMesh + { "get_surface_material_count", "get_surface_override_material_count" }, // MeshInstance3D + { "get_tab_disabled", "is_tab_disabled" }, // Tab + { "get_tab_hidden", "is_tab_hidden" }, // Tab + { "get_text_align", "get_text_alignment" }, // Button + { "get_theme_item_types", "get_theme_item_type_list" }, // Theme + { "get_timer_process_mode", "get_timer_process_callback" }, // Timer + { "get_translation", "get_position" }, // Node3D broke GLTFNode which is used rarely + { "get_unit_db", "get_volume_db" }, // AudioStreamPlayer3D + { "get_unit_offset", "get_progress_ratio" }, // PathFollow2D, PathFollow3D + { "get_use_in_baked_light", "is_baking_navigation" }, // GridMap + { "get_used_cells_by_id", "get_used_cells" }, // TileMap + { "get_v_scrollbar", "get_v_scroll_bar" }, //ScrollContainer + { "get_visible_name", "_get_visible_name" }, // EditorImportPlugin + { "get_window_layout", "_get_window_layout" }, // EditorPlugin + { "get_word_under_cursor", "get_word_under_caret" }, // TextEdit + { "get_world", "get_world_3d" }, // Viewport, Spatial + { "get_zfar", "get_far" }, // Camera3D broke GLTFCamera + { "get_znear", "get_near" }, // Camera3D broke GLTFCamera + { "groove_joint_create", "joint_make_groove" }, // PhysicsServer2D + { "handle_menu_selected", "_handle_menu_selected" }, // EditorResourcePicker + { "handles_type", "_handles_type" }, // ResourceFormatLoader + { "has_color", "has_theme_color" }, // Control broke Theme + { "has_color_override", "has_theme_color_override" }, // Control broke Theme + { "has_constant", "has_theme_constant" }, // Control + { "has_constant_override", "has_theme_constant_override" }, // Control + { "has_filter", "_has_filter" }, // AnimationNode + { "has_font", "has_theme_font" }, // Control broke Theme + { "has_font_override", "has_theme_font_override" }, // Control + { "has_icon", "has_theme_icon" }, // Control broke Theme + { "has_icon_override", "has_theme_icon_override" }, // Control + { "has_main_screen", "_has_main_screen" }, // EditorPlugin + { "has_network_peer", "has_multiplayer_peer" }, // Multiplayer API + { "has_stylebox", "has_theme_stylebox" }, // Control broke Theme + { "has_stylebox_override", "has_theme_stylebox_override" }, // Control + { "http_escape", "uri_encode" }, // String + { "http_unescape", "uri_decode" }, // String + { "import_scene_from_other_importer", "_import_scene" }, //EditorSceneFormatImporter + { "instance_set_surface_material", "instance_set_surface_override_material" }, // RenderingServer + { "interpolate", "sample" }, // Curve, Curve2D, Curve3D, Gradient + { "intersect_polygons_2d", "intersect_polygons" }, // Geometry2D + { "intersect_polyline_with_polygon_2d", "intersect_polyline_with_polygon" }, // Geometry2D + { "is_a_parent_of", "is_ancestor_of" }, // Node + { "is_commiting_action", "is_committing_action" }, // UndoRedo + { "is_doubleclick", "is_double_click" }, // InputEventMouseButton + { "is_draw_red", "is_draw_warning" }, // EditorProperty + { "is_follow_smoothing_enabled", "is_position_smoothing_enabled" }, // Camera2D + { "is_h_drag_enabled", "is_drag_horizontal_enabled" }, // Camera2D + { "is_handle_highlighted", "_is_handle_highlighted" }, // EditorNode3DGizmo, EditorNode3DGizmoPlugin + { "is_inverting_faces", "get_flip_faces" }, // CSGPrimitive3D + { "is_network_master", "is_multiplayer_authority" }, // Node + { "is_network_server", "is_server" }, // Multiplayer API + { "is_normalmap", "is_normal_map" }, // NoiseTexture + { "is_refusing_new_network_connections", "is_refusing_new_connections" }, // Multiplayer API + { "is_region", "is_region_enabled" }, // Sprite2D + { "is_rotating", "is_ignoring_rotation" }, // Camera2D + { "is_scancode_unicode", "is_keycode_unicode" }, // OS + { "is_selectable_when_hidden", "_is_selectable_when_hidden" }, // EditorNode3DGizmoPlugin + { "is_set_as_toplevel", "is_set_as_top_level" }, // CanvasItem + { "is_shortcut", "matches_event" }, // Shortcut + { "is_size_override_stretch_enabled", "is_size_2d_override_stretch_enabled" }, // SubViewport + { "is_sort_enabled", "is_y_sort_enabled" }, // Node2D + { "is_static_body", "is_able_to_sleep" }, // PhysicalBone3D - TODO - not sure + { "is_v_drag_enabled", "is_drag_vertical_enabled" }, // Camera2D + { "joint_create_cone_twist", "joint_make_cone_twist" }, // PhysicsServer3D + { "joint_create_generic_6dof", "joint_make_generic_6dof" }, // PhysicsServer3D + { "joint_create_hinge", "joint_make_hinge" }, // PhysicsServer3D + { "joint_create_pin", "joint_make_pin" }, // PhysicsServer3D + { "joint_create_slider", "joint_make_slider" }, // PhysicsServer3D + { "line_intersects_line_2d", "line_intersects_line" }, // Geometry2D + { "load_from_globals", "load_from_project_settings" }, // InputMap + { "load_interactive", "load_threaded_request" }, // ResourceLoader - load_threaded_request is alternative, but is used differently + { "make_convex_from_brothers", "make_convex_from_siblings" }, // CollisionShape3D + { "make_visible", "_make_visible" }, // EditorPlugin + { "merge_polygons_2d", "merge_polygons" }, // Geometry2D + { "mesh_surface_get_format", "mesh_surface_get_format_attribute_stride" }, // RenderingServer + { "mesh_surface_update_region", "mesh_surface_update_attribute_region" }, // RenderingServer + { "move_to_bottom", "move_after" }, // Skeleton3D + { "move_to_top", "move_before" }, // Skeleton3D + { "multimesh_allocate", "multimesh_allocate_data" }, // RenderingServer + { "normalmap_to_xy", "normal_map_to_xy" }, // Image + { "offset_polygon_2d", "offset_polygon" }, // Geometry2D + { "offset_polyline_2d", "offset_polyline" }, // Geometry2D + { "percent_decode", "uri_decode" }, // String + { "percent_encode", "uri_encode" }, // String + { "pin_joint_create", "joint_make_pin" }, // PhysicsServer2D + { "popup_centered_minsize", "popup_centered_clamped" }, // Window + { "post_import", "_post_import" }, // EditorScenePostImport + { "print_stray_nodes", "print_orphan_nodes" }, // Node + { "property_list_changed_notify", "notify_property_list_changed" }, // Object + { "raise", "move_to_front" }, // CanvasItem + { "recognize", "_recognize" }, // ResourceFormatLoader + { "regen_normalmaps", "regen_normal_maps" }, // ArrayMesh + { "remove", "remove_at" }, // Array, broke Directory + { "remove_animation", "remove_animation_library" }, // AnimationPlayer + { "remove_color_override", "remove_theme_color_override" }, // Control + { "remove_constant_override", "remove_theme_constant_override" }, // Control + { "remove_font_override", "remove_theme_font_override" }, // Control + { "remove_icon_override", "remove_theme_icon_override" }, // Control + { "remove_scene_import_plugin", "remove_scene_format_importer_plugin" }, //EditorPlugin + { "remove_spatial_gizmo_plugin", "remove_node_3d_gizmo_plugin" }, // EditorPlugin + { "remove_stylebox_override", "remove_theme_stylebox_override" }, // Control + { "rename_animation", "rename_animation_library" }, // AnimationPlayer + { "rename_dependencies", "_rename_dependencies" }, // ResourceFormatLoader + { "save_external_data", "_save_external_data" }, // EditorPlugin + { "segment_intersects_segment_2d", "segment_intersects_segment" }, // Geometry2D + { "set_adjustment_enable", "set_adjustment_enabled" }, // Environment + { "set_alt", "set_alt_pressed" }, // InputEventWithModifiers + { "set_anchor_and_margin", "set_anchor_and_offset" }, // Control + { "set_anchors_and_margins_preset", "set_anchors_and_offsets_preset" }, // Control + { "set_animation_process_mode", "set_process_callback" }, // AnimationPlayer + { "set_as_bulk_array", "set_buffer" }, // MultiMesh + { "set_as_normalmap", "set_as_normal_map" }, // NoiseTexture + { "set_as_toplevel", "set_as_top_level" }, // CanvasItem + { "set_audio_bus", "set_audio_bus_name" }, // Area3D + { "set_autowrap", "set_autowrap_mode" }, // Label broke AcceptDialog + { "set_cast_to", "set_target_position" }, // RayCast2D, RayCast3D + { "set_collision_layer_bit", "set_collision_layer_value" }, // CSGShape3D and a lot of others like GridMap + { "set_collision_mask_bit", "set_collision_mask_value" }, // CSGShape3D and a lot of others like GridMap + { "set_column_min_width", "set_column_custom_minimum_width" }, // Tree + { "set_command", "set_meta_pressed" }, // InputEventWithModifiers + { "set_control", "set_ctrl_pressed" }, // InputEventWithModifiers + { "set_create_options", "_set_create_options" }, // EditorResourcePicker + { "set_cull_mask_bit", "set_cull_mask_value" }, // Camera3D + { "set_cursor_position", "set_caret_column" }, // LineEdit + { "set_d", "set_distance" }, // WorldMarginShape2D + { "set_depth_bias_enable", "set_depth_bias_enabled" }, // RDPipelineRasterizationState + { "set_device", "set_output_device" }, // AudioServer + { "set_doubleclick", "set_double_click" }, // InputEventMouseButton + { "set_draw_red", "set_draw_warning" }, // EditorProperty + { "set_enable_follow_smoothing", "set_position_smoothing_enabled" }, // Camera2D + { "set_enabled_focus_mode", "set_focus_mode" }, // BaseButton + { "set_endian_swap", "set_big_endian" }, // File + { "set_expand_to_text_length", "set_expand_to_text_length_enabled" }, // LineEdit + { "set_filename", "set_scene_file_path" }, // Node, WARNING, this may be used in a lot of other places + { "set_focus_neighbour", "set_focus_neighbor" }, // Control + { "set_follow_smoothing", "set_position_smoothing_speed" }, // Camera2D + { "set_frame_color", "set_color" }, // ColorRect + { "set_global_rate_scale", "set_playback_speed_scale" }, // AudioServer + { "set_gravity_distance_scale", "set_gravity_point_unit_distance" }, // Area(2D/3D) + { "set_gravity_vector", "set_gravity_direction" }, // Area(2D/3D) + { "set_h_drag_enabled", "set_drag_horizontal_enabled" }, // Camera2D + { "set_icon_align", "set_icon_alignment" }, // Button + { "set_interior_ambient", "set_ambient_color" }, // ReflectionProbe + { "set_interior_ambient_energy", "set_ambient_color_energy" }, // ReflectionProbe + { "set_invert_faces", "set_flip_faces" }, // CSGPrimitive3D + { "set_is_initialized", "_is_initialized" }, // XRInterface + { "set_is_primary", "set_primary" }, // XRInterface + { "set_iterations_per_second", "set_physics_ticks_per_second" }, // Engine + { "set_layer_mask_bit", "set_layer_mask_value" }, // VisualInstance3D + { "set_margins_preset", "set_offsets_preset" }, // Control + { "set_max_atlas_size", "set_max_texture_size" }, // LightmapGI + { "set_metakey", "set_meta_pressed" }, // InputEventWithModifiers + { "set_mid_height", "set_height" }, // CapsuleMesh + { "set_neighbor_dist", "set_neighbor_distance" }, // NavigationAgent2D, NavigationAgent3D + { "set_network_master", "set_multiplayer_authority" }, // Node + { "set_network_peer", "set_multiplayer_peer" }, // Multiplayer API + { "set_oneshot", "set_one_shot" }, // AnimatedTexture + { "set_pause_mode", "set_process_mode" }, // Node + { "set_physical_scancode", "set_physical_keycode" }, // InputEventKey + { "set_proximity_fade", "set_proximity_fade_enabled" }, // Material + { "set_refuse_new_network_connections", "set_refuse_new_connections" }, // Multiplayer API + { "set_region", "set_region_enabled" }, // Sprite2D, Sprite broke AtlasTexture + { "set_region_filter_clip", "set_region_filter_clip_enabled" }, // Sprite2D + { "set_reverb_bus", "set_reverb_bus_name" }, // Area3D + { "set_rotate", "set_rotates" }, // PathFollow2D + { "set_scancode", "set_keycode" }, // InputEventKey + { "set_shift", "set_shift_pressed" }, // InputEventWithModifiers + { "set_size_override", "set_size_2d_override" }, // SubViewport broke ImageTexture + { "set_size_override_stretch", "set_size_2d_override_stretch" }, // SubViewport + { "set_slips_on_slope", "set_slide_on_slope" }, // SeparationRayShape2D, SeparationRayShape3D + { "set_sort_enabled", "set_y_sort_enabled" }, // Node2D + { "set_space_override_mode", "set_gravity_space_override_mode" }, // Area2D + { "set_spatial_node", "set_node_3d" }, // EditorNode3DGizmo + { "set_speed", "set_velocity" }, // InputEventMouseMotion + { "set_ssao_edge_sharpness", "set_ssao_sharpness" }, // Environment + { "set_surface_material", "set_surface_override_material" }, // MeshInstance3D broke ImporterMesh + { "set_tab_align", "set_tab_alignment" }, //TabContainer + { "set_tangent", "surface_set_tangent" }, // ImmediateGeometry broke SurfaceTool + { "set_text_align", "set_text_alignment" }, // Button + { "set_timer_process_mode", "set_timer_process_callback" }, // Timer + { "set_translation", "set_position" }, // Node3D - this broke GLTFNode which is used rarely + { "set_unit_db", "set_volume_db" }, // AudioStreamPlayer3D + { "set_unit_offset", "set_progress_ratio" }, // PathFollow2D, PathFollow3D + { "set_uv2", "surface_set_uv2" }, // ImmediateMesh broke Surffacetool + { "set_v_drag_enabled", "set_drag_vertical_enabled" }, // Camera2D + { "set_valign", "set_vertical_alignment" }, // Label + { "set_window_layout", "_set_window_layout" }, // EditorPlugin + { "set_zfar", "set_far" }, // Camera3D broke GLTFCamera + { "set_znear", "set_near" }, // Camera3D broke GLTFCamera + { "shortcut_match", "is_match" }, // InputEvent + { "skeleton_allocate", "skeleton_allocate_data" }, // RenderingServer + { "surface_update_region", "surface_update_attribute_region" }, // ArrayMesh + { "targeting_method", "tween_method" }, // Tween + { "targeting_property", "tween_property" }, // Tween + { "track_remove_key_at_position", "track_remove_key_at_time" }, // Animation + { "triangulate_delaunay_2d", "triangulate_delaunay" }, // Geometry2D + { "unselect", "deselect" }, // ItemList + { "unselect_all", "deselect_all" }, // ItemList + { "update_configuration_warning", "update_configuration_warnings" }, // Node + { "update_gizmo", "update_gizmos" }, // Node3D + { "viewport_set_use_arvr", "viewport_set_use_xr" }, // RenderingServer + { "warp_mouse_position", "warp_mouse" }, // Input + { "world_to_map", "local_to_map" }, // TileMap, GridMap + { "set_shader_param", "set_shader_parameter" }, // ShaderMaterial + { "get_shader_param", "get_shader_parameter" }, // ShaderMaterial + { "set_uniform_name", "set_parameter_name" }, // ParameterRef + { "get_uniform_name", "get_parameter_name" }, // ParameterRef + + // Builtin types + // Remember to add them to builtin_types_excluded_functions variable, because for now this functions cannot be listed + // { "empty", "is_empty" }, // Array - Used as custom rule // Be careful, this will be used everywhere + { "clamped", "clamp" }, // Vector2 // Be careful, this will be used everywhere + { "get_rotation_quat", "get_rotation_quaternion" }, // Basis + { "grow_margin", "grow_side" }, // Rect2 + { "invert", "reverse" }, // Array - TODO check // Be careful, this will be used everywhere + { "is_abs_path", "is_absolute_path" }, // String + { "is_valid_integer", "is_valid_int" }, // String + { "linear_interpolate", "lerp" }, // Color + { "find_last", "rfind" }, // Array, String + { "to_ascii", "to_ascii_buffer" }, // String + { "to_utf8", "to_utf8_buffer" }, // String + { "to_wchar", "to_utf32_buffer" }, // String // TODO - utf32 or utf16? + + // @GlobalScope + // Remember to add them to builtin_types_excluded_functions variable, because for now this functions cannot be listed + { "bytes2var", "bytes_to_var" }, + { "bytes2var_with_objects", "bytes_to_var_with_objects" }, + { "db2linear", "db_to_linear" }, + { "deg2rad", "deg_to_rad" }, + { "linear2db", "linear_to_db" }, + { "rad2deg", "rad_to_deg" }, + { "rand_range", "randf_range" }, + { "range_lerp", "remap" }, + { "stepify", "snapped" }, + { "str2var", "str_to_var" }, + { "var2str", "var_to_str" }, + { "var2bytes", "var_to_bytes" }, + { "var2bytes_with_objects", "var_to_bytes_with_objects" }, + + // @GDScript + // Remember to add them to builtin_types_excluded_functions variable, because for now this functions cannot be listed + { "dict2inst", "dict_to_inst" }, + { "inst2dict", "inst_to_dict" }, + + { nullptr, nullptr }, +}; + +// gdscript_function_renames clone with CamelCase +const char *RenamesMap3To4::csharp_function_renames[][2] = { + // { "_SetName", "GetTrackerName"}, // XRPositionalTracker - CameraFeed use this + // { "_UnhandledInput", "_UnhandledKeyInput"}, // BaseButton, ViewportContainer broke Node, FileDialog,SubViewportContainer + // { "CreateGizmo", "_CreateGizmo"}, // EditorNode3DGizmoPlugin - may be used + // { "GetDependencies", "_GetDependencies" }, // ResourceFormatLoader broke ResourceLoader + // { "GetExtents", "GetSize" }, // BoxShape, RectangleShape broke Decal, VoxelGI, GPUParticlesCollisionBox, GPUParticlesCollisionSDF, GPUParticlesCollisionHeightField, GPUParticlesAttractorBox, GPUParticlesAttractorVectorField, FogVolume + // { "GetHOffset", "GetDragHorizontalOffset"}, // Camera2D, broke PathFollow, Camera + // { "GetMode", "GetFileMode"}, // FileDialog broke Panel, Shader, CSGPolygon, Tilemap + // { "GetMotion", "GetTravel"}, // PhysicsTestMotionResult2D broke ParalaxLayer + // { "GetName", "GetTrackerName"}, // XRPositionalTracker broke OS, Node + // { "GetNetworkConnectedPeers", "GetPeers"}, // MultiplayerAPI broke SceneTree + // { "GetNetworkPeer", "HasMultiplayerPeer"}, // MultiplayerAPI broke SceneTree + // { "GetNetworkUniqueId", "GetUniqueId"}, // MultiplayerAPI broke SceneTree + // { "GetOffset", "GetPositionOffset" }, // GraphNode broke Gradient + // { "GetPeerPort", "GetPeer" }, // ENetMultiplayerPeer broke WebSocketServer + // { "GetProcessMode", "GetProcessCallback" }, // ClippedCamera3D broke Node, Sky + // { "GetRenderInfo", "GetRenderingInfo" }, // RenderingServer broke Viewport + // { "GetType", "GetTrackerType"}, // XRPositionalTracker broke GLTFAccessor, GLTFLight + // { "GetVOffset", "GetDragVerticalOffset"}, // Camera2D, broke PathFollow, Camera + // { "HasNetworkPeer", "HasMultiplayerPeer"}, // MultiplayerAPI broke SceneTree + // { "Instance", "Instantiate" }, // PackedScene, ClassDB - Broke FileSystemDock signal and also tscn files - [instance=ExtResource( 17 )] - this is implemented as custom rule + // { "IsListening", "IsBound"}, // PacketPeerUDP broke TCPServer, UDPServer + // { "IsRefusingNewNetworkConnections", "IsRefusingNewConnections"}, // MultiplayerAPI broke SceneTree + // { "IsValid", "HasValidEvent" }, // Shortcut broke e.g. Callable + // { "Listen", "Bound"}, // PacketPeerUDP broke TCPServer, UDPServer + // { "Load", "_Load"}, // ResourceFormatLoader broke ConfigFile, Image, StreamTexture2D + // { "MakeCurrent", "SetCurrent" }, // Camera2D broke Camera3D, Listener2D + // { "Process", "_Process" }, // AnimationNode - This word is commonly used + // { "Save", "_Save"}, // ResourceFormatLoader broke ConfigFile, Image, StreamTexture2D + // { "SetAutowrap", "SetAutowrapMode" }, // AcceptDialog broke Label - Cyclic Rename + // { "SetColor", "SurfaceSetColor"}, // ImmediateMesh broke Light2D, Theme, SurfaceTool + // { "SetEvent", "SetShortcut" }, // BaseButton - Cyclic Rename + // { "SetExtents", "SetSize"}, // BoxShape, RectangleShape broke ReflectionProbe + // { "SetFlag", "SetParticleFlag"}, // ParticleProcessMaterial broke Window, HingeJoint3D + // { "SetHOffset", "SetDragHorizontalOffset" }, // Camera2D broke Camera3D, PathFollow3D, PathFollow2D + // { "SetMargin", "SetOffset" }, // Control broke Shape3D, AtlasTexture + // { "SetMode", "SetModeFileMode" }, // FileDialog broke Panel, Shader, CSGPolygon, Tilemap + // { "SetNormal", "SurfaceSetNormal"}, // ImmediateGeometry broke SurfaceTool, WorldMarginShape2D + // { "SetOffset", "SetProgress" }, // PathFollow2D, PathFollow3D - Too common + // { "SetProcessMode", "SetProcessCallback" }, // AnimationTree broke Node, Tween, Sky + // { "SetRefuseNewNetworkConnections", "SetRefuseNewConnections"}, // MultiplayerAPI broke SceneTree + // { "SetTooltip", "SetTooltipText" }, // Control, breaks TreeItem, at least for now. + // { "SetUv", "SurfaceSetUv" }, // ImmediateMesh broke Polygon2D + // { "SetVOffset", "SetDragVerticalOffset" }, // Camera2D broke Camera3D, PathFollow3D, PathFollow2D + // {"GetPoints","GetPointsId"},// Astar, broke Line2D, Convexpolygonshape + // {"GetVScroll","GetVScrollBar"},//ItemList, broke TextView + // { "GetStylebox", "GetThemeStylebox" }, // Control - Will rename the method in Theme as well, skipping + { "AddSpatialGizmoPlugin", "AddNode3dGizmoPlugin" }, // EditorPlugin + { "RenderingServer", "GetTabAlignment" }, // Tab + { "_AboutToShow", "_AboutToPopup" }, // ColorPickerButton + { "_GetConfigurationWarning", "_GetConfigurationWarnings" }, // Node + { "_SetCurrent", "SetCurrent" }, // Camera2D + { "_SetEditorDescription", "SetEditorDescription" }, // Node + { "_SetPlaying", "SetPlaying" }, // AnimatedSprite3D + { "_ToplevelRaiseSelf", "_TopLevelRaiseSelf" }, // CanvasItem + { "_UpdateWrapAt", "_UpdateWrapAtColumn" }, // TextEdit + { "AddAnimation", "AddAnimationLibrary" }, // AnimationPlayer + { "AddCancel", "AddCancelButton" }, // AcceptDialog + { "AddCentralForce", "AddConstantCentralForce" }, //RigidBody2D + { "AddChildBelowNode", "AddSibling" }, // Node + { "AddColorOverride", "AddThemeColorOverride" }, // Control + { "AddConstantOverride", "AddThemeConstantOverride" }, // Control + { "AddFontOverride", "AddThemeFontOverride" }, // Control + { "AddForce", "AddConstantForce" }, //RigidBody2D + { "AddIconOverride", "AddThemeIconOverride" }, // Control + { "AddSceneImportPlugin", "AddSceneFormatImporterPlugin" }, //EditorPlugin + { "AddStyleboxOverride", "AddThemeStyleboxOverride" }, // Control + { "AddTorque", "AddConstantTorque" }, //RigidBody2D + { "AgentSetNeighborDist", "AgentSetNeighborDistance" }, // NavigationServer2D, NavigationServer3D + { "BindChildNodeToBone", "SetBoneChildren" }, // Skeleton3D + { "BumpmapToNormalmap", "BumpMapToNormalMap" }, // Image + { "CanBeHidden", "_CanBeHidden" }, // EditorNode3DGizmoPlugin + { "CanDropData", "_CanDropData" }, // Control + { "CanDropDataFw", "_CanDropDataFw" }, // ScriptEditor + { "CanGenerateSmallPreview", "_CanGenerateSmallPreview" }, // EditorResourcePreviewGenerator + { "CanInstance", "CanInstantiate" }, // PackedScene, Script + { "CanvasLightSetScale", "CanvasLightSetTextureScale" }, // RenderingServer + { "CaptureGetDevice", "GetInputDevice" }, // AudioServer + { "CaptureGetDeviceList", "GetInputDeviceList" }, // AudioServer + { "CaptureSetDevice", "SetInputDevice" }, // AudioServer + { "CenterViewportToCursor", "CenterViewportToCaret" }, // TextEdit + { "ChangeScene", "ChangeSceneToFile" }, // SceneTree + { "ChangeSceneTo", "ChangeSceneToPacked" }, // SceneTree + { "ClipPolygons2d", "ClipPolygons" }, // Geometry2D + { "ClipPolylineWithPolygon2d", "ClipPolylineWithPolygon" }, //Geometry2D + { "CommitHandle", "_CommitHandle" }, // EditorNode3DGizmo + { "ConvexHull2d", "ConvexHull" }, // Geometry2D + { "CursorGetBlinkSpeed", "GetCaretBlinkInterval" }, // TextEdit + { "CursorGetColumn", "GetCaretColumn" }, // TextEdit + { "CursorGetLine", "GetCaretLine" }, // TextEdit + { "CursorSetBlinkEnabled", "SetCaretBlinkEnabled" }, // TextEdit + { "CursorSetBlinkSpeed", "SetCaretBlinkInterval" }, // TextEdit + { "CursorSetColumn", "SetCaretColumn" }, // TextEdit + { "CursorSetLine", "SetCaretLine" }, // TextEdit + { "DampedSpringJointCreate", "JointMakeDampedSpring" }, // PhysicsServer2D + { "DampedStringJointGetParam", "DampedSpringJointGetParam" }, // PhysicsServer2D + { "DampedStringJointSetParam", "DampedSpringJointSetParam" }, // PhysicsServer2D + { "DeleteCharAtCursor", "DeleteCharAtCaret" }, // LineEdit + { "DeselectItems", "DeselectAll" }, // FileDialog + { "DropData", "_DropData" }, // Control + { "DropDataFw", "_DropDataFw" }, // ScriptEditor + { "ExcludePolygons2d", "ExcludePolygons" }, // Geometry2D + { "FindScancodeFromString", "FindKeycodeFromString" }, // OS + { "ForwardCanvasDrawOverViewport", "_ForwardCanvasDrawOverViewport" }, // EditorPlugin + { "ForwardCanvasForceDrawOverViewport", "_ForwardCanvasForceDrawOverViewport" }, // EditorPlugin + { "ForwardCanvasGuiInput", "_ForwardCanvasGuiInput" }, // EditorPlugin + { "ForwardSpatialDrawOverViewport", "_Forward3dDrawOverViewport" }, // EditorPlugin + { "ForwardSpatialForceDrawOverViewport", "_Forward3dForceDrawOverViewport" }, // EditorPlugin + { "ForwardSpatialGuiInput", "_Forward3dGuiInput" }, // EditorPlugin + { "GenerateFromPath", "_GenerateFromPath" }, // EditorResourcePreviewGenerator + { "GenerateSmallPreviewAutomatically", "_GenerateSmallPreviewAutomatically" }, // EditorResourcePreviewGenerator + { "GetActionList", "ActionGetEvents" }, // InputMap + { "GetAlt", "IsAltPressed" }, // InputEventWithModifiers + { "GetAnimationProcessMode", "GetProcessCallback" }, // AnimationPlayer + { "GetAppliedForce", "GetConstantForce" }, //RigidBody2D + { "GetAppliedTorque", "GetConstantTorque" }, //RigidBody2D + { "GetAudioBus", "GetAudioBusName" }, // Area3D + { "GetBoundChildNodesToBone", "GetBoneChildren" }, // Skeleton3D + { "GetCamera", "GetCamera3d" }, // Viewport -> this is also convertible to getCamera2d, broke GLTFNode + { "GetCancel", "GetCancelButton" }, // ConfirmationDialog + { "GetCaption", "_GetCaption" }, // AnimationNode + { "GetCastTo", "GetTargetPosition" }, // RayCast2D, RayCast3D + { "GetChildByName", "_GetChildByName" }, // AnimationNode + { "GetChildNodes", "_GetChildNodes" }, // AnimationNode + { "GetClosestPointToSegment2d", "GetClosestPointToSegment" }, // Geometry2D + { "GetClosestPointToSegmentUncapped2d", "GetClosestPointToSegmentUncapped" }, // Geometry2D + { "GetClosestPointsBetweenSegments2d", "GetClosestPointToSegment" }, // Geometry2D + { "GetCollisionLayerBit", "GetCollisionLayerValue" }, // CSGShape3D and a lot of others like GridMap + { "GetCollisionMaskBit", "GetCollisionMaskValue" }, // CSGShape3D and a lot of others like GridMap + { "GetColorTypes", "GetColorTypeList" }, // Theme + { "GetCommand", "IsCommandPressed" }, // InputEventWithModifiers + { "GetConstantTypes", "GetConstantTypeList" }, // Theme + { "GetControl", "IsCtrlPressed" }, // InputEventWithModifiers + { "GetCullMaskBit", "GetCullMaskValue" }, // Camera3D + { "GetCursorPosition", "GetCaretColumn" }, // LineEdit + { "GetD", "GetDistance" }, // LineShape2D + { "GetDepthBiasEnable", "GetDepthBiasEnabled" }, // RDPipelineRasterizationState + { "GetDevice", "GetOutputDevice" }, // AudioServer + { "GetDeviceList", "GetOutputDeviceList" }, // AudioServer + { "GetDragDataFw", "_GetDragDataFw" }, // ScriptEditor + { "GetEditorViewport", "GetViewport" }, // EditorPlugin + { "GetEnabledFocusMode", "GetFocusMode" }, // BaseButton + { "GetEndianSwap", "IsBigEndian" }, // File + { "GetErrorString", "GetErrorMessage" }, // JSON + { "GetFocusNeighbour", "GetFocusNeighbor" }, // Control + { "GetFollowSmoothing", "GetFollowSmoothingSpeed" }, // Camera2D + { "GetFontTypes", "GetFontTypeList" }, // Theme + { "GetFrameColor", "GetColor" }, // ColorRect + { "GetGlobalRateScale", "GetPlaybackSpeedScale" }, // AudioServer + { "GetGravityDistanceScale", "GetGravityPointDistanceScale" }, //Area2D + { "GetGravityVector", "GetGravityDirection" }, //Area2D + { "GetHScrollbar", "GetHScrollBar" }, //ScrollContainer + { "GetHand", "GetTrackerHand" }, // XRPositionalTracker + { "GetHandleName", "_GetHandleName" }, // EditorNode3DGizmo + { "GetHandleValue", "_GetHandleValue" }, // EditorNode3DGizmo + { "GetIconAlign", "GetIconAlignment" }, // Button + { "GetIconTypes", "GetIconTypeList" }, // Theme + { "GetIdleFrames", "GetProcessFrames" }, // Engine + { "GetImportOptions", "_GetImportOptions" }, // EditorImportPlugin + { "GetImportOrder", "_GetImportOrder" }, // EditorImportPlugin + { "GetImporterName", "_GetImporterName" }, // EditorImportPlugin + { "GetInteriorAmbient", "GetAmbientColor" }, // ReflectionProbe + { "GetInteriorAmbientEnergy", "GetAmbientColorEnergy" }, // ReflectionProbe + { "GetIterationsPerSecond", "GetPhysicsTicksPerSecond" }, // Engine + { "GetLastMouseSpeed", "GetLastMouseVelocity" }, // Input + { "GetLayerMaskBit", "GetLayerMaskValue" }, // VisualInstance3D + { "GetLen", "GetLength" }, // File + { "GetMaxAtlasSize", "GetMaxTextureSize" }, // LightmapGI + { "GetMetakey", "IsMetaPressed" }, // InputEventWithModifiers + { "GetMidHeight", "GetHeight" }, // CapsuleMesh + { "GetMotionRemainder", "GetRemainder" }, // PhysicsTestMotionResult2D + { "GetNeighborDist", "GetNeighborDistance" }, // NavigationAgent2D, NavigationAgent3D + { "GetNetworkConnectedPeers", "GetPeers" }, // Multiplayer API + { "GetNetworkMaster", "GetMultiplayerAuthority" }, // Node + { "GetNetworkPeer", "GetMultiplayerPeer" }, // Multiplayer API + { "GetNetworkUniqueId", "GetUniqueId" }, // Multiplayer API + { "GetOneshot", "GetOneShot" }, // AnimatedTexture + { "GetOk", "GetOkButton" }, // AcceptDialog + { "GetOptionVisibility", "_GetOptionVisibility" }, // EditorImportPlugin + { "GetParameterDefaultValue", "_GetParameterDefaultValue" }, // AnimationNode + { "GetParameterList", "_GetParameterList" }, // AnimationNode + { "GetParentSpatial", "GetParentNode3d" }, // Node3D + { "GetPhysicalScancode", "GetPhysicalKeycode" }, // InputEventKey + { "GetPhysicalScancodeWithModifiers", "GetPhysicalKeycodeWithModifiers" }, // InputEventKey + { "GetPluginIcon", "_GetPluginIcon" }, // EditorPlugin + { "GetPluginName", "_GetPluginName" }, // EditorPlugin + { "GetPresetCount", "_GetPresetCount" }, // EditorImportPlugin + { "GetPresetName", "_GetPresetName" }, // EditorImportPlugin + { "GetRecognizedExtensions", "_GetRecognizedExtensions" }, // ResourceFormatLoader, EditorImportPlugin broke ResourceSaver + { "GetRenderInfo", "GetRenderingInfo" }, // RenderingServer + { "GetRenderTargetsize", "GetRenderTargetSize" }, // XRInterface + { "GetResourceType", "_GetResourceType" }, // ResourceFormatLoader + { "GetResult", "GetData" }, //JSON + { "GetReverbBus", "GetReverbBusName" }, // Area3D + { "GetRpcSenderId", "GetRemoteSenderId" }, // Multiplayer API + { "GetSaveExtension", "_GetSaveExtension" }, // EditorImportPlugin + { "GetScancode", "GetKeycode" }, // InputEventKey + { "GetScancodeString", "GetKeycodeString" }, // OS + { "GetScancodeWithModifiers", "GetKeycodeWithModifiers" }, // InputEventKey + { "GetShift", "IsShiftPressed" }, // InputEventWithModifiers + { "GetSizeOverride", "GetSize2dOverride" }, // SubViewport + { "GetSlipsOnSlope", "GetSlideOnSlope" }, // SeparationRayShape2D, SeparationRayShape3D + { "GetSpaceOverrideMode", "GetGravitySpaceOverrideMode" }, // Area2D + { "GetSpatialNode", "GetNode3d" }, // EditorNode3DGizmo + { "GetSpeed", "GetVelocity" }, // InputEventMouseMotion + { "GetStyleboxTypes", "GetStyleboxTypeList" }, // Theme + { "GetSurfaceMaterial", "GetSurfaceOverrideMaterial" }, // MeshInstance3D broke ImporterMesh + { "GetSurfaceMaterialCount", "GetSurfaceOverrideMaterialCount" }, // MeshInstance3D + { "GetTabDisabled", "IsTabDisabled" }, // Tab + { "GetTabHidden", "IsTabHidden" }, // Tab + { "GetTextAlign", "GetTextAlignment" }, // Button + { "GetThemeItemTypes", "GetThemeItemTypeList" }, // Theme + { "GetTimerProcessMode", "GetTimerProcessCallback" }, // Timer + { "GetTranslation", "GetPosition" }, // Node3D broke GLTFNode which is used rarely + { "GetUnitDb", "GetVolumeDb" }, // AudioStreamPlayer3D + { "GetUnitOffset", "GetProgressRatio" }, // PathFollow2D, PathFollow3D + { "GetUseInBakedLight", "IsBakingNavigation" }, // GridMap + { "GetUsedCellsById", "GetUsedCells" }, // TileMap + { "GetVScrollbar", "GetVScrollBar" }, //ScrollContainer + { "GetVisibleName", "_GetVisibleName" }, // EditorImportPlugin + { "GetWindowLayout", "_GetWindowLayout" }, // EditorPlugin + { "GetWordUnderCursor", "GetWordUnderCaret" }, // TextEdit + { "GetWorld", "GetWorld3d" }, // Viewport, Spatial + { "GetZfar", "GetFar" }, // Camera3D broke GLTFCamera + { "GetZnear", "GetNear" }, // Camera3D broke GLTFCamera + { "GrooveJointCreate", "JointMakeGroove" }, // PhysicsServer2D + { "HandleMenuSelected", "_HandleMenuSelected" }, // EditorResourcePicker + { "HandlesType", "_HandlesType" }, // ResourceFormatLoader + { "HasColor", "HasThemeColor" }, // Control broke Theme + { "HasColorOverride", "HasThemeColorOverride" }, // Control broke Theme + { "HasConstant", "HasThemeConstant" }, // Control + { "HasConstantOverride", "HasThemeConstantOverride" }, // Control + { "HasFilter", "_HasFilter" }, // AnimationNode + { "HasFont", "HasThemeFont" }, // Control broke Theme + { "HasFontOverride", "HasThemeFontOverride" }, // Control + { "HasIcon", "HasThemeIcon" }, // Control broke Theme + { "HasIconOverride", "HasThemeIconOverride" }, // Control + { "HasMainScreen", "_HasMainScreen" }, // EditorPlugin + { "HasNetworkPeer", "HasMultiplayerPeer" }, // Multiplayer API + { "HasStylebox", "HasThemeStylebox" }, // Control broke Theme + { "HasStyleboxOverride", "HasThemeStyleboxOverride" }, // Control + { "HttpEscape", "UriEncode" }, // String + { "HttpUnescape", "UriDecode" }, // String + { "ImportAnimationFromOtherImporter", "_ImportAnimation" }, //EditorSceneFormatImporter + { "ImportSceneFromOtherImporter", "_ImportScene" }, //EditorSceneFormatImporter + { "InstanceSetSurfaceMaterial", "InstanceSetSurfaceOverrideMaterial" }, // RenderingServer + { "IntersectPolygons2d", "IntersectPolygons" }, // Geometry2D + { "IntersectPolylineWithPolygon2d", "IntersectPolylineWithPolygon" }, // Geometry2D + { "IsAParentOf", "IsAncestorOf" }, // Node + { "IsCommitingAction", "IsCommittingAction" }, // UndoRedo + { "IsDoubleclick", "IsDoubleClick" }, // InputEventMouseButton + { "IsFollowSmoothingEnabled", "IsPositionSmoothingEnabled" }, // Camera2D + { "IsHDragEnabled", "IsDragHorizontalEnabled" }, // Camera2D + { "IsHandleHighlighted", "_IsHandleHighlighted" }, // EditorNode3DGizmo, EditorNode3DGizmoPlugin + { "IsNetworkMaster", "IsMultiplayerAuthority" }, // Node + { "IsNetworkServer", "IsServer" }, // Multiplayer API + { "IsNormalmap", "IsNormalMap" }, // NoiseTexture + { "IsRefusingNewNetworkConnections", "IsRefusingNewConnections" }, // Multiplayer API + { "IsRegion", "IsRegionEnabled" }, // Sprite2D + { "IsRotating", "IsIgnoringRotation" }, // Camera2D + { "IsScancodeUnicode", "IsKeycodeUnicode" }, // OS + { "IsSelectableWhenHidden", "_IsSelectableWhenHidden" }, // EditorNode3DGizmoPlugin + { "IsSetAsToplevel", "IsSetAsTopLevel" }, // CanvasItem + { "IsShortcut", "MatchesEvent" }, // Shortcut + { "IsSizeOverrideStretchEnabled", "IsSize2dOverrideStretchEnabled" }, // SubViewport + { "IsSortEnabled", "IsYSortEnabled" }, // Node2D + { "IsStaticBody", "IsAbleToSleep" }, // PhysicalBone3D - TODO - not sure + { "IsVDragEnabled", "IsDragVerticalEnabled" }, // Camera2D + { "JointCreateConeTwist", "JointMakeConeTwist" }, // PhysicsServer3D + { "JointCreateGeneric6dof", "JointMakeGeneric6dof" }, // PhysicsServer3D + { "JointCreateHinge", "JointMakeHinge" }, // PhysicsServer3D + { "JointCreatePin", "JointMakePin" }, // PhysicsServer3D + { "JointCreateSlider", "JointMakeSlider" }, // PhysicsServer3D + { "LineIntersectsLine2d", "LineIntersectsLine" }, // Geometry2D + { "LoadFromGlobals", "LoadFromProjectSettings" }, // InputMap + { "MakeConvexFromBrothers", "MakeConvexFromSiblings" }, // CollisionShape3D + { "MergePolygons2d", "MergePolygons" }, // Geometry2D + { "MeshSurfaceGetFormat", "MeshSurfaceGetFormatAttributeStride" }, // RenderingServer + { "MeshSurfaceUpdateRegion", "MeshSurfaceUpdateAttributeRegion" }, // RenderingServer + { "MoveToBottom", "MoveAfter" }, // Skeleton3D + { "MoveToTop", "MoveBefore" }, // Skeleton3D + { "MultimeshAllocate", "MultimeshAllocateData" }, // RenderingServer + { "NormalmapToXy", "NormalMapToXy" }, // Image + { "OffsetPolygon2d", "OffsetPolygon" }, // Geometry2D + { "OffsetPolyline2d", "OffsetPolyline" }, // Geometry2D + { "PercentDecode", "UriDecode" }, // String + { "PercentEncode", "UriEncode" }, // String + { "PinJointCreate", "JointMakePin" }, // PhysicsServer2D + { "PopupCenteredMinsize", "PopupCenteredClamped" }, // Window + { "PostImport", "_PostImport" }, // EditorScenePostImport + { "PrintStrayNodes", "PrintOrphanNodes" }, // Node + { "PropertyListChangedNotify", "NotifyPropertyListChanged" }, // Object + { "Recognize", "_Recognize" }, // ResourceFormatLoader + { "RegenNormalmaps", "RegenNormalMaps" }, // ArrayMesh + { "Remove", "RemoveAt" }, // Array, broke Directory + { "RemoveAnimation", "RemoveAnimationLibrary" }, // AnimationPlayer + { "RemoveColorOverride", "RemoveThemeColorOverride" }, // Control + { "RemoveConstantOverride", "RemoveThemeConstantOverride" }, // Control + { "RemoveFontOverride", "RemoveThemeFontOverride" }, // Control + { "RemoveSceneImportPlugin", "RemoveSceneFormatImporterPlugin" }, //EditorPlugin + { "RemoveSpatialGizmoPlugin", "RemoveNode3dGizmoPlugin" }, // EditorPlugin + { "RemoveStyleboxOverride", "RemoveThemeStyleboxOverride" }, // Control + { "RenameAnimation", "RenameAnimationLibrary" }, // AnimationPlayer + { "RenameDependencies", "_RenameDependencies" }, // ResourceFormatLoader + { "SaveExternalData", "_SaveExternalData" }, // EditorPlugin + { "SegmentIntersectsSegment2d", "SegmentIntersectsSegment" }, // Geometry2D + { "SetAdjustmentEnable", "SetAdjustmentEnabled" }, // Environment + { "SetAlt", "SetAltPressed" }, // InputEventWithModifiers + { "SetAnchorAndMargin", "SetAnchorAndOffset" }, // Control + { "SetAnchorsAndMarginsPreset", "SetAnchorsAndOffsetsPreset" }, // Control + { "SetAnimationProcessMode", "SetProcessCallback" }, // AnimationPlayer + { "SetAsBulkArray", "SetBuffer" }, // MultiMesh + { "SetAsNormalmap", "SetAsNormalMap" }, // NoiseTexture + { "SetAsToplevel", "SetAsTopLevel" }, // CanvasItem + { "SetAudioBus", "SetAudioBusName" }, // Area3D + { "SetAutowrap", "SetAutowrapMode" }, // Label broke AcceptDialog + { "SetCastTo", "SetTargetPosition" }, // RayCast2D, RayCast3D + { "SetCollisionLayerBit", "SetCollisionLayerValue" }, // CSGShape3D and a lot of others like GridMap + { "SetCollisionMaskBit", "SetCollisionMaskValue" }, // CSGShape3D and a lot of others like GridMap + { "SetColumnMinWidth", "SetColumnCustomMinimumWidth" }, // Tree + { "SetCommand", "SetCommandPressed" }, // InputEventWithModifiers + { "SetControl", "SetCtrlPressed" }, // InputEventWithModifiers + { "SetCreateOptions", "_SetCreateOptions" }, // EditorResourcePicker + { "SetCullMaskBit", "SetCullMaskValue" }, // Camera3D + { "SetCursorPosition", "SetCaretColumn" }, // LineEdit + { "SetD", "SetDistance" }, // WorldMarginShape2D + { "SetDepthBiasEnable", "SetDepthBiasEnabled" }, // RDPipelineRasterizationState + { "SetDevice", "SetOutputDevice" }, // AudioServer + { "SetDoubleclick", "SetDoubleClick" }, // InputEventMouseButton + { "SetEnableFollowSmoothing", "SetFollowSmoothingEnabled" }, // Camera2D + { "SetEnabledFocusMode", "SetFocusMode" }, // BaseButton + { "SetEndianSwap", "SetBigEndian" }, // File + { "SetExpandToTextLength", "SetExpandToTextLengthEnabled" }, // LineEdit + { "SetFocusNeighbour", "SetFocusNeighbor" }, // Control + { "SetFollowSmoothing", "SetFollowSmoothingSpeed" }, // Camera2D + { "SetFrameColor", "SetColor" }, // ColorRect + { "SetGlobalRateScale", "SetPlaybackSpeedScale" }, // AudioServer + { "SetGravityDistanceScale", "SetGravityPointDistanceScale" }, // Area2D + { "SetGravityVector", "SetGravityDirection" }, // Area2D + { "SetHDragEnabled", "SetDragHorizontalEnabled" }, // Camera2D + { "SetIconAlign", "SetIconAlignment" }, // Button + { "SetInteriorAmbient", "SetAmbientColor" }, // ReflectionProbe + { "SetInteriorAmbientEnergy", "SetAmbientColorEnergy" }, // ReflectionProbe + { "SetIsInitialized", "_IsInitialized" }, // XRInterface + { "SetIsPrimary", "SetPrimary" }, // XRInterface + { "SetIterationsPerSecond", "SetPhysicsTicksPerSecond" }, // Engine + { "SetLayerMaskBit", "SetLayerMaskValue" }, // VisualInstance3D + { "SetMarginsPreset", "SetOffsetsPreset" }, // Control + { "SetMaxAtlasSize", "SetMaxTextureSize" }, // LightmapGI + { "SetMetakey", "SetMetaPressed" }, // InputEventWithModifiers + { "SetMidHeight", "SetHeight" }, // CapsuleMesh + { "SetNeighborDist", "SetNeighborDistance" }, // NavigationAgent2D, NavigationAgent3D + { "SetNetworkMaster", "SetMultiplayerAuthority" }, // Node + { "SetNetworkPeer", "SetMultiplayerPeer" }, // Multiplayer API + { "SetOneshot", "SetOneShot" }, // AnimatedTexture + { "SetPhysicalScancode", "SetPhysicalKeycode" }, // InputEventKey + { "SetProximityFade", "SetProximityFadeEnabled" }, // Material + { "SetRefuseNewNetworkConnections", "SetRefuseNewConnections" }, // Multiplayer API + { "SetRegion", "SetRegionEnabled" }, // Sprite2D, Sprite broke AtlasTexture + { "SetRegionFilterClip", "SetRegionFilterClipEnabled" }, // Sprite2D + { "SetReverbBus", "SetReverbBusName" }, // Area3D + { "SetRotate", "SetRotates" }, // PathFollow2D + { "SetScancode", "SetKeycode" }, // InputEventKey + { "SetShift", "SetShiftPressed" }, // InputEventWithModifiers + { "SetSizeOverride", "SetSize2dOverride" }, // SubViewport broke ImageTexture + { "SetSizeOverrideStretch", "SetSize2dOverrideStretch" }, // SubViewport + { "SetSlipsOnSlope", "SetSlideOnSlope" }, // SeparationRayShape2D, SeparationRayShape3D + { "SetSortEnabled", "SetYSortEnabled" }, // Node2D + { "SetSpaceOverrideMode", "SetGravitySpaceOverrideMode" }, // Area2D + { "SetSpatialNode", "SetNode3d" }, // EditorNode3DGizmo + { "SetSpeed", "SetVelocity" }, // InputEventMouseMotion + { "SetSsaoEdgeSharpness", "SetSsaoSharpness" }, // Environment + { "SetSurfaceMaterial", "SetSurfaceOverrideMaterial" }, // MeshInstance3D broke ImporterMesh + { "SetTabAlign", "SetTabAlignment" }, //TabContainer + { "SetTangent", "SurfaceSetTangent" }, // ImmediateGeometry broke SurfaceTool + { "SetTextAlign", "SetTextAlignment" }, // Button + { "SetTimerProcessMode", "SetTimerProcessCallback" }, // Timer + { "SetTonemapAutoExposure", "SetTonemapAutoExposureEnabled" }, // Environment + { "SetTranslation", "SetPosition" }, // Node3D - this broke GLTFNode which is used rarely + { "SetUnitDb", "SetVolumeDb" }, // AudioStreamPlayer3D + { "SetUnitOffset", "SetProgressRatio" }, // PathFollow2D, PathFollow3D + { "SetUv2", "SurfaceSetUv2" }, // ImmediateMesh broke Surffacetool + { "SetVDragEnabled", "SetDragVerticalEnabled" }, // Camera2D + { "SetValign", "SetVerticalAlignment" }, // Label + { "SetWindowLayout", "_SetWindowLayout" }, // EditorPlugin + { "SetZfar", "SetFar" }, // Camera3D broke GLTFCamera + { "SetZnear", "SetNear" }, // Camera3D broke GLTFCamera + { "ShortcutMatch", "IsMatch" }, // InputEvent + { "SkeletonAllocate", "SkeletonAllocateData" }, // RenderingServer + { "SurfaceUpdateRegion", "SurfaceUpdateAttributeRegion" }, // ArrayMesh + { "TargetingMethod", "TweenMethod" }, // Tween + { "TargetingProperty", "TweenProperty" }, // Tween + { "TrackRemoveKeyAtPosition", "TrackRemoveKeyAtTime" }, // Animation + { "TriangulateDelaunay2d", "TriangulateDelaunay" }, // Geometry2D + { "UnbindChildNodeFromBone", "RemoveBoneChild" }, // Skeleton3D + { "Unselect", "Deselect" }, // ItemList + { "UnselectAll", "DeselectAll" }, // ItemList + { "UpdateConfigurationWarning", "UpdateConfigurationWarnings" }, // Node + { "UpdateGizmo", "UpdateGizmos" }, // Node3D + { "ViewportSetUseArvr", "ViewportSetUseXr" }, // RenderingServer + { "WarpMousePosition", "WarpMouse" }, // Input + { "WorldToMap", "LocalToMap" }, // TileMap, GridMap + { "SetShaderParam", "SetShaderParameter" }, // ShaderMaterial + { "GetShaderParam", "GetShaderParameter" }, // ShaderMaterial + { "SetUniformName", "SetParameterName" }, // ParameterRef + { "GetUniformName", "GetParameterName" }, // ParameterRef + + // Builtin types + // { "Empty", "IsEmpty" }, // Array - Used as custom rule // Be careful, this will be used everywhere + { "Clamped", "Clamp" }, // Vector2 // Be careful, this will be used everywhere + { "GetRotationQuat", "GetRotationQuaternion" }, // Basis + { "GrowMargin", "GrowSide" }, // Rect2 + { "Invert", "Reverse" }, // Array - TODO check // Be careful, this will be used everywhere + { "IsAbsPath", "IsAbsolutePath" }, // String + { "IsValidInteger", "IsValidInt" }, // String + { "LinearInterpolate", "Lerp" }, // Color + { "ToAscii", "ToAsciiBuffer" }, // String + { "ToUtf8", "ToUtf8Buffer" }, // String + { "ToWchar", "ToUtf32Buffer" }, // String // TODO - utf32 or utf16? + + // @GlobalScope + { "Bytes2Var", "BytesToVar" }, + { "Bytes2VarWithObjects", "BytesToVarWithObjects" }, + { "Db2Linear", "DbToLinear" }, + { "Deg2Rad", "DegToRad" }, + { "Linear2Db", "LinearToDb" }, + { "Rad2Deg", "RadToDeg" }, + { "RandRange", "RandfRange" }, + { "RangeLerp", "Remap" }, + { "Stepify", "Snapped" }, + { "Str2Var", "StrToVar" }, + { "Var2Str", "VarToStr" }, + { "Var2Bytes", "VarToBytes" }, + { "Var2BytesWithObjects", "VarToBytesWithObjects" }, + + // @GDScript + { "Dict2Inst", "DictToInst" }, + { "Inst2Dict", "InstToDict" }, + + { nullptr, nullptr }, +}; + +// Some needs to be disabled, because users can use this names as variables +const char *RenamesMap3To4::gdscript_properties_renames[][2] = { + // // { "d", "distance" }, //WorldMarginShape2D - TODO, looks that polish letters ą ę are treaten as space, not as letter, so `będą` are renamed to `będistanceą` + // // {"alt","alt_pressed"}, // This may broke a lot of comments and user variables + // // {"command","command_pressed"},// This may broke a lot of comments and user variables + // // {"control","ctrl_pressed"},// This may broke a lot of comments and user variables + // // {"extends","size"}, // BoxShape3D, LightmapGI broke ReflectionProbe + // // {"meta","meta_pressed"},// This may broke a lot of comments and user variables + // // {"pause_mode","process_mode"}, // Node - Cyclic rename, look for others + // // {"rotate","rotates"}, // PathFollow2D - probably function exists with same name + // // {"offset","progress"}, // PathFollow2D, PathFollow3D - Name is way too vague + // // {"shift","shift_pressed"},// This may broke a lot of comments and user variables + // { "autowrap", "autowrap_mode" }, // Label + // { "cast_to", "target_position" }, // RayCast2D, RayCast3D + // { "device", "output_device"}, // AudioServer - Too vague, most likely breaks comments & variables + // { "doubleclick", "double_click" }, // InputEventMouseButton + // { "group", "button_group" }, // BaseButton + // { "process_mode", "process_callback" }, // AnimationTree, Camera2D + // { "scancode", "keycode" }, // InputEventKey + // { "toplevel", "top_level" }, // Node + // { "window_title", "title" }, // Window + // { "wrap_enabled", "wrap_mode" }, // TextEdit + // { "zfar", "far" }, // Camera3D + // { "znear", "near" }, // Camera3D + // { "filename", "scene_file_path" }, // Node + // { "pressed", "button_pressed" }, // BaseButton - Will also rename the signal, skipping for now + { "as_normalmap", "as_normal_map" }, // NoiseTexture + { "bbcode_text", "text" }, // RichTextLabel + { "bg", "panel" }, // Theme + { "bg_focus", "focus" }, // Theme + { "capture_device", "input_device" }, // AudioServer + { "caret_blink_speed", "caret_blink_interval" }, // TextEdit, LineEdit + { "caret_moving_by_right_click", "caret_move_on_right_click" }, // TextEdit + { "caret_position", "caret_column" }, // LineEdit + { "check_vadjust", "check_v_offset" }, // Theme + { "close_h_ofs", "close_h_offset" }, // Theme + { "close_v_ofs", "close_v_offset" }, // Theme + { "commentfocus", "comment_focus" }, // Theme + { "contacts_reported", "max_contacts_reported" }, // RigidBody + { "depth_bias_enable", "depth_bias_enabled" }, // RDPipelineRasterizationState + { "drag_margin_bottom", "drag_bottom_margin" }, // Camera2D + { "drag_margin_h_enabled", "drag_horizontal_enabled" }, // Camera2D + { "drag_margin_left", "drag_left_margin" }, // Camera2D + { "drag_margin_right", "drag_right_margin" }, // Camera2D + { "drag_margin_top", "drag_top_margin" }, // Camera2D + { "drag_margin_v_enabled", "drag_vertical_enabled" }, // Camera2D + { "enabled_focus_mode", "focus_mode" }, // BaseButton - Removed + { "extra_spacing_bottom", "spacing_bottom" }, // Font + { "extra_spacing_top", "spacing_top" }, // Font + { "focus_neighbour_bottom", "focus_neighbor_bottom" }, // Control + { "focus_neighbour_left", "focus_neighbor_left" }, // Control + { "focus_neighbour_right", "focus_neighbor_right" }, // Control + { "focus_neighbour_top", "focus_neighbor_top" }, // Control + { "follow_viewport_enable", "follow_viewport_enabled" }, // CanvasItem + { "file_icon_modulate", "file_icon_color" }, // Theme + { "files_disabled", "file_disabled_color" }, // Theme + { "folder_icon_modulate", "folder_icon_color" }, // Theme + { "global_rate_scale", "playback_speed_scale" }, // AudioServer + { "gravity_distance_scale", "gravity_point_unit_distance" }, // Area(2D/3D) + { "gravity_vec", "gravity_direction" }, // Area(2D/3D) + { "hint_tooltip", "tooltip_text" }, // Control + { "hseparation", "h_separation" }, // Theme + { "icon_align", "icon_alignment" }, // Button + { "iterations_per_second", "physics_ticks_per_second" }, // Engine + { "invert_enable", "invert_enabled" }, // Polygon2D + { "margin_bottom", "offset_bottom" }, // Control broke NinePatchRect, StyleBox + { "margin_left", "offset_left" }, // Control broke NinePatchRect, StyleBox + { "margin_right", "offset_right" }, // Control broke NinePatchRect, StyleBox + { "margin_top", "offset_top" }, // Control broke NinePatchRect, StyleBox + { "mid_height", "height" }, // CapsuleMesh + { "neighbor_dist", "neighbor_distance" }, // NavigationAgent2D, NavigationAgent3D + { "offset_h", "drag_horizontal_offset" }, // Camera2D + { "offset_v", "drag_vertical_offset" }, // Camera2D + { "off", "unchecked" }, // Theme + { "off_disabled", "unchecked_disabled" }, // Theme + { "ofs", "offset" }, // Theme + { "on", "checked" }, // Theme + { "on_disabled", "checked_disabled" }, // Theme + { "oneshot", "one_shot" }, // AnimatedTexture + { "out_of_range_mode", "max_polyphony" }, // AudioStreamPlayer3D + { "pause_mode", "process_mode" }, // Node + { "physical_scancode", "physical_keycode" }, // InputEventKey + { "popup_exclusive", "exclusive" }, // Window + { "proximity_fade_enable", "proximity_fade_enabled" }, // Material + { "rect_position", "position" }, // Control + { "rect_global_position", "global_position" }, // Control + { "rect_size", "size" }, // Control + { "rect_min_size", "custom_minimum_size" }, // Control + { "rect_rotation", "rotation" }, // Control + { "rect_scale", "scale" }, // Control + { "rect_pivot_offset", "pivot_offset" }, // Control + { "rect_clip_content", "clip_contents" }, // Control + { "refuse_new_network_connections", "refuse_new_connections" }, // MultiplayerAPI + { "region_filter_clip", "region_filter_clip_enabled" }, // Sprite2D + { "reverb_bus_enable", "reverb_bus_enabled" }, // Area3D + { "selectedframe", "selected_frame" }, // Theme + { "size_override_stretch", "size_2d_override_stretch" }, // SubViewport + { "slips_on_slope", "slide_on_slope" }, // SeparationRayShape2D + { "smoothing_enabled", "follow_smoothing_enabled" }, // Camera2D + { "smoothing_speed", "position_smoothing_speed" }, // Camera2D + { "ss_reflections_depth_tolerance", "ssr_depth_tolerance" }, // Environment + { "ss_reflections_enabled", "ssr_enabled" }, // Environment + { "ss_reflections_fade_in", "ssr_fade_in" }, // Environment + { "ss_reflections_fade_out", "ssr_fade_out" }, // Environment + { "ss_reflections_max_steps", "ssr_max_steps" }, // Environment + { "state_machine_selectedframe", "state_machine_selected_frame" }, // Theme + { "syntax_highlighting", "syntax_highlighter" }, // TextEdit + { "tab_align", "tab_alignment" }, // TabContainer + { "table_hseparation", "table_h_separation" }, // Theme + { "table_vseparation", "table_v_separation" }, // Theme + { "translation", "position" }, // Node3D - broke GLTFNode + { "unit_db", "volume_db" }, // AudioStreamPlayer3D + { "unit_offset", "progress_ratio" }, // PathFollow2D, PathFollow3D + { "vseparation", "v_separation" }, // Theme + { "frames", "sprite_frames" }, // AnimatedSprite2D, AnimatedSprite3D + + { nullptr, nullptr }, +}; + +// Some needs to be disabled, because users can use this names as variables +const char *RenamesMap3To4::csharp_properties_renames[][2] = { + // // { "D", "Distance" }, //WorldMarginShape2D - TODO, looks that polish letters ą ę are treaten as space, not as letter, so `będą` are renamed to `będistanceą` + // // {"Alt","AltPressed"}, // This may broke a lot of comments and user variables + // // {"Command","CommandPressed"},// This may broke a lot of comments and user variables + // // {"Control","CtrlPressed"},// This may broke a lot of comments and user variables + // // {"Extends","Size"}, // BoxShape3D, LightmapGI broke ReflectionProbe + // // {"Meta","MetaPressed"},// This may broke a lot of comments and user variables + // // {"PauseMode","ProcessMode"}, // Node - Cyclic rename, look for others + // // {"Rotate","Rotates"}, // PathFollow2D - probably function exists with same name + // // {"Offset","Progress"}, // PathFollow2D, PathFollow3D - Name is way too vague + // // {"Shift","ShiftPressed"},// This may broke a lot of comments and user variables + // { "Autowrap", "AutowrapMode" }, // Label + // { "CastTo", "TargetPosition" }, // RayCast2D, RayCast3D + // { "Doubleclick", "DoubleClick" }, // InputEventMouseButton + // { "Group", "ButtonGroup" }, // BaseButton + // { "PercentVisible, "ShowPercentage}, // ProgressBar, conflicts with Label and RichTextLabel, but may be a worth it. + // { "ProcessMode", "ProcessCallback" }, // AnimationTree, Camera2D + // { "Scancode", "Keycode" }, // InputEventKey + // { "Toplevel", "TopLevel" }, // Node + // { "WindowTitle", "Title" }, // Window + // { "WrapEnabled", "WrapMode" }, // TextEdit + // { "Zfar", "Far" }, // Camera3D + // { "Znear", "Near" }, // Camera3D + // { "Pressed", "ButtonPressed" }, // BaseButton - Will also rename the signal, skipping for now + { "AsNormalmap", "AsNormalMap" }, // NoiseTexture + { "BbcodeText", "Text" }, // RichTextLabel + { "CaretBlinkSpeed", "CaretBlinkInterval" }, // TextEdit, LineEdit + { "CaretMovingByRightClick", "CaretMoveOnRightClick" }, // TextEdit + { "CaretPosition", "CaretColumn" }, // LineEdit + { "CheckVadjust", "CheckVAdjust" }, // Theme + { "CloseHOfs", "CloseHOffset" }, // Theme + { "CloseVOfs", "CloseVOffset" }, // Theme + { "Commentfocus", "CommentFocus" }, // Theme + { "DepthBiasEnable", "DepthBiasEnabled" }, // RDPipelineRasterizationState + { "DragMarginBottom", "DragBottomMargin" }, // Camera2D + { "DragMarginHEnabled", "DragHorizontalEnabled" }, // Camera2D + { "DragMarginLeft", "DragLeftMargin" }, // Camera2D + { "DragMarginRight", "DragRightMargin" }, // Camera2D + { "DragMarginTop", "DragTopMargin" }, // Camera2D + { "DragMarginVEnabled", "DragVerticalEnabled" }, // Camera2D + { "EnabledFocusMode", "FocusMode" }, // BaseButton - Removed + { "ExtraSpacingBottom", "SpacingBottom" }, // Font + { "ExtraSpacingTop", "SpacingTop" }, // Font + { "FocusNeighbourBottom", "FocusNeighborBottom" }, // Control + { "FocusNeighbourLeft", "FocusNeighborLeft" }, // Control + { "FocusNeighbourRight", "FocusNeighborRight" }, // Control + { "FocusNeighbourTop", "FocusNeighborTop" }, // Control + { "FollowViewportEnable", "FollowViewportEnabled" }, // CanvasItem + { "GlobalRateScale", "PlaybackSpeedScale" }, // AudioServer + { "GravityDistanceScale", "GravityPointDistanceScale" }, // Area2D + { "GravityVec", "GravityDirection" }, // Area2D + { "HintTooltip", "TooltipText" }, // Control + { "Hseparation", "HSeparation" }, // Theme + { "IconAlign", "IconAlignment" }, // Button + { "IterationsPerSecond", "PhysicsTicksPerSecond" }, // Engine + { "InvertEnable", "InvertEnabled" }, // Polygon2D + { "MarginBottom", "OffsetBottom" }, // Control broke NinePatchRect, StyleBox + { "MarginLeft", "OffsetLeft" }, // Control broke NinePatchRect, StyleBox + { "MarginRight", "OffsetRight" }, // Control broke NinePatchRect, StyleBox + { "MarginTop", "OffsetTop" }, // Control broke NinePatchRect, StyleBox + { "MidHeight", "Height" }, // CapsuleMesh + { "NeighborDist", "NeighborDistance" }, // NavigationAgent2D, NavigationAgent3D + { "OffsetH", "DragHorizontalOffset" }, // Camera2D + { "OffsetV", "DragVerticalOffset" }, // Camera2D + { "Ofs", "Offset" }, // Theme + { "Oneshot", "OneShot" }, // AnimatedTexture + { "OutOfRangeMode", "MaxPolyphony" }, // AudioStreamPlayer3D + { "PauseMode", "ProcessMode" }, // Node + { "PhysicalScancode", "PhysicalKeycode" }, // InputEventKey + { "PopupExclusive", "Exclusive" }, // Window + { "ProximityFadeEnable", "ProximityFadeEnabled" }, // Material + { "RectPosition", "Position" }, // Control + { "RectGlobalPosition", "GlobalPosition" }, // Control + { "RectSize", "Size" }, // Control + { "RectMinSize", "CustomMinimumSize" }, // Control + { "RectRotation", "Rotation" }, // Control + { "RectScale", "Scale" }, // Control + { "RectPivotOffset", "PivotOffset" }, // Control + { "RectClipContent", "ClipContents" }, // Control + { "RefuseNewNetworkConnections", "RefuseNewConnections" }, // MultiplayerAPI + { "RegionFilterClip", "RegionFilterClipEnabled" }, // Sprite2D + { "ReverbBusEnable", "ReverbBusEnabled" }, // Area3D + { "Selectedframe", "SelectedFrame" }, // Theme + { "SizeOverrideStretch", "Size2dOverrideStretch" }, // SubViewport + { "SlipsOnSlope", "SlideOnSlope" }, // SeparationRayShape2D + { "SmoothingEnabled", "FollowSmoothingEnabled" }, // Camera2D + { "SmoothingSpeed", "FollowSmoothingSpeed" }, // Camera2D + { "SsReflectionsDepthTolerance", "SsrDepthTolerance" }, // Environment + { "SsReflectionsEnabled", "SsrEnabled" }, // Environment + { "SsReflectionsFadeIn", "SsrFadeIn" }, // Environment + { "SsReflectionsFadeOut", "SsrFadeOut" }, // Environment + { "SsReflectionsMaxSteps", "SsrMaxSteps" }, // Environment + { "StateMachineSelectedframe", "StateMachineSelectedFrame" }, // Theme + { "SyntaxHighlighting", "SyntaxHighlighter" }, // TextEdit + { "TabAlign", "TabAlignment" }, // TabContainer + { "TableHseparation", "TableHSeparation" }, // Theme + { "TableVseparation", "TableVSeparation" }, // Theme + { "Translation", "Position" }, // Node3D - broke GLTFNode + { "UnitDb", "VolumeDb" }, // AudioStreamPlayer3D + { "UnitOffset", "ProgressRatio" }, // PathFollow2D, PathFollow3D + { "Vseparation", "VSeparation" }, // Theme + + { nullptr, nullptr }, +}; + +const char *RenamesMap3To4::gdscript_signals_renames[][2] = { + // {"instantiate","instance"}, // FileSystemDock + // { "hide", "hidden" }, // CanvasItem - function with same name exists + // { "tween_all_completed","loop_finished"}, // Tween - TODO, not sure + // {"changed","settings_changed"}, // EditorSettings + { "about_to_show", "about_to_popup" }, // Popup + { "button_release", "button_released" }, // XRController3D + { "cancelled", "canceled" }, // AcceptDialog + { "item_double_clicked", "item_icon_double_clicked" }, // Tree + { "network_peer_connected", "peer_connected" }, // MultiplayerAPI + { "network_peer_disconnected", "peer_disconnected" }, // MultiplayerAPI + { "network_peer_packet", "peer_packet" }, // MultiplayerAPI + { "node_unselected", "node_deselected" }, // GraphEdit + { "offset_changed", "position_offset_changed" }, // GraphNode + { "settings_changed", "changed" }, // TileMap broke EditorSettings + { "skeleton_updated", "pose_updated" }, // + { "tab_close", "tab_closed" }, // TextEdit + { "tab_hover", "tab_hovered" }, // TextEdit + { "text_entered", "text_submitted" }, // LineEdit + { "tween_completed", "finished" }, // Tween + { "tween_step", "step_finished" }, // Tween + + { nullptr, nullptr }, +}; + +const char *RenamesMap3To4::csharp_signals_renames[][2] = { + // {"Instantiate","Instance"}, // FileSystemDock + // { "Hide", "Hidden" }, // CanvasItem - function with same name exists + // { "TweenAllCompleted","LoopFinished"}, // Tween - TODO, not sure + // {"Changed","SettingsChanged"}, // EditorSettings + { "AboutToShow", "AboutToPopup" }, // Popup + { "ButtonRelease", "ButtonReleased" }, // XRController3D + { "NetworkPeerConnected", "PeerConnected" }, // MultiplayerAPI + { "NetworkPeerDisconnected", "PeerDisconnected" }, // MultiplayerAPI + { "NetworkPeerPacket", "PeerPacket" }, // MultiplayerAPI + { "NodeUnselected", "NodeDeselected" }, // GraphEdit + { "OffsetChanged", "PositionOffsetChanged" }, // GraphNode + { "SettingsChanged", "Changed" }, // TileMap broke EditorSettings + { "SkeletonUpdated", "PoseUpdated" }, // + { "TabClose", "TabClosed" }, // TextEdit + { "TabHover", "TabHovered" }, // TextEdit + { "TextEntered", "TextSubmitted" }, // LineEdit + { "TweenCompleted", "Finished" }, // Tween + { "TweenStep", "StepFinished" }, // Tween + + { nullptr, nullptr }, + +}; + +const char *RenamesMap3To4::project_settings_renames[][2] = { + { "audio/channel_disable_threshold_db", "audio/buses/channel_disable_threshold_db" }, + { "audio/channel_disable_time", "audio/buses/channel_disable_time" }, + { "audio/default_bus_layout", "audio/buses/default_bus_layout" }, + { "audio/driver", "audio/driver/driver" }, + { "audio/enable_audio_input", "audio/driver/enable_input" }, + { "audio/mix_rate", "audio/driver/mix_rate" }, + { "audio/output_latency", "audio/driver/output_latency" }, + { "audio/output_latency.web", "audio/driver/output_latency.web" }, + { "audio/video_delay_compensation_ms", "audio/video/video_delay_compensation_ms" }, + { "display/window/vsync/use_vsync", "display/window/vsync/vsync_mode" }, + { "editor/main_run_args", "editor/run/main_run_args" }, + { "gui/common/swap_ok_cancel", "gui/common/swap_cancel_ok" }, + { "network/limits/debugger_stdout/max_chars_per_second", "network/limits/debugger/max_chars_per_second" }, + { "network/limits/debugger_stdout/max_errors_per_second", "network/limits/debugger/max_errors_per_second" }, + { "network/limits/debugger_stdout/max_messages_per_frame", "network/limits/debugger/max_queued_messages" }, + { "network/limits/debugger_stdout/max_warnings_per_second", "network/limits/debugger/max_warnings_per_second" }, + { "network/ssl/certificates", "network/tls/certificate_bundle_override" }, + { "physics/2d/thread_model", "physics/2d/run_on_thread" }, // TODO not sure + { "rendering/environment/default_clear_color", "rendering/environment/defaults/default_clear_color" }, + { "rendering/environment/default_environment", "rendering/environment/defaults/default_environment" }, + { "rendering/quality/depth_prepass/disable_for_vendors", "rendering/driver/depth_prepass/disable_for_vendors" }, + { "rendering/quality/depth_prepass/enable", "rendering/driver/depth_prepass/enable" }, + { "rendering/quality/shading/force_blinn_over_ggx", "rendering/shading/overrides/force_blinn_over_ggx" }, + { "rendering/quality/shading/force_blinn_over_ggx.mobile", "rendering/shading/overrides/force_blinn_over_ggx.mobile" }, + { "rendering/quality/shading/force_lambert_over_burley", "rendering/shading/overrides/force_lambert_over_burley" }, + { "rendering/quality/shading/force_lambert_over_burley.mobile", "rendering/shading/overrides/force_lambert_over_burley.mobile" }, + { "rendering/quality/shading/force_vertex_shading", "rendering/shading/overrides/force_vertex_shading" }, + { "rendering/quality/shading/force_vertex_shading.mobile", "rendering/shading/overrides/force_vertex_shading.mobile" }, + { "rendering/quality/shadow_atlas/quadrant_0_subdiv", "rendering/lights_and_shadows/shadow_atlas/quadrant_0_subdiv" }, + { "rendering/quality/shadow_atlas/quadrant_1_subdiv", "rendering/lights_and_shadows/shadow_atlas/quadrant_1_subdiv" }, + { "rendering/quality/shadow_atlas/quadrant_2_subdiv", "rendering/lights_and_shadows/shadow_atlas/quadrant_2_subdiv" }, + { "rendering/quality/shadow_atlas/quadrant_3_subdiv", "rendering/lights_and_shadows/shadow_atlas/quadrant_3_subdiv" }, + { "rendering/quality/shadow_atlas/size", "rendering/lights_and_shadows/shadow_atlas/size" }, + { "rendering/quality/shadow_atlas/size.mobile", "rendering/lights_and_shadows/shadow_atlas/size.mobile" }, + { "rendering/vram_compression/import_etc2", "rendering/textures/vram_compression/import_etc2_astc" }, + { "rendering/vram_compression/import_s3tc", "rendering/textures/vram_compression/import_s3tc_bptc" }, + { "window/size/width", "window/size/viewport_width" }, + { "window/size/height", "window/size/viewport_height" }, + { "window/size/test_width", "window/size/window_width_override" }, + { "window/size/test_height", "window/size/window_height_override" }, + + { nullptr, nullptr }, +}; + +const char *RenamesMap3To4::input_map_renames[][2] = { + { ",\"alt\":", ",\"alt_pressed\":" }, + { ",\"shift\":", ",\"shift_pressed\":" }, + { ",\"control\":", ",\"ctrl_pressed\":" }, + { ",\"meta\":", ",\"meta_pressed\":" }, + { ",\"scancode\":", ",\"keycode\":" }, + { ",\"physical_scancode\":", ",\"physical_keycode\":" }, + { ",\"doubleclick\":", ",\"double_click\":" }, + + { nullptr, nullptr }, +}; + +const char *RenamesMap3To4::builtin_types_renames[][2] = { + { "PoolByteArray", "PackedByteArray" }, + { "PoolColorArray", "PackedColorArray" }, + { "PoolIntArray", "PackedInt32Array" }, + { "PoolRealArray", "PackedFloat32Array" }, + { "PoolStringArray", "PackedStringArray" }, + { "PoolVector2Array", "PackedVector2Array" }, + { "PoolVector3Array", "PackedVector3Array" }, + { "Quat", "Quaternion" }, + { "Transform", "Transform3D" }, + + { nullptr, nullptr }, +}; + +const char *RenamesMap3To4::shaders_renames[][2] = { + { "ALPHA_SCISSOR", "ALPHA_SCISSOR_THRESHOLD" }, + { "CAMERA_MATRIX", "INV_VIEW_MATRIX" }, + { "INV_CAMERA_MATRIX", "VIEW_MATRIX" }, + { "NORMALMAP", "NORMAL_MAP" }, + { "NORMALMAP_DEPTH", "NORMAL_MAP_DEPTH" }, + { "TRANSMISSION", "BACKLIGHT" }, + { "WORLD_MATRIX", "MODEL_MATRIX" }, + { "depth_draw_alpha_prepass", "depth_draw_opaque" }, + { "hint_albedo", "source_color" }, + { "hint_aniso", "hint_anisotropy" }, + { "hint_black", "hint_default_black" }, + { "hint_black_albedo", "hint_default_black" }, + { "hint_color", "source_color" }, + { "hint_white", "hint_default_white" }, + { nullptr, nullptr }, +}; + +const char *RenamesMap3To4::class_renames[][2] = { + // { "BulletPhysicsDirectBodyState", "BulletPhysicsDirectBodyState3D" }, // Class is not visible in ClassDB + // { "BulletPhysicsServer", "BulletPhysicsServer3D" }, // Class is not visible in ClassDB + // { "GDScriptFunctionState", "Node3D" }, // TODO - not sure to which should be changed + // { "GDScriptNativeClass", "Node3D" }, // TODO - not sure to which should be changed + // { "InputDefault",""}, // TODO ? + // { "Physics2DDirectBodyStateSW", "GodotPhysicsDirectBodyState2D" }, // Class is not visible in ClassDB + // { "Physics2DShapeQueryResult", "PhysicsShapeQueryResult2D" }, // Class is not visible in ClassDB + // { "PhysicsShapeQueryResult", "PhysicsShapeQueryResult3D" }, // Class is not visible in ClassDB + // { "NativeScript","GDExtension"}, ?? + { "ARVRAnchor", "XRAnchor3D" }, + { "ARVRCamera", "XRCamera3D" }, + { "ARVRController", "XRController3D" }, + { "ARVRInterface", "XRInterface" }, + { "ARVRInterfaceGDNative", "Node3D" }, + { "ARVROrigin", "XROrigin3D" }, + { "ARVRPositionalTracker", "XRPositionalTracker" }, + { "ARVRServer", "XRServer" }, + { "AStar", "AStar3D" }, + { "AnimatedSprite", "AnimatedSprite2D" }, + { "AnimationTreePlayer", "AnimationTree" }, + { "Area", "Area3D" }, // Be careful, this will be used everywhere + { "AudioStreamOGGVorbis", "AudioStreamOggVorbis" }, + { "AudioStreamRandomPitch", "AudioStreamRandomizer" }, + { "AudioStreamSample", "AudioStreamWAV" }, + { "BakedLightmap", "LightmapGI" }, + { "BakedLightmapData", "LightmapGIData" }, + { "BitmapFont", "FontFile" }, + { "BoneAttachment", "BoneAttachment3D" }, + { "BoxShape", "BoxShape3D" }, + { "CPUParticles", "CPUParticles3D" }, + { "CSGBox", "CSGBox3D" }, + { "CSGCombiner", "CSGCombiner3D" }, + { "CSGCylinder", "CSGCylinder3D" }, + { "CSGMesh", "CSGMesh3D" }, + { "CSGPolygon", "CSGPolygon3D" }, + { "CSGPrimitive", "CSGPrimitive3D" }, + { "CSGShape", "CSGShape3D" }, + { "CSGSphere", "CSGSphere3D" }, + { "CSGTorus", "CSGTorus3D" }, + { "Camera", "Camera3D" }, // Be careful, this will be used everywhere + { "CapsuleShape", "CapsuleShape3D" }, + { "ClippedCamera", "Camera3D" }, + { "CollisionObject", "CollisionObject3D" }, + { "CollisionPolygon", "CollisionPolygon3D" }, + { "CollisionShape", "CollisionShape3D" }, + { "ConcavePolygonShape", "ConcavePolygonShape3D" }, + { "ConeTwistJoint", "ConeTwistJoint3D" }, + { "ConvexPolygonShape", "ConvexPolygonShape3D" }, + { "CubeMap", "Cubemap" }, + { "CubeMesh", "BoxMesh" }, + { "CylinderShape", "CylinderShape3D" }, + { "DirectionalLight", "DirectionalLight3D" }, + { "DynamicFont", "FontFile" }, + { "DynamicFontData", "FontFile" }, + { "EditorNavigationMeshGenerator", "NavigationMeshGenerator" }, + { "EditorSceneImporter", "EditorSceneFormatImporter" }, + { "EditorSceneImporterFBX", "EditorSceneFormatImporterFBX" }, + { "EditorSceneImporterGLTF", "EditorSceneFormatImporterGLTF" }, + { "EditorSpatialGizmo", "EditorNode3DGizmo" }, + { "EditorSpatialGizmoPlugin", "EditorNode3DGizmoPlugin" }, + { "ExternalTexture", "ImageTexture" }, + { "FuncRef", "Callable" }, + { "GIProbe", "VoxelGI" }, + { "GIProbeData", "VoxelGIData" }, + { "Generic6DOFJoint", "Generic6DOFJoint3D" }, + { "Geometry", "Geometry2D" }, // Geometry class is split between Geometry2D and Geometry3D so we need to choose one + { "GeometryInstance", "GeometryInstance3D" }, + { "GradientTexture", "GradientTexture2D" }, + { "HeightMapShape", "HeightMapShape3D" }, + { "HingeJoint", "HingeJoint3D" }, + { "IP_Unix", "IPUnix" }, + { "ImmediateGeometry", "ImmediateMesh" }, + { "ImmediateGeometry3D", "ImmediateMesh" }, + { "InterpolatedCamera", "Camera3D" }, + { "InterpolatedCamera3D", "Camera3D" }, + { "JSONParseResult", "JSON" }, + { "Joint", "Joint3D" }, + { "KinematicBody", "CharacterBody3D" }, + { "KinematicBody2D", "CharacterBody2D" }, + { "KinematicCollision", "KinematicCollision3D" }, + { "LargeTexture", "ImageTexture" }, + { "Light", "Light3D" }, + { "Light2D", "PointLight2D" }, + { "LineShape2D", "WorldBoundaryShape2D" }, + { "Listener", "AudioListener3D" }, + { "Listener2D", "AudioListener2D" }, + { "MeshInstance", "MeshInstance3D" }, + { "MultiMeshInstance", "MultiMeshInstance3D" }, + { "MultiplayerPeerGDNative", "MultiplayerPeerExtension" }, + { "Navigation", "Node3D" }, + { "Navigation2D", "Node2D" }, + { "Navigation2DServer", "NavigationServer2D" }, + { "Navigation3D", "Node3D" }, + { "NavigationAgent", "NavigationAgent3D" }, + { "NavigationMeshInstance", "NavigationRegion3D" }, + { "NavigationObstacle", "NavigationObstacle3D" }, + { "NavigationPolygonInstance", "NavigationRegion2D" }, + { "NavigationRegion", "NavigationRegion3D" }, + { "NavigationServer", "NavigationServer3D" }, + { "NetworkedMultiplayerENet", "ENetMultiplayerPeer" }, + { "NetworkedMultiplayerPeer", "MultiplayerPeer" }, + { "Occluder", "OccluderInstance3D" }, + { "OmniLight", "OmniLight3D" }, + { "PHashTranslation", "OptimizedTranslation" }, + { "PacketPeerGDNative", "PacketPeerExtension" }, + { "PanoramaSky", "Sky" }, + { "Particles", "GPUParticles3D" }, // Be careful, this will be used everywhere + { "Particles2D", "GPUParticles2D" }, + { "ParticlesMaterial", "ParticleProcessMaterial" }, + { "Path", "Path3D" }, // Be careful, this will be used everywhere + { "PathFollow", "PathFollow3D" }, + { "PhysicalBone", "PhysicalBone3D" }, + { "Physics2DDirectBodyState", "PhysicsDirectBodyState2D" }, + { "Physics2DDirectSpaceState", "PhysicsDirectSpaceState2D" }, + { "Physics2DServer", "PhysicsServer2D" }, + { "Physics2DServerSW", "GodotPhysicsServer2D" }, + { "Physics2DShapeQueryParameters", "PhysicsShapeQueryParameters2D" }, + { "Physics2DTestMotionResult", "PhysicsTestMotionResult2D" }, + { "PhysicsBody", "PhysicsBody3D" }, + { "PhysicsDirectBodyState", "PhysicsDirectBodyState3D" }, + { "PhysicsDirectSpaceState", "PhysicsDirectSpaceState3D" }, + { "PhysicsServer", "PhysicsServer3D" }, + { "PhysicsShapeQueryParameters", "PhysicsShapeQueryParameters3D" }, + { "PhysicsTestMotionResult", "PhysicsTestMotionResult3D" }, + { "PinJoint", "PinJoint3D" }, + { "PlaneShape", "WorldBoundaryShape3D" }, + { "PopupDialog", "Popup" }, + { "Position2D", "Marker2D" }, + { "Position3D", "Marker3D" }, + { "ProceduralSky", "Sky" }, + { "RayCast", "RayCast3D" }, + { "RayShape", "SeparationRayShape3D" }, + { "RayShape2D", "SeparationRayShape2D" }, + { "Reference", "RefCounted" }, // Be careful, this will be used everywhere + { "RemoteTransform", "RemoteTransform3D" }, + { "ResourceInteractiveLoader", "ResourceLoader" }, + { "RigidBody", "RigidBody3D" }, + { "SceneTreeTween", "Tween" }, + { "Shape", "Shape3D" }, // Be careful, this will be used everywhere + { "ShortCut", "Shortcut" }, + { "Skeleton", "Skeleton3D" }, + { "SkeletonIK", "SkeletonIK3D" }, + { "SliderJoint", "SliderJoint3D" }, + { "SoftBody", "SoftBody3D" }, + { "Spatial", "Node3D" }, + { "SpatialGizmo", "Node3DGizmo" }, + { "SpatialMaterial", "StandardMaterial3D" }, + { "SphereShape", "SphereShape3D" }, + { "SpotLight", "SpotLight3D" }, + { "SpringArm", "SpringArm3D" }, + { "Sprite", "Sprite2D" }, + { "StaticBody", "StaticBody3D" }, + { "StreamCubemap", "CompressedCubemap" }, + { "StreamCubemapArray", "CompressedCubemapArray" }, + { "StreamPeerGDNative", "StreamPeerExtension" }, + { "StreamPeerSSL", "StreamPeerTLS" }, + { "StreamTexture", "CompressedTexture2D" }, + { "StreamTexture2D", "CompressedTexture2D" }, + { "StreamTexture2DArray", "CompressedTexture2DArray" }, + { "StreamTextureLayered", "CompressedTextureLayered" }, + { "TCP_Server", "TCPServer" }, + { "Tabs", "TabBar" }, // Be careful, this will be used everywhere + { "TextFile", "Node3D" }, + { "Texture", "Texture2D" }, // May broke TextureRect + { "TextureArray", "Texture2DArray" }, + { "TextureProgress", "TextureProgressBar" }, + { "ToolButton", "Button" }, + { "VehicleBody", "VehicleBody3D" }, + { "VehicleWheel", "VehicleWheel3D" }, + { "VideoPlayer", "VideoStreamPlayer" }, + { "Viewport", "SubViewport" }, + { "ViewportContainer", "SubViewportContainer" }, + { "VisibilityEnabler", "VisibleOnScreenEnabler3D" }, + { "VisibilityEnabler2D", "VisibleOnScreenEnabler2D" }, + { "VisibilityNotifier", "VisibleOnScreenNotifier3D" }, + { "VisibilityNotifier2D", "VisibleOnScreenNotifier2D" }, + { "VisibilityNotifier3D", "VisibleOnScreenNotifier3D" }, + { "VisualInstance", "VisualInstance3D" }, + { "VisualServer", "RenderingServer" }, + { "VisualShaderNodeCubeMap", "VisualShaderNodeCubemap" }, + { "VisualShaderNodeScalarClamp", "VisualShaderNodeClamp" }, + { "VisualShaderNodeScalarConstant", "VisualShaderNodeFloatConstant" }, + { "VisualShaderNodeScalarFunc", "VisualShaderNodeFloatFunc" }, + { "VisualShaderNodeScalarInterp", "VisualShaderNodeMix" }, + { "VisualShaderNodeScalarOp", "VisualShaderNodeFloatOp" }, + { "VisualShaderNodeScalarSmoothStep", "VisualShaderNodeSmoothStep" }, + { "VisualShaderNodeScalarSwitch", "VisualShaderNodeSwitch" }, + { "VisualShaderNodeScalarTransformMult", "VisualShaderNodeTransformOp" }, + { "VisualShaderNodeTransformMult", "VisualShaderNode" }, + { "VisualShaderNodeVectorClamp", "VisualShaderNodeClamp" }, + { "VisualShaderNodeVectorInterp", "VisualShaderNodeMix" }, + { "VisualShaderNodeVectorScalarMix", "VisualShaderNodeMix" }, + { "VisualShaderNodeVectorScalarSmoothStep", "VisualShaderNodeSmoothStep" }, + { "VisualShaderNodeVectorScalarStep", "VisualShaderNodeStep" }, + { "VisualShaderNodeVectorSmoothStep", "VisualShaderNodeSmoothStep" }, + { "VisualShaderNodeBooleanUniform", "VisualShaderNodeBooleanParameter" }, + { "VisualShaderNodeColorUniform", "VisualShaderNodeColorParameter" }, + { "VisualShaderNodeScalarUniform", "VisualShaderNodeFloatParameter" }, + { "VisualShaderNodeCubemapUniform", "VisualShaderNodeCubemapParameter" }, + { "VisualShaderNodeTextureUniform", "VisualShaderNodeTexture2DParameter" }, + { "VisualShaderNodeTextureUniformTriplanar", "VisualShaderNodeTextureParameterTriplanar" }, + { "VisualShaderNodeTransformUniform", "VisualShaderNodeTransformParameter" }, + { "VisualShaderNodeVec3Uniform", "VisualShaderNodeVec3Parameter" }, + { "VisualShaderNodeUniform", "VisualShaderNodeParameter" }, + { "VisualShaderNodeUniformRef", "VisualShaderNodeParameterRef" }, + { "WebRTCDataChannelGDNative", "WebRTCDataChannelExtension" }, + { "WebRTCMultiplayer", "WebRTCMultiplayerPeer" }, + { "WebRTCPeerConnectionGDNative", "WebRTCPeerConnectionExtension" }, + { "WindowDialog", "Window" }, + { "World", "World3D" }, // Be careful, this will be used everywhere + { "XRAnchor", "XRAnchor3D" }, + { "XRController", "XRController3D" }, + { "XROrigin", "XROrigin3D" }, + { "YSort", "Node2D" }, + + { "CullInstance", "Node3D" }, // Probably this type needs to be added to Godot 4.0, since it is for now only available only in Godot 3.x + { "RoomGroup", "Node3D" }, // Probably this type needs to be added to Godot 4.0, since it is for now only available only in Godot 3.x + { "Room", "Node3D" }, // Probably this type needs to be added to Godot 4.0, since it is for now only available only in Godot 3.x + { "RoomManager", "Node3D" }, // Probably this type needs to be added to Godot 4.0, since it is for now only available only in Godot 3.x + { "Portal", "Node3D" }, // Probably this type needs to be added to Godot 4.0, since it is for now only available only in Godot 3.x + + { nullptr, nullptr }, +}; + +const char *RenamesMap3To4::color_renames[][2] = { + { "aliceblue", "ALICE_BLUE" }, + { "antiquewhite", "ANTIQUE_WHITE" }, + { "aqua", "AQUA" }, + { "aquamarine", "AQUAMARINE" }, + { "azure", "AZURE" }, + { "beige", "BEIGE" }, + { "bisque", "BISQUE" }, + { "black", "BLACK" }, + { "blanchedalmond", "BLANCHED_ALMOND" }, + { "blue", "BLUE" }, + { "blueviolet", "BLUE_VIOLET" }, + { "brown", "BROWN" }, + { "burlywood", "BURLYWOOD" }, + { "cadetblue", "CADET_BLUE" }, + { "chartreuse", "CHARTREUSE" }, + { "chocolate", "CHOCOLATE" }, + { "coral", "CORAL" }, + { "cornflowerblue", "CORNFLOWER_BLUE" }, + { "cornsilk", "CORNSILK" }, + { "crimson", "CRIMSON" }, + { "cyan", "CYAN" }, + { "darkblue", "DARK_BLUE" }, + { "darkcyan", "DARK_CYAN" }, + { "darkgoldenrod", "DARK_GOLDENROD" }, + { "darkgray", "DARK_GRAY" }, + { "darkgreen", "DARK_GREEN" }, + { "darkkhaki", "DARK_KHAKI" }, + { "darkmagenta", "DARK_MAGENTA" }, + { "darkolivegreen", "DARK_OLIVE_GREEN" }, + { "darkorange", "DARK_ORANGE" }, + { "darkorchid", "DARK_ORCHID" }, + { "darkred", "DARK_RED" }, + { "darksalmon", "DARK_SALMON" }, + { "darkseagreen", "DARK_SEA_GREEN" }, + { "darkslateblue", "DARK_SLATE_BLUE" }, + { "darkslategray", "DARK_SLATE_GRAY" }, + { "darkturquoise", "DARK_TURQUOISE" }, + { "darkviolet", "DARK_VIOLET" }, + { "deeppink", "DEEP_PINK" }, + { "deepskyblue", "DEEP_SKY_BLUE" }, + { "dimgray", "DIM_GRAY" }, + { "dodgerblue", "DODGER_BLUE" }, + { "firebrick", "FIREBRICK" }, + { "floralwhite", "FLORAL_WHITE" }, + { "forestgreen", "FOREST_GREEN" }, + { "fuchsia", "FUCHSIA" }, + { "gainsboro", "GAINSBORO" }, + { "ghostwhite", "GHOST_WHITE" }, + { "gold", "GOLD" }, + { "goldenrod", "GOLDENROD" }, + { "gray", "GRAY" }, + { "green", "GREEN" }, + { "greenyellow", "GREEN_YELLOW" }, + { "honeydew", "HONEYDEW" }, + { "hotpink", "HOT_PINK" }, + { "indianred", "INDIAN_RED" }, + { "indigo", "INDIGO" }, + { "ivory", "IVORY" }, + { "khaki", "KHAKI" }, + { "lavender", "LAVENDER" }, + { "lavenderblush", "LAVENDER_BLUSH" }, + { "lawngreen", "LAWN_GREEN" }, + { "lemonchiffon", "LEMON_CHIFFON" }, + { "lightblue", "LIGHT_BLUE" }, + { "lightcoral", "LIGHT_CORAL" }, + { "lightcyan", "LIGHT_CYAN" }, + { "lightgoldenrod", "LIGHT_GOLDENROD" }, + { "lightgray", "LIGHT_GRAY" }, + { "lightgreen", "LIGHT_GREEN" }, + { "lightpink", "LIGHT_PINK" }, + { "lightsalmon", "LIGHT_SALMON" }, + { "lightseagreen", "LIGHT_SEA_GREEN" }, + { "lightskyblue", "LIGHT_SKY_BLUE" }, + { "lightslategray", "LIGHT_SLATE_GRAY" }, + { "lightsteelblue", "LIGHT_STEEL_BLUE" }, + { "lightyellow", "LIGHT_YELLOW" }, + { "lime", "LIME" }, + { "limegreen", "LIME_GREEN" }, + { "linen", "LINEN" }, + { "magenta", "MAGENTA" }, + { "maroon", "MAROON" }, + { "mediumaquamarine", "MEDIUM_AQUAMARINE" }, + { "mediumblue", "MEDIUM_BLUE" }, + { "mediumorchid", "MEDIUM_ORCHID" }, + { "mediumpurple", "MEDIUM_PURPLE" }, + { "mediumseagreen", "MEDIUM_SEA_GREEN" }, + { "mediumslateblue", "MEDIUM_SLATE_BLUE" }, + { "mediumspringgreen", "MEDIUM_SPRING_GREEN" }, + { "mediumturquoise", "MEDIUM_TURQUOISE" }, + { "mediumvioletred", "MEDIUM_VIOLET_RED" }, + { "midnightblue", "MIDNIGHT_BLUE" }, + { "mintcream", "MINT_CREAM" }, + { "mistyrose", "MISTY_ROSE" }, + { "moccasin", "MOCCASIN" }, + { "navajowhite", "NAVAJO_WHITE" }, + { "navyblue", "NAVY_BLUE" }, + { "oldlace", "OLD_LACE" }, + { "olive", "OLIVE" }, + { "olivedrab", "OLIVE_DRAB" }, + { "orange", "ORANGE" }, + { "orangered", "ORANGE_RED" }, + { "orchid", "ORCHID" }, + { "palegoldenrod", "PALE_GOLDENROD" }, + { "palegreen", "PALE_GREEN" }, + { "paleturquoise", "PALE_TURQUOISE" }, + { "palevioletred", "PALE_VIOLET_RED" }, + { "papayawhip", "PAPAYA_WHIP" }, + { "peachpuff", "PEACH_PUFF" }, + { "peru", "PERU" }, + { "pink", "PINK" }, + { "plum", "PLUM" }, + { "powderblue", "POWDER_BLUE" }, + { "purple", "PURPLE" }, + { "rebeccapurple", "REBECCA_PURPLE" }, + { "red", "RED" }, + { "rosybrown", "ROSY_BROWN" }, + { "royalblue", "ROYAL_BLUE" }, + { "saddlebrown", "SADDLE_BROWN" }, + { "salmon", "SALMON" }, + { "sandybrown", "SANDY_BROWN" }, + { "seagreen", "SEA_GREEN" }, + { "seashell", "SEASHELL" }, + { "sienna", "SIENNA" }, + { "silver", "SILVER" }, + { "skyblue", "SKY_BLUE" }, + { "slateblue", "SLATE_BLUE" }, + { "slategray", "SLATE_GRAY" }, + { "snow", "SNOW" }, + { "springgreen", "SPRING_GREEN" }, + { "steelblue", "STEEL_BLUE" }, + { "tan", "TAN" }, + { "teal", "TEAL" }, + { "thistle", "THISTLE" }, + { "tomato", "TOMATO" }, + { "transparent", "TRANSPARENT" }, + { "turquoise", "TURQUOISE" }, + { "violet", "VIOLET" }, + { "webgray", "WEB_GRAY" }, + { "webgreen", "WEB_GREEN" }, + { "webmaroon", "WEB_MAROON" }, + { "webpurple", "WEB_PURPLE" }, + { "wheat", "WHEAT" }, + { "white", "WHITE" }, + { "whitesmoke", "WHITE_SMOKE" }, + { "yellow", "YELLOW" }, + { "yellowgreen", "YELLOW_GREEN" }, + + { nullptr, nullptr }, +}; + +#endif // DISABLE_DEPRECATED diff --git a/editor/renames_map_3_to_4.h b/editor/renames_map_3_to_4.h new file mode 100644 index 0000000000..119ededf43 --- /dev/null +++ b/editor/renames_map_3_to_4.h @@ -0,0 +1,54 @@ +/**************************************************************************/ +/* renames_map_3_to_4.h */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* 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 RENAMES_MAP_3_TO_4_H +#define RENAMES_MAP_3_TO_4_H + +#ifndef DISABLE_DEPRECATED + +struct RenamesMap3To4 { + static const char *enum_renames[][2]; + static const char *gdscript_function_renames[][2]; + static const char *csharp_function_renames[][2]; + static const char *gdscript_properties_renames[][2]; + static const char *csharp_properties_renames[][2]; + static const char *gdscript_signals_renames[][2]; + static const char *csharp_signals_renames[][2]; + static const char *project_settings_renames[][2]; + static const char *input_map_renames[][2]; + static const char *builtin_types_renames[][2]; + static const char *shaders_renames[][2]; + static const char *class_renames[][2]; + static const char *color_renames[][2]; +}; + +#endif // DISABLE_DEPRECATED + +#endif // RENAMES_MAP_3_TO_4_H diff --git a/editor/translations/editor/ar.po b/editor/translations/editor/ar.po index 0fb924089d..51d860efe7 100644 --- a/editor/translations/editor/ar.po +++ b/editor/translations/editor/ar.po @@ -34,7 +34,7 @@ # Ahmed Shahwan <dev.ahmed.shahwan@gmail.com>, 2019. # hshw <shw@tutanota.com>, 2020. # Youssef Harmal <the.coder.crab@gmail.com>, 2020. -# Nabeel20 <nabeelandnizam@gmail.com>, 2020, 2021, 2022. +# Nabeel20 <nabeelandnizam@gmail.com>, 2020, 2021, 2022, 2023. # merouche djallal <kbordora@gmail.com>, 2020. # Airbus5717 <Abdussamadf350@gmail.com>, 2020. # tamsamani mohamed <tamsmoha@gmail.com>, 2020. @@ -76,8 +76,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-12-21 07:01+0000\n" -"Last-Translator: Abdulrahman <abdelrahman.ramadan686@gmail.com>\n" +"PO-Revision-Date: 2023-02-09 09:37+0000\n" +"Last-Translator: Nabeel20 <nabeelandnizam@gmail.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/" "godot/ar/>\n" "Language: ar\n" @@ -86,14 +86,66 @@ 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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "غير محدد" msgid "Physical" msgstr "فيزيائي" +msgid "Left Mouse Button" +msgstr "زر الفأرة الأيسر" + +msgid "Right Mouse Button" +msgstr "زر الفأرة الأيمن" + +msgid "Middle Mouse Button" +msgstr "عجلة الفأرة (الزر الأوسط)" + +msgid "Mouse Wheel Up" +msgstr "تحريك عجلة الفأرة للأعلى" + +msgid "Mouse Wheel Down" +msgstr "تحريك عجلة الفأرة للأسفل" + +msgid "Mouse Wheel Left" +msgstr "زر العجلة يساراً" + +msgid "Mouse Wheel Right" +msgstr "زر العجلة يميناً" + +msgid "Mouse Thumb Button 1" +msgstr "زر الفأرة الأول الخاص بالإبهام" + +msgid "Mouse Thumb Button 2" +msgstr "زر الفأرة الثاني الخاص بالإبهام" + msgid "Button" msgstr "زر" +msgid "Double Click" +msgstr "نقرة مضاعفة" + +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "حركة الفأرة بالموضع (%s) بالسرعة (%s)" + +msgid "Left Stick X-Axis, Joystick 0 X-Axis" +msgstr "المحور الأفقي لعصا التحكم اليسرى، محور التحكمJoystick الأفقي 0" + +msgid "Left Stick Y-Axis, Joystick 0 Y-Axis" +msgstr "المحور العمودي لعصا التحكم اليسرى، محور التحكم Joystick العمودي 0" + +msgid "Right Stick X-Axis, Joystick 1 X-Axis" +msgstr "المحور الأفقي لعصا التحكم اليمنى، محور التحكم Joystick الأفقي 1" + +msgid "Right Stick Y-Axis, Joystick 1 Y-Axis" +msgstr "المحور العمودي لعصا التحكم اليمنى، محور التحكم Joystickالعمودي 1" + +msgid "Joystick 2 X-Axis, Left Trigger, Sony L2, Xbox LT" +msgstr "" +"المحور الأفقي لمركز التحكم Joystick الثاني، المُطلق الأيسر، Sony L2، Xbox LT" + msgid "Select" msgstr "حدد" @@ -601,6 +653,9 @@ msgstr "من إشارة:" msgid "Scene does not contain any script." msgstr "لا يحتوي المشهد علي اي برنامج نصي." +msgid "Select Method" +msgstr "إختر طريقة" + msgid "Remove" msgstr "إمسح" @@ -656,9 +711,6 @@ msgstr "قطع الاتصال" msgid "Connect a Signal to a Method" msgstr "قم بوصل الإشارة إلى الدالة" -msgid "Edit Connection:" -msgstr "تعديل الإتصال:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "هل أنت متأكد أنك تود إزالة كل الإتصالات من الإشارة \"%s\"؟" @@ -803,23 +855,8 @@ msgstr "تحذير:" msgid "Error:" msgstr "خطأ:" -msgid "C++ Error" -msgstr "خطأ في C++" - -msgid "C++ Error:" -msgstr "خطأ C++ :" - -msgid "Source" -msgstr "مصدر" - -msgid "C++ Source" -msgstr "مصدر C++" - -msgid "Source:" -msgstr "مصدر:" - -msgid "C++ Source:" -msgstr "مصدر C++:" +msgid "%s Error" +msgstr "٪s خطأ" msgid "Stack Trace" msgstr "تتبع المُكدس Stack Trace" @@ -830,6 +867,9 @@ msgstr "خطأ في نسخ" msgid "Open C++ Source on GitHub" msgstr "افتح مصدر ++C على GitHub" +msgid "C++ Source" +msgstr "مصدر C++" + msgid "Video RAM" msgstr "الذاكرة العشوائية للفيديو" @@ -1658,7 +1698,7 @@ msgid "Styles" msgstr "مظاهر" msgid "Enumerations" -msgstr "تعداد" +msgstr "تعدادات" msgid "Property Descriptions" msgstr "أوصاف المُلكية" @@ -1776,12 +1816,12 @@ msgstr "إظهار جميع المَحليّات Locales" msgid "Show Selected Locales Only" msgstr "إظهار المَحليّات المُختارة فحسب" +msgid "Edit Filters" +msgstr "تعديل المُرشحات" + msgid "Language:" msgstr "اللغة:" -msgid "Script" -msgstr "النص البرمجي" - msgid "Clear Output" msgstr "مسح المُخرجات" @@ -2287,7 +2327,7 @@ msgid "FileSystem" msgstr "نظام الملفات" msgid "Inspector" -msgstr "مُتفحص" +msgstr "الفاحص" msgid "Node" msgstr "وحدة" @@ -2311,23 +2351,6 @@ msgid "Install from file" msgstr "تثبيت من ملف" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"بهذه الطريقة سيتم إعداد المشروع الخاص بك لأجل نسخ بناء أندرويد مخصص عن طريق " -"تثبيت قوالب المصدر البرمجي في \"res://android/build\".\n" -"يمكنك تطبيق تعديلات الخاصة على نسخة البناء للحصول على حزمة تطبيق أندرويد APK " -"معدّلة عند التصدير (زيادة مُلحقات، تعديل ملف AndroidManifest.xml إلخ..).\n" -"ضع في بالك أنه من أجل إنشاء نسخ بناء مخصوصة بدلاً من الحزم APKs المبنية سلفاً، " -"ينبغي أن يكون إعداد \"استخدام بناء مخصص\" ممكناً في إعدادات تصدير الأندرويد " -"Android export preset." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2548,9 +2571,6 @@ msgstr "الاختصارات" msgid "Binding" msgstr "الربط" -msgid "%s Error" -msgstr "٪s خطأ" - msgid "All Devices" msgstr "جميع الأجهزة" @@ -3365,6 +3385,9 @@ msgstr "حدد وحرك النقاط، أنشئ النقاط باستخدام RM msgid "Enable snap and show grid." msgstr "تمكين المحاذاة وإظهار الشبكة." +msgid "Blend:" +msgstr "الدمج:" + msgid "Point" msgstr "نقطة" @@ -3408,15 +3431,9 @@ msgstr "مسح النقط والمثلثات." msgid "Generate blend triangles automatically (instead of manually)" msgstr "توليد مثلثات دمج بصورة تلقائية (بدلاً من اليدوية)" -msgid "Blend:" -msgstr "الدمج:" - msgid "Parameter Changed:" msgstr "لقد تم تغيير المَعلم:" -msgid "Edit Filters" -msgstr "تعديل المُرشحات" - msgid "Output node can't be added to the blend tree." msgstr "لا يمكن إضافة مخرجات الوحدة إلى شجرة الدمج." @@ -3535,9 +3552,6 @@ msgstr "تشغيل الرسم المتحرك المختار بشكل عكسي م msgid "Play selected animation backwards from end. (Shift+A)" msgstr "تشغيل الرسم المتحرك المختار بشكل عكسي من النهاية. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "إيقاف تشغيل الرسم المتحرك. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "تشغيل الرسم المتحرك المحدد من البداية. (Shift+D)" @@ -4710,12 +4724,6 @@ msgstr "تعديل Notifier AABB" msgid "Change Particles AABB" msgstr "تعديل جُزيئات AABB" -msgid "Change Box Shape Extents" -msgstr "تعديل حجم الشكل الصندوقي" - -msgid "Change Probe Extents" -msgstr "تعديل نطاقات المسبر Probe Extents" - msgid "Change Capsule Shape Radius" msgstr "تعديل نصف قطر الشكل الكبسولي Capsule Shape" @@ -5522,6 +5530,9 @@ msgstr "معياري" msgid "Connections to method:" msgstr "الاتصالات لدالة:" +msgid "Source" +msgstr "مصدر" + msgid "Target" msgstr "الهدف" @@ -5763,12 +5774,6 @@ msgstr "(فارغ)" msgid "Animations:" msgstr "الرسومات المتحركة:" -msgid "Speed:" -msgstr "السرعة:" - -msgid "Loop" -msgstr "حلقة Loop" - msgid "Animation Frames:" msgstr "إطارات الرسومات المتحركة:" @@ -7045,9 +7050,6 @@ msgstr "إضافة إجراء إدخال" msgid "Change Action deadzone" msgstr "تغيير المنطقة الميتة للفعالية Action deadzone" -msgid "Add Input Action Event" -msgstr "إضافة حدث فعالية الإدخال" - msgid "Erase Input Action" msgstr "مسح إجراء الإدخال" @@ -7072,9 +7074,6 @@ msgstr "انتقاء الخاصية" msgid "Select Virtual Method" msgstr "اختر الطريقة الإفتراضية" -msgid "Select Method" -msgstr "إختر طريقة" - msgid "Batch Rename" msgstr "إعادة تسمية الدفعة" @@ -7775,14 +7774,6 @@ msgstr "مفتاح عام غير صالح لأجل تصدير حزمة تطبي msgid "Invalid package name:" msgstr "اسم رُزمة غير صالح:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "يجب تفعيل \"Use Custom Build\" لإستخدام الإضافات." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"يصبح خيار \"تصدير ABB\" صالحاً فقط عندما يتم اختيار \"استعمال تصدير مخصص " -"Custom Build\"." - msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." @@ -7826,13 +7817,6 @@ msgid "Unsupported export format!" msgstr "تنسيق تصدير غير مدعوم!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"تتم محاولة البناء من قالب بناء مُخصص، ولكن لا تتواجد معلومات النسخة. من فضلك " -"أعد التحميل من قائمة \"المشروع\"." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" @@ -8206,6 +8190,9 @@ msgstr "مصدر غير صالح للمعاينة." msgid "Invalid source for shader." msgstr "مصدر غير صالح لتظليل." +msgid "Filter" +msgstr "المُرشح" + msgid "Repeat" msgstr "كرر" diff --git a/editor/translations/editor/bg.po b/editor/translations/editor/bg.po index e6e20fe39f..227c371174 100644 --- a/editor/translations/editor/bg.po +++ b/editor/translations/editor/bg.po @@ -11,7 +11,7 @@ # Whod <whodizhod@gmail.com>, 2020. # Stoyan <stoyan.stoyanov99@protonmail.com>, 2020. # zooid <the.zooid@gmail.com>, 2020, 2022. -# Любомир Василев <lyubomirv@gmx.com>, 2020, 2021, 2022. +# Любомир Василев <lyubomirv@gmx.com>, 2020, 2021, 2022, 2023. # Ziv D <wizdavid@gmail.com>, 2020. # Violin Iliev <violin.developer@gmail.com>, 2021. # Ivan Gechev <ivan_banov@abv.bg>, 2022. @@ -23,8 +23,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-10-25 15:43+0000\n" -"Last-Translator: Vosh <vosh4k@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 14:12+0000\n" +"Last-Translator: Любомир Василев <lyubomirv@gmx.com>\n" "Language-Team: Bulgarian <https://hosted.weblate.org/projects/godot-engine/" "godot/bg/>\n" "Language: bg\n" @@ -32,7 +32,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.14.2-dev\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Physical" msgstr "Физически" @@ -363,6 +363,16 @@ msgstr "Номер на реда:" msgid "%d replaced." msgstr "%d заменени." +msgid "%d match" +msgid_plural "%d matches" +msgstr[0] "%d съвпадение" +msgstr[1] "%d съвпадения" + +msgid "%d of %d match" +msgid_plural "%d of %d matches" +msgstr[0] "%d от %d съвпадение" +msgstr[1] "%d от %d съвпадения" + msgid "Match Case" msgstr "Различаване на малки и главни букви" @@ -402,6 +412,9 @@ msgstr "От сигнал:" msgid "Scene does not contain any script." msgstr "Сцената не съдържа скриптове." +msgid "Select Method" +msgstr "Избиране на метод" + msgid "Remove" msgstr "Премахване" @@ -438,9 +451,6 @@ msgstr "Разкачване" msgid "Connect a Signal to a Method" msgstr "Свързване на сигнала към метод" -msgid "Edit Connection:" -msgstr "Редактиране на Връзката:" - msgid "Signals" msgstr "Сигнали" @@ -498,11 +508,8 @@ msgstr "Предупреждение:" msgid "Error:" msgstr "Грешка:" -msgid "C++ Error" -msgstr "Грешка в C++" - -msgid "C++ Error:" -msgstr "Грешка в C++:" +msgid "%s Error" +msgstr "Грешка от %s" msgid "Copy Error" msgstr "Копиране на грешката" @@ -1050,12 +1057,12 @@ msgstr "Показване на всички езици" msgid "Show Selected Locales Only" msgstr "Показване само на избраните езици" +msgid "Edit Filters" +msgstr "Редактиране на филтрите" + msgid "Language:" msgstr "Език:" -msgid "Script" -msgstr "Скрипт" - msgid "Clear Output" msgstr "Изчистване на изхода" @@ -1332,24 +1339,6 @@ msgstr "Управление на шаблоните" msgid "Install from file" msgstr "Инсталиране от файл" -msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Това ще настрои проекта Ви за персонализирано компилиране за Android, като " -"инсталира изходния шаблон в „res://android/build“.\n" -"След това ще можете да го промените (като добавите модули, промените файла " -"„AndroidManifest.xml“ и т.н.) и да създадете свой собствен APK за " -"изнасянето.\n" -"Имайте предвид, че за да ползвате персонализирани файлове APK, вместо " -"предварително готовите, в конфигурацията за изнасяне за Android трябва да " -"поставена отметка в „Използване на собствена компилация“." - msgid "Import Templates From ZIP File" msgstr "Внасяне на шаблони от архив във формат ZIP" @@ -1429,9 +1418,6 @@ msgstr "Настройки на редактора" msgid "General" msgstr "Общи" -msgid "%s Error" -msgstr "Грешка от %s" - msgid "All Devices" msgstr "Всички устройства" @@ -1745,39 +1731,107 @@ msgstr "Допълнителни настройки на ресурса." msgid "Edit Resource from Clipboard" msgstr "Редактиране на ресурс от буфера за обмен" +msgid "Go to previous edited object in history." +msgstr "Преминаване към предходния редактиран обект в историята." + +msgid "Go to next edited object in history." +msgstr "Преминаване към следващия редактиран обект в историята." + msgid "History of recently edited objects." msgstr "История на последно редактираните обекти." msgid "Open documentation for this object." msgstr "Отваряне на документацията за този обект." +msgid "Filter Properties" +msgstr "Филтриране на свойствата" + msgid "Manage object properties." msgstr "Управление на свойствата на обекта." +msgid "This cannot be undone. Are you sure?" +msgstr "Това действие е необратимо. Наистина ли го искате?" + msgid "Add %d Translations" msgstr "Добавяне на %d превода" msgid "Remove Translation" msgstr "Премахване на превода" +msgid "Add %d file(s) for POT generation" +msgstr "Добавяне на %d файл(а) за създаване на POT" + +msgid "Remove file from POT generation" +msgstr "Премахване на файла от процеса за създаване на POT" + +msgid "Removed" +msgstr "Премахнато" + +msgid "%s cannot be found." +msgstr "%s не може да бъде намерено." + +msgid "Translations" +msgstr "Преводи" + +msgid "Translations:" +msgstr "Преводи:" + +msgid "Resources:" +msgstr "Ресурси:" + msgid "Locale" msgstr "Локал" +msgid "POT Generation" +msgstr "Създаване на POT" + +msgid "Files with translation strings:" +msgstr "Файлове с низове за превод:" + +msgid "Generate POT" +msgstr "Създаване на POT" + +msgid "Set %s on %d nodes" +msgstr "Задаване на %s на %d обекта" + +msgid "%s (%d Selected)" +msgstr "%s (%d избран(и))" + msgid "Select a single node to edit its signals and groups." msgstr "Изберете един обект, за да редактирате сигналите и групите му." +msgid "Plugin name cannot be blank." +msgstr "Името на приставката не може да бъде празно." + +msgid "Script extension must match chosen language extension (.%s)." +msgstr "" +"Разширението на скрипта трябва да съвпада с разширението на избрания език (." +"%s)." + +msgid "Subfolder name is not a valid folder name." +msgstr "Името на подпапката не е правилно име на папка." + +msgid "Subfolder cannot be one which already exists." +msgstr "Вече съществува подпапка с това име." + msgid "Edit a Plugin" msgstr "Редактиране на приставка" msgid "Create a Plugin" msgstr "Създаване на приставка" +msgid "Update" +msgstr "Обновяване" + msgid "Plugin Name:" msgstr "Име на приставката:" msgid "Subfolder:" msgstr "Подпапка:" +msgid "Author:" +msgstr "Автор:" + msgid "Version:" msgstr "Версия:" @@ -1829,6 +1883,17 @@ msgstr "Зареждане..." msgid "Move Node Point" msgstr "Преместване на точката на обекта" +msgid "Change BlendSpace1D Config" +msgstr "Промяна на конфигурацията на BlendSpace1D" + +msgid "Change BlendSpace1D Labels" +msgstr "Промяна на етикетите на BlendSpace1D" + +msgid "This type of node can't be used. Only animation nodes are allowed." +msgstr "" +"Този тип обект не може да бъде използван. Разрешени са само обекти за " +"анимиране." + msgid "This type of node can't be used. Only root nodes are allowed." msgstr "" "Този тип обект не може да бъде използван. Разрешени са само коренни обекти." @@ -1842,6 +1907,9 @@ msgstr "Добавяне на точки за анимация" msgid "Remove BlendSpace1D Point" msgstr "Премахване на точка на BlendSpace1D" +msgid "Move BlendSpace1D Node Point" +msgstr "Преместване на точката на обекта за BlendSpace1D" + msgid "" "AnimationTree is inactive.\n" "Activate to enable playback, check node warnings if activation fails." @@ -1859,6 +1927,12 @@ msgstr "Избиране и преместване на точки; създав msgid "Enable snap and show grid." msgstr "Включване на прилепването и показване на решетката." +msgid "Sync:" +msgstr "Синхронизиране:" + +msgid "Blend:" +msgstr "Смесване:" + msgid "Point" msgstr "Точка" @@ -1874,8 +1948,17 @@ msgstr "Триъгълникът вече съществува." msgid "Add Triangle" msgstr "Добавяне на триъгълник" +msgid "Change BlendSpace2D Config" +msgstr "Промяна на конфигурацията на BlendSpace2D" + +msgid "Change BlendSpace2D Labels" +msgstr "Промяна на етикетите на BlendSpace2D" + msgid "Remove BlendSpace2D Point" -msgstr "Преместване на точка на BlendSpace2D" +msgstr "Премахване на точката на BlendSpace2D" + +msgid "Remove BlendSpace2D Triangle" +msgstr "Премахване на триъгълника на BlendSpace2D" msgid "BlendSpace2D does not belong to an AnimationTree node." msgstr "BlendSpace2D не принадлежи на обект от тип AnimationTree." @@ -1895,14 +1978,14 @@ msgstr "Изтриване на точки и триъгълници." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Създаване на триъгълници за смесване автоматично (а не ръчно)" -msgid "Blend:" -msgstr "Смесване:" - msgid "Parameter Changed:" msgstr "Параметърът е променен:" -msgid "Edit Filters" -msgstr "Редактиране на филтрите" +msgid "Inspect Filters" +msgstr "Разглеждане на филтрите" + +msgid "Output node can't be added to the blend tree." +msgstr "Резултатният обект не може да бъде добавен към дървото за смесване." msgid "Add Node to BlendTree" msgstr "Добавяне на обекта към BlendTree" @@ -1945,6 +2028,9 @@ msgstr "Аудио клипове" msgid "Functions" msgstr "Функции" +msgid "Inspect Filtered Tracks:" +msgstr "Разглеждане на филтрираните пътечки:" + msgid "Edit Filtered Tracks:" msgstr "Редактиране на филтрираните пътечки:" @@ -1957,9 +2043,86 @@ msgstr "Добавяне на обект…" msgid "Enable Filtering" msgstr "Включване на филтрирането" +msgid "Library Name:" +msgstr "Име на библиотеката:" + +msgid "Animation name can't be empty." +msgstr "Името на анимацията не може да бъде празно." + +msgid "Animation name contains invalid characters: '/', ':', ',' or '['." +msgstr "" +"Името на анимацията съдържа някой/и от следните непозволени знаци: / : , или " +"[." + +msgid "Animation with the same name already exists." +msgstr "Вече съществува анимация с това име." + +msgid "Enter a library name." +msgstr "Въведете име за библиотеката." + +msgid "Library name contains invalid characters: '/', ':', ',' or '['." +msgstr "" +"Името на библиотеката съдържа някой/и от следните непозволени знаци: / : , " +"или [." + +msgid "Library with the same name already exists." +msgstr "Вече съществува библиотека с това име." + +msgid "Animation name is valid." +msgstr "Името на анимацията отговаря на изискванията." + +msgid "Global library will be created." +msgstr "Ще бъде създадена глобална библиотека." + +msgid "Library name is valid." +msgstr "Името на библиотеката отговаря на изискванията." + +msgid "Add Animation to Library: %s" +msgstr "Добавяне на анимация към библиотеката: %s" + +msgid "Add Animation Library: %s" +msgstr "Добавяне на анимационна библиотека: %s" + msgid "Load Animation" msgstr "Зареждане на анимация" +msgid "" +"This animation library can't be saved because it does not belong to the " +"edited scene. Make it unique first." +msgstr "" +"Тази анимационна библиотека не може да бъде запазена, тъй като не принадлежи " +"на редактираната сцена. Направете я уникална първо." + +msgid "" +"This animation library can't be saved because it was imported from another " +"file. Make it unique first." +msgstr "" +"Тази анимационна библиотека не може да бъде запазена, тъй като е била " +"внесена от друг файл. Направете я уникална първо." + +msgid "Save Library" +msgstr "Запазване на библиотеката" + +msgid "Make Animation Library Unique: %s" +msgstr "Превръщане на анимационна библиотека в уникална: %s" + +msgid "" +"This animation can't be saved because it does not belong to the edited " +"scene. Make it unique first." +msgstr "" +"Тази анимация не може да бъде запазена, тъй като не принадлежи на " +"редактираната сцена. Направете я уникална първо." + +msgid "" +"This animation can't be saved because it was imported from another file. " +"Make it unique first." +msgstr "" +"Тази анимация не може да бъде запазена, тъй като е била внесена от друг " +"файл. Направете я уникална първо." + +msgid "Save Animation" +msgstr "Запазване на анимацията" + msgid "Animation Name:" msgstr "Име на анимацията:" @@ -2003,9 +2166,6 @@ msgstr "" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Възпроизвеждане на избраната анимация наобратно от края. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Спиране на възпроизвеждането на анимацията. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Възпроизвеждане на избраната анимация от началото. (Shift+D)" @@ -2130,21 +2290,51 @@ msgstr "Съдържание:" msgid "View Files" msgstr "Преглед на файловете" +msgid "Download" +msgstr "Сваляне" + msgid "Connection error, please try again." msgstr "Грешка във връзката. Моля, опитайте отново." +msgid "Can't connect." +msgstr "Не може да се осъществи връзка." + +msgid "Can't connect to host:" +msgstr "Не може да се осъществи връзка със сървъра:" + +msgid "No response from host:" +msgstr "Няма отговор от сървъра:" + +msgid "No response." +msgstr "Няма отговор." + msgid "Request failed, return code:" msgstr "Заявката беше неуспешна. Код:" msgid "Cannot save response to:" msgstr "Отговорът не може да бъде запазен в:" +msgid "Write error." +msgstr "Грешка при запис." + msgid "Request failed, too many redirects" msgstr "Заявката се провали. Твърде много пренасочвания" +msgid "Redirect loop." +msgstr "Цикъл от пренасочвания." + msgid "Request failed, timeout" msgstr "Заявката е неуспешна, изчакването е неуспешно" +msgid "Timeout." +msgstr "Изтекло време." + +msgid "Failed:" +msgstr "Неуспешно:" + +msgid "Bad download hash, assuming file has been tampered with." +msgstr "Неправилна хеш-сума на сваления файл. Приема се, че той е бил увреден." + msgid "Expected:" msgstr "Очаквано:" @@ -2154,6 +2344,9 @@ msgstr "Получено:" msgid "Failed SHA-256 hash check" msgstr "Неуспешна проверка на хеш от вид SHA-256" +msgid "Ready to install!" +msgstr "Готово за инсталиране!" + msgid "Downloading (%s / %s)..." msgstr "Сваляне (%s / %s)..." @@ -2181,6 +2374,12 @@ msgstr "Последно обновени" msgid "Least Recently Updated" msgstr "Обновени отдавна" +msgid "Name (A-Z)" +msgstr "Име (А-Я)" + +msgid "Name (Z-A)" +msgstr "Име (Я-А)" + msgid "License (A-Z)" msgstr "Лиценз (А-Я)" @@ -2196,9 +2395,43 @@ msgstr "Тестово" msgid "Loading..." msgstr "Зареждане…" +msgctxt "Pagination" +msgid "First" +msgstr "Първа" + +msgctxt "Pagination" +msgid "Previous" +msgstr "Предишна" + +msgctxt "Pagination" +msgid "Next" +msgstr "Следваща" + +msgctxt "Pagination" +msgid "Last" +msgstr "Последна" + msgid "All" msgstr "Всички" +msgid "No results for \"%s\" for support level(s): %s." +msgstr "Няма резултати за „%s“ за нивото/нивата на поддръжка: %s." + +msgid "" +"No results compatible with %s %s for support level(s): %s.\n" +"Check the enabled support levels using the 'Support' button in the top-right " +"corner." +msgstr "" +"Няма резултати съвместими с „%s“ за нивото/нивата на поддръжка: %s.\n" +"Проверете включените нива на поддръжка чрез бутона „Поддръжка“ в горния " +"десен ъгъл." + +msgid "Search Templates, Projects, and Demos" +msgstr "Търсене на шаблони, проекти и демота" + +msgid "Search Assets (Excluding Templates, Projects, and Demos)" +msgstr "Търсене на материали (изключвайки шаблони, проекти и демота)" + msgid "Import..." msgstr "Внасяне…" @@ -2436,6 +2669,9 @@ msgstr "" "Ако тази настройка е включено, навигационните полигони и мрежи ще бъдат " "видими в изпълняващия се проект." +msgid " - Variation" +msgstr " – Вариация" + msgid "Convert to CPUParticles2D" msgstr "Преобразуване в CPUParticles2D" @@ -2574,6 +2810,9 @@ msgstr "Източник за полигонна мрежа:" msgid "Mesh Up Axis:" msgstr "Ос сочеща нагоре за полигонната мрежа:" +msgid "Objects: %d\n" +msgstr "Обекти: %d\n" + msgid "Top View." msgstr "Изглед отгоре." @@ -3159,11 +3398,8 @@ msgstr "(празно)" msgid "Animations:" msgstr "Анимации:" -msgid "Speed:" -msgstr "Скорост:" - -msgid "Loop" -msgstr "Повтаряне" +msgid "Delete Animation" +msgstr "Изтриване на анимацията" msgid "Animation Frames:" msgstr "Кадри на анимацията:" @@ -3207,9 +3443,29 @@ msgstr "Стъпка:" msgid "Styleboxes" msgstr "Стилове" +msgid "1 color" +msgid_plural "{num} colors" +msgstr[0] "1 цвят" +msgstr[1] "{num} цвята" + +msgid "1 constant" +msgid_plural "{num} constants" +msgstr[0] "константа" +msgstr[1] "{num} константи" + msgid "No constants found." msgstr "Няма намерени константи." +msgid "1 font size" +msgid_plural "{num} font sizes" +msgstr[0] "1 размер на шрифт" +msgstr[1] "{num} размера на шрифт" + +msgid "1 stylebox" +msgid_plural "{num} styleboxes" +msgstr[0] "1 стилова кутия" +msgstr[1] "{num} стилови кутии" + msgid "Importing Theme Items" msgstr "Внасяне на елементите на темата" @@ -3728,9 +3984,6 @@ msgstr "Избиране на свойство" msgid "Select Virtual Method" msgstr "Избиране на виртуален метод" -msgid "Select Method" -msgstr "Избиране на метод" - msgid "Batch Rename" msgstr "Масово преименуване" @@ -3868,6 +4121,11 @@ msgstr "Група бутони" msgid "(Connecting From)" msgstr "(Свързване от)" +msgid "Node has one connection." +msgid_plural "Node has {num} connections." +msgstr[0] "Обектът има една връзка." +msgstr[1] "Обектът има {num} връзки." + msgid "Open Script:" msgstr "Отваряне на скрипт:" @@ -4013,6 +4271,9 @@ msgstr "Размер" msgid "Network Profiler" msgstr "Профилиране на мрежата" +msgid "Delete Property?" +msgstr "Изтриване на свойството?" + msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" "Трябва да се зададе или създаде ресурс от тип NavigationMesh, за може да " @@ -4110,16 +4371,6 @@ msgstr "Неправилен публичен ключ за разширение msgid "Invalid package name:" msgstr "Неправилно име на пакет:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" -"„Използване на собствена компилация“ трябва да е включено, за да могат да се " -"използват приставките." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"„Изнасяне на AAB“ може да се ползва само когато е включено „Използване на " -"собствена компилация“." - msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." @@ -4180,7 +4431,7 @@ msgid "Creating APK..." msgstr "Създаване на APK…" msgid "Could not find template APK to export: \"%s\"." -msgstr "Не е намерен шаблонен файл APK за изнасяне: %s" +msgstr "Не е намерен шаблонен файл APK за изнасяне: „%s“." msgid "" "Missing libraries in the export template for the selected architectures: %s. " @@ -4227,10 +4478,28 @@ msgstr "Неправилна версия на файла:" msgid "Invalid product version:" msgstr "Неправилна версия на продукта:" +msgid "" +"CollisionPolygon2D only serves to provide a collision shape to a " +"CollisionObject2D derived node. Please only use it as a child of Area2D, " +"StaticBody2D, RigidBody2D, CharacterBody2D, etc. to give them a shape." +msgstr "" +"CollisionPolygon2D служи само, за да даде форма за колизии на обект основан " +"на CollisionObject2D. Използвайте го само като под-обект на Area2D, " +"StaticBody2D, RigidBody2D, KinematicBody2D и т.н., за да им дадете форма." + msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Празен CollisionPolygon2D не влияе на колизиите." msgid "" +"CollisionShape2D only serves to provide a collision shape to a " +"CollisionObject2D derived node. Please only use it as a child of Area2D, " +"StaticBody2D, RigidBody2D, CharacterBody2D, etc. to give them a shape." +msgstr "" +"CollisionShape2D служи само, за да даде форма за колизии на обект основан на " +"CollisionObject2D. Използвайте го само като наследник на Area2D, " +"StaticBody2D, RigidBody2D, KinematicBody2D, и т.н., за да им дадете форма." + +msgid "" "A shape must be provided for CollisionShape2D to function. Please create a " "shape resource for it!" msgstr "" @@ -4269,6 +4538,17 @@ msgstr "" "Свойството „Path“ трябва да сочи към действителен обект от тип Node2D, за да " "работи." +msgid "" +"CollisionPolygon3D only serves to provide a collision shape to a " +"CollisionObject3D derived node.\n" +"Please only use it as a child of Area3D, StaticBody3D, RigidBody3D, " +"CharacterBody3D, etc. to give them a shape." +msgstr "" +"CollisionPolygon3D служи само, за да даде форма за колизии на обект основан " +"на CollisionObject3D.\n" +"Използвайте го само като под-обект на Area3D, StaticBody3D, RigidBody3D, " +"KinematicBody3D и т.н., за да им дадете форма." + msgid "Nothing is visible because no mesh has been assigned." msgstr "Не се вижда нищо, той като няма зададена полигонна мрежа." @@ -4303,5 +4583,12 @@ msgstr "Трябва да се използва правилно разшире msgid "(Other)" msgstr "(Други)" +msgid "" +"Shader keywords cannot be used as parameter names.\n" +"Choose another name." +msgstr "" +"Шейдърните служебни думи не могат да се ползват като имена на свойства.\n" +"Изберете друго име." + msgid "Constants cannot be modified." msgstr "Константите не могат да бъдат променени." diff --git a/editor/translations/editor/ca.po b/editor/translations/editor/ca.po index 4cad0ebca6..6d888c3448 100644 --- a/editor/translations/editor/ca.po +++ b/editor/translations/editor/ca.po @@ -557,6 +557,9 @@ msgstr "Des del Senyal:" msgid "Scene does not contain any script." msgstr "L'escena no conté cap script." +msgid "Select Method" +msgstr "Selecciona un Mètode" + msgid "Remove" msgstr "Treu" @@ -614,9 +617,6 @@ msgstr "Desconnectar" msgid "Connect a Signal to a Method" msgstr "Connectar un Senyal a un Mètode" -msgid "Edit Connection:" -msgstr "Editar Connexió:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "" "Esteu segurs de que voleu eliminar totes les connexions del senyal \"%s\"?" @@ -735,12 +735,6 @@ msgstr "Bytes:" msgid "Error:" msgstr "Error:" -msgid "Source" -msgstr "Font" - -msgid "Source:" -msgstr "Font:" - msgid "Copy Error" msgstr "Copia l'error" @@ -1645,12 +1639,12 @@ msgstr "Mostrar tots els idiomes" msgid "Show Selected Locales Only" msgstr "Mostrar només els idiomes seleccionats" +msgid "Edit Filters" +msgstr "Edita Filtres" + msgid "Language:" msgstr "Llengua:" -msgid "Script" -msgstr "Script" - msgid "Clear Output" msgstr "Buida la Sortida" @@ -2175,22 +2169,6 @@ msgid "Install from file" msgstr "Instal·la des d'un fitxer" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"S'inicialitzarà el projecte per a compilar per Android. La plantilla " -"s'instal·larà a \"res://android/build\".\n" -"Pots aplicar modificacions i generar el teu propi APK en exportar ( afegir " -"mòduls, canviar el manifest AndroidManifest.xml, etc.).\n" -"Habilita l'opció \"Utilitza Compilació Personalitzada\" en la configuració " -"d'exportació per a Android per personalitzar la compilació." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -3074,6 +3052,9 @@ msgstr "Selecciona i mou els punts, crea punts fent clic dret." msgid "Enable snap and show grid." msgstr "Habilitar ajustament i mostrar quadrícula." +msgid "Blend:" +msgstr "Mescla:" + msgid "Point" msgstr "Punt" @@ -3116,15 +3097,9 @@ msgstr "Elimina punts i triangles." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Genera automàticament triangles de mescla (en comptes d'a mà)" -msgid "Blend:" -msgstr "Mescla:" - msgid "Parameter Changed:" msgstr "Paràmetre canviat:" -msgid "Edit Filters" -msgstr "Edita Filtres" - msgid "Output node can't be added to the blend tree." msgstr "No es pot afegir el node de sortida a l'arbre de mescla." @@ -3245,9 +3220,6 @@ msgstr "" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Reprodueix enrera l'animació seleccionada des del final. (Maj+A)" -msgid "Stop animation playback. (S)" -msgstr "Aturar la reproducció de l'animació. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Reproduir l'animació seleccionada des de l'inici. (Maj+D)" @@ -4116,12 +4088,6 @@ msgstr "Canviar Notificador AABB" msgid "Change Particles AABB" msgstr "Modifica les Partícules AABB" -msgid "Change Box Shape Extents" -msgstr "Modifica l'abast de la Forma Caixa" - -msgid "Change Probe Extents" -msgstr "Modifica l'abast de la Sonda" - msgid "Change Capsule Shape Radius" msgstr "Modifica el radi d'una Forma Càpsula" @@ -4804,6 +4770,9 @@ msgstr "Estàndard" msgid "Connections to method:" msgstr "Connexions al mètode:" +msgid "Source" +msgstr "Font" + msgid "Target" msgstr "Objectiu" @@ -5010,9 +4979,6 @@ msgstr "(buit)" msgid "Animations:" msgstr "Animacions:" -msgid "Loop" -msgstr "Bucle" - msgid "Animation Frames:" msgstr "Fotogrames d'Animació:" @@ -5666,9 +5632,6 @@ msgstr "Afegeix una Acció d'Entrada" msgid "Change Action deadzone" msgstr "Canviar zona morta de l'acció" -msgid "Add Input Action Event" -msgstr "Afegeix un Incidència d'Acció de Entrada" - msgid "Erase Input Action" msgstr "Elimina l'Acció d'Entrada" @@ -5693,9 +5656,6 @@ msgstr "Selecciona una Propietat" msgid "Select Virtual Method" msgstr "Selecciona un Mètode Virtual" -msgid "Select Method" -msgstr "Selecciona un Mètode" - msgid "Batch Rename" msgstr "Reanomena en lot" diff --git a/editor/translations/editor/cs.po b/editor/translations/editor/cs.po index 8509e80fbb..3c58f37106 100644 --- a/editor/translations/editor/cs.po +++ b/editor/translations/editor/cs.po @@ -33,13 +33,14 @@ # Mirinek <mirek.nozicka77@gmail.com>, 2022. # Lubomír Baloun <lubosbaloun@gmail.com>, 2022. # Ondřej Pavelka <flamekick97@gmail.com>, 2022, 2023. +# ElisHoli <eliskaholz@seznam.cz>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-06 09:58+0000\n" -"Last-Translator: Ondřej Pavelka <flamekick97@gmail.com>\n" +"PO-Revision-Date: 2023-02-09 01:51+0000\n" +"Last-Translator: ElisHoli <eliskaholz@seznam.cz>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/" "cs/>\n" "Language: cs\n" @@ -47,7 +48,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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Button" msgstr "Tlačítko" @@ -479,6 +480,18 @@ msgstr "Číslo řádku:" msgid "%d replaced." msgstr "%d nahrazeno." +msgid "%d match" +msgid_plural "%d matches" +msgstr[0] "%d shoda." +msgstr[1] "%d shod." +msgstr[2] "%d shody." + +msgid "%d of %d match" +msgid_plural "%d of %d matches" +msgstr[0] "%d shoda." +msgstr[1] "%d shod." +msgstr[2] "%d shody." + msgid "Match Case" msgstr "Rozlišovat malá/velká" @@ -540,6 +553,9 @@ msgstr "Ze signálu:" msgid "Scene does not contain any script." msgstr "Scéna neobsahuje žádný skript." +msgid "Select Method" +msgstr "Vybrat metodu" + msgid "Remove" msgstr "Odebrat" @@ -595,9 +611,6 @@ msgstr "Odpojit" msgid "Connect a Signal to a Method" msgstr "Připojit signál k metodě" -msgid "Edit Connection:" -msgstr "Upravit spojení:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "" "Jste si jisti, že chcete odstranit všechna připojení ze signálu \"%s\"?" @@ -740,30 +753,15 @@ msgstr "Varování:" msgid "Error:" msgstr "Chyba:" -msgid "C++ Error" -msgstr "Chyba C++" - -msgid "C++ Error:" -msgstr "Chyba C++:" - -msgid "Source" -msgstr "Zdroj" - -msgid "C++ Source" -msgstr "Zdroj C++" - -msgid "Source:" -msgstr "Zdroj:" - -msgid "C++ Source:" -msgstr "Zdroj C++:" - msgid "Stack Trace" msgstr "Trasování zásobníku" msgid "Copy Error" msgstr "Kopírovat chybu" +msgid "C++ Source" +msgstr "Zdroj C++" + msgid "Video RAM" msgstr "Video RAM" @@ -1568,6 +1566,9 @@ msgstr "Vlastnosti" msgid "default:" msgstr "výchozí:" +msgid "Operators" +msgstr "Operátory" + msgid "Theme Properties" msgstr "Vlastnosti motivu" @@ -1703,12 +1704,12 @@ msgstr "Zobrazit všechny jazyky" msgid "Show Selected Locales Only" msgstr "Zobrazit pouze vybrané jazyky" +msgid "Edit Filters" +msgstr "Editovat filtry" + msgid "Language:" msgstr "Jazyk:" -msgid "Script" -msgstr "Skript" - msgid "Clear Output" msgstr "Vymazat výstup" @@ -2240,23 +2241,6 @@ msgid "Install from file" msgstr "Instalovat ze souboru" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Tato možnost připraví váš projekt na vaše vlastní sestavení pro Android " -"instalací zdrojové šablony v \"res://android/build\".\n" -"Poté můžete při exportu přidat úpravy a vytvořit si vlastní soubor APK " -"(přidání modulů, změna souboru AndroidManifest.xml, atd.)\n" -"Upozorňujeme, že pokud chcete vytvořit vlastní sestavení namísto použití " -"připraveného souboru APK, měla by být v exportním profilu Androidu povolena " -"možnost \"Použít vlastní sestavení\"." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2476,6 +2460,13 @@ msgstr "Zkratky" msgid "Binding" msgstr "Vazba" +msgid "" +"Hold %s to round to integers.\n" +"Hold Shift for more precise changes." +msgstr "" +"Podržte %s pro zaokrouhlení na celá čísla.\n" +" Pro přesnější změny podržte Shift." + msgid "All Devices" msgstr "Všechna zařízení" @@ -2488,6 +2479,9 @@ msgstr "Ukládám soubor:" msgid "No export template found at the expected path:" msgstr "Na očekávané cestě nebyly nalezeny žádné šablony exportu:" +msgid "Could not open file to read from path \"%s\"." +msgstr "Nelze otevřít soubor pro čtení z cesty \"%s\"." + msgid "Packing" msgstr "Balím" @@ -3179,6 +3173,9 @@ msgstr "Mapování na základě jazyku:" msgid "Locale" msgstr "Jazyky" +msgid "Set %s on %d nodes" +msgstr "Nastavit %s na %d uzlech" + msgid "Select a single node to edit its signals and groups." msgstr "Zvolte vybraný uzel pro editaci jeho signálů a skupin." @@ -3286,6 +3283,9 @@ msgstr "Zvolte a přesuňte body. Nové uzly vytvořte pomocí RMB." msgid "Enable snap and show grid." msgstr "Aktivovat přichytávání a zobrazit mřížku." +msgid "Blend:" +msgstr "Prolínání:" + msgid "Point" msgstr "Bod" @@ -3328,15 +3328,9 @@ msgstr "Odstranit body a trojúhelníky." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Vygenerovat blend trojúhelníky automaticky (ne manuálně)" -msgid "Blend:" -msgstr "Prolínání:" - msgid "Parameter Changed:" msgstr "Změněný parametr:" -msgid "Edit Filters" -msgstr "Editovat filtry" - msgid "Output node can't be added to the blend tree." msgstr "Výstupní uzly nemohou být přidané do blend stromu." @@ -3452,9 +3446,6 @@ msgstr "Přehrát zvolenou animaci pozpátku ze současné pozice. (A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Přehrát zvolenou animaci pozpátku od konce. (A)" -msgid "Stop animation playback. (S)" -msgstr "Zastavit přehrávání animace. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Přehrát vybranou animaci od začátku. (Shift+D)" @@ -3575,6 +3566,9 @@ msgstr "Připojit uzly." msgid "Remove selected node or transition." msgstr "Odstranit vybraný uzel nebo přechod." +msgid "Transition:" +msgstr "Přechod:" + msgid "Play Mode:" msgstr "Režim přehrávání:" @@ -3821,6 +3815,9 @@ msgstr "Seskupené" msgid "Add Node Here" msgstr "Přidání uzlu sem" +msgid "Scaling:" +msgstr "Škálování:" + msgid "" "Project Camera Override\n" "Overrides the running project's camera with the editor viewport camera." @@ -4289,6 +4286,9 @@ msgstr "" "Při vzdáleném použití na zařízení je tato možnost efektivnější, když je " "povolen síťový souborový systém." +msgid " - Variation" +msgstr " - Variace" + msgid "Convert to CPUParticles2D" msgstr "Převést na CPUParticles2D" @@ -4328,6 +4328,9 @@ msgstr "Povrchové body+Normály (orientované)" msgid "Volume" msgstr "Hlasitost" +msgid "Emission Source:" +msgstr "Zdroj emisí:" + msgid "Generate Visibility AABB" msgstr "Generovat viditelnostní AABB" @@ -4596,12 +4599,6 @@ msgstr "Změnit AABB Notifier" msgid "Change Particles AABB" msgstr "Změnit částice AABB" -msgid "Change Box Shape Extents" -msgstr "Změnit rozsahy Box Shape" - -msgid "Change Probe Extents" -msgstr "Změnit rozsahy Probe" - msgid "Change Capsule Shape Radius" msgstr "Změnit poloměr Capsule Shape" @@ -4644,6 +4641,9 @@ msgstr "Klíčování je deaktivováno (není vložen žádný klíč)." msgid "Animation Key Inserted." msgstr "Animační klíč vložen." +msgid "Objects: %d\n" +msgstr "Objekty: %d\n" + msgid "Top View." msgstr "Pohled shora." @@ -4677,6 +4677,9 @@ msgstr "Otočit" msgid "Translate" msgstr "Posunout" +msgid "Translating:" +msgstr "Posun:" + msgid "Rotating %s degrees." msgstr "Rotuji %s stupňů." @@ -4698,6 +4701,9 @@ msgstr "Rentgen pohled" msgid "Display Unshaded" msgstr "Bezestínový pohled" +msgid "Normal Buffer" +msgstr "Normální vyrovnávací paměť" + msgid "View Environment" msgstr "Zobrazit prostředí" @@ -5347,6 +5353,9 @@ msgstr "Standard" msgid "Connections to method:" msgstr "Připojení k metodě:" +msgid "Source" +msgstr "Zdroj" + msgid "Target" msgstr "Cíl" @@ -5525,6 +5534,15 @@ msgstr "Neplatná geometrie, nelze vytvořit light occluder." msgid "Create LightOccluder2D Sibling" msgstr "Vytvořit sourozence LightOccluder2D" +msgid "Simplification:" +msgstr "Zjednodušení:" + +msgid "Shrink (Pixels):" +msgstr "Zmenšení (pixely):" + +msgid "Grow (Pixels):" +msgstr "Zvětšení (pixely):" + msgid "Update Preview" msgstr "Obnovit náhled" @@ -5570,11 +5588,8 @@ msgstr "(prázdný)" msgid "Animations:" msgstr "Animace:" -msgid "Speed:" -msgstr "Rychlost:" - -msgid "Loop" -msgstr "Smyčka" +msgid "Delete Animation" +msgstr "Smazat animaci" msgid "Animation Frames:" msgstr "Snímky animace:" @@ -5624,18 +5639,48 @@ msgstr "Automatický řez" msgid "Step:" msgstr "Krok:" +msgid "1 color" +msgid_plural "{num} colors" +msgstr[0] "Barvy" +msgstr[1] "Barev" +msgstr[2] "Barvy" + msgid "No colors found." msgstr "Nebyly nalezeny žádné barvy." +msgid "1 constant" +msgid_plural "{num} constants" +msgstr[0] "Konstantní" +msgstr[1] "Konstantních" +msgstr[2] "Konstantní" + msgid "No constants found." msgstr "Nebyly nalezeny žádné konstanty." msgid "No fonts found." msgstr "Nebyla nalezena žádná písma." +msgid "1 font size" +msgid_plural "{num} font sizes" +msgstr[0] "Velikost písma" +msgstr[1] "Velikost písem" +msgstr[2] "Velikosti písma" + msgid "No icons found." msgstr "Nebyly nalezeny žádné ikony." +msgid "1 stylebox" +msgid_plural "{num} styleboxes" +msgstr[0] "Styl" +msgstr[1] "Stylů" +msgstr[2] "Styly" + +msgid "{num} currently selected" +msgid_plural "{num} currently selected" +msgstr[0] "právě vybráno {num}" +msgstr[1] "právě vybráno {num}" +msgstr[2] "právě vybráno {num}" + msgid "Nothing was selected for the import." msgstr "Nic nebylo vybráno pro import." @@ -5816,6 +5861,9 @@ msgstr "Převrátit horizontálně" msgid "Flip Vertically" msgstr "Převrátit vertikálně" +msgid "Scattering:" +msgstr "Rozptyl:" + msgid "Yes" msgstr "Ano" @@ -6528,6 +6576,61 @@ msgid "Can't open project at '%s'." msgstr "Nelze otevřít projekt v '%s'." msgid "" +"The selected project \"%s\" does not specify its supported Godot version in " +"its configuration file (\"project.godot\").\n" +"\n" +"Project path: %s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" +"Konfigurační soubor projektu nespecifikuje verzi Godotu ve které byl " +"vytvořen.\n" +"\n" +"Cesta projektu: %s\n" +"\n" +"Pokud se rozhodnete ho otevřít, tak bude převeden do aktuálního formátu " +"konfiguračního souboru Godotu.\n" +"Varování: Nebude možné otevřít projekt v dřívějších verzích enginu." + +msgid "" +"The selected project \"%s\" was generated by an older engine version, and " +"needs to be converted for this version.\n" +"\n" +"Project path: %s\n" +"\n" +"Do you want to convert it?\n" +"\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" +"Následující konfigurační soubor projektu byl vytvořen starší verzí enginu a " +"potřebuje být konvertován pro aktuální verzi:\n" +"\n" +"Cesta k projektu: %s\n" +"\n" +"Přejete si ho konvertovat?\n" +"Varování: Nebude možné otevřít projekt v dřívějších verzích enginu." + +msgid "" +"Can't open project \"%s\" at the following path:\n" +"\n" +"%s\n" +"\n" +"The project settings were created by a newer engine version, whose settings " +"are not compatible with this version." +msgstr "" +"Nelze otevřít projekt „%s“ na následující cestě:\n" +"\n" +"%s\n" +"\n" +"Nastavení projektu byla vytvořena novější verzí enginu, jejíž nastavení není " +"kompatibilní s touto verzí." + +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." @@ -6625,9 +6728,6 @@ msgstr "Přidat vstupní akci" msgid "Change Action deadzone" msgstr "Změnit mrtvou zónu akce" -msgid "Add Input Action Event" -msgstr "Přidat událost vstupní akce" - msgid "Erase Input Action" msgstr "Vymazat vstupní akce" @@ -6643,6 +6743,9 @@ msgstr "Mapování vstupů" msgid "Localization" msgstr "Lokalizace" +msgid "Autoload" +msgstr "Automatické načítání" + msgid "Plugins" msgstr "Pluginy" @@ -6655,9 +6758,6 @@ msgstr "Vybrat vlastnost" msgid "Select Virtual Method" msgstr "Vybrat virtuální metodu" -msgid "Select Method" -msgstr "Vybrat metodu" - msgid "Batch Rename" msgstr "Dávkové přejmenování" @@ -6945,6 +7045,21 @@ msgstr "(Připojování z)" msgid "Node configuration warning:" msgstr "Varování konfigurace uzlu:" +msgid "Node has one connection." +msgid_plural "Node has {num} connections." +msgstr[0] "Uzel má jedno připojení." +msgstr[1] "Uzel má {num} připojení" +msgstr[2] "Uzel má připojení" + +msgid "Node is in this group:" +msgid_plural "Node is in the following groups:" +msgstr[0] "Uzel je v této skupině:" +msgstr[1] "Uzly je v těchto skupinách:" +msgstr[2] "Uzel je ve skupinách" + +msgid "Click to show signals dock." +msgstr "Kliknutím zobrazíte panel signálů." + msgid "Open Script:" msgstr "Otevřít skript:" @@ -7219,6 +7334,9 @@ msgstr "Velikost" msgid "Network Profiler" msgstr "Síťový profiler" +msgid "Delete Property?" +msgstr "Smazat vlastnost?" + msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" "Aby tento uzel mohl fungovat, musí mít nastaven nebo vytvořen zdroj " @@ -7345,21 +7463,19 @@ msgstr "Neplatný veřejný klíč pro rozšíření APK." msgid "Invalid package name:" msgstr "Neplatné jméno balíčku:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" -"Chcete-li používat doplňky, musí být povoleno \"použít vlastní build\"." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"\"Export AAB\" je validní pouze v případě, že je povolena možnost \"Použít " -"vlastní sestavu\"." - msgid "Signing release %s..." msgstr "Podepisování vydání %s..." msgid "Could not find keystore, unable to export." msgstr "Nepodařilo se najít úložiště klíčů, nelze exportovat." +msgid "" +"output: \n" +"%s" +msgstr "" +"Výstup:\n" +"%s" + msgid "Verifying %s..." msgstr "Ověřuji %s..." @@ -7379,13 +7495,6 @@ msgid "Unsupported export format!" msgstr "Nepodporovaný formát exportu!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Pokus o sestavení z vlastní šablony, ale neexistují pro ni žádné informace o " -"verzi. Přeinstalujte jej z nabídky \"Projekt\"." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" @@ -7422,7 +7531,7 @@ msgid "Creating APK..." msgstr "Vytvářím APK..." msgid "Could not find template APK to export: \"%s\"." -msgstr "Nepodařilo se najít šablonu APK pro export: \"%s\"" +msgstr "Nepodařilo se najít šablonu APK pro export: \"%s\"." msgid "Adding files..." msgstr "Přidávám soubory..." @@ -7604,6 +7713,17 @@ msgstr "" "Této kosti chybí správná klidová póza. Přejděte na uzel Skeleton2D a " "nastavte jej." +msgid "" +"CollisionPolygon3D only serves to provide a collision shape to a " +"CollisionObject3D derived node.\n" +"Please only use it as a child of Area3D, StaticBody3D, RigidBody3D, " +"CharacterBody3D, etc. to give them a shape." +msgstr "" +"CollisionPolygon3D slouží pouze k poskytnutí tvaru kolize pro uzel odvozený " +"od CollisionObject3D.\n" +"Používejte jej pouze jako potomka Area3D, StaticBody3D, RigidBody3D, " +"CharacterBody3D atd., abyste jim dali tvar." + msgid "Nothing is visible because no mesh has been assigned." msgstr "Nic není zobrazeno, protože nebyla přiřazena žádná mřížka." @@ -7612,6 +7732,9 @@ msgid "" msgstr "" "Nic není viditelné, protože mřížky nebyly přiřazeny do vykreslovací fronty." +msgid "Generating Probe Volumes" +msgstr "Generování objemů sondy" + msgid "This body will be ignored until you set a mesh." msgstr "Toto těleso bude ignorováno, dokud nenastavíte model." @@ -7655,6 +7778,13 @@ msgstr "Cesta k AnimationPlayer nevede k uzlu AnimationPlayer." msgid "The AnimationPlayer root node is not a valid node." msgstr "Kořenový uzel AnimationPlayer není platný uzel." +msgid "" +"Color: #%s\n" +"LMB: Apply color" +msgstr "" +"Barva: #%s\n" +"LMB: Nastavit barvu" + msgid "Pick a color from the editor window." msgstr "Vyberte barvu z okna editoru." @@ -7740,3 +7870,9 @@ msgstr "Přiřazeno uniformu." msgid "Constants cannot be modified." msgstr "Konstanty není možné upravovat." + +msgid "Invalid argument name." +msgstr "Neplatný název argumentu." + +msgid "Invalid macro argument count." +msgstr "Neplatný počet argumentů makra." diff --git a/editor/translations/editor/de.po b/editor/translations/editor/de.po index 98ce8d8250..8eb4586c54 100644 --- a/editor/translations/editor/de.po +++ b/editor/translations/editor/de.po @@ -54,7 +54,7 @@ # Jacqueline Ulken <Jacqueline.Ulken@protonmail.com>, 2020. # Günther Bohn <ciscouser@gmx.de>, 2020, 2021. # Tom Wor <mail@tomwor.com>, 2020. -# Bjarne Hiller <bjarne.hiller@gmail.com>, 2020. +# Bjarne Hiller <bjarne.hiller@gmail.com>, 2020, 2023. # Dirk Federmann <weblategodot@dirkfedermann.de>, 2020. # Helmut Hirtes <helmut.h@gmx.de>, 2020. # Michal695 <michalek.jedrzejak@gmail.com>, 2020. @@ -88,13 +88,16 @@ # Felix Bitsch <felix.a.bitsch@gmail.com>, 2022. # miguel <miguel-gonzalez@gmx.de>, 2022. # Least Significant Bite <leastsignificantbite@proton.me>, 2023. +# HolonProduction <holonproduction@gmail.com>, 2023. +# co1inco <colin.meihoefer@gmx.de>, 2023. +# Jakob <js2k2@gmx.de>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-09 20:42+0000\n" -"Last-Translator: So Wieso <sowieso@dukun.de>\n" +"PO-Revision-Date: 2023-02-10 14:12+0000\n" +"Last-Translator: Jakob <js2k2@gmx.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" "Language: de\n" @@ -102,20 +105,173 @@ 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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "Deaktiviert" msgid "Physical" msgstr "Physisch" +msgid "Left Mouse Button" +msgstr "Linke Maustaste" + +msgid "Right Mouse Button" +msgstr "Rechte Maustaste" + +msgid "Middle Mouse Button" +msgstr "Mittlere Maustaste" + +msgid "Mouse Wheel Up" +msgstr "Mausrad hoch" + +msgid "Mouse Wheel Down" +msgstr "Mausrad runter" + +msgid "Mouse Wheel Left" +msgstr "Mausrad links" + +msgid "Mouse Wheel Right" +msgstr "Mausrad rechts" + +msgid "Mouse Thumb Button 1" +msgstr "Daumentaste 1" + +msgid "Mouse Thumb Button 2" +msgstr "Daumentaste 2" + msgid "Button" msgstr "Button" +msgid "Double Click" +msgstr "Doppelklick" + +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "Mausbewegung an Position (%s) mit Geschwindigkeit (%s)" + +msgid "Left Stick X-Axis, Joystick 0 X-Axis" +msgstr "Linker Stick X-Achse, Joystick 0 X-Achse" + +msgid "Left Stick Y-Axis, Joystick 0 Y-Axis" +msgstr "Linker Stick Y-Achse, Joystick 0 Y-Achse" + +msgid "Right Stick X-Axis, Joystick 1 X-Axis" +msgstr "Rechter Stick X-Achse, Joystick 1 X-Achse" + +msgid "Right Stick Y-Axis, Joystick 1 Y-Axis" +msgstr "Rechter Stick Y-Achse, Joystick 1 Y-Achse" + +msgid "Joystick 2 X-Axis, Left Trigger, Sony L2, Xbox LT" +msgstr "Joystick 2 X-Achse, Linker Trigger, Sony L2, Xbox LT" + +msgid "Joystick 2 Y-Axis, Right Trigger, Sony R2, Xbox RT" +msgstr "Joystick 2 Y-Achse, Rechter Trigger, Sony R2, Xbox RT" + +msgid "Joystick 3 X-Axis" +msgstr "Joystick 3 X-Achse" + +msgid "Joystick 3 Y-Axis" +msgstr "Joystick 3 Y-Achse" + +msgid "Joystick 4 X-Axis" +msgstr "Joystick 4 X-Achse" + +msgid "Joystick 4 Y-Axis" +msgstr "Joystick 4 Y-Achse" + +msgid "Unknown Joypad Axis" +msgstr "Unbekannte Joypad Achse" + +msgid "Joypad Motion on Axis %d (%s) with Value %.2f" +msgstr "Joypad Bewegung auf der Achse %d (%s) mit dem Wert %.2f" + +msgid "Bottom Action, Sony Cross, Xbox A, Nintendo B" +msgstr "Untere Aktion, Sony Kreuz, Xbox A, Nintendo B" + +msgid "Right Action, Sony Circle, Xbox B, Nintendo A" +msgstr "Rechte Aktion, Sony Kreis, Xbox B, Nintendo A" + +msgid "Left Action, Sony Square, Xbox X, Nintendo Y" +msgstr "Linke Aktion, Sony Rechteck, Xbox X, Nintendo Y" + +msgid "Top Action, Sony Triangle, Xbox Y, Nintendo X" +msgstr "Obere Aktion, Sony Dreieck, Xbox Y, Nintendo X" + +msgid "Back, Sony Select, Xbox Back, Nintendo -" +msgstr "Zurück, Sony Select, Xbox Back, Nintendo -" + +msgid "Start, Nintendo +" +msgstr "Start, Nintendo +" + +msgid "Left Stick, Sony L3, Xbox L/LS" +msgstr "Linker Steuerknüppel, Sony L3, Xbox L/LS" + +msgid "Right Stick, Sony R3, Xbox R/RS" +msgstr "Rechter Steuerknüppel, Sony R3, Xbox R/RS" + +msgid "Left Shoulder, Sony L1, Xbox LB" +msgstr "Linke Schultertaste, Sony L1, Xbox LB" + +msgid "Right Shoulder, Sony R1, Xbox RB" +msgstr "Rechte Schultertaste, Sony R1, Xbox RB" + +msgid "D-pad Up" +msgstr "Steuerkreuz Oben" + +msgid "D-pad Down" +msgstr "Steuerkreuz Unten" + +msgid "D-pad Left" +msgstr "Steuerkreuz Links" + +msgid "D-pad Right" +msgstr "Steuerkreuz Rechts" + +msgid "Xbox Share, PS5 Microphone, Nintendo Capture" +msgstr "Xbox Teilen, PS5 Mikrofon, Nintendo Aufnehmen" + +msgid "PS4/5 Touchpad" +msgstr "PS4/5 Touchpad" + +msgid "released" +msgstr "veröffentlicht" + +msgid "Screen %s at (%s) with %s touch points" +msgstr "Bildschirm %s bei (%s) mit %s Touch-Punkten" + +msgid "" +"Screen dragged with %s touch points at position (%s) with velocity of (%s)" +msgstr "" +"Auf Bildschirm gezogen mit %s Touch-Punkten bei der Position (%s) mit einer " +"Geschwindigkeit von (%s)" + +msgid "Magnify Gesture at (%s) with factor %s" +msgstr "Vergrößerungsgeste bei (%s) mit Faktor %s" + +msgid "Pan Gesture at (%s) with delta (%s)" +msgstr "Pan Geste bei (%s) mit delta (%s)" + +msgid "MIDI Input on Channel=%s Message=%s" +msgstr "MIDI Eingabe auf Kannal=%s Nachricht=%s" + +msgid "Input Event with Shortcut=%s" +msgstr "Eingabe Event mit Tastenkürzel=%s" + +msgid "Accept" +msgstr "Annehmen" + msgid "Select" msgstr "Auswählen" msgid "Cancel" msgstr "Abbrechen" +msgid "Focus Next" +msgstr "Nächster Fokus" + +msgid "Focus Prev" +msgstr "Vorheriger Fokus" + msgid "Left" msgstr "Links" @@ -128,6 +284,12 @@ msgstr "Hoch" msgid "Down" msgstr "Runter" +msgid "Page Up" +msgstr "Bild Auf" + +msgid "Page Down" +msgstr "Bild Ab" + msgid "End" msgstr "Ende" @@ -146,15 +308,30 @@ msgstr "Rückgängig machen" msgid "Redo" msgstr "Wiederherstellen" +msgid "New Line" +msgstr "Neue Zeile" + +msgid "New Blank Line" +msgstr "Neue leere Zeile" + +msgid "New Line Above" +msgstr "Neue Zeile oberhalb" + msgid "Indent" msgstr "Einrücken" +msgid "Dedent" +msgstr "Ausrücken" + msgid "Delete" msgstr "Löschen" msgid "Select All" msgstr "Alles auswählen" +msgid "Select Word Under Caret" +msgstr "Markiere Wort unter Cursor" + msgid "Duplicate Nodes" msgstr "Nodes duplizieren" @@ -207,6 +384,11 @@ msgstr "PiB" msgid "EiB" msgstr "EiB" +msgid "%d item" +msgid_plural "%d items" +msgstr[0] "%d Element" +msgstr[1] "%d Elemente" + msgid "" "Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'" @@ -397,6 +579,14 @@ msgstr "Animationsinterpolationsmodus ändern" msgid "Change Animation Loop Mode" msgstr "Animationswiederholungsmodus ändern" +msgid "" +"Compressed tracks can't be edited or removed. Re-import the animation with " +"compression disabled in order to edit." +msgstr "" +"Komprimierte Spuren können nicht bearbeitet oder entfernt werden. " +"Importieren Sie die Animation erneut mit deaktivierter Kompression um das " +"Bearbeiten zu ermöglichen." + msgid "Remove Anim Track" msgstr "Spur entfernen" @@ -667,6 +857,9 @@ msgstr "Durch Signal:" msgid "Scene does not contain any script." msgstr "Szene enthält kein einziges Skript." +msgid "Select Method" +msgstr "Methode auswählen" + msgid "Remove" msgstr "Entfernen" @@ -727,9 +920,6 @@ msgstr "Trennen" msgid "Connect a Signal to a Method" msgstr "Ein Signal mit einer Methode verbinden" -msgid "Edit Connection:" -msgstr "Verbindung bearbeiten:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Sollen wirklich alle Verbindungen des Signals „%s“ entfernt werden?" @@ -875,23 +1065,8 @@ msgstr "Warnung:" msgid "Error:" msgstr "Fehler:" -msgid "C++ Error" -msgstr "C++-Fehler" - -msgid "C++ Error:" -msgstr "C++-Fehler:" - -msgid "Source" -msgstr "Quelle" - -msgid "C++ Source" -msgstr "C++-Quellcode" - -msgid "Source:" -msgstr "Quelle:" - -msgid "C++ Source:" -msgstr "C++-Quellcode:" +msgid "%s Error" +msgstr "%s Fehler" msgid "Stack Trace" msgstr "Stacktrace" @@ -902,6 +1077,9 @@ msgstr "Fehlermeldung kopieren" msgid "Open C++ Source on GitHub" msgstr "C++-Quelldatei auf GitHub aufrufen" +msgid "C++ Source" +msgstr "C++-Quellcode" + msgid "Video RAM" msgstr "Video RAM" @@ -1385,6 +1563,9 @@ msgstr "Navigation" msgid "OpenGL" msgstr "OpenGL" +msgid "Vulkan" +msgstr "Vulkan" + msgid "Nodes and Classes:" msgstr "Nodes und Klassen:" @@ -1395,7 +1576,7 @@ msgid "Error saving profile to path: '%s'." msgstr "Fehler beim Speichern des Profils im Pfad: ‚%s‘." msgid "New" -msgstr "Erstelle" +msgstr "Neu" msgid "Save" msgstr "Speichern" @@ -1742,6 +1923,9 @@ msgstr "Überschreibt %s:" msgid "default:" msgstr "Standard:" +msgid "Operators" +msgstr "Operatoren" + msgid "Theme Properties" msgstr "Theme-Eigenschaften" @@ -1882,12 +2066,12 @@ msgstr "Alle Sprachen anzeigen" msgid "Show Selected Locales Only" msgstr "Nur ausgewählte Sprachen anzeigen" +msgid "Edit Filters" +msgstr "Filter bearbeiten" + msgid "Language:" msgstr "Sprache:" -msgid "Script" -msgstr "Skript" - msgid "Variant" msgstr "Variante" @@ -2455,23 +2639,6 @@ msgid "Install from file" msgstr "Aus Datei installieren" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Hiermit wird der Projektordner für beliebige Android-Builds eingerichtet in " -"dem das Quell-Template nach „res://android/build“ installiert wird.\n" -"Danach können eigene Modifikationen vorgenommen und ein eigens APK " -"exportiert werden (Module hinzufügen, AndroidManifest.xml ändern, usw.).\n" -"Achtung: Um eigene Builds, statt den vorgefertigten zu generieren, muss die " -"„Use Custom Build“-Option in den Android-Export-Voreinstellungen aktiviert " -"sein." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2698,9 +2865,6 @@ msgstr "Tastenkürzel" msgid "Binding" msgstr "Zuordnung" -msgid "%s Error" -msgstr "%s Fehler" - msgid "All Devices" msgstr "Alle Geräte" @@ -3103,6 +3267,22 @@ msgstr "Verwalte Exportvorlagen" msgid "Export With Debug" msgstr "Exportiere mit Debuginformationen" +msgid "Path to FBX2glTF executable is empty." +msgstr "Dateipfad zur ausführbaren Datei von FBX2glTF ist leer." + +msgid "Error executing this file (wrong version or architecture)." +msgstr "Fehler beim Ausführen dieser Datei (falsche Version oder Architektur)." + +msgid "" +"FBX2glTF is required for importing FBX files.\n" +"Please download it and provide a valid path to the binary:" +msgstr "" +"FBX2glTF wird benötigt um FBX Dateien zu importieren.\n" +"Bitte laden Sie es herunter und geben Sie den Pfad zur ausführbaren Datei an:" + +msgid "Click this link to download FBX2glTF" +msgstr "Klicken Sie diesen Link an um FBX2glTF herunterzuladen" + msgid "Browse" msgstr "Durchsuchen" @@ -3331,6 +3511,13 @@ msgstr "Neuimport" msgid "Offset:" msgstr "Versatz:" +msgid "" +"Warning: Multiple configurations have identical settings. Duplicates will be " +"ignored." +msgstr "" +"Warnung: Mehrere Konfigurationen haben identische Einstellungen. Duplikate " +"werden ignoriert." + msgid "Importing Scene..." msgstr "Szene wird importiert..." @@ -3641,6 +3828,9 @@ msgstr "Punkte auswählen und verschieben, erstellen mit RMT." msgid "Enable snap and show grid." msgstr "Schnapp- und Anzeigeraster aktivieren." +msgid "Blend:" +msgstr "Blende:" + msgid "Point" msgstr "Punkt" @@ -3683,15 +3873,9 @@ msgstr "Punkte und Dreiecke löschen." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Vermischungsdreiecke automatisch erstellen (statt manuell)" -msgid "Blend:" -msgstr "Blende:" - msgid "Parameter Changed:" msgstr "Parameter geändert:" -msgid "Edit Filters" -msgstr "Filter bearbeiten" - msgid "Output node can't be added to the blend tree." msgstr "Ausgabe-Node kann nicht zum Mischungsbaum hinzugefügt werden." @@ -3814,9 +3998,6 @@ msgstr "Spiele ausgewählte Animation rückwärts von aktueller Position. (A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Spiele ausgewählte Animation rückwärts vom Ende. (Umschalt+A)" -msgid "Stop animation playback. (S)" -msgstr "Stoppe Animations-Wiedergabe. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Spiele ausgewählte Animation vom Start. (Umschalt+D)" @@ -4494,6 +4675,21 @@ msgstr "Standardtyp ändern" msgid "Set Handle" msgstr "Wähle Griff" +msgid "This node is a child of a container." +msgstr "Dieses Node ist Kind eines Containers." + +msgid "Use container properties for positioning." +msgstr "Benutze Containereigenschaften zur Positionierung." + +msgid "Use anchors and the rectangle for positioning." +msgstr "Benutze Anker und das Rechteck zur Positionierung." + +msgid "Collapse positioning hint." +msgstr "Hinweis für Positionierung einklappen." + +msgid "Expand positioning hint." +msgstr "Hinweis für Positionierung ausklappen." + msgid "Fill" msgstr "Füllung" @@ -4716,6 +4912,15 @@ msgstr "" "Sollte dies beim Abspielen auf externen Geräten genutzt werden, ist es am " "effizientesten, das Netzwerk-Dateisystem zu aktivieren." +msgid "Run Multiple Instances" +msgstr "Mehrere Instanzen ausführen" + +msgid " - Variation" +msgstr " - Variation" + +msgid "Unable to preview font" +msgstr "Vorschau für Schriftart nicht verfügbar" + msgid "Convert to CPUParticles2D" msgstr "Zu CPUParticles2D konvertieren" @@ -4761,9 +4966,15 @@ msgstr "Emissionsquelle:" msgid "Generate Visibility AABB" msgstr "Erzeuge Sichtbarkeits-AABB" +msgid "Select path for SDF Texture" +msgstr "Wähle Pfad für SDF Textur" + msgid "Gradient Edited" msgstr "Gradient bearbeitet" +msgid "Reverse/mirror gradient." +msgstr "Gradient spiegeln/umkehren." + msgid "Swap GradientTexture2D Fill Points" msgstr "GrandientTexture2D Füllpunkte vertauschen" @@ -5058,12 +5269,6 @@ msgstr "Benachrichtigendes AABB ändern" msgid "Change Particles AABB" msgstr "Ändere Partikel AABB" -msgid "Change Box Shape Extents" -msgstr "Kastenformausmaße ändern" - -msgid "Change Probe Extents" -msgstr "Sondenausmaße ändern" - msgid "Change Capsule Shape Radius" msgstr "Kapselfromradius ändern" @@ -5142,6 +5347,12 @@ msgstr "Schlüsselbildeinfügen ist deaktiviert (kein Schlüsselbild eingefügt) msgid "Animation Key Inserted." msgstr "Animationsschlüsselbild eingefügt." +msgid "Size: %s (%.1fMP)\n" +msgstr "Größe: %s (%.1fMP)\n" + +msgid "Objects: %d\n" +msgstr "Objekte: %d\n" + msgid "Top View." msgstr "Sicht von oben." @@ -5250,6 +5461,15 @@ msgstr "Freisicht Geschwindigkeitsregler" msgid "Freelook Slow Modifier" msgstr "Freisicht Trägheitsregler" +msgid "Lock Transformation to X axis" +msgstr "Sperre Transformation auf X-Achse" + +msgid "Lock Transformation to Y axis" +msgstr "Sperre Transformation auf Y-Achse" + +msgid "Lock Transformation to Z axis" +msgstr "Sperre Transformation auf Z-Achse" + msgid "Toggle Camera Preview" msgstr "Kameravorschau umschalten" @@ -5890,6 +6110,9 @@ msgstr "Standard" msgid "Connections to method:" msgstr "Verbindungen mit Methode:" +msgid "Source" +msgstr "Quelle" + msgid "Target" msgstr "Ziel" @@ -6138,12 +6361,6 @@ msgstr "(leer)" msgid "Animations:" msgstr "Animationen:" -msgid "Speed:" -msgstr "Geschwindigkeit:" - -msgid "Loop" -msgstr "Wiederholung" - msgid "Animation Frames:" msgstr "Animationsbilder:" @@ -7580,9 +7797,6 @@ msgstr "Füge Eingabeaktion hinzu" msgid "Change Action deadzone" msgstr "Nullschwelle der Aktion ändern" -msgid "Add Input Action Event" -msgstr "Eingabeaktionsereignis hinzufügen" - msgid "Erase Input Action" msgstr "Eingabeaktion löschen" @@ -7610,9 +7824,6 @@ msgstr "Eigenschaft auswählen" msgid "Select Virtual Method" msgstr "Virtuelle Methode auswählen" -msgid "Select Method" -msgstr "Methode auswählen" - msgid "Batch Rename" msgstr "Stapelweise Umbenennung" @@ -8414,23 +8625,10 @@ msgstr "Ungültiger öffentlicher Schlüssel für APK-Erweiterung." msgid "Invalid package name:" msgstr "Ungültiger Paketname:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" -"„Use Custom Build“ muss aktiviert werden um die Plugins nutzen zu können." - msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "„Passthrough“ ist nur gültig wenn „XR Mode“ als „OpenXR“ gesetzt wurde." -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "„Export AAB“ ist nur gültig wenn „Use Custom Build“ aktiviert ist." - -msgid "" -"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "" -"Das „Min SDK“ zu überschreiben ist nur möglich wenn „Use Custom Build“ " -"aktiviert ist." - msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" "„Min SDK“ sollte eine gültige Ganzzahl sein, war aber „%s“, was ungültig ist." @@ -8443,12 +8641,6 @@ msgstr "" "Bibliothek benötigt." msgid "" -"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "" -"„Target SDK“ kann nur überschrieben werden wenn „Use Custom Build“ aktiviert " -"ist." - -msgid "" "\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" "„Taret SDK“ sollte eine gültige Ganzzahl sein, war aber „%s“, was ungültig " @@ -8516,14 +8708,6 @@ msgid "Unsupported export format!" msgstr "Nicht unterstütztes Exportformat!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Es wurde versucht aus einer eigener Build-Vorlage zu bauen aber es " -"existieren keine Versionsinformation für sie. Neuinstallation im ‚Projekt‘-" -"Menü benötigt." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" @@ -9226,6 +9410,13 @@ msgstr "" "als „Ignore“ festgelegt wurde. Zum Beheben muss der Mausfilter als „Stop“ " "oder „Pass“ festgelegt werden." +msgid "" +"Changing the Z index of a control only affects the drawing order, not the " +"input event handling order." +msgstr "" +"Änderungen des Z-Index beeinflussen nur die Reihenfolge der Darstellung, " +"nicht die Reihenfolge der Eingabeverarbeitung." + msgid "Theme Overrides" msgstr "Themen-Überschreibungen" @@ -9235,12 +9426,31 @@ msgstr "Warnung!" msgid "Please Confirm..." msgstr "Bitte bestätigen..." +msgid "You don't have permission to access contents of this folder." +msgstr "Keine Berechtigung um auf den Inhalt des Ordners zuzugreifen." + msgid "Must use a valid extension." msgstr "Eine gültige Datei-Endung muss verwendet werden." msgid "Enable grid minimap." msgstr "Gitterübersichtskarte aktivieren." +msgid "" +"The current font does not support rendering one or more characters used in " +"this Label's text." +msgstr "" +"Die aktuelle Schriftart unterstützt mindestens ein Zeichen nicht, welches im " +"Text des Labels verwendet wird." + +msgid "Right-to-Left" +msgstr "Rechts-nach-Links" + +msgid "Left-to-Right Mark (LRM)" +msgstr "Links-nach-Rechts Markierung (LRM)" + +msgid "Right-to-Left Mark (RLM)" +msgstr "Rechts-nach-Links Markierung (RLM)" + msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." msgstr "Wenn „Exp Edit“ aktiviert ist muss „Min Value“ größer als null sein." @@ -9308,6 +9518,45 @@ msgstr "Wiederholen" msgid "Invalid comparison function for that type." msgstr "Ungültige Vergleichsfunktion für diesen Typ." +msgid "" +"Argument %d of function '%s' can only take a local variable, array, or " +"member." +msgstr "" +"Argument %d der Funktion '%s' kann nur eine lokale Variable, Array oder " +"member annehmen." + +msgid "Built-in function \"%s(%s)\" is only supported on high-end platforms." +msgstr "" +"Integrierte Funktion \"%s(%s)\" wird nur auf High-End Plattformen " +"unterstützt." + +msgid "Recursion is not allowed." +msgstr "Rekursion ist nicht erlaubt." + +msgid "Function '%s' can't be called from source code." +msgstr "Funktion '%s' kann nicht aus dem Quelltext aufgerufen werden." + +msgid "" +"Invalid argument for \"%s(%s)\" function: argument %d should be %s but is %s." +msgstr "" +"Ungültiges Argument für Funktion \"%s(%s)\": Argument %d sollte %s sein aber " +"ist %s." + +msgid "" +"Too few arguments for \"%s(%s)\" call. Expected at least %d but received %d." +msgstr "" +"Zu wenige Argumente für den Aufruf von \"%s(%s)\". Erwarte mindestens %d, " +"nur %d übergeben." + +msgid "" +"Too many arguments for \"%s(%s)\" call. Expected at most %d but received %d." +msgstr "" +"Zu viele Argumente für Aufruf von \"%s(%s)\". Erwarte maximal %d aber es " +"wurden %d übergeben." + +msgid "Expected ',' or ')' after argument." +msgstr "Erwarte ',' oder ')' nach Argument." + msgid "Varying may not be assigned in the '%s' function." msgstr "Varyings dürfen nicht in Funktion ‚%s‘ zugewiesen werden." @@ -9319,3 +9568,60 @@ msgstr "Zuweisung an Uniform." msgid "Constants cannot be modified." msgstr "Konstanten können nicht verändert werden." + +msgid "An object of type '%s' can't be indexed." +msgstr "Ein Objekt des Typs '%s' kann nicht Indexiert werden." + +msgid "" +"Global non-constant variables are not supported. Expected '%s' keyword " +"before constant definition." +msgstr "" +"Globale nicht-konstante Variablen werden nicht unterstützt. Erwarte '%s' " +"Schlüsselwort vor der Definition einer Konstanten." + +msgid "Expected at least one '%s' statement in a non-void function." +msgstr "Erwartete mindestens eine '%s' Anweisung in einer nicht-void Funktion." + +msgid "Unmatched endif." +msgstr "Unvollständiges endif." + +msgid "" +"Shader include load failed. Does the shader include exist? Is there a cyclic " +"dependency?" +msgstr "" +"Laden des Shader include fehlgeschlagen. Existiert der include des Shaders? " +"Gibt es eine zyklische Abhängigkeit?" + +msgid "Cyclic include found." +msgstr "Zyklisches include erkannt." + +msgid "" +"Direct floating-point comparison (this may not evaluate to `true` as you " +"expect). Instead, use `abs(a - b) < 0.0001` for an approximate but " +"predictable comparison." +msgstr "" +"Direkter Vergleich von Gleitkommazahlen (dies muss entgegen der Vermutung " +"nicht `true` ergeben). Nutzen Sie stattdessen `abs(a - b) < 0.0001` für " +"einen ungefähren, aber vorhersehbaren Vergleich." + +msgid "The const '%s' is declared but never used." +msgstr "Die Konstante '%s' wurde deklariert, aber nie verwendet." + +msgid "The function '%s' is declared but never used." +msgstr "Die Funktion '%s' wurde deklariert, aber nie verwendet." + +msgid "The uniform '%s' is declared but never used." +msgstr "Das Uniform '%s' wurde deklariert, aber nie verwendet." + +msgid "The varying '%s' is declared but never used." +msgstr "Das Varying '%s' wurde deklariert, aber nie verwendet." + +msgid "The local variable '%s' is declared but never used." +msgstr "Die lokale Variable '%s' wurde deklariert, aber nie verwendet." + +msgid "" +"The total size of the %s for this shader on this device has been exceeded " +"(%d/%d). The shader may not work correctly." +msgstr "" +"Die Gesamtgröße der %s für diesen Shader auf diesem Gerät wurde " +"überschritten (%d/%d). Der Shader funktioniert eventuell nicht korrekt." diff --git a/editor/translations/editor/el.po b/editor/translations/editor/el.po index 5fcf5140d9..54c7561f36 100644 --- a/editor/translations/editor/el.po +++ b/editor/translations/editor/el.po @@ -19,13 +19,14 @@ # Anthony V. <batmanplayer123@gmail.com>, 2022. # Anthony V. <anthonyv156@outlook.com>, 2022. # Ilias Vasilakis <vaselas99@gmail.com>, 2023. +# "Overloaded @ Orama Interactive" <manoschool@yahoo.gr>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-15 13:34+0000\n" -"Last-Translator: Ilias Vasilakis <vaselas99@gmail.com>\n" +"PO-Revision-Date: 2023-02-08 18:01+0000\n" +"Last-Translator: \"Overloaded @ Orama Interactive\" <manoschool@yahoo.gr>\n" "Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/" "el/>\n" "Language: el\n" @@ -33,11 +34,96 @@ 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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Physical" +msgstr "Φυσικό" + +msgid "Left Mouse Button" +msgstr "Αριστερό κουμπί ποντικιού" + +msgid "Right Mouse Button" +msgstr "Δεξί κουμπί ποντικιού" + +msgid "Middle Mouse Button" +msgstr "Μεσαίο κουμπί ποντικιού" + +msgid "Mouse Wheel Up" +msgstr "Ροδέλα ποντικιού πάνω" + +msgid "Mouse Wheel Down" +msgstr "Ροδέλα ποντικιού κάτω" + +msgid "Mouse Wheel Left" +msgstr "Ροδέλα ποντικιού αριστερά" + +msgid "Mouse Wheel Right" +msgstr "Ροδέλα ποντικιού δεξιά" + +msgid "Mouse Thumb Button 1" +msgstr "Κουμπί ποντικιού αντίχειρα 1" + +msgid "Mouse Thumb Button 2" +msgstr "Κουμπί ποντικιού αντίχειρα 2" msgid "Button" msgstr "Κουμπί" +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "Κίνηση ποντικιού στη θέση (%s) με ταχύτητα (%s)" + +msgid "Unknown Joypad Axis" +msgstr "Άγνωστος άξονας χειριστηρίου" + +msgid "Joypad Motion on Axis %d (%s) with Value %.2f" +msgstr "Κίνηση χειριστηρίου στον άξονα %d (%s) με τιμή %.2f" + +msgid "Bottom Action, Sony Cross, Xbox A, Nintendo B" +msgstr "Κάτω πλήκτρο, Sony σταυρός, Xbox A, Nintendo B" + +msgid "Right Action, Sony Circle, Xbox B, Nintendo A" +msgstr "Δεξί πλήκτρο, Sony κύκλος, Xbox B, Nintendo A" + +msgid "Left Action, Sony Square, Xbox X, Nintendo Y" +msgstr "Αριστερό πλήκτρο, Sony τετράγωνο, Xbox X, Nintendo Y" + +msgid "Top Action, Sony Triangle, Xbox Y, Nintendo X" +msgstr "Πάνω πλήκτρο, Sony τρίγωνο, Xbox Y, Nintendo X" + +msgid "Back, Sony Select, Xbox Back, Nintendo -" +msgstr "Πίσω, Sony Select, Xbox Back, Nintendo -" + +msgid "D-pad Up" +msgstr "D-pad πάνω" + +msgid "D-pad Down" +msgstr "D-pad κάτω" + +msgid "D-pad Left" +msgstr "D-pad αριστερά" + +msgid "D-pad Right" +msgstr "D-pad δεξιά" + +msgid "Xbox Share, PS5 Microphone, Nintendo Capture" +msgstr "Xbox Share, PS5 μικρόφωνο, Nintendo Capture" + +msgid "PS4/5 Touchpad" +msgstr "PS4/5 επιφάνεια αφής" + +msgid "touched" +msgstr "ακουμπήθηκε" + +msgid "released" +msgstr "αφέθηκε" + +msgid "Screen %s at (%s) with %s touch points" +msgstr "Η οθόνη %s στη θέση (%s) με %s σημεία αφής" + +msgid "" +"Screen dragged with %s touch points at position (%s) with velocity of (%s)" +msgstr "Η οθόνη σύρθηκε με %s σημεία αφής στη θέση (%s) με ταχύτητα (%s)" + msgid "Select" msgstr "Επιλογή" @@ -523,6 +609,9 @@ msgstr "Από Σήμα:" msgid "Scene does not contain any script." msgstr "Η σκηνή δεν περιέχει δέσμη ενεργειών." +msgid "Select Method" +msgstr "Επιλογή μεθόδου" + msgid "Remove" msgstr "Αφαίρεση" @@ -580,9 +669,6 @@ msgstr "Αποσύνδεση" msgid "Connect a Signal to a Method" msgstr "Σύνδεση Σήματος σε Μέθοδο" -msgid "Edit Connection:" -msgstr "Επεξεργασία Σύνδεσης:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "" "Είστε βέβαιοι πως θέλετε να καταργήσετε όλες τις συνδέσεις από το σήμα «%s»;" @@ -704,30 +790,15 @@ msgstr "Προειδοποίηση:" msgid "Error:" msgstr "Σφάλμα:" -msgid "C++ Error" -msgstr "Σφάλμα C++" - -msgid "C++ Error:" -msgstr "Σφάλμα C++:" - -msgid "Source" -msgstr "Πηγή" - -msgid "C++ Source" -msgstr "Πηγή C++" - -msgid "Source:" -msgstr "Πηγή:" - -msgid "C++ Source:" -msgstr "Πηγή C++:" - msgid "Stack Trace" msgstr "Ίχνος Σωρός" msgid "Copy Error" msgstr "Αντιγραφή σφάλματος" +msgid "C++ Source" +msgstr "Πηγή C++" + msgid "Video RAM" msgstr "Βίντεο RAM" @@ -1535,12 +1606,12 @@ msgstr "Εμφάνιση Όλων των Τοπικών Ρυθμίσεων" msgid "Show Selected Locales Only" msgstr "Εμφάνιση Μόνο Επιλεγμένων Τοπικών Ρυθμίσεων" +msgid "Edit Filters" +msgstr "Επεξεργασία φίλτρων" + msgid "Language:" msgstr "Γλώσσα:" -msgid "Script" -msgstr "Γραφή" - msgid "Clear Output" msgstr "Εκκαθάριση εξόδου" @@ -2026,24 +2097,6 @@ msgid "Manage Templates" msgstr "Διαχείριση Προτύπων" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Αυτό θα ετοιμάσει το έργο σας για προσαρμοσμένες δομήσεις Android " -"εγκαθιστώντας το πρότυπο πηγών στο «res://android/build».\n" -"Μπορείτε μετά να κάνετε αλλαγές και να δομήσετε το δικό σας προσαρμοσμένο " -"APK στην εξαγωγή (προσθέτοντας λειτουργικές μονάδες - modules, αλλάζοντας το " -"AndroidManifest.xml, κλπ.).\n" -"Σημειώστε πως για να γίνουν προσαρμοσμένες δομήσεις αντί της χρήσεις των " -"έτοιμων APK, η επιλογή «Use Custom Build» πρέπει να ενεργοποιηθεί στο " -"πρότυπο εξαγωγής για Android." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2885,6 +2938,9 @@ msgstr "Επιλογή και μετακίνηση σημείων, δημιου msgid "Enable snap and show grid." msgstr "Ενεργοποίηση κουμπώματος και εμφάνιση πλέγματος." +msgid "Blend:" +msgstr "Ανάμειξη:" + msgid "Point" msgstr "Σημείο" @@ -2927,12 +2983,6 @@ msgstr "Διαγραφή σημείων και τριγώνων." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Δημιουργία τριγώνων μίξης αυτόματα (αντι για χειροκινητα)" -msgid "Blend:" -msgstr "Ανάμειξη:" - -msgid "Edit Filters" -msgstr "Επεξεργασία φίλτρων" - msgid "Output node can't be added to the blend tree." msgstr "Ο κόμβος εξόδου δεν μπορεί να προστεθεί στο δέντρο μίξης." @@ -3054,9 +3104,6 @@ msgstr "Αναπαραγωγή της επιλεγμένης κίνησης αν msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Αναπαραγωγή της επιλεγμένης κίνησης ανάποδα από το τέλος. (Shift + A)" -msgid "Stop animation playback. (S)" -msgstr "Πάυση αναπαργωγής κίνησης. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Αναπαραγωγή της επιλεγμένης κίνησης από την αρχή. (Shift + D)" @@ -4083,12 +4130,6 @@ msgstr "Ειδοποιητής Αλλαγής AABB" msgid "Change Particles AABB" msgstr "Αλλαγή AABB σωματιδίων" -msgid "Change Box Shape Extents" -msgstr "Αλλαγή διαστάσεων κυβικού σχήματος" - -msgid "Change Probe Extents" -msgstr "Αλλαγή διαστάσεων αισθητήρα" - msgid "Change Capsule Shape Radius" msgstr "Αλλαγή ακτίνας κάψουλας" @@ -4806,6 +4847,9 @@ msgstr "Τυπική" msgid "Connections to method:" msgstr "Σύνδεση σε μέθοδο:" +msgid "Source" +msgstr "Πηγή" + msgid "Target" msgstr "Στόχος" @@ -5031,12 +5075,6 @@ msgstr "(άδειο)" msgid "Animations:" msgstr "Κινήσεις:" -msgid "Speed:" -msgstr "Ταχύτητα:" - -msgid "Loop" -msgstr "Επανάληψη" - msgid "Animation Frames:" msgstr "Καρέ Κίνησης:" @@ -6037,9 +6075,6 @@ msgstr "Προσθήκη Ενέργειας Εισόδου" msgid "Change Action deadzone" msgstr "Αλλαγή Νεκρής Ζώνης Ενέργειας" -msgid "Add Input Action Event" -msgstr "Προσθήκη συμβάντος εισόδου" - msgid "Erase Input Action" msgstr "Διαγραφή ενέργειας εισόδου" @@ -6064,9 +6099,6 @@ msgstr "Επιλογή ιδιότητας" msgid "Select Virtual Method" msgstr "Επιλογή εικονικής μεθόδου" -msgid "Select Method" -msgstr "Επιλογή μεθόδου" - msgid "Batch Rename" msgstr "Ομαδική Μετονομασία" @@ -6709,10 +6741,6 @@ msgstr "Μη έγκυρο δημόσιο κλειδί (public key) για επέ msgid "Invalid package name:" msgstr "Άκυρο όνομα πακέτου:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" -"Η επιλογή «Use Custom Build» πρέπει να ενεργοποιηθεί για χρήση προσθέτων." - msgid "Signing release %s..." msgstr "Υπογραφή έκδοσης %s..." @@ -6723,13 +6751,6 @@ msgstr "" msgid "Unsupported export format!" msgstr "Μη αποδεκτή μορφή εξαγωγής!" -msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Δοκιμή δόμησης από προσαρμοσμένο πρότυπο δόμησης, αλλά δεν υπάρχουν " -"πληροφορίες έκδοσης. Παρακαλούμε κάντε επανεγκατάσταση από το μενού «Έργο»." - msgid "Building Android Project (gradle)" msgstr "Δόμηση Έργου Android (gradle)" diff --git a/editor/translations/editor/eo.po b/editor/translations/editor/eo.po index fc32c8b9dc..bfdce7d034 100644 --- a/editor/translations/editor/eo.po +++ b/editor/translations/editor/eo.po @@ -15,19 +15,20 @@ # Manuel González <mgoopazo@gmail.com>, 2021. # Wang Tseryui <2251439097@qq.com>, 2021. # Kedr <lava20121991@gmail.com>, 2022. +# Isaac Iverson <isaaciverson1024@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2022-08-21 06:01+0000\n" -"Last-Translator: Kedr <lava20121991@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 00:54+0000\n" +"Last-Translator: Isaac Iverson <isaaciverson1024@gmail.com>\n" "Language-Team: Esperanto <https://hosted.weblate.org/projects/godot-engine/" "godot/eo/>\n" "Language: eo\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.14-dev\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Button" msgstr "Butono" @@ -531,6 +532,9 @@ msgstr "De Signalo:" msgid "Scene does not contain any script." msgstr "La sceno ne enhavas ajnan skriptojn." +msgid "Select Method" +msgstr "Elekti metodon" + msgid "Remove" msgstr "Forigi" @@ -588,9 +592,6 @@ msgstr "Malkonekti" msgid "Connect a Signal to a Method" msgstr "Konektu la signalo al metodo" -msgid "Edit Connection:" -msgstr "Redakti Konekton:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Ĉu vi certe volas forigi ĉiajn konektojn el la \"%s\" signalo?" @@ -705,30 +706,15 @@ msgstr "Averto:" msgid "Error:" msgstr "Eraro:" -msgid "C++ Error" -msgstr "C++ Eraro" - -msgid "C++ Error:" -msgstr "C++ Eraro:" - -msgid "Source" -msgstr "Fonto" - -msgid "C++ Source" -msgstr "C++ Fonto" - -msgid "Source:" -msgstr "Fonto:" - -msgid "C++ Source:" -msgstr "C++ Fonto:" - msgid "Stack Trace" msgstr "Stakspuro" msgid "Copy Error" msgstr "Kopii eraro" +msgid "C++ Source" +msgstr "C++ Fonto" + msgid "Video RAM" msgstr "Videomemoro" @@ -1347,7 +1333,7 @@ msgid "Make Current" msgstr "Farigi aktuale" msgid "Import" -msgstr "Enporti" +msgstr "Importi" msgid "Export" msgstr "Eksporti" @@ -1625,12 +1611,12 @@ msgstr "Vidigi ĉiajn lokaĵarojn" msgid "Show Selected Locales Only" msgstr "Vidigi nur elektitajn lokaĵarojn" +msgid "Edit Filters" +msgstr "Redakti filtrojn" + msgid "Language:" msgstr "Lingvo:" -msgid "Script" -msgstr "Skripto" - msgid "Clear Output" msgstr "Vakigi eligon" @@ -2822,6 +2808,9 @@ msgstr "Elekti kaj movi punktojn, krei punktojn per dekstra musbutono." msgid "Enable snap and show grid." msgstr "Ŝalti kradokapton kaj vidi kradon." +msgid "Blend:" +msgstr "Mikso:" + msgid "Point" msgstr "Punkto" @@ -2864,12 +2853,6 @@ msgstr "Forigi punktojn kaj triangulojn." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Generi miksajn triangulojn aŭtomate (anstataŭ permane)" -msgid "Blend:" -msgstr "Mikso:" - -msgid "Edit Filters" -msgstr "Redakti filtrojn" - msgid "Output node can't be added to the blend tree." msgstr "Ne eblas aldoni eligan nodon al la miksan arbon." @@ -2971,9 +2954,6 @@ msgstr "Ludi elektitan animacion retre el aktuala pozicio. (A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Ludi elektitan animacion retre el fino. (Majuskliga klavo+A)" -msgid "Stop animation playback. (S)" -msgstr "Halti reproduktadon de animacio. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Ludi elektitan animacion el komenco. (Majuskliga klavo+D)" @@ -3911,6 +3891,9 @@ msgstr "Norma" msgid "Connections to method:" msgstr "Konektoj al metodo:" +msgid "Source" +msgstr "Fonto" + msgid "Target" msgstr "Celo" @@ -4125,9 +4108,6 @@ msgstr "Aldoni enigan faron" msgid "Change Action deadzone" msgstr "Ŝanĝi mortzonon de faro" -msgid "Add Input Action Event" -msgstr "Aldoni eventon de eniga faro" - msgid "Erase Input Action" msgstr "Forigi enigan faron" @@ -4155,9 +4135,6 @@ msgstr "Elekti atributon" msgid "Select Virtual Method" msgstr "Elekti virtualan metodon" -msgid "Select Method" -msgstr "Elekti metodon" - msgid "Batch Rename" msgstr "Renomi staple" diff --git a/editor/translations/editor/es.po b/editor/translations/editor/es.po index b09862420d..276c662c25 100644 --- a/editor/translations/editor/es.po +++ b/editor/translations/editor/es.po @@ -92,13 +92,16 @@ # Luis Miguel Soto Sánchez <luismiguelsoto@jerez.es>, 2022. # Victor Stancioiu <victorstancioiu@gmail.com>, 2022, 2023. # Daniel Miranda <danmiranda@gmail.com>, 2023. +# Alan Arrecis <alan.arrecis@gmail.com>, 2023. +# Fernando Sacó <saco.fernando@gmail.com>, 2023. +# Damien Monasterios <monasterio13septiembre@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-20 10:19+0000\n" -"Last-Translator: Daniel Miranda <danmiranda@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 14:12+0000\n" +"Last-Translator: Damien Monasterios <monasterio13septiembre@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -106,14 +109,80 @@ 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.15.1\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "Desactivar" msgid "Physical" msgstr "Física" +msgid "Left Mouse Button" +msgstr "Botón Izquierdo del Mouse" + +msgid "Right Mouse Button" +msgstr "Botón Derecho del Mouse" + +msgid "Middle Mouse Button" +msgstr "Botón Central del Mouse" + +msgid "Mouse Wheel Up" +msgstr "Rueda del Mouse Hacia Arriba" + +msgid "Mouse Wheel Down" +msgstr "Rueda del Mouse Hacia Abajo" + +msgid "Mouse Wheel Left" +msgstr "Rueda del Mouse Hacia Izquierda" + +msgid "Mouse Wheel Right" +msgstr "Rueda del Mouse Hacia Derecha" + +msgid "Mouse Thumb Button 1" +msgstr "Botón 1 de Pulgar del Mouse" + +msgid "Mouse Thumb Button 2" +msgstr "Botón 2 de Pulgar del Mouse" + msgid "Button" msgstr "Botón" +msgid "Double Click" +msgstr "Doble Clic" + +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "Movimiento del ratón en la posición (%s) con velocidad (%s)" + +msgid "Left Stick X-Axis, Joystick 0 X-Axis" +msgstr "Eje X del Stick Izquierdo, Eje X del Joystick 0" + +msgid "Left Stick Y-Axis, Joystick 0 Y-Axis" +msgstr "Eje Y del Stick Izquierdo, Eje Y del Joystick 0" + +msgid "Right Stick X-Axis, Joystick 1 X-Axis" +msgstr "Eje X del Stick Derecho, Eje X del Joystick 1" + +msgid "Right Stick Y-Axis, Joystick 1 Y-Axis" +msgstr "Eje Y del Stick Derecho, Eje Y del Joystick 1" + +msgid "Joystick 2 X-Axis, Left Trigger, Sony L2, Xbox LT" +msgstr "Eje X del Joystick 2, Gatillo Izquierdo, Sony L2, Xbox LT" + +msgid "Joystick 2 Y-Axis, Right Trigger, Sony R2, Xbox RT" +msgstr "Eje Y del Joystick 2, Gatillo Derecho, Sony R2, Xbox RT" + +msgid "Joystick 3 X-Axis" +msgstr "Eje X del Joystick 3" + +msgid "Joystick 3 Y-Axis" +msgstr "Eje Y del Joystick 3" + +msgid "Joystick 4 X-Axis" +msgstr "Eje X del Joystick" + +msgid "Unknown Joypad Axis" +msgstr "Eje de Joypad Desconocido" + msgid "Select" msgstr "Seleccionar" @@ -189,6 +258,12 @@ msgstr "Argumentos inválidos para construir '%s'" msgid "On call to '%s':" msgstr "En llamada a '%s':" +msgid "Built-in script" +msgstr "Script Integrado" + +msgid "Built-in" +msgstr "Integrado" + msgid "B" msgstr "B" @@ -223,6 +298,9 @@ msgstr "Ya existe una acción con el nombre '%s'." msgid "Add Event" msgstr "Añadir Evento" +msgid "Cannot Remove Action" +msgstr "No se Puede Eliminar la Acción" + msgid "Add" msgstr "Añadir" @@ -256,6 +334,9 @@ msgstr "Mover Puntos Bezier" msgid "Focus" msgstr "Foco" +msgid "Animation Change %s" +msgstr "Cambio de Animación %s" + msgid "Change Animation Length" msgstr "Cambiar Duración de la Animación" @@ -338,10 +419,10 @@ msgid "In-Handle:" msgstr "In-Handle:" msgid "Out-Handle:" -msgstr "Out-Handle:" +msgstr "Mango de Salida:" msgid "Stream:" -msgstr "Stream:" +msgstr "Flujo:" msgid "Start (s):" msgstr "Inicio (s):" @@ -478,7 +559,7 @@ msgid "Methods" msgstr "Métodos" msgid "Bezier" -msgstr "Bezier" +msgstr "Bézier" msgid "Audio" msgstr "Audio" @@ -508,7 +589,7 @@ msgid "Group tracks by node or display them as plain list." msgstr "Agrupar las pistas por nodo o mostrarlas como una lista plana." msgid "Snap:" -msgstr "Snap:" +msgstr "Ajuste o Conector:" msgid "Animation step value." msgstr "Valor de step de animación." @@ -609,6 +690,16 @@ msgstr "Número de Línea:" msgid "%d replaced." msgstr "%d reemplazado." +msgid "%d match" +msgid_plural "%d matches" +msgstr[0] "%d coincidencia" +msgstr[1] "%d coincidencias" + +msgid "%d of %d match" +msgid_plural "%d of %d matches" +msgstr[0] "%d de %d coincidencia" +msgstr[1] "%d de %d coincidencias" + msgid "Match Case" msgstr "Coincidir Mayúsculas/Minúsculas" @@ -670,6 +761,9 @@ msgstr "Desde la Señal:" msgid "Scene does not contain any script." msgstr "La escena no contiene ningún script." +msgid "Select Method" +msgstr "Seleccionar Método" + msgid "Remove" msgstr "Eliminar" @@ -679,6 +773,9 @@ msgstr "Añadir Argumento Extra de Llamada:" msgid "Extra Call Arguments:" msgstr "Argumentos extras de llamada:" +msgid "Unbind Signal Arguments:" +msgstr "Desvincular Argumentos de Señal:" + msgid "Receiver Method:" msgstr "Método Receptor:" @@ -712,6 +809,9 @@ msgstr "Conectar" msgid "Signal:" msgstr "Señal:" +msgid "No description." +msgstr "Sin descripción." + msgid "Connect '%s' to '%s'" msgstr "Conectar «%s» a «%s»" @@ -730,9 +830,6 @@ msgstr "Desconectar" msgid "Connect a Signal to a Method" msgstr "Conectar una Señal a un Método" -msgid "Edit Connection:" -msgstr "Editar Conexión:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "" "¿Estás seguro/a que quieres eliminar todas las conexiones de la señal \"%s\"?" @@ -879,26 +976,23 @@ msgstr "Advertencia:" msgid "Error:" msgstr "Error:" -msgid "C++ Error" -msgstr "Error de C++" - -msgid "C++ Error:" -msgstr "Error de C++:" +msgid "%s Error" +msgstr "Error %s" -msgid "Source" -msgstr "Fuente" +msgid "Stack Trace" +msgstr "Rastreo de Pila" -msgid "C++ Source" -msgstr "Fuente C++" +msgid "Stack Trace:" +msgstr "Rastreo de Pila:" -msgid "Source:" -msgstr "Fuente:" +msgid "Debug session started." +msgstr "Sesión de depuración iniciada." -msgid "C++ Source:" -msgstr "Fuente C++:" +msgid "Debug session closed." +msgstr "Sesión de depuración cerrada." -msgid "Stack Trace" -msgstr "Rastreo de Pila" +msgid "Delete All Breakpoints in:" +msgstr "Eliminar Todos los Puntos de Interrupción en:" msgid "Copy Error" msgstr "Copiar Error" @@ -906,6 +1000,9 @@ msgstr "Copiar Error" msgid "Open C++ Source on GitHub" msgstr "Código Abierto C++ en GitHub" +msgid "C++ Source" +msgstr "Fuente C++" + msgid "Video RAM" msgstr "Memoria de Vídeo" @@ -1385,6 +1482,12 @@ msgstr "Navegación" msgid "OpenGL" msgstr "OpenGL" +msgid "Navigation, both 2D and 3D." +msgstr "Navigation, tanto en 2D como en 3D." + +msgid "File saving failed." +msgstr "Error al guardar el archivo." + msgid "Nodes and Classes:" msgstr "Clases y Nodos:" @@ -1401,12 +1504,21 @@ msgstr "Nuevo" msgid "Save" msgstr "Guardar" +msgid "Profile:" +msgstr "Perfil:" + msgid "Reset to Defaults" msgstr "Restablecer Valores Predeterminados" +msgid "Please Confirm:" +msgstr "Confirma, por favor:" + msgid "Export Profile" msgstr "Exportar Perfil" +msgid "Edit Build Configuration Profile" +msgstr "Editar Perfil de Configuración de Compilación" + msgid "Paste Params" msgstr "Pegar Parámetros" @@ -1713,6 +1825,15 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "(Re)Importación de Assets" +msgid "Import resources of type: %s" +msgstr "Importar recursos del tipo: %s" + +msgid "No return value." +msgstr "No retorna ningún valor." + +msgid "Error codes returned:" +msgstr "Códigos de error devueltos:" + msgid "Top" msgstr "Superior" @@ -1740,8 +1861,14 @@ msgstr "anula %s:" msgid "default:" msgstr "predeterminado:" +msgid "Constructors" +msgstr "Constructores" + +msgid "Operators" +msgstr "Operadores" + msgid "Theme Properties" -msgstr "Propiedades del Theme" +msgstr "Propiedades del Tema" msgid "Colors" msgstr "Colores" @@ -1774,9 +1901,15 @@ msgstr "" "Actualmente no existe descripción para esta propiedad. Por favor ¡ayúdanos " "[color=$color][url=$url]contribuyendo una[/url][/color]!" +msgid "Constructor Descriptions" +msgstr "Descripciones de Constructor" + msgid "Method Descriptions" msgstr "Descripciones de Métodos" +msgid "Operator Descriptions" +msgstr "Descripciones de Operador" + msgid "%d match." msgstr "%d coincidencia." @@ -1850,24 +1983,51 @@ msgstr "Subir" msgid "Move Down" msgstr "Bajar" +msgid "Clear Array" +msgstr "Limpiar Array" + +msgid "Resize Array..." +msgstr "Redimensionar Array..." + +msgid "Add Element" +msgstr "Añadir Elemento" + msgid "Resize Array" msgstr "Redimensionar Array" +msgid "New Size:" +msgstr "Nuevo Tamaño:" + +msgid "Element %s" +msgstr "Elemento %s" + +msgid "Add Metadata" +msgstr "Añadir Metadatos" + msgid "Set %s" msgstr "Establecer %s" msgid "Set Multiple:" msgstr "Asignar Múltiples:" +msgid "Remove metadata %s" +msgstr "Eliminar Metadatos %s" + msgid "Pinned %s" msgstr "Fijado %s" msgid "Unpinned %s" msgstr "Desfijado %s" +msgid "Add metadata %s" +msgstr "Añadir Metadatos %s" + msgid "Copy Property Path" msgstr "Copiar Ruta de Propiedad" +msgid "Select existing layout:" +msgstr "Selecciona un diseño existente:" + msgid "Changed Locale Filter Mode" msgstr "Cambiar Modo de Filtro Local" @@ -1877,11 +2037,17 @@ msgstr "Mostrar Todos los Idiomas" msgid "Show Selected Locales Only" msgstr "Mostrar Sólo las Localizaciones Seleccionadas" +msgid "Edit Filters" +msgstr "Editar Filtros" + msgid "Language:" msgstr "Lenguaje:" -msgid "Script" -msgstr "Script" +msgid "Country:" +msgstr "País:" + +msgid "Language" +msgstr "Idioma" msgid "Variant" msgstr "Variante" @@ -2020,12 +2186,18 @@ msgstr "No hay escena definida para ejecutar." msgid "Save scene before running..." msgstr "Guarda escena antes de ejecutar..." +msgid "Reload the played scene." +msgstr "Recargar escena reproducida." + msgid "Play the project." msgstr "Reproducir el proyecto." msgid "Play the edited scene." msgstr "Reproducir la escena editada." +msgid "Play a custom scene." +msgstr "Reproducir escena personalizada." + msgid "Open Base Scene" msgstr "Abrir Escena Base" @@ -2080,12 +2252,18 @@ msgstr "No se puede deshacer mientras se pulsan los botones del mouse." msgid "Nothing to undo." msgstr "No hay nada que deshacer." +msgid "Remote Undo: %s" +msgstr "Deshacer Remoto: %s" + msgid "Can't redo while mouse buttons are pressed." msgstr "No se puede rehacer mientras los botones del mouse están presionados." msgid "Nothing to redo." msgstr "No hay nada que rehacer." +msgid "Remote Redo: %s" +msgstr "Rehacer Remoto: %s" + msgid "Can't reload a scene that was never saved." msgstr "No se puede volver a cargar una escena que nunca se guardó." @@ -2319,6 +2497,9 @@ msgstr "Proyecto" msgid "Project Settings..." msgstr "Configuración del Proyecto..." +msgid "Project Settings" +msgstr "Configuración del Proyecto" + msgid "Version Control" msgstr "Control de Versiones" @@ -2349,6 +2530,9 @@ msgstr "Editor" msgid "Editor Settings..." msgstr "Configuración del Editor..." +msgid "Command Palette..." +msgstr "Paleta de Comandos..." + msgid "Editor Layout" msgstr "Layout del Editor" @@ -2378,6 +2562,9 @@ msgstr "Administrar Características del Editor..." msgid "Manage Export Templates..." msgstr "Administrar Plantillas de Exportación..." +msgid "Configure FBX Importer..." +msgstr "Configurar Importador FBX..." + msgid "Help" msgstr "Ayuda" @@ -2405,9 +2592,48 @@ msgstr "Sobre Godot" msgid "Support Godot Development" msgstr "Apoyar el desarrollo de Godot" +msgid "Run the project's default scene." +msgstr "Ejecutar la escena predeterminada del proyecto." + msgid "Run Project" msgstr "Reproducir Proyecto" +msgid "Pause the running project's execution for debugging." +msgstr "Pausar la ejecución del proyecto en ejecución para depuración." + +msgid "Pause Running Project" +msgstr "Pausar Proyecto en Ejecución" + +msgid "Stop the currently running project." +msgstr "Detener el proyecto actualmente en ejecución." + +msgid "Stop Running Project" +msgstr "Detener Proyecto en Ejecución" + +msgid "Run the currently edited scene." +msgstr "Ejecutar la escena actualmente editada." + +msgid "Run Current Scene" +msgstr "Ejecutar Escena Actual" + +msgid "Run a specific scene." +msgstr "Ejecutar una escena específica." + +msgid "Run Specific Scene" +msgstr "Ejecutar Escena Específica" + +msgid "" +"Enable Movie Maker mode.\n" +"The project will run at stable FPS and the visual and audio output will be " +"recorded to a video file." +msgstr "" +"Habilitar modo de Fabricante de Películas.\n" +"El proyecto se ejecutará a FPS estables y la salida visual y de audio se " +"grabará en un archivo de video." + +msgid "Choose a renderer." +msgstr "Elegir un renderizador." + msgid "Compatibility" msgstr "Compatibilidad" @@ -2447,24 +2673,6 @@ msgid "Install from file" msgstr "Instalar desde archivo" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Esto configurará tu proyecto para las compilaciones personalizadas de " -"Android instalando la plantilla base en \"res://android/build\".\n" -"Luego podrás aplicar las modificaciones y compilar tu propio APK " -"personalizado al exportarlo (agregando módulos, cambiando el AndroidManifest." -"xml, etc.).\n" -"Ten en cuenta que para realizar compilaciones personalizadas en lugar de " -"usar APKs predefinidos, la opción \"Usar Compilación Personalizada\" debería " -"estar habilitada en la configuración de exportación de Android." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2674,6 +2882,9 @@ msgstr "Escribe tu lógica en el método _run()." msgid "There is an edited scene already." msgstr "Ya hay una escena editada." +msgid "Edit Built-in Action" +msgstr "Editar Acción Integrada" + msgid "Common" msgstr "Más información" @@ -2692,8 +2903,21 @@ msgstr "Atajos" msgid "Binding" msgstr "Vinculación" -msgid "%s Error" -msgstr "Error %s" +msgid "" +"Hold %s to round to integers.\n" +"Hold Shift for more precise changes." +msgstr "" +"Mantén pulsado %s para redondear a enteros.\n" +"Mantén pulsado Shift para cambios más precisos." + +msgid "No notifications." +msgstr "No hay notificaciones." + +msgid "Show notifications." +msgstr "Mostrar notificaciones." + +msgid "Silence the notifications." +msgstr "Silenciar notificaciones." msgid "All Devices" msgstr "Todos los Dispositivos" @@ -2741,6 +2965,9 @@ msgstr "Fallo en la exportación de los archivos del proyecto." msgid "Can't open file to read from path \"%s\"." msgstr "No se puede abrir el archivo a leer de la ruta \"%s\"." +msgid "Can't open encrypted file to write." +msgstr "No se puede abrir el archivo encriptado para escribir." + msgid "Save ZIP" msgstr "Guardar como ZIP" @@ -3102,6 +3329,9 @@ msgstr "Administrar Plantillas de Exportación" msgid "Export With Debug" msgstr "Exportar Con Depuración" +msgid "Path to FBX2glTF executable is invalid." +msgstr "La ruta al ejecutable FBX2glTF es inválida." + msgid "Browse" msgstr "Examinar" @@ -3131,6 +3361,12 @@ msgstr "Error al mover:" msgid "Error duplicating:" msgstr "Error al duplicar:" +msgid "Failed to save resource at %s: %s" +msgstr "Error al guardar recurso en %s: %s" + +msgid "Failed to load resource at %s: %s" +msgstr "Error al cargar el recurso en %s: %s" + msgid "Unable to update dependencies:" msgstr "No se han podido actualizar las dependencias:" @@ -3289,6 +3525,15 @@ msgstr "Reemplazar en Archivos" msgid "Searching..." msgstr "Buscando..." +msgid "%d match in %d file" +msgstr "%d coincidencia en el archivo %d" + +msgid "%d matches in %d file" +msgstr "%d coincidencias en el archivo %d" + +msgid "%d matches in %d files" +msgstr "%d coincidencias en los archivos %d" + msgid "Add to Group" msgstr "Añadir al Grupo" @@ -3328,9 +3573,27 @@ msgstr "Administrar Grupos" msgid "Reimport" msgstr "Reimportar" +msgid "Enable looping." +msgstr "Activar bucle." + msgid "Offset:" msgstr "Offset:" +msgid "Loop:" +msgstr "Bucle:" + +msgid "Beat Count:" +msgstr "Recuento de Tiempos:" + +msgid "Music Playback:" +msgstr "Reproducción de Música:" + +msgid "Pre-render Configurations" +msgstr "Configuraciones de Prerenderizado" + +msgid "Configuration:" +msgstr "Configuración:" + msgid "Importing Scene..." msgstr "Importando Escena..." @@ -3361,18 +3624,46 @@ msgstr "" "compresión de la textura rojo-verde para reducir el uso de memoria (el canal " "azul se descarta)." +msgid "2D/3D (Auto-Detect)" +msgstr "2D/3D (Detección Automática)" + msgid "2D" msgstr "2D" msgid "3D" msgstr "3D" +msgid "Error opening scene" +msgstr "Error al abrir la escena" + +msgid "Select folder to extract material resources" +msgstr "Selecciona una carpeta para extraer los recursos de material" + +msgid "" +"Material has no name nor any other way to identify on re-import.\n" +"Please name it or ensure it is exported with an unique ID." +msgstr "" +"El material no tiene nombre ni ninguna otra forma de identificarse en la " +"reimportación.\n" +"Por favor, dale un nombre o asegúrese de exportarlo con un ID único." + +msgid "Set paths to save animations as resource files on Reimport" +msgstr "" +"Establecer rutas para guardar animaciones como archivos de recursos al " +"Reimportar" + +msgid "Actions..." +msgstr "Acciones..." + msgid "Meshes" -msgstr "Meshes" +msgstr "Mallas" msgid "Materials" msgstr "Materiales" +msgid "Save Extension:" +msgstr "Guardar Extensión:" + msgid "Select Importer" msgstr "Seleccionar Importador" @@ -3407,7 +3698,10 @@ msgid "Import As:" msgstr "Importar como:" msgid "Preset" -msgstr "Preajuste" +msgstr "Preconfigurado" + +msgid "Advanced..." +msgstr "Avanzado..." msgid "Save Scenes, Re-Import, and Restart" msgstr "Guardar Escenas, Reimportar y Reiniciar" @@ -3428,6 +3722,9 @@ msgstr "" "Selecciona un archivo de recursos en el sistema de archivos o en el " "inspector para ajustar la configuración de importación." +msgid "Joypad Axes" +msgstr "Ejes del Joypad" + msgid "Device:" msgstr "Dispositivo:" @@ -3530,9 +3827,15 @@ msgstr "Remapeos por idioma:" msgid "Locale" msgstr "Idioma" +msgid "Set %s on %d nodes" +msgstr "Establecer %s en %d nodos" + msgid "Select a single node to edit its signals and groups." msgstr "Selecciona un único nodo para editar sus señales y grupos." +msgid "Subfolder name is not a valid folder name." +msgstr "El nombre de la subcarpeta no es un nombre de carpeta válido." + msgid "Edit a Plugin" msgstr "Editar Plugin" @@ -3638,6 +3941,12 @@ msgstr "Seleccionar y mover puntos, crear puntos con clic derecho." msgid "Enable snap and show grid." msgstr "Activar snap y mostrar cuadrícula." +msgid "Sync:" +msgstr "Sincronizar:" + +msgid "Blend:" +msgstr "Mezcla:" + msgid "Point" msgstr "Punto" @@ -3681,15 +3990,9 @@ msgid "Generate blend triangles automatically (instead of manually)" msgstr "" "Generar triángulos combinados automáticamente (en lugar de manualmente)" -msgid "Blend:" -msgstr "Mezcla:" - msgid "Parameter Changed:" msgstr "Parámetro Modificado:" -msgid "Edit Filters" -msgstr "Editar Filtros" - msgid "Output node can't be added to the blend tree." msgstr "El nodo de salida no puede ser agregado al blend tree." @@ -3763,9 +4066,21 @@ msgstr "Agregar Nodo..." msgid "Enable Filtering" msgstr "Habilitar Filtrado" +msgid "Library Name:" +msgstr "Nombre de la Librería:" + +msgid "Animation name can't be empty." +msgstr "El nombre de la animación no puede estar vacío." + msgid "Load Animation" msgstr "Cargar Animación" +msgid "Invalid AnimationLibrary file." +msgstr "Archivo AnimationLibrary inválido." + +msgid "Invalid Animation file." +msgstr "Archivo Animation inválido." + msgid "Animation Name:" msgstr "Nombre de Animación:" @@ -3775,6 +4090,21 @@ msgstr "Animación Pegada" msgid "Open in Inspector" msgstr "Abrir en el Inspector" +msgid "Paste Animation to Library from clipboard" +msgstr "Pegar Animación a la Biblioteca desde el portapapeles" + +msgid "Save animation library to resource on disk" +msgstr "Guardar biblioteca de animaciones como recurso en el disco" + +msgid "Copy animation to clipboard" +msgstr "Copiar animación al portapapeles" + +msgid "Save animation to resource on disk" +msgstr "Guardar animación como recurso en disco" + +msgid "Edit Animation Libraries" +msgstr "Editar Librerías de Animación" + msgid "Storage" msgstr "Almacenamiento" @@ -3808,6 +4138,9 @@ msgstr "Mezclar el Siguiente Cambio" msgid "Change Blend Time" msgstr "Cambiar Tiempo de Mezcla" +msgid "Duplicated Animation Name:" +msgstr "Nombre de Animación Duplicado:" + msgid "Play selected animation backwards from current pos. (A)" msgstr "" "Reproducir hacia atrás la animación seleccionada desde la posición actual (A)" @@ -3816,9 +4149,6 @@ msgid "Play selected animation backwards from end. (Shift+A)" msgstr "" "Reproducir hacia atrás la animación seleccionada desde el final. (Shift + A)" -msgid "Stop animation playback. (S)" -msgstr "Detener la reproducción de la animación. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Reproducir animación seleccionada desde el principio. (Shift + D)" @@ -3958,7 +4288,7 @@ msgid "Root" msgstr "Raíz" msgid "AnimationTree" -msgstr "AnimationTree" +msgstr "Árbol de Animación" msgid "Contents:" msgstr "Contenido:" @@ -4029,6 +4359,9 @@ msgstr "Fallo en la comprobación del hash SHA-256" msgid "Asset Download Error:" msgstr "Error de Descarga de Assets:" +msgid "Ready to install!" +msgstr "¡Listo para instalar!" + msgid "Downloading (%s / %s)..." msgstr "Descargando (%s / %s)..." @@ -4126,6 +4459,9 @@ msgstr "Archivo ZIP de assets" msgid "Audio Preview Play/Pause" msgstr "Previsualización de Audio Reproducir/Pausar" +msgid "Bone Picker:" +msgstr "Selector de Hueso:" + msgid "Preview" msgstr "Vista Previa" @@ -4213,8 +4549,14 @@ msgstr "Agrupado" msgid "Add Node Here" msgstr "Añadir Nodo Aquí" +msgid "Moving:" +msgstr "Moviendo:" + +msgid "Rotating:" +msgstr "Rotando:" + msgid "Scaling:" -msgstr "Escala:" +msgstr "Escalando:" msgid "" "Project Camera Override\n" @@ -4718,6 +5060,9 @@ msgstr "" "Cuando se utiliza de forma remota en un dispositivo, esto es más eficiente " "cuando la opción de sistema de archivos en red está activada." +msgid " - Variation" +msgstr " - Variación" + msgid "Convert to CPUParticles2D" msgstr "Convertir a CPUParticles2D" @@ -4855,8 +5200,20 @@ msgstr "No hay mallas para depurar." msgid "Mesh has no UV in layer %d." msgstr "La malla no tiene UV en la capa %d." +msgid "MeshInstance3D lacks a Mesh." +msgstr "MeshInstance3D carece de Malla." + +msgid "Mesh has no surface to create outlines from." +msgstr "La malla no tiene superficie para crear contornos." + +msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES." +msgstr "El tipo de primitiva de malla no es PRIMITIVE_TRIANGLES." + +msgid "Could not create outline." +msgstr "No se pudo crear el contorno." + msgid "Create Outline" -msgstr "Crear Outline" +msgstr "Crear Contorno" msgid "Mesh" msgstr "Malla" @@ -5064,12 +5421,6 @@ msgstr "Cambiar Notificador AABB" msgid "Change Particles AABB" msgstr "Cambiar partículas AABB" -msgid "Change Box Shape Extents" -msgstr "Cambiar Extensión de la Forma de la Caja" - -msgid "Change Probe Extents" -msgstr "Cambiar Alcance de la Sonda" - msgid "Change Capsule Shape Radius" msgstr "Cambiar Radio de la Forma de la Cápsula" @@ -5148,6 +5499,36 @@ msgstr "Insertar claves está desactivado (no se insertaron claves)." msgid "Animation Key Inserted." msgstr "Clave de animación insertada." +msgid "X: %s\n" +msgstr "X: %s\n" + +msgid "Y: %s\n" +msgstr "Y: %s\n" + +msgid "Z: %s\n" +msgstr "Z: %s\n" + +msgid "Size: %s (%.1fMP)\n" +msgstr "Tamaño: %s (%.1fMP)\n" + +msgid "Objects: %d\n" +msgstr "Objetos: %d\n" + +msgid "Primitive Indices: %d\n" +msgstr "Índices Primitivos: %d\n" + +msgid "Draw Calls: %d" +msgstr "Llamadas de Dibujado: %d" + +msgid "CPU Time: %s ms" +msgstr "Tiempo de CPU: %s ms" + +msgid "GPU Time: %s ms" +msgstr "Tiempo de GPU: %s ms" + +msgid "FPS: %d" +msgstr "FPS: %d" + msgid "Top View." msgstr "Vista Superior." @@ -5893,6 +6274,9 @@ msgstr "Estándar" msgid "Connections to method:" msgstr "Conexiones al método:" +msgid "Source" +msgstr "Fuente" + msgid "Target" msgstr "Objetivo" @@ -6056,6 +6440,9 @@ msgstr "Crear LightOccluder2D" msgid "LightOccluder2D Preview" msgstr "Vista Previa de LightOccluder2D" +msgid "Can't convert a Sprite2D from a foreign scene." +msgstr "No se puede convertir un Sprite2D de una escena externa." + msgid "Can't convert a sprite using animation frames to mesh." msgstr "" "No se puede convertir en malla un sprite usando fotogramas de animación." @@ -6138,15 +6525,15 @@ msgstr "(vacío)" msgid "Animations:" msgstr "Animaciones:" -msgid "Speed:" -msgstr "Velocidad:" - -msgid "Loop" -msgstr "Bucle" +msgid "Delete Animation" +msgstr "Eliminar Animación" msgid "Animation Frames:" msgstr "Fotogramas de Animación:" +msgid "Frame Duration:" +msgstr "Duración del Fotograma:" + msgid "Zoom Reset" msgstr "Resetear Zoom" @@ -6195,21 +6582,46 @@ msgstr "Paso:" msgid "Styleboxes" msgstr "Cajas de estilo" +msgid "1 color" +msgid_plural "{num} colors" +msgstr[0] "1 color" +msgstr[1] "{num} colores" + msgid "No colors found." msgstr "No se encontraron colores." +msgid "1 constant" +msgid_plural "{num} constants" +msgstr[0] "1 constante" +msgstr[1] "{num} constantes" + msgid "No constants found." msgstr "No se encontraron constants." msgid "No fonts found." msgstr "No se han encontrado fonts." +msgid "1 font size" +msgid_plural "{num} font sizes" +msgstr[0] "1 tamaño de fuente" +msgstr[1] "{num} tamaño de fuentes" + msgid "No icons found." msgstr "No se han encontrado icons." +msgid "1 stylebox" +msgid_plural "{num} styleboxes" +msgstr[0] "1 caja de estilo" +msgstr[1] "{num} cajas de estilo" + msgid "No styleboxes found." msgstr "No se encontraron styleboxes." +msgid "{num} currently selected" +msgid_plural "{num} currently selected" +msgstr[0] "{num} seleccionado actualmente" +msgstr[1] "{num} seleccionados actualmente" + msgid "Nothing was selected for the import." msgstr "No se ha seleccionado nada para la importación." @@ -6492,6 +6904,9 @@ msgstr "Establecer tipo de base de variación" msgid "Set Base Type" msgstr "Establer tipo de base" +msgid "Add a type from a list of available types or create a new one." +msgstr "Añade un tipo de una lista de tipos disponibles o crea uno nuevo." + msgid "Show Default" msgstr "Mostrar por Defecto" @@ -6634,15 +7049,36 @@ msgstr "Voltear Horizontalmente" msgid "Flip Vertically" msgstr "Voltear Verticalmente" +msgid "Painting:" +msgstr "Pintando:" + +msgid "Place Random Tile" +msgstr "Colocar Tile Aleatorio" + +msgid "Scattering:" +msgstr "Dispersión:" + msgid "Tiles" msgstr "Tiles" +msgid "Global actions:" +msgstr "Acciones Globales:" + msgid "Atlas" msgstr "Atlas" +msgid "Paint Properties:" +msgstr "Propiedades de Pintura:" + msgid "Yes" msgstr "Sí" +msgid "Scenes collection properties:" +msgstr "Propiedades de la Colección de Escenas:" + +msgid "Tile properties:" +msgstr "Propiedades del Tile:" + msgid "TileSet" msgstr "TileSet" @@ -6679,9 +7115,15 @@ msgstr "¿Quieres eliminar la rama %s?" msgid "Do you want to remove the %s remote?" msgstr "¿Quieres eliminar el %s remoto?" +msgid "Create VCS metadata files for:" +msgstr "Crear archivos de metadatos VCS para:" + msgid "Apply" msgstr "Aplicar" +msgid "Connect to VCS" +msgstr "Conectar a VCS" + msgid "Remote Login" msgstr "Inicio de Sesión Remoto" @@ -6829,6 +7271,9 @@ msgstr "Booleano" msgid "Sampler" msgstr "Sampler" +msgid "[default]" +msgstr "[default]" + msgid "Add Input Port" msgstr "Añadir Puerto de Entrada" @@ -6841,6 +7286,9 @@ msgstr "Eliminar Puerto de Entrada" msgid "Remove Output Port" msgstr "Eliminar Puerto de Salida" +msgid "Set Parameter Name" +msgstr "Establecer Nombre de Parámetro" + msgid "Set Input Default Port" msgstr "Establecer Puerto Predeterminado de Entrada" @@ -6853,6 +7301,12 @@ msgstr "Nodo(s) Movido(s)" msgid "Visual Shader Input Type Changed" msgstr "Cambiar Tipo de Entrada del Visual Shader" +msgid "ParameterRef Name Changed" +msgstr "Nombre de ParameterRef Cambiado" + +msgid "Varying Name Changed" +msgstr "Cambio de Nombre" + msgid "Vertex" msgstr "Vértice" @@ -7444,6 +7898,9 @@ msgstr "Ruta de Instalación del Proyecto:" msgid "Renderer:" msgstr "Renderizador:" +msgid "Version Control Metadata:" +msgstr "Metadatos de Control de Versión:" + msgid "Missing Project" msgstr "Proyecto Faltante" @@ -7463,6 +7920,65 @@ msgid "Can't open project at '%s'." msgstr "No se puede abrir el proyecto en '%s'." msgid "" +"The selected project \"%s\" does not specify its supported Godot version in " +"its configuration file (\"project.godot\").\n" +"\n" +"Project path: %s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" +"El proyecto seleccionado \"%s\" no especifica la versión de Godot soportada " +"en su archivo de configuración (\"project.godot\").\n" +"\n" +"Ruta del proyecto: %s\n" +"\n" +"Si procedes a abrirlo, se convertirá al formato de fichero de configuración " +"actual de Godot.\n" +"\n" +"Advertencia: Ya no podrás abrir el proyecto con versiones anteriores del " +"motor." + +msgid "" +"The selected project \"%s\" was generated by an older engine version, and " +"needs to be converted for this version.\n" +"\n" +"Project path: %s\n" +"\n" +"Do you want to convert it?\n" +"\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" +"El proyecto seleccionado \"%s\" fue generado en una versión anterior del " +"motor, y necesita ser convertido a esta versión.\n" +"\n" +"Ruta del proyecto: %s\n" +"\n" +"¿Quieres convertirlo?\n" +"\n" +"Advertencia: Ya no podrás abrir el proyecto con versiones anteriores del " +"motor." + +msgid "" +"Can't open project \"%s\" at the following path:\n" +"\n" +"%s\n" +"\n" +"The project settings were created by a newer engine version, whose settings " +"are not compatible with this version." +msgstr "" +"No se puede abrir el proyecto \"%s\" en la siguiente ruta:\n" +"\n" +"%s\n" +"\n" +"La configuración del proyecto fue creada por una versión más reciente del " +"motor, cuya configuración no es compatible con esta versión." + +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." @@ -7582,9 +8098,6 @@ msgstr "Añadir acción de entrada" msgid "Change Action deadzone" msgstr "Cambiar zona muerta de la acción" -msgid "Add Input Action Event" -msgstr "Añadir Evento de Acción de Entrada" - msgid "Erase Input Action" msgstr "Eliminar Acción de Entrada" @@ -7594,6 +8107,9 @@ msgstr "Renombrar evento de acción de entrada" msgid "Project Settings (project.godot)" msgstr "Configuración del Proyecto (project.godot)" +msgid "Select a Setting or Type its Name" +msgstr "Selecciona un Ajuste o Escribe su Nombre" + msgid "Input Map" msgstr "Mapa de Entrada" @@ -7612,9 +8128,6 @@ msgstr "Seleccionar Propiedad" msgid "Select Virtual Method" msgstr "Seleccionar Método Virtual" -msgid "Select Method" -msgstr "Seleccionar Método" - msgid "Batch Rename" msgstr "Renombrar por lote" @@ -7693,12 +8206,18 @@ msgstr "En el carácter %s" msgid "Reparent Node" msgstr "Reemparentar nodo" +msgid "Select new parent:" +msgstr "Seleccionar nuevo padre:" + msgid "Keep Global Transform" msgstr "Mantener transformación global" msgid "Reparent" msgstr "Reemparentar" +msgid "Root Type:" +msgstr "Tipo de Raíz:" + msgid "2D Scene" msgstr "Escena 2D" @@ -7708,6 +8227,12 @@ msgstr "Escena 3D" msgid "User Interface" msgstr "Interfaz de usuario" +msgid "Scene Name:" +msgstr "Nombre de Escena:" + +msgid "Root Name:" +msgstr "Nombre de Raíz:" + msgid "Error loading scene from %s" msgstr "Error al cargar escena desde %s" @@ -7960,6 +8485,19 @@ msgstr "" "el prefijo '%s' en una ruta de nodo.\n" "Haz clic para desactivar esto." +msgid "Node has one connection." +msgid_plural "Node has {num} connections." +msgstr[0] "El nodo tiene una conexión." +msgstr[1] "El nodo tiene {num} conexiones." + +msgid "Node is in this group:" +msgid_plural "Node is in the following groups:" +msgstr[0] "El nodo está en este grupo:" +msgstr[1] "El nodo está en los siguientes grupos:" + +msgid "Click to show signals dock." +msgstr "Haz clic para mostrar el dock de señales." + msgid "Open Script:" msgstr "Abrir Script:" @@ -8029,6 +8567,12 @@ msgstr "Abrir Script / Seleccionar Ubicación" msgid "Open Script" msgstr "Abrir Script" +msgid "Inherit %s" +msgstr "Heredar %s" + +msgid "Inherit" +msgstr "Heredar" + msgid "File exists, it will be reused." msgstr "El archivo ya existe, será reutilizado." @@ -8091,6 +8635,12 @@ msgstr "Ruta base incorrecta." msgid "Wrong extension chosen." msgstr "Se ha elegido una extensión incorrecta." +msgid "Mode:" +msgstr "Modo:" + +msgid "Global shader parameter '%s' already exists'" +msgstr "El parámetro de shader global '%s' ya existe" + msgid "Change Cylinder Radius" msgstr "Cambiar Radio de Cylinder" @@ -8258,6 +8808,9 @@ msgstr "Tamaño" msgid "Network Profiler" msgstr "Profiler de Red" +msgid "Delete Property?" +msgstr "¿Eliminar Propiedad?" + msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" "Se debe crear o establecer un recurso NavigationMesh para que este nodo " @@ -8308,6 +8861,9 @@ msgstr "Analizando geometría..." msgid "Done!" msgstr "¡Hecho!" +msgid "Error loading %s: %s." +msgstr "Error al cargar %s: %s." + msgid "Pose" msgstr "Pose" @@ -8421,24 +8977,9 @@ msgstr "Clave pública inválida para la expansión de APK." msgid "Invalid package name:" msgstr "Nombre de paquete inválido:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" -"\"Usar Compilación Personalizada\" debe estar activado para usar los plugins." - msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "\"Passthrough\" solo es válido cuando el \"Modo XR\" es \"OpenXR\"." -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"\"Exportar AAB\" solo es válido cuando \"Usar Compilación Personalizada\" " -"está activado." - -msgid "" -"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "" -"\"Min SDK\" solo puede sobrescribirse cuando está activada la opción \"Usar " -"Compilación Personalizada\"." - msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" "\"Min SDK\" debería ser un entero válido, pero obtuvo \"%s\" que es inválido." @@ -8451,12 +8992,6 @@ msgstr "" "librería de Godot." msgid "" -"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "" -"\"SDK de Destino\" solo se puede sobrescribir cuando \"Usar Compilación " -"Personalizada\" está activado." - -msgid "" "\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" "\"SDK de Destino\" debería ser un entero válido, pero obtuvo \"%s\" inválido." @@ -8499,6 +9034,13 @@ msgstr "No se ha podido iniciar el ejecutable apksigner." msgid "'apksigner' returned with error #%d" msgstr "'apksigner' ha retornado con error #%d" +msgid "" +"output: \n" +"%s" +msgstr "" +"salida: \n" +"%s" + msgid "Verifying %s..." msgstr "Verificando %s..." @@ -8522,14 +9064,6 @@ msgid "Unsupported export format!" msgstr "¡Formato de exportación no compatible!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Se intentó construir a partir de una plantilla personalizada, pero no existe " -"información de la versión para ello. Por favor, reinstala desde el menú " -"'Proyecto'." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" @@ -8623,6 +9157,9 @@ msgstr "Falta el identificador." msgid "The character '%s' is not allowed in Identifier." msgstr "El carácter '% s' no está permitido en el Identificador." +msgid "Debug Script Export" +msgstr "Exportación de Script de Depuración" + msgid "Failed to open executable file \"%s\"." msgstr "Fallo al abrir el archivo ejecutable \"%s\"." @@ -8635,6 +9172,9 @@ msgstr "Los ejecutables de 32 bits no pueden tener datos embebidos >= 4 GiB." msgid "Executable \"pck\" section not found." msgstr "No se encuentra la sección ejecutable \"pck\"." +msgid "Could not create temp directory:" +msgstr "No se ha podido crear el directorio temporal:" + msgid "Can't get filesystem access." msgstr "No se puede obtener acceso al sistema de archivos." @@ -9132,6 +9672,13 @@ msgid "PathFollow2D only works when set as a child of a Path2D node." msgstr "" "PathFollow2D solo funciona cuando está colocado como hijo de un nodo Path2D." +msgid "" +"A PhysicalBone2D only works with a Skeleton2D or another PhysicalBone2D as a " +"parent node!" +msgstr "" +"¡Un PhysicalBone2D sólo funciona con un Skeleton2D u otro PhysicalBone2D " +"como nodo padre!" + msgid "Path property must point to a valid Node2D node to work." msgstr "La propiedad Path debe apuntar a un nodo Node2D válido para funcionar." @@ -9148,6 +9695,17 @@ msgstr "" "Este hueso no tiene una pose de DESCANSO adecuada. Ve al nodo Skeleton2D y " "asígnale una." +msgid "" +"CollisionPolygon3D only serves to provide a collision shape to a " +"CollisionObject3D derived node.\n" +"Please only use it as a child of Area3D, StaticBody3D, RigidBody3D, " +"CharacterBody3D, etc. to give them a shape." +msgstr "" +"CollisionPolygon3D solo sirve para proporcionar una forma de colisión a un " +"nodo derivado de CollisionObject3D.\n" +"Por favor, úsalo solo como hijo de Area3D, StaticBody3D, RigidBody3D, " +"CharacterBody3D, etc. para darles una forma." + msgid "Nothing is visible because no mesh has been assigned." msgstr "No hay nada visible porque no se ha asignado ninguna malla." @@ -9157,6 +9715,9 @@ msgstr "" "No hay nada visible porque no se han asignado mallas para los pases de " "dibujo." +msgid "Generating Probe Volumes" +msgstr "Generando Volúmenes de Sonda" + msgid "This body will be ignored until you set a mesh." msgstr "Este cuerpo será ignorado hasta que se establezca una malla." @@ -9211,9 +9772,19 @@ msgstr "" "Clic izq: Aplicar color\n" "Clic der: Borrar configuración predeterminada" +msgid "" +"Color: #%s\n" +"LMB: Apply color" +msgstr "" +"Color: #%s\n" +"Clic izq: Aplicar color" + msgid "Pick a color from the editor window." msgstr "Selecciona un color de la ventana del editor." +msgid "Select a picker shape." +msgstr "Selecciona una forma de selección." + msgid "Switch between hexadecimal and code values." msgstr "Cambiar entre valores hexadecimales y de código." @@ -9269,6 +9840,15 @@ msgid "(Other)" msgstr "(Otros)" msgid "" +"Setting node name '%s' to be unique within scene for '%s', but it's already " +"claimed by '%s'.\n" +"'%s' is no longer set as having a unique name." +msgstr "" +"Se está estableciendo el nombre del nodo '%s' para que sea único dentro de " +"la escena para '%s', pero ya está reclamado por '%s'.\n" +"'%s' ya no está establecido como un nombre único." + +msgid "" "Default Environment as specified in Project Settings (Rendering -> " "Environment -> Default Environment) could not be loaded." msgstr "" @@ -9295,6 +9875,16 @@ msgstr "" "El tamaño del Viewport debe ser mayor o igual a 2 píxeles en ambas " "dimensiones para renderizar cualquier cosa." +msgid "Unsupported BMFont texture format." +msgstr "Formato de textura BMFont no compatible." + +msgid "" +"Shader keywords cannot be used as parameter names.\n" +"Choose another name." +msgstr "" +"Las palabras clave de shader no se pueden usar como nombres de parámetro.\n" +"Elige otro nombre." + msgid "" "The sampler port is connected but not used. Consider changing the source to " "'SamplerPort'." @@ -9331,3 +9921,24 @@ msgstr "Asignación a uniform." msgid "Constants cannot be modified." msgstr "Las constantes no pueden modificarse." + +msgid "Invalid variable type (samplers are not allowed)." +msgstr "Tipo de variable inválido (los samplers no están permitidos)." + +msgid "Expected data type." +msgstr "Tipo de datos esperado." + +msgid "Invalid constant type (samplers are not allowed)." +msgstr "Tipo de constante inválido (los samplers no están permitidos)." + +msgid "Invalid function type (samplers are not allowed)." +msgstr "Tipo de función inválido (los samplers no están permitidos)." + +msgid "Expected a '%s'." +msgstr "Se esperaba un '%s'." + +msgid "Invalid argument name." +msgstr "Nombre de argumento inválido." + +msgid "Invalid macro argument count." +msgstr "Contador de argumentos de macro inválido." diff --git a/editor/translations/editor/es_AR.po b/editor/translations/editor/es_AR.po index a5e4079b72..964b6858b9 100644 --- a/editor/translations/editor/es_AR.po +++ b/editor/translations/editor/es_AR.po @@ -552,6 +552,9 @@ msgstr "Desde la Señal:" msgid "Scene does not contain any script." msgstr "La escena no contiene ningún script." +msgid "Select Method" +msgstr "Seleccionar Método" + msgid "Remove" msgstr "Quitar" @@ -609,9 +612,6 @@ msgstr "Desconectar" msgid "Connect a Signal to a Method" msgstr "Conectar una Señal a un Método" -msgid "Edit Connection:" -msgstr "Editar Conexión:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "" "¿Estás seguro/a que querés quitar todas las conexiones de la señal \"%s\"?" @@ -754,23 +754,8 @@ msgstr "Advertencia:" msgid "Error:" msgstr "Error:" -msgid "C++ Error" -msgstr "Error de C++" - -msgid "C++ Error:" -msgstr "Error de C++:" - -msgid "Source" -msgstr "Fuente" - -msgid "C++ Source" -msgstr "Fuente C++" - -msgid "Source:" -msgstr "Fuente:" - -msgid "C++ Source:" -msgstr "Fuente C++:" +msgid "%s Error" +msgstr "Error de %s" msgid "Stack Trace" msgstr "Stack Trace" @@ -781,6 +766,9 @@ msgstr "Copiar Error" msgid "Open C++ Source on GitHub" msgstr "Abrir Fuente C++ en GitHub" +msgid "C++ Source" +msgstr "Fuente C++" + msgid "Video RAM" msgstr "Mem. de Video" @@ -1737,12 +1725,12 @@ msgstr "Mostrar Todas las Localizaciones" msgid "Show Selected Locales Only" msgstr "Mostrar Sólo las Localizaciones Seleccionadas" +msgid "Edit Filters" +msgstr "Editar Filtros" + msgid "Language:" msgstr "Lenguaje:" -msgid "Script" -msgstr "Script" - msgid "Clear Output" msgstr "Limpiar Salida" @@ -2285,24 +2273,6 @@ msgid "Install from file" msgstr "Instalar desde archivo" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Esto va a inicializar tu proyecto para builds de Android personalizados, " -"instalando la plantilla de origen en \"res://android/build\".\n" -"Una vez hecho ésto podés aplicar modificaciones y generar tu propio APK " -"personalizado al exportar (agregar módulos, cambiar el AndroidManifest.xml, " -"etc.).\n" -"Tené en cuenta que para generar builds personalizados en vez de usar los " -"APKs pregenerados, la opcion \"Usar Build Personalizado\" debería estar " -"activada en el preset de exportación de Android." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2523,9 +2493,6 @@ msgstr "Atajos" msgid "Binding" msgstr "Binding" -msgid "%s Error" -msgstr "Error de %s" - msgid "All Devices" msgstr "Todos los Dispositivos" @@ -3367,6 +3334,9 @@ msgstr "Seleccionar y mover puntos, crear puntos con click derecho." msgid "Enable snap and show grid." msgstr "Activar ajuste y mostrar grilla." +msgid "Blend:" +msgstr "Blend:" + msgid "Point" msgstr "Punto" @@ -3409,15 +3379,9 @@ msgstr "Borrar puntos y triángulos." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Generar triángulos de blending automáticamente (en vez de manualmente)" -msgid "Blend:" -msgstr "Blend:" - msgid "Parameter Changed:" msgstr "Parámetro Modificado:" -msgid "Edit Filters" -msgstr "Editar Filtros" - msgid "Output node can't be added to the blend tree." msgstr "El nodo de salida no puede ser agregado al blend tree." @@ -3541,9 +3505,6 @@ msgid "Play selected animation backwards from end. (Shift+A)" msgstr "" "Reproducir hacia atrás la animación seleccionada desde el final. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Detener la reproducción de la animación. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Reproducir animación seleccinada desde el principio. (Shift + D)" @@ -4708,12 +4669,6 @@ msgstr "Cambiar Notificador AABB" msgid "Change Particles AABB" msgstr "Cambiar Particulas AABB" -msgid "Change Box Shape Extents" -msgstr "Cambiar Radio de Shape Caja" - -msgid "Change Probe Extents" -msgstr "Cambiar Extensión de Sonda" - msgid "Change Capsule Shape Radius" msgstr "Cambiar Radio de Shape Cápsula" @@ -5519,6 +5474,9 @@ msgstr "Estándar" msgid "Connections to method:" msgstr "Conexiones al método:" +msgid "Source" +msgstr "Fuente" + msgid "Target" msgstr "Objetivo" @@ -5751,12 +5709,6 @@ msgstr "(vacío)" msgid "Animations:" msgstr "Animaciones:" -msgid "Speed:" -msgstr "Velocidad:" - -msgid "Loop" -msgstr "Loop" - msgid "Animation Frames:" msgstr "Fotogramas de animación:" @@ -7138,9 +7090,6 @@ msgstr "Agregar Acción de Entrada" msgid "Change Action deadzone" msgstr "Cambiar zona muerta de la Acción" -msgid "Add Input Action Event" -msgstr "Agregar Evento de Acción de Entrada" - msgid "Erase Input Action" msgstr "Borrar Acción de Entrada" @@ -7168,9 +7117,6 @@ msgstr "Seleccionar Propiedad" msgid "Select Virtual Method" msgstr "Seleccionar Método Virtual" -msgid "Select Method" -msgstr "Seleccionar Método" - msgid "Batch Rename" msgstr "Renombrar en Masa" @@ -7937,13 +7883,6 @@ msgstr "Clave pública inválida para la expansión de APK." msgid "Invalid package name:" msgstr "Nombre de paquete inválido:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "\"Use Custom Build\" debe estar activado para usar los plugins." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"\"Export AAB\" sólo es válido cuando \"Use Custom Build\" está activado." - msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." @@ -7987,14 +7926,6 @@ msgid "Unsupported export format!" msgstr "¡Formato de exportación no soportado!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Intentando construir a partir de una plantilla personalizada, pero no existe " -"información de la versión para ello. Por favor, reinstalá desde el menú " -"'Proyecto'." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" diff --git a/editor/translations/editor/fi.po b/editor/translations/editor/fi.po index 96f066c8bd..559817673a 100644 --- a/editor/translations/editor/fi.po +++ b/editor/translations/editor/fi.po @@ -533,6 +533,9 @@ msgstr "Signaalista:" msgid "Scene does not contain any script." msgstr "Kohtaus ei sisällä skriptiä." +msgid "Select Method" +msgstr "Valitse metodi" + msgid "Remove" msgstr "Poista" @@ -589,9 +592,6 @@ msgstr "Katkaise yhteys" msgid "Connect a Signal to a Method" msgstr "Yhdistä signaali metodiin" -msgid "Edit Connection:" -msgstr "Muokkaa yhteyttä:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Oletko varma, että haluat poistaa kaikki kytkennät signaalilta \"%s\"?" @@ -734,23 +734,8 @@ msgstr "Varoitus:" msgid "Error:" msgstr "Virhe:" -msgid "C++ Error" -msgstr "C++ virhe" - -msgid "C++ Error:" -msgstr "C++ virhe:" - -msgid "Source" -msgstr "Lähde" - -msgid "C++ Source" -msgstr "C++ lähdekoodi" - -msgid "Source:" -msgstr "Lähdekoodi:" - -msgid "C++ Source:" -msgstr "C++ lähdekoodi:" +msgid "%s Error" +msgstr "%s virhe" msgid "Stack Trace" msgstr "Pinojäljitys" @@ -761,6 +746,9 @@ msgstr "Kopioi virhe" msgid "Open C++ Source on GitHub" msgstr "Avaa C++ lähdekoodi GitHubissa" +msgid "C++ Source" +msgstr "C++ lähdekoodi" + msgid "Video RAM" msgstr "Näyttömuisti" @@ -1714,12 +1702,12 @@ msgstr "Näytä kaikki kielialueet" msgid "Show Selected Locales Only" msgstr "Näytä vain valitut kielialueet" +msgid "Edit Filters" +msgstr "Muokkaa suodattimia" + msgid "Language:" msgstr "Kieli:" -msgid "Script" -msgstr "Skripti" - msgid "Clear Output" msgstr "Tyhjennä tuloste" @@ -2252,23 +2240,6 @@ msgid "Install from file" msgstr "Asenna tiedostosta" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Tämä valmistelee projektisi mukautettuja Android-käännöksiä varten " -"asentamalla lähdemallin hakemistoon \"res://android/build\".\n" -"Voit sen jälkeen soveltaa muunnoksia ja kääntää oman räätälöidyn APK:n " -"vientiin (lisäten moduuleja, muuttaen AndroidManifest.xml tiedostoa, jne.)\n" -"Huomaa, että tehdäksesi mukautettuja käännöksiä esikäännetyn APK:n " -"käyttämisen sijaan, \"Use Custom Build\" valinnan tulee olla päällä Android-" -"viennin esiasetuksissa." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2488,9 +2459,6 @@ msgstr "Pikanäppäimet" msgid "Binding" msgstr "Sidonta" -msgid "%s Error" -msgstr "%s virhe" - msgid "All Devices" msgstr "Kaikki laitteet" @@ -3352,6 +3320,9 @@ msgstr "Valitse ja siirrä pisteitä, luo pisteitä hiiren oikealla napilla." msgid "Enable snap and show grid." msgstr "Aseta tarttuminen ja näytä ruudukko." +msgid "Blend:" +msgstr "Sulautus:" + msgid "Point" msgstr "Piste" @@ -3394,15 +3365,9 @@ msgstr "Poista pisteet ja kolmiot." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Luo sulautuskolmiot automaattisesti (manuaalisen sijaan)" -msgid "Blend:" -msgstr "Sulautus:" - msgid "Parameter Changed:" msgstr "Parametri muutettu:" -msgid "Edit Filters" -msgstr "Muokkaa suodattimia" - msgid "Output node can't be added to the blend tree." msgstr "Lähtösolmua ei voida lisätä sulautuspuuhun." @@ -3521,9 +3486,6 @@ msgstr "Toista valittu animaatio takaperin nykyisestä kohdasta. (A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Toista valittu animaatio takaperin lopusta. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Lopeta animaation toisto. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Toista valittu animaatio alusta. (Shift+D)" @@ -4695,12 +4657,6 @@ msgstr "Muuta ilmoittajan AABB" msgid "Change Particles AABB" msgstr "Muuta partikkelien AABB" -msgid "Change Box Shape Extents" -msgstr "Muuta laatikkomuodon ulottuvuuksia" - -msgid "Change Probe Extents" -msgstr "Muuta Proben ulottuvuuksia" - msgid "Change Capsule Shape Radius" msgstr "Muuta kapselimuodon sädettä" @@ -5505,6 +5461,9 @@ msgstr "Standardi" msgid "Connections to method:" msgstr "Yhteydet metodiin:" +msgid "Source" +msgstr "Lähde" + msgid "Target" msgstr "Kohde" @@ -5745,12 +5704,6 @@ msgstr "(tyhjä)" msgid "Animations:" msgstr "Animaatiot:" -msgid "Speed:" -msgstr "Nopeus:" - -msgid "Loop" -msgstr "Toista" - msgid "Animation Frames:" msgstr "Animaatioruudut:" @@ -7143,9 +7096,6 @@ msgstr "Lisää syötetapahtuma" msgid "Change Action deadzone" msgstr "Vaihda toiminnon katvealue" -msgid "Add Input Action Event" -msgstr "Lisää syötetoiminnon tapahtuma" - msgid "Erase Input Action" msgstr "Tyhjennä syötetoiminto" @@ -7173,9 +7123,6 @@ msgstr "Valitse ominaisuus" msgid "Select Virtual Method" msgstr "Valitse virtuaalinen metodi" -msgid "Select Method" -msgstr "Valitse metodi" - msgid "Batch Rename" msgstr "Niputettu uudelleennimeäminen" @@ -7931,16 +7878,6 @@ msgstr "Virheellinen julkinen avain APK-laajennosta varten." msgid "Invalid package name:" msgstr "Virheellinen paketin nimi:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" -"\"Use Custom Build\" asetuksen täytyy olla päällä, jotta liittännäisiä voi " -"käyttää." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"\"Export AAB\" on käyttökelpoinen vain, kun \"Use Custom Build\" asetus on " -"päällä." - msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." @@ -7989,13 +7926,6 @@ msgid "Unsupported export format!" msgstr "Vientiformaatti ei ole tuettu!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Yritetään kääntää mukautetulla käännösmallilla, mutta sillä ei ole " -"versiotietoa. Ole hyvä ja uudelleenasenna se 'Projekti'-valikosta." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" diff --git a/editor/translations/editor/fr.po b/editor/translations/editor/fr.po index bd3d516a44..acb33aecf6 100644 --- a/editor/translations/editor/fr.po +++ b/editor/translations/editor/fr.po @@ -101,7 +101,7 @@ # Arnaud Lier <arnaud@ric-rac.org>, 2022. # Jérémie Guegain <mirejai@orange.fr>, 2022. # cwulveryck <cwulveryck@online.fr>, 2022. -# Helix Sir <vincentbarkmann@gmail.com>, 2022. +# Helix Sir <vincentbarkmann@gmail.com>, 2022, 2023. # SCHUTZ Lucas <lucas.schutz0954@gmail.com>, 2022. # EGuillemot <Elouen.Guillemot@gmail.com>, 2022. # Entiz <maxime.salido@gmail.com>, 2022. @@ -109,13 +109,17 @@ # Hugo Berthet-Rambaud <hugoberthetrambaud@outlook.com>, 2023. # Nathan Chambrette <n.chambrette@gmail.com>, 2023. # slundi <slundi@gmail.com>, 2023. +# Elouan MAILLY <leloupandco@gmail.com>, 2023. +# nuclehon <benjamin.deslandes1@gmail.com>, 2023. +# Siandfrance <Siandfrance@gmail.com>, 2023. +# Thalya Gauvrit <skar0ps.dev@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-14 00:01+0000\n" -"Last-Translator: slundi <slundi@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 14:12+0000\n" +"Last-Translator: Siandfrance <Siandfrance@gmail.com>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" "Language: fr\n" @@ -123,20 +127,191 @@ 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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "Vider" msgid "Physical" msgstr "Physique" +msgid "Left Mouse Button" +msgstr "Bouton de souris gauche" + +msgid "Right Mouse Button" +msgstr "Bouton de souris droit" + +msgid "Middle Mouse Button" +msgstr "Clic molette de souris" + +msgid "Mouse Wheel Up" +msgstr "Molette vers le haut" + +msgid "Mouse Wheel Down" +msgstr "Molette vers le bas" + +msgid "Mouse Wheel Left" +msgstr "Molette vers la gauche" + +msgid "Mouse Wheel Right" +msgstr "Molette vers la droite" + +msgid "Mouse Thumb Button 1" +msgstr "Bouton latéral de souris 1" + +msgid "Mouse Thumb Button 2" +msgstr "Bouton latéral de souris 2" + msgid "Button" msgstr "Bouton" +msgid "Double Click" +msgstr "Double clic" + +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "Mouvement de souris vers la position (%s) avec une vélocité de (%s)" + +msgid "Left Stick X-Axis, Joystick 0 X-Axis" +msgstr "Axe X stick gauche , Axe X Joystick 0" + +msgid "Left Stick Y-Axis, Joystick 0 Y-Axis" +msgstr "Axe Y stick gauche, Axe Y Joystick 0" + +msgid "Right Stick X-Axis, Joystick 1 X-Axis" +msgstr "Axe X stick droit, Axe X Joystick 1" + +msgid "Right Stick Y-Axis, Joystick 1 Y-Axis" +msgstr "Axe Y stick droit, Axe Y Joystick 1" + +msgid "Joystick 2 X-Axis, Left Trigger, Sony L2, Xbox LT" +msgstr "Axe X Joystick 2, Gâchette gauche, L2 Sony, LT Xbox" + +msgid "Joystick 2 Y-Axis, Right Trigger, Sony R2, Xbox RT" +msgstr "Axe Y Joystick 2, Gâchette droite, R2 Sony, RT Xbox" + +msgid "Joystick 3 X-Axis" +msgstr "Axe X du Joystick 3" + +msgid "Joystick 3 Y-Axis" +msgstr "Axe Y du Joystick 3" + +msgid "Joystick 4 X-Axis" +msgstr "Axe X du Joystick 4" + +msgid "Joystick 4 Y-Axis" +msgstr "Axe Y du Joystick 4" + +msgid "Unknown Joypad Axis" +msgstr "Axe de contrôleur inconnu" + +msgid "Joypad Motion on Axis %d (%s) with Value %.2f" +msgstr "Mouvement du contrôleur sur l'axe %d (%s) d'une valeur de %.2f" + +msgid "Bottom Action, Sony Cross, Xbox A, Nintendo B" +msgstr "Action du bas, Croix Sony, A Xbox, B Nintendo" + +msgid "Right Action, Sony Circle, Xbox B, Nintendo A" +msgstr "Action droite, Rond Sony, B Xbox, A Nintendo" + +msgid "Left Action, Sony Square, Xbox X, Nintendo Y" +msgstr "Action gauche, Carré Sony, X Xbox, Y Nintendo" + +msgid "Top Action, Sony Triangle, Xbox Y, Nintendo X" +msgstr "Action du haut, Triangle Sony, Y Xbox, X Nintendo" + +msgid "Back, Sony Select, Xbox Back, Nintendo -" +msgstr "Retour, Select Sony, Back Xbox, - Nintendo" + +msgid "Guide, Sony PS, Xbox Home" +msgstr "Guide, PS Sony, Home Xbox" + +msgid "Start, Nintendo +" +msgstr "Start, + Nintendo" + +msgid "Left Stick, Sony L3, Xbox L/LS" +msgstr "Stick gauche, L3 Sony, L/LS Xbox" + +msgid "Right Stick, Sony R3, Xbox R/RS" +msgstr "Stick droit, R3 Sony, R/RS Xbox" + +msgid "Left Shoulder, Sony L1, Xbox LB" +msgstr "Gâchette haute gauche, L1 Sony, LB Xbox" + +msgid "Right Shoulder, Sony R1, Xbox RB" +msgstr "Gâchette haute droite, R1 Sony, RB Xbox" + +msgid "D-pad Up" +msgstr "Flèche du haut" + +msgid "D-pad Down" +msgstr "Flèche du bas" + +msgid "D-pad Left" +msgstr "Flèche gauche" + +msgid "D-pad Right" +msgstr "Flèche droite" + +msgid "Xbox Share, PS5 Microphone, Nintendo Capture" +msgstr "Share Xbox, Microphone PS5, Capture Nintendo" + +msgid "Xbox Paddle 1" +msgstr "Palette Xbox 1" + +msgid "Xbox Paddle 2" +msgstr "Palette Xbox 2" + +msgid "Xbox Paddle 3" +msgstr "Palette Xbox 3" + +msgid "Xbox Paddle 4" +msgstr "Palette Xbox 4" + +msgid "PS4/5 Touchpad" +msgstr "Pavé tactile PS4/5" + +msgid "touched" +msgstr "Touché" + +msgid "released" +msgstr "Relâché" + +msgid "Screen %s at (%s) with %s touch points" +msgstr "Écran %s à (%s) avec %s points de contact" + +msgid "" +"Screen dragged with %s touch points at position (%s) with velocity of (%s)" +msgstr "" +"Écran glissé avec %s points de contact vers la position (%s) avec une " +"vélocité de (%s)" + +msgid "Magnify Gesture at (%s) with factor %s" +msgstr "Geste d’agrandissement à (%s) avec un facteur de %s" + +msgid "Pan Gesture at (%s) with delta (%s)" +msgstr "Geste de mouvement panoramique à (%s) avec un delta de (%s)" + +msgid "MIDI Input on Channel=%s Message=%s" +msgstr "Entrée MIDI sur le canal=%s Message=%s" + +msgid "Input Event with Shortcut=%s" +msgstr "Événement d’entrée avec raccourci=%s" + +msgid "Accept" +msgstr "Accepter" + msgid "Select" msgstr "Sélectionner" msgid "Cancel" msgstr "Annuler" +msgid "Focus Next" +msgstr "Cibler suivant" + +msgid "Focus Prev" +msgstr "Cibler précédent" + msgid "Left" msgstr "Gauche" @@ -149,6 +324,15 @@ msgstr "Monter" msgid "Down" msgstr "Descendre" +msgid "Page Up" +msgstr "Page Haut" + +msgid "Page Down" +msgstr "Page Bas" + +msgid "Home" +msgstr "Accueil" + msgid "End" msgstr "Fin" @@ -167,24 +351,75 @@ msgstr "Annuler" msgid "Redo" msgstr "Refaire" +msgid "Completion Query" +msgstr "Requête de complétion" + +msgid "New Line" +msgstr "Nouvelle ligne" + +msgid "New Blank Line" +msgstr "Nouvelle ligne vide" + +msgid "New Line Above" +msgstr "Nouvelle ligne au dessus" + msgid "Indent" msgstr "Indentation" +msgid "Dedent" +msgstr "Désindenter" + +msgid "Backspace" +msgstr "Effacer" + +msgid "Backspace Word" +msgstr "Effacer mot" + +msgid "Backspace all to Left" +msgstr "Effacer tout à gauche" + msgid "Delete" msgstr "Supprimer" +msgid "Delete Word" +msgstr "Supprimer mot" + +msgid "Delete all to Right" +msgstr "Tout supprimer à droite" + +msgid "Scroll Up" +msgstr "Défilement vers le haut" + +msgid "Scroll Down" +msgstr "Défilement vers le bas" + msgid "Select All" msgstr "Tout sélectionner" +msgid "Select Word Under Caret" +msgstr "Sélectionner les mots sous le caret" + +msgid "Add Selection for Next Occurrence" +msgstr "Ajouter la Sélection pour la Prochaine Occurence" + +msgid "Text Submitted" +msgstr "Texte Proposé" + msgid "Duplicate Nodes" msgstr "Dupliquer le(s) nœud(s)" msgid "Delete Nodes" -msgstr "Supprimer des nœuds" +msgstr "Supprimer le(s) nœud(s)" + +msgid "Go Up One Level" +msgstr "Monter d'un Niveau" msgid "Refresh" msgstr "Rafraîchir" +msgid "Swap Input Direction" +msgstr "Échanger les Directions d'Entrée" + msgid "Invalid input %d (not passed) in expression" msgstr "Entrée non valide %d (non transmise) dans l’expression" @@ -206,6 +441,12 @@ msgstr "Arguments invalides pour construire '%s'" msgid "On call to '%s':" msgstr "Lors de l’appel à '%s' :" +msgid "Built-in script" +msgstr "Script intégré" + +msgid "Built-in" +msgstr "Intégré" + msgid "B" msgstr "o" @@ -227,27 +468,59 @@ msgstr "Pio" msgid "EiB" msgstr "Eio" +msgid "Example: %s" +msgstr "Exemple : %s" + +msgid "%d item" +msgid_plural "%d items" +msgstr[0] "%d élément" +msgstr[1] "%d éléments" + msgid "" "Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'" msgstr "" -"Nom d'action invalide. Il ne peut être vide ni contenir « / », « : », « = », " -"« \\ » ou « \" »" +"Nom d'action invalide. Elle ne peut être vide ni contenir «/», «:», «=», " +"«\\» ou «\"»" msgid "An action with the name '%s' already exists." msgstr "Une action avec le nom « %s » existe déjà." msgid "Add Event" -msgstr "Ajouter évènement" +msgstr "Ajouter un évènement" + +msgid "Remove Action" +msgstr "Supprimer l'action" + +msgid "Cannot Remove Action" +msgstr "Impossible de Retirer l'Action" + +msgid "Edit Event" +msgstr "Editer l'Évènement" + +msgid "Remove Event" +msgstr "Supprimer l'Évènement" + +msgid "Filter by name..." +msgstr "Filtrer par nom..." + +msgid "Clear All" +msgstr "Tout Effacer" + +msgid "Add New Action" +msgstr "Ajouter une Action" msgid "Add" msgstr "Ajouter" +msgid "Show Built-in Actions" +msgstr "Afficher les Actions Intégrées" + msgid "Action" msgstr "Action" msgid "Deadzone" -msgstr "Zone morte" +msgstr "Zone Morte" msgid "Time:" msgstr "Temps :" @@ -255,6 +528,9 @@ msgstr "Temps :" msgid "Value:" msgstr "Valeur :" +msgid "Update Selected Key Handles" +msgstr "Dupliquer la(les) clé(s) sélectionnée(s)" + msgid "Insert Key Here" msgstr "Insérer la clé ici" @@ -691,6 +967,9 @@ msgstr "Depuis le signal :" msgid "Scene does not contain any script." msgstr "La scène ne comprend pas de script." +msgid "Select Method" +msgstr "Sélectionner une méthode" + msgid "Remove" msgstr "Supprimer" @@ -751,9 +1030,6 @@ msgstr "Déconnecter" msgid "Connect a Signal to a Method" msgstr "Connecter un signal à une méthode" -msgid "Edit Connection:" -msgstr "Modifier la connexion :" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Voulez-vous vraiment supprimer toutes les connexions de ce signal ?" @@ -820,6 +1096,9 @@ msgstr "Instance :" msgid "Toggle Visibility" msgstr "Basculer la visibilité" +msgid "ms" +msgstr "ms" + msgid "Monitors" msgstr "Moniteurs" @@ -900,23 +1179,8 @@ msgstr "Avertissement :" msgid "Error:" msgstr "Erreur :" -msgid "C++ Error" -msgstr "Erreur C++" - -msgid "C++ Error:" -msgstr "Erreur C++ :" - -msgid "Source" -msgstr "Source" - -msgid "C++ Source" -msgstr "Source C++" - -msgid "Source:" -msgstr "Source :" - -msgid "C++ Source:" -msgstr "Source C++ :" +msgid "%s Error" +msgstr "Erreur %s" msgid "Stack Trace" msgstr "Pile des appels" @@ -927,6 +1191,9 @@ msgstr "Copier l'erreur" msgid "Open C++ Source on GitHub" msgstr "Ouvrir les sources C++ sur GitHub" +msgid "C++ Source" +msgstr "Source C++" + msgid "Video RAM" msgstr "Mémoire vidéo" @@ -1413,6 +1680,9 @@ msgstr "Navigation" msgid "OpenGL" msgstr "OpenGL" +msgid "Vulkan" +msgstr "Vulkan" + msgid "Nodes and Classes:" msgstr "Nœuds et classes :" @@ -1742,6 +2012,9 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "Ré-importation des assets" +msgid "Experimental" +msgstr "Expérimental" + msgid "Top" msgstr "Dessus" @@ -1908,12 +2181,12 @@ msgstr "Afficher toutes les langues" msgid "Show Selected Locales Only" msgstr "Afficher uniquement les langues sélectionnées" +msgid "Edit Filters" +msgstr "Modifier les filtres" + msgid "Language:" msgstr "Langage :" -msgid "Script" -msgstr "Script" - msgid "Variant" msgstr "Variant" @@ -2483,24 +2756,6 @@ msgid "Install from file" msgstr "Installer depuis un fichier" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Ceci configurera votre projet pour des compilations Android personnalisées " -"en installant le modèle source dans \"res://android/build\".\n" -"Vous pouvez ensuite appliquer des modifications et créer votre propre APK " -"personnalisé à l'exportation (ajout de modules, modification du fichier " -"AndroidManifest.xml, etc.).\n" -"Notez que pour faire des compilations personnalisées au lieu d'utiliser des " -"APKs préconstruits, l'option \"Use Custom Build\" doit être activée dans le " -"Preset d'exportation Android." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2725,9 +2980,6 @@ msgstr "Raccourcis" msgid "Binding" msgstr "Liaison" -msgid "%s Error" -msgstr "Erreur %s" - msgid "All Devices" msgstr "Tous les périphérique" @@ -3676,6 +3928,9 @@ msgstr "" msgid "Enable snap and show grid." msgstr "Activer l'aimantation et afficher la grille." +msgid "Blend:" +msgstr "Mélange :" + msgid "Point" msgstr "Point" @@ -3719,15 +3974,9 @@ msgid "Generate blend triangles automatically (instead of manually)" msgstr "" "Générer des triangles de mélange automatiquement (au lieu de manuellement)" -msgid "Blend:" -msgstr "Mélange :" - msgid "Parameter Changed:" msgstr "Paramètre modifié :" -msgid "Edit Filters" -msgstr "Modifier les filtres" - msgid "Output node can't be added to the blend tree." msgstr "Un nœud de sortie ne peut être ajouté à l'arborescence du mélange." @@ -3853,9 +4102,6 @@ msgstr "" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Lire l'animation sélectionnée à rebours depuis la fin. (Maj+A)" -msgid "Stop animation playback. (S)" -msgstr "Arrêter la lecture de l'animation. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Lire l'animation sélectionnée depuis le début. (Maj+D)" @@ -5107,12 +5353,6 @@ msgstr "Changer le notificateur AABB" msgid "Change Particles AABB" msgstr "Changer particules AABB" -msgid "Change Box Shape Extents" -msgstr "Changer l'étendue de la forme rectangulaire" - -msgid "Change Probe Extents" -msgstr "Changer les ampleurs de la sonde" - msgid "Change Capsule Shape Radius" msgstr "Changer le rayon de la forme capsule" @@ -5935,6 +6175,9 @@ msgstr "Standard" msgid "Connections to method:" msgstr "Connexions à la méthode :" +msgid "Source" +msgstr "Source" + msgid "Target" msgstr "Cible" @@ -6182,12 +6425,6 @@ msgstr "(vide)" msgid "Animations:" msgstr "Animations :" -msgid "Speed:" -msgstr "Vitesse :" - -msgid "Loop" -msgstr "Boucle" - msgid "Animation Frames:" msgstr "Trames d'animation :" @@ -7639,9 +7876,6 @@ msgstr "Ajouter une action d'entrée" msgid "Change Action deadzone" msgstr "Modifier la zone morte de l'action" -msgid "Add Input Action Event" -msgstr "Ajouter un événement d'action d'entrée" - msgid "Erase Input Action" msgstr "Effacer l'action d'entrée" @@ -7669,9 +7903,6 @@ msgstr "Sélectionnez une propriété" msgid "Select Virtual Method" msgstr "Sélectionner une méthode virtuelle" -msgid "Select Method" -msgstr "Sélectionner une méthode" - msgid "Batch Rename" msgstr "Renommer par lot" @@ -7936,6 +8167,9 @@ msgstr "Enfants modifiables" msgid "Load As Placeholder" msgstr "Charger en tant qu'instance temporaire" +msgid "Auto Expand to Selected" +msgstr "Étirement auto à la sélection" + msgid "Filters" msgstr "Filtres" @@ -8480,24 +8714,10 @@ msgstr "Clé publique invalide pour l'expansion APK." msgid "Invalid package name:" msgstr "Nom de paquet invalide :" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "« Use Custom Build » doit être activé pour utiliser les plugins." - msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "« Passthrough » est valide uniquement lorsque le « Mode XR » est « OpenXR »." -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"« Export AAB » est valide uniquement lorsque l'option « Use Custom Build » " -"est activée." - -msgid "" -"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "" -"Changer « Min SDK » est valide uniquement lorsque l'option « Use Custom " -"Build » est activée." - msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" "\"Min SDK\" devrait être un nombre entier valide, mais \"%s\" n'est pas " @@ -8511,12 +8731,6 @@ msgstr "" "de Godot." msgid "" -"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "" -"Changer « Target SDK » est valide uniquement lorsque l'option « Use Custom " -"Build » est activée." - -msgid "" "\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" "« SDK Cible » devrait être un nombre entier valide, mais « %s » n'en est pas " @@ -8588,14 +8802,6 @@ msgid "Unsupported export format!" msgstr "Format d'export non supporté !" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"A essayé de construire à partir d'un modèle personnalisé, mais aucune " -"information de version n'existe pour lui. Veuillez réinstaller à partir du " -"menu 'Projet'." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" diff --git a/editor/translations/editor/gl.po b/editor/translations/editor/gl.po index e6983b7ca9..1617bb9759 100644 --- a/editor/translations/editor/gl.po +++ b/editor/translations/editor/gl.po @@ -559,9 +559,6 @@ msgstr "Desconectar" msgid "Connect a Signal to a Method" msgstr "Conectar unha Sinal a un Método" -msgid "Edit Connection:" -msgstr "Editar Conexión:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Está seguro de que quere eliminar tódalas conexións da sinal '%s'?" @@ -670,24 +667,9 @@ msgstr "Aviso:" msgid "Error:" msgstr "Erro:" -msgid "C++ Error" -msgstr "Erro de C++" - -msgid "C++ Error:" -msgstr "Erro de C++:" - -msgid "Source" -msgstr "Fonte" - msgid "C++ Source" msgstr "Fonte C++" -msgid "Source:" -msgstr "Fonte:" - -msgid "C++ Source:" -msgstr "Fonte C++:" - msgid "Continue" msgstr "Continuar" @@ -1395,12 +1377,12 @@ msgstr "Amosar Tódolos Linguaxes" msgid "Show Selected Locales Only" msgstr "Amosar só os Linguaxes Seleccionados" +msgid "Edit Filters" +msgstr "Editar Flitros" + msgid "Language:" msgstr "Linguaxe:" -msgid "Script" -msgstr "Script" - msgid "Clear Output" msgstr "Limpar Saída" @@ -2440,6 +2422,9 @@ msgstr "" msgid "Enable snap and show grid." msgstr "Activar axuste de cuadrícula e amosar cuadrícula." +msgid "Blend:" +msgstr "Mezcla:" + msgid "Point" msgstr "Punto" @@ -2449,12 +2434,6 @@ msgstr "Abrir Editor" msgid "Add Triangle" msgstr "Engadir Triángulo" -msgid "Blend:" -msgstr "Mezcla:" - -msgid "Edit Filters" -msgstr "Editar Flitros" - msgid "Node Moved" msgstr "Nodo Movido" @@ -3436,6 +3415,9 @@ msgstr "Resultados de Búsqueda" msgid "Standard" msgstr "Estándar" +msgid "Source" +msgstr "Fonte" + msgid "Target" msgstr "Obxectivo" @@ -3574,12 +3556,6 @@ msgstr "(baleiro)" msgid "Animations:" msgstr "Animacións:" -msgid "Speed:" -msgstr "Velocidade:" - -msgid "Loop" -msgstr "Bucle" - msgid "Zoom Reset" msgstr "Restablecer Zoom" @@ -3918,9 +3894,6 @@ msgstr "Eliminar Elemento" msgid "Add Input Action" msgstr "Engadir Acción de Entrada" -msgid "Add Input Action Event" -msgstr "Engadir Evento de Entrada" - msgid "Erase Input Action" msgstr "Eliminar Acción de Entrada" @@ -4137,11 +4110,6 @@ msgstr "" "O Keystore Release non está configurado correctamente nos axustes de " "exportación." -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" -"\"Use Custom Build\" debe estar activado para usar estas características " -"adicionais (plugins)." - msgid "Building Android Project (gradle)" msgstr "Construir Proxecto Android (gradle)" diff --git a/editor/translations/editor/he.po b/editor/translations/editor/he.po index 35c9a664f8..69c13a071d 100644 --- a/editor/translations/editor/he.po +++ b/editor/translations/editor/he.po @@ -19,7 +19,7 @@ # Guy Dadon <guydadon14@gmail.com>, 2020. # bruvzg <bruvzg13@gmail.com>, 2020. # Omer I.S. <omeritzicschwartz@gmail.com>, 2021. -# Ram Tourgeman <ramtorgeman@gmail.com>, 2021. +# Ram Tourgeman <ramtorgeman@gmail.com>, 2021, 2023. # Shailee Eliyahu <dev.sle.il@gmail.com>, 2021. # Mati Borlak <matiborlak@gmail.com>, 2022. # Tamir Livneh <fkeyzuwu@gmail.com>, 2022. @@ -32,8 +32,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-01 05:48+0000\n" -"Last-Translator: Yoni m <yoni.meirov08@gmail.com>\n" +"PO-Revision-Date: 2023-02-08 07:34+0000\n" +"Last-Translator: Ram Tourgeman <ramtorgeman@gmail.com>\n" "Language-Team: Hebrew <https://hosted.weblate.org/projects/godot-engine/" "godot/he/>\n" "Language: he\n" @@ -42,11 +42,20 @@ 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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "ביטול הגדרה" msgid "Physical" msgstr "פיזי" +msgid "Left Mouse Button" +msgstr "לחצן עכבר שמאלי" + +msgid "Right Mouse Button" +msgstr "כפתור עכבר ימני" + msgid "Button" msgstr "כפתור" @@ -587,9 +596,6 @@ msgstr "ניתוק" msgid "Connect a Signal to a Method" msgstr "חבר אות לשיטה (מתודה)" -msgid "Edit Connection:" -msgstr "עריכת חיבור:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "האם אתה בטוח שאתה רוצה להסיר את כל החיבורים מהאות \"%s\"?" @@ -704,27 +710,15 @@ msgstr "אזהרה:" msgid "Error:" msgstr "שגיאה:" -msgid "C++ Error" -msgstr "שגיאת C++" - -msgid "C++ Error:" -msgstr "שגיאת C++ :" - -msgid "C++ Source" -msgstr "מקור C++" - -msgid "Source:" -msgstr "מקור:" - -msgid "C++ Source:" -msgstr "מקור C++ :" - msgid "Stack Trace" msgstr "מחסנית מעקב" msgid "Copy Error" msgstr "שגיאת העתקה" +msgid "C++ Source" +msgstr "מקור C++" + msgid "Video RAM" msgstr "זיכרון וידאו" @@ -1617,8 +1611,8 @@ msgstr "הוצמד %s" msgid "Unpinned %s" msgstr "בוטלה ההצמדה של %s" -msgid "Script" -msgstr "סקריפט" +msgid "Edit Filters" +msgstr "עריכת מסננים" msgid "Clear Output" msgstr "ניקוי פלט" @@ -2069,22 +2063,6 @@ msgstr "חסרה תבנית בנייה לאנדרואיד, נא להתקין ת msgid "Manage Templates" msgstr "ניהול תבניות" -msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"פעולה זו תגדיר את המיזם שלך לבניית אנדרואיד מותאמת אישית על ידי התקנת תבנית " -"המקור ל- \"res://android/build\".\n" -"לאחר מכן אפשר להחיל שינויים ולבנות APK מותאם אישית בייצוא (הוספת מודולים, " -"שינוי AndroidManifest.xml, וכו').\n" -"כדי לערוך בנייה מותאמת אישית במקום שימוש בתבנית קיימת, יש לאפשר את \"השתמש " -"בבניה מותאמת אישית\" בהגדרות הייצוא לאנדרואיד." - msgid "Import Templates From ZIP File" msgstr "ייבוא תבניות מקובץ ZIP" @@ -2449,9 +2427,6 @@ msgstr "לא ניתן להשתמש בסוג מפרק זה. רק מפרקי שו msgid "Triangle already exists." msgstr "המשולש כבר קיים." -msgid "Edit Filters" -msgstr "עריכת מסננים" - msgid "Set Animation" msgstr "קביעת הנפשה" @@ -2530,9 +2505,6 @@ msgstr "ניגון לאחור של ההנפשה שנבחרה מהמיקום הנ msgid "Play selected animation backwards from end. (Shift+A)" msgstr "ניגון לאחור של ההנפשה שנבחרה מהסוף. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "עצירת ניגון ההנפשה. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "ניגון ההנפשה שנבחרה מההתחלה. (Shift+D)" @@ -2881,12 +2853,6 @@ msgstr "שינוי מודיע AABB" msgid "Change Particles AABB" msgstr "שינוי חלקיקים AABB" -msgid "Change Box Shape Extents" -msgstr "שינוי הרחבות של צורת תיבה" - -msgid "Change Probe Extents" -msgstr "שינוי הרחבות בדיקה" - msgid "Change Capsule Shape Radius" msgstr "שינוי רדיוס לצורת קפסולה" @@ -3221,9 +3187,6 @@ msgstr "הסרת כל נקודות העצירה" msgid "Delete Animation?" msgstr "מחיקת אנימציה?" -msgid "Loop" -msgstr "לולאה" - msgid "Zoom Reset" msgstr "איפוס התקריב" @@ -3825,16 +3788,6 @@ msgstr "מפתח ציבורי לא חוקי להרחבת APK." msgid "Invalid package name:" msgstr "שם חבילה לא חוקי:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "חובה לאפשר ״שימוש בבניה מותאמת אישית״ כדי להשתמש בתוספים." - -msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"מנסה לבנות מתבנית מותאמת אישית, אך לא קיים מידע על גירסת הבניה. נא להתקין " -"מחדש מתפריט 'Project'." - msgid "Building Android Project (gradle)" msgstr "בניית מיזם אנדרואיד (gradle)" diff --git a/editor/translations/editor/hu.po b/editor/translations/editor/hu.po index d0fb2d0226..9736973adc 100644 --- a/editor/translations/editor/hu.po +++ b/editor/translations/editor/hu.po @@ -509,6 +509,9 @@ msgstr "Jelzésből:" msgid "Scene does not contain any script." msgstr "A jelenet nem tartalmaz szkriptet." +msgid "Select Method" +msgstr "Metódus kiválasztása" + msgid "Remove" msgstr "Eltávolítás" @@ -565,9 +568,6 @@ msgstr "Leválasztás" msgid "Connect a Signal to a Method" msgstr "Jelzés csatlakoztatása metódushoz" -msgid "Edit Connection:" -msgstr "Kapcsolat szerkesztése:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Biztosan eltávolítja az összes kapcsolatot a(z) \"%s\" jelzésről?" @@ -664,27 +664,12 @@ msgstr "Hívások" msgid "Error:" msgstr "Hiba:" -msgid "C++ Error" -msgstr "C++ hiba" - -msgid "C++ Error:" -msgstr "C++ hiba:" - -msgid "Source" -msgstr "Forrás" +msgid "Copy Error" +msgstr "Hiba Másolása" msgid "C++ Source" msgstr "C++ forrás" -msgid "Source:" -msgstr "Forrás:" - -msgid "C++ Source:" -msgstr "C++ forrás:" - -msgid "Copy Error" -msgstr "Hiba Másolása" - msgid "Skip Breakpoints" msgstr "Töréspontok kihagyása" @@ -1474,12 +1459,12 @@ msgstr "Tömb átméretezése" msgid "Set Multiple:" msgstr "Többszörös beállítása:" +msgid "Edit Filters" +msgstr "Szűrők Szerkesztése" + msgid "Language:" msgstr "Nyelv:" -msgid "Script" -msgstr "Szkript" - msgid "Clear Output" msgstr "Kimenet törlése" @@ -2536,6 +2521,9 @@ msgstr "Betöltés..." msgid "Enable snap and show grid." msgstr "Illesztés engedélyezése és rács megjelenítése." +msgid "Blend:" +msgstr "Keverés:" + msgid "Point" msgstr "Pont" @@ -2557,12 +2545,6 @@ msgstr "Automatikus háromszögek be- és kikapcsolása" msgid "Erase points and triangles." msgstr "Pontok és háromszögek törlése." -msgid "Blend:" -msgstr "Keverés:" - -msgid "Edit Filters" -msgstr "Szűrők Szerkesztése" - msgid "Set Animation" msgstr "Animáció beállítása" @@ -2642,9 +2624,6 @@ msgstr "" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "A kiválasztott animáció lejátszása visszafelé a végétől. (Shift + A)" -msgid "Stop animation playback. (S)" -msgstr "Animáció lejátszásának leállítása. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "A kiválasztott animáció lejátszása az elejétől. (Shift + D)" @@ -3862,6 +3841,9 @@ msgstr "Alapértelmezett" msgid "Connections to method:" msgstr "Kapcsolatok a metódushoz:" +msgid "Source" +msgstr "Forrás" + msgid "Go to Function" msgstr "Ugrás függvényre" @@ -3973,9 +3955,6 @@ msgstr "Animáció Törlése?" msgid "Animations:" msgstr "Animációk:" -msgid "Loop" -msgstr "Ciklus" - msgid "Animation Frames:" msgstr "Animációs Képkockák:" @@ -4159,9 +4138,6 @@ msgstr "Bővítmények" msgid "Select Virtual Method" msgstr "Virtuális metódus kiválasztása" -msgid "Select Method" -msgstr "Metódus kiválasztása" - msgid "Batch Rename" msgstr "Csoportos átnevezés" diff --git a/editor/translations/editor/id.po b/editor/translations/editor/id.po index 9bc669b7d2..bfed9e654b 100644 --- a/editor/translations/editor/id.po +++ b/editor/translations/editor/id.po @@ -24,7 +24,7 @@ # Modeus Darksono <garuga17@gmail.com>, 2019. # Akhmad Zulfikar <azuldegratz@gmail.com>, 2020. # Ade Fikri Malihuddin <ade.fm97@gmail.com>, 2020. -# zephyroths <ridho.hikaru@gmail.com>, 2020, 2021, 2022. +# zephyroths <ridho.hikaru@gmail.com>, 2020, 2021, 2022, 2023. # Richard Urban <redasuio1@gmail.com>, 2020. # yusuf afandi <afandi.yusuf.04@gmail.com>, 2020, 2022. # Habib Rohman <revolusi147id@gmail.com>, 2020. @@ -42,13 +42,14 @@ # FellowMustard <rachmawanng33@gmail.com>, 2022. # Muhammad Zainal Abidin <eviepk12@gmail.com>, 2022. # adfriz <aditiyaafrizal2@gmail.com>, 2023. +# Taufiq Rahman <pxpiksy@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-04 10:47+0000\n" -"Last-Translator: adfriz <aditiyaafrizal2@gmail.com>\n" +"PO-Revision-Date: 2023-02-09 09:37+0000\n" +"Last-Translator: zephyroths <ridho.hikaru@gmail.com>\n" "Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/" "godot/id/>\n" "Language: id\n" @@ -56,14 +57,68 @@ 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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "Batal disetel" msgid "Physical" msgstr "(Secara fisik)" +msgid "Left Mouse Button" +msgstr "Tombol kiri Mouse" + +msgid "Right Mouse Button" +msgstr "Tombol kanan Mouse" + msgid "Button" msgstr "Tombol" +msgid "Left Stick X-Axis, Joystick 0 X-Axis" +msgstr "Stick Kiri Sumbu X, Joystick 0 Sumbu X" + +msgid "Joystick 3 X-Axis" +msgstr "Joystick 3 Sumbu X" + +msgid "Joystick 3 Y-Axis" +msgstr "Joystick 3 Sumbu Y" + +msgid "Joystick 4 X-Axis" +msgstr "Joystick 4 Sumbu X" + +msgid "Joystick 4 Y-Axis" +msgstr "Joystick 4 Sumbu Y" + +msgid "Unknown Joypad Axis" +msgstr "Sumbu Joypad Tidak Dikenal" + +msgid "Joypad Motion on Axis %d (%s) with Value %.2f" +msgstr "Gerakan Joypad pada Sumbu %d (%s) dengan Nilai %.2f" + +msgid "Bottom Action, Sony Cross, Xbox A, Nintendo B" +msgstr "Aksi Bawah, Sony Cross, Xbox A, Nintendo B" + +msgid "Right Action, Sony Circle, Xbox B, Nintendo A" +msgstr "Tindakan Benar, Sony Circle, Xbox B, Nintendo A" + +msgid "Left Action, Sony Square, Xbox X, Nintendo Y" +msgstr "Aksi Kiri, Sony Square, Xbox X, Nintendo Y" + +msgid "Top Action, Sony Triangle, Xbox Y, Nintendo X" +msgstr "Aksi Teratas, Segitiga Sony, Xbox Y, Nintendo X" + +msgid "Back, Sony Select, Xbox Back, Nintendo -" +msgstr "Kembali, Sony Select, Xbox Kembali, Nintendo -" + +msgid "Guide, Sony PS, Xbox Home" +msgstr "Panduan, Sony PS, Xbox Home" + +msgid "Start, Nintendo +" +msgstr "Mulai, Nintendo +" + +msgid "Right Shoulder, Sony R1, Xbox RB" +msgstr "Bahu Kanan, Sony R1, Xbox RB" + msgid "Select" msgstr "Pilih" @@ -577,6 +632,9 @@ msgstr "Dari Sinyal:" msgid "Scene does not contain any script." msgstr "Skena tidak berisi skrip apapun." +msgid "Select Method" +msgstr "Pilih Method/Fungsi" + msgid "Remove" msgstr "Hapus" @@ -633,9 +691,6 @@ msgstr "Putuskan" msgid "Connect a Signal to a Method" msgstr "Hubungkan Sinyal ke Method" -msgid "Edit Connection:" -msgstr "Sunting Koneksi:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Anda yakin ingin menghapus semua hubungan dari sinyal '%s'?" @@ -777,23 +832,8 @@ msgstr "Peringatan:" msgid "Error:" msgstr "Error:" -msgid "C++ Error" -msgstr "Error C++" - -msgid "C++ Error:" -msgstr "Error C++ :" - -msgid "Source" -msgstr "Sumber" - -msgid "C++ Source" -msgstr "Kode Sumber C++" - -msgid "Source:" -msgstr "Sumber:" - -msgid "C++ Source:" -msgstr "Sumber C++ :" +msgid "%s Error" +msgstr "%s Error" msgid "Stack Trace" msgstr "Jejak Tumpukan" @@ -804,6 +844,9 @@ msgstr "Salin Error" msgid "Open C++ Source on GitHub" msgstr "Buka Sumber C++ di GitHub" +msgid "C++ Source" +msgstr "Kode Sumber C++" + msgid "Video RAM" msgstr "RAM Video" @@ -1608,6 +1651,9 @@ msgstr "Properti" msgid "default:" msgstr "baku:" +msgid "Operators" +msgstr "Operato." + msgid "Theme Properties" msgstr "Properti Tema" @@ -1630,9 +1676,15 @@ msgstr "" "Untuk saat ini tidak ada deskripsi properti ini. Tolong bantu kita " "dengan[color=$color][url=$url]kontribusi[/url][/color]!" +msgid "Constructor Descriptions" +msgstr "Deskripsi Konstruktor" + msgid "Method Descriptions" msgstr "Deskripsi Method" +msgid "Operator Descriptions" +msgstr "Deskripsi Operator" + msgid "%d match." msgstr "Ditemukan %d kecocokan." @@ -1735,12 +1787,12 @@ msgstr "Tampilkan Semua Pelokalan" msgid "Show Selected Locales Only" msgstr "Tampilkan Hanya Pelokalan yang Dipilih" +msgid "Edit Filters" +msgstr "Sunting Filter" + msgid "Language:" msgstr "Bahasa:" -msgid "Script" -msgstr "Skrip" - msgid "Variant" msgstr "Varian" @@ -2160,6 +2212,9 @@ msgstr "Proyek" msgid "Project Settings..." msgstr "Pengaturan Proyek…" +msgid "Project Settings" +msgstr "Pengaturan Proyek" + msgid "Version Control" msgstr "Kontrol Versi" @@ -2278,24 +2333,6 @@ msgid "Install from file" msgstr "Install dari file" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Ini akan mengatur proyek Anda untuk build Android khusus dengan memasang " -"templat sumber ke \"res://android/build\".\n" -"Anda kemudian dapat menerapkan modifikasi dan membangun APK khusus Anda " -"sendiri pada saat ekspor (menambahkan modul, mengubah AndroidManifest.xml, " -"dll.).\n" -"Perhatikan bahwa untuk membuat build khusus alih-alih menggunakan APK yang " -"sudah dibuat sebelumnya, opsi \"Use Custom Build\" harus diaktifkan di " -"preset ekspor Android." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2514,9 +2551,6 @@ msgstr "Tombol Pintasan" msgid "Binding" msgstr "Mengikat" -msgid "%s Error" -msgstr "%s Error" - msgid "All Devices" msgstr "Semua Perangkat" @@ -3344,6 +3378,9 @@ msgstr "Pilih dan gerakkan titik-titik, buat titik dengan RMB." msgid "Enable snap and show grid." msgstr "Izinkan snap dan tampilkan garis-garis kotak." +msgid "Blend:" +msgstr "Campur:" + msgid "Point" msgstr "Titik" @@ -3386,15 +3423,9 @@ msgstr "Hapus titik-titik dan segi tiga." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Buat segi tiga pembauran secara otomatis (sebagai ganti cara manual)" -msgid "Blend:" -msgstr "Campur:" - msgid "Parameter Changed:" msgstr "Parameter Berubah:" -msgid "Edit Filters" -msgstr "Sunting Filter" - msgid "Output node can't be added to the blend tree." msgstr "Node keluaran tidak bisa ditambahkan ke pohon campur." @@ -3513,9 +3544,6 @@ msgstr "Mainkan mundur animasi terpilih dari lokasi sekarang. (A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Mainkan mundur animasi terpilih dari akhir. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Hentikan playback animasi. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Mainkan animasi terpilih dari awal. (Shift+D)" @@ -4664,12 +4692,6 @@ msgstr "Ubah AABB Notifier" msgid "Change Particles AABB" msgstr "Ubah Partikel AABB" -msgid "Change Box Shape Extents" -msgstr "Ubah Batas Box Shape" - -msgid "Change Probe Extents" -msgstr "Ubah Batas Probe" - msgid "Change Capsule Shape Radius" msgstr "Ubah Radius Shape Kapsul" @@ -5470,6 +5492,9 @@ msgstr "Standar" msgid "Connections to method:" msgstr "Hubungan dengan fungsi:" +msgid "Source" +msgstr "Sumber" + msgid "Target" msgstr "Sasaran" @@ -5701,12 +5726,6 @@ msgstr "(kosong)" msgid "Animations:" msgstr "Animasi:" -msgid "Speed:" -msgstr "Kecepatan:" - -msgid "Loop" -msgstr "Pengulangan" - msgid "Animation Frames:" msgstr "Frame Animasi:" @@ -6833,6 +6852,28 @@ msgstr "Hapus semua" msgid "Also delete project contents (no undo!)" msgstr "Hapus juga konten proyek (tidak dapat dibatalkan!)" +msgid "" +"This option will perform full project conversion, updating scenes, resources " +"and scripts from Godot 3.x to work in Godot 4.0.\n" +"\n" +"Note that this is a best-effort conversion, i.e. it makes upgrading the " +"project easier, but it will not open out-of-the-box and will still require " +"manual adjustments.\n" +"\n" +"IMPORTANT: Make sure to backup your project before converting, as this " +"operation makes it impossible to open it in older versions of Godot." +msgstr "" +"Opsi ini akan melakukan konversi proyek menyeluruh, pembaharuan scene, " +"resource, dan script dari Godot 3.x agar dapat bekerja di Godot 4.0.\n" +"\n" +"Catat bahwa ini adalah usaha terbaik untuk mengonversi, seperti mempermudah " +"upgrade proyek, tapi tidak berarti out-of-the-box dan masih memerlukan " +"pengaturan manual.\n" +"\n" +"PENTING: Pastikan untuk membackup proyek anda sebelum konversi, karena " +"tindakan ini akan membuat proyek tidak dapat dibuka pada versi Godot yang " +"lebih lama." + msgid "Can't run project" msgstr "Tidak dapat menjalankan proyek" @@ -6843,18 +6884,21 @@ msgstr "" "Saat ini Anda tidak memiliki proyek apa pun.\n" "Apakah Anda ingin menjelajahi contoh proyek resmi di Perpustakaan Aset?" +msgid "Add Project Setting" +msgstr "Tambahkan Setelan Proyek" + msgid "Delete Item" msgstr "Hapus Item" +msgid "(All)" +msgstr "(Semua)" + msgid "Add Input Action" msgstr "Tampah Aksi Input" msgid "Change Action deadzone" msgstr "Ubah deadzone Aksi" -msgid "Add Input Action Event" -msgstr "Tambah Input Action Event" - msgid "Erase Input Action" msgstr "Hapus Aksi Input" @@ -6882,9 +6926,6 @@ msgstr "Pilih Properti" msgid "Select Virtual Method" msgstr "Pilih Method/Fungsi Virtual" -msgid "Select Method" -msgstr "Pilih Method/Fungsi" - msgid "Batch Rename" msgstr "Ubah Nama Massal" @@ -7625,13 +7666,6 @@ msgstr "Kunci Publik untuk ekspansi APK tidak valid." msgid "Invalid package name:" msgstr "Nama paket tidak valid:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "\"Gunakan Build Custom\" harus diaktifkan untuk menggunakan plugin." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"\"Expor AAB\" hanya bisa valid ketika \"Gunakan Build Custom\" diaktifkan." - msgid "Signing release %s..." msgstr "Menandatangani rilis %s..." @@ -7654,13 +7688,6 @@ msgid "Unsupported export format!" msgstr "Format ekspor tidak didukung!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Mencoba untuk membangun dari templat build khusus, tapi tidak ada informasi " -"versinya. Silakan pasang ulang dari menu 'Proyek'." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" diff --git a/editor/translations/editor/it.po b/editor/translations/editor/it.po index bae2ce1159..87c578b8d1 100644 --- a/editor/translations/editor/it.po +++ b/editor/translations/editor/it.po @@ -37,9 +37,9 @@ # Stefano Merazzi <asso99@hotmail.com>, 2019. # Sinapse X <sinapsex13@gmail.com>, 2019. # Micila Micillotto <micillotto@gmail.com>, 2019, 2020, 2021, 2022. -# Mirko Soppelsa <miknsop@gmail.com>, 2019, 2020, 2021, 2022. +# Mirko Soppelsa <miknsop@gmail.com>, 2019, 2020, 2021, 2022, 2023. # No <kingofwizards.kw7@gmail.com>, 2019. -# StarFang208 <polaritymanx@yahoo.it>, 2019. +# StarFang208 <polaritymanx@yahoo.it>, 2019, 2023. # Katia Piazza <gydey@ridiculousglitch.com>, 2019, 2021. # nickfla1 <lanterniniflavio@gmail.com>, 2019. # Fabio Iotti <fabiogiopla@gmail.com>, 2020. @@ -77,13 +77,16 @@ # Silvia Scaglione <sissisoad@gmail.com>, 2022. # Cosimo Davide Viggiano <cosimod089@gmail.com>, 2022. # Francesco Cammarata <francescocammarata.fr@gmail.com>, 2022. +# enzo cocca <enzo.ccc@gmail.com>, 2023. +# Andrea Migliaccio <andrea.migliaccio@gmail.com>, 2023. +# gianmarco malandra <giamminho12@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-15 13:34+0000\n" -"Last-Translator: Damiano Guida <damiano.guida22@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 00:54+0000\n" +"Last-Translator: gianmarco malandra <giamminho12@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" "Language: it\n" @@ -91,14 +94,59 @@ 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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "Non Impostato" msgid "Physical" msgstr "Fisico" +msgid "Left Mouse Button" +msgstr "Tasto sinistro Mouse" + +msgid "Right Mouse Button" +msgstr "Tasto Destro Mouse" + +msgid "Middle Mouse Button" +msgstr "Tasto centrale Mouse" + +msgid "Mouse Wheel Up" +msgstr "Rotellina Mouse Su." + +msgid "Mouse Wheel Down" +msgstr "Rotellina Mouse Giù." + +msgid "Mouse Wheel Left" +msgstr "Pulsante Rotellina a Sinistra" + +msgid "Mouse Wheel Right" +msgstr "Pulsante Rotellina a Destra" + +msgid "Mouse Thumb Button 1" +msgstr "Pulsante Laterale del Mouse 1" + +msgid "Mouse Thumb Button 2" +msgstr "Pulsante Laterale del Mouse 2" + msgid "Button" msgstr "Pulsante" +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "Movimento del mouse in posizione (%s) con velocità (%s)" + +msgid "Left Stick X-Axis, Joystick 0 X-Axis" +msgstr "Levetta sinistra asse X, joystick 0 asse X" + +msgid "Left Stick Y-Axis, Joystick 0 Y-Axis" +msgstr "Levetta sinistra asse Y, joystick 0 asse y" + +msgid "Right Stick X-Axis, Joystick 1 X-Axis" +msgstr "Levetta destra asse X, joystick 1 asse x" + +msgid "Right Stick Y-Axis, Joystick 1 Y-Axis" +msgstr "Levetta destra Asse-Y, Joystick 1 Asse-Y" + msgid "Select" msgstr "Seleziona" @@ -648,6 +696,9 @@ msgstr "Dal segnale:" msgid "Scene does not contain any script." msgstr "La scena non contiene alcuno script." +msgid "Select Method" +msgstr "Seleziona Metodo" + msgid "Remove" msgstr "Rimuovi" @@ -705,9 +756,6 @@ msgstr "Disconnetti" msgid "Connect a Signal to a Method" msgstr "Connetti un segnale a un metodo" -msgid "Edit Connection:" -msgstr "Modifica una connessione:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Sei sicuro di voler rimuovere tutte le connessioni dal segnale \"%s\"?" @@ -852,23 +900,8 @@ msgstr "Attenzione:" msgid "Error:" msgstr "Errore:" -msgid "C++ Error" -msgstr "Errore C++" - -msgid "C++ Error:" -msgstr "Errore C++:" - -msgid "Source" -msgstr "Sorgente" - -msgid "C++ Source" -msgstr "Sorgente C++" - -msgid "Source:" -msgstr "Sorgente:" - -msgid "C++ Source:" -msgstr "Sorgente C++:" +msgid "%s Error" +msgstr "Errore %s" msgid "Stack Trace" msgstr "Analisi dello stack" @@ -879,6 +912,9 @@ msgstr "Copia Errore" msgid "Open C++ Source on GitHub" msgstr "Apri Sorgente C++ su Github" +msgid "C++ Source" +msgstr "Sorgente C++" + msgid "Video RAM" msgstr "RAM Video" @@ -1705,6 +1741,12 @@ msgstr "sovrascrive %s:" msgid "default:" msgstr "predefinito:" +msgid "Constructors" +msgstr "Costruttori" + +msgid "Operators" +msgstr "Operatori" + msgid "Theme Properties" msgstr "Proprietà del tema" @@ -1739,9 +1781,15 @@ msgstr "" "Al momento non esiste alcuna descrizione per questa proprietà. Aiutaci " "[color=$color][url=$url]aggiungendone una[/url][/color]!" +msgid "Constructor Descriptions" +msgstr "Descrizione del costruttore" + msgid "Method Descriptions" msgstr "Descrizioni del metodo" +msgid "Operator Descriptions" +msgstr "Descrizione degli operatori" + msgid "%d match." msgstr "%d corrispondenze." @@ -1844,12 +1892,12 @@ msgstr "Mostra tutte le lingue" msgid "Show Selected Locales Only" msgstr "Mostra solo le lingue selezionate" +msgid "Edit Filters" +msgstr "Modifica Filtri" + msgid "Language:" msgstr "Lingua:" -msgid "Script" -msgstr "Script" - msgid "Variant" msgstr "Variante" @@ -2413,24 +2461,6 @@ msgid "Install from file" msgstr "Installa da un file" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Questo predisporrà il progetto alle costruzioni personalizzate per Android " -"installando il modello di sorgente in \"res://android/build\".\n" -"Sarà allora possibile applicare delle modifiche e costruire un APK " -"personalizzato durante l'esportazione (aggiungere moduli, cambiare " -"l'AndroidManifest.xml, eccetera).\n" -"Va notato che per creare delle costruzioni personalizzate, invece di usare " -"gli APK pre-costruiti, va attivata l'opzione \"Use Custom Build\" nella " -"preimpostazione d'esportazione per Android." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2657,9 +2687,6 @@ msgstr "Scorciatoie" msgid "Binding" msgstr "Associazione" -msgid "%s Error" -msgstr "Errore %s" - msgid "All Devices" msgstr "Tutti i Dispositivi" @@ -3600,6 +3627,9 @@ msgstr "" msgid "Enable snap and show grid." msgstr "Abilita lo scatto e mostra la griglia." +msgid "Blend:" +msgstr "Blend:" + msgid "Point" msgstr "Punto" @@ -3642,15 +3672,9 @@ msgstr "Cancella punti e triangoli." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Genera i triangoli di fusione automaticamente (anziché manualmente)" -msgid "Blend:" -msgstr "Blend:" - msgid "Parameter Changed:" msgstr "Parametro modificato:" -msgid "Edit Filters" -msgstr "Modifica Filtri" - msgid "Output node can't be added to the blend tree." msgstr "Il nodo in output non può essere aggiunto al BlendTree." @@ -3776,9 +3800,6 @@ msgstr "" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Esegui la seguente animazione al contrario dalla fine. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Ferma il playback dell'animazione. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Esegui la seguente l'animazione dall'inizio. (Shift+D)" @@ -5011,12 +5032,6 @@ msgstr "Cambia notificatore AABB" msgid "Change Particles AABB" msgstr "Cambia AABB Particelle" -msgid "Change Box Shape Extents" -msgstr "Cambia Ampiezza Box Shape" - -msgid "Change Probe Extents" -msgstr "Cambia Estensione Probe" - msgid "Change Capsule Shape Radius" msgstr "Cambia Raggio Capsule Shape" @@ -5828,6 +5843,9 @@ msgstr "Standard" msgid "Connections to method:" msgstr "Connessioni al metodo:" +msgid "Source" +msgstr "Sorgente" + msgid "Target" msgstr "Target" @@ -6075,12 +6093,6 @@ msgstr "(vuoto)" msgid "Animations:" msgstr "Animazioni:" -msgid "Speed:" -msgstr "Velocità:" - -msgid "Loop" -msgstr "Loop" - msgid "Animation Frames:" msgstr "Frame Animazione:" @@ -6795,6 +6807,9 @@ msgstr "Luce" msgid "Process" msgstr "Processa" +msgid "Sky" +msgstr "Cielo" + msgid "Fog" msgstr "Nebbia" @@ -7503,9 +7518,6 @@ msgstr "Aggiungi Azione di Input" msgid "Change Action deadzone" msgstr "Cambia la zona morta d'azione" -msgid "Add Input Action Event" -msgstr "Aggiungi Evento di Azione Input" - msgid "Erase Input Action" msgstr "Cancella Azione di Input" @@ -7533,9 +7545,6 @@ msgstr "Seleziona Proprietà" msgid "Select Virtual Method" msgstr "Seleziona Metodo Virtuale" -msgid "Select Method" -msgstr "Seleziona Metodo" - msgid "Batch Rename" msgstr "Rinomina in blocco" @@ -8324,24 +8333,11 @@ msgstr "Chiave pubblica non valida per l'espansione dell'APK." msgid "Invalid package name:" msgstr "Nome del pacchetto non valido:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "Per utilizzare i plugin \"Use Custom Build\" deve essere abilitato." - msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "\"Oltrepassaggio\" è valido solo quando \"Modalità XR\" è impostato su " "\"OpenXR\"." -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"\"Export AAB\" è valido soltanto quanto \"Use Custom Build\" è abilitato." - -msgid "" -"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "" -"\"Min SDK\" può essere sovrascritto solo se \"Utilizza Build " -"Personalizzata\" è abilitato." - msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" "\"Min SDK\" dovrebbe essere un intero valido, ma si è ottenuto \"%s\" che è " @@ -8355,12 +8351,6 @@ msgstr "" "dalla libreria Godot." msgid "" -"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "" -"\"Target SDK\" può essere sovrascritto solo se \"Utilizza Build " -"Personalizzata\" è abilitato." - -msgid "" "\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" "\"Target SDK\" dovrebbe essere un intero valido, ma si è ottenuto \"%s\" che " @@ -8426,14 +8416,6 @@ msgid "Unsupported export format!" msgstr "Formato d'esportazione non supportato!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Tentato di costruire da un template build personalizzato, ma nessuna " -"informazione sulla sua versione esiste. Per favore, reinstallalo dal menu " -"\"Progetto\"." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" diff --git a/editor/translations/editor/ja.po b/editor/translations/editor/ja.po index b580b05f44..f24c55d10f 100644 --- a/editor/translations/editor/ja.po +++ b/editor/translations/editor/ja.po @@ -4,7 +4,7 @@ # This file is distributed under the same license as the Godot source code. # akirakido <achts.y@gmail.com>, 2016-2017, 2018, 2019. # D_first <dntk.daisei@gmail.com>, 2017, 2018. -# Daisuke Saito <d.saito@coriginate.com>, 2017, 2018. +# Daisuke Saito <d.saito@coriginate.com>, 2017, 2018, 2023. # h416 <shinichiro.hirama@gmail.com>, 2017. # hopping tappy (たっぴさん) <hopping.tappy@gmail.com>, 2016-2017, 2018. # Jun Shiozawa <haresecret@gmail.com>, 2017, 2018, 2020. @@ -47,13 +47,15 @@ # Narazaki Shuji <shujinarazaki@protonmail.com>, 2022. # ta ko <neji.cion@gmail.com>, 2022. # T K <kidaaam@gmail.com>, 2022, 2023. +# MizunagiKB <mizukb@live.jp>, 2023. +# Saitos <purifyzombie@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-20 10:19+0000\n" -"Last-Translator: T K <kidaaam@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 00:54+0000\n" +"Last-Translator: Saitos <purifyzombie@gmail.com>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" "Language: ja\n" @@ -61,20 +63,189 @@ 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.15.1\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "未設定" msgid "Physical" msgstr "物理" +msgid "Left Mouse Button" +msgstr "マウス左ボタン" + +msgid "Right Mouse Button" +msgstr "マウス右ボタン" + +msgid "Middle Mouse Button" +msgstr "マウス中央ボタン" + +msgid "Mouse Wheel Up" +msgstr "マウス上ホイール" + +msgid "Mouse Wheel Down" +msgstr "マウス下ホイール" + +msgid "Mouse Wheel Left" +msgstr "マウス左ホイール" + +msgid "Mouse Wheel Right" +msgstr "マウス右ホイール" + +msgid "Mouse Thumb Button 1" +msgstr "マウスボタン1" + +msgid "Mouse Thumb Button 2" +msgstr "マウスボタン2" + msgid "Button" msgstr "Button" +msgid "Double Click" +msgstr "ダブルクリック" + +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "速度 (%s) での位置 (%s) でのマウスの動き" + +msgid "Left Stick X-Axis, Joystick 0 X-Axis" +msgstr "左スティック X軸、ジョイスティック0 X軸" + +msgid "Left Stick Y-Axis, Joystick 0 Y-Axis" +msgstr "左スティック Y軸、ジョイスティック0 Y軸" + +msgid "Right Stick X-Axis, Joystick 1 X-Axis" +msgstr "右スティック X軸、ジョイスティック1 X軸" + +msgid "Right Stick Y-Axis, Joystick 1 Y-Axis" +msgstr "右スティック Y軸、ジョイスティック1 Y軸" + +msgid "Joystick 2 X-Axis, Left Trigger, Sony L2, Xbox LT" +msgstr "ジョイスティック2 X軸、左トリガー、Sony L2、Xbox LT" + +msgid "Joystick 2 Y-Axis, Right Trigger, Sony R2, Xbox RT" +msgstr "ジョイスティック2 Y軸、右トリガー、Sony R2、Xbox RT" + +msgid "Joystick 3 X-Axis" +msgstr "ジョイスティック3 X軸" + +msgid "Joystick 3 Y-Axis" +msgstr "ジョイスティック3 Y軸" + +msgid "Joystick 4 X-Axis" +msgstr "ジョイスティック4 X軸" + +msgid "Joystick 4 Y-Axis" +msgstr "ジョイスティック4 Y軸" + +msgid "Unknown Joypad Axis" +msgstr "不明なジョイパッド軸" + +msgid "Joypad Motion on Axis %d (%s) with Value %.2f" +msgstr "値 %.2f の軸 %d (%s) のジョイパッド モーション" + +msgid "Bottom Action, Sony Cross, Xbox A, Nintendo B" +msgstr "下アクション、ソニー✕、Xbox A、Nintendo B" + +msgid "Right Action, Sony Circle, Xbox B, Nintendo A" +msgstr "右アクション、ソニー○、Xbox B,Nintendo A" + +msgid "Left Action, Sony Square, Xbox X, Nintendo Y" +msgstr "左アクション、ソニー□、Xbox X、Nintendo Y" + +msgid "Top Action, Sony Triangle, Xbox Y, Nintendo X" +msgstr "上アクション, ソニー△, Xbox Y, Nintendo X" + +msgid "Back, Sony Select, Xbox Back, Nintendo -" +msgstr "Back, ソニー Select, Xbox Back, Nintendo -" + +msgid "Guide, Sony PS, Xbox Home" +msgstr "ガイド, Sony PS, Xbox Home" + +msgid "Start, Nintendo +" +msgstr "スタート, Nintendo +" + +msgid "Left Stick, Sony L3, Xbox L/LS" +msgstr "左スティック, ソニー L3, Xbox L/LS" + +msgid "Right Stick, Sony R3, Xbox R/RS" +msgstr "右スティック, ソニー R3, Xbox R/RS" + +msgid "Left Shoulder, Sony L1, Xbox LB" +msgstr "左ショルダー, ソニー L1, Xbox LB" + +msgid "Right Shoulder, Sony R1, Xbox RB" +msgstr "右ショルダー, ソニー R1, Xbox RB" + +msgid "D-pad Up" +msgstr "D-pad 上" + +msgid "D-pad Down" +msgstr "D-pad 下" + +msgid "D-pad Left" +msgstr "D-pad 左" + +msgid "D-pad Right" +msgstr "D-pad 右" + +msgid "Xbox Share, PS5 Microphone, Nintendo Capture" +msgstr "Xbox シェア, PS5 マイク, Nintendo キャプチャ" + +msgid "Xbox Paddle 1" +msgstr "Xbox パドル 1" + +msgid "Xbox Paddle 2" +msgstr "Xbox パドル 2" + +msgid "Xbox Paddle 3" +msgstr "Xbox パドル 3" + +msgid "Xbox Paddle 4" +msgstr "Xbox パドル 4" + +msgid "PS4/5 Touchpad" +msgstr "PS4/5 タッチパッド" + +msgid "touched" +msgstr "タッチ" + +msgid "released" +msgstr "リリース" + +msgid "Screen %s at (%s) with %s touch points" +msgstr "画面 %s (%s) で %s 個のタッチポイント" + +msgid "" +"Screen dragged with %s touch points at position (%s) with velocity of (%s)" +msgstr "位置 (%s) で速度 (%s) の %s 個のタッチポイントで画面をドラッグしました" + +msgid "Magnify Gesture at (%s) with factor %s" +msgstr "拡大ジェスチャー(%s)で倍率 %sにします" + +msgid "Pan Gesture at (%s) with delta (%s)" +msgstr "パンジェスチャー (%s) で デルタを (%s)にします" + +msgid "MIDI Input on Channel=%s Message=%s" +msgstr "MIDI入力 チャンネル=%s メッセージ=%s" + +msgid "Input Event with Shortcut=%s" +msgstr "入力イベント ショートカット=%s" + +msgid "Accept" +msgstr "決定" + msgid "Select" msgstr "選択" msgid "Cancel" msgstr "キャンセル" +msgid "Focus Next" +msgstr "次にフォーカス" + +msgid "Focus Prev" +msgstr "前へフォーカス" + msgid "Left" msgstr "左" @@ -87,6 +258,15 @@ msgstr "上り" msgid "Down" msgstr "下り" +msgid "Page Up" +msgstr "Page Up" + +msgid "Page Down" +msgstr "Page Down" + +msgid "Home" +msgstr "Home" + msgid "End" msgstr "終り" @@ -105,24 +285,126 @@ msgstr "元に戻す" msgid "Redo" msgstr "やり直す" +msgid "Completion Query" +msgstr "自動補完" + +msgid "New Line" +msgstr "改行" + +msgid "New Blank Line" +msgstr "新しい空白行" + +msgid "New Line Above" +msgstr "上に改行" + msgid "Indent" msgstr "インデント" +msgid "Dedent" +msgstr "デデント" + +msgid "Backspace" +msgstr "バックスペース" + +msgid "Backspace Word" +msgstr "バックスペース文字" + +msgid "Backspace all to Left" +msgstr "バックスペースをすべて左に" + msgid "Delete" msgstr "削除" +msgid "Delete Word" +msgstr "文字を削除" + +msgid "Delete all to Right" +msgstr "右側をすべて削除" + +msgid "Caret Left" +msgstr "キャレット・レフト" + +msgid "Caret Word Left" +msgstr "キャレットワードレフト" + +msgid "Caret Right" +msgstr "キャレットライト" + +msgid "Caret Word Right" +msgstr "キャレットワードライト" + +msgid "Caret Up" +msgstr "キャレットアップ" + +msgid "Caret Down" +msgstr "キャレットダウン" + +msgid "Caret Line Start" +msgstr "キャレット行の開始" + +msgid "Caret Line End" +msgstr "キャレット行末" + +msgid "Caret Page Up" +msgstr "キャレット Page Up" + +msgid "Caret Page Down" +msgstr "キャレット Page Down" + +msgid "Caret Document Start" +msgstr "キャレット ドキュメントの開始" + +msgid "Caret Document End" +msgstr "キャレット ドキュメント終了" + +msgid "Caret Add Below" +msgstr "キャレットを下に追加" + +msgid "Caret Add Above" +msgstr "キャレットの上に追加" + +msgid "Scroll Up" +msgstr "上スクロール" + +msgid "Scroll Down" +msgstr "下スクロール" + msgid "Select All" msgstr "すべて選択" +msgid "Select Word Under Caret" +msgstr "キャレットの下にある文字を選択" + +msgid "Add Selection for Next Occurrence" +msgstr "次のオカレンスの選択項目を追加" + +msgid "Clear Carets and Selection" +msgstr "キャレットと選択をクリア" + +msgid "Toggle Insert Mode" +msgstr "インサートモードを切り替える" + +msgid "Text Submitted" +msgstr "送信されたテキスト" + msgid "Duplicate Nodes" msgstr "ノードを複製" msgid "Delete Nodes" msgstr "ノードを削除" +msgid "Go Up One Level" +msgstr "レベルを1つ上げる" + msgid "Refresh" msgstr "再読み込み" +msgid "Show Hidden" +msgstr "非表示を表示" + +msgid "Swap Input Direction" +msgstr "入力方向の入れ替え" + msgid "Invalid input %d (not passed) in expression" msgstr "式に無効入力 %d (渡されていません)" @@ -144,6 +426,12 @@ msgstr "'%s' を構築するための引数が無効です" msgid "On call to '%s':" msgstr "'%s' の呼び出し時:" +msgid "Built-in script" +msgstr "組み込みスクリプト" + +msgid "Built-in" +msgstr "ビルトイン" + msgid "B" msgstr "B" @@ -165,6 +453,13 @@ msgstr "PiB" msgid "EiB" msgstr "EiB" +msgid "Example: %s" +msgstr "例: %s" + +msgid "%d item" +msgid_plural "%d items" +msgstr[0] "%d 項目" + msgid "" "Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'" @@ -178,9 +473,33 @@ msgstr "'%s' という名前のアクションがすでに存在します。" msgid "Add Event" msgstr "イベントを追加" +msgid "Remove Action" +msgstr "アクションの除去" + +msgid "Cannot Remove Action" +msgstr "アクションを除去できません" + +msgid "Edit Event" +msgstr "イベントの編集" + +msgid "Remove Event" +msgstr "イベントの除去" + +msgid "Filter by name..." +msgstr "名前でフィルタ..." + +msgid "Clear All" +msgstr "すべてクリア" + +msgid "Add New Action" +msgstr "新しいアクションの追加" + msgid "Add" msgstr "追加" +msgid "Show Built-in Actions" +msgstr "組み込みアクションを表示" + msgid "Action" msgstr "アクション(Action)" @@ -193,6 +512,9 @@ msgstr "時間:" msgid "Value:" msgstr "値:" +msgid "Update Selected Key Handles" +msgstr "選択したキーハンドルの更新" + msgid "Insert Key Here" msgstr "ここにキーを挿入" @@ -202,21 +524,98 @@ msgstr "選択中のキーを複製" msgid "Delete Selected Key(s)" msgstr "選択中のキーを削除" +msgid "Make Handles Free" +msgstr "フリーハンドルを作成" + +msgid "Make Handles Linear" +msgstr "線形ハンドルを作成" + +msgid "Make Handles Balanced" +msgstr "バランスハンドルを作成" + +msgid "Make Handles Mirrored" +msgstr "ミラーハンドルを作成" + +msgid "Make Handles Balanced (Auto Tangent)" +msgstr "バランスハンドルを作成 (自動タンジェント)" + +msgid "Make Handles Mirrored (Auto Tangent)" +msgstr "ミラーハンドルを作成 (自動タンジェント)" + msgid "Add Bezier Point" msgstr "ベジェポイントを追加" msgid "Move Bezier Points" msgstr "ベジェポイントを移動" +msgid "Animation Duplicate Keys" +msgstr "アニメーションのキーを複製" + +msgid "Animation Delete Keys" +msgstr "アニメーションのキーを削除" + +msgid "Focus" +msgstr "フォーカス" + +msgid "Select All Keys" +msgstr "すべてのキーを選択" + +msgid "Deselect All Keys" +msgstr "すべてのキーの選択を解除" + +msgid "Animation Change Transition" +msgstr "アニメーションのトランジションを変更" + +msgid "Animation Change %s" +msgstr "アニメーション %s に変更" + +msgid "Animation Change Keyframe Value" +msgstr "アニメーションキーフレームの値を変更" + +msgid "Animation Change Call" +msgstr "アニメーション呼び出しの変更" + +msgid "Animation Multi Change Transition" +msgstr "アニメーションのトランジションを複数変更" + +msgid "Animation Multi Change %s" +msgstr "アニメーション%sに複数変更" + +msgid "Animation Multi Change Keyframe Value" +msgstr "アニメーションキーフレームの値を複数変更" + +msgid "Animation Multi Change Call" +msgstr "アニメーション呼び出しを複数変更" + msgid "Change Animation Length" msgstr "アニメーションの長さを変更" msgid "Change Animation Loop" msgstr "アニメーションのループを変更" +msgid "Can't change loop mode on animation instanced from imported scene." +msgstr "" +"インポートしたシーンからインスタンス化したアニメーションのループモードが変更" +"できません。" + +msgid "Can't change loop mode on animation embedded in another scene." +msgstr "別のシーンに埋め込まれたアニメーションのループモードを変更できません。" + msgid "Property Track" msgstr "プロパティトラック" +msgid "3D Position Track" +msgstr "3Dポジショントラック" + +msgid "3D Rotation Track" +msgstr "3D 回転トラック" + +msgid "3D Scale Track" +msgstr "3Dスケールトラック" + +msgid "Blend Shape Track" +msgstr "ブレンドシェイプトラック" + msgid "Call Method Track" msgstr "メソッド呼び出しトラック" @@ -247,6 +646,9 @@ msgstr "関数:" msgid "Audio Clips:" msgstr "オーディオクリップ:" +msgid "Animation Clips:" +msgstr "アニメーションクリップ:" + msgid "Change Track Path" msgstr "トラックパスを変更" @@ -277,6 +679,9 @@ msgstr "回転:" msgid "Scale:" msgstr "スケール:" +msgid "Blend Shape:" +msgstr "形状のブレンド:" + msgid "Type:" msgstr "型:" @@ -292,6 +697,18 @@ msgstr "インハンドル:" msgid "Out-Handle:" msgstr "アウトハンドル:" +msgid "Handle mode: Free\n" +msgstr "ハンドルモード: フリー\n" + +msgid "Handle mode: Linear\n" +msgstr "ハンドルモード: 線形\n" + +msgid "Handle mode: Balanced\n" +msgstr "ハンドルモード: バランス\n" + +msgid "Handle mode: Mirrored\n" +msgstr "ハンドルモード: ミラー\n" + msgid "Stream:" msgstr "ストリーム:" @@ -325,6 +742,12 @@ msgstr "リニア" msgid "Cubic" msgstr "キュービック" +msgid "Linear Angle" +msgstr "直線角" + +msgid "Cubic Angle" +msgstr "立方角" + msgid "Clamp Loop Interp" msgstr "ループ補間をクランプ" @@ -352,12 +775,28 @@ msgstr "アニメーション補間モードの変更" msgid "Change Animation Loop Mode" msgstr "アニメーションのループモードを変更" +msgid "" +"Compressed tracks can't be edited or removed. Re-import the animation with " +"compression disabled in order to edit." +msgstr "" +"圧縮されたトラックは、編集や削除はできません。編集するには、圧縮を無効にして" +"アニメーションを再インポートしてください。" + msgid "Remove Anim Track" msgstr "アニメーショントラックを除去" +msgid "Create new track for %s and insert key?" +msgstr "%s の新規トラックを作成し、キーを挿入しますか?" + +msgid "Create %d new tracks and insert keys?" +msgstr "%d 新規トラックを作成し、キーを挿入しますか?" + msgid "Create" msgstr "作成" +msgid "Animation Insert Key" +msgstr "アニメーションキーを挿入" + msgid "node '%s'" msgstr "ノード '%s'" @@ -378,6 +817,13 @@ msgstr "アニメーションのステップを変更" msgid "Rearrange Tracks" msgstr "トラックの並べ替え" +msgid "Blend Shape tracks only apply to MeshInstance3D nodes." +msgstr "Blend Shapeトラックは、MeshInstance3Dノードにのみ適用されます。" + +msgid "Position/Rotation/Scale 3D tracks only apply to 3D-based nodes." +msgstr "" +"位置/回転/スケール 3D トラックは、3D ベースのノードにのみ適用されます。" + msgid "" "Audio tracks can only point to nodes of type:\n" "-AudioStreamPlayer\n" @@ -404,6 +850,18 @@ msgstr "ベジェトラックを追加" msgid "Track path is invalid, so can't add a key." msgstr "トラックのパスが無効なため、キーを追加できません。" +msgid "Track is not of type Node3D, can't insert key" +msgstr "トラックの型が Node3D ではないため、キーを挿入できません" + +msgid "Add Position Key" +msgstr "位置キーを追加" + +msgid "Add Rotation Key" +msgstr "回転キーを追加" + +msgid "Add Scale Key" +msgstr "スケールキーを追加" + msgid "Add Track Key" msgstr "トラックキーを追加" @@ -416,6 +874,9 @@ msgstr "メソッドトラックキーの追加" msgid "Method not found in object:" msgstr "オブジェクト内にメソッドが見つかりません:" +msgid "Animation Move Keys" +msgstr "アニメーション キーの移動" + msgid "Position" msgstr "位置" @@ -425,6 +886,9 @@ msgstr "回転" msgid "Scale" msgstr "スケール" +msgid "BlendShape" +msgstr "ブレンドシェイプ" + msgid "Methods" msgstr "メソッド" @@ -440,10 +904,41 @@ msgstr "クリップボードは空です!" msgid "Paste Tracks" msgstr "トラックを貼り付け" +msgid "Animation Scale Keys" +msgstr "アニメーション キーのスケール" + +msgid "Make Easing Keys" +msgstr "イージングキーの作成" + msgid "" "This option does not work for Bezier editing, as it's only a single track." msgstr "このオプションは単一トラックでのベジェ編集では機能しません。" +msgid "Animation Add RESET Keys" +msgstr "RESETキーの追加" + +msgid "Bake Animation as Linear keys." +msgstr "アニメーションをリニア キーとしてベイクします。" + +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To modify this animation, navigate to the scene's Advanced Import settings " +"and select the animation.\n" +"Some options, including looping, are available here. To add custom tracks, " +"enable \"Save To File\" and\n" +"\"Keep Custom Tracks\"." +msgstr "" +"このアニメーションはインポートされたシーンに属しているため、インポートされた" +"トラックへの変更は保存されません。\n" +"\n" +"このアニメーションを変更するには、シーンの高度なインポート設定に移動し、アニ" +"メーションを選択します。\n" +"ループを含むいくつかのオプションがあります。\n" +"カスタムトラックを追加するには、「ファイルに保存」と「カスタムトラックを保持" +"する」を有効にしてください。" + msgid "Warning: Editing imported animation" msgstr "警告:インポートしたアニメーションを編集しています" @@ -452,6 +947,12 @@ msgstr "" "アニメーションを作って編集するには、 AnimationPlayer ノードを選択してくださ" "い。" +msgid "Imported Scene" +msgstr "インポートされたシーン" + +msgid "Toggle between the bezier curve editor and track editor." +msgstr "ベジェ曲線エディタとトラックエディタを切り替えます。" + msgid "Only show tracks from nodes selected in tree." msgstr "ツリーで選択したノードのトラックのみを表示します。" @@ -486,6 +987,9 @@ msgstr "スケールの選択" msgid "Scale From Cursor" msgstr "カーソル基準でスケール" +msgid "Make Easing Selection" +msgstr "イージング選択を作成" + msgid "Duplicate Selection" msgstr "選択範囲を複製" @@ -504,6 +1008,18 @@ msgstr "前のステップへ" msgid "Apply Reset" msgstr "リセット" +msgid "Bake Animation" +msgstr "アニメーションをベイク" + +msgid "Optimize Animation (no undo)" +msgstr "アニメーションの最適化(アンドゥなし)" + +msgid "Clean-Up Animation (no undo)" +msgstr "アニメーションをクリーンアップ(アンドゥなし)" + +msgid "Pick a node to animate:" +msgstr "アニメーションするノードを選択:" + msgid "Use Bezier Curves" msgstr "ベジェ曲線を使用" @@ -513,9 +1029,15 @@ msgstr "RESETトラックを作成" msgid "Anim. Optimizer" msgstr "アニメーションのオプティマイザー" +msgid "Max. Velocity Error:" +msgstr "最大ベロシティエラー:" + msgid "Max. Angular Error:" msgstr "最大。角度エラー:" +msgid "Max. Precision Error:" +msgstr "最大精度エラー:" + msgid "Optimize" msgstr "最適化" @@ -537,12 +1059,21 @@ msgstr "クリーンアップ" msgid "Scale Ratio:" msgstr "スケール比:" +msgid "Select Transition and Easing" +msgstr "トランジションとイージングを選択" + +msgid "Anim. Baker" +msgstr "アニメーションベイカー" + msgid "Select Tracks to Copy" msgstr "コピーするトラックを選択" msgid "Select All/None" msgstr "すべてを選択/解除" +msgid "Animation Change Keyframe Time" +msgstr "アニメーションキーフレームの時間を変更" + msgid "Add Audio Track Clip" msgstr "オーディオトラッククリップの追加" @@ -561,6 +1092,14 @@ msgstr "行番号:" msgid "%d replaced." msgstr "%d件を置換しました。" +msgid "%d match" +msgid_plural "%d matches" +msgstr[0] "%d件の一致が見つかりました" + +msgid "%d of %d match" +msgid_plural "%d of %d matches" +msgstr[0] "%d件中 %d件の一致が見つかりました" + msgid "Match Case" msgstr "大文字小文字を区別する" @@ -619,9 +1158,15 @@ msgstr "スクリプトに接続:" msgid "From Signal:" msgstr "シグナルから:" +msgid "Filter Nodes" +msgstr "ノードをフィルタ" + msgid "Scene does not contain any script." msgstr "シーンにはスクリプトが含まれていません。" +msgid "Select Method" +msgstr "メソッドの選択" + msgid "Remove" msgstr "除去" @@ -631,6 +1176,12 @@ msgstr "呼び出し引数を追加:" msgid "Extra Call Arguments:" msgstr "追加の呼び出し引数:" +msgid "Allows to drop arguments sent by signal emitter." +msgstr "シグナルエミッターから送信された引数をドロップできるようにします。" + +msgid "Unbind Signal Arguments:" +msgstr "シグナルの引数を変更:" + msgid "Receiver Method:" msgstr "受信側メソッド:" @@ -662,6 +1213,9 @@ msgstr "接続" msgid "Signal:" msgstr "シグナル:" +msgid "No description." +msgstr "説明がありません。" + msgid "Connect '%s' to '%s'" msgstr "'%s' を '%s' に接続" @@ -680,27 +1234,33 @@ msgstr "切断" msgid "Connect a Signal to a Method" msgstr "メソッドにシグナルを接続" -msgid "Edit Connection:" -msgstr "接続を編集:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "シグナル %s からすべての接続を除去してもよろしいですか?" msgid "Signals" msgstr "シグナル" +msgid "Filter Signals" +msgstr "シグナルを絞り込む" + msgid "Are you sure you want to remove all connections from this signal?" msgstr "このシグナルからすべての接続を除去してもよろしいですか?" msgid "Disconnect All" msgstr "すべて切断" +msgid "Copy Name" +msgstr "名前をコピー" + msgid "Edit..." msgstr "編集..." msgid "Go to Method" msgstr "メソッドへ移動" +msgid "Change Type of \"%s\"" +msgstr "\"%s\" の型を変更する" + msgid "Change" msgstr "変更" @@ -710,6 +1270,12 @@ msgstr "%s を新規作成" msgid "No results for \"%s\"." msgstr "\"%s\" の結果はありません。" +msgid "This class is marked as deprecated." +msgstr "このクラスは非推奨としてマークされています。" + +msgid "This class is marked as experimental." +msgstr "このクラスは実験用としてマークされます。" + msgid "No description available for %s." msgstr "%s についての説明はありません。" @@ -719,6 +1285,9 @@ msgstr "お気に入り:" msgid "Recent:" msgstr "最近:" +msgid "(Un)favorite selected item." +msgstr "選択中のアイテムをお気に入りにする / しない" + msgid "Search:" msgstr "検索:" @@ -746,9 +1315,21 @@ msgstr "ノードのパスをコピー" msgid "Instance:" msgstr "インスタンス:" +msgid "" +"This node has been instantiated from a PackedScene file:\n" +"%s\n" +"Click to open the original file in the Editor." +msgstr "" +"このノードは以下のPackedSceneファイルからインスタンス化されました。\n" +"%s\n" +"クリックすると元のファイルがエディタで開かれます。" + msgid "Toggle Visibility" msgstr "可視性の切り替え" +msgid "ms" +msgstr "ミリ秒" + msgid "Monitors" msgstr "モニター" @@ -818,6 +1399,21 @@ msgstr "時間" msgid "Calls" msgstr "呼び出し" +msgid "Fit to Frame" +msgstr "フレームに合わせる" + +msgid "Linked" +msgstr "連動" + +msgid "CPU" +msgstr "CPU" + +msgid "GPU" +msgstr "GPU" + +msgid "Execution resumed." +msgstr "実行が再開されました。" + msgid "Bytes:" msgstr "バイト:" @@ -827,26 +1423,32 @@ msgstr "警告:" msgid "Error:" msgstr "エラー:" -msgid "C++ Error" -msgstr "C++ エラー" +msgid "%s Error" +msgstr "%s エラー" -msgid "C++ Error:" -msgstr "C++ エラー:" +msgid "Stack Trace" +msgstr "スタックトレース" -msgid "Source" -msgstr "ソース" +msgid "Stack Trace:" +msgstr "スタックトレース:" -msgid "C++ Source" -msgstr "C++ ソース" +msgid "Debug session started." +msgstr "デバッグセッションを開始しました。" -msgid "Source:" -msgstr "ソース:" +msgid "Debug session closed." +msgstr "デバッグセッションを終了しました。" -msgid "C++ Source:" -msgstr "C++ ソース:" +msgid "Line %d" +msgstr "行番号 %d" -msgid "Stack Trace" -msgstr "スタックトレース" +msgid "Delete Breakpoint" +msgstr "ブレークポイントの削除" + +msgid "Delete All Breakpoints in:" +msgstr "すべてのブレークポイントを消去:" + +msgid "Delete All Breakpoints" +msgstr "すべてのブレークポイントの削除" msgid "Copy Error" msgstr "エラーをコピー" @@ -854,6 +1456,9 @@ msgstr "エラーをコピー" msgid "Open C++ Source on GitHub" msgstr "C++のソースをGitHubで開く" +msgid "C++ Source" +msgstr "C++ ソース" + msgid "Video RAM" msgstr "ビデオRAM" @@ -875,6 +1480,9 @@ msgstr "続行" msgid "Stack Frames" msgstr "スタックフレーム" +msgid "Filter Stack Variables" +msgstr "スタック変数でフィルタ" + msgid "Breakpoints" msgstr "ブレークポイント" @@ -887,6 +1495,9 @@ msgstr "すべて折りたたむ" msgid "Profiler" msgstr "プロファイラー" +msgid "Visual Profiler" +msgstr "ビジュアルプロファイラー" + msgid "List of Video Memory Usage by Resource:" msgstr "リソースによるビデオメモリーの消費量一覧:" @@ -976,6 +1587,12 @@ msgstr "シーンを開く" msgid "Owners of: %s (Total: %d)" msgstr "%s のオーナー (合計: %d)" +msgid "Localization remap" +msgstr "ローカライズの再マップ" + +msgid "Localization remap for path '%s' and locale '%s'." +msgstr "パス '%s' とロケール '%s' のローカライズの再マップ。" + msgid "" "Remove the selected files from the project? (Cannot be undone.)\n" "Depending on your filesystem configuration, the files will either be moved " @@ -1192,6 +1809,12 @@ msgstr "バイパス" msgid "Bus Options" msgstr "バス オプション" +msgid "Duplicate Bus" +msgstr "オーディオバスを複製" + +msgid "Delete Bus" +msgstr "オーディオバスを削除" + msgid "Reset Volume" msgstr "音量をリセット" @@ -1279,18 +1902,27 @@ msgstr "有効な文字:" msgid "Must not collide with an existing engine class name." msgstr "既存のエンジンクラス名と重複してはなりません。" +msgid "Must not collide with an existing global script class name." +msgstr "既存のグローバルスクリプトクラス名と競合しないようにしてください。" + msgid "Must not collide with an existing built-in type name." msgstr "既存の組み込み型名と重複してはいけません。" msgid "Must not collide with an existing global constant name." msgstr "既存のグローバル定数名と重複してはいけません。" +msgid "Keyword cannot be used as an Autoload name." +msgstr "キーワードは自動読み込みの名前として使用できません。" + msgid "Autoload '%s' already exists!" msgstr "自動読み込み '%s' はすでに存在します!" msgid "Rename Autoload" msgstr "自動読み込みの名前変更" +msgid "Toggle Autoload Globals" +msgstr "グローバルの自動読込みを切り替え" + msgid "Move Autoload" msgstr "自動読み込みを移動" @@ -1303,12 +1935,18 @@ msgstr "有効" msgid "Rearrange Autoloads" msgstr "自動読み込みの並べ替え" +msgid "Can't add Autoload:" +msgstr "自動読み込みを追加出来ません:" + msgid "%s is an invalid path. File does not exist." msgstr "%s は無効なパスです。ファイルが存在しません。" msgid "%s is an invalid path. Not in resource path (res://)." msgstr "%s は無効なパスです。リソースパス (res://) に存在しません。" +msgid "Add Autoload" +msgstr "自動読み込みを追加" + msgid "Path:" msgstr "パス:" @@ -1318,6 +1956,9 @@ msgstr "ノード名:" msgid "Global Variable" msgstr "グローバル変数" +msgid "3D Engine" +msgstr "3Dエンジン" + msgid "2D Physics" msgstr "2D物理" @@ -1327,9 +1968,115 @@ msgstr "3D物理" msgid "Navigation" msgstr "ナビゲーション" +msgid "XR" +msgstr "XR" + +msgid "RenderingDevice" +msgstr "レンダリングデバイス" + msgid "OpenGL" msgstr "OpenGL" +msgid "Vulkan" +msgstr "Vulkan" + +msgid "Text Server: Fallback" +msgstr "テキストサーバー: フォールバック" + +msgid "Text Server: Advanced" +msgstr "テキストサーバー: 詳細" + +msgid "TTF, OTF, Type 1, WOFF1 Fonts" +msgstr "TTF, OTF, Type 1, WOFF1 フォント" + +msgid "WOFF2 Fonts" +msgstr "WOFF2 フォント" + +msgid "SIL Graphite Fonts" +msgstr "SILグラファイトフォント" + +msgid "Multi-channel Signed Distance Field Font Rendering" +msgstr "マルチチャンネル符号付き距離フィールドフォント描画" + +msgid "3D Nodes as well as RenderingServer access to 3D features." +msgstr "3Dノードおよび3D機能へのRenderingServerのアクセス。" + +msgid "2D Physics nodes and PhysicsServer2D." +msgstr "2D物理ノードと PhysicsServer2D" + +msgid "3D Physics nodes and PhysicsServer3D." +msgstr "3D物理ノードとPhysicsServer3D" + +msgid "Navigation, both 2D and 3D." +msgstr "2Dと3Dのナビゲーション。" + +msgid "XR (AR and VR)." +msgstr "XR (AR と VR)." + +msgid "" +"RenderingDevice based rendering (if disabled, the OpenGL back-end is " +"required)." +msgstr "" +"レンダリングデバイスベースのレンダリング(無効の場合、OpenGLバックエンドが必" +"要です)" + +msgid "" +"OpenGL back-end (if disabled, the RenderingDevice back-end is required)." +msgstr "" +"OpenGLバックエンド(無効の場合、RenderingDeviceバックエンドが必要です)" + +msgid "Vulkan back-end of RenderingDevice." +msgstr "レンダリングデバイスのVulkanバックエンド" + +msgid "" +"Fallback implementation of Text Server\n" +"Supports basic text layouts." +msgstr "" +"Text Server のフォールバック実装\n" +"基本的なテキストレイアウトをサポート" + +msgid "" +"Text Server implementation powered by ICU and HarfBuzz libraries.\n" +"Supports complex text layouts, BiDi, and contextual OpenType font features." +msgstr "" +"ICUとHarfBuzzライブラリによるテキストサーバーの実装。\n" +"複雑なテキストレイアウト、BiDi、コンテクストOpenTypeフォント機能をサポートし" +"ます。" + +msgid "" +"TrueType, OpenType, Type 1, and WOFF1 font format support using FreeType " +"library (if disabled, WOFF2 support is also disabled)." +msgstr "" +"FreeTypeライブラリを使用したTrueType、OpenType、Type1、WOFF1フォントフォー" +"マット対応(無効の場合、WOFF2対応も無効となります)" + +msgid "WOFF2 font format support using FreeType and Brotli libraries." +msgstr "" +"FreeType および Brotli ライブラリを使用した WOFF2 フォント形式のサポート" + +msgid "" +"SIL Graphite smart font technology support (supported by Advanced Text " +"Server only)." +msgstr "" +"SIL Graphiteスマートフォントテクノロジー対応(Advanced Text Serverのみ対応)" + +msgid "" +"Multi-channel signed distance field font rendering support using msdfgen " +"library (pre-rendered MSDF fonts can be used even if this option disabled)." +msgstr "" +"msdfgenライブラリを用いたマルチチャンネル符号付き距離フィールドフォントのレン" +"ダリングに対応(このオプションを無効にしても、レンダリング済みのMSDFフォント" +"は使用可能です)" + +msgid "General Features:" +msgstr "主要機能:" + +msgid "Text Rendering and Font Options:" +msgstr "テキストのレンダリングとフォントのオプション:" + +msgid "File saving failed." +msgstr "ファイル保存エラー" + msgid "Nodes and Classes:" msgstr "ノードとクラス:" @@ -1345,12 +2092,42 @@ msgstr "新規" msgid "Save" msgstr "保存" +msgid "Profile:" +msgstr "プロファイル:" + msgid "Reset to Defaults" msgstr "デフォルトに戻す" +msgid "Detect from Project" +msgstr "プロジェクトから検出" + +msgid "Actions:" +msgstr "アクション:" + +msgid "Configure Engine Build Profile:" +msgstr "エンジンビルドプロファイルの設定:" + +msgid "Please Confirm:" +msgstr "確認:" + +msgid "Engine Build Profile" +msgstr "エンジンビルドプロファイル" + +msgid "Load Profile" +msgstr "プロファイルのロード" + msgid "Export Profile" msgstr "プロファイルのエクスポート" +msgid "Forced classes on detect:" +msgstr "検出時の強制クラス:" + +msgid "Edit Build Configuration Profile" +msgstr "ビルド構成プロファイルの編集" + +msgid "Filter Commands" +msgstr "コマンドでフィルタ" + msgid "Paste Params" msgstr "パラメーターを貼り付け" @@ -1372,6 +2149,10 @@ msgstr "[未保存]" msgid "Please select a base directory first." msgstr "はじめにベースディレクトリを選択してください。" +msgid "Could not create folder. File with that name already exists." +msgstr "" +"フォルダを作成できませんでした。その名前のファイルはすでに存在しています。" + msgid "Choose a Directory" msgstr "ディレクトリを選択" @@ -1408,6 +2189,9 @@ msgstr "ファイルシステム ドック" msgid "Import Dock" msgstr "インポートドック" +msgid "History Dock" +msgstr "履歴ドック" + msgid "Allows to view and edit 3D scenes." msgstr "3Dシーンの表示と編集ができます。" @@ -1435,6 +2219,9 @@ msgstr "" "各アセットのインポート設定を構成できます。動作にはファイルシステム ドッグが必" "要です。" +msgid "Provides an overview of the editor's and each scene's undo history." +msgstr "エディターと各シーンのアンドゥ履歴の概要を提供します。" + msgid "(current)" msgstr "(現在)" @@ -1575,6 +2362,9 @@ msgstr "ファイルまたはディレクトリを開く" msgid "Save a File" msgstr "ファイルを保存" +msgid "Favorited folder does not exist anymore and will be removed." +msgstr "お気に入りフォルダは存在しないため、削除されます。" + msgid "Go Back" msgstr "戻る" @@ -1635,6 +2425,20 @@ msgstr "プレビュー:" msgid "File:" msgstr "ファイル:" +msgid "" +"Remove the selected files? For safety only files and empty directories can " +"be deleted from here. (Cannot be undone.)\n" +"Depending on your filesystem configuration, the files will either be moved " +"to the system trash or deleted permanently." +msgstr "" +"選択したファイルを削除しますか?安全のため、ここから削除できるのはファイルと" +"空のディレクトリだけです。(元に戻すことはできません)\n" +"ファイルシステムの設定によって、ファイルはシステムのゴミ箱に移動されるか、永" +"久に削除されます。" + +msgid "Some extensions need the editor to restart to take effect." +msgstr "一部の拡張機能は、エディタの再起動が必要です。" + msgid "Restart" msgstr "再起動" @@ -1654,6 +2458,55 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "アセットを(再)インポート中" +msgid "Import resources of type: %s" +msgstr "次のタイプのリソースをインポート: %s" + +msgid "No return value." +msgstr "戻り値はありません、" + +msgid "Deprecated" +msgstr "重複" + +msgid "Experimental" +msgstr "実験的" + +msgid "This method supports a variable number of arguments." +msgstr "このメソッドは、可変数の引数をサポートしています。" + +msgid "" +"This method is called by the engine.\n" +"It can be overridden to customize built-in behavior." +msgstr "" +"このメソッドはエンジンから呼び出されます。\n" +"オーバーライドすることで、組み込みの動作をカスタマイズすることができます。" + +msgid "" +"This method has no side effects.\n" +"It does not modify the object in any way." +msgstr "" +"このメソッドには副作用はありません。\n" +"また、このメソッドはオブジェクトを一切変更しません。" + +msgid "" +"This method does not need an instance to be called.\n" +"It can be called directly using the class name." +msgstr "" +"このメソッドは、呼び出すためにインスタンスを必要としません。\n" +"クラス名を使って直接呼び出すことができます。" + +msgid "Error codes returned:" +msgstr "返されたエラーコード:" + +msgid "There is currently no description for this %s." +msgstr "この %s には現在説明がありません。" + +msgid "" +"There is currently no description for this %s. Please help us by " +"[color=$color][url=$url]contributing one[/url][/color]!" +msgstr "" +"現在、このメソッドの説明はありません。[color=$color][url=$url]貢献[/url][/" +"color]して私たちを助けてください!" + msgid "Top" msgstr "トップ" @@ -1666,9 +2519,32 @@ msgstr "継承元:" msgid "Inherited by:" msgstr "継承先:" +msgid "" +"This class is marked as deprecated. It will be removed in future versions." +msgstr "" +"このクラスは、非推奨としてマークされています。将来のバージョンで削除される予" +"定です。" + +msgid "" +"This class is marked as experimental. It is subject to likely change or " +"possible removal in future versions. Use at your own discretion." +msgstr "" +"このクラスは実験用としてマークされます。将来のバージョンで変更または削除され" +"る可能性があります。ご自身の判断で使用してください。" + msgid "Description" msgstr "説明" +msgid "There is currently no description for this class." +msgstr "現在、このクラスの説明はありません。" + +msgid "" +"There is currently no description for this class. Please help us by " +"[color=$color][url=$url]contributing one[/url][/color]!" +msgstr "" +"現在、このメソッドの説明はありません。[color=$color][url=$url]貢献[/url][/" +"color]して私たちを助けてください!" + msgid "Online Tutorials" msgstr "オンラインチュートリアル" @@ -1681,6 +2557,15 @@ msgstr "%s を上書き:" msgid "default:" msgstr "デフォルト:" +msgid "property:" +msgstr "プロパティ:" + +msgid "Constructors" +msgstr "定数" + +msgid "Operators" +msgstr "オペレーター" + msgid "Theme Properties" msgstr "テーマ プロパティ" @@ -1693,6 +2578,9 @@ msgstr "定数" msgid "Fonts" msgstr "フォント" +msgid "Font Sizes" +msgstr "フォントサイズ" + msgid "Icons" msgstr "アイコン" @@ -1702,12 +2590,28 @@ msgstr "スタイル" msgid "Enumerations" msgstr "列挙型" +msgid "Annotations" +msgstr "アノテーション" + +msgid "There is currently no description for this annotation." +msgstr "現在、このアノテーションの説明はありません。" + +msgid "" +"There is currently no description for this annotation. Please help us by " +"[color=$color][url=$url]contributing one[/url][/color]!" +msgstr "" +"現在、このメソッドの説明はありません。[color=$color][url=$url]貢献[/url][/" +"color]して私たちを助けてください!" + msgid "Property Descriptions" msgstr "プロパティの説明" msgid "(value)" msgstr "(値)" +msgid "There is currently no description for this property." +msgstr "現在、このプロパティの説明はありません。" + msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" @@ -1715,9 +2619,15 @@ msgstr "" "現在、このプロパティの説明はありません。[color=$color][url=$url]貢献[/url][/" "color]して私たちを助けてください!" +msgid "Constructor Descriptions" +msgstr "定数の説明" + msgid "Method Descriptions" msgstr "メソッドの説明" +msgid "Operator Descriptions" +msgstr "オペレーターの説明" + msgid "%d match." msgstr "%d件の一致が見つかりました。" @@ -1739,12 +2649,21 @@ msgstr "すべて表示" msgid "Classes Only" msgstr "クラスのみ" +msgid "Constructors Only" +msgstr "定数のみ" + msgid "Methods Only" msgstr "メソッドのみ" +msgid "Operators Only" +msgstr "演算子のみ" + msgid "Signals Only" msgstr "シグナルのみ" +msgid "Annotations Only" +msgstr "アノテーションのみ" + msgid "Constants Only" msgstr "定数のみ" @@ -1757,6 +2676,9 @@ msgstr "テーマプロパティのみ" msgid "Member Type" msgstr "メンバータイプ" +msgid "(constructors)" +msgstr "(定数)" + msgid "Class" msgstr "クラス" @@ -1766,6 +2688,9 @@ msgstr "メソッド" msgid "Signal" msgstr "シグナル" +msgid "Annotation" +msgstr "アノテーション" + msgid "Constant" msgstr "コンスタント" @@ -1775,9 +2700,21 @@ msgstr "プロパティ" msgid "Theme Property" msgstr "テーマプロパティ" +msgid "This member is marked as deprecated." +msgstr "このメンバーは非推奨としてマークされています。" + +msgid "This member is marked as experimental." +msgstr "このメンバーは実験用としてマークされています。" + msgid "Property:" msgstr "プロパティ:" +msgid "Pin Value" +msgstr "値をピン留めする" + +msgid "Pin Value [Disabled because '%s' is editor-only]" +msgstr "値をピン留めする ['%s' は editor-only のため無効]" + msgid "" "Pinning a value forces it to be saved even if it's equal to the default." msgstr "" @@ -1786,44 +2723,131 @@ msgstr "" msgid "Open Documentation" msgstr "ドキュメントを開く" +msgid "Element %d: %s%d*" +msgstr "要素 %d: %s%d*" + msgid "Move Up" msgstr "上に移動" msgid "Move Down" msgstr "下に移動" +msgid "Insert New Before" +msgstr "空を挿入 (前)" + +msgid "Insert New After" +msgstr "空を挿入 (後)" + +msgid "Clear Array" +msgstr "配列をクリア" + +msgid "Resize Array..." +msgstr "配列のサイズを変更..." + +msgid "Add Element" +msgstr "要素を追加" + msgid "Resize Array" msgstr "配列のサイズを変更" +msgid "New Size:" +msgstr "新しいサイズ:" + +msgid "Element %s" +msgstr "要素 %s" + +msgid "Add Metadata" +msgstr "メタデータを追加" + msgid "Set %s" msgstr "%s を設定" msgid "Set Multiple:" msgstr "複数設定:" +msgid "Remove metadata %s" +msgstr "メタデータ %s を削除" + msgid "Pinned %s" msgstr "%s をピン留め" msgid "Unpinned %s" msgstr "%s をピン留め解除" +msgid "Add metadata %s" +msgstr "メタデータ %s を追加" + +msgid "Metadata name can't be empty." +msgstr "メタデータ名を空にすることはできません。" + +msgid "Metadata name must be a valid identifier." +msgstr "メタデータ名は有効な識別子である必要があります。" + +msgid "Metadata with name \"%s\" already exists." +msgstr "\"%s\" という名前のメタデータは既に存在します。" + +msgid "Names starting with _ are reserved for editor-only metadata." +msgstr "_ で始まる名前は、エディター専用のメタデータ用に予約されています。" + +msgid "Metadata name is valid." +msgstr "メタデータ名は有効です。" + +msgid "Add Metadata Property for \"%s\"" +msgstr "\"%s\" のメタデータ プロパティを追加" + +msgid "Copy Value" +msgstr "値をコピー" + +msgid "Paste Value" +msgstr "値を貼り付け" + msgid "Copy Property Path" msgstr "プロパティのパスをコピー" +msgid "Select existing layout:" +msgstr "既存のレイアウトを選択:" + +msgid "Changed Locale Language Filter" +msgstr "ロケール言語フィルターを変更" + +msgid "Changed Locale Script Filter" +msgstr "ロケールスクリプトフィルタを変更" + +msgid "Changed Locale Country Filter" +msgstr "ロケール国フィルターを変更" + msgid "Changed Locale Filter Mode" -msgstr "ロケールフィルターモードの変更" +msgstr "ロケールフィルターモードを変更" + +msgid "Select a Locale" +msgstr "ロケールを選択" msgid "Show All Locales" -msgstr "すべての言語を表示" +msgstr "すべてのロケールを表示" msgid "Show Selected Locales Only" msgstr "選択した言語のみ表示" +msgid "Edit Filters" +msgstr "フィルターの編集" + msgid "Language:" msgstr "言語:" -msgid "Script" -msgstr "スクリプト" +msgid "Country:" +msgstr "国:" + +msgid "Language" +msgstr "言語:" + +msgid "Country" +msgstr "国" + +msgid "Variant" +msgstr "バリアント" + +msgid "Filter Messages" +msgstr "メッセージでフィルタ" msgid "Clear Output" msgstr "出力をクリア" @@ -1831,6 +2855,29 @@ msgstr "出力をクリア" msgid "Copy Selection" msgstr "選択範囲をコピー" +msgid "" +"Collapse duplicate messages into one log entry. Shows number of occurrences." +msgstr "" +"重複したメッセージを1つのログエントリに折りたたみます。発生回数を表示します。" + +msgid "Focus Search/Filter Bar" +msgstr "フォーカス 検索/フィルターバー" + +msgid "Toggle visibility of standard output messages." +msgstr "標準出力メッセージの表示/非表示を切り替えます。" + +msgid "Toggle visibility of errors." +msgstr "エラーの表示を切り替えます。" + +msgid "Toggle visibility of warnings." +msgstr "警告の表示を切り替えます。" + +msgid "Toggle visibility of editor messages." +msgstr "エディタメッセージの表示/非表示を切り替えます。" + +msgid "Native Shader Source Inspector" +msgstr "ネイティブ シェーダー ソース インスペクター" + msgid "New Window" msgstr "新規ウィンドウ" @@ -1865,6 +2912,13 @@ msgstr "" "このリソースは編集したシーンに属していないため保存できません。まずユニーク化" "してください。" +msgid "" +"This resource can't be saved because it was imported from another file. Make " +"it unique first." +msgstr "" +"このリソースは別のファイルからインポートされたため、保存できません。最初にそ" +"れをユニークにします。" + msgid "Save Resource As..." msgstr "リソースを別名で保存..." @@ -1877,6 +2931,23 @@ msgstr "要求されたファイル形式は不明です:" msgid "Error while saving." msgstr "保存中にエラーが発生しました。" +msgid "Can't open file '%s'. The file could have been moved or deleted." +msgstr "" +"'%s' を開くことができません。ファイルが移動または削除された可能性がありま" +"す。" + +msgid "Error while parsing file '%s'." +msgstr "ファイル '%s' の解析中にエラーが発生しました。" + +msgid "Scene file '%s' appears to be invalid/corrupt." +msgstr "シーン ファイル '%s' が無効または壊れているようです。" + +msgid "Missing file '%s' or one its dependencies." +msgstr "'%s' またはその依存関係が見つかりません。" + +msgid "Error while loading file '%s'." +msgstr "ファイル '%s' を読み込んでいるときにエラーが発生しました。" + msgid "Saving Scene" msgstr "シーンを保存中" @@ -1890,6 +2961,13 @@ msgid "This operation can't be done without a tree root." msgstr "この操作は、ツリーのルートなしで実行できません。" msgid "" +"This scene can't be saved because there is a cyclic instance inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" +"このシーンにはインスタンスの循環参照が含まれているため保存できません。\n" +"まずそれを解消してから、再度保存してみてください。" + +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1933,6 +3011,10 @@ msgstr "レイアウト名が見つかりません!" msgid "Restored the Default layout to its base settings." msgstr "既定のレイアウトを基本設定に戻しました。" +msgid "This object is marked as read-only, so it's not editable." +msgstr "" +"このオブジェクトは、読み取り専用とマークされているため、編集できません。" + msgid "" "This resource belongs to a scene that was imported, so it's not editable.\n" "Please read the documentation relevant to importing scenes to better " @@ -1943,27 +3025,74 @@ msgstr "" "ントをお読みください。" msgid "" +"This resource belongs to a scene that was instantiated or inherited.\n" +"Changes to it must be made inside the original scene." +msgstr "" +"このリソースは、インスタンス化または継承されたシーンに属しています。\n" +"現在のシーンを保存しても、変更内容は保持されません。" + +msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." msgstr "" "このリソースはインポートされたもので、編集できません。インポートパネルで設定" "を変更し、再度インポートしてください。" +msgid "" +"This scene was imported, so changes to it won't be kept.\n" +"Instantiating or inheriting it will allow you to make changes to it.\n" +"Please read the documentation relevant to importing scenes to better " +"understand this workflow." +msgstr "" +"このシーンはインポートされたもので、変更は保持されません。\n" +"インスタンス化もしくは継承することで、編集が可能になります。\n" +"このワークフローをよりよく理解するために、シーンのインポートに関連するドキュ" +"メントをお読みください。" + msgid "Changes may be lost!" msgstr "変更が失われるかもしれません!" +msgid "This object is read-only." +msgstr "このオブジェクトは、読み取り専用です。" + +msgid "" +"Movie Maker mode is enabled, but no movie file path has been specified.\n" +"A default movie file path can be specified in the project settings under the " +"Editor > Movie Writer category.\n" +"Alternatively, for running single scenes, a `movie_file` string metadata can " +"be added to the root node,\n" +"specifying the path to a movie file that will be used when recording that " +"scene." +msgstr "" +"ムービーメーカーモードは有効ですが、動画ファイルの保存パスが指定されていませ" +"ん。\n" +"デフォルトの動画ファイルの保存パスは、プロジェクト設定の「Editor > Movie " +"Writer」カテゴリで指定することができます。\n" +"また、単一のシーンを実行する場合は、ルートノードに `movie_file` 文字列メタ" +"データを追加することもできます。\n" +"そのシーンを録画するときに使用する動画ファイルの保存パスを指定します。" + msgid "There is no defined scene to run." msgstr "実行するシーンが定義されていません。" msgid "Save scene before running..." msgstr "実行前にシーンを保存..." +msgid "Could not start subprocess(es)!" +msgstr "サブプロセスを開始できませんでした!" + +msgid "Reload the played scene." +msgstr "再生されたシーンをリロード" + msgid "Play the project." msgstr "プロジェクトを実行。" msgid "Play the edited scene." msgstr "編集したシーンを実行。" +msgid "Play a custom scene." +msgstr "カスタムシーンを実行" + msgid "Open Base Scene" msgstr "ベースのシーンを開く" @@ -1979,9 +3108,15 @@ msgstr "スクリプトをクイックオープン..." msgid "Save & Reload" msgstr "保存して再読み込み" +msgid "Save modified resources before reloading?" +msgstr "リロードする前に変更したリソースを保存しますか?" + msgid "Save & Quit" msgstr "保存して終了" +msgid "Save modified resources before closing?" +msgstr "閉じる前に変更したリソースを保存しますか?" + msgid "Save changes to '%s' before reloading?" msgstr "再読み込み前に、'%s' への変更を保存しますか?" @@ -2017,12 +3152,30 @@ msgstr "マウスボタンが押されている間は元に戻せません。" msgid "Nothing to undo." msgstr "元に戻すものがありません。" +msgid "Global Undo: %s" +msgstr "グローバル元に戻す: %s" + +msgid "Remote Undo: %s" +msgstr "リモート元に戻す: %s" + +msgid "Scene Undo: %s" +msgstr "シーン元に戻す: %s" + msgid "Can't redo while mouse buttons are pressed." msgstr "マウスボタンが押されている間はやり直せません。" msgid "Nothing to redo." msgstr "やり直すものがありません。" +msgid "Global Redo: %s" +msgstr "グローバルやり直す: %s" + +msgid "Remote Redo: %s" +msgstr "リモートやり直す: %s" + +msgid "Scene Redo: %s" +msgstr "シーンやり直す: %s" + msgid "Can't reload a scene that was never saved." msgstr "保存されていないシーンを読み込むことはできません。" @@ -2194,6 +3347,9 @@ msgstr "ビューをパン" msgid "Dock Position" msgstr "ドックの位置" +msgid "Make Floating" +msgstr "フローティングを作成" + msgid "Add a new scene." msgstr "新規シーンを追加する。" @@ -2215,6 +3371,18 @@ msgstr "以前に開いたシーンに移動する。" msgid "Copy Text" msgstr "テキストをコピー" +msgid "Next Scene Tab" +msgstr "次のシーンタブ" + +msgid "Previous Scene Tab" +msgstr "前のシーンタブ" + +msgid "Focus FileSystem Filter" +msgstr "フォーカス ファイルシステム フィルタ" + +msgid "Command Palette" +msgstr "コマンドパレット" + msgid "New Scene" msgstr "新規シーン" @@ -2233,6 +3401,9 @@ msgstr "最近開いたシーンを開く" msgid "Save Scene" msgstr "シーンを保存" +msgid "Export As..." +msgstr "エクスポート..." + msgid "MeshLibrary..." msgstr "メッシュライブラリ..." @@ -2248,9 +3419,18 @@ msgstr "プロジェクト" msgid "Project Settings..." msgstr "プロジェクト設定..." +msgid "Project Settings" +msgstr "プロジェクト設定" + msgid "Version Control" msgstr "バージョンコントロール" +msgid "Create Version Control Metadata" +msgstr "バージョン管理用メタデータの作成" + +msgid "Version Control Settings" +msgstr "バージョン管理設定" + msgid "Export..." msgstr "エクスポート..." @@ -2260,6 +3440,9 @@ msgstr "Androidビルドテンプレートのインストール..." msgid "Open User Data Folder" msgstr "ユーザーデータフォルダーを開く" +msgid "Customize Engine Build Configuration..." +msgstr "エンジンのビルド構成をカスタマイズする..." + msgid "Tools" msgstr "ツール" @@ -2278,6 +3461,9 @@ msgstr "エディター" msgid "Editor Settings..." msgstr "エディター設定..." +msgid "Command Palette..." +msgstr "コマンドパレット..." + msgid "Editor Layout" msgstr "エディターレイアウト" @@ -2306,6 +3492,9 @@ msgstr "エディター機能の管理..." msgid "Manage Export Templates..." msgstr "エクスポートテンプレートの管理..." +msgid "Configure FBX Importer..." +msgstr "FBX Importerの設定..." + msgid "Help" msgstr "ヘルプ" @@ -2333,12 +3522,66 @@ msgstr "Godotについて" msgid "Support Godot Development" msgstr "Godotの開発をサポートする" +msgid "Run the project's default scene." +msgstr "プロジェクトのデフォルトシーンを実行します。" + msgid "Run Project" msgstr "プロジェクトを実行" +msgid "Pause the running project's execution for debugging." +msgstr "実行中のプロジェクトの実行を一時停止し、デバッグを行います。" + +msgid "Pause Running Project" +msgstr "実行中のプロジェクトを一時停止" + +msgid "Stop the currently running project." +msgstr "現在実行中のプロジェクトを停止します。" + +msgid "Stop Running Project" +msgstr "プロジェクトの実行を停止" + +msgid "Run the currently edited scene." +msgstr "現在編集中のシーンを実行します。" + +msgid "Run Current Scene" +msgstr "現在のシーンを実行" + +msgid "Run a specific scene." +msgstr "特定のシーンを実行します。" + +msgid "Run Specific Scene" +msgstr "特定のシーンを実行" + +msgid "" +"Enable Movie Maker mode.\n" +"The project will run at stable FPS and the visual and audio output will be " +"recorded to a video file." +msgstr "" +"ムービーメーカーモードを有効にします。\n" +"プロジェクトは安定したFPSで実行され、ビジュアルとオーディオ出力は動画ファイル" +"に記録されます。" + +msgid "Choose a renderer." +msgstr "レンダラーを選択" + +msgid "Forward+" +msgstr "Forward+" + +msgid "Mobile" +msgstr "モバイル" + +msgid "Compatibility" +msgstr "互換性" + +msgid "Changing the renderer requires restarting the editor." +msgstr "レンダラーを変更するには、エディタの再起動が必要です。" + msgid "Update Continuously" msgstr "継続的に更新" +msgid "Update When Changed" +msgstr "変更時に更新" + msgid "Hide Update Spinner" msgstr "アップデートスピナーを非表示" @@ -2351,6 +3594,9 @@ msgstr "インスペクター" msgid "Node" msgstr "ノード" +msgid "History" +msgstr "履歴" + msgid "Expand Bottom Panel" msgstr "下パネルを展開" @@ -2371,22 +3617,8 @@ msgstr "テンプレートの管理" msgid "Install from file" msgstr "ファイルからインストール" -msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"この操作は \"res://android/build\" にソーステンプレートをインストールし、" -"Androidのカスタムビルドの設定がプロジェクトにセットアップされます。\n" -"後から設定に変更を加えたり、エクスポート時にカスタムAPKをビルドできます (モ" -"ジュールを追加する、AndroidManifest.xmlを変更するなど)。\n" -"ビルド済みAPKの代わりにカスタムビルドをするためには、Androidのエクスポート設" -"定の「Use Custom Build (カスタムビルドを使用する)」のオプションが有効化されて" -"いる必要があることに注意してください。" +msgid "Select Android sources file" +msgstr "Androidのソースファイルを選択" msgid "" "The Android build template is already installed in this project and it won't " @@ -2456,6 +3688,9 @@ msgstr "次のエディターを開く" msgid "Open the previous Editor" msgstr "前のエディターを開く" +msgid "Ok" +msgstr "OK" + msgid "Warning!" msgstr "警告!" @@ -2480,6 +3715,9 @@ msgstr "プラグインの編集" msgid "Installed Plugins:" msgstr "インストール済プラグイン:" +msgid "Create New Plugin" +msgstr "新しいプラグインを作成" + msgid "Version" msgstr "バージョン" @@ -2495,6 +3733,9 @@ msgstr "テキストを編集:" msgid "On" msgstr "オン" +msgid "Renaming layer %d:" +msgstr "レイヤー %d をリネーム:" + msgid "No name provided." msgstr "名前が付いていません。" @@ -2507,12 +3748,45 @@ msgstr "ビット %d, 値 %d" msgid "Rename" msgstr "名前の変更" +msgid "Rename layer" +msgstr "レイヤー名を変更" + +msgid "Layer %d" +msgstr "レイヤー %d" + +msgid "No Named Layers" +msgstr "無名レイヤー" + +msgid "Edit Layer Names" +msgstr "レイヤー名の編集" + +msgid "<empty>" +msgstr "<空>" + +msgid "Temporary Euler may be changed implicitly!" +msgstr "一時的なオイラーは暗黙的に変更される可能性があります!" + +msgid "" +"Temporary Euler will not be stored in the object with the original value. " +"Instead, it will be stored as Quaternion with irreversible conversion.\n" +"This is due to the fact that the result of Euler->Quaternion can be " +"determined uniquely, but the result of Quaternion->Euler can be multi-" +"existent." +msgstr "" +"一時的なオイラーは、元の値を持つオブジェクトに格納されません。代わりに、不可" +"逆変換のクォータニオンとして格納されます。\n" +"これは、オイラー->四元数の結果は一意に決定できますが、四元数->オイラーの結果" +"は複数存在する可能性があるためです。" + msgid "Assign..." msgstr "割り当て..." msgid "Invalid RID" msgstr "無効なRID" +msgid "Recursion detected, unable to assign resource to property." +msgstr "再帰が検出され、リソースをプロパティに割り当てることができません。" + msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." @@ -2537,12 +3811,24 @@ msgstr "ビューポートを選ぶ" msgid "Selected node is not a Viewport!" msgstr "選択したノードはビューポートではありません!" +msgid "(Nil) %s" +msgstr "(Nil) %s" + +msgid "%s (size %s)" +msgstr "%s (サイズ %s)" + msgid "Size:" msgstr "サイズ:" msgid "Remove Item" msgstr "アイテムを除去" +msgid "Dictionary (Nil)" +msgstr "Dictionary (Nil)" + +msgid "Dictionary (size %d)" +msgstr "Dictionary (サイズ %d)" + msgid "New Key:" msgstr "新規キー:" @@ -2552,6 +3838,15 @@ msgstr "新規の値:" msgid "Add Key/Value Pair" msgstr "キー/値のペアを追加" +msgid "Localizable String (Nil)" +msgstr "ローカライズ可能な文字列(Nil)" + +msgid "Localizable String (size %d)" +msgstr "ローカライズ可能な文字列 (サイズ %d)" + +msgid "Add Translation" +msgstr "翻訳を追加" + msgid "" "The selected resource (%s) does not match any type expected for this " "property (%s)." @@ -2562,9 +3857,15 @@ msgstr "" msgid "Quick Load" msgstr "クイックロード" +msgid "Inspect" +msgstr "検査" + msgid "Make Unique" msgstr "ユニーク化" +msgid "Make Unique (Recursive)" +msgstr "ユニーク化 (再帰的)" + msgid "Convert to %s" msgstr "%s に変換" @@ -2577,6 +3878,15 @@ msgstr "新規スクリプト" msgid "Extend Script" msgstr "スクリプトを拡張" +msgid "New Shader" +msgstr "新しいシェーダー" + +msgid "No Remote Debug export presets configured." +msgstr "リモートデバッグエクスポートプリセットが設定されていません。" + +msgid "Remote Debug" +msgstr "リモートデバッグ" + msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -2595,6 +3905,18 @@ msgstr "ロジックを _run() メソッドに記述する。" msgid "There is an edited scene already." msgstr "すでに編集されたシーンがあります。" +msgid "" +"Couldn't run editor script, did you forget to override the '_run' method?" +msgstr "" +"エディタスクリプトを実行できませんでした。'_run'メソッドをオーバーライドする" +"のを忘れていませんか?" + +msgid "Edit Built-in Action" +msgstr "組み込みアクションの編集" + +msgid "Edit Shortcut" +msgstr "ショートカットを編集" + msgid "Common" msgstr "一般" @@ -2604,6 +3926,9 @@ msgstr "エディター設定" msgid "General" msgstr "一般" +msgid "Filter Settings" +msgstr "フィルター設定" + msgid "The editor must be restarted for changes to take effect." msgstr "変更を有効にするには、エディターを再起動する必要があります。" @@ -2613,8 +3938,81 @@ msgstr "ショートカット" msgid "Binding" msgstr "バインド" -msgid "%s Error" -msgstr "%s エラー" +msgid "" +"Hold %s to round to integers.\n" +"Hold Shift for more precise changes." +msgstr "" +"%s を押したままで整数値に丸める。\n" +"Shiftを押したままで精密調整。" + +msgid "No notifications." +msgstr "通知はありません。" + +msgid "Show notifications." +msgstr "通知を見る" + +msgid "Silence the notifications." +msgstr "通知を無効にする" + +msgid "Left Stick Left, Joystick 0 Left" +msgstr "左スティック 左, ジョイスティック 0 左" + +msgid "Left Stick Right, Joystick 0 Right" +msgstr "左スティック 右, ジョイスティック 0 右" + +msgid "Left Stick Up, Joystick 0 Up" +msgstr "左スティック 上, ジョイスティック 0 上" + +msgid "Left Stick Down, Joystick 0 Down" +msgstr "左スティック 下, ジョイスティック 0 下" + +msgid "Right Stick Left, Joystick 1 Left" +msgstr "右スティック 左, ジョイスティック 1 左" + +msgid "Right Stick Right, Joystick 1 Right" +msgstr "右スティック 右, ジョイスティック 1 右" + +msgid "Right Stick Up, Joystick 1 Up" +msgstr "右スティック 上, ジョイスティック 1 上" + +msgid "Right Stick Down, Joystick 1 Down" +msgstr "右スティック 下, ジョイスティック 1 下" + +msgid "Joystick 2 Left" +msgstr "ジョイスティック 2 左" + +msgid "Left Trigger, Sony L2, Xbox LT, Joystick 2 Right" +msgstr "左トリガー, ソニー L2, Xbox LT, ジョイスティック 2 右" + +msgid "Joystick 2 Up" +msgstr "ジョイスティック 2 上" + +msgid "Right Trigger, Sony R2, Xbox RT, Joystick 2 Down" +msgstr "右トリガー, ソニー R2, Xbox RT, ジョイスティック 2 下" + +msgid "Joystick 3 Left" +msgstr "ジョイスティック 3 左" + +msgid "Joystick 3 Right" +msgstr "ジョイスティック 3 右" + +msgid "Joystick 3 Up" +msgstr "ジョイスティック 3 上" + +msgid "Joystick 3 Down" +msgstr "ジョイスティック 3 下" + +msgid "Joystick 4 Left" +msgstr "ジョイスティック 4 左" + +msgid "Joystick 4 Right" +msgstr "ジョイスティック 4 右" + +msgid "Joystick 4 Up" +msgstr "ジョイスティック 4 上" + +msgid "Joystick 4 Down" +msgstr "ジョイスティック 4 下" msgid "All Devices" msgstr "すべてのデバイス" @@ -2622,6 +4020,12 @@ msgstr "すべてのデバイス" msgid "Device" msgstr "デバイス" +msgid "Listening for input..." +msgstr "入力を確認しています..." + +msgid "Filter by event..." +msgstr "イベントでフィルタ..." + msgid "Project export for platform:" msgstr "次のプラットフォーム向けにプロジェクトをエクスポート:" @@ -2661,6 +4065,15 @@ msgstr "プロジェクトファイルをエクスポートできませんでし msgid "Can't open file to read from path \"%s\"." msgstr "読み込むファイルをパス \"%s\" から開けません。" +msgid "Can't open executable file from path \"%s\"." +msgstr "パス \"%s\" から実行可能ファイルを開けません。" + +msgid "Can't create encrypted file." +msgstr "暗号化されたファイルを作成できません。" + +msgid "Can't open encrypted file to write." +msgstr "暗号化されたファイルを開いて書き込むことができません。" + msgid "Save ZIP" msgstr "ZIPを保存" @@ -2784,6 +4197,9 @@ msgstr "ダウンロード中" msgid "Connection Error" msgstr "接続エラー" +msgid "TLS Handshake Error" +msgstr "TLSハンドシェイクエラー" + msgid "Can't open the export templates file." msgstr "エクスポートテンプレート ファイルを開けません。" @@ -2888,6 +4304,9 @@ msgstr "" msgid "Runnable" msgstr "実行可能" +msgid "Export the project for all the presets defined." +msgstr "定義されたすべてのプリセットのプロジェクトをエクスポートします。" + msgid "All presets must have an export path defined for Export All to work." msgstr "" "全てのプリセットはエクスポートが全て機能するために、エクスポートパスを定義す" @@ -2896,6 +4315,9 @@ msgstr "" msgid "Delete preset '%s'?" msgstr "プリセット '%s' を削除しますか?" +msgid "%s Export" +msgstr "%s エクスポート" + msgid "Release" msgstr "リリース" @@ -2938,12 +4360,28 @@ msgstr "選択したシーン(と依存関係にあるもの)をエクスポー msgid "Export selected resources (and dependencies)" msgstr "選択したリソース(と依存関係にあるもの)をエクスポート" +msgid "Export all resources in the project except resources checked below" +msgstr "" +"以下のチェックボックスをオンにしたリソースを除く、プロジェクト内のすべてのリ" +"ソースをエクスポート" + +msgid "Export as dedicated server" +msgstr "専用サーバーとしてエクスポート" + msgid "Export Mode:" msgstr "エクスポートモード:" msgid "Resources to export:" msgstr "エクスポートするリソース:" +msgid "" +"\"Strip Visuals\" will replace the following resources with placeholders:" +msgstr "" +"\"ストリップビジュアル\" は、次のリソースをプレースホルダーに置き換えます:" + +msgid "Strip Visuals" +msgstr "ストリップビジュアル" + msgid "Keep" msgstr "保持" @@ -2970,9 +4408,35 @@ msgstr "カスタム (コンマ区切り):" msgid "Feature List:" msgstr "機能一覧:" +msgid "Encryption" +msgstr "暗号化" + +msgid "Encrypt Exported PCK" +msgstr "エクスポートされたPCKの暗号化" + +msgid "Encrypt Index (File Names and Info)" +msgstr "暗号化インデックス(ファイル名と情報)" + +msgid "" +"Filters to include files/folders\n" +"(comma-separated, e.g: *.tscn, *.tres, scenes/*)" +msgstr "" +"ファイル/フォルダーを含めるためのフィルタ\n" +"(カンマ区切り、例: *.tscn, *.tres, scenes/*)" + +msgid "" +"Filters to exclude files/folders\n" +"(comma-separated, e.g: *.ctex, *.import, music/*)" +msgstr "" +"ファイル/フォルダーを除外するためのフィルタ\n" +"(カンマ区切り、例: *.ctex, *.import, music/*)" + msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)" msgstr "無効な暗号化キー (16進数で64文字である必要があります)" +msgid "Encryption Key (256-bits as hexadecimal):" +msgstr "暗号化キー (16 進数で 256 ビット):" + msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." @@ -2983,6 +4447,9 @@ msgstr "" msgid "More Info..." msgstr "詳細情報..." +msgid "Export PCK/ZIP..." +msgstr "PCK/Zipのエクスポート..." + msgid "Export Project..." msgstr "プロジェクトのエクスポート..." @@ -3013,9 +4480,39 @@ msgstr "エクスポートテンプレートの管理" msgid "Export With Debug" msgstr "デバッグ付きエクスポート" +msgid "Path to FBX2glTF executable is empty." +msgstr "FBX2glTFの実行ファイルへのパスが空です。" + +msgid "Path to FBX2glTF executable is invalid." +msgstr "FBX2glTF 実行可能ファイルへのパスが無効です。" + +msgid "Error executing this file (wrong version or architecture)." +msgstr "" +"このファイルの実行にエラーが発生しました(バージョンまたはアーキテクチャが正" +"しくありません)。" + +msgid "FBX2glTF executable is valid." +msgstr "FBX2glTFの実行ファイルは有効です。" + +msgid "Configure FBX Importer" +msgstr "FBXインポーターの設定" + +msgid "" +"FBX2glTF is required for importing FBX files.\n" +"Please download it and provide a valid path to the binary:" +msgstr "" +"FBX2glTFは、FBXファイルをインポートするために必要です。\n" +"ダウンロードし、バイナリへの有効なパスを指定してください。" + +msgid "Click this link to download FBX2glTF" +msgstr "FBX2glTFをダウンロードするには、このリンクをクリックしてください" + msgid "Browse" msgstr "参照" +msgid "Confirm Path" +msgstr "パスの確認" + msgid "Favorites" msgstr "お気に入り" @@ -3042,6 +4539,12 @@ msgstr "移動中のエラー:" msgid "Error duplicating:" msgstr "複製エラー:" +msgid "Failed to save resource at %s: %s" +msgstr "%s でリソースを保存できませんでした: %s" + +msgid "Failed to load resource at %s: %s" +msgstr "%s でリソースをロードできませんでした: %s" + msgid "Unable to update dependencies:" msgstr "依存関係を更新できません:" @@ -3096,6 +4599,9 @@ msgstr "新しい継承シーン" msgid "Set As Main Scene" msgstr "メインシーンとして設定" +msgid "Instantiate" +msgstr "インスタンス化" + msgid "Add to Favorites" msgstr "お気に入りに追加" @@ -3111,6 +4617,21 @@ msgstr "オーナーを見る..." msgid "Move To..." msgstr "移動..." +msgid "Folder..." +msgstr "フォルダー..." + +msgid "Scene..." +msgstr "シーン..." + +msgid "Script..." +msgstr "スクリプト..." + +msgid "Resource..." +msgstr "リソース..." + +msgid "TextFile..." +msgstr "テキストファイル..." + msgid "New Scene..." msgstr "新規シーン..." @@ -3120,6 +4641,12 @@ msgstr "新規スクリプト..." msgid "New Resource..." msgstr "新規リソース..." +msgid "New TextFile..." +msgstr "新規テキストファイル..." + +msgid "Sort Files" +msgstr "ファイルの並び替え" + msgid "Sort by Name (Ascending)" msgstr "名前 (昇順) で並び替え" @@ -3138,18 +4665,33 @@ msgstr "更新日時が新しい順で並び替え" msgid "Sort by First Modified" msgstr "更新日時が古い順で並び替え" +msgid "Copy UID" +msgstr "UIDをコピー" + msgid "Duplicate..." msgstr "複製..." msgid "Rename..." msgstr "名前を変更..." +msgid "Open in External Program" +msgstr "外部プログラムで開く" + +msgid "Go to previous selected folder/file." +msgstr "前に選択したフォルダ/ファイルに移動します。" + +msgid "Go to next selected folder/file." +msgstr "次に選択したフォルダ/ファイルに移動します。" + msgid "Re-Scan Filesystem" msgstr "ファイルシステムを再スキャン" msgid "Toggle Split Mode" msgstr "分割モード切り替え" +msgid "Filter Files" +msgstr "ファイルをフィルタ" + msgid "" "Scanning Files,\n" "Please Wait..." @@ -3196,9 +4738,21 @@ msgstr "置換..." msgid "Replace in Files" msgstr "複数ファイル内で置換" +msgid "Replace all (no undo)" +msgstr "すべて置換(アンドゥ不可)" + msgid "Searching..." msgstr "検索中..." +msgid "%d match in %d file" +msgstr "%d 件の一致が見つかりました (%d 個のファイル内)" + +msgid "%d matches in %d file" +msgstr "%d 件の一致が見つかりました (%d 個のファイル内)" + +msgid "%d matches in %d files" +msgstr "%d 件の一致が見つかりました (%d 個のファイル内)" + msgid "Add to Group" msgstr "グループに追加" @@ -3235,12 +4789,158 @@ msgstr "グループエディター" msgid "Manage Groups" msgstr "グループの管理" +msgid "The Beginning" +msgstr "はじまり" + +msgid "Global" +msgstr "グローバル" + +msgid "Audio Stream Importer: %s" +msgstr "オーディオ ストリーム インポーター: %s" + msgid "Reimport" msgstr "再インポート" +msgid "Enable looping." +msgstr "ループを有効化" + msgid "Offset:" msgstr "オフセット:" +msgid "" +"Loop offset (from beginning). Note that if BPM is set, this setting will be " +"ignored." +msgstr "" +"ループのオフセット(先頭から)。BPMが設定されている場合、この設定は無視されま" +"すのでご注意ください。" + +msgid "Loop:" +msgstr "ループ:" + +msgid "BPM:" +msgstr "BPM:" + +msgid "" +"Configure the Beats Per Measure (tempo) used for the interactive streams.\n" +"This is required in order to configure beat information." +msgstr "" +"インタラクティブストリームに使用するBeats Per Measure(テンポ)を設定しま" +"す。\n" +"これは、ビート情報を設定するために必要です。" + +msgid "Beat Count:" +msgstr "ビート数:" + +msgid "" +"Configure the amount of Beats used for music-aware looping. If zero, it will " +"be autodetected from the length.\n" +"It is recommended to set this value (either manually or by clicking on a " +"beat number in the preview) to ensure looping works properly." +msgstr "" +"音楽を考慮したループ再生に使用するBeatsの量を設定します。0の場合、長さから自" +"動検出されます。\n" +"ループ再生が正しく機能するように、この値を設定することをお勧めします(手動ま" +"たはプレビューでビート番号をクリック)" + +msgid "Bar Beats:" +msgstr "小節あたりの拍数:" + +msgid "" +"Configure the Beats Per Bar. This used for music-aware transitions between " +"AudioStreams." +msgstr "" +"Beats Per Bar を設定します。AudioStream間の音楽を考慮したトランジションに使用" +"されます。" + +msgid "Music Playback:" +msgstr "音楽の再生設定:" + +msgid "New Configuration" +msgstr "新しい構成" + +msgid "Remove Variation" +msgstr "バリエーションを削除" + +msgid "" +"Warning: There are no configurations specified, no glyphs will be pre-" +"rendered." +msgstr "警告: 構成が指定されておらず、グリフは事前にレンダリングされません。" + +msgid "" +"Warning: Multiple configurations have identical settings. Duplicates will be " +"ignored." +msgstr "警告: 複数の構成の設定は同じです。重複は無視されます。" + +msgid "" +"Note: LCD Subpixel antialiasing is selected, each of the glyphs will be pre-" +"rendered for all supported subpixel layouts (5x)." +msgstr "" +"注: LCD サブピクセル アンチエイリアシングが選択されている場合、各グリフはサ" +"ポートされているすべてのサブピクセル レイアウト(5x)に対して事前にレンダリング" +"されます。" + +msgid "" +"Note: Subpixel positioning is selected, each of the glyphs might be pre-" +"rendered for multiple subpixel offsets (up to 4x)." +msgstr "" +"注: サブピクセルの配置が選択されている場合、各グリフは複数のサブピクセル オフ" +"セット(最大 4 倍)に対して事前にレンダリングされる場合があります。" + +msgid "Advanced Import Settings for '%s'" +msgstr "'%s' のインポートの詳細設定" + +msgid "Rendering Options" +msgstr "レンダリング オプション" + +msgid "Select font rendering options, fallback font, and metadata override:" +msgstr "" +"フォントレンダリングオプション、フォールバックフォント、およびメタデータオー" +"バーライドを選択します。" + +msgid "Pre-render Configurations" +msgstr "プリレンダーの構成" + +msgid "" +"Add font size, and variation coordinates, and select glyphs to pre-render:" +msgstr "" +"フォントサイズ、バリエーション座標を追加し、プリレンダリングするグリフを選択" +"します。" + +msgid "Configuration:" +msgstr "構成:" + +msgid "Add configuration" +msgstr "構成を追加" + +msgid "Clear Glyph List" +msgstr "グリフ リストをクリア" + +msgid "Glyphs from the Translations" +msgstr "翻訳からのグリフ" + +msgid "Select translations to add all required glyphs to pre-render list:" +msgstr "" +"翻訳を選択すると、必要なグリフがすべてプリレンダーリストに追加されます。" + +msgid "Shape all Strings in the Translations and Add Glyphs" +msgstr "翻訳文の文字列をすべてシェイプし、グリフを追加する" + +msgid "Glyphs from the Text" +msgstr "テキストからグリフ" + +msgid "" +"Enter a text and select OpenType features to shape and add all required " +"glyphs to pre-render list:" +msgstr "" +"テキストを入力し、OpenType フィーチャを選択してシェイプし、必要なすべてのグリ" +"フをプリレンダリング リストに追加します。" + +msgid "Shape Text and Add Glyphs" +msgstr "テキストのシェイプとグリフを追加" + +msgid "Glyphs from the Character Map" +msgstr "文字コード表のグリフ" + msgid "Importing Scene..." msgstr "シーンをインポート中..." @@ -3276,12 +4976,25 @@ msgstr "2D" msgid "3D" msgstr "3D" +msgid "Error opening scene" +msgstr "シーンを開く際にエラーが発生しました" + +msgid "Set paths to save animations as resource files on Reimport" +msgstr "" +"再インポート時にアニメーションをリソース ファイルとして保存するパスを設定" + +msgid "Actions..." +msgstr "操作..." + msgid "Meshes" msgstr "メッシュ" msgid "Materials" msgstr "マテリアル" +msgid "Save Extension:" +msgstr "拡張子を保存:" + msgid "Select Importer" msgstr "インポーターを選択" @@ -3317,6 +5030,9 @@ msgstr "名前を付けてインポート:" msgid "Preset" msgstr "プリセット" +msgid "Advanced..." +msgstr "高度な設定..." + msgid "Save Scenes, Re-Import, and Restart" msgstr "シーンを保存し、再インポートしてから、再起動します" @@ -3435,9 +5151,15 @@ msgstr "ロケールに従い再マップ:" msgid "Locale" msgstr "ロケール" +msgid "Set %s on %d nodes" +msgstr "%d ノードに %s を設定" + msgid "Select a single node to edit its signals and groups." msgstr "ノードを1つ選択してシグナルとグループを編集します。" +msgid "Subfolder name is not a valid folder name." +msgstr "サブフォルダ名は有効なフォルダ名ではありません。" + msgid "Edit a Plugin" msgstr "プラグインの編集" @@ -3542,6 +5264,12 @@ msgstr "点を選択して移動し、右クリックで点を作成します。 msgid "Enable snap and show grid." msgstr "スナップとグリッドの表示を有効にする。" +msgid "Sync:" +msgstr "同期:" + +msgid "Blend:" +msgstr "ブレンド:" + msgid "Point" msgstr "点" @@ -3584,15 +5312,9 @@ msgstr "点と三角形を消す。" msgid "Generate blend triangles automatically (instead of manually)" msgstr "自動的にブレンド三角形を生成" -msgid "Blend:" -msgstr "ブレンド:" - msgid "Parameter Changed:" msgstr "パラメーターが変更されました:" -msgid "Edit Filters" -msgstr "フィルターの編集" - msgid "Output node can't be added to the blend tree." msgstr "出力ノードをブレンドツリーに追加することはできません。" @@ -3660,9 +5382,21 @@ msgstr "ノードを追加..." msgid "Enable Filtering" msgstr "フィルタリングを有効化" +msgid "Library Name:" +msgstr "ライブラリ名:" + +msgid "Animation name can't be empty." +msgstr "アニメーション名を空にすることはできません。" + msgid "Load Animation" msgstr "アニメーション読み込み" +msgid "Invalid AnimationLibrary file." +msgstr "無効な AnimationLibrary ファイルです。" + +msgid "Invalid Animation file." +msgstr "無効なAnimationファイルです。" + msgid "Animation Name:" msgstr "アニメーション名:" @@ -3672,6 +5406,18 @@ msgstr "貼り付けたアニメーション" msgid "Open in Inspector" msgstr "インスペクターで開く" +msgid "Paste Animation to Library from clipboard" +msgstr "Animationをクリップボードからライブラリに貼り付け" + +msgid "Save animation library to resource on disk" +msgstr "アニメーション ライブラリをディスク上のリソースに保存" + +msgid "Copy animation to clipboard" +msgstr "クリップボードにアニメーションをコピー" + +msgid "Save animation to resource on disk" +msgstr "アニメーションをディスク上のリソースに保存" + msgid "Storage" msgstr "ストレージ" @@ -3705,15 +5451,15 @@ msgstr "次の変更をブレンド" msgid "Change Blend Time" msgstr "ブレンド時間の変更" +msgid "Duplicated Animation Name:" +msgstr "複製されたアニメーション名:" + msgid "Play selected animation backwards from current pos. (A)" msgstr "選択したアニメーションを現在の位置から逆再生する。(A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "選択したアニメーションを最後から逆再生する。(Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "アニメーションの再生を停止する。(S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "選択したアニメーションを最初から再生する。(Shift+D)" @@ -3732,6 +5478,9 @@ msgstr "アニメーションツール" msgid "Animation" msgstr "アニメーション" +msgid "Manage Animations..." +msgstr "アニメーションの管理..." + msgid "Edit Transitions..." msgstr "トランジションの編集..." @@ -4103,6 +5852,15 @@ msgstr "グループ化済み" msgid "Add Node Here" msgstr "ここにノードを追加" +msgid "Moving:" +msgstr "移動:" + +msgid "Rotating:" +msgstr "回転:" + +msgid "Scaling:" +msgstr "スケール:" + msgid "" "Project Camera Override\n" "Overrides the running project's camera with the editor viewport camera." @@ -4595,6 +6353,9 @@ msgstr "" "リモートのデバイス上で使用する場合、ネットワークファイルシステムのオプション" "も有効であればより効率的になります。" +msgid " - Variation" +msgstr " - バリエーション" + msgid "Convert to CPUParticles2D" msgstr "CPUParticles2D に変換" @@ -4634,12 +6395,21 @@ msgstr "サーフェスポイント+Normal(指向性)" msgid "Volume" msgstr "ボリューム" +msgid "Emission Source:" +msgstr "放出源:" + msgid "Generate Visibility AABB" msgstr "可視性のAABBを生成" msgid "Gradient Edited" msgstr "グラデーション編集" +msgid "Swap GradientTexture2D Fill Points" +msgstr "GradientTexture2D 塗りポイントを入れ替え" + +msgid "Swap Gradient Fill Points" +msgstr "Gradient の塗りつぶしポイントを入れ替え" + msgid "Toggle Grid Snap" msgstr "グリッドスナップの切り替え" @@ -4720,6 +6490,18 @@ msgstr "デバッグするメッシュがありません。" msgid "Mesh has no UV in layer %d." msgstr "メッシュのレイヤー %dにUVがありません。" +msgid "MeshInstance3D lacks a Mesh." +msgstr "MeshInstanceにメッシュがありません。" + +msgid "Mesh has no surface to create outlines from." +msgstr "メッシュにアウトラインを作成するためのサーフェスがありません。" + +msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES." +msgstr "メッシュのプリミティブ型が PRIMITIVE_TRIANGLES ではありません。" + +msgid "Could not create outline." +msgstr "アウトラインを生成できませんでした。" + msgid "Create Outline" msgstr "アウトラインを生成" @@ -4927,12 +6709,6 @@ msgstr "NotifierのAABBを変更" msgid "Change Particles AABB" msgstr "パーティクルのAABBを変更" -msgid "Change Box Shape Extents" -msgstr "ボックスシェイプの範囲を変更" - -msgid "Change Probe Extents" -msgstr "プローブの範囲を変更" - msgid "Change Capsule Shape Radius" msgstr "カプセルシェイプの半径を変更" @@ -5011,6 +6787,9 @@ msgstr "キーは無効化されています(キーは挿入されていませ msgid "Animation Key Inserted." msgstr "アニメーションキーが挿入されました。" +msgid "Objects: %d\n" +msgstr "オブジェクトID\n" + msgid "Top View." msgstr "上面図。" @@ -5044,6 +6823,9 @@ msgstr "回転" msgid "Translate" msgstr "移動" +msgid "Translating:" +msgstr "位置の変更:" + msgid "Rotating %s degrees." msgstr "%s 度回転。" @@ -5068,6 +6850,9 @@ msgstr "シェーディングなしで表示" msgid "Shadow Atlas" msgstr "シャドウアトラス" +msgid "Display Advanced..." +msgstr "詳細な表示設定..." + msgid "View Environment" msgstr "環境を表示" @@ -5147,6 +6932,9 @@ msgstr "ノードをフロアにスナップ" msgid "Couldn't find a solid floor to snap the selection to." msgstr "選択対象をスナップさせる剛体の床を見つけられませんでした。" +msgid "Preview disabled." +msgstr "プレビューは無効です。" + msgid "Use Local Space" msgstr "ローカル空間を使用" @@ -5737,6 +7525,9 @@ msgstr "標準" msgid "Connections to method:" msgstr "メソッドへの接続:" +msgid "Source" +msgstr "ソース" + msgid "Target" msgstr "ターゲット" @@ -5859,6 +7650,9 @@ msgstr "次のブレークポイントに移動" msgid "Go to Previous Breakpoint" msgstr "前のブレークポイントに移動" +msgid "Save File As" +msgstr "名前を付けて保存" + msgid "This skeleton has no bones, create some children Bone2D nodes." msgstr "このskeletonにはボーンがありません。子Bone2Dノードを追加してください。" @@ -5880,6 +7674,9 @@ msgstr "レストポーズを上書き" msgid "Create physical bones" msgstr "物理ボーンを作成する" +msgid "Export Skeleton Profile As..." +msgstr "スケルトンプロファイルをエクスポート..." + msgid "Play IK" msgstr "IKを再生" @@ -5901,6 +7698,9 @@ msgstr "LightOccluder2Dを作成" msgid "LightOccluder2D Preview" msgstr "LightOccluder2D プレビュー" +msgid "Can't convert a Sprite2D from a foreign scene." +msgstr "外部シーンから Sprite2D を変換できません。" + msgid "Can't convert a sprite using animation frames to mesh." msgstr "アニメーションフレームを使用してスプライトをメッシュに変換できません。" @@ -5928,6 +7728,9 @@ msgstr "ジオメトリが無効です。ライトオクールダーを作成で msgid "Create LightOccluder2D Sibling" msgstr "LightOccluder2Dの兄弟を作成" +msgid "Simplification:" +msgstr "簡略化:" + msgid "Shrink (Pixels):" msgstr "縮小 (ピクセル):" @@ -5979,15 +7782,15 @@ msgstr "(空)" msgid "Animations:" msgstr "アニメーション:" -msgid "Speed:" -msgstr "速度:" - -msgid "Loop" -msgstr "ループ" +msgid "Delete Animation" +msgstr "アニメーションを削除しますか?" msgid "Animation Frames:" msgstr "アニメーション フレーム:" +msgid "Frame Duration:" +msgstr "フレーム持続時間:" + msgid "Zoom Reset" msgstr "ズームをリセット" @@ -6036,21 +7839,41 @@ msgstr "ステップ:" msgid "Styleboxes" msgstr "StyleBox" +msgid "1 color" +msgid_plural "{num} colors" +msgstr[0] "{num}色" + msgid "No colors found." msgstr "カラーが見つかりませんでした。" +msgid "1 constant" +msgid_plural "{num} constants" +msgstr[0] "[num] 定数" + msgid "No constants found." msgstr "定数が見つかりませんでした。" msgid "No fonts found." msgstr "フォントが見つかりませんでした。" +msgid "1 font size" +msgid_plural "{num} font sizes" +msgstr[0] "[num] フォントサイズ" + msgid "No icons found." msgstr "アイコンが見つかりませんでした。" +msgid "1 stylebox" +msgid_plural "{num} styleboxes" +msgstr[0] "[num] StyleBox" + msgid "No styleboxes found." msgstr "StyleBoxが見つかりませんでした。" +msgid "{num} currently selected" +msgid_plural "{num} currently selected" +msgstr[0] "{num} 個 選択中" + msgid "Nothing was selected for the import." msgstr "インポートするものが選択されていません。" @@ -6190,6 +8013,9 @@ msgstr "" "このテーマタイプは空です。\n" "手動もしくは他のテーマからインポートして、アイテムを追加してください。" +msgid "Remove Data Type Items From Theme" +msgstr "テーマからデータ型アイテムを除去" + msgid "Add Color Item" msgstr "カラーアイテムの追加" @@ -6317,9 +8143,15 @@ msgstr "アイテムのタイプを追加" msgid "Add Type" msgstr "タイプを追加" +msgid "Override All Default Theme Items" +msgstr "すべてのデフォルトのテーマアイテムを上書き" + msgid "Set Base Type" msgstr "基底型を設定" +msgid "Add a type from a list of available types or create a new one." +msgstr "利用可能なタイプのリストからタイプを追加するか、新規に作成します。" + msgid "Show Default" msgstr "デフォルトを表示" @@ -6336,6 +8168,9 @@ msgstr "すべてのデフォルトタイプのアイテムをオーバーライ msgid "Base Type" msgstr "基底型" +msgid "Select the variation base type from a list of available types." +msgstr "使用可能なタイプのリストからバリエーションのベースタイプを選択。" + msgid "Theme:" msgstr "テーマ:" @@ -6449,12 +8284,48 @@ msgstr "左右反転" msgid "Flip Vertically" msgstr "上下反転" +msgid "Painting:" +msgstr "ペイント設定:" + +msgid "Shift+Ctrl: Draw rectangle." +msgstr "Shift+Ctrl: 四角形を描画" + +msgid "Scattering:" +msgstr "拡散:" + msgid "Tiles" msgstr "タイル" +msgid "Toggle grid visibility." +msgstr "グリッドの表示を切り替え" + +msgid "Delete All Tile Proxies" +msgstr "すべてのタイルプロキシを削除" + +msgid "Global actions:" +msgstr "グローバルアクション:" + +msgid "Select tiles." +msgstr "タイルを選択します。" + +msgid "No tiles selected." +msgstr "タイルが選択されていません。" + +msgid "Paint Properties:" +msgstr "ペイント設定:" + msgid "Yes" msgstr "はい" +msgid "Add a new atlas source" +msgstr "新しいアトラスソースを追加" + +msgid "Add a Scene Tile" +msgstr "シーンタイルの追加" + +msgid "Tile properties:" +msgstr "タイル設定:" + msgid "TileSet" msgstr "タイルセット" @@ -6491,6 +8362,9 @@ msgstr "%s ブランチを削除しますか?" msgid "Do you want to remove the %s remote?" msgstr "リモート %s を削除しますか?" +msgid "Create VCS metadata files for:" +msgstr "VCSメタデータ ファイルを作成:" + msgid "Apply" msgstr "適用" @@ -6965,6 +8839,9 @@ msgstr "パラメーターの双曲タンジェントを返します。" msgid "Finds the truncated value of the parameter." msgstr "パラメーターを切り捨てた値を求めます。" +msgid "Converts screen UV to a SDF." +msgstr "スクリーンUVをSDFに変換します。" + msgid "Perform the cubic texture lookup." msgstr "立体テクスチャ・ルックアップを実行します。" @@ -7002,6 +8879,12 @@ msgstr "トランスフォームの逆行列を計算します。" msgid "Calculates the transpose of a transform." msgstr "トランスフォームの転置を計算します。" +msgid "Sums two transforms." +msgstr "2 つのTransformを合計します。" + +msgid "Subtracts two transforms." +msgstr "2 つのTransformを減算します。" + msgid "Multiplies vector by transform." msgstr "トランスフォームでベクトルを乗算します。" @@ -7244,6 +9127,9 @@ msgstr "プロジェクトのインストールパス:" msgid "Renderer:" msgstr "レンダラー:" +msgid "Version Control Metadata:" +msgstr "バージョン管理メタデータ:" + msgid "Missing Project" msgstr "プロジェクトがありません" @@ -7263,6 +9149,62 @@ msgid "Can't open project at '%s'." msgstr "次の場所のプロジェクトを開けません '%s'。" msgid "" +"The selected project \"%s\" does not specify its supported Godot version in " +"its configuration file (\"project.godot\").\n" +"\n" +"Project path: %s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" +"次のプロジェクト設定ファイルには、作成に使用されたGodotのバージョンが指定され" +"ていません。\n" +"\n" +"%s\n" +"\n" +"ファイルを開くと、Godotの現在の設定ファイル形式に変換されます。\n" +"\n" +"警告: 以前のバージョンのエンジンではプロジェクトを開けなくなります。" + +msgid "" +"The selected project \"%s\" was generated by an older engine version, and " +"needs to be converted for this version.\n" +"\n" +"Project path: %s\n" +"\n" +"Do you want to convert it?\n" +"\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" +"以下のプロジェクト設定ファイルは、古いバージョンのエンジンにより生成されてお" +"り、現在のバージョン用に変換が必要です:\n" +"\n" +"%s\n" +"\n" +"変換しますか?\n" +"\n" +"警告: プロジェクトは旧バージョンのエンジンで開くことができなくなります。" + +msgid "" +"Can't open project \"%s\" at the following path:\n" +"\n" +"%s\n" +"\n" +"The project settings were created by a newer engine version, whose settings " +"are not compatible with this version." +msgstr "" +"プロジェクト \"%s\" が以下のパスで開けません:\n" +"\n" +"%s\n" +"\n" +"プロジェクト設定は新しいエンジンバージョンで作成されましたが、その設定はこの" +"バージョンと互換性がありません。" + +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." @@ -7381,9 +9323,6 @@ msgstr "入力アクションの追加" msgid "Change Action deadzone" msgstr "アクション デッドゾーンを変更" -msgid "Add Input Action Event" -msgstr "入力アクション イベントを追加" - msgid "Erase Input Action" msgstr "入力アクションを消去" @@ -7393,6 +9332,9 @@ msgstr "入力アクションイベントの名前を変更する" msgid "Project Settings (project.godot)" msgstr "プロジェクト設定 (project.godot)" +msgid "Select a Setting or Type its Name" +msgstr "設定を選択 または 設定名を入力" + msgid "Input Map" msgstr "インプットマップ" @@ -7411,9 +9353,6 @@ msgstr "プロパティの選択" msgid "Select Virtual Method" msgstr "Virtualメソッドを選択" -msgid "Select Method" -msgstr "メソッドの選択" - msgid "Batch Rename" msgstr "名前の一括変更" @@ -7432,6 +9371,21 @@ msgstr "高度なオプション" msgid "Substitute" msgstr "代替" +msgid "Node name." +msgstr "ノード名" + +msgid "Node's parent name, if available." +msgstr "ノードの親の名前 (使用可能な場合)" + +msgid "Node type." +msgstr "ノードタイプ" + +msgid "Current scene name." +msgstr "現在のシーン名" + +msgid "Root node name." +msgstr "ルートノード名" + msgid "" "Sequential integer counter.\n" "Compare counter options." @@ -7445,9 +9399,15 @@ msgstr "レベルごとのカウンター" msgid "If set, the counter restarts for each group of child nodes." msgstr "設定すると、子ノードのグループごとにカウンターが再起動します。" +msgid "Initial value for the counter." +msgstr "カウンターの初期値" + msgid "Step" msgstr "ステップ" +msgid "Amount by which counter is incremented for each node." +msgstr "各ノードのカウンターの増分量" + msgid "Padding" msgstr "パディング" @@ -7491,12 +9451,21 @@ msgstr "文字 %s" msgid "Reparent Node" msgstr "親ノードを変更" +msgid "Select new parent:" +msgstr "新しい親を選択:" + msgid "Keep Global Transform" msgstr "グローバル トランスフォームを保持" msgid "Reparent" msgstr "親を変更" +msgid "File name invalid." +msgstr "ファイル名が無効です。" + +msgid "Root Type:" +msgstr "ルートの型:" + msgid "2D Scene" msgstr "2D シーン" @@ -7506,6 +9475,9 @@ msgstr "3D シーン" msgid "User Interface" msgstr "ユーザーインターフェース" +msgid "Root Name:" +msgstr "ルートの名前:" + msgid "Error loading scene from %s" msgstr "シーンを%sから読み込む際にエラーが生じました" @@ -7755,6 +9727,17 @@ msgstr "" "内のどこからでもアクセスできます。\n" "クリックすると無効になります。" +msgid "Node has one connection." +msgid_plural "Node has {num} connections." +msgstr[0] "ノードには {num} 個の接続があります。" + +msgid "Node is in this group:" +msgid_plural "Node is in the following groups:" +msgstr[0] "ノードは次のグループ内にあります:" + +msgid "Click to show signals dock." +msgstr "クリックでシグナルのドックを表示します。" + msgid "Open Script:" msgstr "スクリプトを開く:" @@ -7885,6 +9868,12 @@ msgstr "無効なベースパスです。" msgid "Wrong extension chosen." msgstr "間違った拡張子が選択されました。" +msgid "Mode:" +msgstr "モード:" + +msgid "Global shader parameter '%s' already exists'" +msgstr "グローバルシェーダーパラメーター '%s' は存在しています" + msgid "Change Cylinder Radius" msgstr "円柱の半径を変更" @@ -7924,6 +9913,9 @@ msgstr "無効なインスタンス辞書形式です(@path で無効なスク msgid "Invalid instance dictionary (invalid subclasses)" msgstr "無効なインスタンス辞書です(無効なサブクラス)" +msgid "Path to Blender installation is valid." +msgstr "Blenderのインストールパスは有効です。" + msgid "Next Plane" msgstr "次の平面" @@ -8006,7 +9998,7 @@ msgid "GridMap Settings" msgstr "グリッドマップの設定" msgid "Pick Distance:" -msgstr "距離を取得:" +msgstr "選択距離:" msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "" @@ -8043,6 +10035,12 @@ msgstr "サイズ" msgid "Network Profiler" msgstr "ネットワークプロファイラー" +msgid "Not possible to add a new property to synchronize without a root." +msgstr "ルートなしで同期する新しいプロパティを追加することはできません。" + +msgid "Delete Property?" +msgstr "プロパティを削除しますか?" + msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" "このノードを動かすために NavigationMesh リソースを設定または作成する必要があ" @@ -8093,6 +10091,12 @@ msgstr "ジオメトリを解析しています..." msgid "Done!" msgstr "完了!" +msgid "Error loading %s: %s." +msgstr "%s のロード中にエラーが発生しました: %s" + +msgid "Add an action set." +msgstr "アクションセットを追加します。" + msgid "Package name is missing." msgstr "パッケージ名がありません。" @@ -8190,18 +10194,9 @@ msgstr "APK expansion の公開鍵が無効です。" msgid "Invalid package name:" msgstr "無効なパッケージ名:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" -"プラグインを利用するには「Use Custom Build (カスタムビルドを使用する)」が有効" -"になっている必要があります。" - msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "\"パススルー\" は \"XR Mode\" が \"OpenXR\" の場合にのみ有効です。" -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"\"Export AAB\" は \"Use Custom Build\" が有効である場合にのみ有効になります。" - msgid "Code Signing" msgstr "コード署名" @@ -8227,6 +10222,13 @@ msgstr "apksigner実行ファイルを開始できませんでした。" msgid "'apksigner' returned with error #%d" msgstr "'apksigner' がエラー #%d で終了しました" +msgid "" +"output: \n" +"%s" +msgstr "" +"出力:\n" +"%s" + msgid "Verifying %s..." msgstr "%s を検証中..." @@ -8249,13 +10251,6 @@ msgid "Unsupported export format!" msgstr "サポートされていないエクスポート形式です!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"カスタムビルドされたテンプレートからビルドしようとしましたが、そのバージョン" -"情報が存在しません。 「プロジェクト」メニューから再インストールしてください。" - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" @@ -8265,12 +10260,29 @@ msgstr "" "「プロジェクト 」メニューからAndroidビルドテンプレートを再インストールしてく" "ださい。" +msgid "" +"Unable to overwrite res://android/build/res/*.xml files with project name." +msgstr "" +"res://android/build/res/*.xml ファイルをプロジェクト名で上書きできません。" + +msgid "Could not export project files to gradle project." +msgstr "" +"プロジェクトファイルをgradleプロジェクトにエクスポートできませんでした。" + msgid "Could not write expansion package file!" msgstr "拡張パッケージファイルを書き込めませんでした!" msgid "Building Android Project (gradle)" msgstr "Androidプロジェクトの構築(gradle)" +msgid "" +"Building of Android project failed, check output for the error. " +"Alternatively visit docs.godotengine.org for Android build documentation." +msgstr "" +"Androidプロジェクトのビルドに失敗しました。エラーの出力を確認してください。\n" +"また、Androidビルドについてのドキュメントは docs.godotengine.org をご覧くださ" +"い。" + msgid "Moving output" msgstr "出力結果の移動中" @@ -8287,6 +10299,19 @@ msgstr "パッケージが見つかりません: \"%s\"。" msgid "Creating APK..." msgstr "APK を作成しています..." +msgid "Could not find template APK to export: \"%s\"." +msgstr "エクスポートするテンプレートAPKが見つかりませんでした: \"%s\"" + +msgid "" +"Missing libraries in the export template for the selected architectures: %s. " +"Please build a template with all required libraries, or uncheck the missing " +"architectures in the export preset." +msgstr "" +"選択されたアーキテクチャ: %s のエクスポートテンプレートのライブラリが不足して" +"います。\n" +"必要なライブラリをすべて含むテンプレートを作成するか、エクスポートのプリセッ" +"トで、不足しているアーキテクチャのチェックを外してください。" + msgid "Adding files..." msgstr "ファイルを追加中..." @@ -8370,6 +10395,15 @@ msgstr "" "公証の手続きは通常1時間以内に終了します。手続きが完了するとEメールが届きま" "す。" +msgid "Cannot sign file %s." +msgstr "ファイル %s に署名できません。" + +msgid "Could not start hdiutil executable." +msgstr "hdiutilを開始できませんでした。" + +msgid "Could not find template app to export: \"%s\"." +msgstr "エクスポートするテンプレートアプリが見つかりませんでした: \"%s\"" + msgid "Invalid export format." msgstr "無効なエクスポート形式です。" @@ -8432,6 +10466,13 @@ msgstr "" "が有効になっている Mac および Apple Silicon 搭載の Mac では動作しません。" msgid "" +"Code signing: Using ad-hoc signature. The exported project will be blocked " +"by Gatekeeper" +msgstr "" +"コード署名: アドホック署名を使用します。エクスポートされたプロジェクトは " +"Gatekeeper によってブロックされます。" + +msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." msgstr "" @@ -8517,6 +10558,9 @@ msgstr "" "スプラッシュスクリーンの画像サイズが無効です(縦横620x300でなければなりませ" "ん)。" +msgid "Could not open template for export: \"%s\"." +msgstr "エクスポート用のテンプレートを開けませんでした: \"%s\"" + msgid "Invalid export template: \"%s\"." msgstr "無効なエクスポートテンプレート: \"%s\"。" @@ -8698,6 +10742,13 @@ msgid "PathFollow2D only works when set as a child of a Path2D node." msgstr "" "PathFollow2D は、Path2D ノードの子として設定されている場合のみ動作します。" +msgid "" +"A PhysicalBone2D only works with a Skeleton2D or another PhysicalBone2D as a " +"parent node!" +msgstr "" +"PhysicalBone2D は、親ノードとして Skeleton2D または別の PhysicalBone2D でのみ" +"機能します。" + msgid "Path property must point to a valid Node2D node to work." msgstr "" "Path プロパティは、動作するように有効な Node2D ノードを示す必要があります。" @@ -8716,6 +10767,16 @@ msgstr "" "このボーンには適切なRESTポーズがありません。 Skeleton2Dノードに移動して設定し" "ます。" +msgid "" +"CollisionPolygon3D only serves to provide a collision shape to a " +"CollisionObject3D derived node.\n" +"Please only use it as a child of Area3D, StaticBody3D, RigidBody3D, " +"CharacterBody3D, etc. to give them a shape." +msgstr "" +"CollisionPolygon2Dは、CollisionObject2D派生ノードにコリジョンシェイプを提供す" +"るためにのみ機能します。シェイプを追加する場合は、Area2D、StaticBody2D、" +"RigidBody2D、KinematicBody2Dなどの子として使用してください。" + msgid "Nothing is visible because no mesh has been assigned." msgstr "メッシュが割り当てられていないため、何も表示されません。" @@ -8723,6 +10784,9 @@ msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "描画パスにメッシュが割り当てられていないため、何も表示されません。" +msgid "Creating probes" +msgstr "プローブの作成" + msgid "This body will be ignored until you set a mesh." msgstr "このボディは、メッシュを設定するまで無視されます。" @@ -8767,9 +10831,22 @@ msgstr "AnimationPlayerに設定されたパスからAnimationPlayerノードが msgid "The AnimationPlayer root node is not a valid node." msgstr "AnimationPlayerルートノードが有効なノードではありません。" +msgid "" +"Color: #%s\n" +"LMB: Apply color" +msgstr "" +"色: #%s\n" +"左クリック: 色をセット" + msgid "Pick a color from the editor window." msgstr "エディターウィンドウから色を選択。" +msgid "Select a picker shape." +msgstr "ピッカーシェイプを選択" + +msgid "Select a picker mode." +msgstr "ピッカー・モードを選択" + msgid "Switch between hexadecimal and code values." msgstr "16進数とコード値を切り替えます。" @@ -8845,6 +10922,16 @@ msgid "" msgstr "" "レンダーするにはViewportの縦横それぞれが2ピクセル以上である必要があります。" +msgid "Unsupported BMFont texture format." +msgstr "サポートされていない BMFont テクスチャ形式です。" + +msgid "" +"Shader keywords cannot be used as parameter names.\n" +"Choose another name." +msgstr "" +"シェーダーのキーワードはパラメーターの名前として使用できません。\n" +"別の名前を選んでください。" + msgid "" "The sampler port is connected but not used. Consider changing the source to " "'SamplerPort'." @@ -8870,6 +10957,15 @@ msgstr "繰り返し" msgid "Invalid comparison function for that type." msgstr "そのタイプの比較関数は無効です。" +msgid "Invalid arguments for the built-in function: \"%s(%s)\"." +msgstr "組み込み関数 \"%s(%s)\" の引数が無効です。" + +msgid "Invalid assignment of '%s' to '%s'." +msgstr "'%s' から '%s' への割り当てが無効です。" + +msgid "Expected constant expression." +msgstr "定数式が必要です。" + msgid "Varying may not be assigned in the '%s' function." msgstr "Varying は '%s' 関数で割り当てられない可能性があります。" @@ -8881,3 +10977,81 @@ msgstr "uniform への割り当て。" msgid "Constants cannot be modified." msgstr "定数は変更できません。" + +msgid "Cannot convert from '%s' to '%s'." +msgstr "'%s' から '%s' に変換できません。" + +msgid "Expected ')' in expression." +msgstr "式に ')' が必要です。" + +msgid "Void value not allowed in expression." +msgstr "void 値は式では使用できません。" + +msgid "No matching constructor found for: '%s'." +msgstr "'%s' に一致するコンストラクタが見つかりません。" + +msgid "No matching function found for: '%s'." +msgstr "'%s' に一致する関数が見つかりません。" + +msgid "Invalid arguments to unary operator '%s': %s." +msgstr "単項演算子 '%s' の引数が無効です: %s" + +msgid "Invalid argument to ternary operator: '%s'." +msgstr "三項演算子 '%s' の引数が無効です。" + +msgid "Invalid arguments to operator '%s': '%s'." +msgstr "演算子 '%s' の引数が無効です: '%s'" + +msgid "Invalid variable type (samplers are not allowed)." +msgstr "変数の型が無効です (サンプラーは使用できません)" + +msgid "Duplicated case label: %d." +msgstr "case ラベルが重複しています: %d" + +msgid "Duplicated render mode: '%s'." +msgstr "rebder mode が重複しています: '%s'" + +msgid "Duplicated hint: '%s'." +msgstr "ヒントが重複しています: '%s'" + +msgid "Duplicated filter mode: '%s'." +msgstr "filter mode が重複しています: '%s'" + +msgid "Duplicated repeat mode: '%s'." +msgstr "repeat mode が重複しています: '%s'" + +msgid "Invalid constant type (samplers are not allowed)." +msgstr "定数の型が無効です (サンプラーは使用できません)" + +msgid "Invalid function type (samplers are not allowed)." +msgstr "関数の型が無効です (サンプラーは使用できません)" + +msgid "Expected a '%s'." +msgstr "'%s' が必要です。" + +msgid "Expected a '%s' or '%s'." +msgstr "'%s' または '%s' が必要です。" + +msgid "Redefinition of '%s'." +msgstr "'%s' の再定義。" + +msgid "Invalid argument name." +msgstr "引数名が無効です。" + +msgid "Condition evaluation error." +msgstr "条件評価エラー" + +msgid "Invalid macro argument count." +msgstr "マクロ引数の数が無効です。" + +msgid "The const '%s' is declared but never used." +msgstr "const '%s' は定義されていますが使用されていません。" + +msgid "The function '%s' is declared but never used." +msgstr "関数 '%s' は定義されていますが使用されていません。" + +msgid "The struct '%s' is declared but never used." +msgstr "構造体 '%s' は定義されていますが使用されていません。" + +msgid "The local variable '%s' is declared but never used." +msgstr "ローカル変数 '%s' は定義されていますが使用されていません。" diff --git a/editor/translations/editor/ko.po b/editor/translations/editor/ko.po index c157b684b5..3400b8d86e 100644 --- a/editor/translations/editor/ko.po +++ b/editor/translations/editor/ko.po @@ -42,13 +42,14 @@ # Godoto <aicompose@gmail.com>, 2022. # gaenyang <gaenyang@outlook.com>, 2022. # 오지훈 <jule1130@naver.com>, 2023. +# 이정희 <daemul72@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-20 10:19+0000\n" -"Last-Translator: 오지훈 <jule1130@naver.com>\n" +"PO-Revision-Date: 2023-02-09 15:26+0000\n" +"Last-Translator: 이정희 <daemul72@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" "Language: ko\n" @@ -56,7 +57,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.15.1\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Physical" msgstr "물리" @@ -609,6 +610,9 @@ msgstr "이 시그널에서:" msgid "Scene does not contain any script." msgstr "씬에 스크립트가 없습니다." +msgid "Select Method" +msgstr "메서드 선택" + msgid "Remove" msgstr "제거" @@ -666,9 +670,6 @@ msgstr "연결 끊기" msgid "Connect a Signal to a Method" msgstr "시그널을 메서드에 연결" -msgid "Edit Connection:" -msgstr "연결 변경:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "\"%s\" 시그널의 모든 연결을 제거하시겠습니까?" @@ -813,23 +814,8 @@ msgstr "경고:" msgid "Error:" msgstr "오류:" -msgid "C++ Error" -msgstr "C++ 오류" - -msgid "C++ Error:" -msgstr "C++ 오류:" - -msgid "Source" -msgstr "소스" - -msgid "C++ Source" -msgstr "C++ 소스" - -msgid "Source:" -msgstr "소스:" - -msgid "C++ Source:" -msgstr "C++ 소스:" +msgid "%s Error" +msgstr "%s 오류" msgid "Stack Trace" msgstr "스택 추적" @@ -840,6 +826,9 @@ msgstr "오류 복사" msgid "Open C++ Source on GitHub" msgstr "GitHub에서 C++ 소스 열기" +msgid "C++ Source" +msgstr "C++ 소스" + msgid "Video RAM" msgstr "비디오 RAM" @@ -1302,6 +1291,12 @@ msgstr "노드 이름:" msgid "Global Variable" msgstr "전역 변수" +msgid "2D Physics" +msgstr "2D 물리" + +msgid "3D Physics" +msgstr "3D 물리" + msgid "Navigation" msgstr "네비게이션" @@ -1652,6 +1647,9 @@ msgstr "%s 오버라이드:" msgid "default:" msgstr "디폴트:" +msgid "Operators" +msgstr "연산자" + msgid "Theme Properties" msgstr "테마 속성들" @@ -1789,12 +1787,12 @@ msgstr "모든 로케일 보이기" msgid "Show Selected Locales Only" msgstr "선택한 로케일만 보이기" +msgid "Edit Filters" +msgstr "필터 편집" + msgid "Language:" msgstr "언어:" -msgid "Script" -msgstr "스크립트" - msgid "Variant" msgstr "변종" @@ -2341,22 +2339,6 @@ msgid "Install from file" msgstr "파일에서 설치" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"\"res://android/build\"에 소스 템플릿을 설치해서 프로젝트를 커스텀 Android 빌" -"드에 맞게 설정합니다.\n" -"그런 다음 수정 사항을 적용하고 커스텀 APK를 빌드해서 내보낼 수 있습니다(모듈 " -"추가, AndroidManifest.xml 변경 등).\n" -"미리 빌드된 APK를 사용하는 대신 커스텀 빌드를 만들려면, Android 내보내기 프리" -"셋에서 \"커스텀 빌드 사용(Use Custom Build)\" 설정을 활성화해야 합니다." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2579,9 +2561,6 @@ msgstr "단축키" msgid "Binding" msgstr "바인딩" -msgid "%s Error" -msgstr "%s 오류" - msgid "All Devices" msgstr "모든 기기" @@ -3498,6 +3477,9 @@ msgstr "점을 선택하고 이동합니다. 우클릭으로 점을 만드세요 msgid "Enable snap and show grid." msgstr "스냅을 활성화하고 격자를 보이게 합니다." +msgid "Blend:" +msgstr "혼합:" + msgid "Point" msgstr "점" @@ -3540,15 +3522,9 @@ msgstr "점과 삼각형 지우기." msgid "Generate blend triangles automatically (instead of manually)" msgstr "(수동 대신) 자동으로 혼합 삼각형 만들기" -msgid "Blend:" -msgstr "혼합:" - msgid "Parameter Changed:" msgstr "매개변수 변경됨:" -msgid "Edit Filters" -msgstr "필터 편집" - msgid "Output node can't be added to the blend tree." msgstr "출력 노드를 혼합 트리에 추가할 수 없습니다." @@ -3670,9 +3646,6 @@ msgstr "선택한 애니메이션을 현재 위치에서 거꾸로 재생합니 msgid "Play selected animation backwards from end. (Shift+A)" msgstr "선택한 애니메이션을 끝에서 거꾸로 재생합니다. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "애니메이션 재생을 중단합니다. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "선택한 애니메이션을 처음부터 재생합니다. (Shift+D)" @@ -4888,12 +4861,6 @@ msgstr "알림 AABB 바꾸기" msgid "Change Particles AABB" msgstr "파티클 AABB 바꾸기" -msgid "Change Box Shape Extents" -msgstr "박스 모양 범위 바꾸기" - -msgid "Change Probe Extents" -msgstr "프로브 범위 바꾸기" - msgid "Change Capsule Shape Radius" msgstr "캡슐 모양 반경 바꾸기" @@ -5003,7 +4970,7 @@ msgid "Rotate" msgstr "회전" msgid "Translate" -msgstr "이동" +msgstr "옮기기" msgid "Translating:" msgstr "번역 중:" @@ -5695,6 +5662,9 @@ msgstr "표준" msgid "Connections to method:" msgstr "메서드에 연결:" +msgid "Source" +msgstr "소스" + msgid "Target" msgstr "Target(대상)" @@ -5939,12 +5909,6 @@ msgstr "(비었음)" msgid "Animations:" msgstr "애니메이션:" -msgid "Speed:" -msgstr "속도:" - -msgid "Loop" -msgstr "루프" - msgid "Animation Frames:" msgstr "애니메이션 프레임:" @@ -7329,9 +7293,6 @@ msgstr "입력 액션 추가" msgid "Change Action deadzone" msgstr "액션 데드존 바꾸기" -msgid "Add Input Action Event" -msgstr "입력 액션 이벤트 추가" - msgid "Erase Input Action" msgstr "입력 액션 지우기" @@ -7359,9 +7320,6 @@ msgstr "속성 선택" msgid "Select Virtual Method" msgstr "가상 메서드 선택" -msgid "Select Method" -msgstr "메서드 선택" - msgid "Batch Rename" msgstr "일괄 이름 바꾸기" @@ -8133,12 +8091,6 @@ msgstr "APK 확장에 잘못된 공개 키입니다." msgid "Invalid package name:" msgstr "잘못된 패키지 이름:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "플러그인을 사용하려면 \"Use Custom Build\"가 활성화되어야 합니다." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "\"Export AAB\"는 \"Use Custom Build\"가 활성화된 경우에만 유효합니다." - msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." @@ -8183,13 +8135,6 @@ msgid "Unsupported export format!" msgstr "지원되지 않는 내보내기 형식입니다!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"커스텀 빌드 템플릿으로 빌드하려 했으나, 버전 정보가 없습니다. '프로젝트" -"(Project)' 메뉴에서 다시 설치해주세요." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" diff --git a/editor/translations/editor/lv.po b/editor/translations/editor/lv.po index b6f4152e33..79048ab1e7 100644 --- a/editor/translations/editor/lv.po +++ b/editor/translations/editor/lv.po @@ -553,9 +553,6 @@ msgstr "Atvienot" msgid "Connect a Signal to a Method" msgstr "Savienot Signālu ar Metodi" -msgid "Edit Connection:" -msgstr "Izmainīt Savienojumu:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "" "Vai esat drošs(ša), ka vēlaties noņemt visus savienojumus no \"%s\" signāla?" @@ -663,18 +660,12 @@ msgstr "Izsaukumi" msgid "Error:" msgstr "Kļūda:" -msgid "Source" -msgstr "Avots" +msgid "%s Error" +msgstr "%s Kļūda" msgid "C++ Source" msgstr "C++ avots" -msgid "Source:" -msgstr "Avots:" - -msgid "C++ Source:" -msgstr "C++ Avots:" - msgid "Skip Breakpoints" msgstr "Izlaist pārrāvumpunktus" @@ -2067,22 +2058,6 @@ msgstr "Pārvaldīt šablonus" msgid "Install from file" msgstr "Instalēt no faila" -msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Šis iestatīs jūsu projektu priekš pielāgotām Android būvēm, ieinstalējot " -"avota šablonu uz \"res://android/build\".\n" -"Jūs varat veikt izmaiņas un uzbūvēt paši savu pielāgoto APK pie " -"eksportēšanas (pievienot moduļus, mainīt AndroidManifest.xml, utt.).\n" -"Piezīme - lai veiktu pielāgotās būves jau iebūvēto APK vietā, opcijai " -"\"Izmantot Pielāgotu būvi\" jābūt ieslēgtai pie Android eksporta šablona." - msgid "Import Templates From ZIP File" msgstr "Importēr šablonus no ZIP faila" @@ -2207,9 +2182,6 @@ msgstr "Jau ir rediģēta aina." msgid "General" msgstr "Vispārēji" -msgid "%s Error" -msgstr "%s Kļūda" - msgid "Storing File:" msgstr "Faila saglabāšana:" @@ -2487,15 +2459,15 @@ msgstr "Pievienot Mezgla Punktu" msgid "Add Animation Point" msgstr "Pievienot Animācijas Punktu" +msgid "Blend:" +msgstr "Sapludināt:" + msgid "Open Animation Node" msgstr "Atvērt Animācijas Mezglu" msgid "Add Triangle" msgstr "Pievienot Trijstūri" -msgid "Blend:" -msgstr "Sapludināt:" - msgid "Nodes Connected" msgstr "Mezgli Savienoti" @@ -2951,6 +2923,9 @@ msgstr "Notīrīt nesenos skriptus" msgid "Standard" msgstr "Standarts" +msgid "Source" +msgstr "Avots" + msgid "" "Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." msgstr "" @@ -3025,9 +3000,6 @@ msgstr "Nav izvēlēti kadri" msgid "Animations:" msgstr "Animācijas:" -msgid "Loop" -msgstr "Cilpa" - msgid "Animation Frames:" msgstr "Animācijas Kadri:" diff --git a/editor/translations/editor/ms.po b/editor/translations/editor/ms.po index 6334a8cf3b..83a970ad95 100644 --- a/editor/translations/editor/ms.po +++ b/editor/translations/editor/ms.po @@ -594,9 +594,6 @@ msgstr "Putuskan sambungan" msgid "Connect a Signal to a Method" msgstr "Sambungkan Isyarat ke Kaedah" -msgid "Edit Connection:" -msgstr "Edit Sambungan:" - 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 \"% " @@ -709,6 +706,9 @@ msgstr "Masa" msgid "Calls" msgstr "Panggilan" +msgid "%s Error" +msgstr "%s Ralat" + msgid "Expand All" msgstr "Kembangkan Semua" @@ -1577,6 +1577,9 @@ msgstr "%s tidak dipinkan" msgid "Copy Property Path" msgstr "Salin Laluan Sifat" +msgid "Edit Filters" +msgstr "Sunting Filters" + msgid "Language:" msgstr "Bahasa:" @@ -2107,24 +2110,6 @@ msgid "Install from file" msgstr "Pasang dari fail" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Ini akan menyiapkan projek anda untuk binaan Android khas dengan memasang " -"templat sumber pada \"res://android/build\".\n" -"Anda kemudian boleh menerapkan pengubahsuaian dan membina APK tersuai anda " -"sendiri pada eksport (menambah modul, menukar AndroidManifest.xml, dan lain-" -"lain).\n" -"Perhatikan bahawa untuk membuat binaan tersuai dan bukannya menggunakan APK " -"pra-dibina, pilihan \"Gunakan Bina Tersuai\" harus diaktifkan dalam pratetap " -"eksport Android." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2333,9 +2318,6 @@ msgstr "Sudah ada adegan yang diedit." msgid "General" msgstr "Am" -msgid "%s Error" -msgstr "%s Ralat" - msgid "Device" msgstr "Peranti" @@ -3005,6 +2987,9 @@ msgstr "Pilih dan pindahkan titik-titik, cipta titik-titik dengan RMB." msgid "Enable snap and show grid." msgstr "Aktifkan snap dan tunjukkan grid." +msgid "Blend:" +msgstr "Adun:" + msgid "Point" msgstr "Titik" @@ -3048,15 +3033,9 @@ msgid "Generate blend triangles automatically (instead of manually)" msgstr "" "Jana segi tiga-segi tiga campuran secara automatik (bukan secara manual)" -msgid "Blend:" -msgstr "Adun:" - msgid "Parameter Changed:" msgstr "Parameter Berubah:" -msgid "Edit Filters" -msgstr "Sunting Filters" - msgid "Output node can't be added to the blend tree." msgstr "Nod keluaran tidak boleh ditambah ke pokok adunan." @@ -3177,9 +3156,6 @@ msgstr "Mainkan animasi terpilih ke belakang dari pos semasa. (A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Mainkan animasi terpillih ke belakang dari hujung. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Hentikan playback animasi. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Mainkan animasi terpilih dari awal. (Shift+D)" diff --git a/editor/translations/editor/nb.po b/editor/translations/editor/nb.po index 8be049d267..e2001fa866 100644 --- a/editor/translations/editor/nb.po +++ b/editor/translations/editor/nb.po @@ -605,18 +605,6 @@ msgstr "Advarsel:" msgid "Error:" msgstr "Feil:" -msgid "C++ Error" -msgstr "C++-feil" - -msgid "C++ Error:" -msgstr "C++-feil:" - -msgid "Source" -msgstr "Kilde" - -msgid "Source:" -msgstr "Kildekode:" - msgid "Copy Error" msgstr "Feil ved kopiering" @@ -1179,12 +1167,12 @@ msgstr "Endre størrelsen på Array" msgid "Set Multiple:" msgstr "Sett mange:" +msgid "Edit Filters" +msgstr "Rediger filtere" + msgid "Language:" msgstr "Språk:" -msgid "Script" -msgstr "Skript" - msgid "Clear Output" msgstr "Nullstill Resultat" @@ -2075,9 +2063,6 @@ msgstr "Punkt" msgid "Triangle already exists." msgstr "Triangelet finnes allerede." -msgid "Edit Filters" -msgstr "Rediger filtere" - msgid "Functions" msgstr "Funksjoner" @@ -2120,9 +2105,6 @@ msgstr "Spill av valgte animasjon baklengs fra gjeldende posisjon. (A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Spill av valgte animasjon baklengs fra slutten. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Stopp avspilling av animasjon. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Spill av valgte animasjon fra start. (Shift+D)" @@ -2807,6 +2789,9 @@ msgstr "Søkeresultater" msgid "Standard" msgstr "Standard" +msgid "Source" +msgstr "Kilde" + msgid "Target" msgstr "Mål" @@ -2885,9 +2870,6 @@ msgstr "Fjern Animasjon?" msgid "(empty)" msgstr "(tom)" -msgid "Loop" -msgstr "Repeter" - msgid "Zoom Reset" msgstr "Tilbakestill forstørring" diff --git a/editor/translations/editor/nl.po b/editor/translations/editor/nl.po index e829ebaa7a..668568460d 100644 --- a/editor/translations/editor/nl.po +++ b/editor/translations/editor/nl.po @@ -19,7 +19,7 @@ # Pieter-Jan Briers <pieterjan.briers@gmail.com>, 2017-2018. # Robin Arys <robinarys@hotmail.com>, 2017. # Senno Kaasjager <senno.kaasjager@gmail.com>, 2017. -# Uxilo <jmolendijk93@gmail.com>, 2017-2018. +# Uxilo <jmolendijk93@gmail.com>, 2017-2018, 2023. # Willem <studiebolmail@gmail.com>, 2018. # Wout Standaert <wout@blobkat.com>, 2017. # Zatherz <zatherz@linux.pl>, 2017. @@ -65,8 +65,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-09-23 04:16+0000\n" -"Last-Translator: Nnn <irri2020@outlook.com>\n" +"PO-Revision-Date: 2023-02-08 12:14+0000\n" +"Last-Translator: Uxilo <jmolendijk93@gmail.com>\n" "Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/" "nl/>\n" "Language: nl\n" @@ -74,14 +74,35 @@ 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.14.1\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Physical" msgstr "Fysiek" +msgid "Left Mouse Button" +msgstr "Linker Muis Knop" + +msgid "Right Mouse Button" +msgstr "Rechter Muis Knop" + +msgid "Middle Mouse Button" +msgstr "Middelste Muis Knop" + +msgid "Mouse Wheel Up" +msgstr "Scrollwiel Omhoog" + +msgid "Mouse Wheel Down" +msgstr "Scrollwiel Omlaag" + msgid "Button" msgstr "Button (Knop)" +msgid "Double Click" +msgstr "Dubbel Klik" + +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "Muis beweging op positie (%s) met snelheid (%s)" + msgid "Select" msgstr "Selecteer" @@ -181,9 +202,24 @@ msgstr "Action '%s' bestaat al." msgid "Add Event" msgstr "Event Toevoegen" +msgid "Remove Action" +msgstr "Verwijder Actie" + +msgid "Cannot Remove Action" +msgstr "Kan Actie Niet Verwijderen" + +msgid "Filter by name..." +msgstr "Filter op naam..." + +msgid "Add New Action" +msgstr "Nieuwe Actie Toevoegen" + msgid "Add" msgstr "Toevoegen" +msgid "Show Built-in Actions" +msgstr "Weergeef Ingebouwde Acties" + msgid "Action" msgstr "Actie" @@ -211,6 +247,9 @@ msgstr "Bézierpunt toevoegen" msgid "Move Bezier Points" msgstr "Beweeg Bézierpunten" +msgid "Focus" +msgstr "Focus" + msgid "Change Animation Length" msgstr "Verander Animatielengte" @@ -250,6 +289,9 @@ msgstr "Functies:" msgid "Audio Clips:" msgstr "Audioclips:" +msgid "Animation Clips:" +msgstr "Animatieclips:" + msgid "Change Track Path" msgstr "Verander Track pad" @@ -268,12 +310,33 @@ msgstr "Naadloze-lusmodus (interpoleert einde met begin van lus)" msgid "Remove this track." msgstr "Verwijder deze track." +msgid "Time (s):" +msgstr "Tijd (s):" + +msgid "Position:" +msgstr "Positie:" + +msgid "Rotation:" +msgstr "Rotatie:" + msgid "Scale:" msgstr "Schaal:" msgid "Type:" msgstr "Type:" +msgid "(Invalid, expected type: %s)" +msgstr "(Ongeldig, verwachtte type: %s)" + +msgid "Start (s):" +msgstr "Start (s):" + +msgid "End (s):" +msgstr "Eind (s):" + +msgid "Animation Clip:" +msgstr "Animatie Clip:" + msgid "Toggle Track Enabled" msgstr "Track in-/uit schakelen" @@ -381,12 +444,24 @@ msgstr "Track path is niet geldig, dus kan geen methode key toevoegen." msgid "Add Method Track Key" msgstr "Voeg Methode Track sleutel toe" +msgid "Method not found in object:" +msgstr "Methode niet gevonden in object:" + msgid "Position" msgstr "Positie" +msgid "Rotation" +msgstr "Rotatie" + +msgid "Scale" +msgstr "Schaal" + msgid "Methods" msgstr "Methoden" +msgid "Bezier" +msgstr "Bezier" + msgid "Audio" msgstr "Audio" @@ -409,6 +484,9 @@ msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" "Selecteer een AnimationPlayer uit de Scene Tree om animaties te wijzigen." +msgid "Imported Scene" +msgstr "Geïmporteerde Scene" + msgid "Only show tracks from nodes selected in tree." msgstr "Alleen sporen van geselecteerde knopen tonen." @@ -460,6 +538,15 @@ msgstr "Ga naar Vorige Stap" msgid "Apply Reset" msgstr "Reset" +msgid "Optimize Animation (no undo)" +msgstr "Optimaliseer Animatie (Onomkeerbaar)" + +msgid "Clean-Up Animation (no undo)" +msgstr "Animatie Opschonen (Onomkeerbaar)" + +msgid "Pick a node to animate:" +msgstr "Kies een node om te animeren:" + msgid "Use Bezier Curves" msgstr "Gebruik Bezier Curves" @@ -517,6 +604,16 @@ msgstr "Regelnummer:" msgid "%d replaced." msgstr "%d vervangingen." +msgid "%d match" +msgid_plural "%d matches" +msgstr[0] "%d overeenkomst gevonden" +msgstr[1] "%d overeenkomsten gevonden" + +msgid "%d of %d match" +msgid_plural "%d of %d matches" +msgstr[0] "%d overeenkomst gevonden" +msgstr[1] "%d overeenkomsten gevonden" + msgid "Match Case" msgstr "Hoofdlettergevoelig" @@ -567,7 +664,7 @@ msgstr "" "script aan de doelknoop." msgid "Connect to Node:" -msgstr "Aan knoop verbinden:" +msgstr "Aan Node verbinden:" msgid "Connect to Script:" msgstr "Met script verbinden:" @@ -578,6 +675,9 @@ msgstr "Vanuit signaal:" msgid "Scene does not contain any script." msgstr "Scene bevat geen script." +msgid "Select Method" +msgstr "Selecteer Method" + msgid "Remove" msgstr "Verwijderen" @@ -602,6 +702,9 @@ msgstr "" "Stelt het signaal uit, bewaart het in een wachtrij en activeert het pas op " "een dood moment." +msgid "One Shot" +msgstr "Eenmalig" + msgid "Disconnects the signal after its first emission." msgstr "Koppelt het signaal automatisch los na de eerste uitzending." @@ -617,6 +720,9 @@ msgstr "Verbinden" msgid "Signal:" msgstr "Signaal:" +msgid "No description." +msgstr "Geen omschrijving." + msgid "Connect '%s' to '%s'" msgstr "Verbind '%s' met '%s'" @@ -635,9 +741,6 @@ msgstr "Loskoppelen" msgid "Connect a Signal to a Method" msgstr "Verbind een signaal met een methode" -msgid "Edit Connection:" -msgstr "Verbinding bewerken:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "" "Weet je zeker dat je alle verbindingen met signaal \"%s\" wilt verwijderen?" @@ -645,6 +748,9 @@ msgstr "" msgid "Signals" msgstr "Signalen" +msgid "Filter Signals" +msgstr "Filter Signalen" + 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?" @@ -652,12 +758,18 @@ msgstr "" msgid "Disconnect All" msgstr "Alles loskoppelen" +msgid "Copy Name" +msgstr "Kopieer Naam" + msgid "Edit..." msgstr "Bewerken..." msgid "Go to Method" msgstr "Ga naar Methode" +msgid "Change Type of \"%s\"" +msgstr "Wijzig Type van \"%s\"" + msgid "Change" msgstr "Wijzig" @@ -667,6 +779,12 @@ msgstr "%s opstellen" msgid "No results for \"%s\"." msgstr "Geen resultaten voor \"%s\"." +msgid "This class is marked as deprecated." +msgstr "Deze klasse is gemarkeerd als verouderd." + +msgid "This class is marked as experimental." +msgstr "Deze klasse is gemarkeerd als experimenteel." + msgid "No description available for %s." msgstr "Geen beschrijving beschikbaar voor %s." @@ -757,6 +875,18 @@ msgstr "Tijd" msgid "Calls" msgstr "Aanroepen" +msgid "Linked" +msgstr "Gekoppeld" + +msgid "CPU" +msgstr "CPU" + +msgid "GPU" +msgstr "GPU" + +msgid "Execution resumed." +msgstr "Uitvoering hervat." + msgid "Bytes:" msgstr "Bytes:" @@ -766,30 +896,36 @@ msgstr "Waarschuwing:" msgid "Error:" msgstr "Fout:" -msgid "C++ Error" -msgstr "C++ Fout" +msgid "%s Error" +msgstr "%s Fout" -msgid "C++ Error:" -msgstr "C++ Fout:" +msgid "Stack Trace" +msgstr "Stack Trace" -msgid "Source" -msgstr "Bron" +msgid "Stack Trace:" +msgstr "Stack Trace:" -msgid "C++ Source" -msgstr "C++ Bron" +msgid "Line %d" +msgstr "Regel %d" -msgid "Source:" -msgstr "Bron:" +msgid "Delete Breakpoint" +msgstr "Verwijder Breekpunt" -msgid "C++ Source:" -msgstr "C++ Bron:" +msgid "Delete All Breakpoints in:" +msgstr "Verwijder Alle Breekpunten in:" -msgid "Stack Trace" -msgstr "Stack Trace" +msgid "Delete All Breakpoints" +msgstr "Verwijder Alle Breekpunten" msgid "Copy Error" msgstr "Kopieer Fout" +msgid "Open C++ Source on GitHub" +msgstr "Open C++ Bron op GitHub" + +msgid "C++ Source" +msgstr "C++ Bron" + msgid "Video RAM" msgstr "Videogeheugen" @@ -811,6 +947,9 @@ msgstr "Vervolg" msgid "Stack Frames" msgstr "Stack Frames" +msgid "Filter Stack Variables" +msgstr "Filter Stack Variablen" + msgid "Breakpoints" msgstr "Breekpunten" @@ -823,6 +962,9 @@ msgstr "Alles inklappen" msgid "Profiler" msgstr "Profiler" +msgid "Visual Profiler" +msgstr "Visuele Profiler" + msgid "List of Video Memory Usage by Resource:" msgstr "Lijst van videogeheugengebruik per bron:" @@ -1746,12 +1888,12 @@ msgstr "Laat alle lokalen zien" msgid "Show Selected Locales Only" msgstr "Alleen geselecteerde talen tonen" +msgid "Edit Filters" +msgstr "Filters berwerken" + msgid "Language:" msgstr "Taal:" -msgid "Script" -msgstr "Script" - msgid "Clear Output" msgstr "Uitvoer wissen" @@ -2270,23 +2412,6 @@ msgid "Install from file" msgstr "Installeer Vanuit Bestand" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Hiermee wordt je project ingesteld voor aangepaste Android-builds door de " -"bronsjabloon te installeren naar \"res://android/build\".\n" -"Je kan vervolgens wijzigingen toepassen en je eigen aangepaste APK maken bij " -"export (modules toevoegen, de AndroidManifest.xml aanpassen, enz.).\n" -"Houd er rekening mee dat om aangepaste builds te maken in plaats van vooraf " -"gebouwde APK's te gebruiken, de optie \"Use Custom Build\" moet ingeschakeld " -"zijn in de Android-export preset." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2497,9 +2622,6 @@ msgstr "Sneltoetsen" msgid "Binding" msgstr "Binding" -msgid "%s Error" -msgstr "%s Fout" - msgid "All Devices" msgstr "Alle Apparaten" @@ -3219,6 +3341,9 @@ msgstr "Selecteer en verplaats punten, maak punten aan met RMK." msgid "Enable snap and show grid." msgstr "Kleven inschakelen en raster weergeven." +msgid "Blend:" +msgstr "Mengen:" + msgid "Point" msgstr "Punt" @@ -3261,15 +3386,9 @@ msgstr "Punten en driehoeken wissen." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Genereer geblende driehoeken automatisch (in plaats van handmatig)" -msgid "Blend:" -msgstr "Mengen:" - msgid "Parameter Changed:" msgstr "Parameter veranderd:" -msgid "Edit Filters" -msgstr "Filters berwerken" - msgid "Output node can't be added to the blend tree." msgstr "Uitvoerknoop kan niet worden toegevoegd aan de overgangsboom." @@ -3387,9 +3506,6 @@ msgstr "Speel geselecteerde animatie achterwaarts vanaf huidige positie. (A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Speel geselecteerde animatie achterwaarts vanaf het einde. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Stop animatie opname. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Speel geselecteerde animatie vanaf het begin. (Shift+D)" @@ -4439,12 +4555,6 @@ msgstr "Verander Notifier AABB" msgid "Change Particles AABB" msgstr "Verander Particles AABB" -msgid "Change Box Shape Extents" -msgstr "Wijzig Box Vorm Extents" - -msgid "Change Probe Extents" -msgstr "Verander Probe Extents" - msgid "Change Capsule Shape Radius" msgstr "Wijzig Capsule Vorm Straal" @@ -4484,6 +4594,9 @@ msgstr "Sleutelinvoer is uitgeschakeld (geen sleutel ingevoegd)." msgid "Animation Key Inserted." msgstr "Animatiesleutel Ingevoegd." +msgid "Objects: %d\n" +msgstr "Objecten: %d\n" + msgid "Top View." msgstr "Bovenaanzicht." @@ -5173,6 +5286,9 @@ msgstr "Standaard" msgid "Connections to method:" msgstr "Verbindingen aan methode:" +msgid "Source" +msgstr "Bron" + msgid "Target" msgstr "Doel" @@ -5396,12 +5512,6 @@ msgstr "(leeg)" msgid "Animations:" msgstr "Animaties:" -msgid "Speed:" -msgstr "Snelheid:" - -msgid "Loop" -msgstr "Lus" - msgid "Animation Frames:" msgstr "Animatiebeelden:" @@ -6323,9 +6433,6 @@ msgstr "Toevoegen Input Action" msgid "Change Action deadzone" msgstr "Wijzig Action Deadzone" -msgid "Add Input Action Event" -msgstr "Toevoegen Input Action Event" - msgid "Erase Input Action" msgstr "Verwijder Input Actie" @@ -6353,9 +6460,6 @@ msgstr "Selecteer Eigenschap" msgid "Select Virtual Method" msgstr "Selecteer Virtuele Method" -msgid "Select Method" -msgstr "Selecteer Method" - msgid "Batch Rename" msgstr "Bulk hernoemen" @@ -7012,12 +7116,6 @@ msgstr "Ongeldige publieke sleutel voor APK -uitbreiding." msgid "Invalid package name:" msgstr "Ongeldige pakketnaam:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "\"Use Custom Build\" moet geactiveerd zijn om plugins te gebruiken." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "\"Export AAB\" is alleen geldig als \"Use Custom Build\" aan staat." - msgid "Invalid filename! Android App Bundle requires the *.aab extension." msgstr "" "Bestandsnaam niet toegestaan! Android App Bundle vereist een *.aab extensie." @@ -7028,13 +7126,6 @@ msgstr "APK Expansion werkt niet samen met Android App Bundle." msgid "Invalid filename! Android APK requires the *.apk extension." msgstr "Bestandsnaam niet toegestaan! Android APK vereist een *.apk extensie." -msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Geprobeerd met een eigen bouwsjabloon te bouwen, maar versie info ontbreekt. " -"Installeer alstublieft opnieuw vanuit het 'Project' menu." - msgid "Building Android Project (gradle)" msgstr "Bouwen van Android Project (gradle)" diff --git a/editor/translations/editor/pl.po b/editor/translations/editor/pl.po index 5e3538dca3..68805f2e2d 100644 --- a/editor/translations/editor/pl.po +++ b/editor/translations/editor/pl.po @@ -5,7 +5,7 @@ # 8-bit Pixel <dawdejw@gmail.com>, 2016, 2023. # Adam Wolanski <adam.wolanski94@gmail.com>, 2017. # Adrian Węcławski <weclawskiadrian@gmail.com>, 2016. -# aelspire <aelspire@gmail.com>, 2017, 2019, 2020, 2021. +# aelspire <aelspire@gmail.com>, 2017, 2019, 2020, 2021, 2023. # Daniel Lewan <vision360.daniel@gmail.com>, 2016-2018, 2020. # Dariusz Król <rexioweb@gmail.com>, 2018. # heya10 <igor.gielzak@gmail.com>, 2017. @@ -50,7 +50,7 @@ # Suchy Talerz <kacperkubis06@gmail.com>, 2021. # Bartosz Stasiak <bs97086@amu.edu.pl>, 2021. # Marek Malaria <to.tylko.dla.kont@gmail.com>, 2021, 2022. -# Mateusz Żak <matisgramy@gmail.com>, 2021, 2022. +# Mateusz Żak <matisgramy@gmail.com>, 2021, 2022, 2023. # voltinus <voltinusmail@gmail.com>, 2021. # Lech Migdal <lech.migdal@gmail.com>, 2022. # Piotr <promantix@gmail.com>, 2022. @@ -68,15 +68,16 @@ # Wodorek <Krol.w94@gmail.com>, 2022. # Filip Gliszczyński <filipgliszczynski@gmail.com>, 2022. # Piotr Ślusarz <piotrekslusarz@outlook.com>, 2022. -# Jan Kurzak <Iqaz0oki@outlook.com>, 2022. +# Jan Kurzak <Iqaz0oki@outlook.com>, 2022, 2023. # Wojciech Pluta <wojciech.pluta@oracle.com>, 2022. +# mars9t <mars9t.dev@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-20 10:19+0000\n" -"Last-Translator: RM <synaptykq@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 00:54+0000\n" +"Last-Translator: Tomek <kobewi4e@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" "Language: pl\n" @@ -85,26 +86,211 @@ 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.15.1\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "Wymaż" msgid "Physical" msgstr "Fizyczny" +msgid "Left Mouse Button" +msgstr "Lewy przycisk myszy" + +msgid "Right Mouse Button" +msgstr "Prawy przycisk myszy" + +msgid "Middle Mouse Button" +msgstr "Środkowy przycisk myszy" + +msgid "Mouse Wheel Up" +msgstr "Kółko myszy w górę" + +msgid "Mouse Wheel Down" +msgstr "Kółko myszy w dół" + +msgid "Mouse Wheel Left" +msgstr "Kółko myszy w lewo" + +msgid "Mouse Wheel Right" +msgstr "Kółko myszy w prawo" + +msgid "Mouse Thumb Button 1" +msgstr "Boczny przycisk myszki 1" + +msgid "Mouse Thumb Button 2" +msgstr "Boczny przycisk myszki 2" + msgid "Button" msgstr "Przycisk" +msgid "Double Click" +msgstr "Podwójne kliknięcie" + +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "Ruch myszy w pozycji (%s) z prędkością (%s)" + +msgid "Left Stick X-Axis, Joystick 0 X-Axis" +msgstr "Oś X lewego drążka, oś X Joysticka 0" + +msgid "Left Stick Y-Axis, Joystick 0 Y-Axis" +msgstr "Oś Y lewego drążka, oś Y Joysticka 0" + +msgid "Right Stick X-Axis, Joystick 1 X-Axis" +msgstr "Oś X prawego drążka, oś X Joysticka 1" + +msgid "Right Stick Y-Axis, Joystick 1 Y-Axis" +msgstr "Oś Y prawego drążka, oś Y Joysticka 1" + +msgid "Joystick 2 X-Axis, Left Trigger, Sony L2, Xbox LT" +msgstr "Drążek 2 oś X, Lewy spust, Sony L2, Xbox LT" + +msgid "Joystick 2 Y-Axis, Right Trigger, Sony R2, Xbox RT" +msgstr "Drążek 2 oś Y, Prawy spust, Sony R2, Xbox RT" + +msgid "Joystick 3 X-Axis" +msgstr "Joystick 3 oś X" + +msgid "Joystick 3 Y-Axis" +msgstr "Joystick 3 oś Y" + +msgid "Joystick 4 X-Axis" +msgstr "Oś X joysticka 4" + +msgid "Joystick 4 Y-Axis" +msgstr "Oś Y joysticka 4" + +msgid "Unknown Joypad Axis" +msgstr "Nieznana oś joypada" + +msgid "Joypad Motion on Axis %d (%s) with Value %.2f" +msgstr "Ruch joypada na osi %d (%s) o wartości %.2f" + +msgid "Bottom Action, Sony Cross, Xbox A, Nintendo B" +msgstr "Dolna akcja, Sony krzyżyk, Xbox A, Nintendo B" + +msgid "Right Action, Sony Circle, Xbox B, Nintendo A" +msgstr "Prawa akcja, Sony kółko, Xbox B, Nintendo A" + +msgid "Left Action, Sony Square, Xbox X, Nintendo Y" +msgstr "Lewa akcja, Sony kwadrat, Xbox X, Nintendo Y" + +msgid "Top Action, Sony Triangle, Xbox Y, Nintendo X" +msgstr "Górna akcja, Sony trójkąt, Xbox Y, Nintendo X" + +msgid "Back, Sony Select, Xbox Back, Nintendo -" +msgstr "Powrót, Sony wybór, Xbox powrót, Nintendo -" + +msgid "Guide, Sony PS, Xbox Home" +msgstr "Przewodnik, Sony PS, Xbox Home" + +msgid "Start, Nintendo +" +msgstr "Start, Nintendo +" + +msgid "Left Stick, Sony L3, Xbox L/LS" +msgstr "Lewy drążek, Sony L3, Xbox L/LS" + +msgid "Right Stick, Sony R3, Xbox R/RS" +msgstr "Prawy drążek, Sony R3, Xbox R/RS" + +msgid "Left Shoulder, Sony L1, Xbox LB" +msgstr "Lewy bumper, Sony L1, Xbox LB" + +msgid "Right Shoulder, Sony R1, Xbox RB" +msgstr "Prawy bumper, Sony R1, Xbox RB" + +msgid "D-pad Up" +msgstr "D-pad w górę" + +msgid "D-pad Down" +msgstr "D-pad w dół" + +msgid "D-pad Left" +msgstr "D-pad w lewo" + +msgid "D-pad Right" +msgstr "D-pad w prawo" + +msgid "Xbox Share, PS5 Microphone, Nintendo Capture" +msgstr "Xbox udostępnij, PS5 mikrofon, Nintendo zrzut" + +msgid "Xbox Paddle 1" +msgstr "Xbox paletka 1" + +msgid "Xbox Paddle 2" +msgstr "Xbox paletka 2" + +msgid "Xbox Paddle 3" +msgstr "Xbox paletka 3" + +msgid "Xbox Paddle 4" +msgstr "Xbox paletka 4" + +msgid "PS4/5 Touchpad" +msgstr "PS4/5 panel dotykowy" + +msgid "touched" +msgstr "dotknięty" + +msgid "released" +msgstr "puszczony" + +msgid "Screen %s at (%s) with %s touch points" +msgstr "Ekran %s w (%s) z %s punktami dotyku" + +msgid "" +"Screen dragged with %s touch points at position (%s) with velocity of (%s)" +msgstr "" +"Ekran przeciągnięty z %s punktami dotyku na pozycji (%s) z prędkością (%s)" + +msgid "Magnify Gesture at (%s) with factor %s" +msgstr "Gest przybliżenia w (%s) ze współczynnikiem %s" + +msgid "Pan Gesture at (%s) with delta (%s)" +msgstr "Gest przesuwania w (%s) z przesunięciem (%s)" + +msgid "MIDI Input on Channel=%s Message=%s" +msgstr "Wejście MIDI na kanale=%s wiadomość=%s" + +msgid "Input Event with Shortcut=%s" +msgstr "Zdarzenie wejścia ze skrótem=%s" + +msgid "Accept" +msgstr "Akceptuj" + msgid "Select" msgstr "Zaznacz" msgid "Cancel" msgstr "Anuluj" +msgid "Focus Next" +msgstr "Zaznacz następny" + +msgid "Focus Prev" +msgstr "Zaznacz poprzedni" + +msgid "Left" +msgstr "Lewo" + +msgid "Right" +msgstr "Prawo" + msgid "Up" msgstr "Góra" msgid "Down" msgstr "Dół" +msgid "Page Up" +msgstr "Strona w górę" + +msgid "Page Down" +msgstr "Strona w dół" + +msgid "Home" +msgstr "Strona główna" + msgid "End" msgstr "Koniec" @@ -123,24 +309,126 @@ msgstr "Cofnij" msgid "Redo" msgstr "Ponów" +msgid "Completion Query" +msgstr "Zapytanie uzupełnienia" + +msgid "New Line" +msgstr "Nowa linia" + +msgid "New Blank Line" +msgstr "Nowa pusta linia" + +msgid "New Line Above" +msgstr "Nowa linia powyżej" + msgid "Indent" msgstr "Wcięcie" +msgid "Dedent" +msgstr "Wcięcie" + +msgid "Backspace" +msgstr "Backspace" + +msgid "Backspace Word" +msgstr "Backspace na słowo" + +msgid "Backspace all to Left" +msgstr "Backspace na wszystko po lewej" + msgid "Delete" msgstr "Usuń" +msgid "Delete Word" +msgstr "Usuń słowo" + +msgid "Delete all to Right" +msgstr "Usuń wszystko po prawej" + +msgid "Caret Left" +msgstr "Kursor w lewo" + +msgid "Caret Word Left" +msgstr "Kursor w lewo o słowo" + +msgid "Caret Right" +msgstr "Kursor w prawo" + +msgid "Caret Word Right" +msgstr "Kursor w prawo o słowo" + +msgid "Caret Up" +msgstr "Kursor w górę" + +msgid "Caret Down" +msgstr "Kursor w dół" + +msgid "Caret Line Start" +msgstr "Kursor na początek linii" + +msgid "Caret Line End" +msgstr "Kursor na koniec linii" + +msgid "Caret Page Up" +msgstr "Kursor w górę o stronę" + +msgid "Caret Page Down" +msgstr "Kursor w dół o stronę" + +msgid "Caret Document Start" +msgstr "Kursor na początek dokumentu" + +msgid "Caret Document End" +msgstr "Kursor na koniec dokumentu" + +msgid "Caret Add Below" +msgstr "Dodaj kursor niżej" + +msgid "Caret Add Above" +msgstr "Dodaj kursor wyżej" + +msgid "Scroll Up" +msgstr "Przewiń w górę" + +msgid "Scroll Down" +msgstr "Przewiń w dół" + msgid "Select All" msgstr "Zaznacz wszystko" +msgid "Select Word Under Caret" +msgstr "Zaznacz słowo pod kursorem" + +msgid "Add Selection for Next Occurrence" +msgstr "Dodaj zaznaczenie na następne wystąpienie" + +msgid "Clear Carets and Selection" +msgstr "Wyczyść kursory i zaznaczenie" + +msgid "Toggle Insert Mode" +msgstr "Przełącz tryb wstawiania" + +msgid "Text Submitted" +msgstr "Tekst przedłożony" + msgid "Duplicate Nodes" msgstr "Duplikuj węzły" msgid "Delete Nodes" msgstr "Usuń węzły" +msgid "Go Up One Level" +msgstr "Idź w górę jeden poziom" + msgid "Refresh" msgstr "Odśwież" +msgid "Show Hidden" +msgstr "Pokaż ukryte" + +msgid "Swap Input Direction" +msgstr "Zamień kierunek wejścia" + msgid "Invalid input %d (not passed) in expression" msgstr "Niewłaściwe dane %d (nie przekazane) w wyrażeniu" @@ -163,6 +451,12 @@ msgstr "Niepoprawne argumenty do utworzenia \"%s\"" msgid "On call to '%s':" msgstr "Przy wywołaniu \"%s\":" +msgid "Built-in script" +msgstr "Skrypt wbudowany" + +msgid "Built-in" +msgstr "Wbudowany" + msgid "B" msgstr "B" @@ -184,6 +478,9 @@ msgstr "PiB" msgid "EiB" msgstr "EiB" +msgid "Example: %s" +msgstr "Przykład: %s" + msgid "" "Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'" @@ -197,9 +494,33 @@ msgstr "Akcja o nazwie \"%s\" już istnieje." msgid "Add Event" msgstr "Dodaj zdarzenie" +msgid "Remove Action" +msgstr "Usuń akcję" + +msgid "Cannot Remove Action" +msgstr "Nie można usunąć akcji" + +msgid "Edit Event" +msgstr "Edytuj zdarzenie" + +msgid "Remove Event" +msgstr "Usuń zdarzenie" + +msgid "Filter by name..." +msgstr "Filtruj po nazwie..." + +msgid "Clear All" +msgstr "Wyczyść wszystko" + +msgid "Add New Action" +msgstr "Dodaj nową akcję" + msgid "Add" msgstr "Dodaj" +msgid "Show Built-in Actions" +msgstr "Pokaż wbudowane akcje" + msgid "Action" msgstr "Akcja" @@ -212,6 +533,9 @@ msgstr "Czas:" msgid "Value:" msgstr "Wartość:" +msgid "Update Selected Key Handles" +msgstr "Aktualizuj zaznaczone uchwyty klucza" + msgid "Insert Key Here" msgstr "Wstaw klucz tutaj" @@ -221,12 +545,69 @@ msgstr "Duplikuj zaznaczone klucz(e)" msgid "Delete Selected Key(s)" msgstr "Usuń zaznaczony klucz(e)" +msgid "Make Handles Free" +msgstr "Uwolnij uchwyty" + +msgid "Make Handles Linear" +msgstr "Uczyń uchwyty liniowymi" + +msgid "Make Handles Balanced" +msgstr "Uczyń uchwyty zrównoważonymi" + +msgid "Make Handles Mirrored" +msgstr "Uczyń uchwyty odbitymi" + +msgid "Make Handles Balanced (Auto Tangent)" +msgstr "Uczyń uchwyty zrównoważonymi (automatyczne styczne)" + +msgid "Make Handles Mirrored (Auto Tangent)" +msgstr "Uczyń uchwyty odbitymi (automatyczne styczne)" + msgid "Add Bezier Point" msgstr "Dodaj punkt krzywej Beziera" msgid "Move Bezier Points" msgstr "Przesuń punkty krzywej Beziera" +msgid "Animation Duplicate Keys" +msgstr "Animacja duplikuj klucze" + +msgid "Animation Delete Keys" +msgstr "Animacja usuń klucze" + +msgid "Focus" +msgstr "Zaznacz" + +msgid "Select All Keys" +msgstr "Zaznacz wszystkie klucze" + +msgid "Deselect All Keys" +msgstr "Odznacz wszystkie klucze" + +msgid "Animation Change Transition" +msgstr "Animacja zmień przejście" + +msgid "Animation Change %s" +msgstr "Animacja zmień %s" + +msgid "Animation Change Keyframe Value" +msgstr "Animacja zmień wartość klatki kluczowej" + +msgid "Animation Change Call" +msgstr "Animacja zmień wywołanie" + +msgid "Animation Multi Change Transition" +msgstr "Animacja zmień wiele przejść" + +msgid "Animation Multi Change %s" +msgstr "Animacja zmień wiele %s" + +msgid "Animation Multi Change Keyframe Value" +msgstr "Animacja zmień wartości wielu klatek kluczowych" + +msgid "Animation Multi Change Call" +msgstr "Animacja zmień wiele wywołań" + msgid "Change Animation Length" msgstr "Zmień długość animacji" @@ -638,6 +1019,9 @@ msgstr "Z sygnału:" msgid "Scene does not contain any script." msgstr "Scena nie posiada żadnego skryptu." +msgid "Select Method" +msgstr "Wybierz metodę" + msgid "Remove" msgstr "Usuń" @@ -697,9 +1081,6 @@ msgstr "Rozłącz" msgid "Connect a Signal to a Method" msgstr "Połącz sygnał do metody" -msgid "Edit Connection:" -msgstr "Edytuj połączenie:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Na pewno chcesz usunąć wszystkie połączenia z sygnału \"%s\"?" @@ -841,23 +1222,8 @@ msgstr "Ostrzeżenie:" msgid "Error:" msgstr "Błąd:" -msgid "C++ Error" -msgstr "Błąd C++" - -msgid "C++ Error:" -msgstr "Błąd C++:" - -msgid "Source" -msgstr "Źródło" - -msgid "C++ Source" -msgstr "Źródło C++" - -msgid "Source:" -msgstr "Źródło:" - -msgid "C++ Source:" -msgstr "Źródło C++:" +msgid "%s Error" +msgstr "Błąd %s" msgid "Stack Trace" msgstr "Ślad stosu" @@ -868,6 +1234,9 @@ msgstr "Kopiuj błąd" msgid "Open C++ Source on GitHub" msgstr "Otwórz źródło C++ na GitHubie" +msgid "C++ Source" +msgstr "Źródło C++" + msgid "Video RAM" msgstr "Wideo RAM" @@ -1064,7 +1433,7 @@ msgstr "Deweloper naczelny" msgctxt "Job Title" msgid "Project Manager" -msgstr "Kierownik projektu" +msgstr "Menedżer projektu" msgid "Developers" msgstr "Deweloperzy" @@ -1685,6 +2054,12 @@ msgstr "nadpisuje %s:" msgid "default:" msgstr "domyślne:" +msgid "Constructors" +msgstr "Konstruktory" + +msgid "Operators" +msgstr "Operatory" + msgid "Theme Properties" msgstr "Właściwości motywu" @@ -1719,9 +2094,15 @@ msgstr "" "Obecnie nie ma opisu dla tej właściwości. Pomóż nam, [color=$color]" "[url=$url]wysyłając ją[/url][/color]!" +msgid "Constructor Descriptions" +msgstr "Opisy konstruktorów" + msgid "Method Descriptions" msgstr "Opisy metod" +msgid "Operator Descriptions" +msgstr "Opisy operatorów" + msgid "%d match." msgstr "%d dopasowanie." @@ -1823,12 +2204,12 @@ msgstr "Pokaż wszystkie języki" msgid "Show Selected Locales Only" msgstr "Pokaż tylko wybrane języki" +msgid "Edit Filters" +msgstr "Edytuj filtry" + msgid "Language:" msgstr "Język:" -msgid "Script" -msgstr "Skrypt" - msgid "Clear Output" msgstr "Wyczyść wyjście" @@ -1982,13 +2363,13 @@ msgid "Quick Open Script..." msgstr "Szybkie otwieranie skryptu..." msgid "Save & Reload" -msgstr "Zapisz i zrestartuj" +msgstr "Zapisz i przeładuj" msgid "Save & Quit" msgstr "Zapisz i wyjdź" msgid "Save changes to '%s' before reloading?" -msgstr "Zapisać zmiany w '%s' przed zrestartowaniem?" +msgstr "Zapisać zmiany w \"%s\" przed przeładowaniem?" msgid "Save changes to '%s' before closing?" msgstr "Zapisać zmiany w \"%s\" przed zamknięciem?" @@ -2045,7 +2426,7 @@ msgid "Quick Run Scene..." msgstr "Szybkie uruchomienie sceny..." msgid "Save changes to the following scene(s) before reloading?" -msgstr "Czy zapisać zmiany w aktualnej scenie/scenach przed zrestartowaniem?" +msgstr "Czy zapisać zmiany w następującej scenie/scenach przed przeładowaniem?" msgid "Save changes to the following scene(s) before quitting?" msgstr "Czy zapisać zmiany w aktualnej scenie/scenach przed wyjściem?" @@ -2345,7 +2726,7 @@ msgid "Compatibility" msgstr "Kompatybilność" msgid "Update Continuously" -msgstr "Aktualizuj ciągle" +msgstr "Stale Aktualizuj" msgid "Hide Update Spinner" msgstr "Ukryj wiatraczek aktualizacji" @@ -2378,22 +2759,6 @@ msgid "Install from file" msgstr "Zainstaluj z pliku" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Ta opcja przygotuje twój projekt dla własnych buildów Androida, instalując " -"źródłowy szablon w \"res://android/build\".\n" -"Możesz wtedy dodać modyfikacje i zbudować podczas eksportu własny pakiet APK " -"(dodając moduły, zmieniając AndroidManifest.xml itp.)\n" -"Pamiętaj, że aby stworzyć własny build zamiast używać gotowego APK, opcja " -"\"Use Custom Build\" powinna być włączona w profilu eksportu Androida." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2616,9 +2981,6 @@ msgstr "Skróty" msgid "Binding" msgstr "Wiązanie" -msgid "%s Error" -msgstr "Błąd %s" - msgid "All Devices" msgstr "Wszystkie urządzenia" @@ -2886,6 +3248,14 @@ msgstr "" msgid "Runnable" msgstr "Uruchamiany" +msgid "Export the project for all the presets defined." +msgstr "Eksportuj projekt dla wszystkich zdefiniowanych presetów." + +msgid "All presets must have an export path defined for Export All to work." +msgstr "" +"Wszystkie ustawienia wstępne muszą mieć zdefiniowaną ścieżkę eksportu, aby " +"fukcja Eksportuj wszystko działała." + msgid "Delete preset '%s'?" msgstr "Usunąć profil \"%s\"?" @@ -2965,6 +3335,13 @@ msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)" msgstr "" "Nieprawidłowy klucz szyfrowania (długość musi wynosić 64 znaki szesnastkowe)" +msgid "" +"Note: Encryption key needs to be stored in the binary,\n" +"you need to build the export templates from source." +msgstr "" +"Uwaga: Klucz szyfrowania musi być przechowywany w postaci binarnej,\n" +"musisz zbudować szablony eksportu ze źródła." + msgid "Export All" msgstr "Eksportuj wszystko" @@ -3516,6 +3893,9 @@ msgstr "Wybierz i przesuń punkty, utwórz punkty używając PPM." msgid "Enable snap and show grid." msgstr "Włącz przyciąganie i pokaż siatkę." +msgid "Blend:" +msgstr "Mieszanie:" + msgid "Point" msgstr "Punkt" @@ -3558,15 +3938,9 @@ msgstr "Usuń punkty i trójkąty." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Wygeneruj trójkąty mieszania automatycznie (zamiast ręcznie)" -msgid "Blend:" -msgstr "Mieszanie:" - msgid "Parameter Changed:" msgstr "Parametr zmieniony:" -msgid "Edit Filters" -msgstr "Edytuj filtry" - msgid "Output node can't be added to the blend tree." msgstr "Węzeł wyjściowy nie może być dodany do drzewa mieszania." @@ -3689,9 +4063,6 @@ msgstr "Odtwórz zaznaczoną animację od tyłu z aktualnej pozycji. (A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Odtwórz zaznaczoną animację od tyłu z końca. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Zatrzymaj animację. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Uruchom animację od początku. (Shift+D)" @@ -4343,10 +4714,10 @@ msgid "Clear Pose" msgstr "Wyczyść pozę" msgid "Multiply grid step by 2" -msgstr "Powiększ siatkę x2" +msgstr "Zwiększ rozdzielczość siatki 2 razy" msgid "Divide grid step by 2" -msgstr "Pomniejsz siatkę x2" +msgstr "Zmniejsz rozdzielczość siatki 2 razy" msgid "Adding %s..." msgstr "Dodawanie %s..." @@ -4651,7 +5022,7 @@ msgid "Bake Lightmaps" msgstr "Stwórz Lightmaps" msgid "LightMap Bake" -msgstr "Wypal mapę światła" +msgstr "Stwórz mapę światła" msgid "Select lightmap bake file:" msgstr "Wybierz plik wypalenia mapy światła:" @@ -4916,14 +5287,8 @@ msgstr "Zmień AABB powiadamiacza" msgid "Change Particles AABB" msgstr "Zmień AABB cząsteczek" -msgid "Change Box Shape Extents" -msgstr "Zmień rozmiar Box Shape" - -msgid "Change Probe Extents" -msgstr "Zmień rozmiar Probe" - msgid "Change Capsule Shape Radius" -msgstr "Zmień średnicę Capsule Shape" +msgstr "Zmień promień Capsule Shape" msgid "Change Capsule Shape Height" msgstr "Zmień wysokość kształtu kapsuły" @@ -5174,7 +5539,7 @@ msgid "Orbit View Up" msgstr "Widok Orbitalny z Góry" msgid "Orbit View 180" -msgstr "Orbituj widok o 180" +msgstr "Orbitalny Widok 180" msgid "Switch Perspective/Orthogonal View" msgstr "Przełącz widok perspektywiczny/ortogonalny" @@ -5727,6 +6092,9 @@ msgstr "Standardowy" msgid "Connections to method:" msgstr "Połączenia do metody:" +msgid "Source" +msgstr "Źródło" + msgid "Target" msgstr "Cel" @@ -5972,12 +6340,6 @@ msgstr "(pusty)" msgid "Animations:" msgstr "Animacje:" -msgid "Speed:" -msgstr "Szybkość:" - -msgid "Loop" -msgstr "Zapętl" - msgid "Animation Frames:" msgstr "Klatki animacji:" @@ -7360,9 +7722,6 @@ msgstr "Dodawanie akcji Wejścia" msgid "Change Action deadzone" msgstr "Zmień martwą strefę akcji" -msgid "Add Input Action Event" -msgstr "Dodaj zdarzenie akcji wejścia" - msgid "Erase Input Action" msgstr "Wyczyść akcję wejścia" @@ -7390,9 +7749,6 @@ msgstr "Wybierz właściwość" msgid "Select Virtual Method" msgstr "Wybierz metoda wirtualną" -msgid "Select Method" -msgstr "Wybierz metodę" - msgid "Batch Rename" msgstr "Grupowa zmiana nazwy" @@ -8147,13 +8503,6 @@ msgstr "Niepoprawny klucz publiczny dla ekspansji APK." msgid "Invalid package name:" msgstr "Niepoprawna nazwa paczki:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "\"Use Custom Build\" musi być włączone, by używać wtyczek." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"\"Eksportuj AAB\" jest ważne tylko gdy \"Use Custom Build\" jest włączone." - msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." @@ -8196,13 +8545,6 @@ msgid "Unsupported export format!" msgstr "Nieobsługiwany format eksportu!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Próbowano zbudować z własnego szablonu, ale nie istnieje dla niego " -"informacja o wersji. Zainstaluj ponownie z menu \"Projekt\"." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" diff --git a/editor/translations/editor/pt.po b/editor/translations/editor/pt.po index 52ca5759dc..b9cf75e6c7 100644 --- a/editor/translations/editor/pt.po +++ b/editor/translations/editor/pt.po @@ -605,6 +605,9 @@ msgstr "Do Sinal:" msgid "Scene does not contain any script." msgstr "A cena não contém qualquer script." +msgid "Select Method" +msgstr "Selecione Método" + msgid "Remove" msgstr "Remover" @@ -662,9 +665,6 @@ msgstr "Desligar" msgid "Connect a Signal to a Method" msgstr "Conectar Sinal a Método" -msgid "Edit Connection:" -msgstr "Editar Conexão:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Deseja remover todas as conexões do sinal \"%s\"?" @@ -809,23 +809,8 @@ msgstr "Aviso:" msgid "Error:" msgstr "Erro:" -msgid "C++ Error" -msgstr "Erro C++" - -msgid "C++ Error:" -msgstr "Erro C++:" - -msgid "Source" -msgstr "Fonte" - -msgid "C++ Source" -msgstr "Código-fonte C++" - -msgid "Source:" -msgstr "Código-fonte:" - -msgid "C++ Source:" -msgstr "Código-fonte C++:" +msgid "%s Error" +msgstr "%s Erro" msgid "Stack Trace" msgstr "Rastreamento de Pilha" @@ -836,6 +821,9 @@ msgstr "Copiar Erro" msgid "Open C++ Source on GitHub" msgstr "Abrir Código C++ no GitHub" +msgid "C++ Source" +msgstr "Código-fonte C++" + msgid "Video RAM" msgstr "Memória Vídeo" @@ -1796,12 +1784,12 @@ msgstr "Mostrar Todos os Idiomas" msgid "Show Selected Locales Only" msgstr "Mostrar Apenas Idiomas Selecionados" +msgid "Edit Filters" +msgstr "Editar filtros" + msgid "Language:" msgstr "Linguagem:" -msgid "Script" -msgstr "Script" - msgid "Variant" msgstr "Variante" @@ -2356,23 +2344,6 @@ msgid "Install from file" msgstr "Instalar do ficheiro" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"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, 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 \"Use Custom Build\" deve ser ativada na " -"predefinição da exportação Android." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2599,9 +2570,6 @@ msgstr "Atalhos" msgid "Binding" msgstr "Ligação" -msgid "%s Error" -msgstr "%s Erro" - msgid "All Devices" msgstr "Todos os Aparelhos" @@ -3538,6 +3506,9 @@ msgstr "Selecionar e mover pontos, criar pontos com RMB." msgid "Enable snap and show grid." msgstr "Ativar ajuste e mostrar a grelha." +msgid "Blend:" +msgstr "Mistura:" + msgid "Point" msgstr "Ponto" @@ -3580,15 +3551,9 @@ msgstr "Apagar pontos e triângulos." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Gera triângulos automaticamente (em vez de manual)" -msgid "Blend:" -msgstr "Mistura:" - msgid "Parameter Changed:" msgstr "Parâmetro Alterado:" -msgid "Edit Filters" -msgstr "Editar filtros" - msgid "Output node can't be added to the blend tree." msgstr "Saída do nó não pode ser adicionada à árvore de mistura." @@ -3712,9 +3677,6 @@ msgstr "" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Reproduzir a Animação selecionada para trás a partir do fim. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Parar reprodução da Animação. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Reproduzir a Animação selecionada a partir do início. (Shift+D)" @@ -4938,12 +4900,6 @@ msgstr "Mudar Notificador AABB" msgid "Change Particles AABB" msgstr "Mudar partículas AABB" -msgid "Change Box Shape Extents" -msgstr "Mudar medidas da forma caixa" - -msgid "Change Probe Extents" -msgstr "Mudar Extensões de Sonda" - msgid "Change Capsule Shape Radius" msgstr "Mudar raio da forma cápsula" @@ -5758,6 +5714,9 @@ msgstr "Padrão" msgid "Connections to method:" msgstr "Conexões ao método:" +msgid "Source" +msgstr "Fonte" + msgid "Target" msgstr "Alvo" @@ -5999,12 +5958,6 @@ msgstr "(vazio)" msgid "Animations:" msgstr "Animações:" -msgid "Speed:" -msgstr "Velocidade:" - -msgid "Loop" -msgstr "Ciclo" - msgid "Animation Frames:" msgstr "Frames da Animação:" @@ -7430,9 +7383,6 @@ msgstr "Adicionar ação de entrada" msgid "Change Action deadzone" msgstr "Mudar a zona morta da Ação" -msgid "Add Input Action Event" -msgstr "Adicionar evento ação de entrada" - msgid "Erase Input Action" msgstr "Apagar Ação de Entrada" @@ -7460,9 +7410,6 @@ msgstr "Selecionar Propriedade" msgid "Select Virtual Method" msgstr "Selecione Método virtual" -msgid "Select Method" -msgstr "Selecione Método" - msgid "Batch Rename" msgstr "Renomear em Massa" @@ -8249,21 +8196,9 @@ msgstr "Chave pública inválida para expansão APK." msgid "Invalid package name:" msgstr "Nome de pacote inválido:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "\"Use Custom Build\" têm de estar ativa para usar os plugins." - msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "\"Passthrough\" só é válido quando o \"XR Mode\" é \"OpenXR\"." -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "\"Exportar AAB\" só é válido quando \"Use Custom Build\" está ativa." - -msgid "" -"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "" -"\"Min SDK\" só pode ser substituído quando \"Usar Compilação Customizada\" " -"está ativado." - msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" "\"Min SDK\" deve ser um número inteiro válido, mas obteve \"%s\" que é " @@ -8277,12 +8212,6 @@ msgstr "" "biblioteca Godot." msgid "" -"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "" -"\"Target SDK\" só pode ser substituído quando \"Usar Compilação " -"Customizada\" está ativado." - -msgid "" "\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" "\"Target SDK\" deve ser um número inteiro válido, mas obteve \"%s\", que é " @@ -8348,13 +8277,6 @@ msgid "Unsupported export format!" msgstr "Formato de exportação não suportado!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"A tentar compilar a partir de um modelo personalizado, mas sem informação de " -"versão. Reinstale no menu 'Projeto'." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" diff --git a/editor/translations/editor/pt_BR.po b/editor/translations/editor/pt_BR.po index 16d1667b1f..8c0eb9e29b 100644 --- a/editor/translations/editor/pt_BR.po +++ b/editor/translations/editor/pt_BR.po @@ -157,13 +157,14 @@ # Kauã Azevedo <Kazevic@pm.me>, 2022. # Zer0-Zer0 <dankmemerson@tutanota.com>, 2022. # Levi Ferreira <leviferreiramorais@gmail.com>, 2023. +# Leonardo <leotada523@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2023-01-14 00:01+0000\n" -"Last-Translator: Levi Ferreira <leviferreiramorais@gmail.com>\n" +"PO-Revision-Date: 2023-02-08 18:01+0000\n" +"Last-Translator: Leonardo <leotada523@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -171,14 +172,29 @@ 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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Physical" msgstr "Físico" +msgid "Left Mouse Button" +msgstr "Botão Esquerdo do Mouse" + +msgid "Right Mouse Button" +msgstr "Botão Direito do Mouse" + +msgid "Mouse Wheel Down" +msgstr "Roda do mouse para baixo" + msgid "Button" msgstr "Botão" +msgid "Double Click" +msgstr "Clique Duplo" + +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "Movimento do mouse na posição (%s) com velocidade (%s)" + msgid "Select" msgstr "Selecionar" @@ -730,6 +746,9 @@ msgstr "Sinal Origem:" msgid "Scene does not contain any script." msgstr "A cena não contém nenhum script." +msgid "Select Method" +msgstr "Selecionar Mtéodo" + msgid "Remove" msgstr "Remover" @@ -786,9 +805,6 @@ msgstr "Desconectar" msgid "Connect a Signal to a Method" msgstr "Conectar um Sinal a um Método" -msgid "Edit Connection:" -msgstr "Editar Conexão:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Tem certeza que quer remover todas as conexões do sinal \"%s\"?" @@ -933,23 +949,8 @@ msgstr "Aviso:" msgid "Error:" msgstr "Erro:" -msgid "C++ Error" -msgstr "Erro C++" - -msgid "C++ Error:" -msgstr "Erro C++:" - -msgid "Source" -msgstr "Origem" - -msgid "C++ Source" -msgstr "Origem C++" - -msgid "Source:" -msgstr "Origem:" - -msgid "C++ Source:" -msgstr "Origem C++:" +msgid "%s Error" +msgstr "Erro %s" msgid "Stack Trace" msgstr "Rastreamento de pilha" @@ -960,6 +961,9 @@ msgstr "Copiar Erro" msgid "Open C++ Source on GitHub" msgstr "Abrir código C++ no GitHub" +msgid "C++ Source" +msgstr "Origem C++" + msgid "Video RAM" msgstr "Memória de Vídeo" @@ -1783,6 +1787,9 @@ msgstr "substitui %s:" msgid "default:" msgstr "padrão:" +msgid "Constructors" +msgstr "Construtores" + msgid "Theme Properties" msgstr "Propriedades do Tema" @@ -1920,12 +1927,12 @@ msgstr "Mostrar todos os Locales" msgid "Show Selected Locales Only" msgstr "Mostrar apenas os Locales selecionados" +msgid "Edit Filters" +msgstr "Editar Filtros" + msgid "Language:" msgstr "Idioma:" -msgid "Script" -msgstr "Script" - msgid "Variant" msgstr "Variante" @@ -2486,23 +2493,6 @@ msgid "Install from file" msgstr "Instalar do arquivo" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Isso irá configurar o projeto para usar uma build do Android customizada " -"instalando a template raiz para \"res://android/build\".\n" -"Você poderá aplicar modificações e construir um APK customizado em exportar " -"(adicionando módulos, changing the AndroidManifest.xml, etc.).\n" -"Note que para fazer builds customizadas ao invés de usar APKs pré-" -"construídas, a opção \"Usar Build Customizada\" deve sestar habilitada na " -"pré-configuração de exportação Android." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2729,9 +2719,6 @@ msgstr "Atalhos" msgid "Binding" msgstr "VInculamento" -msgid "%s Error" -msgstr "Erro %s" - msgid "All Devices" msgstr "Todos os dispositivos" @@ -3676,6 +3663,9 @@ msgstr "Selecionar e mover pontos, criar pontos com o botão direito do mouse." msgid "Enable snap and show grid." msgstr "Habilitar snap e mostrar a grade." +msgid "Blend:" +msgstr "Misturar:" + msgid "Point" msgstr "Ponto" @@ -3718,15 +3708,9 @@ msgstr "Apagar pontos e triângulos." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Gerar triângulos de mistura automaticamente (em vez de manualmente)" -msgid "Blend:" -msgstr "Misturar:" - msgid "Parameter Changed:" msgstr "Parâmetro Modificado:" -msgid "Edit Filters" -msgstr "Editar Filtros" - msgid "Output node can't be added to the blend tree." msgstr "Nó de Saída não pode ser adicionado à árvore de mistura." @@ -3853,9 +3837,6 @@ msgid "Play selected animation backwards from end. (Shift+A)" msgstr "" "Iniciar animação selecionada de trás pra frente a partir do fim. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Parar reprodução da animação. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Reproduzir animação selecionada do início. (Shift +D)" @@ -5084,12 +5065,6 @@ msgstr "Alterar o AABB do Notificador" msgid "Change Particles AABB" msgstr "Alterar o AABB das Partículas" -msgid "Change Box Shape Extents" -msgstr "Alterar Dimensões da Forma da Caixa" - -msgid "Change Probe Extents" -msgstr "Alterar a Extensão da Sonda" - msgid "Change Capsule Shape Radius" msgstr "Alterar o Raio da Forma da Cápsula" @@ -5907,6 +5882,9 @@ msgstr "Padrão" msgid "Connections to method:" msgstr "Conexões com o método:" +msgid "Source" +msgstr "Origem" + msgid "Target" msgstr "Destino" @@ -6150,12 +6128,6 @@ msgstr "(vazio)" msgid "Animations:" msgstr "Animações:" -msgid "Speed:" -msgstr "Velocidade:" - -msgid "Loop" -msgstr "Repetir" - msgid "Animation Frames:" msgstr "Frames da Animação:" @@ -7582,9 +7554,6 @@ msgstr "Adicionar Ação de Entrada" msgid "Change Action deadzone" msgstr "Alterar zona morta de ação" -msgid "Add Input Action Event" -msgstr "Adicionar Evento de Ação de Entrada" - msgid "Erase Input Action" msgstr "Apagar Ação de Entrada" @@ -7612,9 +7581,6 @@ msgstr "Selecionar Propriedade" msgid "Select Virtual Method" msgstr "Selecionar Método Virtual" -msgid "Select Method" -msgstr "Selecionar Mtéodo" - msgid "Batch Rename" msgstr "Renomear em lote" @@ -8406,25 +8372,9 @@ msgstr "Chave pública inválida para expansão do APK." msgid "Invalid package name:" msgstr "Nome de pacote inválido:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" -"\"Usar Compilação Customizada\" precisa estar ativo para ser possível " -"utilizar plugins." - msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "\"Passthrough\" só é válido quando o \"XR Mode\" é \"OpenXR\"." -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"\"Exportar AAB\" só é válido quando \"Usar Compilação Customizada\" está " -"habilitado." - -msgid "" -"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "" -"\"Min SDK\" só pode ser substituído quando \"Usar Compilação Customizada\" " -"está habilitado." - msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" "\"Min SDK\" deve ser um número inteiro válido, mas obteve \"%s\" que é " @@ -8438,12 +8388,6 @@ msgstr "" "biblioteca Godot." msgid "" -"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "" -"\"Target SDK\" só pode ser substituído quando \"Usar Compilação " -"Customizada\" está habilitado." - -msgid "" "\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" "\"Target SDK\" deve ser um número inteiro válido, mas obteve \"%s\", que é " @@ -8510,14 +8454,6 @@ msgid "Unsupported export format!" msgstr "Formato de exportação não suportado!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Tentando construir a partir de um modelo compilado personalizado, mas " -"nenhuma informação de versão para ele existe. Por favor, reinstale pelo menu " -"'Projeto'." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" diff --git a/editor/translations/editor/ro.po b/editor/translations/editor/ro.po index 9ce1876a95..a39d4983a7 100644 --- a/editor/translations/editor/ro.po +++ b/editor/translations/editor/ro.po @@ -569,9 +569,6 @@ msgstr "Deconectați" msgid "Connect a Signal to a Method" msgstr "Conectați Semnal la o Metodă" -msgid "Edit Connection:" -msgstr "Modifică Conexiunea:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Ești sigur că vrei să ștergi toate conexiunile de la semnalul \"%s\"?" @@ -662,18 +659,6 @@ msgstr "Apeluri" msgid "Error:" msgstr "Eroare:" -msgid "C++ Error" -msgstr "Eroare C++" - -msgid "C++ Error:" -msgstr "Eroare C++:" - -msgid "Source:" -msgstr "Sursă:" - -msgid "C++ Source:" -msgstr "Sursă C++:" - msgid "Expand All" msgstr "Extinde Toate" @@ -1478,6 +1463,9 @@ msgstr "Redimensionați Array-ul" msgid "Set Multiple:" msgstr "Seteaza Multiple:" +msgid "Edit Filters" +msgstr "Editează Filtrele" + msgid "Clear Output" msgstr "Curăță Afișarea" @@ -2418,18 +2406,15 @@ msgstr "Mută punct nod" msgid "Change BlendSpace1D Labels" msgstr "Modifică etichetele BlendSpace1D" -msgid "Triangle already exists." -msgstr "Triunghiul există deja." - msgid "Blend:" msgstr "Amestec:" +msgid "Triangle already exists." +msgstr "Triunghiul există deja." + msgid "Parameter Changed:" msgstr "Parametru modificat:" -msgid "Edit Filters" -msgstr "Editează Filtrele" - msgid "Toggle Filter On/Off" msgstr "Comutare filtru activat/dezactivat" @@ -2487,9 +2472,6 @@ msgstr "Rulează animația selectată în sens invers de la poziția curentă. ( msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Rulează animația selectată în sens invers de la sfârșit. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Oprește rularea animației. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Rulează animația selectată de la început. (Shift+D)" diff --git a/editor/translations/editor/ru.po b/editor/translations/editor/ru.po index 190146f1c8..ab221f26a4 100644 --- a/editor/translations/editor/ru.po +++ b/editor/translations/editor/ru.po @@ -9,7 +9,7 @@ # DimOkGamer <dimokgamer@gmail.com>, 2016-2017. # Forest Swamp <sample1989@mail.ru>, 2018. # Igor S <scorched@bk.ru>, 2017. -# ijet <my-ijet@mail.ru>, 2017-2018, 2020. +# ijet <my-ijet@mail.ru>, 2017-2018, 2020, 2023. # Maxim Kim <habamax@gmail.com>, 2016. # Maxim toby3d Lebedev <mail@toby3d.ru>, 2016. # outbools <drag4e@yandex.ru>, 2017. @@ -56,7 +56,7 @@ # Константин Рин <email.to.rean@gmail.com>, 2019, 2020. # Maxim Samburskiy <alpacones@outlook.com>, 2019. # Dima Koshel <form.eater@gmail.com>, 2019. -# Danil Alexeev <danil@alexeev.xyz>, 2019, 2020, 2021, 2022. +# Danil Alexeev <danil@alexeev.xyz>, 2019, 2020, 2021, 2022, 2023. # Ravager <al.porkhunov@gmail.com>, 2019. # Александр <akonn7@mail.ru>, 2019. # Rei <clxgamer12@gmail.com>, 2019. @@ -69,7 +69,7 @@ # TMF <themysticalfox@mail.ru>, 2020. # Ivan Kuzmenko <kuzmenko.ivan2002@yandex.com>, 2020. # Super Pracion <superpracion2@gmail.com>, 2020. -# PizzArt <7o7goo7o7@gmail.com>, 2020. +# PizzArt <7o7goo7o7@gmail.com>, 2020, 2023. # TheGracekale <mrsmailbot.lg@gmail.com>, 2020, 2021. # Климентий Титов <titoffklim@cclc.tech>, 2020. # Richard Urban <redasuio1@gmail.com>, 2020. @@ -124,16 +124,19 @@ # Gulpy <yak.aryslan.1999@gmail.com>, 2022. # Sergey Karmanov <ppoocpel8888@gmail.com>, 2022. # Дмитрий <Dimega@inbox.ru>, 2022. -# Vladimir Kirillovskiy <vladimir.kirillovskiy@gmail.com>, 2022. +# Vladimir Kirillovskiy <vladimir.kirillovskiy@gmail.com>, 2022, 2023. # Evgeniy Khramov <thejenjagamertjg@gmail.com>, 2022. -# kirill blaze <kirillblaze2@gmail.com>, 2022. +# kirill blaze <kirillblaze2@gmail.com>, 2022, 2023. +# Alexander Alexeev <dergluck@gmail.com>, 2023. +# Playmore Dev <playmoredevelop@gmail.com>, 2023. +# Вячеслав Шароваров <frfnmtd272710@gmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-11-25 12:13+0000\n" -"Last-Translator: Vladimir Kirillovskiy <vladimir.kirillovskiy@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 14:12+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" @@ -142,25 +145,145 @@ 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.15-dev\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "Сбросить" msgid "Physical" msgstr "Физический" +msgid "Left Mouse Button" +msgstr "Левая кнопка мыши" + +msgid "Right Mouse Button" +msgstr "Правая кнопка мыши" + +msgid "Middle Mouse Button" +msgstr "Средняя кнопка мыши" + +msgid "Mouse Wheel Up" +msgstr "Колёсико мыши вверх" + +msgid "Mouse Wheel Down" +msgstr "Колёсико мыши вниз" + +msgid "Mouse Wheel Left" +msgstr "Колёсико мыши влево" + +msgid "Mouse Wheel Right" +msgstr "Колесико мыши вправо" + +msgid "Mouse Thumb Button 1" +msgstr "Кнопка большого пальца мыши 1" + +msgid "Mouse Thumb Button 2" +msgstr "Кнопка большого пальца мыши 2" + msgid "Button" msgstr "Кнопка" +msgid "Double Click" +msgstr "Двойной щелчок" + +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "Движение мыши в местоположении (%s) со скоростью движения (%s)" + +msgid "Left Stick X-Axis, Joystick 0 X-Axis" +msgstr "Левый стик по оси X, Джойстик 0 по оси X" + +msgid "Left Stick Y-Axis, Joystick 0 Y-Axis" +msgstr "Левый стик по оси Y, Джойстик 0 по оси Y" + +msgid "Right Stick X-Axis, Joystick 1 X-Axis" +msgstr "Правый стик по оси X, Джойстик 1 по оси X" + +msgid "Right Stick Y-Axis, Joystick 1 Y-Axis" +msgstr "Правый стик по оси Y, Джойстик 1 по оси Y" + +msgid "Joystick 2 X-Axis, Left Trigger, Sony L2, Xbox LT" +msgstr "Джойстик 2 по оси X, Левый триггер, Sony L2, Xbox LT" + +msgid "Joystick 2 Y-Axis, Right Trigger, Sony R2, Xbox RT" +msgstr "Джойстик 2 по оси Y, Правый триггер, Sony R2, Xbox RT" + +msgid "Joystick 3 X-Axis" +msgstr "Джойстик 3 по оси X" + +msgid "Joystick 3 Y-Axis" +msgstr "Джойстик 3 по оси Y" + +msgid "Joystick 4 X-Axis" +msgstr "Джойстик 4 по оси X" + +msgid "Joystick 4 Y-Axis" +msgstr "Джойстик 4 по оси Y" + +msgid "Unknown Joypad Axis" +msgstr "Неизвестная ось джойстика" + +msgid "Joypad Motion on Axis %d (%s) with Value %.2f" +msgstr "Движение джойпада по оси %d (%s) со значением %.2f" + +msgid "Bottom Action, Sony Cross, Xbox A, Nintendo B" +msgstr "Нижнее действие, Sony Cross, Xbox A, Nintendo B" + +msgid "Right Action, Sony Circle, Xbox B, Nintendo A" +msgstr "Правое действие, Sony Circle, Xbox B, Nintendo A" + +msgid "Left Action, Sony Square, Xbox X, Nintendo Y" +msgstr "Левое действие, Sony Square, Xbox X, Nintendo Y" + +msgid "Top Action, Sony Triangle, Xbox Y, Nintendo X" +msgstr "Верхнее действие, Sony Triangle, Xbox Y, Nintendo X" + +msgid "D-pad Up" +msgstr "D-pad Вверх" + +msgid "D-pad Down" +msgstr "D-pad Вниз" + +msgid "D-pad Left" +msgstr "D-pad Влево" + +msgid "D-pad Right" +msgstr "D-pad Вправо" + +msgid "PS4/5 Touchpad" +msgstr "PS4/5 Тачпад" + +msgid "touched" +msgstr "коснулся" + +msgid "released" +msgstr "отпустил" + +msgid "MIDI Input on Channel=%s Message=%s" +msgstr "MIDI Вход на канале=%s Сообщение=%s" + +msgid "Input Event with Shortcut=%s" +msgstr "Событие ввода с Shortcut=%s" + +msgid "Accept" +msgstr "Подтвердить" + msgid "Select" msgstr "Выделение" msgid "Cancel" msgstr "Отмена" +msgid "Focus Next" +msgstr "Следующий фокус" + +msgid "Focus Prev" +msgstr "Предыдущий фокус" + msgid "Left" -msgstr "Лево" +msgstr "Влево" msgid "Right" -msgstr "Право" +msgstr "Вправо" msgid "Up" msgstr "Вверх" @@ -168,6 +291,15 @@ msgstr "Вверх" msgid "Down" msgstr "Вниз" +msgid "Page Up" +msgstr "На страницу вверх" + +msgid "Page Down" +msgstr "На страницу вниз" + +msgid "Home" +msgstr "Домой" + msgid "End" msgstr "Конец" @@ -186,15 +318,66 @@ msgstr "Отменить" msgid "Redo" msgstr "Повторить" +msgid "New Line" +msgstr "Новая строка" + +msgid "New Blank Line" +msgstr "Новая пустая строка" + +msgid "New Line Above" +msgstr "Новая строка выше" + msgid "Indent" msgstr "Отступ" +msgid "Dedent" +msgstr "Выступ" + +msgid "Backspace" +msgstr "Стереть" + +msgid "Backspace Word" +msgstr "Стереть слово" + +msgid "Backspace all to Left" +msgstr "Стереть всё слева" + msgid "Delete" msgstr "Удалить" +msgid "Delete Word" +msgstr "Удалить слово" + +msgid "Delete all to Right" +msgstr "Удалить всё справа" + +msgid "Caret Left" +msgstr "Курсор влево" + +msgid "Caret Word Left" +msgstr "Курсор влево на слово" + +msgid "Caret Right" +msgstr "Курсор вправо" + +msgid "Caret Word Right" +msgstr "Курсор вправо на слово" + +msgid "Scroll Up" +msgstr "Прокрутка вверх" + +msgid "Scroll Down" +msgstr "Прокрутка вниз" + msgid "Select All" msgstr "Выделить всё" +msgid "Select Word Under Caret" +msgstr "Выделить слово под курсором" + +msgid "Toggle Insert Mode" +msgstr "Переключить режим вставки" + msgid "Duplicate Nodes" msgstr "Дублировать узлы" @@ -204,6 +387,9 @@ msgstr "Удалить узлы" msgid "Refresh" msgstr "Обновить" +msgid "Show Hidden" +msgstr "Показывать скрытые" + msgid "Invalid input %d (not passed) in expression" msgstr "Некорректный ввод %d (не подходит) в выражении" @@ -226,6 +412,12 @@ msgstr "Недопустимые аргументы для построения msgid "On call to '%s':" msgstr "При вызове «%s»:" +msgid "Built-in script" +msgstr "Встроенный скрипт" + +msgid "Built-in" +msgstr "Встроенный" + msgid "B" msgstr "Б" @@ -247,6 +439,15 @@ msgstr "ПиБ" msgid "EiB" msgstr "ЭиБ" +msgid "Example: %s" +msgstr "Пример: %s" + +msgid "%d item" +msgid_plural "%d items" +msgstr[0] "%d элемент" +msgstr[1] "%d элемента" +msgstr[2] "%d элементов" + msgid "" "Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'" @@ -260,9 +461,30 @@ msgstr "Действие с именем «%s» уже существует." msgid "Add Event" msgstr "Добавить событие" +msgid "Remove Action" +msgstr "Удалить событие" + +msgid "Cannot Remove Action" +msgstr "Нельзя Удалить Действие" + +msgid "Edit Event" +msgstr "Изменить событие" + +msgid "Remove Event" +msgstr "Удалить событие" + +msgid "Filter by name..." +msgstr "Фильтр по имени..." + +msgid "Clear All" +msgstr "Очистить" + msgid "Add" msgstr "Добавить" +msgid "Show Built-in Actions" +msgstr "Показать встроенные действия" + msgid "Action" msgstr "Действие" @@ -275,6 +497,9 @@ msgstr "Время:" msgid "Value:" msgstr "Значение:" +msgid "Update Selected Key Handles" +msgstr "Обновить ручки выделенных ключей" + msgid "Insert Key Here" msgstr "Вставить ключ здесь" @@ -293,6 +518,18 @@ msgstr "Передвинуть точки Безье" msgid "Focus" msgstr "Фокус" +msgid "Select All Keys" +msgstr "Выделить все ключи" + +msgid "Deselect All Keys" +msgstr "Снять выделение с ключей" + +msgid "Animation Change %s" +msgstr "Анимация изменения %s" + +msgid "Animation Change Keyframe Value" +msgstr "Изменить значение ключевого кадра" + msgid "Change Animation Length" msgstr "Изменить длину анимации" @@ -440,6 +677,12 @@ msgstr "Изменить режим цикла анимации" msgid "Remove Anim Track" msgstr "Удалить дорожку" +msgid "Create new track for %s and insert key?" +msgstr "Создать новый трек для %s и вставить ключ?" + +msgid "Create %d new tracks and insert keys?" +msgstr "Создать %d новые треки и вставить ключи?" + msgid "Create" msgstr "Создать" @@ -586,6 +829,9 @@ msgstr "Перейти к предыдущему шагу" msgid "Apply Reset" msgstr "Применить сброс" +msgid "Bake Animation" +msgstr "Запечь анимацию" + msgid "Use Bezier Curves" msgstr "Использовать кривые Безье" @@ -643,6 +889,18 @@ msgstr "Номер строки:" msgid "%d replaced." msgstr "%d заменено." +msgid "%d match" +msgid_plural "%d matches" +msgstr[0] "%d совпадает" +msgstr[1] "%d совпадают" +msgstr[2] "%d совпадают" + +msgid "%d of %d match" +msgid_plural "%d of %d matches" +msgstr[0] "%d из %d совпадения" +msgstr[1] "%d из %d совпадений" +msgstr[2] "%d из %d совпадений" + msgid "Match Case" msgstr "Учитывать регистр" @@ -701,9 +959,15 @@ msgstr "Присоединить к скрипту:" msgid "From Signal:" msgstr "От сигнала:" +msgid "Filter Nodes" +msgstr "Фильтр узлов" + msgid "Scene does not contain any script." msgstr "Сцена не содержит каких-либо скриптов." +msgid "Select Method" +msgstr "Выбрать метод" + msgid "Remove" msgstr "Удалить" @@ -713,6 +977,12 @@ msgstr "Добавить дополнительный аргумент вызо msgid "Extra Call Arguments:" msgstr "Дополнительные параметры вызова:" +msgid "Allows to drop arguments sent by signal emitter." +msgstr "Разрешить отбрасывать аргументы, отправленные эмиттером." + +msgid "Unbind Signal Arguments:" +msgstr "Отключить аргументы сигнала:" + msgid "Receiver Method:" msgstr "Метод-приёмник:" @@ -746,6 +1016,9 @@ msgstr "Присоединить" msgid "Signal:" msgstr "Сигнал:" +msgid "No description." +msgstr "Нет описания." + msgid "Connect '%s' to '%s'" msgstr "Присоединить «%s» к «%s»" @@ -764,15 +1037,15 @@ msgstr "Отсоединить" msgid "Connect a Signal to a Method" msgstr "Присоединить сигнал к методу" -msgid "Edit Connection:" -msgstr "Редактировать соединение:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Вы уверены, что хотите удалить все соединения от сигнала «%s»?" msgid "Signals" msgstr "Сигналы" +msgid "Filter Signals" +msgstr "Фильтр сигналов" + msgid "Are you sure you want to remove all connections from this signal?" msgstr "Вы уверены, что хотите удалить все соединения от этого сигнала?" @@ -794,6 +1067,12 @@ msgstr "Создать %s" msgid "No results for \"%s\"." msgstr "Нет результатов для «%s»." +msgid "This class is marked as deprecated." +msgstr "Этот класс помечен как устаревший." + +msgid "This class is marked as experimental." +msgstr "Этот класс помечен как экспериментальный." + msgid "No description available for %s." msgstr "Нет описания для «%s»." @@ -803,6 +1082,9 @@ msgstr "Избранное:" msgid "Recent:" msgstr "Недавнее:" +msgid "(Un)favorite selected item." +msgstr "Добавить/убрать выделенные в избранное." + msgid "Search:" msgstr "Поиск:" @@ -830,9 +1112,21 @@ msgstr "Копировать путь узла" msgid "Instance:" msgstr "Экземпляр:" +msgid "" +"This node has been instantiated from a PackedScene file:\n" +"%s\n" +"Click to open the original file in the Editor." +msgstr "" +"Этот узел был создан из файла PackedScene:\n" +"%s\n" +"Нажмите, чтобы открыть исходный файл в редакторе." + msgid "Toggle Visibility" msgstr "Переключить видимость" +msgid "ms" +msgstr "мс" + msgid "Monitors" msgstr "Мониторинг" @@ -912,26 +1206,32 @@ msgstr "Предупреждение:" msgid "Error:" msgstr "Ошибка:" -msgid "C++ Error" -msgstr "Ошибка C++" +msgid "%s Error" +msgstr "Ошибка %s" -msgid "C++ Error:" -msgstr "Ошибка C++:" +msgid "Stack Trace" +msgstr "Трассировка стека" -msgid "Source" -msgstr "Источник" +msgid "Stack Trace:" +msgstr "Трассировка стека:" -msgid "C++ Source" -msgstr "Исходный код C++" +msgid "Debug session started." +msgstr "Начало сеанса отладки." -msgid "Source:" -msgstr "Исходный код:" +msgid "Debug session closed." +msgstr "Конец сеанса отладки." -msgid "C++ Source:" -msgstr "Исходный код C++:" +msgid "Line %d" +msgstr "Строка %d" -msgid "Stack Trace" -msgstr "Трассировка стека" +msgid "Delete Breakpoint" +msgstr "Удалить точку останова" + +msgid "Delete All Breakpoints in:" +msgstr "Удалить все точки останова в:" + +msgid "Delete All Breakpoints" +msgstr "Удалить все точки останова" msgid "Copy Error" msgstr "Копировать ошибку" @@ -939,6 +1239,9 @@ msgstr "Копировать ошибку" msgid "Open C++ Source on GitHub" msgstr "Открытый исходный код C++ на GitHub" +msgid "C++ Source" +msgstr "Исходный код C++" + msgid "Video RAM" msgstr "Видеопамять" @@ -1239,7 +1542,7 @@ msgid "Rename Audio Bus" msgstr "Переименовать аудио шину" msgid "Change Audio Bus Volume" -msgstr "Изменить громкость звуковой шины" +msgstr "Изменить громкость шины" msgid "Toggle Audio Bus Solo" msgstr "Переключить аудио шину - соло" @@ -1388,6 +1691,9 @@ msgstr "Включить" msgid "Rearrange Autoloads" msgstr "Перестановка автозагрузок" +msgid "Can't add Autoload:" +msgstr "Не удаётся добавить автозагрузку:" + msgid "%s is an invalid path. File does not exist." msgstr "Неверный путь «%s». Файл не существует." @@ -1415,6 +1721,28 @@ msgstr "Навигация" msgid "OpenGL" msgstr "OpenGL" +msgid "Vulkan" +msgstr "Vulkan" + +msgid "TTF, OTF, Type 1, WOFF1 Fonts" +msgstr "Шрифты TTF, OTF, Type 1, WOFF1" + +msgid "WOFF2 Fonts" +msgstr "Шрифты WOFF2" + +msgid "Navigation, both 2D and 3D." +msgstr "Навигация (2D и 3D)." + +msgid "" +"TrueType, OpenType, Type 1, and WOFF1 font format support using FreeType " +"library (if disabled, WOFF2 support is also disabled)." +msgstr "" +"Поддержка форматов шрифтов TrueType, OpenType, Type 1 и WOFF1 используя " +"библиотеку FreeType (если отключено, поддержка WOFF2 тоже будет отключена)." + +msgid "File saving failed." +msgstr "Не удалось сохранить файл." + msgid "Nodes and Classes:" msgstr "Узлы и классы:" @@ -1430,12 +1758,21 @@ msgstr "Новый" msgid "Save" msgstr "Сохранить" +msgid "Profile:" +msgstr "Профиль:" + msgid "Reset to Defaults" msgstr "Сбросить настройки" +msgid "Please Confirm:" +msgstr "Подтвердите:" + msgid "Export Profile" msgstr "Экспортировать профиль" +msgid "Edit Build Configuration Profile" +msgstr "Изменить профиль конфигурации сборки" + msgid "Paste Params" msgstr "Вставить параметры" @@ -1523,6 +1860,9 @@ msgstr "" "Позволяет настраивать параметры импорта для отдельных ресурсов. Для работы " "требуется панель «Файловая система»." +msgid "Provides an overview of the editor's and each scene's undo history." +msgstr "Предоставляет обзор истории отмены действий редактора и каждой сцены." + msgid "(current)" msgstr "(текущий)" @@ -1741,6 +2081,55 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "(Ре)Импортировать" +msgid "Import resources of type: %s" +msgstr "Импорт ресурсов типа: %s" + +msgid "No return value." +msgstr "Возвращаемое значение отсутствует." + +msgid "Deprecated" +msgstr "Устаревший" + +msgid "Experimental" +msgstr "Экспериментальный" + +msgid "This method supports a variable number of arguments." +msgstr "Данный метод поддерживает переменное количество аргументов." + +msgid "" +"This method is called by the engine.\n" +"It can be overridden to customize built-in behavior." +msgstr "" +"Данный метод вызывается движком.\n" +"Его можно переопределить, чтобы изменить поведение по умолчанию." + +msgid "" +"This method has no side effects.\n" +"It does not modify the object in any way." +msgstr "" +"Данный метод не имеет побочных эффектов.\n" +"Он никоим образом не изменяет объект." + +msgid "" +"This method does not need an instance to be called.\n" +"It can be called directly using the class name." +msgstr "" +"Для вызова данного метода не требуется экземпляр.\n" +"Его можно вызвать напрямую, используя имя класса." + +msgid "Error codes returned:" +msgstr "Возвращённые коды ошибок:" + +msgid "There is currently no description for this %s." +msgstr "В настоящее время описание этого %s отсутствует." + +msgid "" +"There is currently no description for this %s. Please help us by " +"[color=$color][url=$url]contributing one[/url][/color]!" +msgstr "" +"В настоящее время описание этого %s отсутствует. Пожалуйста помогите нам, " +"[color=$color][url=$url]внесите свой вклад[/url][/color]!" + msgid "Top" msgstr "Верх" @@ -1753,11 +2142,33 @@ msgstr "Наследует:" msgid "Inherited by:" msgstr "Унаследован:" +msgid "" +"This class is marked as deprecated. It will be removed in future versions." +msgstr "" +"Данный класс помечен как устаревший. Он будет удалён в будущих версиях." + +msgid "" +"This class is marked as experimental. It is subject to likely change or " +"possible removal in future versions. Use at your own discretion." +msgstr "" +"Данный класс помечен как экспериментальный. Он может быть изменён или удалён " +"в будущих версиях. Используйте по своему усмотрению." + msgid "Description" msgstr "Описание" +msgid "There is currently no description for this class." +msgstr "В настоящее время описание этого класса отсутствует." + +msgid "" +"There is currently no description for this class. Please help us by " +"[color=$color][url=$url]contributing one[/url][/color]!" +msgstr "" +"В настоящее время описание этого класса отсутствует. Пожалуйста помогите " +"нам, [color=$color][url=$url]внесите свой вклад[/url][/color]!" + msgid "Online Tutorials" -msgstr "Онлайн-уроки" +msgstr "Онлайн-руководства" msgid "Properties" msgstr "Свойства" @@ -1766,7 +2177,16 @@ msgid "overrides %s:" msgstr "переопределяет %s:" msgid "default:" -msgstr "По умолчанию:" +msgstr "по умолчанию:" + +msgid "property:" +msgstr "свойство:" + +msgid "Constructors" +msgstr "Конструкторы" + +msgid "Operators" +msgstr "Операторы" msgid "Theme Properties" msgstr "Свойства темы" @@ -1780,6 +2200,9 @@ msgstr "Константы" msgid "Fonts" msgstr "Шрифты" +msgid "Font Sizes" +msgstr "Размеры шрифта" + msgid "Icons" msgstr "Иконки" @@ -1789,22 +2212,44 @@ msgstr "Стили" msgid "Enumerations" msgstr "Перечисления" +msgid "Annotations" +msgstr "Аннотации" + +msgid "There is currently no description for this annotation." +msgstr "В настоящее время описание этой аннотации отсутствует." + +msgid "" +"There is currently no description for this annotation. Please help us by " +"[color=$color][url=$url]contributing one[/url][/color]!" +msgstr "" +"В настоящее время описание этой аннотации отсутствует. Пожалуйста помогите " +"нам, [color=$color][url=$url]внесите свой вклад[/url][/color]!" + msgid "Property Descriptions" msgstr "Описания свойств" msgid "(value)" msgstr "(значение)" +msgid "There is currently no description for this property." +msgstr "В настоящее время описание этого свойства отсутствует." + msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" -"В настоящее время отсутствует описание этого свойства. Пожалуйста " -"[color=$color][url=$url]помогите нам[/url][/color]!" +"В настоящее время описание этого свойства отсутствует. Пожалуйста помогите " +"нам, [color=$color][url=$url]внесите свой вклад[/url][/color]!" + +msgid "Constructor Descriptions" +msgstr "Описания конструкторов" msgid "Method Descriptions" msgstr "Описания методов" +msgid "Operator Descriptions" +msgstr "Описания операторов" + msgid "%d match." msgstr "%d совпадение." @@ -1826,12 +2271,21 @@ msgstr "Отображать всё" msgid "Classes Only" msgstr "Только классы" +msgid "Constructors Only" +msgstr "Только конструкторы" + msgid "Methods Only" msgstr "Только методы" +msgid "Operators Only" +msgstr "Только операторы" + msgid "Signals Only" msgstr "Только сигналы" +msgid "Annotations Only" +msgstr "Только аннотации" + msgid "Constants Only" msgstr "Только константы" @@ -1844,6 +2298,9 @@ msgstr "Только свойства темы" msgid "Member Type" msgstr "Тип члена" +msgid "(constructors)" +msgstr "(конструкторы)" + msgid "Class" msgstr "Класс" @@ -1853,6 +2310,9 @@ msgstr "Метод" msgid "Signal" msgstr "Сигнал" +msgid "Annotation" +msgstr "Аннотация" + msgid "Constant" msgstr "Константа" @@ -1862,9 +2322,22 @@ msgstr "Параметр" msgid "Theme Property" msgstr "Свойство темы" +msgid "This member is marked as deprecated." +msgstr "Этот член класса помечен как устаревший." + +msgid "This member is marked as experimental." +msgstr "Этот член класса помечен как экспериментальный." + msgid "Property:" msgstr "Параметр:" +msgid "Pin Value" +msgstr "Закрепить значение" + +msgid "Pin Value [Disabled because '%s' is editor-only]" +msgstr "" +"Закрепить значение [Отключено, так как «%s» доступно только для редактора]" + msgid "" "Pinning a value forces it to be saved even if it's equal to the default." msgstr "" @@ -1874,32 +2347,105 @@ msgstr "" msgid "Open Documentation" msgstr "Открыть документацию" +msgid "Element %d: %s%d*" +msgstr "Элемент %d: %s%d*" + msgid "Move Up" msgstr "Переместить вверх" msgid "Move Down" msgstr "Переместить вниз" +msgid "Insert New Before" +msgstr "Вставить новый до" + +msgid "Insert New After" +msgstr "Вставить новый после" + +msgid "Clear Array" +msgstr "Очистить массив" + +msgid "Resize Array..." +msgstr "Изменить размер массива..." + +msgid "Add Element" +msgstr "Добавить элемент" + msgid "Resize Array" msgstr "Изменить размер массива" +msgid "New Size:" +msgstr "Новый размер:" + +msgid "Element %s" +msgstr "Элемент %s" + +msgid "Add Metadata" +msgstr "Добавить метаданные" + msgid "Set %s" msgstr "Задать %s" msgid "Set Multiple:" msgstr "Задать несколько:" +msgid "Remove metadata %s" +msgstr "Удалить метаданные %s" + msgid "Pinned %s" msgstr "Закреплено %s" msgid "Unpinned %s" msgstr "Откреплено %s" +msgid "Add metadata %s" +msgstr "Добавить метаданные %s" + +msgid "Metadata name can't be empty." +msgstr "Имя метаданных не может быть пустым." + +msgid "Metadata name must be a valid identifier." +msgstr "Имя метаданных должно быть допустимым идентификатором." + +msgid "Metadata with name \"%s\" already exists." +msgstr "Метаданные с именем «%s» уже существуют." + +msgid "Names starting with _ are reserved for editor-only metadata." +msgstr "" +"Имена, начинающиеся с _, зарезервированы только для метаданных редактора." + +msgid "Metadata name is valid." +msgstr "Имя метаданных является допустимым." + +msgid "Add Metadata Property for \"%s\"" +msgstr "Добавить свойство метаданных для «%s»" + +msgid "Copy Value" +msgstr "Копировать значение" + +msgid "Paste Value" +msgstr "Вставить значение" + msgid "Copy Property Path" -msgstr "Копировать путь к свойству" +msgstr "Копировать путь свойства" + +msgid "Select existing layout:" +msgstr "Выберите существующий макет:" + +msgid "Changed Locale Language Filter" +msgstr "Изменён фильтр локали по языкам" + +msgid "Changed Locale Script Filter" +msgstr "Изменён фильтр локали по письменностям" + +msgid "Changed Locale Country Filter" +msgstr "Изменён фильтр локали по странам" msgid "Changed Locale Filter Mode" -msgstr "Изменен режим фильтрации языков" +msgstr "Изменён режим фильтра локали" + +msgid "Select a Locale" +msgstr "Выбрать локаль" msgid "Show All Locales" msgstr "Показать все локали" @@ -1907,11 +2453,26 @@ msgstr "Показать все локали" msgid "Show Selected Locales Only" msgstr "Показать только выбранные локали" +msgid "Edit Filters" +msgstr "Редактировать фильтры" + msgid "Language:" msgstr "Язык:" -msgid "Script" -msgstr "Скрипт" +msgid "Country:" +msgstr "Страна:" + +msgid "Language" +msgstr "Язык" + +msgid "Country" +msgstr "Страна" + +msgid "Variant" +msgstr "Вариант" + +msgid "Filter Messages" +msgstr "Фильтр сообщений" msgid "Clear Output" msgstr "Очистить вывод" @@ -1919,6 +2480,24 @@ msgstr "Очистить вывод" msgid "Copy Selection" msgstr "Копировать выделенное" +msgid "" +"Collapse duplicate messages into one log entry. Shows number of occurrences." +msgstr "" +"Свернуть повторяющиеся сообщения в одну запись журнала. Количество " +"повторений отображается." + +msgid "Toggle visibility of standard output messages." +msgstr "Переключить видимость стандартных сообщений вывода." + +msgid "Toggle visibility of errors." +msgstr "Переключить видимость ошибок." + +msgid "Toggle visibility of warnings." +msgstr "Переключить видимость предупреждений." + +msgid "Toggle visibility of editor messages." +msgstr "Переключить видимость сообщений редактора." + msgid "New Window" msgstr "Новое окно" @@ -1965,6 +2544,9 @@ msgstr "Неизвестный формат запрашиваемого фай msgid "Error while saving." msgstr "Ошибка при сохранении." +msgid "Scene file '%s' appears to be invalid/corrupt." +msgstr "Файл сцены «%s» является недействительным/повреждённым." + msgid "Saving Scene" msgstr "Сохранение сцены" @@ -2021,6 +2603,10 @@ msgstr "Название макета не найдено!" msgid "Restored the Default layout to its base settings." msgstr "Макет по умолчанию восстановлен к его базовым настройкам." +msgid "This object is marked as read-only, so it's not editable." +msgstr "" +"Этот объект помечен как только для чтения, поэтому его нельзя изменить." + msgid "" "This resource belongs to a scene that was imported, so it's not editable.\n" "Please read the documentation relevant to importing scenes to better " @@ -2041,18 +2627,44 @@ msgstr "" msgid "Changes may be lost!" msgstr "Изменения могут быть потеряны!" +msgid "This object is read-only." +msgstr "Этот объект доступен только для чтения." + +msgid "" +"Movie Maker mode is enabled, but no movie file path has been specified.\n" +"A default movie file path can be specified in the project settings under the " +"Editor > Movie Writer category.\n" +"Alternatively, for running single scenes, a `movie_file` string metadata can " +"be added to the root node,\n" +"specifying the path to a movie file that will be used when recording that " +"scene." +msgstr "" +"Режим Movie Maker включён, но путь к видеофайлу не указан.\n" +"Путь к видеофайлу по умолчанию можно указать в настройках проекта в " +"категории Editor > Movie Writer.\n" +"В качестве альтернативы, для запуска отдельных сцен в корневой узел можно " +"добавить метаданные `movie_file` типа String,\n" +"указывающие пути к видеофайлу, который будет использоваться при записи этой " +"сцены." + msgid "There is no defined scene to run." msgstr "Нет открытой сцены для запуска." msgid "Save scene before running..." msgstr "Сохранение сцены перед запуском..." +msgid "Reload the played scene." +msgstr "Перезапустить воспроизводимую сцену." + msgid "Play the project." msgstr "Запустить проект." msgid "Play the edited scene." msgstr "Запустить текущую сцену." +msgid "Play a custom scene." +msgstr "Запустить произвольную сцену." + msgid "Open Base Scene" msgstr "Открыть основную сцену" @@ -2107,12 +2719,18 @@ msgstr "Невозможно отменить пока кнопки мыши н msgid "Nothing to undo." msgstr "Нечего отменить." +msgid "Remote Undo: %s" +msgstr "Отменить удалённо: %s" + msgid "Can't redo while mouse buttons are pressed." msgstr "Невозможно повторить пока кнопки мыши нажаты." msgid "Nothing to redo." msgstr "Нечего повторить." +msgid "Remote Redo: %s" +msgstr "Повторить удалённо: %s" + msgid "Can't reload a scene that was never saved." msgstr "Не возможно загрузить сцену, которая не была сохранена." @@ -2340,6 +2958,9 @@ msgstr "Проект" msgid "Project Settings..." msgstr "Настройки проекта..." +msgid "Project Settings" +msgstr "Настройки проекта" + msgid "Version Control" msgstr "Контроль версий" @@ -2370,6 +2991,9 @@ msgstr "Редактор" msgid "Editor Settings..." msgstr "Настройки редактора..." +msgid "Command Palette..." +msgstr "Палитра команд..." + msgid "Editor Layout" msgstr "Макет редактора" @@ -2424,15 +3048,66 @@ msgstr "О Godot" msgid "Support Godot Development" msgstr "Поддержать разработку Godot" +msgid "Run the project's default scene." +msgstr "Запустить сцену проекта по умолчанию." + msgid "Run Project" msgstr "Запустить проект" +msgid "Pause the running project's execution for debugging." +msgstr "Приостановить выполнение запущенного проекта для отладки." + +msgid "Pause Running Project" +msgstr "Приостановить запущенный проект" + +msgid "Stop the currently running project." +msgstr "Остановить текущий запущенный проект." + +msgid "Stop Running Project" +msgstr "Остановить запущенный проект" + +msgid "Run the currently edited scene." +msgstr "Запустить текущую редактируемую сцену." + +msgid "Run Current Scene" +msgstr "Запустить текущую сцену" + +msgid "Run a specific scene." +msgstr "Запустить конкретную сцену." + +msgid "Run Specific Scene" +msgstr "Запустить конкретную сцену" + +msgid "" +"Enable Movie Maker mode.\n" +"The project will run at stable FPS and the visual and audio output will be " +"recorded to a video file." +msgstr "" +"Включить режим Movie Maker.\n" +"Проект будет запущен со стабильным FPS, а изображение и звук будут записаны " +"в видеофайл." + +msgid "Choose a renderer." +msgstr "Выберите отрисовщик." + +msgid "Forward+" +msgstr "Forward+" + +msgid "Mobile" +msgstr "Мобильные устройства" + msgid "Compatibility" msgstr "Совместимость" +msgid "Changing the renderer requires restarting the editor." +msgstr "Изменение отрисовщика требует перезапуска редактора." + msgid "Update Continuously" msgstr "Непрерывное обновление" +msgid "Update When Changed" +msgstr "Обновлять при изменениях" + msgid "Hide Update Spinner" msgstr "Скрыть индикатор обновлений" @@ -2466,24 +3141,6 @@ msgid "Install from file" msgstr "Установить из файла" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Это настроит ваш проект для пользовательских сборок Android путём установки " -"исходного шаблона в «res://android/build».\n" -"Затем вы можете модифицировать его (добавить модули, изменить " -"AndroidManifest.xml и т. д.) и создать свой собственный пользовательский APK " -"для экспорта.\n" -"Обратите внимание, что для применения пользовательских сборок вместо " -"использования готовых APK-файлов при экспорте на Android должна быть " -"включена опция «Использовать пользовательскую сборку»." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2551,6 +3208,9 @@ msgstr "Открыть следующий редактор" msgid "Open the previous Editor" msgstr "Открыть предыдущий редактор" +msgid "Ok" +msgstr "Ok" + msgid "Warning!" msgstr "Предупреждение!" @@ -2608,6 +3268,9 @@ msgstr "Устанавливать.." msgid "Invalid RID" msgstr "Неверный RID" +msgid "Recursion detected, unable to assign resource to property." +msgstr "Обнаружена рекурсия, невозможно назначить ресурс свойству." + msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." @@ -2632,12 +3295,21 @@ msgstr "Выберите Viewport" msgid "Selected node is not a Viewport!" msgstr "Выбранный узел не Viewport!" +msgid "(Nil) %s" +msgstr "(Nil) %s" + +msgid "%s (size %s)" +msgstr "%s (размер %s)" + msgid "Size:" msgstr "Размер:" msgid "Remove Item" msgstr "Удалить элемент" +msgid "Dictionary (size %d)" +msgstr "Словарь (размер %d)" + msgid "New Key:" msgstr "Новый ключ:" @@ -2672,6 +3344,9 @@ msgstr "Новый скрипт" msgid "Extend Script" msgstr "Расширить скрипт" +msgid "No Remote Debug export presets configured." +msgstr "Нет настроенных пресетов экспорта для удалённой отладки." + msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -2690,6 +3365,9 @@ msgstr "Пишите ваш код в методе _run()." msgid "There is an edited scene already." msgstr "Уже существует отредактированная сцена." +msgid "Edit Built-in Action" +msgstr "Изменить встроенное действие" + msgid "Common" msgstr "Общий" @@ -2708,8 +3386,33 @@ msgstr "Горячие клавиши" msgid "Binding" msgstr "Привязка" -msgid "%s Error" -msgstr "Ошибка %s" +msgid "" +"Hold %s to round to integers.\n" +"Hold Shift for more precise changes." +msgstr "" +"Зажмите %s, чтобы округлить до целых.\n" +" Зажмите Shift для более точных изменений." + +msgid "No notifications." +msgstr "Нет уведомлений." + +msgid "Show notifications." +msgstr "Показать уведомления." + +msgid "Silence the notifications." +msgstr "Заглушить уведомления." + +msgid "Left Stick Left, Joystick 0 Left" +msgstr "Левый стик влево, Джойстик 0 влево" + +msgid "Left Stick Right, Joystick 0 Right" +msgstr "Левый стик вправо, Джойстик 0 вправо" + +msgid "Left Stick Up, Joystick 0 Up" +msgstr "Левый стик вверх, Стик 0 вверх" + +msgid "Left Stick Down, Joystick 0 Down" +msgstr "Левый стик вниз, Стик 0 вниз" msgid "All Devices" msgstr "Все устройства" @@ -2717,11 +3420,14 @@ msgstr "Все устройства" msgid "Device" msgstr "Устройство" +msgid "Listening for input..." +msgstr "Ожидание ввода..." + msgid "Project export for platform:" msgstr "Экспорт проекта для платформы:" msgid "Completed with warnings." -msgstr "Завершено с ошибками." +msgstr "Завершено с предупреждениями." msgid "Completed successfully." msgstr "Завершено без ошибок." @@ -2756,6 +3462,15 @@ msgstr "Не удалось экспортировать файлы проект msgid "Can't open file to read from path \"%s\"." msgstr "Не удается открыть файл для чтения из пути \"%s\"." +msgid "Can't open executable file from path \"%s\"." +msgstr "Не удалось открыть исполняемый файл по пути «%s»." + +msgid "Can't create encrypted file." +msgstr "Не удалось создать зашифрованный файл." + +msgid "Can't open encrypted file to write." +msgstr "Не удалось открыть зашифрованный файл для записи." + msgid "Save ZIP" msgstr "Сохранить ZIP" @@ -3035,12 +3750,22 @@ msgstr "Экспортировать выбранные сцены (включа msgid "Export selected resources (and dependencies)" msgstr "Экспортировать выбранные ресурсы (включая зависимости)" +msgid "Export as dedicated server" +msgstr "Экпортировать как выделенный сервер" + msgid "Export Mode:" msgstr "Режим экспортирования:" msgid "Resources to export:" msgstr "Ресурсы для экспорта:" +msgid "" +"\"Strip Visuals\" will replace the following resources with placeholders:" +msgstr "\"Убрать визуал\" заменит следующие ресурсы на заполнители:" + +msgid "Strip Visuals" +msgstr "Убрать визуал" + msgid "Keep" msgstr "Оставить оригинал" @@ -3067,6 +3792,9 @@ msgstr "Пользовательские (через запятую):" msgid "Feature List:" msgstr "Список свойств:" +msgid "Encrypt Exported PCK" +msgstr "Шифровать экпортированный PCK" + msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)" msgstr "" "Неверный ключ шифрования (должен состоять из 64 шестнадцатеричных символов)" @@ -3096,6 +3824,9 @@ msgstr "Экспортировать всё..." msgid "ZIP File" msgstr "ZIP-файл" +msgid "Godot Project Pack" +msgstr "Пакет Godot проекта" + msgid "Export templates for this platform are missing:" msgstr "Шаблоны экспорта для этой платформы отсутствуют:" @@ -3108,6 +3839,25 @@ msgstr "Управление шаблонами экспорта" msgid "Export With Debug" msgstr "Экспорт в режиме отладки" +msgid "Path to FBX2glTF executable is empty." +msgstr "Путь к исполнителю FBX2glTF пуст." + +msgid "Path to FBX2glTF executable is invalid." +msgstr "Путь к исполняемому файлу FBX2glTF недействителен." + +msgid "Error executing this file (wrong version or architecture)." +msgstr "Ошибка при запуске данного файла (неверная версия или архитектура)." + +msgid "" +"FBX2glTF is required for importing FBX files.\n" +"Please download it and provide a valid path to the binary:" +msgstr "" +"FBX2glTF необходим для импортирования файлов FBX.\n" +"Пожалуйста, скачайте его и укажите верный путь к исполнителю:" + +msgid "Click this link to download FBX2glTF" +msgstr "Нажмите на эту ссылку для скачивания FBX2glTF" + msgid "Browse" msgstr "Обзор" @@ -3137,8 +3887,14 @@ msgstr "Ошибка перемещения:" msgid "Error duplicating:" msgstr "Ошибка дублирования:" +msgid "Failed to save resource at %s: %s" +msgstr "Не удалось сохранить ресурс в %s: %s" + +msgid "Failed to load resource at %s: %s" +msgstr "Не удалось загрузить ресурс из %s: %s" + msgid "Unable to update dependencies:" -msgstr "Не удаётся обновить зависимости:" +msgstr "Не удалось обновить зависимости:" msgid "Provided name contains invalid characters." msgstr "Имя содержит недопустимые символы." @@ -3292,9 +4048,21 @@ msgstr "Заменить..." msgid "Replace in Files" msgstr "Заменить в файлах" +msgid "Replace all (no undo)" +msgstr "Заменить всё (НЕЛЬЗЯ ОТМЕНИТЬ)" + msgid "Searching..." msgstr "Поиск..." +msgid "%d match in %d file" +msgstr "%d совпадение в %d файле" + +msgid "%d matches in %d file" +msgstr "%d совпадений в %d файле" + +msgid "%d matches in %d files" +msgstr "%d совпадений в %d файлах" + msgid "Add to Group" msgstr "Добавить в группу" @@ -3331,12 +4099,122 @@ msgstr "Редактор групп" msgid "Manage Groups" msgstr "Управление группами" +msgid "The Beginning" +msgstr "Начало" + +msgid "Audio Stream Importer: %s" +msgstr "Импортер потока аудио: %s" + msgid "Reimport" -msgstr "Переимпортировать" +msgstr "Повторить импорт" + +msgid "Enable looping." +msgstr "Зациклить." msgid "Offset:" msgstr "Отступ:" +msgid "" +"Loop offset (from beginning). Note that if BPM is set, this setting will be " +"ignored." +msgstr "" +"Сдвиг цикла (от начала). Обратите внимание, если установлен темп (BPM), этот " +"параметр будет игнорироваться." + +msgid "Loop:" +msgstr "Зациклить:" + +msgid "BPM:" +msgstr "Темп:" + +msgid "" +"Configure the Beats Per Measure (tempo) used for the interactive streams.\n" +"This is required in order to configure beat information." +msgstr "" +"Количество ударов на такт (темп), используемое интерактивными потоками.\n" +"Это нужно для настройки ритма." + +msgid "Beat Count:" +msgstr "Кол-во ударов:" + +msgid "" +"Configure the amount of Beats used for music-aware looping. If zero, it will " +"be autodetected from the length.\n" +"It is recommended to set this value (either manually or by clicking on a " +"beat number in the preview) to ensure looping works properly." +msgstr "" +"Параметр количества битов, используемых для зацикливания музыки. Если ноль, " +"он будет автоматически определен по длине.\n" +"Рекомендуется установить это значение (вручную, либо щелкнув номер доли в " +"превью), чтобы обеспечить правильную работу цикла." + +msgid "Bar Beats:" +msgstr "Ударов в такте:" + +msgid "" +"Configure the Beats Per Bar. This used for music-aware transitions between " +"AudioStreams." +msgstr "" +"Параметр количества ударов в такте. Это используется для музыкально " +"основанных переходов между звуковыми потоками AudioStream." + +msgid "Music Playback:" +msgstr "Воспроизведение:" + +msgid "New Configuration" +msgstr "Новая конфигурация" + +msgid "Remove Variation" +msgstr "Удалить вариант" + +msgid "" +"Warning: Multiple configurations have identical settings. Duplicates will be " +"ignored." +msgstr "" +"Предупреждение: Несколько конфигураций имеют идентичные настройки. Дубликаты " +"игнорируются." + +msgid "" +"Note: LCD Subpixel antialiasing is selected, each of the glyphs will be pre-" +"rendered for all supported subpixel layouts (5x)." +msgstr "" +"Примечание: Если сглаживание субпикселей LCD выбрано, каждый глиф будет " +"предварительно отрендерен для всех поддерживаемых слоев субпикселей (5x)." + +msgid "Advanced Import Settings for '%s'" +msgstr "Расширенные настройки импорта для '%s'" + +msgid "Rendering Options" +msgstr "Параметры рендеринга" + +msgid "Select font rendering options, fallback font, and metadata override:" +msgstr "" +"Выберите параметры рендеринга шрифта, запасной шрифт и замененную метадату:" + +msgid "Pre-render Configurations" +msgstr "Конфигурации предварительного рендера" + +msgid "" +"Add font size, and variation coordinates, and select glyphs to pre-render:" +msgstr "" +"Добавьте размер шрифта и координаты вариантов, и выберите глифы для " +"предварительного рендеринга:" + +msgid "Configuration:" +msgstr "Конфигурация:" + +msgid "Add configuration" +msgstr "Добавить конфигурацию" + +msgid "Dynamically rendered TrueType/OpenType font" +msgstr "Динамически отображаемый шрифт TrueType/OpenType" + +msgid "Can't load font texture:" +msgstr "Не удается загрузить текстуру шрифта:" + +msgid "Image margin too big." +msgstr "Поля изображения слишком большие." + msgid "Importing Scene..." msgstr "Импортирование сцены..." @@ -3362,22 +4240,67 @@ msgid "" "%s: Texture detected as used as a normal map in 3D. Enabling red-green " "texture compression to reduce memory usage (blue channel is discarded)." msgstr "" -"%s: Выбранная текстура используется как карта нормалей в 3D. Включено красно-" -"зелёное сжатие текстуры для уменьшения использования памяти (синий канал " +"%s: Текстура используется как карта нормалей в 3D. Включено красно-зелёное " +"сжатие текстуры для уменьшения использования памяти (синий канал " "отбрасывается)." +msgid "2D/3D (Auto-Detect)" +msgstr "2D/3D (Автоопределение)" + msgid "2D" msgstr "2D" msgid "3D" msgstr "3D" +msgid "<Unnamed Material>" +msgstr "<Безымянный материал>" + +msgid "Import ID: %s" +msgstr "ID импорта: %s" + +msgid "" +"Type: %s\n" +"Import ID: %s" +msgstr "" +"Тип: %s\n" +"ID импорта: %s" + +msgid "Error opening scene" +msgstr "Ошибка при открытии сцены" + +msgid "Advanced Import Settings for AnimationLibrary '%s'" +msgstr "Расширенные настройки импорта для AnimationLibrary '%s'" + +msgid "Advanced Import Settings for Scene '%s'" +msgstr "Расширенные настройки импорта для сцены '%s'" + +msgid "Select folder to extract material resources" +msgstr "Выбрать папку для извлечения материалов" + +msgid "Extract Materials to Resource Files" +msgstr "Извлечь материалы в файлы ресурсов" + +msgid "Set paths to save animations as resource files on Reimport" +msgstr "" +"Задать пути для сохранения анимаций в виде файлов ресурсов при повторном " +"импорте" + +msgid "Actions..." +msgstr "Действия..." + +msgid "Extract Materials" +msgstr "Извлечь материалы" + msgid "Meshes" msgstr "Сетка" msgid "Materials" msgstr "Материалы" +msgid "Save Extension:" +msgstr "Расширение:" + msgid "Select Importer" msgstr "Выберите импортёр" @@ -3414,6 +4337,9 @@ msgstr "Импортировать как:" msgid "Preset" msgstr "Пресет" +msgid "Advanced..." +msgstr "Дополнительно..." + msgid "Save Scenes, Re-Import, and Restart" msgstr "Сохранить сцены, переимпортировать и перезапустить" @@ -3433,12 +4359,64 @@ msgstr "" "Выберите файл ресурса в файловой системе или в инспекторе, чтобы настроить " "параметры импорта." +msgid "No Event Configured" +msgstr "Событие не настроено" + +msgid "Keyboard Keys" +msgstr "Клавиши клавиатуры" + +msgid "Mouse Buttons" +msgstr "Кнопки мыши" + +msgid "Joypad Buttons" +msgstr "Кнопки джойстика" + +msgid "Joypad Axes" +msgstr "Оси джойстика" + +msgid "Event Configuration" +msgstr "Настройки события" + +msgid "Manual Selection" +msgstr "Ручной выбор" + +msgid "Filter Inputs" +msgstr "Фильтр ввода" + +msgid "Additional Options" +msgstr "Дополнительные опции" + msgid "Device:" msgstr "Устройство:" +msgid "Command / Control (auto)" +msgstr "Command / Control (авто)" + +msgid "" +"Automatically remaps between 'Meta' ('Command') and 'Control' depending on " +"current platform." +msgstr "" +"Автоматическое переключение между «Meta» («Command») и «Control» в " +"зависимости от текущей платформы." + +msgid "" +"The following resources will be duplicated and embedded within this resource/" +"object." +msgstr "" +"Следующие ресурсы будут продублированы и встроены в этот ресурс/объект." + +msgid "This object has no resources." +msgstr "Этот объект не имеет ресурсов." + msgid "Failed to load resource." msgstr "Не удалось загрузить ресурс." +msgid "(Current)" +msgstr "(Текущий)" + +msgid "Expand Non-Default" +msgstr "Развернуть изменённые" + msgid "Property Name Style" msgstr "Стиль имени свойства" @@ -3535,20 +4513,48 @@ msgstr "Переназначить в локали:" msgid "Locale" msgstr "Локаль" +msgid "POT Generation" +msgstr "Генерация POT" + +msgid "Files with translation strings:" +msgstr "Файлы со строками перевода:" + +msgid "Generate POT" +msgstr "Сгенерировать POT" + +msgid "Set %s on %d nodes" +msgstr "Задать %s на %d узлах" + +msgid "%s (%d Selected)" +msgstr "%s (%d выбрано)" + msgid "Select a single node to edit its signals and groups." -msgstr "Выберите один узел для редактирования сигналов и групп." +msgstr "Выберите один узел для редактирования его сигналов и групп." + +msgid "Plugin name cannot be blank." +msgstr "Имя плагина не может быть пустым." + +msgid "Script extension must match chosen language extension (.%s)." +msgstr "" +"Расширение скрипта должно соответствовать расширению выбранного языка (.%s)." + +msgid "Subfolder name is not a valid folder name." +msgstr "Имя подпапки не является допустимым именем папки." + +msgid "Subfolder cannot be one which already exists." +msgstr "Подпапка с данным именем уже существует." msgid "Edit a Plugin" msgstr "Редактировать плагин" msgid "Create a Plugin" -msgstr "Создать дополнение" +msgstr "Создать плагин" msgid "Update" -msgstr "Обновление" +msgstr "Обновить" msgid "Plugin Name:" -msgstr "Имя дополнения:" +msgstr "Имя плагина:" msgid "Subfolder:" msgstr "Подпапка:" @@ -3643,6 +4649,12 @@ msgstr "Выбирайте, перемещайте и создавайте то msgid "Enable snap and show grid." msgstr "Включить привязку и отображение сетки." +msgid "Sync:" +msgstr "Синхронизировать:" + +msgid "Blend:" +msgstr "Смешивание:" + msgid "Point" msgstr "Точка" @@ -3685,15 +4697,9 @@ msgstr "Удалить точки и треугольники." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Создать смесь треугольники автоматически (а не вручную)" -msgid "Blend:" -msgstr "Смешивание:" - msgid "Parameter Changed:" msgstr "Параметр изменён:" -msgid "Edit Filters" -msgstr "Редактировать фильтры" - msgid "Output node can't be added to the blend tree." msgstr "Узел вывода не может быть добавлен в дерево смешивания." @@ -3762,9 +4768,21 @@ msgstr "Добавить узел..." msgid "Enable Filtering" msgstr "Включить фильтрацию" +msgid "Library Name:" +msgstr "Имя библиотеки:" + +msgid "Animation name can't be empty." +msgstr "Имя анимации не может быть пустым." + msgid "Load Animation" msgstr "Загрузить анимацию" +msgid "Invalid AnimationLibrary file." +msgstr "Недопустимый файл AnimationLibrary." + +msgid "Invalid Animation file." +msgstr "Недопустимый файл анимации." + msgid "Animation Name:" msgstr "Название анимации:" @@ -3774,6 +4792,21 @@ msgstr "Вставленная анимация" msgid "Open in Inspector" msgstr "Открыть в инспекторе" +msgid "Paste Animation to Library from clipboard" +msgstr "Вставить анимацию в библиотеку из буфера обмена" + +msgid "Save animation library to resource on disk" +msgstr "Сохранить библиотеку анимаций в ресурс на диске" + +msgid "Copy animation to clipboard" +msgstr "Копировать анимацию в буфер обмена" + +msgid "Save animation to resource on disk" +msgstr "Сохранить анимацию в ресурс на диске" + +msgid "Edit Animation Libraries" +msgstr "Редактировать библиотеки анимаций" + msgid "Storage" msgstr "Хранилище" @@ -3807,6 +4840,9 @@ msgstr "Изменена последующая анимация" msgid "Change Blend Time" msgstr "Изменить время смешивания" +msgid "Duplicated Animation Name:" +msgstr "Повторяющееся имя анимации:" + msgid "Play selected animation backwards from current pos. (A)" msgstr "" "Воспроизвести выбранную анимацию в обратном направлении с текущей позиции. " @@ -3816,9 +4852,6 @@ msgid "Play selected animation backwards from end. (Shift+A)" msgstr "" "Воспроизвести выбранную анимацию в обратном направлении с конца. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Остановить воспроизведение анимации. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Воспроизвести выбранную анимацию сначала. (Shift+D)" @@ -3837,6 +4870,9 @@ msgstr "Инструменты анимации" msgid "Animation" msgstr "Анимация" +msgid "Manage Animations..." +msgstr "Управление анимациями..." + msgid "Edit Transitions..." msgstr "Редактировать переходы..." @@ -4026,6 +5062,9 @@ msgstr "Не удалось проверить хеш SHA-256" msgid "Asset Download Error:" msgstr "Ошибка загрузки шаблона:" +msgid "Ready to install!" +msgstr "Готово к установке!" + msgid "Downloading (%s / %s)..." msgstr "Загрузка (%s / %s)..." @@ -4210,8 +5249,29 @@ msgstr "Сгруппирован" msgid "Add Node Here" msgstr "Добавить узел сюда" +msgid "Instantiate Scene Here" +msgstr "Инстанцировать сцену здесь" + +msgid "Paste Node(s) Here" +msgstr "Вставить узел(узлы) здесь" + +msgid "Move Node(s) Here" +msgstr "Переместить узел(узлы) сюда" + +msgid "px" +msgstr "пикс" + +msgid "units" +msgstr "ед" + +msgid "Moving:" +msgstr "Перемещение:" + +msgid "Rotating:" +msgstr "Вращение:" + msgid "Scaling:" -msgstr "Масштаб:" +msgstr "Масштабирование:" msgid "" "Project Camera Override\n" @@ -4713,6 +5773,9 @@ msgstr "" "При удалённом использовании на устройстве, это работает эффективнее если " "сетевая файловая система включена." +msgid " - Variation" +msgstr " - Вариация" + msgid "Convert to CPUParticles2D" msgstr "Преобразовать в CPUParticles2D" @@ -4755,12 +5818,60 @@ msgstr "Объём" msgid "Emission Source:" msgstr "Источник излучения:" +msgid "A processor material of type 'ParticleProcessMaterial' is required." +msgstr "Требуется материал типа «ParticleProcessMaterial»." + +msgid "Convert to CPUParticles3D" +msgstr "Преобразовать в CPUParticles3D" + +msgid "Generating Visibility AABB (Waiting for Particle Simulation)" +msgstr "Создание видимого AABB (ожидание симуляции частиц)" + msgid "Generate Visibility AABB" -msgstr "Генерировать AABB" +msgstr "Генерировать видимый AABB" + +msgid "Generate AABB" +msgstr "Сгенерировать AABB" + +msgid "Low" +msgstr "Низкий" + +msgid "Moderate" +msgstr "Умеренный" + +msgid "High" +msgstr "Высокий" + +msgid "Subdivisions: %s" +msgstr "Подразделы: %s" + +msgid "Cell size: %s" +msgstr "Размер ячейки: %s" + +msgid "Video RAM size: %s MB (%s)" +msgstr "Видеопамяти RAM: %s MB (%s)" + +msgid "Bake SDF" +msgstr "Запечь SDF" + +msgid "" +"No faces detected during GPUParticlesCollisionSDF3D bake.\n" +"Check whether there are visible meshes matching the bake mask within its " +"extents." +msgstr "" +"При запекании GPUParticlesCollisionSDF3D лицевые части не обнаружены.\n" +"Проверьте, есть ли видимые меши, соответствующие маске запекания в пределах " +"ее границ." + +msgid "Select path for SDF Texture" +msgstr "Выбрать путь к SDF текстуре" msgid "Gradient Edited" msgstr "Градиент отредактирован" +msgid "Reverse/mirror gradient." +msgstr "Развернуть/отразить градиент." + msgid "Swap GradientTexture2D Fill Points" msgstr "Поменять местами точки заливки GradientTexture2D" @@ -4770,6 +5881,9 @@ msgstr "Поменять местами точки градиентной зал msgid "Toggle Grid Snap" msgstr "Переключить сетку привязки" +msgid "Configure" +msgstr "Конфигурация" + msgid "Create Occluder Polygon" msgstr "Создан затеняющий полигон" @@ -4784,6 +5898,9 @@ msgid "Failed creating lightmap images, make sure path is writable." msgstr "" "Сбой создания карты освещенности, убедитесь, что путь доступен для записи." +msgid "No editor scene root found." +msgstr "Корневая сцена редактора не найдена." + msgid "Bake Lightmaps" msgstr "Запекать карты освещения" @@ -4845,6 +5962,18 @@ msgstr "Нет полисетки для отладки." msgid "Mesh has no UV in layer %d." msgstr "Полисетка не имеет UV в слое %d." +msgid "MeshInstance3D lacks a Mesh." +msgstr "В MeshInstance3D отсутствует Mesh." + +msgid "Mesh has no surface to create outlines from." +msgstr "Mesh не имеет поверхности для создания контуров." + +msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES." +msgstr "Тип примитива Mesh не является PRIMITIVE_TRIANGLES." + +msgid "Could not create outline." +msgstr "Не удалось создать контур." + msgid "Create Outline" msgstr "Создать контур" @@ -5049,12 +6178,6 @@ msgstr "Изменить уведомитель AABB" msgid "Change Particles AABB" msgstr "Изменить AABB частиц" -msgid "Change Box Shape Extents" -msgstr "Изменить границы прямоугольника" - -msgid "Change Probe Extents" -msgstr "Изменить Probe Extents" - msgid "Change Capsule Shape Radius" msgstr "Изменить радиус капсулы" @@ -5133,6 +6256,12 @@ msgstr "Манипуляция отключена (без вставленног msgid "Animation Key Inserted." msgstr "Ключ анимации вставлен." +msgid "Objects: %d\n" +msgstr "Объекты: %d\n" + +msgid "Draw Calls: %d" +msgstr "Вызовы отрисовки: %d" + msgid "Top View." msgstr "Вид сверху." @@ -5193,6 +6322,9 @@ msgstr "Режим без теней" msgid "Shadow Atlas" msgstr "Атлас теней" +msgid "Display Advanced..." +msgstr "Показать дополнительные..." + msgid "View Environment" msgstr "Окружение" @@ -5273,6 +6405,9 @@ msgstr "Привязать узлы к полу" msgid "Couldn't find a solid floor to snap the selection to." msgstr "Не удалось найти сплошной пол, к которому можно привязать выделение." +msgid "Preview disabled." +msgstr "Превью отключено." + msgid "Use Local Space" msgstr "Использовать локальное пространство" @@ -5873,6 +7008,9 @@ msgstr "Стандартный" msgid "Connections to method:" msgstr "Подключения к методу:" +msgid "Source" +msgstr "Источник" + msgid "Target" msgstr "Цель" @@ -5995,6 +7133,9 @@ msgstr "Переход к следующей точке останова" msgid "Go to Previous Breakpoint" msgstr "Перейти к предыдущей точке останова" +msgid "Save File As" +msgstr "Сохранить файл как" + msgid "This skeleton has no bones, create some children Bone2D nodes." msgstr "У этого скелета нет костей, создайте дочерние Bone2D узлы." @@ -6016,6 +7157,9 @@ msgstr "Перезаписать позу покоя" msgid "Create physical bones" msgstr "Создать физические кости" +msgid "Export Skeleton Profile As..." +msgstr "Экспортировать профиль скелета как..." + msgid "Play IK" msgstr "Воспроизвести IK" @@ -6037,6 +7181,9 @@ msgstr "Создать LightOccluder2D" msgid "LightOccluder2D Preview" msgstr "Предпросмотр LightOccluder2D" +msgid "Can't convert a Sprite2D from a foreign scene." +msgstr "Невозможно конвертировать Sprite2D из другой сцены." + msgid "Can't convert a sprite using animation frames to mesh." msgstr "" "Не удается преобразовать спрайт использующий анимационные кадры в сетку." @@ -6097,7 +7244,7 @@ msgid "ERROR: Couldn't load frame resource!" msgstr "ОШИБКА: Невозможно загрузить кадр!" msgid "Resource clipboard is empty or not a texture!" -msgstr "Буфер обмена чист или не содержит текстуру!" +msgstr "Буфер обмена пуст или не содержит текстуру!" msgid "Paste Frame" msgstr "Вставить кадр" @@ -6120,15 +7267,15 @@ msgstr "(пусто)" msgid "Animations:" msgstr "Анимации:" -msgid "Speed:" -msgstr "Скорость:" - -msgid "Loop" -msgstr "Зациклить" +msgid "Delete Animation" +msgstr "Удалить анимацию" msgid "Animation Frames:" msgstr "Кадры анимации:" +msgid "Frame Duration:" +msgstr "Длительность кадра:" + msgid "Zoom Reset" msgstr "Сбросить масштабирование" @@ -6177,21 +7324,51 @@ msgstr "Шаг:" msgid "Styleboxes" msgstr "Стили" +msgid "1 color" +msgid_plural "{num} colors" +msgstr[0] "{num} цвет" +msgstr[1] "{num} цвета" +msgstr[2] "{num} цветов" + msgid "No colors found." msgstr "Цвета не найдены." +msgid "1 constant" +msgid_plural "{num} constants" +msgstr[0] "{num} константа" +msgstr[1] "{num} константы" +msgstr[2] "{num} констант" + msgid "No constants found." msgstr "Константы не найдены." msgid "No fonts found." msgstr "Шрифты не найдены." +msgid "1 font size" +msgid_plural "{num} font sizes" +msgstr[0] "{num} размер шрифта" +msgstr[1] "{num} размера шрифта" +msgstr[2] "{num} размеров шрифта" + msgid "No icons found." msgstr "Иконки не найдены." +msgid "1 stylebox" +msgid_plural "{num} styleboxes" +msgstr[0] "{num} стиль" +msgstr[1] "{num} стиля" +msgstr[2] "{num} стилей" + msgid "No styleboxes found." msgstr "Стили не найдены." +msgid "{num} currently selected" +msgid_plural "{num} currently selected" +msgstr[0] "{num} выбрано в данный момент" +msgstr[1] "{num} выбрано в данный момент" +msgstr[2] "{num} выбрано в данный момент" + msgid "Nothing was selected for the import." msgstr "Для импорта ничего не выбрано." @@ -6340,6 +7517,9 @@ msgstr "Добавить тип Темы" msgid "Remove Theme Type" msgstr "Удалить тип Темы" +msgid "Remove Data Type Items From Theme" +msgstr "Удалить элементы типа данных из темы" + msgid "Add Color Item" msgstr "Добавить цвет" @@ -6468,12 +7648,18 @@ msgstr "Добавить тип элемента" msgid "Add Type" msgstr "Добавить тип" +msgid "Override All Default Theme Items" +msgstr "Переопределить все элементы темы по умолчанию" + msgid "Set Variation Base Type" msgstr "Задать базовый тип вариации" msgid "Set Base Type" msgstr "Задать базовый тип" +msgid "Add a type from a list of available types or create a new one." +msgstr "Добавить тип из списка доступных типов или создать новый." + msgid "Show Default" msgstr "Показать по умолчанию" @@ -6615,15 +7801,66 @@ msgstr "Перевернуть по горизонтали" msgid "Flip Vertically" msgstr "Перевернуть по вертикали" +msgid "Painting:" +msgstr "Рисование:" + +msgid "Shift+Ctrl: Draw rectangle." +msgstr "Shift+Ctrl: Рисовать прямоугольник." + +msgid "Place Random Tile" +msgstr "Разместить случайный тайл" + msgid "Tiles" msgstr "Тайлы" +msgid "Toggle grid visibility." +msgstr "Переключить видимость сетки." + +msgid "Delete All Tile Proxies" +msgstr "Удалить все прокси тайлов" + +msgid "Global actions:" +msgstr "Глобальные действия:" + msgid "Atlas" msgstr "Атлас" +msgid "Setup" +msgstr "Настройка" + +msgid "Select tiles." +msgstr "Выделить тайлы." + +msgid "No tiles selected." +msgstr "Тайлы не выбраны." + +msgid "Paint Properties:" +msgstr "Свойства рисования:" + +msgid "Create Tiles in Non-Transparent Texture Regions" +msgstr "Создавать тайлы в непрозрачных областях текстуры" + +msgid "Remove Tiles in Fully Transparent Texture Regions" +msgstr "Удалить тайлы в полностью прозрачных областях текстуры" + msgid "Yes" msgstr "Да" +msgid "No" +msgstr "Нет" + +msgid "Add a new atlas source" +msgstr "Добавить новый исходник атласа" + +msgid "Add a Scene Tile" +msgstr "Добавить тайл-сцену" + +msgid "Scenes collection properties:" +msgstr "Свойства коллекции сцен:" + +msgid "Tile properties:" +msgstr "Свойства тайла:" + msgid "TileSet" msgstr "Набор тайлов" @@ -6659,9 +7896,15 @@ msgstr "Вы хотите удалить ветку %s?" msgid "Do you want to remove the %s remote?" msgstr "Вы хотите удалить отслеживаемую ветку %s?" +msgid "Create VCS metadata files for:" +msgstr "Создать файлы метаданных VCS для:" + msgid "Apply" msgstr "Применить" +msgid "Connect to VCS" +msgstr "Подключиться к VCS" + msgid "Remote Login" msgstr "Удалённый вход" @@ -6810,6 +8053,9 @@ msgstr "Логическое" msgid "Sampler" msgstr "Сэмплер" +msgid "[default]" +msgstr "[по умолчанию]" + msgid "Add Input Port" msgstr "Добавить входной порт" @@ -6822,6 +8068,9 @@ msgstr "Удалить входной порт" msgid "Remove Output Port" msgstr "Удалить выходной порт" +msgid "Set Parameter Name" +msgstr "Задать имя параметра" + msgid "Set Input Default Port" msgstr "Задать входной порт по умолчанию" @@ -6834,6 +8083,12 @@ msgstr "Узел(узлы) перемещён(ны)" msgid "Visual Shader Input Type Changed" msgstr "Изменен тип ввода визуального шейдера" +msgid "ParameterRef Name Changed" +msgstr "Изменено имя ParameterRef" + +msgid "Varying Name Changed" +msgstr "Изменено имя Varying" + msgid "Vertex" msgstr "Вершины" @@ -7138,12 +8393,18 @@ msgstr "Возвращает гиперболический тангенс па msgid "Finds the truncated value of the parameter." msgstr "Находит усечённое до целого значение параметра." +msgid "Converts screen UV to a SDF." +msgstr "Конвертировать UV экрана в SDF." + msgid "Perform the cubic texture lookup." msgstr "Выполняет поиск кубической текстуры." msgid "Transform function." msgstr "Функция преобразования." +msgid "Transform operator." +msgstr "Оператор преобразования." + msgid "" "Calculate the outer product of a pair of vectors.\n" "\n" @@ -7177,6 +8438,12 @@ msgstr "Вычисляет обратную трансформацию." msgid "Calculates the transpose of a transform." msgstr "Вычисляет транспонирование преобразования." +msgid "Sums two transforms." +msgstr "Суммирует два преобразования." + +msgid "Subtracts two transforms." +msgstr "Вычитает два преобразования." + msgid "Multiplies vector by transform." msgstr "Умножает вектор на преобразование." @@ -7343,6 +8610,12 @@ msgstr "Пожалуйста, выберите файл «project.godot» или msgid "This directory already contains a Godot project." msgstr "Этот каталог уже содержит проект Godot." +msgid "" +"The selected path is not empty. Choosing an empty folder is highly " +"recommended." +msgstr "" +"Выбранный путь не пуст. Настоятельно рекомендуется выбрать пустую папку." + msgid "New Game Project" msgstr "Новый игровой проект" @@ -7361,12 +8634,80 @@ msgstr "По этому пути уже существует папка с ук msgid "It would be a good idea to name your project." msgstr "Было бы неплохо назвать ваш проект." +msgid "Supports desktop platforms only." +msgstr "Поддерживает только настольные платформы." + +msgid "Advanced 3D graphics available." +msgstr "Доступна расширенная 3D-графика." + +msgid "Can scale to large complex scenes." +msgstr "Может масштабироваться до больших сложных сцен." + +msgid "Uses RenderingDevice backend." +msgstr "Использует бэкенд RenderingDevice." + +msgid "Slower rendering of simple scenes." +msgstr "Более медленный рендеринг простых сцен." + +msgid "Supports desktop + mobile platforms." +msgstr "Поддерживает настольные и мобильные платформы." + +msgid "Less advanced 3D graphics." +msgstr "Менее продвинутая 3D-графика." + +msgid "Less scalable for complex scenes." +msgstr "Менее масштабируемый для сложных сцен." + +msgid "Fast rendering of simple scenes." +msgstr "Быстрый рендеринг простых сцен." + +msgid "Supports desktop, mobile + web platforms." +msgstr "Поддерживает настольные, мобильные и веб-платформы." + +msgid "Least advanced 3D graphics (currently work-in-progress)." +msgstr "Наименее продвинутая 3D-графика (в настоящее время в разработке)." + +msgid "Intended for low-end/older devices." +msgstr "Предназначен для бюджетных/старых устройств." + +msgid "Uses OpenGL 3 backend (OpenGL 3.3/ES 3.0/WebGL2)." +msgstr "Использует бэкенд OpenGL 3 (OpenGL 3.3/ES 3.0/WebGL2)." + +msgid "Fastest rendering of simple scenes." +msgstr "Самый быстрый рендеринг простых сцен." + msgid "Invalid project path (changed anything?)." msgstr "Неверный путь к проекту (Что-то изменили?)." +msgid "" +"Couldn't load project at '%s' (error %d). It may be missing or corrupted." +msgstr "" +"Не удалось загрузить проект в «%s» (ошибка %d). Он может отсутствовать или " +"быть повреждён." + +msgid "Couldn't save project at '%s' (error %d)." +msgstr "Не удалось сохранить проект в «%s» (ошибка %d)." + +msgid "Warning: This folder is not empty" +msgstr "Предупреждение: Эта папка не пуста" + +msgid "" +"You are about to create a Godot project in a non-empty folder.\n" +"The entire contents of this folder will be imported as project resources!\n" +"\n" +"Are you sure you wish to continue?" +msgstr "" +"Вы собираетесь создать проект Godot в непустой папке.\n" +"Всё содержимое этой папки будет импортировано как ресурсы проекта!\n" +"\n" +"Вы уверены, что хотите продолжить?" + msgid "Couldn't create project.godot in project path." msgstr "Не удалось создать project.godot в папке проекта." +msgid "Couldn't create icon.svg in project path." +msgstr "Не удалось создать icon.svg в папке проекта." + msgid "Error opening package file, not in ZIP format." msgstr "Ошибка при открытии файла пакета, не в формате zip." @@ -7409,6 +8750,14 @@ msgstr "Путь установки проекта:" msgid "Renderer:" msgstr "Отрисовщик:" +msgid "The renderer can be changed later, but scenes may need to be adjusted." +msgstr "" +"Отрисовщик может быть изменён позже, но сцены могут потребовать " +"корректировки." + +msgid "Version Control Metadata:" +msgstr "Метаданные контроля версий:" + msgid "Missing Project" msgstr "Отсутствующий проект" @@ -7428,13 +8777,164 @@ msgid "Can't open project at '%s'." msgstr "Не удаётся открыть проект в «%s»." msgid "" +"You requested to open %d projects in parallel. Do you confirm?\n" +"Note that usual checks for engine version compatibility will be bypassed." +msgstr "" +"Вы запросили параллельное открытие %d проектов. Вы уверены?\n" +"Обратите внимание, что обычные проверки совместимости версий движка будут " +"пропущены." + +msgid "" +"The selected project \"%s\" does not specify its supported Godot version in " +"its configuration file (\"project.godot\").\n" +"\n" +"Project path: %s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" +"В файле конфигурации («project.godot») выбранного проекта «%s» не указана " +"поддерживаемая версия Godot.\n" +"\n" +"Путь проекта: %s\n" +"\n" +"Если вы продолжите открытие проекта, то файл конфигурации будет преобразован " +"в формат текущей версии Godot.\n" +"\n" +"Предупреждение: Вы больше не сможете открыть проект в предыдущих версиях " +"движка." + +msgid "" +"The selected project \"%s\" was generated by Godot 3.x, and needs to be " +"converted for Godot 4.x.\n" +"\n" +"Project path: %s\n" +"\n" +"You have three options:\n" +"- Convert only the configuration file (\"project.godot\"). Use this to open " +"the project without attempting to convert its scenes, resources and " +"scripts.\n" +"- Convert the entire project including its scenes, resources and scripts " +"(recommended if you are upgrading).\n" +"- Do nothing and go back.\n" +"\n" +"Warning: If you select a conversion option, you won't be able to open the " +"project with previous versions of the engine anymore." +msgstr "" +"Выбранный проект «%s» был создан в Godot 3.x, и должен быть конвертирован " +"для Godot 4.x.\n" +"\n" +"Путь проекта: %s\n" +"\n" +"У вас есть три варианта:\n" +"- Конвертировать только файл конфигурации («project.godot»). Выберите этот " +"вариант, чтобы открыть проект, не конвертируя его сцены, ресурсы и скрипты.\n" +"- Конвертировать весь проект, включая его сцены, ресурсы и сценарии " +"(рекомендуется, если вы обновляетесь).\n" +"- Ничего не делать и вернуться назад.\n" +"\n" +"Предупреждение: Если вы выберете опцию конвертирования, вы больше не сможете " +"открыть проект в предыдущих версиях движка." + +msgid "Convert project.godot Only" +msgstr "Конвертировать только project.godot" + +msgid "" +"The selected project \"%s\" was generated by an older engine version, and " +"needs to be converted for this version.\n" +"\n" +"Project path: %s\n" +"\n" +"Do you want to convert it?\n" +"\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" +"Выбранный проект «%s» был создан в старой версии движка и должен быть " +"конвертирован для текущей версии.\n" +"\n" +"Путь проекта: %s\n" +"\n" +"Вы хотите преобразовать его?\n" +"\n" +"Предупреждение: Вы больше не сможете открыть проект в предыдущих версиях " +"движка." + +msgid "Convert project.godot" +msgstr "Конвертировать project.godot" + +msgid "" +"Can't open project \"%s\" at the following path:\n" +"\n" +"%s\n" +"\n" +"The project settings were created by a newer engine version, whose settings " +"are not compatible with this version." +msgstr "" +"Не удалось открыть проект «%s», расположенный по следующему пути:\n" +"\n" +"%s\n" +"\n" +"Настройки проекта были созданы новой версией движка, эти настройки " +"несовместимы с текущей версией." + +msgid "" +"Warning: This project uses double precision floats, but this version of\n" +"Godot uses single precision floats. Opening this project may cause data " +"loss.\n" +"\n" +msgstr "" +"Предупреждение: В этом проекте используются плавающие числа двойной " +"точности, но эта версия\n" +"Godot использует плавающие числа одинарной точности. Открытие этого проекта " +"может привести к потере данных.\n" +"\n" + +msgid "" +"Warning: This project uses C#, but this build of Godot does not have\n" +"the Mono module. If you proceed you will not be able to use any C# scripts.\n" +"\n" +msgstr "" +"Предупреждение: Данный проект использует C#, но эта сборка Godot не имеет\n" +"модуля Mono. Если продолжить, вы не сможете использовать скрипты C#.\n" +"\n" + +msgid "" +"Warning: This project was built in Godot %s.\n" +"Opening will upgrade or downgrade the project to Godot %s.\n" +"\n" +msgstr "" +"Предупреждение: Этот проект был создан в Godot %s.\n" +"Открытие приведет к повышению или понижению версии проекта до Godot %s.\n" +"\n" + +msgid "" +"Warning: This project uses the following features not supported by this " +"build of Godot:\n" +"\n" +"%s\n" +"\n" +msgstr "" +"Предупреждение: Этот проект использует следующие возможности, не " +"поддерживаемые данной сборкой Godot:\n" +"\n" +"%s\n" +"\n" + +msgid "Open anyway? Project will be modified." +msgstr "Открыть всё равно? Проект будет изменен." + +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 "" "Невозможно запустить проект: не назначена главная сцена.\n" "Пожалуйста, отредактируйте проект и установите главную сцену в Настройках " -"проекта в категории Application." +"проекта в категории «Application»." msgid "" "Can't run project: Assets need to be imported.\n" @@ -7478,6 +8978,9 @@ msgctxt "Application" msgid "Project Manager" msgstr "Менеджер проектов" +msgid "Filter Projects" +msgstr "Фильтр проектов" + msgid "" "This field filters projects by name and last path component.\n" "To filter projects by name and full path, the query must contain at least " @@ -7490,6 +8993,9 @@ msgstr "" msgid "Loading, please wait..." msgstr "Загрузка, пожалуйста, ждите..." +msgid "Last Edited" +msgstr "Последнее изменение" + msgid "New Project" msgstr "Новый проект" @@ -7526,8 +9032,30 @@ msgstr "Удалить все" msgid "Also delete project contents (no undo!)" msgstr "Также удалить содержимое проекта (нельзя отменить!)" +msgid "" +"This option will perform full project conversion, updating scenes, resources " +"and scripts from Godot 3.x to work in Godot 4.0.\n" +"\n" +"Note that this is a best-effort conversion, i.e. it makes upgrading the " +"project easier, but it will not open out-of-the-box and will still require " +"manual adjustments.\n" +"\n" +"IMPORTANT: Make sure to backup your project before converting, as this " +"operation makes it impossible to open it in older versions of Godot." +msgstr "" +"Эта опция выполнит полное конвертирование проекта, обновив сцены, ресурсы и " +"скрипты из Godot 3.x для работы в Godot 4.0.\n" +"\n" +"Обратите внимание, что это конвертирование упрощает обновление проекта, но " +"не гарантирует его работу «из коробки», ручные корректировки всё ещё " +"необходимы.\n" +"\n" +"ВАЖНО: Обязательно сделайте резервную копию вашего проекта перед " +"конвертированием, так как эта операция делает невозможным его открытие в " +"старых версиях Godot." + msgid "Can't run project" -msgstr "Не удаётся запустить проект" +msgstr "Не удалось запустить проект" msgid "" "You currently don't have any projects.\n" @@ -7536,33 +9064,51 @@ msgstr "" "В настоящее время у вас нет никаких проектов.\n" "Хотите изучить официальные примеры в Библиотеке ресурсов?" +msgid "Add Project Setting" +msgstr "Добавить настройку проекта" + msgid "Delete Item" msgstr "Удалить элемент" +msgid "(All)" +msgstr "(Все)" + msgid "Add Input Action" -msgstr "Добавить действие" +msgstr "Добавить действие ввода" msgid "Change Action deadzone" msgstr "Изменить мёртвую зону действия" -msgid "Add Input Action Event" -msgstr "Добавить действие" - msgid "Erase Input Action" -msgstr "Удалить действие" +msgstr "Удалить действие ввода" msgid "Rename Input Action Event" -msgstr "Переименовать действие" +msgstr "Переименовать действие ввода" + +msgid "Update Input Action Order" +msgstr "Обновить порядок действий ввода" msgid "Project Settings (project.godot)" msgstr "Настройки проекта (project.godot)" +msgid "Advanced Settings" +msgstr "Расширенные настройки" + +msgid "Select a Setting or Type its Name" +msgstr "Выберите настройку или введите её имя" + +msgid "Changed settings will be applied to the editor after restarting." +msgstr "Изменённые настройки будут применены после перезапуска редактора." + msgid "Input Map" msgstr "Список действий" msgid "Localization" msgstr "Локализация" +msgid "Autoload" +msgstr "Автозагрузка" + msgid "Plugins" msgstr "Плагины" @@ -7575,9 +9121,6 @@ msgstr "Выбрать свойство" msgid "Select Virtual Method" msgstr "Выбрать виртуальный метод" -msgid "Select Method" -msgstr "Выбрать метод" - msgid "Batch Rename" msgstr "Групповое переименование" @@ -7596,6 +9139,21 @@ msgstr "Дополнительные параметры" msgid "Substitute" msgstr "Заменить" +msgid "Node name." +msgstr "Имя узла." + +msgid "Node's parent name, if available." +msgstr "Имя родительского узла, если оно доступно." + +msgid "Node type." +msgstr "Тип узла." + +msgid "Current scene name." +msgstr "Имя текущей сцены." + +msgid "Root node name." +msgstr "Имя корневого узла." + msgid "" "Sequential integer counter.\n" "Compare counter options." @@ -7610,9 +9168,15 @@ msgid "If set, the counter restarts for each group of child nodes." msgstr "" "Если установлено, счетчик перезапускается для каждой группы дочерних узлов." +msgid "Initial value for the counter." +msgstr "Начальное значение для счётчика." + msgid "Step" msgstr "Шаг" +msgid "Amount by which counter is incremented for each node." +msgstr "Значение, на которое увеличивается счётчик для каждого узла." + msgid "Padding" msgstr "Отступ" @@ -7656,12 +9220,21 @@ msgstr "На символе %s" msgid "Reparent Node" msgstr "Переподчинить узел" +msgid "Select new parent:" +msgstr "Выберите нового родителя:" + msgid "Keep Global Transform" msgstr "Сохранить глобальные преобразования" msgid "Reparent" msgstr "Переподчинить" +msgid "File name invalid." +msgstr "Недопустимое имя файла." + +msgid "Root Type:" +msgstr "Тип корня:" + msgid "2D Scene" msgstr "2D сцена" @@ -7671,6 +9244,12 @@ msgstr "3D сцена" msgid "User Interface" msgstr "Пользовательский интерфейс" +msgid "Scene Name:" +msgstr "Имя сцены:" + +msgid "Root Name:" +msgstr "Имя корня:" + msgid "Error loading scene from %s" msgstr "Ошибка при загрузке сцены из %s" @@ -7776,9 +9355,15 @@ msgstr "" msgid "Make Local" msgstr "Сделать локальным" +msgid "Enable Scene Unique Name(s)" +msgstr "Включить уникальные имена сцен" + msgid "Unique names already used by another node in the scene:" msgstr "Данное уникальное имя уже использовано у другого узла в сцене:" +msgid "Disable Scene Unique Name(s)" +msgstr "Отключить уникальные имена сцен" + msgid "New Scene Root" msgstr "Новый корень сцены" @@ -7915,8 +9500,24 @@ msgid "" "with the '%s' prefix in a node path.\n" "Click to disable this." msgstr "" -"Доступ к узлу можно получить из любой точки сцены, предшествовав ему с " -"префиксом «%s» на пути узла. Нажмите, чтобы отключить" +"Доступ к этому узлу можно получить из любого места сцены, предваряя его " +"префиксом «%s» в пути к узлу.\n" +"Нажмите, чтобы отключить это." + +msgid "Node has one connection." +msgid_plural "Node has {num} connections." +msgstr[0] "Узел имеет {num} соединение." +msgstr[1] "Узел имеет {num} соединения." +msgstr[2] "Узел имеет {num} соединений." + +msgid "Node is in this group:" +msgid_plural "Node is in the following groups:" +msgstr[0] "Узел в этой группе:" +msgstr[1] "Узел в следующих группах:" +msgstr[2] "Узел в следующих группах:" + +msgid "Click to show signals dock." +msgstr "Нажмите, чтобы показать панель сигналов." msgid "Open Script:" msgstr "Открыть скрипт:" @@ -7986,6 +9587,12 @@ msgstr "Открыть скрипт / Выбрать место" msgid "Open Script" msgstr "Открыть скрипт" +msgid "Inherit %s" +msgstr "Наследует %s" + +msgid "Inherit" +msgstr "Наследует" + msgid "File exists, it will be reused." msgstr "Файл существует, будет использован повторно." @@ -8048,6 +9655,12 @@ msgstr "Недопустимый базовый путь." msgid "Wrong extension chosen." msgstr "Выбрано неверное расширение." +msgid "Mode:" +msgstr "Режим:" + +msgid "Global shader parameter '%s' already exists'" +msgstr "Глобальный параметр шейдера «%s» уже существует" + msgid "Change Cylinder Radius" msgstr "Изменить радиус цилиндра" @@ -8090,6 +9703,9 @@ msgstr "Недопустимый формат экземпляра словар msgid "Invalid instance dictionary (invalid subclasses)" msgstr "Недопустимый экземпляр словаря (неверные подклассы)" +msgid "Path to Blender installation is valid." +msgstr "Путь к установке Blender является допустимым." + msgid "Next Plane" msgstr "Следующая поскость" @@ -8211,6 +9827,15 @@ msgstr "Размер" msgid "Network Profiler" msgstr "Сетевой профайлер" +msgid "Not possible to add a new property to synchronize without a root." +msgstr "Невозможно добавить новое свойство для синхронизации без корня." + +msgid "Spawn" +msgstr "Разместить" + +msgid "Delete Property?" +msgstr "Удалить свойство?" + msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" "Ресурс NavigationMesh должен быть установлен или создан для этого узла." @@ -8260,6 +9885,12 @@ msgstr "Анализ геометрии..." msgid "Done!" msgstr "Сделано!" +msgid "Error loading %s: %s." +msgstr "Ошибка загрузки %s: %s." + +msgid "Add an action set." +msgstr "Добавить набор действий." + msgid "Pose" msgstr "Поза" @@ -8363,25 +9994,16 @@ msgstr "Недействительный публичный ключ для ра msgid "Invalid package name:" msgstr "Недопустимое имя пакета:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "«Use Custom Build» должен быть включен для использования плагинов." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"«Export AAB» действителен только при включённой опции «Использовать " -"пользовательскую сборку»." - msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" -"\"Min SDK\" должно быть валидным целым числом, полученное \"%s\" - не " -"валидно." +"«Min SDK» должен быть значением целого типа, но получено «%s», что " +"недопустимо." msgid "" "\"Min SDK\" cannot be lower than %d, which is the version needed by the " "Godot library." msgstr "" -"\"Min SDK\" не может быть меньше чем %d - это версия требуемая Godot " -"библиотекой." +"\"Min SDK\" не может быть меньше %d версии, требуемой библиотекой Godot." msgid "" "\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." @@ -8393,8 +10015,8 @@ msgid "" "\"Target SDK\" %d is higher than the default version %d. This may work, but " "wasn't tested and may be unstable." msgstr "" -"\"Target SDK\" %d выше чем версия по умолчанию %d. Это может сработать, но " -"не тестировано и может быть не стабильным." +"«Target SDK» %d выше чем версия по умолчанию %d. Это может работать, но не " +"тестировалось и может быть нестабильным." msgid "Code Signing" msgstr "Подпись кода" @@ -8421,6 +10043,13 @@ msgstr "Не удаётся запустить исполняемый файл a msgid "'apksigner' returned with error #%d" msgstr "«apksigner» завершился с ошибкой #%d" +msgid "" +"output: \n" +"%s" +msgstr "" +"вывод: \n" +"%s" + msgid "Verifying %s..." msgstr "Проверка %s..." @@ -8443,13 +10072,6 @@ msgid "Unsupported export format!" msgstr "Неподдерживаемый формат экспорта!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Попытка сборки из пользовательского шаблона, но информации о версии для него " -"не существует. Пожалуйста, переустановите из меню «Проект»." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" @@ -8539,6 +10161,19 @@ msgstr "Символ «%s» в идентификаторе не допуска msgid "Failed to open executable file \"%s\"." msgstr "Не удалось открыть исполняемый файл \"%s\"." +msgid "Executable file header corrupted." +msgstr "Заголовок исполняемого файла поврежден." + +msgid "32-bit executables cannot have embedded data >= 4 GiB." +msgstr "" +"32-разрядные исполняемые файлы не могут иметь встроенных данных >= 4 ГБ." + +msgid "Executable \"pck\" section not found." +msgstr "Исполняемый раздел \"pck\" не найден." + +msgid "Could not create temp directory:" +msgstr "Не удалось создать временный каталог:" + msgid "Can't get filesystem access." msgstr "Не удаётся получить доступ к файловой системе." @@ -8616,6 +10251,12 @@ msgstr "" msgid "Could not start xcrun executable." msgstr "Не удаётся запустить исполняемый файл xcrun." +msgid "Built-in CodeSign failed with error \"%s\"." +msgstr "Встроенный CodeSign завершился с ошибкой \"%s\"." + +msgid "Built-in CodeSign require regex module." +msgstr "Для встроенного CodeSign требуется модуль регулярных выражений." + msgid "" "Could not start codesign executable, make sure Xcode command line tools are " "installed." @@ -8711,6 +10352,13 @@ msgstr "" "Apple Silicon." msgid "" +"Code signing: Using ad-hoc signature. The exported project will be blocked " +"by Gatekeeper" +msgstr "" +"Подписание кода: Использование ad-hoc подписи. Экспортированный проект будет " +"заблокирован Gatekeeper" + +msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." msgstr "" @@ -8801,6 +10449,9 @@ msgstr "Не удалось записать файл: \"%s\"." msgid "Could not read file: \"%s\"." msgstr "Не удалось прочитать файл: \"%s\"." +msgid "PWA" +msgstr "Прогрессивное веб-приложение" + msgid "Could not read HTML shell: \"%s\"." msgstr "Не удалось прочитать HTML-оболочку: \"%s\"." @@ -8852,6 +10503,9 @@ msgstr "Недопустимая версия файла:" msgid "Invalid product version:" msgstr "Недопустимая версия продукта:" +msgid "Windows executables cannot be >= 4 GiB." +msgstr "Исполняемые файлы Windows не могут иметь размер >= 4 ГБ." + msgid "" "This node has no shape, so it can't collide or interact with other objects.\n" "Consider adding a CollisionShape2D or CollisionPolygon2D as a child to " @@ -8874,6 +10528,12 @@ msgstr "" "Недопустимый полигон. В режиме «Segments» необходимо по крайней мере 2 точки." msgid "" +"The One Way Collision property will be ignored when the parent is an Area2D." +msgstr "" +"Свойство One Way Collision будет игнорироваться, если родителем является " +"Area2D." + +msgid "" "A shape must be provided for CollisionShape2D to function. Please create a " "shape resource for it!" msgstr "" @@ -8959,6 +10619,13 @@ msgstr "" "PathFollow2D работает только при установке его в качестве дочернего узла " "Path2D." +msgid "" +"A PhysicalBone2D only works with a Skeleton2D or another PhysicalBone2D as a " +"parent node!" +msgstr "" +"PhysicalBone2D работает только со Skeleton2D или другим PhysicalBone2D в " +"качестве родительского узла!" + msgid "Path property must point to a valid Node2D node to work." msgstr "" "Для корректной работы свойство Path должно указывать на действующий узел " @@ -8978,6 +10645,17 @@ msgstr "" "У этой кости отсутствует правильная REST-позиция. Перейдите к узлу " "Skeleton2D и установите её." +msgid "" +"CollisionPolygon3D only serves to provide a collision shape to a " +"CollisionObject3D derived node.\n" +"Please only use it as a child of Area3D, StaticBody3D, RigidBody3D, " +"CharacterBody3D, etc. to give them a shape." +msgstr "" +"CollisionPolygon3D служит формой столкновения только узлам унаследованным от " +"CollisionObject3D.\n" +"Пожалуйста используйте его только в качестве дочернего для Area3D, " +"StaticBody3D, RigidBody3D, CharacterBody3D и др. чтобы придать им форму." + msgid "Nothing is visible because no mesh has been assigned." msgstr "Ничто не видно, потому что не назначена сетка." @@ -9037,6 +10715,13 @@ msgstr "" "ЛКМ: Применить цвет\n" "ПКМ: Удалить пресет" +msgid "" +"Color: #%s\n" +"LMB: Apply color" +msgstr "" +"Цвет: #%s\n" +"ЛКМ: Применить цвет" + msgid "Pick a color from the editor window." msgstr "Выберите цвет в экране редактора." @@ -9118,6 +10803,16 @@ msgstr "" "Размер области просмотра должен быть больше или равен 2 пикселям в обоих " "измерениях, чтобы отобразить что-либо." +msgid "Unsupported BMFont texture format." +msgstr "Неподдерживаемый формат текстуры BMFont." + +msgid "" +"Shader keywords cannot be used as parameter names.\n" +"Choose another name." +msgstr "" +"Ключевые слова шейдера нельзя использовать в качестве имен параметров.\n" +"Выберите другое имя." + msgid "" "The sampler port is connected but not used. Consider changing the source to " "'SamplerPort'." @@ -9143,6 +10838,12 @@ msgstr "Повторить" msgid "Invalid comparison function for that type." msgstr "Неверная функция сравнения для этого типа." +msgid "Invalid arguments for the built-in function: \"%s(%s)\"." +msgstr "Недопустимые аргументы для встроенной функции: «%s(%s)»." + +msgid "Invalid assignment of '%s' to '%s'." +msgstr "Недопустимое присвоение «%s» в «%s»." + msgid "Varying may not be assigned in the '%s' function." msgstr "Varying не может быть задано в функции «%s»." @@ -9154,3 +10855,79 @@ msgstr "Назначить форму." msgid "Constants cannot be modified." msgstr "Константы не могут быть изменены." + +msgid "Cannot convert from '%s' to '%s'." +msgstr "Невозможно преобразовать «%s» в «%s»." + +msgid "Expected ')' in expression." +msgstr "Ожидается «)» в выражении." + +msgid "No matching constructor found for: '%s'." +msgstr "Не найден подходящий конструктор для: «%s»." + +msgid "No matching function found for: '%s'." +msgstr "Не найдена подходящая функция для: «%s»." + +msgid "Invalid arguments to unary operator '%s': %s." +msgstr "Недопустимые аргументы для унарного оператора «%s»: %s." + +msgid "Invalid argument to ternary operator: '%s'." +msgstr "Недопустимый аргумент для тернарного оператора: «%s»." + +msgid "Invalid arguments to operator '%s': '%s'." +msgstr "Недопустимые аргументы для оператора «%s»: «%s»." + +msgid "Invalid shader type. Valid types are: %s" +msgstr "Неверный тип шейдера. Допустимые типы: %s" + +msgid "Expected an identifier for render mode." +msgstr "Ожидается идентификатор режима рендеринга." + +msgid "Nested structs are not allowed." +msgstr "Вложенные структуры не допускаются." + +msgid "Expected data type." +msgstr "Ожидается тип данных." + +msgid "Expected an identifier or '['." +msgstr "Ожидался идентификатор или '['." + +msgid "Empty structs are not allowed." +msgstr "Пустые структуры не допускаются." + +msgid "The '%s' data type is not supported for uniforms." +msgstr "Тип данных '%s' не поддерживается униформами." + +msgid "Duplicated hint: '%s'." +msgstr "Дублируется подсказка: «%s»." + +msgid "Invalid argument name." +msgstr "Недопустимое имя аргумента." + +msgid "Missing condition." +msgstr "Пропущено условие." + +msgid "Condition evaluation error." +msgstr "Ошибка вычисления условия." + +msgid "The const '%s' is declared but never used." +msgstr "Константа '%s' объявлена, но не используется." + +msgid "The function '%s' is declared but never used." +msgstr "Функция '%s' объявлена, но не используется." + +msgid "The struct '%s' is declared but never used." +msgstr "Структура '%s' объявлена, но не используется." + +msgid "The uniform '%s' is declared but never used." +msgstr "Юниформа '%s' объявлена, но не используется." + +msgid "The local variable '%s' is declared but never used." +msgstr "Локальная переменная '%s' объявлена, но не используется." + +msgid "" +"The total size of the %s for this shader on this device has been exceeded " +"(%d/%d). The shader may not work correctly." +msgstr "" +"Полный размер %s для этого шейдера на этом устройстве превышает (%d/%d). " +"Шейдер может работать некорректно." diff --git a/editor/translations/editor/sk.po b/editor/translations/editor/sk.po index cbe2cbaade..5d70b699e1 100644 --- a/editor/translations/editor/sk.po +++ b/editor/translations/editor/sk.po @@ -517,9 +517,6 @@ msgstr "Odpojiť" msgid "Connect a Signal to a Method" msgstr "Pripojiť Signál k Metóde" -msgid "Edit Connection:" -msgstr "Upraviť Pripojenie:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Naozaj chcete odstrániť všetky pripojenia z \"%s\" signálu?" @@ -1289,6 +1286,9 @@ msgstr "Zmeniť veľkosť Array-u" msgid "Set Multiple:" msgstr "Nastaviť Viac:" +msgid "Edit Filters" +msgstr "Upraviť Filtre" + msgid "Language:" msgstr "Jazyk:" @@ -1753,23 +1753,6 @@ msgid "Manage Templates" msgstr "Spravovať Šablóny" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Toto pripraví vás projekt pre vlastný Android builds keď inštalujete source " -"template do \"res://android/build\".\n" -"Teraz môžete pridať modifikácie a tak vytvoriť vlastné APK na export " -"(pridávanie modulov, zmeniť AndroidManifest.xml, atď.).\n" -"Poznámka že v záujme vytvorenia vlastných zostavení namiesto použitia vopred " -"vytvorených súborov APK by mala byť v predvoľbe exportu systému Android " -"povolená možnosť \"Use Costom Build\"." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2430,6 +2413,9 @@ msgstr "Vyberte a premiestnite body, vytvorte body z RMB." msgid "Enable snap and show grid." msgstr "Povoliť prichytenie a zobraziť mriežku." +msgid "Blend:" +msgstr "Blend:" + msgid "Point" msgstr "Bod" @@ -2474,12 +2460,6 @@ msgstr "Vymazať body a trojuholníky." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Vygenerovať blend trojuholníky Automaticky (nie manuálne)" -msgid "Blend:" -msgstr "Blend:" - -msgid "Edit Filters" -msgstr "Upraviť Filtre" - msgid "Output node can't be added to the blend tree." msgstr "Nemôžete pridať output node do blend tree." @@ -2596,9 +2576,6 @@ msgstr "Spusťiť vybranú animáciu odzadu z aktuálnej pozície. (A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Spustiť vybranú animáciu odzadu z konca. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Zastaviť playback animácie. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Spustiť vybranú animáciu od začiatku. (Shift+D)" diff --git a/editor/translations/editor/sv.po b/editor/translations/editor/sv.po index e75414e9bd..bb8c623dec 100644 --- a/editor/translations/editor/sv.po +++ b/editor/translations/editor/sv.po @@ -3,12 +3,12 @@ # Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. # This file is distributed under the same license as the Godot source code. # bergmarklund <davemcgroin@gmail.com>, 2017, 2018. -# Christoffer Sundbom <christoffer_karlsson@live.se>, 2017, 2021. +# Christoffer Sundbom <christoffer_karlsson@live.se>, 2017, 2021, 2023. # Jakob Sinclair <sinclair.jakob@mailbox.org>, 2018. # . <grenoscar@gmail.com>, 2018, 2020. # Kristoffer Grundström <kristoffer.grundstrom1983@gmail.com>, 2018. # Magnus Helander <helander@fastmail.net>, 2018. -# Daniel K <danielkimblad@hotmail.com>, 2018. +# Daniel K <danielkimblad@hotmail.com>, 2018, 2023. # Toiya <elviraa98@gmail.com>, 2019. # Fredrik Welin <figgemail@gmail.com>, 2019. # Mattias Münster <mattiasmun@gmail.com>, 2019. @@ -33,8 +33,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-20 11:20+0000\n" -"Last-Translator: Ludvig Svenonius <ludvig.svenonius@protonmail.com>\n" +"PO-Revision-Date: 2023-02-09 18:26+0000\n" +"Last-Translator: Daniel K <danielkimblad@hotmail.com>\n" "Language-Team: Swedish <https://hosted.weblate.org/projects/godot-engine/" "godot/sv/>\n" "Language: sv\n" @@ -42,11 +42,172 @@ 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.15.1\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "Nollställ" + +msgid "Left Mouse Button" +msgstr "Vänster Musknapp" + +msgid "Right Mouse Button" +msgstr "Höger Musknapp" + +msgid "Middle Mouse Button" +msgstr "Mitten Musknapp" + +msgid "Mouse Wheel Up" +msgstr "Mus Scrollhjul Upp" + +msgid "Mouse Wheel Down" +msgstr "Mus Scrollhjul Ner" + +msgid "Mouse Wheel Left" +msgstr "Mus Scrollhjul Vänster" + +msgid "Mouse Wheel Right" +msgstr "Mus Scrollhjul Höger" + +msgid "Mouse Thumb Button 1" +msgstr "Tum Knapp Mus 1" + +msgid "Mouse Thumb Button 2" +msgstr "Tum Knapp Mus 2" msgid "Button" msgstr "Knapp" +msgid "Double Click" +msgstr "Dubbelklick" + +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "Musrörelse på plats (%s) med hastighet (%s)" + +msgid "Left Stick X-Axis, Joystick 0 X-Axis" +msgstr "Vänster Spak X-Axel, Joystick 0 X-Axel" + +msgid "Left Stick Y-Axis, Joystick 0 Y-Axis" +msgstr "Vänster Spak Y-Axel, Joystick 0 Y-Axel" + +msgid "Right Stick X-Axis, Joystick 1 X-Axis" +msgstr "Höger Spak X-Axel, Joystick 1 X-Axel" + +msgid "Right Stick Y-Axis, Joystick 1 Y-Axis" +msgstr "Höger Spak Y-Axel, Joystick 1 Y-Axel" + +msgid "Joystick 2 X-Axis, Left Trigger, Sony L2, Xbox LT" +msgstr "Joystick 2 X-Axel, Vänster avtryckare, Sony L2, Xbox LT" + +msgid "Joystick 2 Y-Axis, Right Trigger, Sony R2, Xbox RT" +msgstr "Joystick 2 Y-Axel, Höger Avtryckare, Sony R2, Xbox RT" + +msgid "Joystick 3 X-Axis" +msgstr "Joystick 3 X-Axel" + +msgid "Joystick 3 Y-Axis" +msgstr "Joystick 3 Y-Axel" + +msgid "Joystick 4 X-Axis" +msgstr "Joystick 4 X-Axel" + +msgid "Joystick 4 Y-Axis" +msgstr "Joystick 4 Y-Axel" + +msgid "Unknown Joypad Axis" +msgstr "Okänd Joypad Axel" + +msgid "Joypad Motion on Axis %d (%s) with Value %.2f" +msgstr "Joypadrörelse på axel %d (%s) med värde %.2f" + +msgid "Bottom Action, Sony Cross, Xbox A, Nintendo B" +msgstr "Nedre Action, Sony Kryss, Xbox A, Nintendo B" + +msgid "Right Action, Sony Circle, Xbox B, Nintendo A" +msgstr "Höger Action, Sony Cirkel, Xbox B, Nintendo A" + +msgid "Left Action, Sony Square, Xbox X, Nintendo Y" +msgstr "Vänster Action, Sony Fyrkant, Xbox X, Nintendo Y" + +msgid "Top Action, Sony Triangle, Xbox Y, Nintendo X" +msgstr "Övre Action, Sony Triangel, Xbox Y, Nintendo X" + +msgid "Back, Sony Select, Xbox Back, Nintendo -" +msgstr "Tillbaka, Sony Select, XBox Back, Nintendo -" + +msgid "Guide, Sony PS, Xbox Home" +msgstr "Guide, Sony PS, Xbox Home" + +msgid "Start, Nintendo +" +msgstr "Start, Nintendo +" + +msgid "Left Stick, Sony L3, Xbox L/LS" +msgstr "Vänster Spak, Sony L3, XBox L/LS" + +msgid "Right Stick, Sony R3, Xbox R/RS" +msgstr "Höger Spak, Sony R3, Xbox R/RS" + +msgid "Left Shoulder, Sony L1, Xbox LB" +msgstr "Vänster Kantknapp, Sony L1, Xbox LB" + +msgid "Right Shoulder, Sony R1, Xbox RB" +msgstr "Höger Kantknapp, Sony R1, Xbox RB" + +msgid "D-pad Up" +msgstr "Styrknapp Upp" + +msgid "D-pad Down" +msgstr "Styrknapp Ner" + +msgid "D-pad Left" +msgstr "Styrknapp Vänster" + +msgid "D-pad Right" +msgstr "Styrknapp Höger" + +msgid "Xbox Share, PS5 Microphone, Nintendo Capture" +msgstr "Xbox Dela-knappen, PS5 Mikrofon, Nintendo Capture" + +msgid "Xbox Paddle 1" +msgstr "Xbox Paddelknapp 1" + +msgid "Xbox Paddle 2" +msgstr "Xbox Paddelknapp 2" + +msgid "Xbox Paddle 3" +msgstr "Xbox Paddelknapp 3" + +msgid "Xbox Paddle 4" +msgstr "Xbox Paddelknapp 4" + +msgid "PS4/5 Touchpad" +msgstr "PS4/5 Pekplatta" + +msgid "touched" +msgstr "berörd" + +msgid "released" +msgstr "släppt" + +msgid "Screen %s at (%s) with %s touch points" +msgstr "Skärm %s vid (%s) med %s beröringspunkter" + +msgid "" +"Screen dragged with %s touch points at position (%s) with velocity of (%s)" +msgstr "" +"Skärm dragen med %s beröringspunkter på position (%s) med hastighet (%s)" + +msgid "Magnify Gesture at (%s) with factor %s" +msgstr "Förstoringsgest vid (%s) med faktor %s" + +msgid "Pan Gesture at (%s) with delta (%s)" +msgstr "Panoreringsgest vid (%s) med delta (%s)" + +msgid "MIDI Input on Channel=%s Message=%s" +msgstr "MIDI Inmatning på Kanel=%s Meddelande=%s" + +msgid "Input Event with Shortcut=%s" +msgstr "Inmatningshändelse med Genväg=%s" + msgid "Select" msgstr "Välj" @@ -56,6 +217,21 @@ msgstr "Avbryt" msgid "Up" msgstr "Upp" +msgid "Down" +msgstr "Ner" + +msgid "Page Up" +msgstr "Page Up" + +msgid "Page Down" +msgstr "Page Down" + +msgid "Home" +msgstr "Home" + +msgid "End" +msgstr "End" + msgid "Cut" msgstr "Klipp" @@ -71,15 +247,114 @@ msgstr "Ångra" msgid "Redo" msgstr "Återställ" +msgid "New Line" +msgstr "Ny Rad" + +msgid "New Blank Line" +msgstr "Ny Blank Rad" + +msgid "New Line Above" +msgstr "Ny Rad Ovanför" + +msgid "Backspace" +msgstr "Backsteg" + +msgid "Backspace Word" +msgstr "Backsteg Ord" + +msgid "Backspace all to Left" +msgstr "Backsteg alla till Vänster" + msgid "Delete" msgstr "Ta bort" +msgid "Delete Word" +msgstr "Ta bort Ord" + +msgid "Delete all to Right" +msgstr "Ta bort alla till Höger" + +msgid "Caret Left" +msgstr "Markör Vänster" + +msgid "Caret Word Left" +msgstr "Markör Ord Vänster" + +msgid "Caret Right" +msgstr "Markör Höger" + +msgid "Caret Word Right" +msgstr "Markör Ord Höger" + +msgid "Caret Up" +msgstr "Markör Upp" + +msgid "Caret Down" +msgstr "Markör Ner" + +msgid "Caret Line Start" +msgstr "Markör Rad Början" + +msgid "Caret Line End" +msgstr "Markör Rad Slut" + +msgid "Caret Page Up" +msgstr "Markör Sida Upp" + +msgid "Caret Page Down" +msgstr "Markör Sida Ner" + +msgid "Caret Document Start" +msgstr "Markör Dokument Början" + +msgid "Caret Document End" +msgstr "Markör Dokument Slut" + +msgid "Caret Add Below" +msgstr "Markör Lägg till Under" + +msgid "Caret Add Above" +msgstr "Markör Lägg till Ovan" + +msgid "Scroll Up" +msgstr "Rulla Upp" + +msgid "Scroll Down" +msgstr "Rulla Ner" + msgid "Select All" msgstr "Välj Alla" +msgid "Select Word Under Caret" +msgstr "Välj Ord Under Markör" + +msgid "Add Selection for Next Occurrence" +msgstr "Lägg till Val för Nästa Förekomst" + +msgid "Toggle Insert Mode" +msgstr "Växla Läge Infoga" + +msgid "Text Submitted" +msgstr "Text Skickad" + +msgid "Duplicate Nodes" +msgstr "Dubblerade Noder" + +msgid "Delete Nodes" +msgstr "Ta bort Noder" + +msgid "Go Up One Level" +msgstr "Gå Upp En Nivå" + msgid "Refresh" msgstr "Uppdatera" +msgid "Show Hidden" +msgstr "Visa Dolda" + +msgid "Swap Input Direction" +msgstr "Växla Inmatnings-riktning" + msgid "Invalid input %d (not passed) in expression" msgstr "Ogiltig inmatning %d (ej överförd) i uttrycket" @@ -122,12 +397,54 @@ msgstr "PiB" msgid "EiB" msgstr "EiB" +msgid "Example: %s" +msgstr "Exempel: %s" + +msgid "%d item" +msgid_plural "%d items" +msgstr[0] "%d föremål" +msgstr[1] "%d föremål" + +msgid "" +"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " +"'\"'" +msgstr "" +"Ogiltigt namn på handling. Det får inte vara tomt eller innehålla '/', ':', " +"'=', '\\' or '\"'" + msgid "An action with the name '%s' already exists." -msgstr "En process med namnet '%s' existerar redan." +msgstr "En Handling med namnet '%s' finns redan." + +msgid "Add Event" +msgstr "Lägg till Händelse" + +msgid "Remove Action" +msgstr "Ta bort Handling" + +msgid "Cannot Remove Action" +msgstr "Kan inte ta bort Handling" + +msgid "Edit Event" +msgstr "Redigera Händelse" + +msgid "Remove Event" +msgstr "Ta bort Händelse" + +msgid "Filter by name..." +msgstr "Filtrera efter namn..." + +msgid "Clear All" +msgstr "Rensa Alla" + +msgid "Add New Action" +msgstr "Lägg till ny Handling" msgid "Add" msgstr "Lägg till" +msgid "Show Built-in Actions" +msgstr "Visa Inbyggda Handlingar" + msgid "Action" msgstr "Åtgärd" @@ -269,12 +586,29 @@ msgstr "Ändra Animationsinterpoleringsläge" msgid "Change Animation Loop Mode" msgstr "Ändra Animationsslingläge" +msgid "" +"Compressed tracks can't be edited or removed. Re-import the animation with " +"compression disabled in order to edit." +msgstr "" +"Komprimerade spår kan inte redigeras eller tas bort. Du måste importera " +"animationen på nytt med komprimeringen inaktiverad för att kunna redigera " +"den." + msgid "Remove Anim Track" msgstr "Ta bort Anim spår" +msgid "Create new track for %s and insert key?" +msgstr "Skapa ett nytt spår för %s och infoga nyckel?" + +msgid "Create %d new tracks and insert keys?" +msgstr "Skapa %d nya spår och infoga nycklar?" + msgid "Create" msgstr "Skapa" +msgid "Animation Insert Key" +msgstr "Infoga animeringsnyckel" + msgid "node '%s'" msgstr "nod '%s'" @@ -294,6 +628,10 @@ msgstr "Ändra Animationssteg" msgid "Rearrange Tracks" msgstr "Ändra ordning på spår" +msgid "Position/Rotation/Scale 3D tracks only apply to 3D-based nodes." +msgstr "" +"3D-spår för position/rotation/skala gäller endast för 3D-baserade noder." + msgid "" "Audio tracks can only point to nodes of type:\n" "-AudioStreamPlayer\n" @@ -320,6 +658,18 @@ msgstr "Lägg till Bezier-spår" msgid "Track path is invalid, so can't add a key." msgstr "Kurva är felaktig så det går inte att skapa en nyckel." +msgid "Track is not of type Node3D, can't insert key" +msgstr "Spåret är inte av typen Node3D, kan inte infoga nyckel" + +msgid "Add Position Key" +msgstr "Lägg till positionsnyckel" + +msgid "Add Rotation Key" +msgstr "Lägg till Rotation Key" + +msgid "Add Scale Key" +msgstr "Lägg till skalningsnyckel" + msgid "Add Track Key" msgstr "Lägg till spårnyckel" @@ -329,9 +679,15 @@ msgstr "Spårväg ogiltig, kan således inte lägga till en metod nyckel." msgid "Add Method Track Key" msgstr "Lägg till metodspårnyckel" +msgid "Animation Move Keys" +msgstr "Animation Flyttknappar" + msgid "Scale" msgstr "Skala" +msgid "BlendShape" +msgstr "BlendShape" + msgid "Methods" msgstr "Metoder" @@ -344,18 +700,56 @@ msgstr "Klippbordet är tomt!" msgid "Paste Tracks" msgstr "Klistra in spår" +msgid "Animation Scale Keys" +msgstr "Tangenter för animerade skalor" + +msgid "Make Easing Keys" +msgstr "Gör lättnadstangenter" + msgid "" "This option does not work for Bezier editing, as it's only a single track." msgstr "" "Detta alternativ fungerar ej för att redigera Bezier, då det enbart är ett " "spår." +msgid "Animation Add RESET Keys" +msgstr "Animering Lägg till RESET-tangenter" + +msgid "Bake Animation as Linear keys." +msgstr "Bake Animation som linjära nycklar." + +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To modify this animation, navigate to the scene's Advanced Import settings " +"and select the animation.\n" +"Some options, including looping, are available here. To add custom tracks, " +"enable \"Save To File\" and\n" +"\"Keep Custom Tracks\"." +msgstr "" +"Denna animationen tillhör en importerad scen, så ändringar i de importerade " +"spåren kommer inte sparas.\n" +"\n" +"För att aktivera förmågan att lägga till anpassade spår, navigera till " +"scenens import inställningar och ställ in\n" +"\"Animation > Lagring\" till \"Filer\", aktivera \"Animation > Behåll " +"Anpassade Spår\", sedan importera om.\n" +"Alternativt, använd en importförinställning som importerar animationer till " +"separata filer." + msgid "Warning: Editing imported animation" msgstr "Varning: Redigerar importerad animation" msgid "Select an AnimationPlayer node to create and edit animations." msgstr "Välj en AnimationsSpelar-nod för att skapa och redigera animationer." +msgid "Imported Scene" +msgstr "Importerad Scen" + +msgid "Toggle between the bezier curve editor and track editor." +msgstr "Växla mellan redigeringen av bezierkurvor och spårredigeringen." + msgid "Only show tracks from nodes selected in tree." msgstr "Visa enbart spår från valda noder i trädet." @@ -389,6 +783,9 @@ msgstr "Skala urval" msgid "Scale From Cursor" msgstr "Skala Från Muspekare" +msgid "Make Easing Selection" +msgstr "Gör ett val för lättnader" + msgid "Duplicate Selection" msgstr "Fördubbla val" @@ -407,15 +804,30 @@ msgstr "Gå till Föregående Steg" msgid "Apply Reset" msgstr "Verkställ återställning" +msgid "Bake Animation" +msgstr "Baka Animering" + +msgid "Optimize Animation (no undo)" +msgstr "Optimera Animering (ingen ångra)" + +msgid "Clean-Up Animation (no undo)" +msgstr "Uppstädning av Animation (inget att ångra)" + msgid "Use Bezier Curves" msgstr "Använd Bezier-kurvor" msgid "Anim. Optimizer" msgstr "Anim. Optimerare" +msgid "Max. Velocity Error:" +msgstr "Max. Hastighetsfel:" + msgid "Max. Angular Error:" msgstr "Max. Vinkel-fel:" +msgid "Max. Precision Error:" +msgstr "Max. Precisionsfel:" + msgid "Optimize" msgstr "Optimera" @@ -437,12 +849,21 @@ msgstr "Städa upp" msgid "Scale Ratio:" msgstr "Skalnings förhållande:" +msgid "Select Transition and Easing" +msgstr "Välj Övergång och Lättnad" + +msgid "Anim. Baker" +msgstr "Anim. Bakare" + msgid "Select Tracks to Copy" msgstr "Välj Spår att Kopiera" msgid "Select All/None" msgstr "Välj Alla/Inga" +msgid "Animation Change Keyframe Time" +msgstr "Ändra Tidsnyckelns Tid på Animationen" + msgid "Add Audio Track Clip" msgstr "Lägg till Ljudspårsklipp" @@ -461,6 +882,16 @@ msgstr "Radnummer:" msgid "%d replaced." msgstr "%d ersatt." +msgid "%d match" +msgid_plural "%d matches" +msgstr[0] "%d matcha" +msgstr[1] "%d matchar" + +msgid "%d of %d match" +msgid_plural "%d of %d matches" +msgstr[0] "%d av %d matcha" +msgstr[1] "%d av %d matchar" + msgid "Match Case" msgstr "Matcha gemener/versaler" @@ -531,6 +962,12 @@ msgstr "Lägg till extra Call Argument:" msgid "Extra Call Arguments:" msgstr "Extra Call Argument:" +msgid "Allows to drop arguments sent by signal emitter." +msgstr "Gör det möjligt att släppa argument som skickas av signalgivaren." + +msgid "Unbind Signal Arguments:" +msgstr "Koppla bort signalargument:" + msgid "Receiver Method:" msgstr "Mottagarmetod:" @@ -561,6 +998,9 @@ msgstr "Anslut" msgid "Signal:" msgstr "Signal:" +msgid "No description." +msgstr "Ingen beskrivning." + msgid "Connect '%s' to '%s'" msgstr "Anslut '%s' till '%s'" @@ -579,27 +1019,33 @@ msgstr "Koppla från" msgid "Connect a Signal to a Method" msgstr "Anslut en Signal till en Metod" -msgid "Edit Connection:" -msgstr "Redigera Koppling:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Är du säker att du vill ta bort alla kopplingar från \"%s\" signalen?" msgid "Signals" msgstr "Signaler" +msgid "Filter Signals" +msgstr "Filtersignaler" + 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?" msgid "Disconnect All" msgstr "Koppla av alla" +msgid "Copy Name" +msgstr "Kopiera namn" + msgid "Edit..." msgstr "Ändra..." msgid "Go to Method" msgstr "Gå till metod" +msgid "Change Type of \"%s\"" +msgstr "Ändra typ av \"%s\"" + msgid "Change" msgstr "Ändra" @@ -609,6 +1055,12 @@ msgstr "Skapa Ny %s" msgid "No results for \"%s\"." msgstr "Inga resultat för \"%s\"." +msgid "This class is marked as deprecated." +msgstr "Den här klassen är markerad som inaktuell." + +msgid "This class is marked as experimental." +msgstr "Denna klass är markerad som experimentell." + msgid "No description available for %s." msgstr "Ingen beskrivning tillgänglig för %s." @@ -618,6 +1070,9 @@ msgstr "Favoriter:" msgid "Recent:" msgstr "Senaste:" +msgid "(Un)favorite selected item." +msgstr "(Av)favoritmarkerat objekt." + msgid "Search:" msgstr "Sök:" @@ -636,6 +1091,18 @@ msgstr "Kopiera Nod-Sökväg" msgid "Instance:" msgstr "Instans:" +msgid "" +"This node has been instantiated from a PackedScene file:\n" +"%s\n" +"Click to open the original file in the Editor." +msgstr "" +"Den här noden har installerats från en PackedScene-fil:\n" +"%s\n" +"Klicka för att öppna originalfilen i redigeraren." + +msgid "ms" +msgstr "ms" + msgid "Value" msgstr "Värde" @@ -672,18 +1139,57 @@ msgstr "Namn" msgid "Time" msgstr "Tid" +msgid "Fit to Frame" +msgstr "Anpassa till ram" + +msgid "Linked" +msgstr "Länkad" + +msgid "CPU" +msgstr "PROCESSOR" + +msgid "GPU" +msgstr "GPU" + +msgid "Execution resumed." +msgstr "Utförandet har återupptagits." + msgid "Warning:" msgstr "Varning:" msgid "Error:" msgstr "Fel:" -msgid "Source" -msgstr "Källa" +msgid "Stack Trace:" +msgstr "Stackspårning:" + +msgid "Debug session started." +msgstr "Felsökningssessionen har påbörjats." + +msgid "Debug session closed." +msgstr "Felsökningssessionen är avslutad." + +msgid "Line %d" +msgstr "Linje %d" + +msgid "Delete Breakpoint" +msgstr "Ta bort brytpunkt" + +msgid "Delete All Breakpoints in:" +msgstr "Ta bort alla brytpunkter i:" + +msgid "Delete All Breakpoints" +msgstr "Ta bort alla brytpunkter" msgid "C++ Source" msgstr "C++ Källa" +msgid "Filter Stack Variables" +msgstr "Filtrera stackvariabler" + +msgid "Visual Profiler" +msgstr "Visuell profilering" + msgid "Total:" msgstr "Totalt:" @@ -743,6 +1249,12 @@ msgstr "Öppna Scen" msgid "Owners of: %s (Total: %d)" msgstr "Ägare av: %s (Totalt: %d)" +msgid "Localization remap" +msgstr "Ommappning av lokalisering" + +msgid "Localization remap for path '%s' and locale '%s'." +msgstr "Lokaliseringsomvandling för sökvägen %s och språket %s." + msgid "" "Remove the selected files from the project? (Cannot be undone.)\n" "Depending on your filesystem configuration, the files will either be moved " @@ -946,6 +1458,12 @@ msgstr "Dämpa" msgid "Bypass" msgstr "Gå förbi" +msgid "Duplicate Bus" +msgstr "Duplicera buss" + +msgid "Delete Bus" +msgstr "Radera buss" + msgid "Reset Volume" msgstr "Återställ Volym" @@ -1024,18 +1542,27 @@ msgstr "Giltiga tecken:" msgid "Must not collide with an existing engine class name." msgstr "Får inte vara samma som ett befintligt engine class-namn." +msgid "Must not collide with an existing global script class name." +msgstr "Får inte vara samma som ett befintligt globalt konstant-namn." + msgid "Must not collide with an existing built-in type name." msgstr "Får inte vara samma som ett befintligt inbyggt typ-namn." msgid "Must not collide with an existing global constant name." msgstr "Får inte vara samma som ett befintligt globalt konstant-namn." +msgid "Keyword cannot be used as an Autoload name." +msgstr "Nyckelord kan inte användas som ett autoladdningsnamn." + msgid "Autoload '%s' already exists!" msgstr "Autoload '%s' finns redan!" msgid "Rename Autoload" msgstr "Byt namn på Autload" +msgid "Toggle Autoload Globals" +msgstr "Växla AutoLoad Globals" + msgid "Move Autoload" msgstr "Flytta Autoload" @@ -1048,12 +1575,18 @@ msgstr "Aktivera" msgid "Rearrange Autoloads" msgstr "Ändra ordning på Autoloads" +msgid "Can't add Autoload:" +msgstr "Kunde inte lägga till Auto laddning:" + msgid "%s is an invalid path. File does not exist." msgstr "%s är en ogiltig genväg. Filen existerar inte." msgid "%s is an invalid path. Not in resource path (res://)." msgstr "%s är en ogiltig genväg. Inte i resurs-genväg (res://)." +msgid "Add Autoload" +msgstr "Lägg till Auto laddning" + msgid "Path:" msgstr "Sökväg:" @@ -1063,12 +1596,71 @@ msgstr "Node Namn:" msgid "Global Variable" msgstr "Global variabel" +msgid "3D Engine" +msgstr "3D motor" + msgid "2D Physics" msgstr "2D-Fysik" msgid "3D Physics" msgstr "3D-Fysik" +msgid "XR" +msgstr "XR" + +msgid "RenderingDevice" +msgstr "Renderare" + +msgid "Vulkan" +msgstr "Vulkan" + +msgid "Text Server: Fallback" +msgstr "Textserver: Fallback" + +msgid "Text Server: Advanced" +msgstr "Textserver: Avancerad" + +msgid "TTF, OTF, Type 1, WOFF1 Fonts" +msgstr "TTF, OTF, Typ 1, WOFF1-teckensnitt" + +msgid "WOFF2 Fonts" +msgstr "WOFF2-teckensnitt" + +msgid "SIL Graphite Fonts" +msgstr "SIL Graphite-teckensnitt" + +msgid "Multi-channel Signed Distance Field Font Rendering" +msgstr "Rendering av tecknade distansfält med flera kanaler för teckensnitt" + +msgid "3D Nodes as well as RenderingServer access to 3D features." +msgstr "3D Noder samt RenderingServer tillgång till 3D-funktioner." + +msgid "2D Physics nodes and PhysicsServer2D." +msgstr "2D-fysiknoder och PhysicsServer2D." + +msgid "3D Physics nodes and PhysicsServer3D." +msgstr "3D-fysiknoder och PhysicsServer3D." + +msgid "Navigation, both 2D and 3D." +msgstr "Navigering, både 2D och 3D." + +msgid "XR (AR and VR)." +msgstr "XR (AR och VR)." + +msgid "" +"RenderingDevice based rendering (if disabled, the OpenGL back-end is " +"required)." +msgstr "" +"RenderingDevice-baserad rendering (om den är inaktiverad krävs OpenGL-" +"serverdelen)." + +msgid "" +"OpenGL back-end (if disabled, the RenderingDevice back-end is required)." +msgstr "OpenGL-backend (om den är inaktiverad krävs RenderingDevice-backend)." + +msgid "Vulkan back-end of RenderingDevice." +msgstr "Vulkan-back-end av RenderingDevice." + msgid "File '%s' format is invalid, import aborted." msgstr "Fil '%s''s format är ogiltig, import avbruten." @@ -1350,6 +1942,12 @@ msgstr "Egenskaper" msgid "default:" msgstr "standard:" +msgid "Constructors" +msgstr "Konstruktör" + +msgid "Operators" +msgstr "Operatorer" + msgid "Theme Properties" msgstr "Tema Egenskaper" @@ -1360,7 +1958,7 @@ msgid "Enumerations" msgstr "Uppräkningar" msgid "Property Descriptions" -msgstr "Egenskapsbeskrivningar" +msgstr "Egendomsbeskrivning" msgid "" "There is currently no description for this property. Please help us by " @@ -1369,9 +1967,15 @@ msgstr "" "Det finns för närvarande ingen beskrivning för denna egenskap. Snälla hjälp " "oss genom att [color=$color][url=$url]bidra med en[/url][/color]!" +msgid "Constructor Descriptions" +msgstr "Konstruktör beskrivning" + msgid "Method Descriptions" msgstr "Metodbeskrivning" +msgid "Operator Descriptions" +msgstr "Operator beskrivning" + msgid "%d match." msgstr "%d matcha." @@ -1402,6 +2006,9 @@ msgstr "Ändra storlek på Array" msgid "Set Multiple:" msgstr "Sätt Flera:" +msgid "Edit Filters" +msgstr "Redigera Filter" + msgid "Language:" msgstr "Språk:" @@ -2207,9 +2814,6 @@ msgstr "Triangel existerar redan." msgid "Parameter Changed:" msgstr "Parameter ändrad:" -msgid "Edit Filters" -msgstr "Redigera Filter" - msgid "Node Moved" msgstr "Nod Flyttad" @@ -2598,6 +3202,9 @@ msgstr "Kasta" msgid "Standard" msgstr "Standard" +msgid "Source" +msgstr "Källa" + msgid "" "Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." msgstr "" @@ -2648,9 +3255,6 @@ msgstr "(tom)" msgid "Animations:" msgstr "Animationer:" -msgid "Loop" -msgstr "Slinga" - msgid "Updating the editor" msgstr "Uppdaterar editorn" diff --git a/editor/translations/editor/th.po b/editor/translations/editor/th.po index 661f212c82..b93243806a 100644 --- a/editor/translations/editor/th.po +++ b/editor/translations/editor/th.po @@ -496,6 +496,9 @@ msgstr "จากสัญญาณ:" msgid "Scene does not contain any script." msgstr "ไม่มีสคริปต์ในฉาก" +msgid "Select Method" +msgstr "เลือกเมท็อด" + msgid "Remove" msgstr "ลบ" @@ -551,9 +554,6 @@ msgstr "ลบการเชื่อมโยง" msgid "Connect a Signal to a Method" msgstr "เชื่อมต่อสัญญาณไปยังเมธอด" -msgid "Edit Connection:" -msgstr "แก้ไขการเชื่อมต่อ:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "คุณแน่ใจหรือว่าจะลบการเชื่อมต่อทั้งหมดจากสัญญาณ \"%s\"?" @@ -674,30 +674,15 @@ msgstr "คำเตือน:" msgid "Error:" msgstr "ผิดพลาด:" -msgid "C++ Error" -msgstr "C++ ผิดพลาด" - -msgid "C++ Error:" -msgstr "C++ ผิดพลาด:" - -msgid "Source" -msgstr "ต้นฉบับ" - -msgid "C++ Source" -msgstr "C++ ต้นฉบับ" - -msgid "Source:" -msgstr "ต้นฉบับ:" - -msgid "C++ Source:" -msgstr "C++ ต้นฉบับ:" - msgid "Stack Trace" msgstr "แทร็กสแตค" msgid "Copy Error" msgstr "คัดลอกผิดพลาด" +msgid "C++ Source" +msgstr "C++ ต้นฉบับ" + msgid "Video RAM" msgstr "หน่วยความจำวีดีโอ" @@ -1514,12 +1499,12 @@ msgstr "แสดงทุกภูมิภาค" msgid "Show Selected Locales Only" msgstr "แสดงเฉพาะภภายในเท่านั้น" +msgid "Edit Filters" +msgstr "แก้ไขตัวกรอง" + msgid "Language:" msgstr "ภาษา:" -msgid "Script" -msgstr "สคริปต์" - msgid "Clear Output" msgstr "เคลียร์เอาต์พุต" @@ -1962,22 +1947,6 @@ msgid "Manage Templates" msgstr "จัดการเทมเพลต" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"นี่จะตั้งค่าโปรเจคต์ของคุณสำหรับการสร้างสำหรับ Android ที่กำหนดเอง " -"โดยการติดตั้งเทมเพลตต้นฉบับไปยัง \"res: // android / build\"\n" -"คุณสามารถปรับเปลี่ยนและสร้าง APK แบบกำหนดเองสำหรับส่งออก (เพิ่มโมดูล, เปลี่ยน " -"AndroidManifest.xml เป็นต้น)\n" -"โปรดทราบว่าในการสร้างแบบกำหนดเองแทนที่จะใช้ APK ที่สร้างไว้ล่วงหน้า ควรเปิดใช้ตัวเลือก " -"\"Use Custom Build\" ในพรีเซ็ตการส่งออกของ Android" - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2766,6 +2735,9 @@ msgstr "เลือกหรือเลื่อนจุด สร้าง msgid "Enable snap and show grid." msgstr "เปิกการใช้งานการเข้าหาแลแสดงเส้นกริด" +msgid "Blend:" +msgstr "ผสม:" + msgid "Point" msgstr "จุด" @@ -2808,12 +2780,6 @@ msgstr "ลบจุดและสามเหลี่ยม" msgid "Generate blend triangles automatically (instead of manually)" msgstr "สร้างสามเหลี่ยม blend อัตโนมัติ (แทนที่การสร้างแบบปกติ)" -msgid "Blend:" -msgstr "ผสม:" - -msgid "Edit Filters" -msgstr "แก้ไขตัวกรอง" - msgid "Output node can't be added to the blend tree." msgstr "โหนดเอาซ์พุตไม่สามารถเพิ่มไปยัง blend tree" @@ -2927,9 +2893,6 @@ msgstr "เล่นแอนิเมชันที่เลือกย้อ msgid "Play selected animation backwards from end. (Shift+A)" msgstr "เล่นแอนิเมชันที่เลือกย้อนหลังจากท้ายสุด (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "หยุดการเล่นแอนิเมชัน (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "เล่นแอนิเมชันที่เลือกจากเริ่มต้น (Shift+D)" @@ -3950,12 +3913,6 @@ msgstr "แก้ไข Notifier AABB" msgid "Change Particles AABB" msgstr "แก้ไข Particles AABB" -msgid "Change Box Shape Extents" -msgstr "ปรับขนาดทรงสี่เหลี่ยม" - -msgid "Change Probe Extents" -msgstr "แก้ไขขนาด Probe" - msgid "Change Capsule Shape Radius" msgstr "ปรับรัศมีทรงแคปซูล" @@ -4671,6 +4628,9 @@ msgstr "มาตรฐาน" msgid "Connections to method:" msgstr "เชื่อมไปยังเมธอด:" +msgid "Source" +msgstr "ต้นฉบับ" + msgid "Target" msgstr "เป้าหมาย" @@ -4891,12 +4851,6 @@ msgstr "(ว่างเปล่า)" msgid "Animations:" msgstr "แอนิเมชัน:" -msgid "Speed:" -msgstr "ความเร็ว:" - -msgid "Loop" -msgstr "วน" - msgid "Animation Frames:" msgstr "เฟรมแอนิเมชัน:" @@ -5743,9 +5697,6 @@ msgstr "เพิ่มการกระทำ" msgid "Change Action deadzone" msgstr "เปลี่ยน Action deadzone" -msgid "Add Input Action Event" -msgstr "เพิ่มปุ่มกดของการกระทำ" - msgid "Erase Input Action" msgstr "ลบการกระทำ" @@ -5773,9 +5724,6 @@ msgstr "เลือกคุณสมบัติ" msgid "Select Virtual Method" msgstr "เลือกเมท็อด" -msgid "Select Method" -msgstr "เลือกเมท็อด" - msgid "Batch Rename" msgstr "เปลี่ยนชื่อหลายรายการ" @@ -6426,12 +6374,6 @@ msgstr "public key ผิดพลาดสำหรับ APK expansion" msgid "Invalid package name:" msgstr "ชื่อแพ็คเกจผิดพลาด:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "\"Use Custom Build\" จำเป็นต้องเปิดการใช้งานหากจะใช้ปลั๊กอิน" - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "\"Export AAB\" จะใช้ได้เฉพาะเมื่อเปิดใช้งาน \"Use Custom Build\"" - msgid "Invalid filename! Android App Bundle requires the *.aab extension." msgstr "ชื่อไฟล์ผิดพลาด! แอนดรอยด์แอปบันเดิลจำเป็นต้องมีนามสกุล *.aab" @@ -6441,12 +6383,6 @@ msgstr "การขยาย APK เข้ากันไม่ได้กั msgid "Invalid filename! Android APK requires the *.apk extension." msgstr "ชื่อไฟล์ผิดพลาด! แอนดรอยด์ APK จำเป็นต้องมีนามสกุล *.apk" -msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"พยายามสร้างจากเทมเพลตที่สร้างขึ้นเอง แต่ไม่มีข้อมูลเวอร์ชัน โปรดติดตั้งใหม่จากเมนู \"โปรเจกต์\"" - msgid "Building Android Project (gradle)" msgstr "กำลังสร้างโปรเจคแอนดรอยด์ (gradle)" diff --git a/editor/translations/editor/tr.po b/editor/translations/editor/tr.po index 5c845faf1a..8710f48c5b 100644 --- a/editor/translations/editor/tr.po +++ b/editor/translations/editor/tr.po @@ -89,13 +89,14 @@ # Dream Drunk <myemailpoly149@gmail.com>, 2022. # alpdenthedev <ekrem_ekrem_45@hotmail.com>, 2022. # Muhammed Said Gülberk <msgulberk@gmail.com>, 2022. +# Cave Johnson <aperturelabs123@proton.me>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-12-05 10:16+0000\n" -"Last-Translator: Muhammed Said Gülberk <msgulberk@gmail.com>\n" +"PO-Revision-Date: 2023-02-09 09:37+0000\n" +"Last-Translator: Cave Johnson <aperturelabs123@proton.me>\n" "Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/" "godot/tr/>\n" "Language: tr\n" @@ -103,11 +104,35 @@ 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.15-dev\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "Belirtilmemiş" msgid "Physical" msgstr "Fiziksel" +msgid "Left Mouse Button" +msgstr "Sol Fare Düğmesi" + +msgid "Right Mouse Button" +msgstr "Sağ Fare Düğmesi" + +msgid "Middle Mouse Button" +msgstr "Orta Fare Düğmesi" + +msgid "Mouse Wheel Up" +msgstr "Fare Tekerleği Yukarı" + +msgid "Mouse Wheel Down" +msgstr "Fare Tekerleği Aşağı." + +msgid "Mouse Wheel Left" +msgstr "Sol Fare Tekerlek Düğmesi" + +msgid "Mouse Wheel Right" +msgstr "Sağ Fare Tekerlek Düğmesi" + msgid "Button" msgstr "Düğme" @@ -655,6 +680,9 @@ msgstr "Sinyaller:" msgid "Scene does not contain any script." msgstr "Sahne hiç komut içermiyor." +msgid "Select Method" +msgstr "Metot Seç" + msgid "Remove" msgstr "Kaldır" @@ -710,9 +738,6 @@ msgstr "Bağlantıyı kes" msgid "Connect a Signal to a Method" msgstr "Bir Yönteme Bir Sinyal Bağlayın" -msgid "Edit Connection:" -msgstr "Bağlantıyı Düzenle:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "" "\"%s\" sinyalinden tüm bağlantıları kaldırmak istediğinizden emin misiniz?" @@ -855,23 +880,8 @@ msgstr "Uyarılar:" msgid "Error:" msgstr "Hata:" -msgid "C++ Error" -msgstr "C++ Hatası" - -msgid "C++ Error:" -msgstr "C++ Hatası:" - -msgid "Source" -msgstr "Kaynak" - -msgid "C++ Source" -msgstr "C++ Kaynağı" - -msgid "Source:" -msgstr "Kaynak:" - -msgid "C++ Source:" -msgstr "C++ Kaynak:" +msgid "%s Error" +msgstr "%s Hatası" msgid "Stack Trace" msgstr "Bellek Dökümü" @@ -882,6 +892,9 @@ msgstr "Hatayı Kopyala" msgid "Open C++ Source on GitHub" msgstr "GitHub'da C++ Kaynağını Açın" +msgid "C++ Source" +msgstr "C++ Kaynağı" + msgid "Video RAM" msgstr "Görüntü Belleği" @@ -1847,12 +1860,12 @@ msgstr "Tüm Dilleri Göster" msgid "Show Selected Locales Only" msgstr "Sadece Seçili Dilleri Göster" +msgid "Edit Filters" +msgstr "Süzgeçleri Düzenle" + msgid "Language:" msgstr "Dil:" -msgid "Script" -msgstr "Betik" - msgid "Variant" msgstr "Varyant" @@ -2406,24 +2419,6 @@ msgid "Install from file" msgstr "Dosyadan Kur" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Bu, kaynak şablonunu \"res://android/build\" dizinine kurarak projenizi özel " -"Android derlemeleri için ayarlayacaktır.\n" -"Daha sonra dışa aktarırken değişiklikleri uygulayabilir ve kendi özel " -"APK'nızı oluşturabilirsiniz (modül ekleme, AndroidManifest.xml dosyasını " -"değiştirme vb.).\n" -"Önceden oluşturulmuş APK'ları kullanmak yerine özel derlemeler yapmak için " -"Android dışa aktarma ön ayarında \"Özel Derleme Kullan\" seçeneğinin " -"etkinleştirilmesi gerektiğini unutmayın." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2648,9 +2643,6 @@ msgstr "Kısayollar" msgid "Binding" msgstr "Bağlayıcı" -msgid "%s Error" -msgstr "%s Hatası" - msgid "All Devices" msgstr "Tüm Aygıtlar" @@ -3565,6 +3557,9 @@ msgstr "Noktaları seç ve taşı. Sağ fare düğmesi ile yeni noktalar oluştu msgid "Enable snap and show grid." msgstr "Yapıştırmayı etkinleştir ve ızgarayı göster." +msgid "Blend:" +msgstr "Karışma:" + msgid "Point" msgstr "Nokta" @@ -3607,15 +3602,9 @@ msgstr "Noktaları ve üçgenleri sil." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Otomatik üçgen harmanlayıcı oluştur (el ile)" -msgid "Blend:" -msgstr "Karışma:" - msgid "Parameter Changed:" msgstr "Parametre Değiştirildi:" -msgid "Edit Filters" -msgstr "Süzgeçleri Düzenle" - msgid "Output node can't be added to the blend tree." msgstr "Çıktı düğümü işleme ağacına eklenemiyor." @@ -3735,9 +3724,6 @@ msgstr "Seçilen animasyonu geçerli konumdan geriye doğru oynat. (A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Seçilen animasyonu geriye doğru oynat. (Shift + A)" -msgid "Stop animation playback. (S)" -msgstr "Animasyonu oynatmayı durdur. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Seçilen animasyonu başlangıç anından oynat. (ÜstKrkt + D)" @@ -4942,12 +4928,6 @@ msgstr "Bildirici Değiştir AABB" msgid "Change Particles AABB" msgstr "Parçacık AABB Değişimi" -msgid "Change Box Shape Extents" -msgstr "Kübik Şekli Genişlet" - -msgid "Change Probe Extents" -msgstr "Deşme Genişlemesini Değiştir" - msgid "Change Capsule Shape Radius" msgstr "Kapsülün Çapını Değiştir" @@ -5755,6 +5735,9 @@ msgstr "Standart" msgid "Connections to method:" msgstr "Metotlara bağlantılar:" +msgid "Source" +msgstr "Kaynak" + msgid "Target" msgstr "Hedef" @@ -5993,12 +5976,6 @@ msgstr "(boş)" msgid "Animations:" msgstr "Animasyonlar:" -msgid "Speed:" -msgstr "Hız:" - -msgid "Loop" -msgstr "Döngü" - msgid "Animation Frames:" msgstr "Animasyon Çerçeveleri:" @@ -7364,9 +7341,6 @@ msgstr "Giriş Eylemi Ekle" msgid "Change Action deadzone" msgstr "Eylem Değiştir ölübölgesi" -msgid "Add Input Action Event" -msgstr "Giriş İşlem Olayı Ekle" - msgid "Erase Input Action" msgstr "Girdi Eylemini Sil" @@ -7394,9 +7368,6 @@ msgstr "Özellik Seç" msgid "Select Virtual Method" msgstr "Sanal Metot Seç" -msgid "Select Method" -msgstr "Metot Seç" - msgid "Batch Rename" msgstr "Tümden Yeniden Adlandır" @@ -8162,15 +8133,6 @@ msgstr "APK genişletmesi için geçersiz ortak anahtar." msgid "Invalid package name:" msgstr "Geçersiz paket ismi:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" -"Eklentileri kullanabilmek için \"Özel Derleme Kullan\" seçeneği aktif olmalı." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"\"AAB Dışa Aktar\" yalnızca \"Özel Yapı Kullan\" etkinleştirildiğinde " -"geçerlidir." - msgid "Signing debug %s..." msgstr "%s hata ayıklaması imzalanıyor..." @@ -8208,13 +8170,6 @@ msgid "Unsupported export format!" msgstr "Desteklenmeyen dışa aktarım biçimi!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Özel olarak oluşturulmuş bir şablondan oluşturmaya çalışılıyor, ancak bunun " -"için sürüm bilgisi yok. Lütfen 'Proje' menüsünden yeniden yükleyin." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" diff --git a/editor/translations/editor/uk.po b/editor/translations/editor/uk.po index 4722883f7a..9c1363c20f 100644 --- a/editor/translations/editor/uk.po +++ b/editor/translations/editor/uk.po @@ -608,6 +608,9 @@ msgstr "З сигналу:" msgid "Scene does not contain any script." msgstr "У сцені немає жодного скрипту." +msgid "Select Method" +msgstr "Вибір методу" + msgid "Remove" msgstr "Вилучити" @@ -668,9 +671,6 @@ msgstr "Роз'єднати" msgid "Connect a Signal to a Method" msgstr "З'єднати сигнал із методом" -msgid "Edit Connection:" -msgstr "Редагувати з’єднання:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Ви справді хочете вилучити усі з'єднання з сигналу «%s»?" @@ -815,23 +815,8 @@ msgstr "Попередження:" msgid "Error:" msgstr "Помилка:" -msgid "C++ Error" -msgstr "Помилка C++" - -msgid "C++ Error:" -msgstr "Помилка C++:" - -msgid "Source" -msgstr "Джерело" - -msgid "C++ Source" -msgstr "Код C++" - -msgid "Source:" -msgstr "Код:" - -msgid "C++ Source:" -msgstr "Код C++:" +msgid "%s Error" +msgstr "Помилка %s" msgid "Stack Trace" msgstr "Трасування стека" @@ -842,6 +827,9 @@ msgstr "Помилка копіювання" msgid "Open C++ Source on GitHub" msgstr "Відкрити початковий код C++ на GitHub" +msgid "C++ Source" +msgstr "Код C++" + msgid "Video RAM" msgstr "Відеопам'ять" @@ -1814,12 +1802,12 @@ msgstr "Показати усі локалізації" msgid "Show Selected Locales Only" msgstr "Показати лише позначені локалізації" +msgid "Edit Filters" +msgstr "Редагувати фільтри" + msgid "Language:" msgstr "Мова:" -msgid "Script" -msgstr "Скрипт" - msgid "Variant" msgstr "Варіант" @@ -2378,23 +2366,6 @@ msgid "Install from file" msgstr "Встановити з файла" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Це налаштує ваш проєкт на використання нетипових збірок Android шляхом " -"встановлення шаблона джерела до «res://android/build».\n" -"Далі, ви можете внести зміни і зібрати власний нетиповий APK при " -"експортуванні (додаючи модулі, змінюючи AndroidManifest.xml тощо).\n" -"Зауважте, що з метою створення нетипових збірок, замість використання " -"попередньо зібраних APK, слід позначити пункт «Скористатися нетиповою " -"збіркою» у шаблоні експортування Android." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2621,9 +2592,6 @@ msgstr "Клавіатурні скорочення" msgid "Binding" msgstr "Палітурка" -msgid "%s Error" -msgstr "Помилка %s" - msgid "All Devices" msgstr "Усі пристрої" @@ -3558,6 +3526,9 @@ msgstr "" msgid "Enable snap and show grid." msgstr "Увімкнути прилипання і показати сітку." +msgid "Blend:" +msgstr "Змішувати:" + msgid "Point" msgstr "Точка" @@ -3600,15 +3571,9 @@ msgstr "Вилучити точки і трикутники." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Створити трикутники злиття автоматично (а не вручну)" -msgid "Blend:" -msgstr "Змішувати:" - msgid "Parameter Changed:" msgstr "Змінено параметр:" -msgid "Edit Filters" -msgstr "Редагувати фільтри" - msgid "Output node can't be added to the blend tree." msgstr "Вузол виведення не можна додавати до дерева злиття." @@ -3733,9 +3698,6 @@ msgstr "" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Відтворити вибрану анімацію назад з кінця. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Зупинити відтворення анімації. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Відтворити вибрану анімацію від початку. (Shift+D)" @@ -4969,12 +4931,6 @@ msgstr "Змінити AABB сповіщення" msgid "Change Particles AABB" msgstr "Змінити AABB часток" -msgid "Change Box Shape Extents" -msgstr "Змінити розміри кубічної форми" - -msgid "Change Probe Extents" -msgstr "Змінити розміри зонду" - msgid "Change Capsule Shape Radius" msgstr "Змінити радіус форми капсули" @@ -5794,6 +5750,9 @@ msgstr "Стандартний" msgid "Connections to method:" msgstr "З'єднання з методом:" +msgid "Source" +msgstr "Джерело" + msgid "Target" msgstr "Призначення" @@ -6041,12 +6000,6 @@ msgstr "(порожньо)" msgid "Animations:" msgstr "Анімації:" -msgid "Speed:" -msgstr "Швидкість:" - -msgid "Loop" -msgstr "Зациклити" - msgid "Animation Frames:" msgstr "Кадри анімації:" @@ -7481,9 +7434,6 @@ msgstr "Додати дію" msgid "Change Action deadzone" msgstr "Змінити «мертву» зону дії" -msgid "Add Input Action Event" -msgstr "Додати подію за вхідною дією" - msgid "Erase Input Action" msgstr "Витерти запис дії" @@ -7511,9 +7461,6 @@ msgstr "Вибір властивості" msgid "Select Virtual Method" msgstr "Вибір віртуального методу" -msgid "Select Method" -msgstr "Вибір методу" - msgid "Batch Rename" msgstr "Пакетне перейменування" @@ -8310,16 +8257,6 @@ msgstr "Некоректний відкритий ключ для розгорт msgid "Invalid package name:" msgstr "Некоректна назва пакунка:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" -"Щоб можна було користуватися додатками, слід позначити пункт " -"«Використовувати нетипову збірку»." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"Пункт «Експортувати AAB» є чинним, лише якщо увімкнено «Використовувати " -"нетипове збирання»." - msgid "" "\"Target SDK\" %d is higher than the default version %d. This may work, but " "wasn't tested and may be unstable." @@ -8364,14 +8301,6 @@ msgid "Unsupported export format!" msgstr "Непідтримуваний формат експортування!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Намагаємося виконати збирання на основі нетипового шаблона збирання, але не " -"виявлено даних щодо версії. Будь ласка, повторно встановіть шаблон за " -"допомогою меню «Проєкт»." - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" diff --git a/editor/translations/editor/vi.po b/editor/translations/editor/vi.po index 491c82e76f..481d9bad69 100644 --- a/editor/translations/editor/vi.po +++ b/editor/translations/editor/vi.po @@ -528,6 +528,9 @@ msgstr "Từ tín hiệu:" msgid "Scene does not contain any script." msgstr "Cảnh không chứa tập lệnh nào cả." +msgid "Select Method" +msgstr "Chọn Phương thức" + msgid "Remove" msgstr "Xóa" @@ -584,9 +587,6 @@ msgstr "Hủy kết nối" msgid "Connect a Signal to a Method" msgstr "Kết nối tín hiệu vào một hàm" -msgid "Edit Connection:" -msgstr "Chỉnh sửa kết nối:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Bạn muốn xoá tất cả kết nối từ tín hiệu \"%s\"?" @@ -701,18 +701,6 @@ msgstr "Cảnh báo:" msgid "Error:" msgstr "Lỗi:" -msgid "C++ Error" -msgstr "Lỗi C++" - -msgid "C++ Error:" -msgstr "Lỗi C++:" - -msgid "Source" -msgstr "Nguồn" - -msgid "Source:" -msgstr "Nguồn:" - msgid "Copy Error" msgstr "Sao chép lỗi" @@ -1534,12 +1522,12 @@ msgstr "Đã bỏ ghim %s" msgid "Copy Property Path" msgstr "Sao chép đường dẫn thuộc tính" +msgid "Edit Filters" +msgstr "Chỉnh sửa Lọc" + msgid "Language:" msgstr "Ngôn ngữ:" -msgid "Script" -msgstr "Tệp lệnh" - msgid "Clear Output" msgstr "Xoá đầu ra" @@ -2041,23 +2029,6 @@ msgid "Install from file" msgstr "Cài đặt từ tệp" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"Việc này sẽ thiết lập dự án của bạn cho các bản dựng Android tùy chỉnh bằng " -"cách cài đặt bản mẫu nguồn vào \"res://android/build\".\n" -"Bạn có thể áp dụng các sửa đổi và dựng tệp APK tùy chỉnh khi xuất (thêm các " -"mô đun, thay đổi AndroidManifest.xml, v.v.).\n" -"Lưu ý rằng để tạo các bản dựng tùy chỉnh thay cho tệp APK dựng sẵn, tùy chọn " -"\"Sử dụng bản dựng tùy chỉnh\" phải được bật trong thiết lập sẵn xuất sang " -"Android." - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2874,6 +2845,9 @@ msgstr "Chọn và di chuyển các điểm, chuột phải để tạo điểm. msgid "Enable snap and show grid." msgstr "Bật Dính và hiện lưới." +msgid "Blend:" +msgstr "Trộn:" + msgid "Point" msgstr "Điểm" @@ -2916,12 +2890,6 @@ msgstr "Xóa tam giác và các điểm." msgid "Generate blend triangles automatically (instead of manually)" msgstr "Tự động tạo tam giác trộn (thay vì phải vất vả thủ công)" -msgid "Blend:" -msgstr "Trộn:" - -msgid "Edit Filters" -msgstr "Chỉnh sửa Lọc" - msgid "Output node can't be added to the blend tree." msgstr "Nút đầu ra không thể thêm vào Cây Trộn." @@ -3031,9 +2999,6 @@ msgstr "Chạy hoạt ảnh đã chọn ngược lại từ vị trí hiện t msgid "Play selected animation backwards from end. (Shift+A)" msgstr "Chạy hoạt ảnh đã chọn ngược lại từ cuối. (Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "Dừng chạy lại hoạt ảnh. (S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "Chạy hoạt ảnh đã chọn từ đầu. (Shift+D)" @@ -3800,9 +3765,6 @@ msgstr "Thay đổi bán kính ánh sáng" msgid "Change Sphere Shape Radius" msgstr "Thay Đổi Bán Kính Hình Cầu" -msgid "Change Box Shape Extents" -msgstr "Chỉnh chiều dài hình hộp" - msgid "Change Capsule Shape Radius" msgstr "Chỉnh bán kính hình nhộng" @@ -4281,6 +4243,9 @@ msgstr "Chuẩn" msgid "Connections to method:" msgstr "Kết nối đến phương thức:" +msgid "Source" +msgstr "Nguồn" + msgid "Target" msgstr "Mục tiêu" @@ -4484,12 +4449,6 @@ msgstr "(trống)" msgid "Animations:" msgstr "Các hoạt hình:" -msgid "Speed:" -msgstr "Tốc độ:" - -msgid "Loop" -msgstr "Lặp" - msgid "Animation Frames:" msgstr "Khung hình hoạt hình:" @@ -5143,9 +5102,6 @@ msgstr "Tiện ích" msgid "Select Property" msgstr "Chọn Thuộc tính" -msgid "Select Method" -msgstr "Chọn Phương thức" - msgid "Prefix:" msgstr "Tiền tố:" @@ -5655,13 +5611,6 @@ msgstr "Khóa công khai của bộ APK mở rộng không hợp lệ." msgid "Invalid package name:" msgstr "Tên gói không hợp lệ:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "\"Sử dụng Bản dựng tùy chỉnh\" phải được bật để sử dụng các tiện ích." - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "" -"\"Xuất AAB\" chỉ dùng được khi \"Sử dụng Bản dựng tùy chỉnh\" được bật." - msgid "Exporting for Android" msgstr "Đang xuất sang Android" @@ -5671,13 +5620,6 @@ msgstr "Tên tệp không hợp lệ! Android App Bundle cần đuôi *.aab ở msgid "Invalid filename! Android APK requires the *.apk extension." msgstr "Tên tệp không hợp lệ! Android APK cần đuôi *.apk ở cuối." -msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"Cố gắng dựng từ một bản mẫu được dựng tùy chỉnh, nhưng không có thông tin " -"phiên bản nào tồn tại. Vui lòng cài đặt lại từ bảng chọn'Dự án'." - msgid "Building Android Project (gradle)" msgstr "Đang dựng dự án Android (gradle)" diff --git a/editor/translations/editor/zh_CN.po b/editor/translations/editor/zh_CN.po index 4f6c2e4dc6..918935ec61 100644 --- a/editor/translations/editor/zh_CN.po +++ b/editor/translations/editor/zh_CN.po @@ -58,7 +58,7 @@ # idleman <1524328475@qq.com>, 2019. # king <wangding1992@126.com>, 2019. # silentbird <silentbird520@outlook.com>, 2019. -# Haoyu Qiu <timothyqiu32@gmail.com>, 2019, 2020, 2021, 2022. +# Haoyu Qiu <timothyqiu32@gmail.com>, 2019, 2020, 2021, 2022, 2023. # Revan Ji <jiruifancr@gmail.com>, 2020. # nieyuanhong <15625988003@163.com>, 2020. # binotaliu <binota@protonmail.ch>, 2020. @@ -76,7 +76,7 @@ # twoBornottwoB <305766341@qq.com>, 2021. # Magian <magian1127@gmail.com>, 2021. # Weiduo Xie <xwditfr@gmail.com>, 2021. -# suplife <2634557184@qq.com>, 2021, 2022. +# suplife <2634557184@qq.com>, 2021, 2022, 2023. # luoji <564144019@qq.com>, 2021. # zeng haochen <m18621006730@163.com>, 2021. # Sam Sun <oppositenormal@outlook.com>, 2021. @@ -84,16 +84,19 @@ # nitenook <admin@alterbaum.net>, 2021. # jker <cxgmfy@163.com>, 2021. # Ankar <1511276198@qq.com>, 2022. -# 风青山 <idleman@yeah.net>, 2022. +# 风青山 <idleman@yeah.net>, 2022, 2023. # 1104 EXSPIRAVIT_ <m18621006730@gmail.com>, 2022. # ChairC <974833488@qq.com>, 2022. +# 赵不一 <279631638@qq.com>, 2023. +# WangYi13 <wyi13@outlook.com>, 2023. +# matrixant <yuan545@hotmail.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2022-12-28 00:54+0000\n" -"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 06:54+0000\n" +"Last-Translator: 风青山 <idleman@yeah.net>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" "Language: zh_CN\n" @@ -101,34 +104,212 @@ 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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "未设置" msgid "Physical" msgstr "物理" +msgid "Left Mouse Button" +msgstr "鼠标左键" + +msgid "Right Mouse Button" +msgstr "鼠标右键" + +msgid "Middle Mouse Button" +msgstr "鼠标中键" + +msgid "Mouse Wheel Up" +msgstr "鼠标滚轮向上" + +msgid "Mouse Wheel Down" +msgstr "鼠标滚轮向下" + +msgid "Mouse Wheel Left" +msgstr "鼠标滚轮向左" + +msgid "Mouse Wheel Right" +msgstr "鼠标滚轮向右" + +msgid "Mouse Thumb Button 1" +msgstr "鼠标拇指键 1" + +msgid "Mouse Thumb Button 2" +msgstr "鼠标拇指键 2" + msgid "Button" msgstr "按钮" +msgid "Double Click" +msgstr "双击" + +msgid "Mouse motion at position (%s) with velocity (%s)" +msgstr "鼠标移动至(%s)速度为(%s)" + +msgid "Left Stick X-Axis, Joystick 0 X-Axis" +msgstr "左摇杆 X 轴、控制杆 0 X 轴" + +msgid "Left Stick Y-Axis, Joystick 0 Y-Axis" +msgstr "左摇杆 Y 轴、控制杆 0 Y 轴" + +msgid "Right Stick X-Axis, Joystick 1 X-Axis" +msgstr "右摇杆 X 轴、控制杆 1 X 轴" + +msgid "Right Stick Y-Axis, Joystick 1 Y-Axis" +msgstr "右摇杆 Y 轴、控制杆 1 Y 轴" + +msgid "Joystick 2 X-Axis, Left Trigger, Sony L2, Xbox LT" +msgstr "控制杆 2 X 轴、左扳机、索尼 L2、Xbox LT" + +msgid "Joystick 2 Y-Axis, Right Trigger, Sony R2, Xbox RT" +msgstr "控制杆 2 Y 轴、右扳机、索尼 R2、Xbox RT" + +msgid "Joystick 3 X-Axis" +msgstr "控制杆 3 X 轴" + +msgid "Joystick 3 Y-Axis" +msgstr "控制杆 3 Y 轴" + +msgid "Joystick 4 X-Axis" +msgstr "控制杆 4 X 轴" + +msgid "Joystick 4 Y-Axis" +msgstr "控制杆 4 Y 轴" + +msgid "Unknown Joypad Axis" +msgstr "未知控制杆轴" + +msgid "Joypad Motion on Axis %d (%s) with Value %.2f" +msgstr "手柄 %d(%s)轴运动 %.2f" + +msgid "Bottom Action, Sony Cross, Xbox A, Nintendo B" +msgstr "下侧动作、索尼叉键、Xbox A、任天堂 B" + +msgid "Right Action, Sony Circle, Xbox B, Nintendo A" +msgstr "右侧动作、索尼圆圈、Xbox B、任天堂 A" + +msgid "Left Action, Sony Square, Xbox X, Nintendo Y" +msgstr "左侧动作、索尼方块、Xbox X、任天堂 Y" + +msgid "Top Action, Sony Triangle, Xbox Y, Nintendo X" +msgstr "上侧动作、索尼三角、Xbox Y、任天堂 X" + +msgid "Back, Sony Select, Xbox Back, Nintendo -" +msgstr "返回、索尼 Select、Xbox Back、任天堂 -" + +msgid "Guide, Sony PS, Xbox Home" +msgstr "指南、索尼 PS、Xbox Home" + +msgid "Start, Nintendo +" +msgstr "开始、任天堂 +" + +msgid "Left Stick, Sony L3, Xbox L/LS" +msgstr "左摇杆、索尼 L3、Xbox L/LS" + +msgid "Right Stick, Sony R3, Xbox R/RS" +msgstr "右摇杆、索尼 R3、Xbox R/RS" + +msgid "Left Shoulder, Sony L1, Xbox LB" +msgstr "左肩键、索尼 L1、Xbox LB" + +msgid "Right Shoulder, Sony R1, Xbox RB" +msgstr "右肩键、索尼 R1、Xbox RB" + +msgid "D-pad Up" +msgstr "方向键上" + +msgid "D-pad Down" +msgstr "方向键下" + +msgid "D-pad Left" +msgstr "方向键左" + +msgid "D-pad Right" +msgstr "方向键右" + +msgid "Xbox Share, PS5 Microphone, Nintendo Capture" +msgstr "Xbox 分享、PS5 麦克风、任天堂截屏" + +msgid "Xbox Paddle 1" +msgstr "Xbox 拨片 1" + +msgid "Xbox Paddle 2" +msgstr "Xbox 拨片 2" + +msgid "Xbox Paddle 3" +msgstr "Xbox 拨片 3" + +msgid "Xbox Paddle 4" +msgstr "Xbox 拨片 4" + +msgid "PS4/5 Touchpad" +msgstr "PS4/5 触控板" + +msgid "touched" +msgstr "按下" + +msgid "released" +msgstr "放开" + +msgid "Screen %s at (%s) with %s touch points" +msgstr "%s触控屏(%s)触点数量为 %s" + +msgid "" +"Screen dragged with %s touch points at position (%s) with velocity of (%s)" +msgstr "使用 %s 个触点在触控屏上拖动至(%s)速度为(%s)" + +msgid "Magnify Gesture at (%s) with factor %s" +msgstr "放大手势,位于(%s),系数为 %s" + +msgid "Pan Gesture at (%s) with delta (%s)" +msgstr "平移手势,位于(%s),增量为(%s)" + +msgid "MIDI Input on Channel=%s Message=%s" +msgstr "MIDI 输入,通道=%s,消息=%s" + +msgid "Input Event with Shortcut=%s" +msgstr "输入事件,快捷键=%s" + +msgid "Accept" +msgstr "接受" + msgid "Select" msgstr "选择" msgid "Cancel" msgstr "取消" +msgid "Focus Next" +msgstr "聚焦下一个" + +msgid "Focus Prev" +msgstr "聚焦上一个" + msgid "Left" -msgstr "左侧" +msgstr "左" msgid "Right" -msgstr "右侧" +msgstr "右" msgid "Up" -msgstr "上传" +msgstr "上" msgid "Down" -msgstr "下载" +msgstr "下" + +msgid "Page Up" +msgstr "上一页" + +msgid "Page Down" +msgstr "下一页" + +msgid "Home" +msgstr "行首" msgid "End" -msgstr "结束" +msgstr "行尾" msgid "Cut" msgstr "剪切" @@ -145,24 +326,126 @@ msgstr "撤销" msgid "Redo" msgstr "重做" +msgid "Completion Query" +msgstr "补全请求" + +msgid "New Line" +msgstr "换行" + +msgid "New Blank Line" +msgstr "新建空行" + +msgid "New Line Above" +msgstr "换行至上方" + msgid "Indent" msgstr "缩进" +msgid "Dedent" +msgstr "取消缩进" + +msgid "Backspace" +msgstr "退格" + +msgid "Backspace Word" +msgstr "退格一个单词" + +msgid "Backspace all to Left" +msgstr "退格至最左侧" + msgid "Delete" msgstr "删除" +msgid "Delete Word" +msgstr "删除一个单词" + +msgid "Delete all to Right" +msgstr "删除至最右侧" + +msgid "Caret Left" +msgstr "光标左移" + +msgid "Caret Word Left" +msgstr "光标左移一个单词" + +msgid "Caret Right" +msgstr "光标右移" + +msgid "Caret Word Right" +msgstr "光标右移一个单词" + +msgid "Caret Up" +msgstr "光标上移" + +msgid "Caret Down" +msgstr "光标下移" + +msgid "Caret Line Start" +msgstr "光标至行首" + +msgid "Caret Line End" +msgstr "光标至行尾" + +msgid "Caret Page Up" +msgstr "光标至上页" + +msgid "Caret Page Down" +msgstr "光标至下页" + +msgid "Caret Document Start" +msgstr "光标至文档开头" + +msgid "Caret Document End" +msgstr "光标至文档末尾" + +msgid "Caret Add Below" +msgstr "向下添加光标" + +msgid "Caret Add Above" +msgstr "向上添加光标" + +msgid "Scroll Up" +msgstr "向上滚动" + +msgid "Scroll Down" +msgstr "向下滚动" + msgid "Select All" msgstr "全选" +msgid "Select Word Under Caret" +msgstr "选择光标下的单词" + +msgid "Add Selection for Next Occurrence" +msgstr "将下个匹配项添加到选区" + +msgid "Clear Carets and Selection" +msgstr "清除光标和选区" + +msgid "Toggle Insert Mode" +msgstr "开关插入模式" + +msgid "Text Submitted" +msgstr "提交文本" + msgid "Duplicate Nodes" msgstr "复制节点" msgid "Delete Nodes" msgstr "删除节点" +msgid "Go Up One Level" +msgstr "向上一级" + msgid "Refresh" msgstr "刷新" +msgid "Show Hidden" +msgstr "显示隐藏文件" + +msgid "Swap Input Direction" +msgstr "交换输入方向" + msgid "Invalid input %d (not passed) in expression" msgstr "表达式的输入 %d 无效(未传递)" @@ -184,6 +467,12 @@ msgstr "构造 '%s' 的参数无效" msgid "On call to '%s':" msgstr "在调用 '%s' 时:" +msgid "Built-in script" +msgstr "内置脚本" + +msgid "Built-in" +msgstr "内置" + msgid "B" msgstr "B" @@ -205,6 +494,13 @@ msgstr "PiB" msgid "EiB" msgstr "EiB" +msgid "Example: %s" +msgstr "示例:%s" + +msgid "%d item" +msgid_plural "%d items" +msgstr[0] "%d 个项目" + msgid "" "Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'" @@ -216,9 +512,33 @@ msgstr "名为“%s”的动作已存在。" msgid "Add Event" msgstr "添加事件" +msgid "Remove Action" +msgstr "移除动作" + +msgid "Cannot Remove Action" +msgstr "无法移除动作" + +msgid "Edit Event" +msgstr "编辑事件" + +msgid "Remove Event" +msgstr "移除事件" + +msgid "Filter by name..." +msgstr "按名称筛选..." + +msgid "Clear All" +msgstr "全部清除" + +msgid "Add New Action" +msgstr "添加新动作" + msgid "Add" msgstr "添加" +msgid "Show Built-in Actions" +msgstr "显示内置动作" + msgid "Action" msgstr "动作" @@ -231,6 +551,9 @@ msgstr "时间:" msgid "Value:" msgstr "值:" +msgid "Update Selected Key Handles" +msgstr "更新所选键控制点" + msgid "Insert Key Here" msgstr "此处插入关键帧" @@ -240,24 +563,96 @@ msgstr "复制所选关键帧" msgid "Delete Selected Key(s)" msgstr "删除所选关键帧" +msgid "Make Handles Free" +msgstr "改为自由控制柄" + +msgid "Make Handles Linear" +msgstr "改为线性控制柄" + +msgid "Make Handles Balanced" +msgstr "改为平衡控制柄" + +msgid "Make Handles Mirrored" +msgstr "改为镜像控制柄" + +msgid "Make Handles Balanced (Auto Tangent)" +msgstr "改为平衡控制柄(自动切线)" + +msgid "Make Handles Mirrored (Auto Tangent)" +msgstr "改为镜像控制柄(自动切线)" + msgid "Add Bezier Point" msgstr "添加贝塞尔顶点" msgid "Move Bezier Points" msgstr "移动贝塞尔顶点" +msgid "Animation Duplicate Keys" +msgstr "复制动画关键帧" + +msgid "Animation Delete Keys" +msgstr "删除动画关键帧" + msgid "Focus" msgstr "聚焦" +msgid "Select All Keys" +msgstr "全选关键帧" + +msgid "Deselect All Keys" +msgstr "取消选择关键帧" + +msgid "Animation Change Transition" +msgstr "修改动画过渡" + +msgid "Animation Change %s" +msgstr "修改动画 %s" + +msgid "Animation Change Keyframe Value" +msgstr "修改动画关键帧的值" + +msgid "Animation Change Call" +msgstr "修改动画调用" + +msgid "Animation Multi Change Transition" +msgstr "批量修改动画过渡" + +msgid "Animation Multi Change %s" +msgstr "批量修改动画 %s" + +msgid "Animation Multi Change Keyframe Value" +msgstr "批量修改动画关键帧的值" + +msgid "Animation Multi Change Call" +msgstr "批量修改动画调用" + msgid "Change Animation Length" msgstr "修改动画长度" msgid "Change Animation Loop" msgstr "修改动画循环" +msgid "Can't change loop mode on animation instanced from imported scene." +msgstr "无法修改从导入场景中实例化的动画的循环模式。" + +msgid "Can't change loop mode on animation embedded in another scene." +msgstr "无法修改嵌入另一场景的动画的循环模式。" + msgid "Property Track" msgstr "属性轨道" +msgid "3D Position Track" +msgstr "3D 位置轨道" + +msgid "3D Rotation Track" +msgstr "3D 旋转轨道" + +msgid "3D Scale Track" +msgstr "3D 缩放轨道" + +msgid "Blend Shape Track" +msgstr "混合形状轨道" + msgid "Call Method Track" msgstr "方法调用轨道" @@ -288,6 +683,9 @@ msgstr "函数:" msgid "Audio Clips:" msgstr "音频剪辑:" +msgid "Animation Clips:" +msgstr "动画剪辑:" + msgid "Change Track Path" msgstr "修改轨道路径" @@ -295,13 +693,13 @@ msgid "Toggle this track on/off." msgstr "切换该轨道的开关。" msgid "Update Mode (How this property is set)" -msgstr "更新模式(设置属性的方式)" +msgstr "更新模式(设置该属性的方式)" msgid "Interpolation Mode" msgstr "插值模式" msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" -msgstr "无缝循环模式(使用循环开始插值循环结束)" +msgstr "无缝循环模式(循环插值尾首)" msgid "Remove this track." msgstr "移除该轨道。" @@ -318,6 +716,9 @@ msgstr "旋转:" msgid "Scale:" msgstr "缩放:" +msgid "Blend Shape:" +msgstr "混合形状:" + msgid "Type:" msgstr "类型:" @@ -333,6 +734,18 @@ msgstr "入点手柄:" msgid "Out-Handle:" msgstr "出点手柄:" +msgid "Handle mode: Free\n" +msgstr "控柄模式:自由\n" + +msgid "Handle mode: Linear\n" +msgstr "控柄模式:线性\n" + +msgid "Handle mode: Balanced\n" +msgstr "控柄模式:平衡\n" + +msgid "Handle mode: Mirrored\n" +msgstr "控柄模式:镜像\n" + msgid "Stream:" msgstr "流:" @@ -346,7 +759,7 @@ msgid "Animation Clip:" msgstr "动画剪辑:" msgid "Toggle Track Enabled" -msgstr "启用/禁用轨道" +msgstr "启用/禁用轨道" msgid "Continuous" msgstr "连续" @@ -366,8 +779,14 @@ msgstr "线性" msgid "Cubic" msgstr "三次方" +msgid "Linear Angle" +msgstr "线性角" + +msgid "Cubic Angle" +msgstr "三次角" + msgid "Clamp Loop Interp" -msgstr "切断循环插值" +msgstr "钳制循环插值" msgid "Wrap Loop Interp" msgstr "环绕循环插值" @@ -393,12 +812,26 @@ msgstr "修改动画插值模式" msgid "Change Animation Loop Mode" msgstr "修改动画循环模式" +msgid "" +"Compressed tracks can't be edited or removed. Re-import the animation with " +"compression disabled in order to edit." +msgstr "不能编辑或移除压缩的轨道。要进行编辑,请禁用压缩后重新导入动画。" + msgid "Remove Anim Track" msgstr "移除动画轨道" +msgid "Create new track for %s and insert key?" +msgstr "是否为 %s 新建轨道并插入关键帧?" + +msgid "Create %d new tracks and insert keys?" +msgstr "是否新建 %d 个轨道并插入关键帧?" + msgid "Create" msgstr "创建" +msgid "Animation Insert Key" +msgstr "插入动画关键帧" + msgid "node '%s'" msgstr "节点“%s”" @@ -417,6 +850,12 @@ msgstr "修改动画步长" msgid "Rearrange Tracks" msgstr "重新排列轨道" +msgid "Blend Shape tracks only apply to MeshInstance3D nodes." +msgstr "混合形状轨道仅应用于 MeshInstance3D 节点。" + +msgid "Position/Rotation/Scale 3D tracks only apply to 3D-based nodes." +msgstr "3D 位置/旋转/缩放轨道仅适用于 3D 节点。" + msgid "" "Audio tracks can only point to nodes of type:\n" "-AudioStreamPlayer\n" @@ -443,8 +882,20 @@ msgstr "添加贝塞尔轨道" msgid "Track path is invalid, so can't add a key." msgstr "轨道路径无效,因此无法添加关键帧。" +msgid "Track is not of type Node3D, can't insert key" +msgstr "轨道不是 Node3D 类型,无法插入关键帧" + +msgid "Add Position Key" +msgstr "添加位置关键帧" + +msgid "Add Rotation Key" +msgstr "添加旋转关键帧" + +msgid "Add Scale Key" +msgstr "添加缩放关键帧" + msgid "Add Track Key" -msgstr "添加轨道帧" +msgstr "添加轨道关键帧" msgid "Track path is invalid, so can't add a method key." msgstr "轨道路径无效,所以无法添加方法帧。" @@ -455,6 +906,9 @@ msgstr "添加方法轨道帧" msgid "Method not found in object:" msgstr "对象方法未找到:" +msgid "Animation Move Keys" +msgstr "移动动画关键帧" + msgid "Position" msgstr "位置" @@ -464,6 +918,9 @@ msgstr "旋转" msgid "Scale" msgstr "缩放" +msgid "BlendShape" +msgstr "混合形状" + msgid "Methods" msgstr "方法" @@ -479,16 +936,50 @@ msgstr "剪贴板是空的!" msgid "Paste Tracks" msgstr "粘贴轨道" +msgid "Animation Scale Keys" +msgstr "缩放动画关键帧" + +msgid "Make Easing Keys" +msgstr "改为缓动关键帧" + msgid "" "This option does not work for Bezier editing, as it's only a single track." msgstr "由于只有单一轨道,因此该选项不适用于贝塞尔编辑。" +msgid "Animation Add RESET Keys" +msgstr "添加动画 RESET 关键帧" + +msgid "Bake Animation as Linear keys." +msgstr "将动画烘焙为线性关键帧。" + +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To modify this animation, navigate to the scene's Advanced Import settings " +"and select the animation.\n" +"Some options, including looping, are available here. To add custom tracks, " +"enable \"Save To File\" and\n" +"\"Keep Custom Tracks\"." +msgstr "" +"此动画属于导入的场景,因此不会保存对导入轨道的更改。\n" +"\n" +"如果要编辑这个动画,请前往该场景的“高级导入设置”并选择该动画。\n" +"有包含循环在内的各种选项。添加自定义轨道请启用“保存为文件”\n" +"并“保留自定义轨道”。" + msgid "Warning: Editing imported animation" msgstr "警告:正在编辑导入的动画" msgid "Select an AnimationPlayer node to create and edit animations." msgstr "选择一个 AnimationPlayer 节点以创建和编辑动画。" +msgid "Imported Scene" +msgstr "导入的场景" + +msgid "Toggle between the bezier curve editor and track editor." +msgstr "在贝塞尔曲线编辑器和轨道编辑器之间进行切换。" + msgid "Only show tracks from nodes selected in tree." msgstr "仅显示在树中选中节点的轨道。" @@ -522,6 +1013,9 @@ msgstr "缩放选中项" msgid "Scale From Cursor" msgstr "通过光标缩放" +msgid "Make Easing Selection" +msgstr "缓动选中项" + msgid "Duplicate Selection" msgstr "复制选中项" @@ -540,6 +1034,18 @@ msgstr "跳到上一步" msgid "Apply Reset" msgstr "应用重置" +msgid "Bake Animation" +msgstr "烘焙动画" + +msgid "Optimize Animation (no undo)" +msgstr "优化动画(无法撤销)" + +msgid "Clean-Up Animation (no undo)" +msgstr "清理动画(无法撤销)" + +msgid "Pick a node to animate:" +msgstr "选择要设置动画的节点:" + msgid "Use Bezier Curves" msgstr "使用贝塞尔曲线" @@ -549,9 +1055,15 @@ msgstr "创建 RESET 轨道" msgid "Anim. Optimizer" msgstr "动画优化器" +msgid "Max. Velocity Error:" +msgstr "最大速度误差:" + msgid "Max. Angular Error:" msgstr "最大角度误差:" +msgid "Max. Precision Error:" +msgstr "最大精度误差:" + msgid "Optimize" msgstr "优化" @@ -573,11 +1085,20 @@ msgstr "清理" msgid "Scale Ratio:" msgstr "缩放比率:" +msgid "Select Transition and Easing" +msgstr "选择过渡和缓动" + +msgid "Anim. Baker" +msgstr "动画烘焙器" + msgid "Select Tracks to Copy" msgstr "选择要复制的轨道" msgid "Select All/None" -msgstr "全选/取消" +msgstr "全选/取消" + +msgid "Animation Change Keyframe Time" +msgstr "修改动画关键帧的时间" msgid "Add Audio Track Clip" msgstr "添加音频轨道剪辑" @@ -597,6 +1118,14 @@ msgstr "行号:" msgid "%d replaced." msgstr "已替换 %d 处。" +msgid "%d match" +msgid_plural "%d matches" +msgstr[0] "%d 个匹配" + +msgid "%d of %d match" +msgid_plural "%d of %d matches" +msgstr[0] "第 %d 个匹配,共 %d 个" + msgid "Match Case" msgstr "区分大小写" @@ -613,7 +1142,7 @@ msgid "Selection Only" msgstr "仅选中" msgid "Toggle Scripts Panel" -msgstr "切换脚本面板" +msgstr "开关脚本面板" msgid "Zoom In" msgstr "放大" @@ -653,9 +1182,18 @@ msgstr "连接到脚本:" msgid "From Signal:" msgstr "来自信号:" +msgid "Filter Nodes" +msgstr "筛选节点" + msgid "Scene does not contain any script." msgstr "场景不包含脚本。" +msgid "Select Method" +msgstr "选择方法" + +msgid "Filter Methods" +msgstr "筛选方法" + msgid "Remove" msgstr "移除" @@ -665,6 +1203,12 @@ msgstr "添加额外调用参数:" msgid "Extra Call Arguments:" msgstr "额外调用参数:" +msgid "Allows to drop arguments sent by signal emitter." +msgstr "允许丢弃由信号发送者发送的参数。" + +msgid "Unbind Signal Arguments:" +msgstr "解绑信号参数:" + msgid "Receiver Method:" msgstr "接收方法:" @@ -696,6 +1240,9 @@ msgstr "连接" msgid "Signal:" msgstr "信号:" +msgid "No description." +msgstr "无描述。" + msgid "Connect '%s' to '%s'" msgstr "将 “%s” 连接到 “%s”" @@ -714,27 +1261,33 @@ msgstr "断开连接" msgid "Connect a Signal to a Method" msgstr "连接信号到方法" -msgid "Edit Connection:" -msgstr "编辑连接:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "确定要从信号 “%s” 中移除所有连接吗?" msgid "Signals" msgstr "信号" +msgid "Filter Signals" +msgstr "筛选信号" + msgid "Are you sure you want to remove all connections from this signal?" msgstr "确定要从该信号中移除所有连接吗?" msgid "Disconnect All" msgstr "断开全部" +msgid "Copy Name" +msgstr "复制名称" + msgid "Edit..." msgstr "编辑..." msgid "Go to Method" msgstr "跳转到方法" +msgid "Change Type of \"%s\"" +msgstr "修改“%s”的类型" + msgid "Change" msgstr "更改" @@ -744,6 +1297,12 @@ msgstr "创建 %s" msgid "No results for \"%s\"." msgstr "未找到 “%s”。" +msgid "This class is marked as deprecated." +msgstr "这个类被标记为已废弃。" + +msgid "This class is marked as experimental." +msgstr "这个类被标记为实验性。" + msgid "No description available for %s." msgstr "没有针对 %s 的描述。" @@ -753,6 +1312,9 @@ msgstr "收藏:" msgid "Recent:" msgstr "最近使用:" +msgid "(Un)favorite selected item." +msgstr "收藏/取消收藏选中项。" + msgid "Search:" msgstr "搜索:" @@ -780,8 +1342,20 @@ msgstr "复制节点路径" msgid "Instance:" msgstr "实例:" +msgid "" +"This node has been instantiated from a PackedScene file:\n" +"%s\n" +"Click to open the original file in the Editor." +msgstr "" +"这个节点是从 PackedScene 文件中实例化的:\n" +"%s\n" +"点击在编辑器中打开原始文件。" + msgid "Toggle Visibility" -msgstr "切换 隐藏/可见" +msgstr "切换可见性" + +msgid "ms" +msgstr "ms" msgid "Monitors" msgstr "监视" @@ -851,6 +1425,21 @@ msgstr "时间" msgid "Calls" msgstr "调用" +msgid "Fit to Frame" +msgstr "限制到单帧" + +msgid "Linked" +msgstr "联合" + +msgid "CPU" +msgstr "CPU" + +msgid "GPU" +msgstr "GPU" + +msgid "Execution resumed." +msgstr "已恢复执行。" + msgid "Bytes:" msgstr "字节:" @@ -860,26 +1449,32 @@ msgstr "警告:" msgid "Error:" msgstr "错误:" -msgid "C++ Error" -msgstr "C++ 错误" +msgid "%s Error" +msgstr "%s 错误" -msgid "C++ Error:" -msgstr "C++ 错误:" +msgid "Stack Trace" +msgstr "栈追踪" -msgid "Source" -msgstr "来源" +msgid "Stack Trace:" +msgstr "栈追踪:" -msgid "C++ Source" -msgstr "C++ 源文件" +msgid "Debug session started." +msgstr "调试会话开始。" -msgid "Source:" -msgstr "源文件:" +msgid "Debug session closed." +msgstr "调试会话结束。" -msgid "C++ Source:" -msgstr "C++ 源文件:" +msgid "Line %d" +msgstr "行 %d" -msgid "Stack Trace" -msgstr "栈追踪" +msgid "Delete Breakpoint" +msgstr "移除断点" + +msgid "Delete All Breakpoints in:" +msgstr "移除所有断点:" + +msgid "Delete All Breakpoints" +msgstr "移除所有断点" msgid "Copy Error" msgstr "复制错误信息" @@ -887,6 +1482,9 @@ msgstr "复制错误信息" msgid "Open C++ Source on GitHub" msgstr "在 GitHub 打开 C++ 源码" +msgid "C++ Source" +msgstr "C++ 源文件" + msgid "Video RAM" msgstr "显存" @@ -908,6 +1506,9 @@ msgstr "继续" msgid "Stack Frames" msgstr "栈帧" +msgid "Filter Stack Variables" +msgstr "筛选栈变量" + msgid "Breakpoints" msgstr "断点" @@ -920,8 +1521,11 @@ msgstr "全部折叠" msgid "Profiler" msgstr "性能分析器" +msgid "Visual Profiler" +msgstr "可视分析器" + msgid "List of Video Memory Usage by Resource:" -msgstr "占用显存的资源列表:" +msgstr "显存资源占用列表:" msgid "Total:" msgstr "合计:" @@ -1009,13 +1613,19 @@ msgstr "打开场景" msgid "Owners of: %s (Total: %d)" msgstr "%s 的所有者(总计:%d)" +msgid "Localization remap" +msgstr "本地化重映射" + +msgid "Localization remap for path '%s' and locale '%s'." +msgstr "对路径“%s”和区域设置“%s”的本地化重映射。" + msgid "" "Remove the selected files from the project? (Cannot be undone.)\n" "Depending on your filesystem configuration, the files will either be moved " "to the system trash or deleted permanently." msgstr "" -"是否从项目中删除所选文件?(无法撤销。)\n" -"根据你的文件系统设置,文件会被移动至系统回收站或永久删除。" +"是否从项目中移除所选文件?(无法撤销。)\n" +"根据你的文件系统设置,文件可能会被移动至系统回收站,也可能被永久删除。" msgid "" "The files being removed are required by other resources in order for them to " @@ -1024,9 +1634,9 @@ msgid "" "Depending on your filesystem configuration, the files will either be moved " "to the system trash or deleted permanently." msgstr "" -"其他资源需要这些即将被删除的文件才能正常工作。\n" -"仍然要删除吗?(无法撤销。)\n" -"根据你的文件系统设置,文件会被移动至系统回收站或永久删除。" +"其他资源需要这些即将被移除的文件才能正常工作。\n" +"仍然要移除吗?(无法撤销。)\n" +"根据你的文件系统设置,文件可能会被移动至系统回收站,也可能被永久删除。" msgid "Cannot remove:" msgstr "无法移除:" @@ -1141,28 +1751,28 @@ msgid "Licenses" msgstr "许可证" msgid "Error opening asset file for \"%s\" (not in ZIP format)." -msgstr "打开“%s”的素材文件时出错(非 ZIP 格式)。" +msgstr "打开“%s”的资产文件时出错(非 ZIP 格式)。" msgid "%s (already exists)" msgstr "%s(已存在)" msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:" -msgstr "素材“%s”的内容 - %d 个文件与你的项目冲突:" +msgstr "资产“%s”的内容 - %d 个文件与你的项目冲突:" msgid "Contents of asset \"%s\" - No files conflict with your project:" -msgstr "素材“%s”的内容 - 没有文件与你的项目冲突:" +msgstr "资产“%s”的内容 - 没有文件与你的项目冲突:" msgid "Uncompressing Assets" -msgstr "正在解压素材" +msgstr "正在解压资产" msgid "The following files failed extraction from asset \"%s\":" -msgstr "以下文件无法从素材“%s”中提取:" +msgstr "以下文件无法从资产“%s”中提取:" msgid "(and %s more files)" msgstr "(以及其他 %s 个文件)" msgid "Asset \"%s\" installed successfully!" -msgstr "素材“%s”安装成功!" +msgstr "资产“%s”安装成功!" msgid "Success!" msgstr "成功!" @@ -1171,7 +1781,7 @@ msgid "Install" msgstr "安装" msgid "Asset Installer" -msgstr "素材安装器" +msgstr "资产安装器" msgid "Speakers" msgstr "扬声器" @@ -1221,6 +1831,12 @@ msgstr "旁通" msgid "Bus Options" msgstr "总线选项" +msgid "Duplicate Bus" +msgstr "创建总线副本" + +msgid "Delete Bus" +msgstr "删除总线" + msgid "Reset Volume" msgstr "重置音量" @@ -1308,29 +1924,41 @@ msgstr "有效字符:" msgid "Must not collide with an existing engine class name." msgstr "与引擎内置类名称冲突。" +msgid "Must not collide with an existing global script class name." +msgstr "与已存在的全局脚本类名冲突。" + msgid "Must not collide with an existing built-in type name." msgstr "与引擎内置类型名称冲突。" msgid "Must not collide with an existing global constant name." msgstr "与已存在的全局常量名称冲突。" +msgid "Keyword cannot be used as an Autoload name." +msgstr "关键字不可用作自动加载名称。" + msgid "Autoload '%s' already exists!" -msgstr "Autoload“%s”已存在!" +msgstr "自动加载“%s”已存在!" msgid "Rename Autoload" -msgstr "重命名 Autoload" +msgstr "重命名自动加载" + +msgid "Toggle Autoload Globals" +msgstr "开关自动加载全局变量" msgid "Move Autoload" -msgstr "移动 Autoload" +msgstr "移动自动加载" msgid "Remove Autoload" -msgstr "移除 Autoload" +msgstr "移除自动加载" msgid "Enable" msgstr "启用" msgid "Rearrange Autoloads" -msgstr "重排 Autoload" +msgstr "重排自动加载" + +msgid "Can't add Autoload:" +msgstr "无法添加自动加载:" msgid "%s is an invalid path. File does not exist." msgstr "%s 是无效路径。文件不存在。" @@ -1338,6 +1966,9 @@ msgstr "%s 是无效路径。文件不存在。" msgid "%s is an invalid path. Not in resource path (res://)." msgstr "%s 是无效路径。不是资源路径(res://)。" +msgid "Add Autoload" +msgstr "添加自动加载" + msgid "Path:" msgstr "路径:" @@ -1347,6 +1978,9 @@ msgstr "节点名称:" msgid "Global Variable" msgstr "全局变量" +msgid "3D Engine" +msgstr "3D 引擎" + msgid "2D Physics" msgstr "2D 物理" @@ -1356,9 +1990,108 @@ msgstr "3D 物理" msgid "Navigation" msgstr "导航" +msgid "XR" +msgstr "XR" + +msgid "RenderingDevice" +msgstr "RenderingDevice" + msgid "OpenGL" msgstr "OpenGL" +msgid "Vulkan" +msgstr "Vulkan" + +msgid "Text Server: Fallback" +msgstr "文本服务器:后备" + +msgid "Text Server: Advanced" +msgstr "文本服务器:高级" + +msgid "TTF, OTF, Type 1, WOFF1 Fonts" +msgstr "TTF、OTF、Type 1、WOFF1 字体" + +msgid "WOFF2 Fonts" +msgstr "WOFF2 字体" + +msgid "SIL Graphite Fonts" +msgstr "SIL Graphite 字体" + +msgid "Multi-channel Signed Distance Field Font Rendering" +msgstr "多通道有符号距离场字体渲染" + +msgid "3D Nodes as well as RenderingServer access to 3D features." +msgstr "3D 节点以及 RenderingServer 对 3D 功能的访问。" + +msgid "2D Physics nodes and PhysicsServer2D." +msgstr "2D 物理节点和 PhysicsServer2D。" + +msgid "3D Physics nodes and PhysicsServer3D." +msgstr "3D 物理节点和 PhysicsServer3D。" + +msgid "Navigation, both 2D and 3D." +msgstr "导航,2D 和 3D 均可。" + +msgid "XR (AR and VR)." +msgstr "XR(AR 和 VR)。" + +msgid "" +"RenderingDevice based rendering (if disabled, the OpenGL back-end is " +"required)." +msgstr "基于RenderingDevice的渲染(如果禁用,则需要OpenGL后端)。" + +msgid "" +"OpenGL back-end (if disabled, the RenderingDevice back-end is required)." +msgstr "OpenGL 后端(如果禁用,则需要 RenderingDevice 后端)。" + +msgid "Vulkan back-end of RenderingDevice." +msgstr "RenderingDevice 的 Vulkan 后端。" + +msgid "" +"Fallback implementation of Text Server\n" +"Supports basic text layouts." +msgstr "" +"文本服务器的后备实现\n" +"支持基本的文本布局。" + +msgid "" +"Text Server implementation powered by ICU and HarfBuzz libraries.\n" +"Supports complex text layouts, BiDi, and contextual OpenType font features." +msgstr "" +"由 ICU 和 HarfBuzz 库提供支持的文本服务器实现。\n" +"支持复杂的文本布局、BiDi 和上下文 OpenType 字体功能。" + +msgid "" +"TrueType, OpenType, Type 1, and WOFF1 font format support using FreeType " +"library (if disabled, WOFF2 support is also disabled)." +msgstr "" +"使用 FreeType 库支持 TrueType、OpenType、Type 1 和 WOFF1 字体格式(如果禁用," +"WOFF2 支持也会被禁用)。" + +msgid "WOFF2 font format support using FreeType and Brotli libraries." +msgstr "使用 FreeType 和 Brotli 库支持 WOFF2 字体格式。" + +msgid "" +"SIL Graphite smart font technology support (supported by Advanced Text " +"Server only)." +msgstr "支持 SIL Graphite 智能字体技术(仅由高级文本服务器支持)。" + +msgid "" +"Multi-channel signed distance field font rendering support using msdfgen " +"library (pre-rendered MSDF fonts can be used even if this option disabled)." +msgstr "" +"使用 msdfgen 库支持多通道有符号距离场字体渲染(即使禁用此选项,也可以使用预渲" +"染的 MSDF 字体)。" + +msgid "General Features:" +msgstr "常规特性:" + +msgid "Text Rendering and Font Options:" +msgstr "文本渲染与字体选项:" + +msgid "File saving failed." +msgstr "保存文件失败。" + msgid "Nodes and Classes:" msgstr "节点和类:" @@ -1374,12 +2107,42 @@ msgstr "新建" msgid "Save" msgstr "保存" +msgid "Profile:" +msgstr "配置文件:" + msgid "Reset to Defaults" msgstr "重置为默认值" +msgid "Detect from Project" +msgstr "从项目中检测" + +msgid "Actions:" +msgstr "动作:" + +msgid "Configure Engine Build Profile:" +msgstr "配置引擎构建配置文件:" + +msgid "Please Confirm:" +msgstr "请确认:" + +msgid "Engine Build Profile" +msgstr "引擎构建配置文件" + +msgid "Load Profile" +msgstr "加载配置文件" + msgid "Export Profile" msgstr "导出配置文件" +msgid "Forced classes on detect:" +msgstr "强制检测类:" + +msgid "Edit Build Configuration Profile" +msgstr "编辑构建配置文件" + +msgid "Filter Commands" +msgstr "筛选命令" + msgid "Paste Params" msgstr "粘贴参数" @@ -1401,6 +2164,9 @@ msgstr "[未保存]" msgid "Please select a base directory first." msgstr "请先选择一个基础目录。" +msgid "Could not create folder. File with that name already exists." +msgstr "无法创建文件夹。同名文件已存在。" + msgid "Choose a Directory" msgstr "选择目录" @@ -1423,7 +2189,7 @@ msgid "Script Editor" msgstr "脚本编辑器" msgid "Asset Library" -msgstr "素材库" +msgstr "资产库" msgid "Scene Tree Editing" msgstr "场景树编辑" @@ -1437,6 +2203,9 @@ msgstr "文件系统面板" msgid "Import Dock" msgstr "导入面板" +msgid "History Dock" +msgstr "历史停靠面板" + msgid "Allows to view and edit 3D scenes." msgstr "允许查看并编辑 3D 场景。" @@ -1444,7 +2213,7 @@ msgid "Allows to edit scripts using the integrated script editor." msgstr "允许使用内置脚本编辑器编辑脚本。" msgid "Provides built-in access to the Asset Library." -msgstr "提供对素材库的内置访问。" +msgstr "提供对资产库的内置访问。" msgid "Allows editing the node hierarchy in the Scene dock." msgstr "允许在场景面板中编辑节点层级。" @@ -1460,7 +2229,10 @@ msgstr "允许使用专门的面板浏览本地文件系统。" msgid "" "Allows to configure import settings for individual assets. Requires the " "FileSystem dock to function." -msgstr "允许为各个素材配置导入设置。文件系统面板需要可用。" +msgstr "允许为各个资产配置导入设置。文件系统面板需要可用。" + +msgid "Provides an overview of the editor's and each scene's undo history." +msgstr "提供编辑器和每个场景的撤消历史记录的概览。" msgid "(current)" msgstr "(当前)" @@ -1469,7 +2241,7 @@ msgid "(none)" msgstr "(无)" msgid "Remove currently selected profile, '%s'? Cannot be undone." -msgstr "要删除当前所选的配置文件“%s”吗?无法撤销。" +msgstr "要移除当前所选的配置文件“%s”吗?无法撤销。" msgid "Profile must be a valid filename and must not contain '.'" msgstr "配置文件必须是有效的文件名,并且不能包含 “.”" @@ -1501,7 +2273,7 @@ msgstr "主要特性:" msgid "" "Profile '%s' already exists. Remove it first before importing, import " "aborted." -msgstr "配置文件 “%s” 已存在。在导入之前先删除该配置文件,导入已中止。" +msgstr "配置文件“%s”已存在。请在导入之前先移除该配置文件,导入已中止。" msgid "Reset to Default" msgstr "重置为默认值" @@ -1596,6 +2368,9 @@ msgstr "打开文件或目录" msgid "Save a File" msgstr "保存文件" +msgid "Favorited folder does not exist anymore and will be removed." +msgstr "收藏的文件夹不再存在,将被移除。" + msgid "Go Back" msgstr "后退" @@ -1636,13 +2411,13 @@ msgid "Refresh files." msgstr "刷新文件。" msgid "(Un)favorite current folder." -msgstr "收藏/取消收藏当前文件夹。" +msgstr "收藏/取消收藏当前文件夹。" msgid "Toggle the visibility of hidden files." msgstr "切换隐藏文件的可见性。" msgid "View items as a grid of thumbnails." -msgstr "以网格缩略图查看项目。" +msgstr "以栅格缩略图查看项目。" msgid "View items as a list." msgstr "以列表查看项目。" @@ -1656,6 +2431,19 @@ msgstr "预览:" msgid "File:" msgstr "文件:" +msgid "" +"Remove the selected files? For safety only files and empty directories can " +"be deleted from here. (Cannot be undone.)\n" +"Depending on your filesystem configuration, the files will either be moved " +"to the system trash or deleted permanently." +msgstr "" +"是否移除选定的文件?为了安全起见,只有文件和空目录可以从这里被删除。(无法撤" +"消。)\n" +"根据你的文件系统设置,文件可能会被移动至系统回收站,也可能被永久删除。" + +msgid "Some extensions need the editor to restart to take effect." +msgstr "某些扩展需要重新启动编辑器才能生效。" + msgid "Restart" msgstr "重新启动" @@ -1671,7 +2459,56 @@ msgid "" msgstr "文件 %s 有不同类型的多个导入器,已中止导入" msgid "(Re)Importing Assets" -msgstr "正在导入或重新导入素材" +msgstr "正在导入或重新导入资产" + +msgid "Import resources of type: %s" +msgstr "导入 %s 类型的资源" + +msgid "No return value." +msgstr "无返回值。" + +msgid "Deprecated" +msgstr "已废弃" + +msgid "Experimental" +msgstr "实验性" + +msgid "This method supports a variable number of arguments." +msgstr "这个方法支持可变数量的参数。" + +msgid "" +"This method is called by the engine.\n" +"It can be overridden to customize built-in behavior." +msgstr "" +"这个方法由引擎调用。\n" +"覆盖后可自定义内置行为。" + +msgid "" +"This method has no side effects.\n" +"It does not modify the object in any way." +msgstr "" +"这个方法没有副作用。\n" +"不会以任何形式修改该对象。" + +msgid "" +"This method does not need an instance to be called.\n" +"It can be called directly using the class name." +msgstr "" +"调用这个方法不需要实例。\n" +"可以直接使用类名调用。" + +msgid "Error codes returned:" +msgstr "返回错误码:" + +msgid "There is currently no description for this %s." +msgstr "这个 %s 目前没有描述。" + +msgid "" +"There is currently no description for this %s. Please help us by " +"[color=$color][url=$url]contributing one[/url][/color]!" +msgstr "" +"这个 %s 目前没有描述。请帮我们[color=$color][url=$url]贡献一个[/url][/" +"color]!" msgid "Top" msgstr "顶部" @@ -1685,9 +2522,30 @@ msgstr "继承:" msgid "Inherited by:" msgstr "派生:" +msgid "" +"This class is marked as deprecated. It will be removed in future versions." +msgstr "这个类被标记为已废弃,会在将来的版本中移除。" + +msgid "" +"This class is marked as experimental. It is subject to likely change or " +"possible removal in future versions. Use at your own discretion." +msgstr "" +"这个类被标记为实验性,在将来的版本中极可能发生修改,也可能被移除。使用时请自" +"行斟酌。" + msgid "Description" msgstr "描述" +msgid "There is currently no description for this class." +msgstr "目前没有这个类的描述。" + +msgid "" +"There is currently no description for this class. Please help us by " +"[color=$color][url=$url]contributing one[/url][/color]!" +msgstr "" +"目前没有这个类的描述。请帮我们[color=$color][url=$url]贡献一个[/url][/" +"color]!" + msgid "Online Tutorials" msgstr "在线教程" @@ -1700,6 +2558,15 @@ msgstr "覆盖 %s:" msgid "default:" msgstr "默认:" +msgid "property:" +msgstr "属性:" + +msgid "Constructors" +msgstr "构造函数" + +msgid "Operators" +msgstr "运算符" + msgid "Theme Properties" msgstr "主题属性" @@ -1712,6 +2579,9 @@ msgstr "常量" msgid "Fonts" msgstr "字体" +msgid "Font Sizes" +msgstr "字体大小" + msgid "Icons" msgstr "图标" @@ -1721,22 +2591,44 @@ msgstr "样式" msgid "Enumerations" msgstr "枚举" +msgid "Annotations" +msgstr "注解" + +msgid "There is currently no description for this annotation." +msgstr "目前没有这个注解的描述。" + +msgid "" +"There is currently no description for this annotation. Please help us by " +"[color=$color][url=$url]contributing one[/url][/color]!" +msgstr "" +"目前没有这个注解的描述。请帮我们[color=$color][url=$url]贡献一个[/url][/" +"color]!" + msgid "Property Descriptions" msgstr "属性说明" msgid "(value)" msgstr "(值)" +msgid "There is currently no description for this property." +msgstr "目前没有这个属性的描述。" + msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" -"当前没有此属性的说明。请帮我们[color=$color][url=$url]贡献一个[/url][/" +"目前没有这个属性的描述。请帮我们[color=$color][url=$url]贡献一个[/url][/" "color]!" +msgid "Constructor Descriptions" +msgstr "构造函数说明" + msgid "Method Descriptions" msgstr "方法说明" +msgid "Operator Descriptions" +msgstr "运算符说明" + msgid "%d match." msgstr "%d 个匹配。" @@ -1758,12 +2650,21 @@ msgstr "全部显示" msgid "Classes Only" msgstr "仅类" +msgid "Constructors Only" +msgstr "仅构造函数" + msgid "Methods Only" msgstr "仅方法" +msgid "Operators Only" +msgstr "仅运算符" + msgid "Signals Only" msgstr "仅信号" +msgid "Annotations Only" +msgstr "仅注解" + msgid "Constants Only" msgstr "仅常量" @@ -1776,6 +2677,9 @@ msgstr "仅主题属性" msgid "Member Type" msgstr "成员类型" +msgid "(constructors)" +msgstr "(构造函数)" + msgid "Class" msgstr "类" @@ -1785,6 +2689,9 @@ msgstr "方法" msgid "Signal" msgstr "信号" +msgid "Annotation" +msgstr "注解" + msgid "Constant" msgstr "常量" @@ -1794,9 +2701,21 @@ msgstr "属性" msgid "Theme Property" msgstr "主题属性" +msgid "This member is marked as deprecated." +msgstr "这个成员被标记为已废弃。" + +msgid "This member is marked as experimental." +msgstr "这个成员被标记为实验性。" + msgid "Property:" msgstr "属性:" +msgid "Pin Value" +msgstr "固定值" + +msgid "Pin Value [Disabled because '%s' is editor-only]" +msgstr "固定值 [已禁用,因为“%s”仅适用于编辑器]" + msgid "" "Pinning a value forces it to be saved even if it's equal to the default." msgstr "将值固定会强制保存这个值,即便它与默认值相等。" @@ -1804,54 +2723,160 @@ msgstr "将值固定会强制保存这个值,即便它与默认值相等。" msgid "Open Documentation" msgstr "打开文档" +msgid "Element %d: %s%d*" +msgstr "元素 %d:%s%d*" + msgid "Move Up" msgstr "向上移动" msgid "Move Down" msgstr "向下移动" +msgid "Insert New Before" +msgstr "在前方插入" + +msgid "Insert New After" +msgstr "在之后插入" + +msgid "Clear Array" +msgstr "清空数组" + +msgid "Resize Array..." +msgstr "调整数组大小..." + +msgid "Add Element" +msgstr "添加元素" + msgid "Resize Array" msgstr "调整数组大小" +msgid "New Size:" +msgstr "新大小:" + +msgid "Element %s" +msgstr "元素 %s" + +msgid "Add Metadata" +msgstr "添加元数据" + msgid "Set %s" msgstr "设置 %s" msgid "Set Multiple:" msgstr "批量设置:" +msgid "Remove metadata %s" +msgstr "移除元数据 %s" + msgid "Pinned %s" msgstr "将 %s 固定" msgid "Unpinned %s" msgstr "将 %s 解除固定" +msgid "Add metadata %s" +msgstr "添加元数据 %s" + +msgid "Metadata name can't be empty." +msgstr "元数据名称不能为空。" + +msgid "Metadata name must be a valid identifier." +msgstr "元数据名称必须是有效的标识符。" + +msgid "Metadata with name \"%s\" already exists." +msgstr "名为“%s”的元数据已存在。" + +msgid "Names starting with _ are reserved for editor-only metadata." +msgstr "以 _ 开头的名称已为编辑器元数据保留。" + +msgid "Metadata name is valid." +msgstr "元数据名称有效。" + +msgid "Add Metadata Property for \"%s\"" +msgstr "为“%s”添加元数据属性" + +msgid "Copy Value" +msgstr "复制值" + +msgid "Paste Value" +msgstr "粘贴值" + msgid "Copy Property Path" msgstr "复制属性路径" +msgid "Select existing layout:" +msgstr "选择现存布局:" + +msgid "Changed Locale Language Filter" +msgstr "修改区域设置语言筛选" + +msgid "Changed Locale Script Filter" +msgstr "修改区域设置文字筛选" + +msgid "Changed Locale Country Filter" +msgstr "修改区域设置地区筛选" + msgid "Changed Locale Filter Mode" msgstr "修改区域设置筛选模式" +msgid "Select a Locale" +msgstr "选择区域" + msgid "Show All Locales" msgstr "显示所有区域" msgid "Show Selected Locales Only" msgstr "仅显示选定的区域" +msgid "Edit Filters" +msgstr "编辑筛选器" + msgid "Language:" msgstr "语言:" -msgid "Script" -msgstr "脚本" +msgid "Country:" +msgstr "地区:" + +msgid "Language" +msgstr "语言" + +msgid "Country" +msgstr "地区" msgid "Variant" msgstr "变体" +msgid "Filter Messages" +msgstr "消息筛选" + msgid "Clear Output" msgstr "清空输出" msgid "Copy Selection" msgstr "复制选中项" +msgid "" +"Collapse duplicate messages into one log entry. Shows number of occurrences." +msgstr "将重复的信息折叠成一个日志条目。显示出现的次数。" + +msgid "Focus Search/Filter Bar" +msgstr "聚焦搜索/过滤栏" + +msgid "Toggle visibility of standard output messages." +msgstr "切换标准输出消息的可见性。" + +msgid "Toggle visibility of errors." +msgstr "切换错误的可见性。" + +msgid "Toggle visibility of warnings." +msgstr "切换警告的可见性。" + +msgid "Toggle visibility of editor messages." +msgstr "切换编辑器消息的可见性。" + +msgid "Native Shader Source Inspector" +msgstr "本地着色器源检查器" + msgid "New Window" msgstr "新窗口" @@ -1883,6 +2908,11 @@ msgid "" "Make it unique first." msgstr "无法保存此资源,因为此资源不属于已编辑的场景。请先唯一化此资源。" +msgid "" +"This resource can't be saved because it was imported from another file. Make " +"it unique first." +msgstr "无法保存此资源,因为此资源是从其他文件导入的。请先唯一化此资源。" + msgid "Save Resource As..." msgstr "资源另存为..." @@ -1895,6 +2925,21 @@ msgstr "请求文件的类型未知:" msgid "Error while saving." msgstr "保存时出错。" +msgid "Can't open file '%s'. The file could have been moved or deleted." +msgstr "无法打开文件“%s”。该文件可能已被移动或删除。" + +msgid "Error while parsing file '%s'." +msgstr "解析文件“%s”时出错。" + +msgid "Scene file '%s' appears to be invalid/corrupt." +msgstr "场景文件“%s”似乎无效/已损坏。" + +msgid "Missing file '%s' or one its dependencies." +msgstr "缺失文件“%s”或其依赖项。" + +msgid "Error while loading file '%s'." +msgstr "加载文件“%s”时出错。" + msgid "Saving Scene" msgstr "正在保存场景" @@ -1908,6 +2953,13 @@ msgid "This operation can't be done without a tree root." msgstr "此操作必须在打开一个场景后才能执行。" msgid "" +"This scene can't be saved because there is a cyclic instance inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" +"这个场景包含循环实例化,无法保存。\n" +"请解决此问题后尝试再次保存。" + +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "无法保存场景。可能是因为依赖项(实例或继承)无法满足。" @@ -1948,34 +3000,80 @@ msgstr "布局名称未找到!" msgid "Restored the Default layout to its base settings." msgstr "已将默认布局恢复为原始内容。" +msgid "This object is marked as read-only, so it's not editable." +msgstr "这个对象被标记为只读,所以它是不可编辑的。" + msgid "" "This resource belongs to a scene that was imported, so it's not editable.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" -"此资源属于已导入的场景,不可编辑。\n" +"这个资源属于已导入的场景,不可编辑。\n" "请阅读与导入场景相关的文档,以更佳理解此工作流。" msgid "" +"This resource belongs to a scene that was instantiated or inherited.\n" +"Changes to it must be made inside the original scene." +msgstr "" +"这个资源属于一个被实例化或被继承的场景。\n" +"对该资源的修改必须在原始场景中进行。" + +msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." msgstr "此资源已导入,因此无法编辑。在导入面板中更改设置并重新导入。" +msgid "" +"This scene was imported, so changes to it won't be kept.\n" +"Instantiating or inheriting it will allow you to make changes to it.\n" +"Please read the documentation relevant to importing scenes to better " +"understand this workflow." +msgstr "" +"此场景是导入的,因此不会保留对其所做的更改。\n" +"实例化或继承它将允许您对其进行更改。\n" +"请阅读与导入场景相关的文档以更好地理解此工作流程。" + msgid "Changes may be lost!" msgstr "更改可能会丢失!" +msgid "This object is read-only." +msgstr "这个对象是只读的。" + +msgid "" +"Movie Maker mode is enabled, but no movie file path has been specified.\n" +"A default movie file path can be specified in the project settings under the " +"Editor > Movie Writer category.\n" +"Alternatively, for running single scenes, a `movie_file` string metadata can " +"be added to the root node,\n" +"specifying the path to a movie file that will be used when recording that " +"scene." +msgstr "" +"已启用 Movie Maker 模式,但没有指定电影文件路径。\n" +"可以在项目设置的“编辑器 > Movie Writer”类别下指定默认的电影文件路径。\n" +"运行单一场景时,也可以在根节点上添加 `movie_file` 字符串元数据,\n" +"指定录制该场景时使用的电影文件的路径。" + msgid "There is no defined scene to run." msgstr "没有设置要运行的场景。" msgid "Save scene before running..." msgstr "运行前保存场景..." +msgid "Could not start subprocess(es)!" +msgstr "无法启动子进程!" + +msgid "Reload the played scene." +msgstr "重载运行的场景。" + msgid "Play the project." msgstr "运行此项目。" msgid "Play the edited scene." msgstr "运行正在编辑的场景。" +msgid "Play a custom scene." +msgstr "运行自定义场景。" + msgid "Open Base Scene" msgstr "打开父场景" @@ -1991,9 +3089,15 @@ msgstr "快速打开脚本..." msgid "Save & Reload" msgstr "保存并重新加载" +msgid "Save modified resources before reloading?" +msgstr "在重新加载之前保存修改后的资源?" + msgid "Save & Quit" msgstr "保存并退出" +msgid "Save modified resources before closing?" +msgstr "在关闭之前保存修改后的资源?" + msgid "Save changes to '%s' before reloading?" msgstr "是否在重新加载前保存对“%s”的更改?" @@ -2025,12 +3129,30 @@ msgstr "鼠标按下时无法撤销。" msgid "Nothing to undo." msgstr "无可撤销。" +msgid "Global Undo: %s" +msgstr "全局撤销:%s" + +msgid "Remote Undo: %s" +msgstr "远程撤销:%s" + +msgid "Scene Undo: %s" +msgstr "场景撤销:%s" + msgid "Can't redo while mouse buttons are pressed." msgstr "鼠标按下时无法重做。" msgid "Nothing to redo." msgstr "无可重做。" +msgid "Global Redo: %s" +msgstr "全局重做:%s" + +msgid "Remote Redo: %s" +msgstr "远程重做:%s" + +msgid "Scene Redo: %s" +msgstr "场景重做:%s" + msgid "Can't reload a scene that was never saved." msgstr "无法重新加载从未保存过的场景。" @@ -2190,6 +3312,9 @@ msgstr "平移视图" msgid "Dock Position" msgstr "面板位置" +msgid "Make Floating" +msgstr "浮动" + msgid "Add a new scene." msgstr "添加新场景。" @@ -2211,6 +3336,18 @@ msgstr "转到上一个打开的场景。" msgid "Copy Text" msgstr "复制文本" +msgid "Next Scene Tab" +msgstr "下一个场景选项卡" + +msgid "Previous Scene Tab" +msgstr "上一个场景选项卡" + +msgid "Focus FileSystem Filter" +msgstr "聚焦文件系统过滤器" + +msgid "Command Palette" +msgstr "命令面板" + msgid "New Scene" msgstr "新建场景" @@ -2229,6 +3366,9 @@ msgstr "最近打开" msgid "Save Scene" msgstr "保存场景" +msgid "Export As..." +msgstr "导出为..." + msgid "MeshLibrary..." msgstr "网格库..." @@ -2244,9 +3384,18 @@ msgstr "项目" msgid "Project Settings..." msgstr "项目设置..." +msgid "Project Settings" +msgstr "项目设置" + msgid "Version Control" msgstr "版本控制" +msgid "Create Version Control Metadata" +msgstr "创建版本控制元数据" + +msgid "Version Control Settings" +msgstr "版本控制设置" + msgid "Export..." msgstr "导出..." @@ -2256,6 +3405,9 @@ msgstr "安装 Android 构建模板..." msgid "Open User Data Folder" msgstr "打开 “用户数据” 文件夹" +msgid "Customize Engine Build Configuration..." +msgstr "自定义引擎构建配置..." + msgid "Tools" msgstr "工具" @@ -2274,6 +3426,9 @@ msgstr "编辑器" msgid "Editor Settings..." msgstr "编辑器设置..." +msgid "Command Palette..." +msgstr "命令面板..." + msgid "Editor Layout" msgstr "编辑器布局" @@ -2301,6 +3456,9 @@ msgstr "管理编辑器功能..." msgid "Manage Export Templates..." msgstr "管理导出模板..." +msgid "Configure FBX Importer..." +msgstr "配置 FBX 导入器..." + msgid "Help" msgstr "帮助" @@ -2328,15 +3486,65 @@ msgstr "关于 Godot" msgid "Support Godot Development" msgstr "支持 Godot 开发" +msgid "Run the project's default scene." +msgstr "运行项目的默认场景。" + msgid "Run Project" msgstr "运行项目" +msgid "Pause the running project's execution for debugging." +msgstr "暂停运行中的项目以进行调试。" + +msgid "Pause Running Project" +msgstr "暂停运行中的项目" + +msgid "Stop the currently running project." +msgstr "停止目前运行中的项目。" + +msgid "Stop Running Project" +msgstr "停止运行中的项目" + +msgid "Run the currently edited scene." +msgstr "运行当前编辑的场景。" + +msgid "Run Current Scene" +msgstr "运行当前场景" + +msgid "Run a specific scene." +msgstr "运行一个特定的场景。" + +msgid "Run Specific Scene" +msgstr "运行特定场景" + +msgid "" +"Enable Movie Maker mode.\n" +"The project will run at stable FPS and the visual and audio output will be " +"recorded to a video file." +msgstr "" +"启用 Movie Maker 模式。\n" +"该项目将以稳定的 FPS 运行,影像和音频输出将被记录到一个视频文件中。" + +msgid "Choose a renderer." +msgstr "选择渲染器。" + +msgid "Forward+" +msgstr "Forward+" + +msgid "Mobile" +msgstr "移动" + msgid "Compatibility" -msgstr "兼容性" +msgstr "兼容" + +msgid "Changing the renderer requires restarting the editor." +msgstr "改变渲染器需要重启编辑器。" msgid "Update Continuously" msgstr "持续更新" +msgid "Update When Changed" +msgstr "改变时更新" + msgid "Hide Update Spinner" msgstr "隐藏更新旋转图" @@ -2349,6 +3557,9 @@ msgstr "检查器" msgid "Node" msgstr "节点" +msgid "History" +msgstr "历史" + msgid "Expand Bottom Panel" msgstr "展开底部面板" @@ -2367,21 +3578,8 @@ msgstr "管理模板" msgid "Install from file" msgstr "从文件安装" -msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"通过将源模板安装到 “res://android/build” ,将为自定义 Android 构建设置项" -"目。\n" -"然后,可以应用修改并在导出时构建自己的自定义 APK(添加模块、更改 " -"AndroidManifest.xml 等)。\n" -"请注意,要使用自定义构建而不是使用预先构建的 APK,需在 Android 导出预设中启" -"用 “Use Custom Build” 选项。" +msgid "Select Android sources file" +msgstr "选择 Android 源文件" msgid "" "The Android build template is already installed in this project and it won't " @@ -2390,7 +3588,7 @@ msgid "" "operation again." msgstr "" "Android 构建模板已安装在此项目中,将不会被覆盖。\n" -"再次尝试执行此操作之前,请手动删除 “res://android/build” 目录。" +"再次尝试执行此操作之前,请手动移除“res://android/build”目录。" msgid "Import Templates From ZIP File" msgstr "从 ZIP 文件中导入模板" @@ -2442,7 +3640,7 @@ msgid "Open Script Editor" msgstr "打开脚本编辑器" msgid "Open Asset Library" -msgstr "打开素材库" +msgstr "打开资产库" msgid "Open the next Editor" msgstr "打开下一个编辑器" @@ -2450,6 +3648,9 @@ msgstr "打开下一个编辑器" msgid "Open the previous Editor" msgstr "打开上一个编辑器" +msgid "Ok" +msgstr "确定" + msgid "Warning!" msgstr "警告!" @@ -2474,6 +3675,9 @@ msgstr "编辑插件" msgid "Installed Plugins:" msgstr "已安装插件:" +msgid "Create New Plugin" +msgstr "创建新插件" + msgid "Version" msgstr "版本" @@ -2489,6 +3693,9 @@ msgstr "编辑文本:" msgid "On" msgstr "启用" +msgid "Renaming layer %d:" +msgstr "重命名层 %d:" + msgid "No name provided." msgstr "没有提供名称。" @@ -2501,12 +3708,44 @@ msgstr "第 %d 位,值为 %d" msgid "Rename" msgstr "重命名" +msgid "Rename layer" +msgstr "重命名层" + +msgid "Layer %d" +msgstr "层 %d" + +msgid "No Named Layers" +msgstr "无命名层" + +msgid "Edit Layer Names" +msgstr "编辑层名称" + +msgid "<empty>" +msgstr "<空>" + +msgid "Temporary Euler may be changed implicitly!" +msgstr "临时欧拉值可能被隐式改变!" + +msgid "" +"Temporary Euler will not be stored in the object with the original value. " +"Instead, it will be stored as Quaternion with irreversible conversion.\n" +"This is due to the fact that the result of Euler->Quaternion can be " +"determined uniquely, but the result of Quaternion->Euler can be multi-" +"existent." +msgstr "" +"临时欧拉值不会以原始形式在该对象中存储,而会以四元数形式存储,该转换不可" +"逆。\n" +"这是因为欧拉值 -> 四元数的结果是唯一的,但四元数 -> 欧拉值的结果可能有多个。" + msgid "Assign..." msgstr "指定..." msgid "Invalid RID" msgstr "无效的 RID" +msgid "Recursion detected, unable to assign resource to property." +msgstr "检测到递归,无法将资源分配给属性。" + msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." @@ -2529,12 +3768,24 @@ msgstr "选择视口" msgid "Selected node is not a Viewport!" msgstr "选定节点不是 Viewport!" +msgid "(Nil) %s" +msgstr "(空)%s" + +msgid "%s (size %s)" +msgstr "%s(大小 %s)" + msgid "Size:" msgstr "大小:" msgid "Remove Item" msgstr "移除项目" +msgid "Dictionary (Nil)" +msgstr "字典(空)" + +msgid "Dictionary (size %d)" +msgstr "字典(大小 %d)" + msgid "New Key:" msgstr "新建键:" @@ -2544,6 +3795,15 @@ msgstr "新建值:" msgid "Add Key/Value Pair" msgstr "添加键值对" +msgid "Localizable String (Nil)" +msgstr "可本地化字符串(空)" + +msgid "Localizable String (size %d)" +msgstr "可本地化字符串(大小 %d)" + +msgid "Add Translation" +msgstr "添加翻译" + msgid "" "The selected resource (%s) does not match any type expected for this " "property (%s)." @@ -2552,9 +3812,15 @@ msgstr "所选资源(%s)与该属性(%s)所需的类型都不匹配。" msgid "Quick Load" msgstr "快速加载" +msgid "Inspect" +msgstr "查看" + msgid "Make Unique" msgstr "唯一化" +msgid "Make Unique (Recursive)" +msgstr "唯一化(递归)" + msgid "Convert to %s" msgstr "转换为 %s" @@ -2567,6 +3833,15 @@ msgstr "新建脚本" msgid "Extend Script" msgstr "扩展脚本" +msgid "New Shader" +msgstr "新建着色器" + +msgid "No Remote Debug export presets configured." +msgstr "没有配置远程调试导出预置。" + +msgid "Remote Debug" +msgstr "远程调试" + msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -2584,6 +3859,16 @@ msgstr "在 _run() 方法中填写逻辑代码。" msgid "There is an edited scene already." msgstr "已存在一个正在编辑的场景。" +msgid "" +"Couldn't run editor script, did you forget to override the '_run' method?" +msgstr "无法运行编辑器脚本,你是否忘了覆盖“_run”方法?" + +msgid "Edit Built-in Action" +msgstr "编辑内置动作" + +msgid "Edit Shortcut" +msgstr "编辑快捷键" + msgid "Common" msgstr "通用" @@ -2593,6 +3878,9 @@ msgstr "编辑器设置" msgid "General" msgstr "常规" +msgid "Filter Settings" +msgstr "筛选设置" + msgid "The editor must be restarted for changes to take effect." msgstr "必须重新启动编辑器才能使更改生效。" @@ -2602,8 +3890,81 @@ msgstr "快捷键" msgid "Binding" msgstr "绑定" -msgid "%s Error" -msgstr "%s 错误" +msgid "" +"Hold %s to round to integers.\n" +"Hold Shift for more precise changes." +msgstr "" +"按住 %s 取整。\n" +"按住 Shift 获取更精确的变化。" + +msgid "No notifications." +msgstr "无通知。" + +msgid "Show notifications." +msgstr "显示通知。" + +msgid "Silence the notifications." +msgstr "将通知静音。" + +msgid "Left Stick Left, Joystick 0 Left" +msgstr "左摇杆向左,控制杆 0 向左" + +msgid "Left Stick Right, Joystick 0 Right" +msgstr "左摇杆向右,控制杆 0 向右" + +msgid "Left Stick Up, Joystick 0 Up" +msgstr "左摇杆向上,控制杆 0 向上" + +msgid "Left Stick Down, Joystick 0 Down" +msgstr "左摇杆向下,控制杆 0 向下" + +msgid "Right Stick Left, Joystick 1 Left" +msgstr "右摇杆向左,控制杆 1 向左" + +msgid "Right Stick Right, Joystick 1 Right" +msgstr "右摇杆向右,控制杆 1 向右" + +msgid "Right Stick Up, Joystick 1 Up" +msgstr "右摇杆向上,控制杆 1 向上" + +msgid "Right Stick Down, Joystick 1 Down" +msgstr "右摇杆向下,控制杆 1 向下" + +msgid "Joystick 2 Left" +msgstr "控制杆 2 向左" + +msgid "Left Trigger, Sony L2, Xbox LT, Joystick 2 Right" +msgstr "左扳机、索尼 L2、Xbox LT、控制杆 2 向右" + +msgid "Joystick 2 Up" +msgstr "控制杆 2 向上" + +msgid "Right Trigger, Sony R2, Xbox RT, Joystick 2 Down" +msgstr "右扳机、索尼 R2、Xbox RT、控制杆 2 向下" + +msgid "Joystick 3 Left" +msgstr "控制杆 3 向左" + +msgid "Joystick 3 Right" +msgstr "控制杆 3 向右" + +msgid "Joystick 3 Up" +msgstr "控制杆 3 向上" + +msgid "Joystick 3 Down" +msgstr "控制杆 3 向下" + +msgid "Joystick 4 Left" +msgstr "控制杆 4 向左" + +msgid "Joystick 4 Right" +msgstr "控制杆 4 向右" + +msgid "Joystick 4 Up" +msgstr "控制杆 4 向上" + +msgid "Joystick 4 Down" +msgstr "控制杆 4 向下" msgid "All Devices" msgstr "所有设备" @@ -2611,6 +3972,12 @@ msgstr "所有设备" msgid "Device" msgstr "设备" +msgid "Listening for input..." +msgstr "正在监听输入..." + +msgid "Filter by event..." +msgstr "按事件筛选..." + msgid "Project export for platform:" msgstr "针对平台导出项目:" @@ -2650,6 +4017,15 @@ msgstr "导出项目文件失败。" msgid "Can't open file to read from path \"%s\"." msgstr "无法打开位于“%s”的文件用于读取。" +msgid "Can't open executable file from path \"%s\"." +msgstr "无法打开位于“%s”的可执行文件。" + +msgid "Can't create encrypted file." +msgstr "无法创建加密文件。" + +msgid "Can't open encrypted file to write." +msgstr "无法打开加密文件进行写操作。" + msgid "Save ZIP" msgstr "保存 ZIP" @@ -2770,6 +4146,9 @@ msgstr "正在下载" msgid "Connection Error" msgstr "连接错误" +msgid "TLS Handshake Error" +msgstr "TLS 握手错误" + msgid "Can't open the export templates file." msgstr "无法打开导出模板文件。" @@ -2878,6 +4257,9 @@ msgstr "所有预设必须都定义导出路径,才能进行“全部导出” msgid "Delete preset '%s'?" msgstr "是否删除预设 “%s”?" +msgid "%s Export" +msgstr "%s 导出" + msgid "Release" msgstr "发布" @@ -2918,12 +4300,25 @@ msgstr "导出选中的场景(包括依赖项)" msgid "Export selected resources (and dependencies)" msgstr "导出选中的资源(包括依赖项)" +msgid "Export all resources in the project except resources checked below" +msgstr "导出项目中的所有资源,下方勾选的资源除外" + +msgid "Export as dedicated server" +msgstr "导出为专用服务器" + msgid "Export Mode:" msgstr "导出模式:" msgid "Resources to export:" msgstr "导出的资源:" +msgid "" +"\"Strip Visuals\" will replace the following resources with placeholders:" +msgstr "“剥离视觉内容”将用占位符取代以下资源:" + +msgid "Strip Visuals" +msgstr "剥离视觉内容" + msgid "Keep" msgstr "保持" @@ -2950,9 +4345,35 @@ msgstr "自定义 (以逗号分隔):" msgid "Feature List:" msgstr "特性列表:" +msgid "Encryption" +msgstr "加密" + +msgid "Encrypt Exported PCK" +msgstr "加密导出的 PCK" + +msgid "Encrypt Index (File Names and Info)" +msgstr "加密索引(文件名和信息)" + +msgid "" +"Filters to include files/folders\n" +"(comma-separated, e.g: *.tscn, *.tres, scenes/*)" +msgstr "" +"用于包含文件/文件夹的筛选器\n" +"(以英文逗号分隔,例如:*.tscn, *.tres, scenes/*)" + +msgid "" +"Filters to exclude files/folders\n" +"(comma-separated, e.g: *.ctex, *.import, music/*)" +msgstr "" +"用于排除文件/文件夹的筛选器\n" +"(以英文逗号分隔,例如:*.ctex, *.import, music/*)" + msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)" msgstr "无效的加密密钥(长度必须为 64 个十六进制字符)" +msgid "Encryption Key (256-bits as hexadecimal):" +msgstr "加密密钥(256 位十六进制码):" + msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." @@ -2963,6 +4384,9 @@ msgstr "" msgid "More Info..." msgstr "更多信息..." +msgid "Export PCK/ZIP..." +msgstr "导出 PCK/ZIP..." + msgid "Export Project..." msgstr "导出项目..." @@ -2993,9 +4417,37 @@ msgstr "管理导出模板" msgid "Export With Debug" msgstr "使用调试导出" +msgid "Path to FBX2glTF executable is empty." +msgstr "FBX2glTF 可执行文件的路径为空。" + +msgid "Path to FBX2glTF executable is invalid." +msgstr "FBX2glTF 可执行文件的路径无效。" + +msgid "Error executing this file (wrong version or architecture)." +msgstr "执行该文件时出错(版本或架构错误)。" + +msgid "FBX2glTF executable is valid." +msgstr "FBX2glTF 可执行文件有效。" + +msgid "Configure FBX Importer" +msgstr "配置 FBX 导入器" + +msgid "" +"FBX2glTF is required for importing FBX files.\n" +"Please download it and provide a valid path to the binary:" +msgstr "" +"导入 FBX 文件需要 FBX2glTF。\n" +"请下载它并提供该可执行文件的有效路径:" + +msgid "Click this link to download FBX2glTF" +msgstr "点击此链接下载 FBX2glTF" + msgid "Browse" msgstr "浏览" +msgid "Confirm Path" +msgstr "确认路径" + msgid "Favorites" msgstr "收藏" @@ -3018,6 +4470,12 @@ msgstr "移动出错:" msgid "Error duplicating:" msgstr "复制出错:" +msgid "Failed to save resource at %s: %s" +msgstr "保存位于 %s 的资源失败:%s" + +msgid "Failed to load resource at %s: %s" +msgstr "加载位于 %s 的资源失败:%s" + msgid "Unable to update dependencies:" msgstr "无法更新依赖:" @@ -3069,6 +4527,9 @@ msgstr "新建继承场景" msgid "Set As Main Scene" msgstr "设为主场景" +msgid "Instantiate" +msgstr "实例化" + msgid "Add to Favorites" msgstr "添加到收藏" @@ -3084,6 +4545,21 @@ msgstr "查看所有者..." msgid "Move To..." msgstr "移动..." +msgid "Folder..." +msgstr "文件夹..." + +msgid "Scene..." +msgstr "场景..." + +msgid "Script..." +msgstr "脚本..." + +msgid "Resource..." +msgstr "资源..." + +msgid "TextFile..." +msgstr "文本文件..." + msgid "New Scene..." msgstr "新建场景..." @@ -3093,6 +4569,12 @@ msgstr "新建脚本..." msgid "New Resource..." msgstr "新建资源..." +msgid "New TextFile..." +msgstr "新建文本文件..." + +msgid "Sort Files" +msgstr "文件排序" + msgid "Sort by Name (Ascending)" msgstr "按名称(升序)" @@ -3111,18 +4593,33 @@ msgstr "按最近修改" msgid "Sort by First Modified" msgstr "按最早修改" +msgid "Copy UID" +msgstr "复制 UID" + msgid "Duplicate..." msgstr "复制为..." msgid "Rename..." msgstr "重命名..." +msgid "Open in External Program" +msgstr "在外部程序中打开" + +msgid "Go to previous selected folder/file." +msgstr "转到之前选定的文件夹/文件。" + +msgid "Go to next selected folder/file." +msgstr "转到下一个选定的文件夹/文件。" + msgid "Re-Scan Filesystem" msgstr "重新扫描文件系统" msgid "Toggle Split Mode" msgstr "切换拆分模式" +msgid "Filter Files" +msgstr "筛选文件" + msgid "" "Scanning Files,\n" "Please Wait..." @@ -3168,9 +4665,21 @@ msgstr "替换..." msgid "Replace in Files" msgstr "在文件中替换" +msgid "Replace all (no undo)" +msgstr "全部替换(无法撤销)" + msgid "Searching..." msgstr "搜索中..." +msgid "%d match in %d file" +msgstr "%d 处匹配,共 %d 个文件" + +msgid "%d matches in %d file" +msgstr "%d 处匹配,共 %d 个文件" + +msgid "%d matches in %d files" +msgstr "%d 处匹配,共 %d 个文件" + msgid "Add to Group" msgstr "添加到分组" @@ -3207,12 +4716,172 @@ msgstr "分组编辑器" msgid "Manage Groups" msgstr "管理分组" +msgid "The Beginning" +msgstr "开始" + +msgid "Global" +msgstr "全局" + +msgid "Audio Stream Importer: %s" +msgstr "音频流导入器:%s" + msgid "Reimport" msgstr "重新导入" +msgid "Enable looping." +msgstr "启用循环。" + msgid "Offset:" msgstr "偏移:" +msgid "" +"Loop offset (from beginning). Note that if BPM is set, this setting will be " +"ignored." +msgstr "循环偏移(相对于开头)。注意如果设置了 BPM,这个设置会被忽略。" + +msgid "Loop:" +msgstr "循环:" + +msgid "BPM:" +msgstr "BPM:" + +msgid "" +"Configure the Beats Per Measure (tempo) used for the interactive streams.\n" +"This is required in order to configure beat information." +msgstr "" +"配置互动流使用的每小节拍数(节奏)。\n" +"这是配置节拍信息所必需的。" + +msgid "Beat Count:" +msgstr "拍数:" + +msgid "" +"Configure the amount of Beats used for music-aware looping. If zero, it will " +"be autodetected from the length.\n" +"It is recommended to set this value (either manually or by clicking on a " +"beat number in the preview) to ensure looping works properly." +msgstr "" +"配置用于音乐感知循环的拍数。如果为零,它将从长度中自动检测出来。\n" +"建议设置这个值(手动或点击预览中的拍数),以确保循环工作正常。" + +msgid "Bar Beats:" +msgstr "节拍:" + +msgid "" +"Configure the Beats Per Bar. This used for music-aware transitions between " +"AudioStreams." +msgstr "配置每小节的拍数。这用于音频流之间的音乐感知过渡。" + +msgid "Music Playback:" +msgstr "播放音乐:" + +msgid "New Configuration" +msgstr "新建配置" + +msgid "Remove Variation" +msgstr "移除变体" + +msgid "" +"Warning: There are no configurations specified, no glyphs will be pre-" +"rendered." +msgstr "警告:没有指定配置,没有字形将被预渲染。" + +msgid "" +"Warning: Multiple configurations have identical settings. Duplicates will be " +"ignored." +msgstr "警告:多个配置有相同的设置。重复的将被忽略。" + +msgid "" +"Note: LCD Subpixel antialiasing is selected, each of the glyphs will be pre-" +"rendered for all supported subpixel layouts (5x)." +msgstr "" +"注意:选中了 LCD 次像素抗锯齿,每个字形都会针对所有支持的次像素布局进行预渲染" +"(5 倍)。" + +msgid "" +"Note: Subpixel positioning is selected, each of the glyphs might be pre-" +"rendered for multiple subpixel offsets (up to 4x)." +msgstr "" +"注意:选中了次像素定位,每个字形都可能针对多种次像素偏移进行渲染(最多 4 " +"倍)。" + +msgid "Advanced Import Settings for '%s'" +msgstr "“%s”高级导入设置" + +msgid "Rendering Options" +msgstr "渲染选项" + +msgid "Select font rendering options, fallback font, and metadata override:" +msgstr "选择字体渲染选项、后备字体和元数据覆盖:" + +msgid "Pre-render Configurations" +msgstr "预渲染配置" + +msgid "" +"Add font size, and variation coordinates, and select glyphs to pre-render:" +msgstr "添加字体大小和变体坐标,并选择字形进行预渲染:" + +msgid "Configuration:" +msgstr "配置:" + +msgid "Add configuration" +msgstr "添加配置" + +msgid "Clear Glyph List" +msgstr "清空字形列表" + +msgid "Glyphs from the Translations" +msgstr "翻译中的字形" + +msgid "Select translations to add all required glyphs to pre-render list:" +msgstr "选择翻译以将所有必需的字形添加到预渲染列表中:" + +msgid "Shape all Strings in the Translations and Add Glyphs" +msgstr "塑形翻译中的所有字符串并添加字形" + +msgid "Glyphs from the Text" +msgstr "文本中的字形" + +msgid "" +"Enter a text and select OpenType features to shape and add all required " +"glyphs to pre-render list:" +msgstr "" +"输入文本并选择 OpenType 功能来塑形,并将所有必需的字形添加到预渲染列表中:" + +msgid "Shape Text and Add Glyphs" +msgstr "塑形文本并添加字形" + +msgid "Glyphs from the Character Map" +msgstr "字符映射表中的字形" + +msgid "" +"Add or remove glyphs from the character map to pre-render list:\n" +"Note: Some stylistic alternatives and glyph variants do not have one-to-one " +"correspondence to character, and not shown in this map, use \"Glyphs from " +"the text\" tab to add these." +msgstr "" +"在字符映射表中添加或移除字形到预渲染列表:\n" +"注意: 某些样式替代项和字形变体与字符没有一对一的对应关系,并且未在此映射表中" +"显示,请使用“文本中的字形”选项卡添加这些内容。" + +msgid "Dynamically rendered TrueType/OpenType font" +msgstr "动态渲染的 TrueType/OpenType 字体" + +msgid "Prerendered multichannel(+true) signed distance field" +msgstr "预渲染的多通道(+true)有符号距离场" + +msgid "Can't load font texture:" +msgstr "无法加载字体纹理:" + +msgid "Image margin too big." +msgstr "图像边距太大。" + +msgid "Character margin too bit." +msgstr "字符边距太小。" + +msgid "Pre-Import Scene" +msgstr "预导入场景" + msgid "Importing Scene..." msgstr "导入场景中..." @@ -3231,28 +4900,165 @@ msgstr "导入后处理脚本无效或已损坏(请查看控制台):" msgid "Error running post-import script:" msgstr "后处理脚本运行发生错误:" +msgid "Did you return a Node-derived object in the `_post_import()` method?" +msgstr "你是否在 `_post_import()` 方法中返回了一个 Node 派生对象?" + msgid "Saving..." msgstr "保存中..." msgid "" +"Error importing GLSL shader file: '%s'. Open the file in the filesystem dock " +"in order to see the reason." +msgstr "" +"在导入 GLSL 着色器文件时出错:“%s”。在文件系统停靠面板中打开该文件,以便查看" +"原因。" + +msgid "" "%s: Texture detected as used as a normal map in 3D. Enabling red-green " "texture compression to reduce memory usage (blue channel is discarded)." msgstr "" "%s:检测到纹理被用于 3D 法线贴图。正在启用红绿纹理压缩,降低内存使用(蓝通道" "被丢弃)。" +msgid "" +"%s: Texture detected as used as a roughness map in 3D. Enabling roughness " +"limiter based on the detected associated normal map at %s." +msgstr "" +"%s:检测到纹理被用作 3D 粗糙度贴图。根据在 %s 处检测到的关联法线贴图,启用粗" +"糙度限制器。" + +msgid "" +"%s: Texture detected as used in 3D. Enabling mipmap generation and setting " +"the texture compression mode to %s." +msgstr "%s:检测到纹理被用于 3D。启用 mipmap 生成并将纹理压缩模式设置为 %s。" + +msgid "2D/3D (Auto-Detect)" +msgstr "2D/3D(自动检测)" + msgid "2D" msgstr "2D" msgid "3D" msgstr "3D" +msgid "<Unnamed Material>" +msgstr "<未命名材质>" + +msgid "Import ID: %s" +msgstr "导入 ID:%s" + +msgid "" +"Type: %s\n" +"Import ID: %s" +msgstr "" +"类型:%s\n" +"导入 ID:%s" + +msgid "Error opening scene" +msgstr "打开场景出错" + +msgid "Advanced Import Settings for AnimationLibrary '%s'" +msgstr "动画库“%s”高级导入设置" + +msgid "Advanced Import Settings for Scene '%s'" +msgstr "场景“%s”高级导入设置" + +msgid "Select folder to extract material resources" +msgstr "选择文件夹以提取材质资源" + +msgid "Select folder where mesh resources will save on import" +msgstr "选择导入时保存网格资源的文件夹" + +msgid "Select folder where animations will save on import" +msgstr "选择导入时保存动画的文件夹" + +msgid "Existing file with the same name will be replaced." +msgstr "已存在的同名文件将被替换。" + +msgid "" +"This material already references an external file, no action will be taken.\n" +"Disable the external property for it to be extracted again." +msgstr "" +"该材质已引用一个外部文件,故不采取任何操作。\n" +"禁用该外部属性以再次提取它。" + +msgid "" +"Material has no name nor any other way to identify on re-import.\n" +"Please name it or ensure it is exported with an unique ID." +msgstr "" +"材质没有名称,也没有任何其他可在重新导入时识别的方式。\n" +"请命名它或确保它使用唯一的 ID 导出。" + +msgid "Extract Materials to Resource Files" +msgstr "提取材质到资源文件" + +msgid "Extract" +msgstr "提取" + +msgid "" +"This mesh already saves to an external resource, no action will be taken." +msgstr "这个网格已经保存到一个外部资源,故不采取任何行动。" + +msgid "Existing file with the same name will be replaced on import." +msgstr "现有的同名文件将在导入时被替换。" + +msgid "" +"Mesh has no name nor any other way to identify on re-import.\n" +"Please name it or ensure it is exported with an unique ID." +msgstr "" +"网格没有名称,也没有任何其他可在重新导入时识别的方式。\n" +"请命名它或确保它使用唯一的 ID 导出。" + +msgid "Set paths to save meshes as resource files on Reimport" +msgstr "设置路径以在重新导入时将网格保存为资源文件" + +msgid "Set Paths" +msgstr "设置路径" + +msgid "" +"This animation already saves to an external resource, no action will be " +"taken." +msgstr "这个动画已经保存到一个外部资源,将不采取任何行动。" + +msgid "Set paths to save animations as resource files on Reimport" +msgstr "设置路径以在重新导入时将动画另存为资源文件" + +msgid "Can't make material external to file, write error:" +msgstr "无法将材质保存到外部文件中,写入错误:" + +msgid "Actions..." +msgstr "动作..." + +msgid "Extract Materials" +msgstr "提取材质" + +msgid "Set Animation Save Paths" +msgstr "设置动画保存路径" + +msgid "Set Mesh Save Paths" +msgstr "设置网格保存路径" + msgid "Meshes" msgstr "网格" msgid "Materials" msgstr "材质" +msgid "Save Extension:" +msgstr "保存扩展名:" + +msgid "Text: *.tres" +msgstr "文本:*.tres" + +msgid "Binary: *.res" +msgstr "二进制:*.res" + +msgid "Text Resource" +msgstr "文本资源" + +msgid "Binary Resource" +msgstr "二进制资源" + msgid "Select Importer" msgstr "选择导入器" @@ -3287,6 +5093,9 @@ msgstr "导入为:" msgid "Preset" msgstr "预设" +msgid "Advanced..." +msgstr "高级..." + msgid "Save Scenes, Re-Import, and Restart" msgstr "保存场景、重新导入,然后重启" @@ -3295,19 +5104,68 @@ msgstr "改变这个导入的文件类型后需要重启编辑器。" msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." -msgstr "警告:存在使用本资源的素材,将会停止加载。" +msgstr "警告:存在使用本资源的资产,将会停止加载。" msgid "" "Select a resource file in the filesystem or in the inspector to adjust " "import settings." msgstr "要调整导入设置,请在文件系统或检查器中选中资源文件。" +msgid "No Event Configured" +msgstr "未配置事件" + +msgid "Keyboard Keys" +msgstr "键盘按键" + +msgid "Mouse Buttons" +msgstr "鼠标按键" + +msgid "Joypad Buttons" +msgstr "手柄按键" + +msgid "Joypad Axes" +msgstr "游戏手柄轴" + +msgid "Event Configuration" +msgstr "事件配置" + +msgid "Manual Selection" +msgstr "手动选择" + +msgid "Filter Inputs" +msgstr "筛选输入" + +msgid "Additional Options" +msgstr "额外选项" + msgid "Device:" msgstr "设备:" +msgid "Command / Control (auto)" +msgstr "Command / Ctrl(自动)" + +msgid "" +"Automatically remaps between 'Meta' ('Command') and 'Control' depending on " +"current platform." +msgstr "根据当前平台,在“Meta”(“Command”)和“Ctrl”之间自动重映射。" + +msgid "" +"The following resources will be duplicated and embedded within this resource/" +"object." +msgstr "以下资源将被复制并嵌入该资源/对象中。" + +msgid "This object has no resources." +msgstr "这个对象没有资源。" + msgid "Failed to load resource." msgstr "加载资源失败。" +msgid "(Current)" +msgstr "(当前)" + +msgid "Expand Non-Default" +msgstr "展开非默认项" + msgid "Property Name Style" msgstr "属性名称样式" @@ -3356,15 +5214,27 @@ msgstr "复制资源" msgid "Make Resource Built-In" msgstr "将资源转为内置" +msgid "Go to previous edited object in history." +msgstr "前往历史记录中上一个编辑的对象。" + +msgid "Go to next edited object in history." +msgstr "前往历史记录中下一个编辑的对象。" + msgid "History of recently edited objects." msgstr "最近编辑历史对象。" msgid "Open documentation for this object." msgstr "打开该对象的文档。" +msgid "Filter Properties" +msgstr "筛选属性" + msgid "Manage object properties." msgstr "管理对象属性。" +msgid "This cannot be undone. Are you sure?" +msgstr "这个操作无法撤消。你确定吗?" + msgid "Add %d Translations" msgstr "添加 %d 个翻译" @@ -3386,6 +5256,18 @@ msgstr "移除资源重定向" msgid "Remove Resource Remap Option" msgstr "移除资源重定向选项" +msgid "Add %d file(s) for POT generation" +msgstr "向 POT 生成中添加 %d 个文件" + +msgid "Remove file from POT generation" +msgstr "从 POT 生成中移除文件" + +msgid "Removed" +msgstr "已移除" + +msgid "%s cannot be found." +msgstr "无法找到 %s。" + msgid "Translations" msgstr "翻译" @@ -3404,9 +5286,36 @@ msgstr "按区域重定向:" msgid "Locale" msgstr "区域" +msgid "POT Generation" +msgstr "POT 生成" + +msgid "Files with translation strings:" +msgstr "包含可翻译字符串的文件:" + +msgid "Generate POT" +msgstr "生成 POT" + +msgid "Set %s on %d nodes" +msgstr "设置 %s 共 %d 个节点" + +msgid "%s (%d Selected)" +msgstr "%s(选中 %d 个)" + msgid "Select a single node to edit its signals and groups." msgstr "选择一个节点以编辑其信号和分组。" +msgid "Plugin name cannot be blank." +msgstr "插件名称不能为空。" + +msgid "Script extension must match chosen language extension (.%s)." +msgstr "脚本扩展名必须与所选语言的扩展名一致(.%s)。" + +msgid "Subfolder name is not a valid folder name." +msgstr "子文件夹名称不是有效的文件夹名。" + +msgid "Subfolder cannot be one which already exists." +msgstr "子文件夹不能已存在。" + msgid "Edit a Plugin" msgstr "编辑插件" @@ -3476,9 +5385,15 @@ msgstr "加载..." msgid "Move Node Point" msgstr "移动节点顶点" +msgid "Change BlendSpace1D Config" +msgstr "修改 BlendSpace1D 配置" + msgid "Change BlendSpace1D Labels" msgstr "修改 BlendSpace1D 标签" +msgid "This type of node can't be used. Only animation nodes are allowed." +msgstr "此类型的节点不能被使用。仅允许使用动画节点。" + msgid "This type of node can't be used. Only root nodes are allowed." msgstr "此类型的节点不能被使用。仅允许使用根节点。" @@ -3508,7 +5423,13 @@ msgid "Select and move points, create points with RMB." msgstr "选择并移动点,使用鼠标右键创建点。" msgid "Enable snap and show grid." -msgstr "启用吸附并显示网格。" +msgstr "启用吸附并显示栅格。" + +msgid "Sync:" +msgstr "同步:" + +msgid "Blend:" +msgstr "混合:" msgid "Point" msgstr "点" @@ -3525,6 +5446,9 @@ msgstr "三角形已经存在。" msgid "Add Triangle" msgstr "添加三角形" +msgid "Change BlendSpace2D Config" +msgstr "修改 BlendSpace2D 配置" + msgid "Change BlendSpace2D Labels" msgstr "修改 BlendSpace2D 标签" @@ -3541,7 +5465,7 @@ msgid "No triangles exist, so no blending can take place." msgstr "不存在任何三角形,因此不会有任何混效果合产生。" msgid "Toggle Auto Triangles" -msgstr "打开/关闭自动三角形" +msgstr "开关自动三角形" msgid "Create triangles by connecting points." msgstr "通过连接点来创建三角形。" @@ -3552,14 +5476,11 @@ msgstr "擦除点和三角形。" msgid "Generate blend triangles automatically (instead of manually)" msgstr "自动生成混合三角形(而非手动)" -msgid "Blend:" -msgstr "混合:" - msgid "Parameter Changed:" msgstr "修改参数:" -msgid "Edit Filters" -msgstr "编辑筛选器" +msgid "Inspect Filters" +msgstr "查看筛选器" msgid "Output node can't be added to the blend tree." msgstr "输出节点不能被添加到混合树。" @@ -3614,6 +5535,9 @@ msgstr "音频剪辑" msgid "Functions" msgstr "函数" +msgid "Inspect Filtered Tracks:" +msgstr "查看轨道过滤器:" + msgid "Edit Filtered Tracks:" msgstr "编辑轨道过滤器:" @@ -3626,23 +5550,172 @@ msgstr "添加节点..." msgid "Enable Filtering" msgstr "启用筛选" +msgid "Library Name:" +msgstr "库名称:" + +msgid "Animation name can't be empty." +msgstr "动画名称不能为空。" + +msgid "Animation name contains invalid characters: '/', ':', ',' or '['." +msgstr "动画名称中存在无效字符:“/”、“:”、“,”或“[”。" + +msgid "Animation with the same name already exists." +msgstr "已存在同名动画。" + +msgid "Enter a library name." +msgstr "输入库名称。" + +msgid "Library name contains invalid characters: '/', ':', ',' or '['." +msgstr "库名称包含无效字符:“/”、“:”、“,”或“[”。" + +msgid "Library with the same name already exists." +msgstr "已存在同名库。" + +msgid "Animation name is valid." +msgstr "动画名称有效。" + +msgid "Global library will be created." +msgstr "全局库将被创建。" + +msgid "Library name is valid." +msgstr "库名称有效。" + +msgid "Add Animation to Library: %s" +msgstr "添加动画到库:%s" + +msgid "Add Animation Library: %s" +msgstr "添加动画库:%s" + msgid "Load Animation" msgstr "加载动画" +msgid "" +"This animation library can't be saved because it does not belong to the " +"edited scene. Make it unique first." +msgstr "无法保存此动画库,因为它不属于编辑的场景。请先唯一化此资源。" + +msgid "" +"This animation library can't be saved because it was imported from another " +"file. Make it unique first." +msgstr "无法保存此动画库,因为它是从另一个文件导入的。请先唯一化它。" + +msgid "Save Library" +msgstr "保存库" + +msgid "Make Animation Library Unique: %s" +msgstr "使动画库唯一:%s" + +msgid "" +"This animation can't be saved because it does not belong to the edited " +"scene. Make it unique first." +msgstr "无法保存此动画,因为它不属于已编辑的场景。请先唯一化。" + +msgid "" +"This animation can't be saved because it was imported from another file. " +"Make it unique first." +msgstr "无法保存此动画,因为它是从另一个文件导入的。请先唯一化。" + +msgid "Save Animation" +msgstr "保存动画" + +msgid "Make Animation Unique: %s" +msgstr "使动画唯一:%s" + +msgid "Invalid AnimationLibrary file." +msgstr "无效的 AnimationLibrary 文件。" + +msgid "This library is already added to the player." +msgstr "这个库已经被添加到播放器中。" + +msgid "Invalid Animation file." +msgstr "无效的动画文件。" + +msgid "This animation is already added to the library." +msgstr "这个动画已经被添加到库中。" + +msgid "Load Animation into Library: %s" +msgstr "将动画加载到库中:%s" + +msgid "Save Animation library to File: %s" +msgstr "保存动画库到文件:%s" + +msgid "Save Animation to File: %s" +msgstr "保存动画到文件:%s" + +msgid "Rename Animation Library: %s" +msgstr "重命名动画库:%s" + +msgid "[Global]" +msgstr "[全局]" + +msgid "Rename Animation: %s" +msgstr "重命名动画:%s" + msgid "Animation Name:" msgstr "动画名称:" +msgid "No animation resource in clipboard!" +msgstr "剪贴板中没有动画资源!" + msgid "Pasted Animation" msgstr "已粘贴的动画" msgid "Open in Inspector" msgstr "在检查器中打开" +msgid "Remove Animation Library: %s" +msgstr "移除动画库:%s" + +msgid "Remove Animation from Library: %s" +msgstr "从库中移除动画:%s" + +msgid "[built-in]" +msgstr "[内置]" + +msgid "[foreign]" +msgstr "[外部]" + +msgid "[imported]" +msgstr "[已导入]" + +msgid "Add Animation to Library" +msgstr "添加动画到库" + +msgid "Load animation from file and add to library" +msgstr "从文件中加载动画并添加到库中" + +msgid "Paste Animation to Library from clipboard" +msgstr "将动画从剪贴板粘贴到库中" + +msgid "Save animation library to resource on disk" +msgstr "将动画库保存为磁盘上的资源" + +msgid "Remove animation library" +msgstr "移除动画库" + +msgid "Copy animation to clipboard" +msgstr "将动画复制到剪贴板" + +msgid "Save animation to resource on disk" +msgstr "将动画保存为磁盘上的资源" + +msgid "Remove animation from Library" +msgstr "从库中移除动画" + +msgid "Edit Animation Libraries" +msgstr "编辑动画库" + +msgid "Add Library" +msgstr "添加库" + +msgid "Load Library" +msgstr "加载库" + msgid "Storage" msgstr "存储" msgid "Toggle Autoplay" -msgstr "打开/关闭自动播放" +msgstr "开关自动播放" msgid "Create New Animation" msgstr "创建新动画" @@ -3656,12 +5729,18 @@ msgstr "重命名动画" msgid "Change Animation Name:" msgstr "修改动画名称:" +msgid "Delete Animation '%s'?" +msgstr "是否删除动画“%s”?" + msgid "Remove Animation" msgstr "移除动画" msgid "Invalid animation name!" msgstr "无效的动画名称!" +msgid "Animation '%s' already exists!" +msgstr "动画“%s”已存在!" + msgid "Duplicate Animation" msgstr "复制动画" @@ -3671,15 +5750,18 @@ msgstr "混合下一步变更" msgid "Change Blend Time" msgstr "修改混合时间" +msgid "[Global] (create)" +msgstr "[全局](创建)" + +msgid "Duplicated Animation Name:" +msgstr "重复的动画名称:" + msgid "Play selected animation backwards from current pos. (A)" msgstr "从当前位置倒放选中动画(A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "从结束时间倒放选中动画(Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "停止动画播放。(S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "从头播放选中动画(Shift+D)" @@ -3698,6 +5780,9 @@ msgstr "动画工具" msgid "Animation" msgstr "动画" +msgid "Manage Animations..." +msgstr "管理动画..." + msgid "Edit Transitions..." msgstr "编辑过渡方式..." @@ -3743,6 +5828,9 @@ msgstr "强制用白色调和" msgid "Include Gizmos (3D)" msgstr "包括小工具(3D)" +msgid "Onion Skinning temporarily disabled due to rendering bug." +msgstr "洋葱皮由于渲染错误而暂时禁用。" + msgid "Pin AnimationPlayer" msgstr "固定 AnimationPlayer" @@ -3767,6 +5855,9 @@ msgstr "过渡已存在!" msgid "To" msgstr "终点" +msgid "Add Node and Transition" +msgstr "添加节点和过渡" + msgid "Add Transition" msgstr "添加过渡" @@ -3794,6 +5885,17 @@ msgstr "节点已移除" msgid "Transition Removed" msgstr "过渡已移除" +msgid "" +"Select and move nodes.\n" +"RMB: Add node at position clicked.\n" +"Shift+LMB+Drag: Connects the selected node with another node or creates a " +"new node if you select an area without nodes." +msgstr "" +"选择和移动节点。\n" +"右键:在点击的位置添加节点。\n" +"Shift+左键+拖动:将选定节点与另一个节点连接,如果你选择一个没有节点的区域,则" +"创建一个新节点。" + msgid "Create new nodes." msgstr "创建新节点。" @@ -3803,18 +5905,27 @@ msgstr "连接节点。" msgid "Group Selected Node(s)" msgstr "编组所选节点" +msgid "Ungroup Selected Node" +msgstr "取消选定节点的分组" + msgid "Remove selected node or transition." msgstr "移除选中的节点或过渡动画。" msgid "Transition:" msgstr "过渡:" +msgid "New Transitions Should Auto Advance" +msgstr "新的过渡应当自动推进" + msgid "Play Mode:" msgstr "播放模式:" msgid "Delete Selected" msgstr "删除选中项" +msgid "Delete All" +msgstr "全部删除" + msgid "Root" msgstr "根" @@ -3888,7 +5999,10 @@ msgid "Failed SHA-256 hash check" msgstr "SHA-256 哈希值校验失败" msgid "Asset Download Error:" -msgstr "素材下载出错:" +msgstr "资产下载出错:" + +msgid "Ready to install!" +msgstr "准备安装!" msgid "Downloading (%s / %s)..." msgstr "下载中 (%s / %s)..." @@ -3960,6 +6074,23 @@ msgstr "末页" msgid "All" msgstr "全部" +msgid "No results for \"%s\" for support level(s): %s." +msgstr "没有找到结果“%s”在支持的级别中:%s。" + +msgid "" +"No results compatible with %s %s for support level(s): %s.\n" +"Check the enabled support levels using the 'Support' button in the top-right " +"corner." +msgstr "" +"支持级别 %s 中没有与 %s %s 兼容的结果。\n" +"请检查右上角“支持”按钮所启用的支持级别。" + +msgid "Search Templates, Projects, and Demos" +msgstr "搜索模板、项目和演示" + +msgid "Search Assets (Excluding Templates, Projects, and Demos)" +msgstr "搜索资产(不包含模板、项目和演示)" + msgid "Import..." msgstr "导入..." @@ -3982,11 +6113,17 @@ msgid "Failed to get repository configuration." msgstr "获取仓库配置失败。" msgid "Assets ZIP File" -msgstr "素材 ZIP 文件" +msgstr "资产 ZIP 文件" msgid "Audio Preview Play/Pause" msgstr "音频预览播放/暂停" +msgid "Bone Picker:" +msgstr "骨骼拾取器:" + +msgid "Clear mappings in current group." +msgstr "清除当前组中的映射。" + msgid "Preview" msgstr "预览" @@ -3994,10 +6131,10 @@ msgid "Configure Snap" msgstr "设置吸附" msgid "Grid Offset:" -msgstr "网格偏移:" +msgstr "栅格偏移:" msgid "Grid Step:" -msgstr "网格步长:" +msgstr "栅格步长:" msgid "Primary Line Every:" msgstr "主线间隔:" @@ -4014,6 +6151,9 @@ msgstr "旋转步长:" msgid "Scale Step:" msgstr "缩放步长:" +msgid "Move Node(s) to Position" +msgstr "移动节点到位置" + msgid "Move Vertical Guide" msgstr "移动垂直参考线" @@ -4074,6 +6214,27 @@ msgstr "已分组" msgid "Add Node Here" msgstr "在此处添加节点" +msgid "Instantiate Scene Here" +msgstr "在此处实例化场景" + +msgid "Paste Node(s) Here" +msgstr "在此处粘贴节点" + +msgid "Move Node(s) Here" +msgstr "移动节点到此处" + +msgid "px" +msgstr "px" + +msgid "units" +msgstr "单位" + +msgid "Moving:" +msgstr "移动:" + +msgid "Rotating:" +msgstr "旋转:" + msgid "Scaling:" msgstr "缩放:" @@ -4110,6 +6271,9 @@ msgstr "粘贴姿势" msgid "Clear Guides" msgstr "清除参考线" +msgid "Create Custom Bone2D(s) from Node(s)" +msgstr "从节点创建自定义 Bone2D" + msgid "Zoom to 3.125%" msgstr "缩放至 3.125%" @@ -4173,12 +6337,19 @@ msgstr "缩放模式" msgid "Shift: Scale proportionally." msgstr "Shift:按比例缩放。" +msgid "Show list of selectable nodes at position clicked." +msgstr "在点击的位置显示可选择的节点列表。" + msgid "Click to change object's rotation pivot." msgstr "点击更改对象的旋转轴心。" msgid "Pan Mode" msgstr "平移模式" +msgid "" +"You can also use Pan View shortcut (Space by default) to pan in any mode." +msgstr "您还可以使用平移视图快捷键(默认为空格)在任何模式下平移。" + msgid "Ruler Mode" msgstr "标尺模式" @@ -4189,10 +6360,10 @@ msgid "Use Smart Snap" msgstr "使用智能吸附" msgid "Toggle grid snapping." -msgstr "开关网格吸附。" +msgstr "开关栅格吸附。" msgid "Use Grid Snap" -msgstr "使用网格吸附" +msgstr "使用栅格吸附" msgid "Snapping Options" msgstr "吸附选项" @@ -4233,12 +6404,24 @@ msgstr "吸附到其他节点" msgid "Snap to Guides" msgstr "吸附到参考线" +msgid "Lock selected node, preventing selection and movement." +msgstr "锁定选定的节点,防止选择和移动。" + msgid "Lock Selected Node(s)" msgstr "锁定所选节点" +msgid "Unlock selected node, allowing selection and movement." +msgstr "解锁选定的节点,允许选择和移动。" + msgid "Unlock Selected Node(s)" msgstr "解锁所选节点" +msgid "Make selected node's children not selectable." +msgstr "使所选节点的子节点不可选择。" + +msgid "Make selected node's children selectable." +msgstr "使所选节点的子节点可选。" + msgid "Ungroup Selected Node(s)" msgstr "解组所选节点" @@ -4248,6 +6431,9 @@ msgstr "骨架选项" msgid "Show Bones" msgstr "显示骨骼" +msgid "Make Bone2D Node(s) from Node(s)" +msgstr "从节点创建 Bone2D 节点" + msgid "View" msgstr "视图" @@ -4261,10 +6447,10 @@ msgid "Hide" msgstr "隐藏" msgid "Toggle Grid" -msgstr "切换网格" +msgstr "切换栅格" msgid "Grid" -msgstr "网格" +msgstr "栅格" msgid "Show Helpers" msgstr "显示辅助信息" @@ -4284,6 +6470,9 @@ msgstr "显示视口" msgid "Show Group And Lock Icons" msgstr "显示分组和锁定图标" +msgid "Show Transformation Gizmos" +msgstr "显示变换小工具" + msgid "Center Selection" msgstr "居中显示所选项" @@ -4331,29 +6520,85 @@ msgid "Clear Pose" msgstr "清除姿势" msgid "Multiply grid step by 2" -msgstr "网格步进乘以 2" +msgstr "栅格步进乘以 2" msgid "Divide grid step by 2" -msgstr "网格步进除以 2" +msgstr "栅格步进除以 2" msgid "Adding %s..." msgstr "正在添加 %s..." +msgid "Drag and drop to add as child of current scene's root node." +msgstr "拖放以添加为当前场景根节点的子节点。" + +msgid "Hold Ctrl when dropping to add as child of selected node." +msgstr "放下时按住 Ctrl 以添加为所选节点的子节点。" + +msgid "Hold Shift when dropping to add as sibling of selected node." +msgstr "放下时按住 Shift 以添加为所选节点的同级节点。" + +msgid "Hold Alt when dropping to add as a different node type." +msgstr "放下时按住 Alt 以添加为不同的节点类型。" + msgid "Cannot instantiate multiple nodes without root." msgstr "没有根节点无法实例化多个节点。" msgid "Create Node" msgstr "创建节点" +msgid "Error instantiating scene from %s" +msgstr "从 %s 实例化场景时出错" + msgid "Change Default Type" msgstr "修改默认类型" +msgid "Set target_position" +msgstr "设置 target_position" + msgid "Set Handle" msgstr "设置处理程序" +msgid "This node doesn't have a control parent." +msgstr "这个节点没有父控件。" + +msgid "" +"Use the appropriate layout properties depending on where you are going to " +"put it." +msgstr "根据要放置的位置使用适当的布局属性。" + +msgid "This node is a child of a container." +msgstr "这个节点是容器的子节点。" + +msgid "Use container properties for positioning." +msgstr "使用容器属性进行定位。" + +msgid "This node is a child of a regular control." +msgstr "这个节点是普通控件的子节点。" + +msgid "Use anchors and the rectangle for positioning." +msgstr "使用锚点和矩形进行定位。" + +msgid "Collapse positioning hint." +msgstr "折叠定位提示。" + +msgid "Expand positioning hint." +msgstr "展开定位提示。" + +msgid "Container Default" +msgstr "容器默认" + msgid "Fill" msgstr "填充" +msgid "Shrink Begin" +msgstr "始端收缩" + +msgid "Shrink Center" +msgstr "居中收缩" + +msgid "Shrink End" +msgstr "末端收缩" + msgid "Custom" msgstr "自定义" @@ -4408,9 +6653,63 @@ msgstr "右侧全幅" msgid "Full Rect" msgstr "整个矩形" +msgid "" +"Enable to also set the Expand flag.\n" +"Disable to only set Shrink/Fill flags." +msgstr "" +"启用,同时设置扩展标志。\n" +"禁用,只设置收缩/填充标志。" + +msgid "Some parents of the selected nodes do not support the Expand flag." +msgstr "所选节点的某些父节点不支持扩展标志。" + +msgid "Align with Expand" +msgstr "对齐展开" + +msgid "Change Anchors, Offsets, Grow Direction" +msgstr "更改锚点、偏移、增长方向" + +msgid "Change Anchors, Offsets (Keep Ratio)" +msgstr "改变锚点、偏移量(保持比例)" + +msgid "Change Vertical Size Flags" +msgstr "更改垂直大小标志" + +msgid "Change Horizontal Size Flags" +msgstr "更改水平大小标志" + +msgid "Presets for the anchor and offset values of a Control node." +msgstr "控制节点的锚点和偏移值的预设。" + +msgid "Anchor preset" +msgstr "锚点预设" + +msgid "Set to Current Ratio" +msgstr "设为当前比例" + +msgid "Adjust anchors and offsets to match the current rect size." +msgstr "调整锚点和偏移量以匹配当前的矩形尺寸。" + +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"offsets." +msgstr "激活后,移动 Control 节点会更改变锚点,而非边距。" + +msgid "Sizing settings for children of a Container node." +msgstr "Container 节点的子节点的大小设置。" + +msgid "Horizontal alignment" +msgstr "水平对齐" + +msgid "Vertical alignment" +msgstr "垂直对齐" + msgid "Load Emission Mask" msgstr "加载发射遮罩" +msgid "CPUParticles2D" +msgstr "CPUParticles2D" + msgid "Generated Point Count:" msgstr "生成顶点计数:" @@ -4432,6 +6731,9 @@ msgstr "从像素捕获" msgid "Emission Colors" msgstr "发射色彩" +msgid "CPUParticles3D" +msgstr "CPUParticles3D" + msgid "Create Emission Points From Node" msgstr "从节点创建发射点" @@ -4518,8 +6820,8 @@ msgid "" msgstr "" "启用该选项时,一键部署到 Android 时所导出的可执行文件将不包含项目数据。\n" "文件系统将由编辑器基于项目通过网络提供。\n" -"在 Android 平台,部署将通过 USB 线缆进行以提高性能。如果项目中包含较大的素" -"材,该选项可提高测试速度。" +"在 Android 平台,部署将通过 USB 线缆进行以提高性能。如果项目中包含较大的资" +"产,该选项可提高测试速度。" msgid "Visible Collision Shapes" msgstr "显示碰撞区域" @@ -4529,6 +6831,14 @@ msgid "" "3D) will be visible in the running project." msgstr "启用该选项时,碰撞区域和光线投射节点(2D 和 3D)将在项目运行时可见。" +msgid "Visible Paths" +msgstr "显示路径" + +msgid "" +"When this option is enabled, curve resources used by path nodes will be " +"visible in the running project." +msgstr "启用该选项时,路径节点的曲线资源将在项目运行时可见。" + msgid "Visible Navigation" msgstr "显示导航" @@ -4561,15 +6871,61 @@ msgstr "" "启用该选项时,任何保存的脚本都会被正在运行的项目重新加载。\n" "当使用于远程设备时,启用网络文件系统能提高编辑效率。" +msgid "Keep Debug Server Open" +msgstr "调试服务器保持开放" + +msgid "" +"When this option is enabled, the editor debug server will stay open and " +"listen for new sessions started outside of the editor itself." +msgstr "" +"启用该选项时,编辑器的调试服务器将保持开放,监听在编辑器本身之外开始的新会" +"话。" + +msgid "Run Multiple Instances" +msgstr "运行多个实例" + +msgid "Overrides (%d)" +msgstr "覆盖(%d)" + +msgid "Add Locale" +msgstr "添加区域" + +msgid "Variation Coordinates (%d)" +msgstr "变体坐标(%d)" + +msgid "No supported features" +msgstr "不支持的特性" + +msgid "Features (%d of %d set)" +msgstr "功能(%d / %d)" + +msgid "Add Feature" +msgstr "添加特性" + +msgid " - Variation" +msgstr " - 变体" + +msgid "Unable to preview font" +msgstr "无法预览字体" + msgid "Convert to CPUParticles2D" msgstr "转换为 CPUParticles2D" +msgid "Generating Visibility Rect (Waiting for Particle Simulation)" +msgstr "正在生成可视矩形(等待粒子模拟)" + msgid "Generate Visibility Rect" -msgstr "生成可视化区域" +msgstr "生成可视矩形" + +msgid "Can only set point into a ParticleProcessMaterial process material" +msgstr "只可设为指向 ParticleProcessMaterial 处理材质" msgid "Clear Emission Mask" msgstr "清除发射遮罩" +msgid "GPUParticles2D" +msgstr "GPUParticles2D" + msgid "Generation Time (sec):" msgstr "生成时间(秒):" @@ -4579,6 +6935,9 @@ msgstr "几何(面)不包含任何区域。" msgid "The geometry doesn't contain any faces." msgstr "几何体不包含任何面。" +msgid "\"%s\" doesn't inherit from Node3D." +msgstr "“%s”未继承 Node3D。" + msgid "\"%s\" doesn't contain geometry." msgstr "“%s” 不包含几何体。" @@ -4603,12 +6962,62 @@ msgstr "体积" msgid "Emission Source:" msgstr "发射源:" +msgid "A processor material of type 'ParticleProcessMaterial' is required." +msgstr "需要“ParticleProcessMaterial”类型的处理材质。" + +msgid "Convert to CPUParticles3D" +msgstr "转换为 CPUParticles3D" + +msgid "Generating Visibility AABB (Waiting for Particle Simulation)" +msgstr "正在生成可见 AABB(等待粒子模拟)" + msgid "Generate Visibility AABB" -msgstr "生成可见的 AABB" +msgstr "生成可见 AABB" + +msgid "GPUParticles3D" +msgstr "GPUParticles3D" + +msgid "Generate AABB" +msgstr "生成 AABB" + +msgid "Low" +msgstr "低" + +msgid "Moderate" +msgstr "中" + +msgid "High" +msgstr "高" + +msgid "Subdivisions: %s" +msgstr "细分:%s" + +msgid "Cell size: %s" +msgstr "单元格大小:%s" + +msgid "Video RAM size: %s MB (%s)" +msgstr "显存大小:%s MB(%s)" + +msgid "Bake SDF" +msgstr "烘焙 SDF" + +msgid "" +"No faces detected during GPUParticlesCollisionSDF3D bake.\n" +"Check whether there are visible meshes matching the bake mask within its " +"extents." +msgstr "" +"烘焙 GPUParticlesCollisionSDF3D 时没有检测到面。\n" +"请检查是否有符合烘焙掩码的可见网格在其范围内。" + +msgid "Select path for SDF Texture" +msgstr "为 SDF 纹理选择路径" msgid "Gradient Edited" msgstr "编辑渐变" +msgid "Reverse/mirror gradient." +msgstr "反转/镜像渐变。" + msgid "Swap GradientTexture2D Fill Points" msgstr "交换 GradientTexture2D 填充点" @@ -4616,7 +7025,10 @@ msgid "Swap Gradient Fill Points" msgstr "交换 Gradient 填充点" msgid "Toggle Grid Snap" -msgstr "切换网格吸附" +msgstr "切换栅格吸附" + +msgid "Configure" +msgstr "配置" msgid "Create Occluder Polygon" msgstr "创建遮光多边形" @@ -4629,9 +7041,21 @@ msgstr "" "请先保存场景(光照贴图将被存在同一目录下)或从属性面板中手动保存 " "BakedLightmap 属性。" +msgid "" +"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake " +"Light' flag is on." +msgstr "" +"没有可烘焙的网格。请确保网格包含 UV2 通道,并且“Bake Light”选项已启用。" + msgid "Failed creating lightmap images, make sure path is writable." msgstr "创建光照贴图失败,切确保文件是可写的。" +msgid "No editor scene root found." +msgstr "没有找到编辑器场景根节点。" + +msgid "Lightmap data is not local to the scene." +msgstr "光照图数据未设置本地于场景。" + msgid "Bake Lightmaps" msgstr "烘焙光照贴图" @@ -4680,18 +7104,52 @@ msgstr "创建多个凸形状" msgid "Create Navigation Mesh" msgstr "创建导航网格" +msgid "Create Debug Tangents" +msgstr "创建调试切线" + msgid "Contained Mesh is not of type ArrayMesh." msgstr "包含的 Mesh 不是 ArrayMesh 类型。" +msgid "" +"Mesh cannot unwrap UVs because it does not belong to the edited scene. Make " +"it unique first." +msgstr "网格无法展开 UV,因为它不属于被编辑的场景。请先将其唯一化。" + +msgid "" +"Mesh cannot unwrap UVs because it belongs to another resource which was " +"imported from another file type. Make it unique first." +msgstr "" +"网格无法展开 UV,因为它隶属于从其他文件类型导入的另一个资源。请先将其唯一化。" + +msgid "" +"Mesh cannot unwrap UVs because it was imported from another file type. Make " +"it unique first." +msgstr "网格无法展开 UV,因为它是从其他文件类型导入的。请先将其唯一化。" + msgid "UV Unwrap failed, mesh may not be manifold?" msgstr "UV 展开失败,可能该网格并非流形?" +msgid "Unwrap UV2" +msgstr "展开 UV2" + msgid "No mesh to debug." msgstr "没有可调试的网格。" msgid "Mesh has no UV in layer %d." msgstr "网格在层 %d 上没有 UV。" +msgid "MeshInstance3D lacks a Mesh." +msgstr "MeshInstance3D 缺少网格。" + +msgid "Mesh has no surface to create outlines from." +msgstr "网格没有可用来创建轮廓的表面。" + +msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES." +msgstr "网格的图元类型不是 PRIMITIVE_TRIANGLES。" + +msgid "Could not create outline." +msgstr "无法创建轮廓。" + msgid "Create Outline" msgstr "创建轮廓" @@ -4701,6 +7159,14 @@ msgstr "网格" msgid "Create Trimesh Static Body" msgstr "创建三角网格静态实体" +msgid "" +"Creates a StaticBody3D and assigns a polygon-based collision shape to it " +"automatically.\n" +"This is the most accurate (but slowest) option for collision detection." +msgstr "" +"创建 StaticBody3D 并自动为其分配基于多边形的碰撞形状。\n" +"这是最准确(但是最慢)的碰撞检测手段。" + msgid "Create Trimesh Collision Sibling" msgstr "创建三角网格碰撞同级" @@ -4746,6 +7212,15 @@ msgstr "" msgid "Create Outline Mesh..." msgstr "创建轮廓网格..." +msgid "" +"Creates a static outline mesh. The outline mesh will have its normals " +"flipped automatically.\n" +"This can be used instead of the StandardMaterial Grow property when using " +"that property isn't possible." +msgstr "" +"创建一个静态轮廓网格。轮廓网格会自动翻转法线。\n" +"可以用来在必要时代替 StandardMaterial 的 Grow 属性。" + msgid "View UV1" msgstr "查看 UV1" @@ -4807,6 +7282,9 @@ msgstr "未指定网格源(且 MultiMesh 不包含 Mesh)。" msgid "Mesh source is invalid (invalid path)." msgstr "网格源无效(路径无效)。" +msgid "Mesh source is invalid (not a MeshInstance3D)." +msgstr "网格源无效(不是 MeshInstance3D)。" + msgid "Mesh source is invalid (contains no Mesh resource)." msgstr "网格源无效(不包含 Mesh 资源)。" @@ -4888,17 +7366,17 @@ msgstr "修改摄像机尺寸" msgid "Change Sphere Shape Radius" msgstr "修改球体半径" +msgid "Change Box Shape Size" +msgstr "修改立方体大小" + msgid "Change Notifier AABB" msgstr "修改通知器 AABB" msgid "Change Particles AABB" msgstr "修改粒子 AABB" -msgid "Change Box Shape Extents" -msgstr "修改立方体大小" - -msgid "Change Probe Extents" -msgstr "修改探针范围" +msgid "Change Radius" +msgstr "修改半径" msgid "Change Capsule Shape Radius" msgstr "修改胶囊体半径" @@ -4912,8 +7390,17 @@ msgstr "修改圆柱体半径" msgid "Change Cylinder Shape Height" msgstr "修改圆柱体高度" +msgid "Change Separation Ray Shape Length" +msgstr "修改分离射线形状长度" + +msgid "Start Location" +msgstr "开始位置" + +msgid "End Location" +msgstr "结束位置" + msgid "Transform Aborted." -msgstr "已忽略变换。" +msgstr "变换中止。" msgid "Orthogonal" msgstr "正交" @@ -4972,12 +7459,51 @@ msgstr "Z 轴变换。" msgid "View Plane Transform." msgstr "视图平面变换。" +msgid "YZ-Plane Transform." +msgstr "YZ 平面变换。" + +msgid "XZ-Plane Transform." +msgstr "XZ 平面变换。" + +msgid "XY-Plane Transform." +msgstr "XY 平面变换。" + msgid "Keying is disabled (no key inserted)." msgstr "已禁用关键帧插入(未插入关键帧)。" msgid "Animation Key Inserted." msgstr "插入动画键。" +msgid "X: %s\n" +msgstr "X:%s\n" + +msgid "Y: %s\n" +msgstr "Y:%s\n" + +msgid "Z: %s\n" +msgstr "Z:%s\n" + +msgid "Size: %s (%.1fMP)\n" +msgstr "大小:%s(%.1fMP)\n" + +msgid "Objects: %d\n" +msgstr "对象数:%d\n" + +msgid "Primitive Indices: %d\n" +msgstr "图元索引:%d\n" + +msgid "Draw Calls: %d" +msgstr "绘制调用:%d" + +msgid "CPU Time: %s ms" +msgstr "CPU 时间:%s ms" + +msgid "GPU Time: %s ms" +msgstr "GPU 时间:%s ms" + +msgid "FPS: %d" +msgstr "FPS:%d" + msgid "Top View." msgstr "顶视图。" @@ -5002,6 +7528,15 @@ msgstr "将变换与视图对齐" msgid "Align Rotation with View" msgstr "将旋转与视图对齐" +msgid "Set Surface %d Override Material" +msgstr "设置表面 %d 覆盖材质" + +msgid "Set Material Override" +msgstr "设置材质覆盖" + +msgid "Cannot drag and drop into multiple selected nodes." +msgstr "不能拖放到多个选定的节点。" + msgid "None" msgstr "无" @@ -5032,15 +7567,78 @@ msgstr "显示线框" msgid "Display Overdraw" msgstr "显示重复绘制" +msgid "Display Lighting" +msgstr "显示光照" + msgid "Display Unshaded" msgstr "显示无阴影" +msgid "Directional Shadow Splits" +msgstr "方向阴影拆分" + +msgid "Normal Buffer" +msgstr "法线缓冲" + msgid "Shadow Atlas" msgstr "阴影图集" +msgid "Directional Shadow Map" +msgstr "方向阴影图" + +msgid "Decal Atlas" +msgstr "贴花图集" + +msgid "VoxelGI Lighting" +msgstr "VoxelGI 光照" + +msgid "VoxelGI Albedo" +msgstr "VoxelGI 反照率" + +msgid "VoxelGI Emission" +msgstr "VoxelGI 自发光" + +msgid "SDFGI Cascades" +msgstr "SDFGI 层叠" + +msgid "SDFGI Probes" +msgstr "SDFGI 探针" + +msgid "Scene Luminance" +msgstr "场景亮度" + msgid "SSAO" msgstr "SSAO" +msgid "SSIL" +msgstr "SSIL" + +msgid "VoxelGI/SDFGI Buffer" +msgstr "VoxelGI/SDFGI 缓冲区" + +msgid "Disable Mesh LOD" +msgstr "禁用网格 LOD" + +msgid "OmniLight3D Cluster" +msgstr "OmniLight3D 集群" + +msgid "SpotLight3D Cluster" +msgstr "SpotLight3D 集群" + +msgid "Decal Cluster" +msgstr "贴花集群" + +msgid "ReflectionProbe Cluster" +msgstr "反射探针集群" + +msgid "Occlusion Culling Buffer" +msgstr "遮挡剔除缓冲" + +msgid "Motion Vectors" +msgstr "运动向量" + +msgid "Display Advanced..." +msgstr "显示高级..." + msgid "View Environment" msgstr "查看环境" @@ -5050,6 +7648,9 @@ msgstr "查看小工具" msgid "View Information" msgstr "查看信息" +msgid "View Frame Time" +msgstr "查看帧时间" + msgid "Half Resolution" msgstr "半分辨率" @@ -5062,6 +7663,9 @@ msgstr "启用多普勒效应" msgid "Cinematic Preview" msgstr "效果预览" +msgid "Not available when using the OpenGL renderer." +msgstr "使用 OpenGL 渲染器时不可用。" + msgid "Freelook Left" msgstr "自由观看向左" @@ -5086,6 +7690,36 @@ msgstr "自由观看加速调整" msgid "Freelook Slow Modifier" msgstr "自由观看减速调整" +msgid "Lock Transformation to X axis" +msgstr "将变换锁定至 X 轴" + +msgid "Lock Transformation to Y axis" +msgstr "将变换锁定至 Y 轴" + +msgid "Lock Transformation to Z axis" +msgstr "将变换锁定至 Z 轴" + +msgid "Lock Transformation to YZ plane" +msgstr "将变换锁定至 YZ 平面" + +msgid "Lock Transformation to XZ plane" +msgstr "将变换锁定至 XZ 平面" + +msgid "Lock Transformation to XY plane" +msgstr "将变换锁定至 XY 平面" + +msgid "Cancel Transformation" +msgstr "取消变换" + +msgid "Begin Translate Transformation" +msgstr "开始平移变换" + +msgid "Begin Rotate Transformation" +msgstr "开始旋转变换" + +msgid "Begin Scale Transformation" +msgstr "开始缩放变换" + msgid "Toggle Camera Preview" msgstr "开关摄像机预览" @@ -5096,6 +7730,16 @@ msgid "" "To zoom further, change the camera's clipping planes (View -> Settings...)" msgstr "修改相机的裁剪平面后才能进一步缩放(视图 -> 设置...)" +msgid "Overriding material..." +msgstr "覆盖材质..." + +msgid "" +"Drag and drop to override the material of any geometry node.\n" +"Hold Ctrl when dropping to override a specific surface." +msgstr "" +"拖放以覆盖任意几何体节点的材质。\n" +"放下时按住 Ctrl 键,可以覆盖一个特定的面。" + msgid "XForm Dialog" msgstr "变换对话框" @@ -5118,12 +7762,58 @@ msgstr "将节点吸附至地面" msgid "Couldn't find a solid floor to snap the selection to." msgstr "找不到可吸附的坚实地板。" +msgid "Add Preview Sun to Scene" +msgstr "添加预览太阳至场景" + +msgid "Add Preview Environment to Scene" +msgstr "添加预览环境至场景" + +msgid "" +"Scene contains\n" +"DirectionalLight3D.\n" +"Preview disabled." +msgstr "" +"场景包含\n" +"DirectionalLight3D。\n" +"预览已禁用。" + +msgid "Preview disabled." +msgstr "预览已禁用。" + +msgid "" +"Scene contains\n" +"WorldEnvironment.\n" +"Preview disabled." +msgstr "" +"场景包含\n" +"WorldEnvironment。\n" +"预览已禁用。" + msgid "Use Local Space" msgstr "使用本地空间" msgid "Use Snap" msgstr "使用吸附" +msgid "" +"Toggle preview sunlight.\n" +"If a DirectionalLight3D node is added to the scene, preview sunlight is " +"disabled." +msgstr "" +"切换预览阳光。\n" +"如果一个 DirectionalLight3D 节点被添加到场景中,预览阳光将被禁用。" + +msgid "" +"Toggle preview environment.\n" +"If a WorldEnvironment node is added to the scene, preview environment is " +"disabled." +msgstr "" +"切换预览环境。\n" +"如果一个 WorldEnvironment 节点被添加到场景中,预览环境将被禁用。" + +msgid "Edit Sun and Environment settings." +msgstr "编辑太阳和环境设置。" + msgid "Bottom View" msgstr "底视图" @@ -5215,7 +7905,7 @@ msgid "View Origin" msgstr "显示原点" msgid "View Grid" -msgstr "显示网格" +msgstr "显示栅格" msgid "Settings..." msgstr "设置..." @@ -5265,15 +7955,102 @@ msgstr "前置" msgid "Post" msgstr "后置" +msgid "Preview Sun" +msgstr "预览太阳" + +msgid "Sun Direction" +msgstr "太阳方向" + +msgid "Angular Altitude" +msgstr "高度角" + +msgid "Azimuth" +msgstr "方位角" + msgid "Sun Color" msgstr "太阳颜色" +msgid "Sun Energy" +msgstr "太阳能量" + +msgid "Shadow Max Distance" +msgstr "阴影最大距离" + +msgid "Add Sun to Scene" +msgstr "将太阳添加到场景" + +msgid "" +"Adds a DirectionalLight3D node matching the preview sun settings to the " +"current scene.\n" +"Hold Shift while clicking to also add the preview environment to the current " +"scene." +msgstr "" +"在当前场景中添加一个匹配预览太阳设置的 DirectionalLight3D 节点。\n" +"点击时按住 Shift 键,也可以将预览环境添加到当前场景中。" + +msgid "Preview Environment" +msgstr "预览环境" + +msgid "Sky Color" +msgstr "天空颜色" + +msgid "Ground Color" +msgstr "地面颜色" + +msgid "Sky Energy" +msgstr "天空能量" + +msgid "AO" +msgstr "环境光遮蔽" + msgid "Glow" msgstr "辉光" msgid "Tonemap" msgstr "色调映射" +msgid "GI" +msgstr "全局光" + +msgid "Post Process" +msgstr "后期处理" + +msgid "Add Environment to Scene" +msgstr "将环境添加到场景" + +msgid "" +"Adds a WorldEnvironment node matching the preview environment settings to " +"the current scene.\n" +"Hold Shift while clicking to also add the preview sun to the current scene." +msgstr "" +"在当前场景中添加一个匹配预览环境设置的 WorldEnvironment 节点。\n" +"点击时按住Shift键,也可以将预览太阳添加到当前场景中。" + +msgid "" +"Can't determine a save path for the occluder.\n" +"Save your scene and try again." +msgstr "" +"无法确定遮挡器的保存路径。\n" +"请保存场景,然后重试。" + +msgid "" +"No meshes to bake.\n" +"Make sure there is at least one MeshInstance3D node in the scene whose " +"visual layers are part of the OccluderInstance3D's Bake Mask property." +msgstr "" +"没有要烘焙的网格。\n" +"确保场景中至少有一个 MeshInstance3D 节点,其可视层是 OccluderInstance3D 的烘" +"焙掩码属性的一部分。" + +msgid "Could not save the new occluder at the specified path:" +msgstr "无法在指定路径上保存该新遮挡器:" + +msgid "Bake Occluders" +msgstr "烘焙遮挡器" + +msgid "Select occluder bake file:" +msgstr "选择遮挡器烘焙文件:" + msgid "Remove Point from Curve" msgstr "从曲线中移除顶点" @@ -5476,7 +8253,7 @@ msgid "Clear UV" msgstr "清除 UV" msgid "Grid Settings" -msgstr "网格设置" +msgstr "栅格设置" msgid "Snap" msgstr "吸附" @@ -5485,22 +8262,22 @@ msgid "Enable Snap" msgstr "启用吸附" msgid "Show Grid" -msgstr "显示网格" +msgstr "显示栅格" msgid "Configure Grid:" -msgstr "配置网格:" +msgstr "配置栅格:" msgid "Grid Offset X:" -msgstr "网格 X 偏移:" +msgstr "栅格 X 偏移:" msgid "Grid Offset Y:" -msgstr "网格 Y 偏移:" +msgstr "栅格 Y 偏移:" msgid "Grid Step X:" -msgstr "网格 X 步进:" +msgstr "栅格 X 步进:" msgid "Grid Step Y:" -msgstr "网格 Y 步进:" +msgstr "栅格 Y 步进:" msgid "Sync Bones to Polygon" msgstr "同步骨骼到多边形" @@ -5583,6 +8360,12 @@ msgstr "无法在以下位置加载文件:" msgid "Save File As..." msgstr "另存为..." +msgid "Can't obtain the script for reloading." +msgstr "无法获取用于重新加载的脚本。" + +msgid "Reload only takes effect on tool scripts." +msgstr "重新加载只对工具脚本生效。" + msgid "Can't obtain the script for running." msgstr "无法获取要执行的脚本。" @@ -5608,6 +8391,9 @@ msgstr "保存出错" msgid "Save Theme As..." msgstr "主题另存为..." +msgid "Unsaved file." +msgstr "未保存的文件。" + msgid "%s Class Reference" msgstr "%s 类参考" @@ -5617,6 +8403,9 @@ msgstr "查找下一个" msgid "Find Previous" msgstr "查找上一个" +msgid "Filter Scripts" +msgstr "筛选脚本" + msgid "Toggle alphabetical sorting of the method list." msgstr "切换按字母顺序排列方法。" @@ -5641,6 +8430,9 @@ msgstr "重新打开关闭的脚本" msgid "Save All" msgstr "全部保存" +msgid "Soft Reload Tool Script" +msgstr "软重载工具脚本" + msgid "Copy Script Path" msgstr "复制脚本路径" @@ -5708,12 +8500,21 @@ msgstr "清除最近的脚本" msgid "Standard" msgstr "标准" +msgid "Plain Text" +msgstr "纯文本" + msgid "Connections to method:" msgstr "与方法的连接:" +msgid "Source" +msgstr "来源" + msgid "Target" msgstr "目标" +msgid "Error at (%d, %d):" +msgstr "(%d, %d) 处的错误:" + msgid "" "Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." msgstr "未找到方法 “%s”(连接于信号“%s”、来自节点“%s”、目标节点“%s”)。" @@ -5730,6 +8531,9 @@ msgstr "转到函数" msgid "Only resources from filesystem can be dropped." msgstr "只可拖放来自文件系统中的资源。" +msgid "Can't drop nodes without an open scene." +msgstr "没有打开的场景无法放置节点。" + msgid "Can't drop nodes because script '%s' is not used in this scene." msgstr "无法放置该节点,因为脚本 “%s” 未在该场景中使用。" @@ -5739,6 +8543,12 @@ msgstr "查找符号" msgid "Pick Color" msgstr "拾取颜色" +msgid "Folding" +msgstr "折叠" + +msgid "Indentation" +msgstr "缩进" + msgid "Uppercase" msgstr "大写" @@ -5763,11 +8573,14 @@ msgstr "转到" msgid "Delete Line" msgstr "删除行" +msgid "Unindent" +msgstr "取消缩进" + msgid "Toggle Comment" msgstr "切换注释" msgid "Fold/Unfold Line" -msgstr "折叠/展开行" +msgstr "折叠/展开行" msgid "Fold All Lines" msgstr "折叠所有行" @@ -5818,7 +8631,7 @@ msgid "Go to Line..." msgstr "转到行..." msgid "Toggle Breakpoint" -msgstr "设置/移除断点" +msgstr "设置/移除断点" msgid "Remove All Breakpoints" msgstr "移除所有断点" @@ -5829,6 +8642,46 @@ msgstr "转到下一个断点" msgid "Go to Previous Breakpoint" msgstr "转到上一个断点" +msgid "New Shader Include" +msgstr "新建着色器头文件" + +msgid "Load Shader File" +msgstr "加载着色器文件" + +msgid "Load Shader Include File" +msgstr "加载着色器头文件" + +msgid "Save File" +msgstr "保存" + +msgid "Save File As" +msgstr "另存为" + +msgid "Open File in Inspector" +msgstr "在检查器中打开" + +msgid "Close File" +msgstr "关闭" + +msgid "Shader Editor" +msgstr "着色器编辑器" + +msgid "No valid shader stages found." +msgstr "没有找到有效的着色器阶段。" + +msgid "Shader stage compiled without errors." +msgstr "着色器阶段已完成编译,没有出错。" + +msgid "" +"File structure for '%s' contains unrecoverable errors:\n" +"\n" +msgstr "" +"“%s”的文件结构包含无法恢复的错误:\n" +"\n" + +msgid "ShaderFile" +msgstr "着色器文件" + msgid "This skeleton has no bones, create some children Bone2D nodes." msgstr "该骨架没有骨骼,请创建一些 Bone2D 子节点。" @@ -5847,12 +8700,76 @@ msgstr "重置为放松姿势" msgid "Overwrite Rest Pose" msgstr "覆盖放松姿势" +msgid "Set Bone Transform" +msgstr "设置骨骼变换" + +msgid "Set Bone Rest" +msgstr "设置骨骼放松" + +msgid "Cannot create a physical skeleton for a Skeleton3D node with no bones." +msgstr "无法为没有骨骼的 Skeleton3D 节点创建物理骨架。" + msgid "Create physical bones" msgstr "创建物理骨骼" +msgid "Cannot export a SkeletonProfile for a Skeleton3D node with no bones." +msgstr "无法为没有骨骼的 Skeleton3D 节点导出 SkeletonProfile。" + +msgid "Export Skeleton Profile As..." +msgstr "将骨架配置文件导出为..." + +msgid "Set Bone Parentage" +msgstr "设置骨骼父子关系" + +msgid "Skeleton3D" +msgstr "Skeleton3D" + +msgid "Reset All Bone Poses" +msgstr "重置所有骨骼姿势" + +msgid "Reset Selected Poses" +msgstr "重置所选姿势" + +msgid "Apply All Poses to Rests" +msgstr "将所有姿势应用于放松" + +msgid "Apply Selected Poses to Rests" +msgstr "将所选姿势应用于放松" + +msgid "Create Physical Skeleton" +msgstr "创建物理骨架" + +msgid "Export Skeleton Profile" +msgstr "导出骨架配置文件" + +msgid "" +"Edit Mode\n" +"Show buttons on joints." +msgstr "" +"编辑模式\n" +"在关节处显示按钮。" + +msgid "Insert key of bone poses already exist track." +msgstr "插入已存在轨道的骨骼姿势关键帧。" + +msgid "Insert key of all bone poses." +msgstr "插入所有骨骼姿势关键帧。" + +msgid "Insert Key (All Bones)" +msgstr "插入关键帧(所有骨骼)" + +msgid "Bone Transform" +msgstr "骨骼变换" + msgid "Play IK" msgstr "播放 IK" +msgid "Create MeshInstance2D" +msgstr "创建 MeshInstance2D" + +msgid "MeshInstance2D Preview" +msgstr "MeshInstance2D 预览" + msgid "Create Polygon2D" msgstr "创建 Polygon2D" @@ -5871,6 +8788,12 @@ msgstr "创建 LightOccluder2D" msgid "LightOccluder2D Preview" msgstr "LightOccluder2D 预览" +msgid "Can't convert a Sprite2D from a foreign scene." +msgstr "无法从外部场景转换 Sprite2D。" + +msgid "Sprite2D is empty!" +msgstr "Sprite2D 为空!" + msgid "Can't convert a sprite using animation frames to mesh." msgstr "无法将使用动画帧的精灵转换为网格。" @@ -5898,6 +8821,9 @@ msgstr "无效的几何体,无法创建遮光体。" msgid "Create LightOccluder2D Sibling" msgstr "创建 LightOccluder2D 兄弟节点" +msgid "Sprite2D" +msgstr "Sprite2D" + msgid "Simplification:" msgstr "简化:" @@ -5946,24 +8872,54 @@ msgstr "是否删除动画?" msgid "Change Animation FPS" msgstr "修改动画 FPS" +msgid "Set Frame Duration" +msgstr "设置帧时长" + msgid "(empty)" msgstr "(空)" msgid "Animations:" msgstr "动画:" -msgid "Speed:" -msgstr "速度:" +msgid "Filter Animations" +msgstr "筛选动画" -msgid "Loop" -msgstr "循环" +msgid "Delete Animation" +msgstr "删除动画" msgid "Animation Frames:" msgstr "动画帧:" +msgid "Frame Duration:" +msgstr "帧持续时间:" + msgid "Zoom Reset" msgstr "重置缩放" +msgid "Add frame from file" +msgstr "从文件中添加帧" + +msgid "Add frames from sprite sheet" +msgstr "从精灵表中添加帧" + +msgid "Delete Frame" +msgstr "删除帧" + +msgid "Copy Frame" +msgstr "复制帧" + +msgid "Insert Empty (Before Selected)" +msgstr "插入空白帧(在所选之前)" + +msgid "Insert Empty (After Selected)" +msgstr "插入空白帧(在所选之后)" + +msgid "Move Frame Left" +msgstr "向左移动帧" + +msgid "Move Frame Right" +msgstr "向右移动帧" + msgid "Select Frames" msgstr "选择帧" @@ -5985,6 +8941,25 @@ msgstr "从精灵表中创建帧" msgid "SpriteFrames" msgstr "动画帧" +msgid "Warnings should be fixed to prevent errors." +msgstr "应修复警告以防止出错。" + +msgid "" +"This shader has been modified on disk.\n" +"What action should be taken?" +msgstr "" +"这个着色器已在硬盘上修改。\n" +"应该采取什么行动?" + +msgid "%s Mipmaps" +msgstr "%s Mipmaps" + +msgid "Memory: %s" +msgstr "内存:%s" + +msgid "No Mipmaps" +msgstr "无 Mipmaps" + msgid "Set Region Rect" msgstr "设置纹理区域" @@ -5998,7 +8973,7 @@ msgid "Pixel Snap" msgstr "像素吸附" msgid "Grid Snap" -msgstr "网格吸附" +msgstr "栅格吸附" msgid "Auto Slice" msgstr "自动裁剪" @@ -6006,24 +8981,61 @@ msgstr "自动裁剪" msgid "Step:" msgstr "步长:" +msgid "Region Editor" +msgstr "区域编辑器" + +msgid "Edit Region" +msgstr "编辑区域" + msgid "Styleboxes" msgstr "样式盒" +msgid "1 color" +msgid_plural "{num} colors" +msgstr[0] "{num} 个颜色" + msgid "No colors found." msgstr "没有颜色。" +msgid "1 constant" +msgid_plural "{num} constants" +msgstr[0] "{num} 个常量" + msgid "No constants found." msgstr "没有常量。" +msgid "1 font" +msgid_plural "{num} fonts" +msgstr[0] "{num} 个字体" + msgid "No fonts found." msgstr "没有字体。" +msgid "1 font size" +msgid_plural "{num} font sizes" +msgstr[0] "{num} 个字体大小" + +msgid "No font sizes found." +msgstr "未找到字体大小。" + +msgid "1 icon" +msgid_plural "{num} icons" +msgstr[0] "{num} 个图标" + msgid "No icons found." msgstr "没有图标。" +msgid "1 stylebox" +msgid_plural "{num} styleboxes" +msgstr[0] "{num} 个样式盒" + msgid "No styleboxes found." msgstr "没有样式盒。" +msgid "{num} currently selected" +msgid_plural "{num} currently selected" +msgstr[0] "当前选中 {num} 个" + msgid "Nothing was selected for the import." msgstr "没有选中导入任何东西。" @@ -6039,6 +9051,12 @@ msgstr "正在更新编辑器" msgid "Finalizing" msgstr "正在收尾" +msgid "Import Theme Items" +msgstr "导入主题项目" + +msgid "Filter Items" +msgstr "筛选项目" + msgid "With Data" msgstr "含数据" @@ -6072,6 +9090,18 @@ msgstr "选择所有可见的字体项目和它们的数据。" msgid "Deselect all visible font items." msgstr "取消选择所有可见的字体项目。" +msgid "Font sizes" +msgstr "字体大小" + +msgid "Select all visible font size items." +msgstr "选择所有可见的字体大小项目。" + +msgid "Select all visible font size items and their data." +msgstr "选择所有可见的字体大小项目和它们的数据。" + +msgid "Deselect all visible font size items." +msgstr "取消选择所有可见的字体大小项目。" + msgid "Select all visible icon items." msgstr "选择所有可见的图标项目。" @@ -6149,6 +9179,9 @@ msgstr "移除所有常量项目" msgid "Remove All Font Items" msgstr "移除所有字体项目" +msgid "Remove All Font Size Items" +msgstr "移除所有字体大小项目" + msgid "Remove All Icon Items" msgstr "移除所有图标项目" @@ -6162,12 +9195,30 @@ msgstr "" "该主题类型为空。\n" "请手动添加或者从其他主题导入更多项目。" +msgid "Remove Theme Item" +msgstr "移除主题类型" + msgid "Add Theme Type" msgstr "添加主题类型" +msgid "Create Theme Item" +msgstr "创建主题项目" + msgid "Remove Theme Type" msgstr "移除主题类型" +msgid "Remove Data Type Items From Theme" +msgstr "从主题中移除数据类型项目" + +msgid "Remove Class Items From Theme" +msgstr "从主题中移除类项目" + +msgid "Remove Custom Items From Theme" +msgstr "从主题中移除自定义项目" + +msgid "Remove All Items From Theme" +msgstr "从主题中移除所有项目" + msgid "Add Color Item" msgstr "添加颜色项目" @@ -6177,6 +9228,9 @@ msgstr "添加常量项目" msgid "Add Font Item" msgstr "添加字体项目" +msgid "Add Font Size Item" +msgstr "添加字体大小项目" + msgid "Add Icon Item" msgstr "添加图标项目" @@ -6192,12 +9246,18 @@ msgstr "重命名常量项目" msgid "Rename Font Item" msgstr "重命名字体项目" +msgid "Rename Font Size Item" +msgstr "重命名字体大小项目" + msgid "Rename Icon Item" msgstr "重命名图标项目" msgid "Rename Stylebox Item" msgstr "重命名样式盒项目" +msgid "Rename Theme Item" +msgstr "重命名主题项目" + msgid "Invalid file, not a Theme resource." msgstr "无效文件,不是 Theme 资源。" @@ -6294,12 +9354,48 @@ msgstr "添加项目类型" msgid "Add Type" msgstr "添加类型" +msgid "Override All Default Theme Items" +msgstr "覆盖所有默认主题项" + +msgid "Override Theme Item" +msgstr "覆盖主题项" + +msgid "Set Color Item in Theme" +msgstr "设置主题中的颜色项" + +msgid "Set Constant Item in Theme" +msgstr "设置主题中的常量项" + +msgid "Set Font Size Item in Theme" +msgstr "设置主题中的字体尺寸项" + +msgid "Set Font Item in Theme" +msgstr "设置主题中的字体项" + +msgid "Set Icon Item in Theme" +msgstr "设置主题中的图标项" + +msgid "Set Stylebox Item in Theme" +msgstr "设置主题中的样式盒项" + +msgid "Pin Stylebox" +msgstr "固定样式盒" + +msgid "Unpin Stylebox" +msgstr "解除固定样式盒" + +msgid "Set Theme Type Variation" +msgstr "设置主题类型变种" + msgid "Set Variation Base Type" msgstr "设置变种基础类型" msgid "Set Base Type" msgstr "设置基础类型" +msgid "Add a type from a list of available types or create a new one." +msgstr "从可用类型列表中添加类型或创建新类型。" + msgid "Show Default" msgstr "显示默认" @@ -6350,13 +9446,13 @@ msgid "Toggle Button" msgstr "切换按钮" msgid "Disabled Button" -msgstr "不可用的按钮" +msgstr "禁用的按钮" msgid "Item" msgstr "项目" msgid "Disabled Item" -msgstr "不可用的项目" +msgstr "禁用的项目" msgid "Check Item" msgstr "检查项目" @@ -6421,6 +9517,90 @@ msgstr "无效文件,不是 PackedScene 资源。" msgid "Reload the scene to reflect its most actual state." msgstr "重新加载场景,反映最新状态。" +msgid "Merge TileSetAtlasSource" +msgstr "合并 TileSetAtlasSource" + +msgid "%s (ID: %d)" +msgstr "%s(ID:%d)" + +msgid "Atlas Merging" +msgstr "图集合并" + +msgid "Merge (Keep original Atlases)" +msgstr "合并(保留原有图集)" + +msgid "Merge" +msgstr "合并" + +msgid "Next Line After Column" +msgstr "列后的下一行" + +msgid "Please select two atlases or more." +msgstr "请至少选择两个图集。" + +msgid "" +"Source: %d\n" +"Atlas coordinates: %s\n" +"Alternative: 0" +msgstr "" +"源:%d\n" +"图集坐标:%s\n" +"备选:0" + +msgid "" +"Source: %d\n" +"Atlas coordinates: %s\n" +"Alternative: %d" +msgstr "" +"源:%d\n" +"图集坐标:%s\n" +"备选:%d" + +msgid "Center View" +msgstr "居中视图" + +msgid "No atlas source with a valid texture selected." +msgstr "未选择有效纹理的图集源。" + +msgid "Base Tiles" +msgstr "基础图块" + +msgid "Alternative Tiles" +msgstr "备选图块" + +msgid "Reset Polygons" +msgstr "重置多边形" + +msgid "Clear Polygons" +msgstr "清空多边形" + +msgid "Rotate Polygons Right" +msgstr "向右旋转多边形" + +msgid "Rotate Polygons Left" +msgstr "向左旋转多边形" + +msgid "Flip Polygons Horizontally" +msgstr "水平翻转多边形" + +msgid "Flip Polygons Vertically" +msgstr "垂直翻转多边形" + +msgid "Edit Polygons" +msgstr "编辑多边形" + +msgid "Add polygon tool" +msgstr "多边形添加工具" + +msgid "Edit points tool" +msgstr "点编辑工具" + +msgid "Delete points tool" +msgstr "点删除工具" + +msgid "Reset to default tile shape" +msgstr "重置为默认图块形状" + msgid "Rotate Right" msgstr "向右旋转" @@ -6433,18 +9613,373 @@ msgstr "水平翻转" msgid "Flip Vertically" msgstr "垂直翻转" +msgid "Snap to half-pixel" +msgstr "吸附至半像素" + +msgid "Painting Tiles Property" +msgstr "绘制图块属性" + +msgid "Painting:" +msgstr "绘制:" + +msgid "No terrains" +msgstr "没有地形" + +msgid "No terrain" +msgstr "没有地形" + +msgid "Painting Terrain Set" +msgstr "绘制地形集" + +msgid "Painting Terrain" +msgstr "绘制地形" + +msgid "No Texture Atlas Source (ID: %d)" +msgstr "没有纹理图集源(ID:%d)" + +msgid "Scene Collection Source (ID: %d)" +msgstr "场景合集源(ID:%d)" + +msgid "Unknown Type Source (ID: %d)" +msgstr "未知类型源(ID:%d)" + +msgid "Add TileSet pattern" +msgstr "添加 TileSet 模式" + +msgid "Remove TileSet patterns" +msgstr "移除 TileSet 模式" + +msgid "Tile with Invalid Scene" +msgstr "包含无效场景的图块" + +msgid "Delete tiles" +msgstr "删除图块" + +msgid "Change selection" +msgstr "修改选中项" + +msgid "Move tiles" +msgstr "移动图块" + +msgid "Paint tiles" +msgstr "绘制图块" + +msgid "Paste tiles" +msgstr "粘贴图块" + +msgid "Shift: Draw line." +msgstr "Shift:画直线。" + +msgid "Shift+Ctrl: Draw rectangle." +msgstr "Shift+Ctrl:画矩形。" + +msgid "Alternatively hold Ctrl with other tools to pick tile." +msgstr "也可以在使用其他工具时按住 Ctrl 键来挑选图块。" + +msgid "Alternatively use RMB to erase tiles." +msgstr "也可以用鼠标右键擦除图块。" + +msgid "Contiguous" +msgstr "连续" + +msgid "Place Random Tile" +msgstr "放置随机图块" + +msgid "" +"Defines the probability of painting nothing instead of a randomly selected " +"tile." +msgstr "定义不绘制任何内容而不是绘制随机选择的图块的概率。" + +msgid "Scattering:" +msgstr "散布:" + msgid "Tiles" -msgstr "磁贴" +msgstr "图块" + +msgid "" +"This TileMap's TileSet has no source configured. Edit the TileSet resource " +"to add one." +msgstr "此 TileMap 的 TileSet 没有配置源。请编辑 TileSet 资源以添加一个。" + +msgid "Sort sources" +msgstr "源排序" + +msgid "Sort by ID (Ascending)" +msgstr "按 ID 排序(升序)" + +msgid "Sort by ID (Descending)" +msgstr "按 ID 排序(降序)" + +msgid "Invalid source selected." +msgstr "所选源无效。" + +msgid "Patterns" +msgstr "模式" + +msgid "Drag and drop or paste a TileMap selection here to store a pattern." +msgstr "要存储一个模式,请将 TileMap 选中项拖放或粘贴至此。" + +msgid "Paint terrain" +msgstr "绘制地形" + +msgid "Matches Corners and Sides" +msgstr "匹配角落和侧边" + +msgid "Matches Corners Only" +msgstr "仅匹配角落" + +msgid "Matches Sides Only" +msgstr "仅匹配侧边" + +msgid "" +"Connect mode: paints a terrain, then connects it with the surrounding tiles " +"with the same terrain." +msgstr "连接模式:绘制一个地形,然后将其与周围具有相同地形的图块连接起来。" + +msgid "" +"Path mode: paints a terrain, thens connects it to the previous tile painted " +"within the same stroke." +msgstr "路径模式:绘制一个地形,并在同一笔画内将其与前一个图块连接起来。" + +msgid "Replace Tiles with Proxies" +msgstr "用代理替换图块" + +msgid "No Layers" +msgstr "没有层" + +msgid "Select Next Tile Map Layer" +msgstr "选择下一个图块地图层" + +msgid "Select Previous Tile Map Layer" +msgstr "选择上一个图块地图层" + +msgid "TileMap Layers" +msgstr "TileMap 层" + +msgid "Highlight Selected TileMap Layer" +msgstr "高亮所选 TileMap 图层" + +msgid "Toggle grid visibility." +msgstr "切换栅格可见性。" + +msgid "Automatically Replace Tiles with Proxies" +msgstr "自动将图块替换为代理" + +msgid "The edited TileMap node has no TileSet resource." +msgstr "编辑的 TileMap 节点没有 TileSet 资源。" + +msgid "Remove Tile Proxies" +msgstr "移除图块代理" + +msgid "Create Alternative-level Tile Proxy" +msgstr "创建替代级别的图块代理" + +msgid "Create Coords-level Tile Proxy" +msgstr "创建坐标级别的图块代理" + +msgid "Create source-level Tile Proxy" +msgstr "创建源级别的图块代理" + +msgid "Delete All Invalid Tile Proxies" +msgstr "删除所有无效的图块代理" + +msgid "Delete All Tile Proxies" +msgstr "删除所有图块代理" + +msgid "Tile Proxies Management" +msgstr "图块代理管理" + +msgid "Source-level proxies" +msgstr "源级别代理" + +msgid "Coords-level proxies" +msgstr "坐标级别代理" + +msgid "Alternative-level proxies" +msgstr "替代级别代理" + +msgid "Add a new tile proxy:" +msgstr "添加一个新的图块代理:" + +msgid "From Source" +msgstr "从源" + +msgid "From Coords" +msgstr "从坐标" + +msgid "From Alternative" +msgstr "从替代" + +msgid "To Source" +msgstr "到源" + +msgid "To Coords" +msgstr "到坐标" + +msgid "To Alternative" +msgstr "到替代" + +msgid "Global actions:" +msgstr "全局动作:" + +msgid "Clear Invalid" +msgstr "清除无效" msgid "Atlas" msgstr "图集" +msgid "Base Tile" +msgstr "基础图块" + +msgid "Alternative Tile" +msgstr "备选图块" + +msgid "" +"Selected tile:\n" +"Source: %d\n" +"Atlas coordinates: %s\n" +"Alternative: %d" +msgstr "" +"选中图块:\n" +"源:%d\n" +"图集坐标:%s\n" +"备选:%d" + +msgid "Select a property editor" +msgstr "请选择属性编辑器" + +msgid "Create tiles" +msgstr "创建多个图块" + +msgid "Create a tile" +msgstr "创建单个图块" + +msgid "Remove tiles" +msgstr "移除图块" + +msgid "Move a tile" +msgstr "移动图块" + +msgid "Select tiles" +msgstr "选择图块" + +msgid "Resize a tile" +msgstr "调整图块大小" + +msgid "Remove tile" +msgstr "移除图块" + +msgid "Create tile alternatives" +msgstr "创建备选图块" + +msgid "Create tiles in non-transparent texture regions" +msgstr "在不透明纹理区域中创建图块" + +msgid "Remove tiles in fully transparent texture regions" +msgstr "从全透明纹理区域中移除图块" + +msgid "Setup" +msgstr "设置" + +msgid "" +"Atlas setup. Add/Remove tiles tool (use the shift key to create big tiles, " +"control for rectangle editing)." +msgstr "图集设置。图块添加/移除工具(Shift 键创建大图块、Ctrl 键编辑矩形)。" + +msgid "Select tiles." +msgstr "选择图块。" + +msgid "Paint" +msgstr "绘制" + +msgid "Paint properties." +msgstr "绘制属性。" + +msgid "No tiles selected." +msgstr "未选择图块。" + +msgid "Paint Properties:" +msgstr "绘制属性:" + +msgid "Create Tiles in Non-Transparent Texture Regions" +msgstr "在不透明纹理区域创建图块" + +msgid "Remove Tiles in Fully Transparent Texture Regions" +msgstr "在全透明纹理区域移除图块" + +msgid "Create an Alternative Tile" +msgstr "创建备选图块" + +msgid "Create a Tile" +msgstr "创建图块" + +msgid "Auto Create Tiles in Non-Transparent Texture Regions?" +msgstr "是否自动在不透明纹理区域创建图块?" + +msgid "" +"The atlas's texture was modified.\n" +"Would you like to automatically create tiles in the atlas?" +msgstr "" +"该图集的纹理发生改变。\n" +"是否想要自动在该图集中创建图块?" + msgid "Yes" msgstr "是" +msgid "No" +msgstr "否" + +msgid "Add a new atlas source" +msgstr "新建图集源" + +msgid "Remove source" +msgstr "移除源" + +msgid "Add atlas source" +msgstr "添加图集源" + +msgid "Sort Sources" +msgstr "源排序" + +msgid "Scenes Collection" +msgstr "场景合集" + +msgid "Open Atlas Merging Tool" +msgstr "打开图集合并工具" + +msgid "Manage Tile Proxies" +msgstr "管理图块代理" + +msgid "No TileSet source selected. Select or create a TileSet source." +msgstr "未选择 TileSet 源。请选择或创建 TileSet 源。" + +msgid "Add new patterns in the TileMap editing mode." +msgstr "请在 TileMap 编辑模式中添加新的模式。" + +msgid "Add a Scene Tile" +msgstr "添加场景图块" + +msgid "Remove a Scene Tile" +msgstr "移除场景图块" + +msgid "Scenes collection properties:" +msgstr "场景合集属性:" + +msgid "Tile properties:" +msgstr "图块属性:" + msgid "TileSet" msgstr "图块集" +msgid "TileMap" +msgstr "TileMap" + +msgid "" +"No VCS plugins are available in the project. Install a VCS plugin to use VCS " +"integration features." +msgstr "" +"该项目中没有可用的 VCS 插件。要使用 VCS 集成功能,请安装一个 VCS 插件。" + msgid "Error" msgstr "错误" @@ -6455,6 +9990,12 @@ msgstr "远程仓库设置为空。使用网络的 VCS 特性可能无法工作 msgid "Commit" msgstr "提交" +msgid "Open in editor" +msgstr "在编辑器中打开" + +msgid "Discard changes" +msgstr "丢弃修改" + msgid "Staged Changes" msgstr "暂存修改" @@ -6476,9 +10017,24 @@ msgstr "是否要移除 %s 分支?" msgid "Do you want to remove the %s remote?" msgstr "是否要移除 %s 远程仓库?" +msgid "Create VCS metadata files for:" +msgstr "创建 VCS 元数据文件:" + +msgid "Existing VCS metadata files will be overwritten." +msgstr "现有的 VCS 元数据文件将被覆盖。" + +msgid "Local Settings" +msgstr "本地设置" + msgid "Apply" msgstr "应用" +msgid "VCS Provider" +msgstr "VCS 提供商" + +msgid "Connect to VCS" +msgstr "连接到 VCS" + msgid "Remote Login" msgstr "远程仓库登录" @@ -6509,6 +10065,12 @@ msgstr "检测新变化" msgid "Discard all changes" msgstr "丢弃所有修改" +msgid "This operation is IRREVERSIBLE. Your changes will be deleted FOREVER." +msgstr "此操作是不可逆的。您的更改将被永久删除。" + +msgid "Permanentally delete my changes" +msgstr "永久删除我的更改" + msgid "Stage all changes" msgstr "暂存所有修改" @@ -6581,6 +10143,9 @@ msgstr "类型更改" msgid "Unmerged" msgstr "未合并" +msgid "View file diffs before committing them to the latest version" +msgstr "在提交到最新版本之前查看文件差异" + msgid "View:" msgstr "查看:" @@ -6620,11 +10185,32 @@ msgstr "添加输入" msgid "Add Output" msgstr "添加输出" +msgid "Float" +msgstr "Float" + +msgid "Int" +msgstr "Int" + +msgid "UInt" +msgstr "UInt" + +msgid "Vector2" +msgstr "Vector2" + +msgid "Vector3" +msgstr "Vector3" + +msgid "Vector4" +msgstr "Vector4" + msgid "Boolean" msgstr "布尔值" msgid "Sampler" -msgstr "采样 Sampler" +msgstr "采样器" + +msgid "[default]" +msgstr "[默认]" msgid "Add Input Port" msgstr "添加输入端口" @@ -6632,24 +10218,123 @@ msgstr "添加输入端口" msgid "Add Output Port" msgstr "增加输出端口" +msgid "Change Input Port Type" +msgstr "修改输入端口类型" + +msgid "Change Output Port Type" +msgstr "修改输出端口类型" + +msgid "Change Input Port Name" +msgstr "修改输入端口名称" + +msgid "Change Output Port Name" +msgstr "修改输出端口名称" + +msgid "Expand Output Port" +msgstr "增加输出端口" + +msgid "Shrink Output Port" +msgstr "减少输出端口" + msgid "Remove Input Port" msgstr "移除输入端口" msgid "Remove Output Port" msgstr "移除输出端口" +msgid "Set VisualShader Expression" +msgstr "设置 VisualShader 表达式" + +msgid "Resize VisualShader Node" +msgstr "调整 VisualShader 节点大小" + +msgid "Hide Port Preview" +msgstr "隐藏端口预览" + +msgid "Show Port Preview" +msgstr "显示端口预览" + +msgid "Set Comment Node Title" +msgstr "设置注释节点标题" + +msgid "Set Comment Node Description" +msgstr "设置注释节点描述" + +msgid "Set Parameter Name" +msgstr "设置参数名称" + msgid "Set Input Default Port" msgstr "设置输入默认端口" msgid "Add Node to Visual Shader" msgstr "将节点添加到可视着色器" +msgid "Add Varying to Visual Shader: %s" +msgstr "将 Varying 添加到可视着色器:%s" + +msgid "Remove Varying from Visual Shader: %s" +msgstr "将 Varying 从可视着色器移除:%s" + msgid "Node(s) Moved" msgstr "节点已移动" +msgid "Convert Constant Node(s) To Parameter(s)" +msgstr "将常量节点转换为参数" + +msgid "Convert Parameter Node(s) To Constant(s)" +msgstr "将参数节点转换为常量" + +msgid "Delete VisualShader Node" +msgstr "删除 VisualShader 节点" + +msgid "Delete VisualShader Node(s)" +msgstr "删除 VisualShader 节点" + +msgid "Float Constants" +msgstr "浮点常量" + +msgid "Convert Constant(s) to Parameter(s)" +msgstr "将常量转为参数" + +msgid "Convert Parameter(s) to Constant(s)" +msgstr "将参数转换为常量" + +msgid "Set Comment Title" +msgstr "设置注释标题" + +msgid "Set Comment Description" +msgstr "设置注释描述" + +msgid "Duplicate VisualShader Node(s)" +msgstr "复制 VisualScript 节点" + +msgid "Paste VisualShader Node(s)" +msgstr "粘贴 VisualScript 节点" + +msgid "Cut VisualShader Node(s)" +msgstr "剪切 VisualShader 节点" + msgid "Visual Shader Input Type Changed" msgstr "可视着色器输入类型已更改" +msgid "ParameterRef Name Changed" +msgstr "ParameterRef 名称已更改" + +msgid "Varying Name Changed" +msgstr "Varying 名称已更改" + +msgid "Set Constant: %s" +msgstr "设置常量:%s" + +msgid "Invalid name for varying." +msgstr "Varying 名称无效。" + +msgid "Varying with that name is already exist." +msgstr "名为“%s”的 Varying 已存在。" + +msgid "Add Node(s) to Visual Shader" +msgstr "将节点添加到可视着色器" + msgid "Vertex" msgstr "顶点" @@ -6662,18 +10347,48 @@ msgstr "灯光" msgid "Process" msgstr "处理" +msgid "Collide" +msgstr "碰撞" + msgid "Sky" msgstr "天空" msgid "Fog" msgstr "雾" +msgid "Manage Varyings" +msgstr "管理 Varying" + +msgid "Add Varying" +msgstr "添加 Varying" + +msgid "Remove Varying" +msgstr "移除 Varying" + +msgid "Show generated shader code." +msgstr "显示生成的着色器代码。" + +msgid "Generated Shader Code" +msgstr "生成的着色器代码" + msgid "Add Node" msgstr "添加节点" +msgid "Clear Copy Buffer" +msgstr "清除复制缓冲区" + +msgid "High-end node" +msgstr "高端节点" + msgid "Create Shader Node" msgstr "创建着色器节点" +msgid "Create Shader Varying" +msgstr "创建着色器 Varying" + +msgid "Delete Shader Varying" +msgstr "删除着色器 Varying" + msgid "Color function." msgstr "颜色函数。" @@ -6722,6 +10437,12 @@ msgstr "柔光运算符。" msgid "Color constant." msgstr "颜色常量。" +msgid "Color parameter." +msgstr "颜色参数。" + +msgid "(Fragment/Light mode only) Derivative function." +msgstr "(仅限片段/灯光模式)导数函数。" + msgid "Returns the boolean result of the %s comparison between two parameters." msgstr "返回两个参数之间 %s 比较的布尔结果。" @@ -6758,6 +10479,40 @@ msgstr "小于等于(<=)" msgid "Not Equal (!=)" msgstr "不等于(!=)" +msgid "" +"Returns an associated 3D vector if the provided boolean value is true or " +"false." +msgstr "如果提供的布尔值是 true 或 false,则返回关联的 3D 向量。" + +msgid "" +"Returns an associated 2D vector if the provided boolean value is true or " +"false." +msgstr "如果提供的布尔值是 true 或 false,则返回关联的 2D 向量。" + +msgid "" +"Returns an associated boolean if the provided boolean value is true or false." +msgstr "如果提供的布尔值是 true 或 false,则返回关联的布尔值。" + +msgid "" +"Returns an associated floating-point scalar if the provided boolean value is " +"true or false." +msgstr "如果提供的布尔值是 true 或 false,则返回关联的浮点数标量。" + +msgid "" +"Returns an associated integer scalar if the provided boolean value is true " +"or false." +msgstr "如果提供的布尔值是 true 或 false,则返回关联的整数标量。" + +msgid "" +"Returns an associated transform if the provided boolean value is true or " +"false." +msgstr "如果提供的布尔值是 true 或 false,则返回关联的变换。" + +msgid "" +"Returns an associated unsigned integer scalar if the provided boolean value " +"is true or false." +msgstr "如果提供的布尔值是 true 或 false,则返回关联的无符号整数标量。" + msgid "Returns the boolean result of the comparison between two parameters." msgstr "返回两个参数之间比较的布尔结果。" @@ -6769,6 +10524,12 @@ msgstr "返回 INF(或 NaN)和标量参数之间比较的布尔结果。" msgid "Boolean constant." msgstr "布尔常量。" +msgid "Boolean parameter." +msgstr "布尔参数。" + +msgid "Translated to '%s' in Godot Shading Language." +msgstr "在 Godot 着色语言中翻译为“%s”。" + msgid "'%s' input parameter for all shader modes." msgstr "所有着色器模式的 “%s” 输入参数。" @@ -6784,12 +10545,55 @@ msgstr "片段和灯光着色器模式的 “%s” 输入参数。" msgid "'%s' input parameter for fragment shader mode." msgstr "片段着色器模式的 “%s” 输入参数。" +msgid "'%s' input parameter for sky shader mode." +msgstr "天空着色器模式的“%s”输入参数。" + +msgid "'%s' input parameter for fog shader mode." +msgstr "雾着色器模式的“%s”输入参数。" + msgid "'%s' input parameter for light shader mode." msgstr "灯光着色器模式的 “%s” 输入参数。" msgid "'%s' input parameter for vertex shader mode." msgstr "顶点着色器模式的 “%s” 输入参数。" +msgid "'%s' input parameter for start shader mode." +msgstr "用于启动着色器模式的“%s”输入参数。" + +msgid "'%s' input parameter for process shader mode." +msgstr "处理着色器模式的“%s”输入参数。" + +msgid "'%s' input parameter for start and process shader modes." +msgstr "启动和处理着色器模式的“%s”输入参数。" + +msgid "'%s' input parameter for process and collide shader modes." +msgstr "处理和碰撞着色器模式的“%s”输入参数。" + +msgid "" +"A node for help to multiply a position input vector by rotation using " +"specific axis. Intended to work with emitters." +msgstr "" +"一个节点,用于帮助通过使用特定轴的旋转来乘以位置输入向量。旨在与发射器一起使" +"用。" + +msgid "Float function." +msgstr "浮点函数。" + +msgid "Float operator." +msgstr "浮点运算符。" + +msgid "Integer function." +msgstr "整数函数。" + +msgid "Integer operator." +msgstr "整数运算符。" + +msgid "Unsigned integer function." +msgstr "无符号整数函数。" + +msgid "Unsigned integer operator." +msgstr "无符号整数运算符。" + msgid "Returns the absolute value of the parameter." msgstr "返回参数的绝对值。" @@ -6814,6 +10618,13 @@ msgstr "返回参数的反正切值。" msgid "Returns the inverse hyperbolic tangent of the parameter." msgstr "返回参数的反双曲正切值。" +msgid "Returns the result of bitwise NOT (~a) operation on the integer." +msgstr "返回对整数进行按位非(~a)运算的结果。" + +msgid "" +"Returns the result of bitwise NOT (~a) operation on the unsigned integer." +msgstr "返回对无符号整数进行按位非(~a)运算的结果。" + msgid "" "Finds the nearest integer that is greater than or equal to the parameter." msgstr "查找最接近的大于或等于参数的整数。" @@ -6870,6 +10681,9 @@ msgstr "返回两个值中较小的一个。" msgid "Linear interpolation between two scalars." msgstr "两个标量之间的线性插值。" +msgid "Performs a fused multiply-add operation (a * b + c) on scalars." +msgstr "对标量执行融合的乘加运算(a * b + c)。" + msgid "Returns the opposite value of the parameter." msgstr "返回参数的相反值。" @@ -6942,11 +10756,178 @@ msgstr "返回参数的双曲正切值。" msgid "Finds the truncated value of the parameter." msgstr "查找参数的截断值。" +msgid "Sums two floating-point scalars." +msgstr "对两个浮点标量求和。" + +msgid "Sums two integer scalars." +msgstr "对两个整数标量求和。" + +msgid "Sums two unsigned integer scalars." +msgstr "对两个无符号整数标量求和。" + +msgid "Returns the result of bitwise AND (a & b) operation for two integers." +msgstr "返回两个整数的按位与(a & b)运算的结果。" + +msgid "" +"Returns the result of bitwise AND (a & b) operation for two unsigned " +"integers." +msgstr "返回两个无符号整数的按位与(a & b)运算的结果。" + +msgid "" +"Returns the result of bitwise left shift (a << b) operation on the integer." +msgstr "返回整数按位左移(a << b)运算的结果。" + +msgid "" +"Returns the result of bitwise left shift (a << b) operation on the unsigned " +"integer." +msgstr "返回无符号整数按位左移(a << b)运算的结果。" + +msgid "Returns the result of bitwise OR (a | b) operation for two integers." +msgstr "返回两个整数的按位或(a | b)运算的结果。" + +msgid "" +"Returns the result of bitwise OR (a | b) operation for two unsigned integers." +msgstr "返回两个无符号整数的按位或(a | b)运算的结果。" + +msgid "" +"Returns the result of bitwise right shift (a >> b) operation on the integer." +msgstr "返回整数按位右移(a >> b)运算的结果。" + +msgid "" +"Returns the result of bitwise right shift (a >> b) operation on the unsigned " +"integer." +msgstr "返回无符号整数按位右移(a >> b)运算的结果。" + +msgid "Returns the result of bitwise XOR (a ^ b) operation on the integer." +msgstr "返回对整数进行按位异或(a ^ b)运算的结果。" + +msgid "" +"Returns the result of bitwise XOR (a ^ b) operation on the unsigned integer." +msgstr "返回无符号整数按位异或(a ^ b)运算的结果。" + +msgid "Divides two floating-point scalars." +msgstr "将两个浮点标量相除。" + +msgid "Divides two integer scalars." +msgstr "将两个整数标量相除。" + +msgid "Divides two unsigned integer scalars." +msgstr "将两个无符号整数标量相除。" + +msgid "Multiplies two floating-point scalars." +msgstr "将两个浮点标量相乘。" + +msgid "Multiplies two integer scalars." +msgstr "将两个整数标量相乘。" + +msgid "Multiplies two unsigned integer scalars." +msgstr "将两个无符号整数标量相乘。" + +msgid "Returns the remainder of the two floating-point scalars." +msgstr "返回两个浮点标量的余数。" + +msgid "Returns the remainder of the two integer scalars." +msgstr "返回两个整数标量的余数。" + +msgid "Returns the remainder of the two unsigned integer scalars." +msgstr "返回两个无符号整数标量的余数。" + +msgid "Subtracts two floating-point scalars." +msgstr "将两个浮点标量相减。" + +msgid "Subtracts two integer scalars." +msgstr "将两个整数标量相减。" + +msgid "Subtracts two unsigned integer scalars." +msgstr "将两个无符号整数标量相减。" + +msgid "Scalar floating-point constant." +msgstr "标量浮点常量。" + +msgid "Scalar integer constant." +msgstr "标量整数常量。" + +msgid "Scalar unsigned integer constant." +msgstr "标量无符号整数常量。" + +msgid "Scalar floating-point parameter." +msgstr "标量浮点参数。" + +msgid "Scalar integer parameter." +msgstr "标量整数参数。" + +msgid "Scalar unsigned integer parameter." +msgstr "标量无符号整数参数。" + +msgid "Converts screen UV to a SDF." +msgstr "将屏幕 UV 转换为 SDF。" + +msgid "Casts a ray against the screen SDF and returns the distance travelled." +msgstr "向屏幕上的SDF投射射线,并返回行进的距离。" + +msgid "Converts a SDF to screen UV." +msgstr "将一个 SDF 转换为屏幕 UV。" + +msgid "Performs a SDF texture lookup." +msgstr "执行 SDF 纹理查找。" + +msgid "Performs a SDF normal texture lookup." +msgstr "执行 SDF 法线纹理查找。" + +msgid "Function to be applied on texture coordinates." +msgstr "应用于纹理坐标的函数。" + +msgid "Polar coordinates conversion applied on texture coordinates." +msgstr "应用于纹理坐标的极坐标转换。" + msgid "Perform the cubic texture lookup." msgstr "执行立方体纹理查找。" +msgid "Perform the curve texture lookup." +msgstr "执行曲线纹理查找。" + +msgid "Perform the three components curve texture lookup." +msgstr "执行三分量曲线纹理查找。" + +msgid "" +"Returns the depth value obtained from the depth prepass in a linear space." +msgstr "返回在线性空间中从深度预处理得到的深度值。" + +msgid "Perform the 2D texture lookup." +msgstr "执行 2D 纹理查找。" + +msgid "Perform the 2D-array texture lookup." +msgstr "执行 2D 阵列纹理查找。" + +msgid "Perform the 3D texture lookup." +msgstr "执行 3D 纹理查找。" + +msgid "Apply panning function on texture coordinates." +msgstr "在纹理坐标上应用平移函数。" + +msgid "Apply scaling function on texture coordinates." +msgstr "在纹理坐标上应用缩放函数。" + +msgid "Cubic texture parameter lookup." +msgstr "立方体纹理参数查找。" + +msgid "2D texture parameter lookup." +msgstr "2D 纹理参数查找。" + +msgid "2D texture parameter lookup with triplanar." +msgstr "使用三平面进行 2D 纹理参数查找。" + +msgid "2D array of textures parameter lookup." +msgstr "2D 阵列纹理参数查找。" + +msgid "3D texture parameter lookup." +msgstr "3D 纹理参数查找。" + msgid "Transform function." -msgstr "转换函数。" +msgstr "变换函数。" + +msgid "Transform operator." +msgstr "变换运算。" msgid "" "Calculate the outer product of a pair of vectors.\n" @@ -6972,23 +10953,86 @@ msgstr "将变换分解为四个向量。" msgid "Calculates the determinant of a transform." msgstr "计算变换的行列式。" +msgid "" +"Calculates how the object should face the camera to be applied on Model View " +"Matrix output port for 3D objects." +msgstr "计算物体应如何面对摄影机,以应用于 3D 物体的模型视图矩阵输出端口。" + msgid "Calculates the inverse of a transform." -msgstr "计算变换的倒数。" +msgstr "计算变换的逆。" msgid "Calculates the transpose of a transform." msgstr "计算变换的转置。" +msgid "Sums two transforms." +msgstr "对两个变换求和。" + +msgid "Divides two transforms." +msgstr "将两个变换相除。" + +msgid "Multiplies two transforms." +msgstr "将两个变换相乘。" + +msgid "Performs per-component multiplication of two transforms." +msgstr "执行两个变换的分组件的相乘。" + +msgid "Subtracts two transforms." +msgstr "将两个变换相减。" + msgid "Multiplies vector by transform." msgstr "用变换乘以向量。" msgid "Transform constant." msgstr "变换常数。" +msgid "Transform parameter." +msgstr "变换参数。" + +msgid "" +"The distance fade effect fades out each pixel based on its distance to " +"another object." +msgstr "距离淡化效果是根据每个像素与另一个物体的距离来淡化每个像素的。" + +msgid "" +"The proximity fade effect fades out each pixel based on its distance to " +"another object." +msgstr "邻近淡化效果是根据每个像素与另一个物体的距离来淡出每个像素的。" + +msgid "Returns a random value between the minimum and maximum input values." +msgstr "返回一个介于最小和最大输入值之间的随机值。" + +msgid "Remaps a given input from the input range to the output range." +msgstr "将一个给定的输入从输入范围重新映射到输出范围。" + msgid "Vector function." msgstr "向量函数。" msgid "Vector operator." -msgstr "向量运算符。" +msgstr "向量运算。" + +msgid "Composes vector from scalars." +msgstr "由标量组成向量。" + +msgid "Decomposes vector to scalars." +msgstr "将向量分解为标量。" + +msgid "Composes 2D vector from two scalars." +msgstr "从两个标量组成 2D 向量。" + +msgid "Decomposes 2D vector to two scalars." +msgstr "将 2D 向量分解为两个标量。" + +msgid "Composes 3D vector from three scalars." +msgstr "从三个标量组成 3D 向量。" + +msgid "Decomposes 3D vector to three scalars." +msgstr "将 3D 向量分解为三个标量。" + +msgid "Composes 4D vector from four scalars." +msgstr "从四个标量组成 4D 向量。" + +msgid "Decomposes 4D vector to four scalars." +msgstr "将 4D 向量分解为四个标量。" msgid "Calculates the cross product of two vectors." msgstr "计算两个向量的叉积。" @@ -7032,6 +11076,9 @@ msgstr "两个向量之间的线性插值。" msgid "Linear interpolation between two vectors using scalar." msgstr "使用标量在两个向量之间进行线性插值。" +msgid "Performs a fused multiply-add operation (a * b + c) on vectors." +msgstr "执行向量的乘加融合运算(a * b + c)。" + msgid "Calculates the normalize product of vector." msgstr "计算向量的标准化积。" @@ -7096,6 +11143,73 @@ msgid "" "'y'." msgstr "(仅限片段/光照模式)(向量)“x” 和 “y” 中的绝对导数之和。" +msgid "Adds 2D vector to 2D vector." +msgstr "把 2D 向量与 2D 向量相加。" + +msgid "Adds 3D vector to 3D vector." +msgstr "把 3D 向量与 3D 向量相加。" + +msgid "Adds 4D vector to 4D vector." +msgstr "把 4D 向量与 4D 向量相加。" + +msgid "Divides 2D vector by 2D vector." +msgstr "把 2D 向量除以 2D 向量。" + +msgid "Divides 3D vector by 3D vector." +msgstr "把 3D 向量除以 3D 向量。" + +msgid "Divides 4D vector by 4D vector." +msgstr "把 4D 向量除以 4D 向量。" + +msgid "Multiplies 2D vector by 2D vector." +msgstr "把 2D 向量与 2D 向量相乘。" + +msgid "Multiplies 3D vector by 3D vector." +msgstr "把 3D 向量与 3D 向量相乘。" + +msgid "Multiplies 4D vector by 4D vector." +msgstr "把 4D 向量与 4D 向量相乘。" + +msgid "Returns the remainder of the two 2D vectors." +msgstr "返回两个 2D 向量的余数。" + +msgid "Returns the remainder of the two 3D vectors." +msgstr "返回两个 3D 向量的余数。" + +msgid "Returns the remainder of the two 4D vectors." +msgstr "返回两个 4D 向量的余数。" + +msgid "Subtracts 2D vector from 2D vector." +msgstr "从 2D 向量中减去 2D 向量。" + +msgid "Subtracts 3D vector from 3D vector." +msgstr "从 3D 向量中减去 3D 向量。" + +msgid "Subtracts 4D vector from 4D vector." +msgstr "从 4D 向量中减去 4D 向量。" + +msgid "2D vector constant." +msgstr "2D 向量常量。" + +msgid "2D vector parameter." +msgstr "2D 向量参数。" + +msgid "3D vector constant." +msgstr "3D 向量常量。" + +msgid "3D vector parameter." +msgstr "3D 向量参数。" + +msgid "4D vector constant." +msgstr "4D 向量常量。" + +msgid "4D vector parameter." +msgstr "4D 向量参数。" + +msgid "" +"A rectangular area with a description string for better graph organization." +msgstr "一个带有描述字符串的矩形区域,以便更好地组织图形。" + msgid "" "Custom Godot Shader Language expression, with custom amount of input and " "output ports. This is a direct injection of code into the vertex/fragment/" @@ -7104,12 +11218,45 @@ msgstr "" "自定义 Godot 着色器语言表达式,可以有任意数量的输入和输出端口。它会往顶点/片" "段/灯光函数中直接注入代码,请勿在其中声明函数。" +msgid "" +"Custom Godot Shader Language expression, which is placed on top of the " +"resulted shader. You can place various function definitions inside and call " +"it later in the Expressions. You can also declare varyings, parameters and " +"constants." +msgstr "" +"自定义的 Godot 着色器语言表达式,会被放到最终的着色器开头。您可以在其中放置各" +"种函数定义,然后在表达式中调用。您还可以声明 varying、参数和常量。" + +msgid "A reference to an existing parameter." +msgstr "对现有参数的引用。" + +msgid "Get varying parameter." +msgstr "获取 varying 参数。" + +msgid "Set varying parameter." +msgstr "设置 varying 参数。" + msgid "Edit Visual Property:" msgstr "编辑可视属性:" msgid "Visual Shader Mode Changed" msgstr "可视着色器模式已更改" +msgid "Voxel GI data is not local to the scene." +msgstr "体素 GI 数据不是场景的局部数据。" + +msgid "Voxel GI data is part of an imported resource." +msgstr "体素 GI 数据是导入资源的一部分。" + +msgid "Voxel GI data is an imported resource." +msgstr "体素 GI 数据是一种导入资源。" + +msgid "Bake VoxelGI" +msgstr "烘焙 VoxelGI" + +msgid "Select path for VoxelGI Data File" +msgstr "选择 VoxelGI 数据文件路径" + msgid "The path specified doesn't exist." msgstr "指定的路径不存在。" @@ -7129,6 +11276,11 @@ msgstr "请选择 “project.godot” 或 “.zip” 文件。" msgid "This directory already contains a Godot project." msgstr "该目录已经包含 Godot 项目。" +msgid "" +"The selected path is not empty. Choosing an empty folder is highly " +"recommended." +msgstr "所选路径不为空。强烈建议选择一个空文件夹。" + msgid "New Game Project" msgstr "新建游戏项目" @@ -7147,6 +11299,48 @@ msgstr "该路径中已存在同名文件夹。" msgid "It would be a good idea to name your project." msgstr "最好为项目起个名字。" +msgid "Supports desktop platforms only." +msgstr "仅支持桌面平台。" + +msgid "Advanced 3D graphics available." +msgstr "有先进的 3D 图形。" + +msgid "Can scale to large complex scenes." +msgstr "可以扩展到大型复杂场景。" + +msgid "Uses RenderingDevice backend." +msgstr "使用 RenderingDevice 后端。" + +msgid "Slower rendering of simple scenes." +msgstr "简单场景的渲染速度较慢。" + +msgid "Supports desktop + mobile platforms." +msgstr "支持桌面 + 移动平台。" + +msgid "Less advanced 3D graphics." +msgstr "不太先进的 3D 图形。" + +msgid "Less scalable for complex scenes." +msgstr "对复杂场景的可扩展性较差。" + +msgid "Fast rendering of simple scenes." +msgstr "简单场景的渲染速度较快。" + +msgid "Supports desktop, mobile + web platforms." +msgstr "支持桌面、移动 + 网络平台。" + +msgid "Least advanced 3D graphics (currently work-in-progress)." +msgstr "最不先进的 3D 图形(目前正在进行的工作)。" + +msgid "Intended for low-end/older devices." +msgstr "针对低端/较老的设备。" + +msgid "Uses OpenGL 3 backend (OpenGL 3.3/ES 3.0/WebGL2)." +msgstr "使用 OpenGL 3 后端(OpenGL 3.3/ES 3.0/WebGL2)。" + +msgid "Fastest rendering of simple scenes." +msgstr "简单场景的渲染速度最快。" + msgid "Invalid project path (changed anything?)." msgstr "项目路径无效(被外部修改?)。" @@ -7157,9 +11351,26 @@ msgstr "无法加载位于“%s”的项目(错误 %d)。项目可能缺失 msgid "Couldn't save project at '%s' (error %d)." msgstr "无法保存位于“%s”的项目(错误 %d)。" +msgid "Warning: This folder is not empty" +msgstr "警告:该文件夹非空" + +msgid "" +"You are about to create a Godot project in a non-empty folder.\n" +"The entire contents of this folder will be imported as project resources!\n" +"\n" +"Are you sure you wish to continue?" +msgstr "" +"你将在非空的文件夹中创建 Godot 项目。\n" +"这个文件夹中的所有内容都将作为项目资源导入!\n" +"\n" +"你确定要继续吗?" + msgid "Couldn't create project.godot in project path." msgstr "无法在项目路径下创建 project.godot 文件。" +msgid "Couldn't create icon.svg in project path." +msgstr "无法在项目路径下创建 icon.svg 文件。" + msgid "Error opening package file, not in ZIP format." msgstr "打开包文件时出错,非 ZIP 格式。" @@ -7202,6 +11413,12 @@ msgstr "项目安装路径:" msgid "Renderer:" msgstr "渲染器:" +msgid "The renderer can be changed later, but scenes may need to be adjusted." +msgstr "渲染器可以稍后更改,但可能需要调整场景。" + +msgid "Version Control Metadata:" +msgstr "版本控制元数据:" + msgid "Missing Project" msgstr "缺失项目" @@ -7215,12 +11432,150 @@ msgid "Local Projects" msgstr "本地项目" msgid "Asset Library Projects" -msgstr "素材库项目" +msgstr "资产库项目" msgid "Can't open project at '%s'." msgstr "无法打开位于“%s”的项目。" msgid "" +"You requested to open %d projects in parallel. Do you confirm?\n" +"Note that usual checks for engine version compatibility will be bypassed." +msgstr "" +"你请求同时打开 %d 个项目。是否确认?\n" +"注意,将跳过对引擎版本兼容性的常规检查。" + +msgid "" +"The selected project \"%s\" does not specify its supported Godot version in " +"its configuration file (\"project.godot\").\n" +"\n" +"Project path: %s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" +"所选项目“%s”没有在配置文件(“project.godot”)中指定其支持的 Godot 版本。\n" +"\n" +"项目路径:%s\n" +"\n" +"如果继续打开,该项目会转换为 Godot 当前的配置文件格式。\n" +"\n" +"警告:将无法再使用以前版本的引擎打开该项目。" + +msgid "" +"The selected project \"%s\" was generated by Godot 3.x, and needs to be " +"converted for Godot 4.x.\n" +"\n" +"Project path: %s\n" +"\n" +"You have three options:\n" +"- Convert only the configuration file (\"project.godot\"). Use this to open " +"the project without attempting to convert its scenes, resources and " +"scripts.\n" +"- Convert the entire project including its scenes, resources and scripts " +"(recommended if you are upgrading).\n" +"- Do nothing and go back.\n" +"\n" +"Warning: If you select a conversion option, you won't be able to open the " +"project with previous versions of the engine anymore." +msgstr "" +"所选项目“%s”是由 Godot 3.x 生成的,需要转换至 Godot 4.x。\n" +"\n" +"项目路径:%s\n" +"\n" +"你有三个选择:\n" +"- 仅转换配置文件(“project.godot”)。此选项可以打开项目,但不尝试转换其中的场" +"景、资源、脚本。\n" +"- 转换整个项目,包括其中的场景、资源、脚本(升级时推荐)。\n" +"- 什么都不做,返回。\n" +"\n" +"警告:选择转换选项后,将无法再使用以前版本的引擎打开该项目。" + +msgid "Convert project.godot Only" +msgstr "仅转换 project.godot" + +msgid "" +"The selected project \"%s\" was generated by an older engine version, and " +"needs to be converted for this version.\n" +"\n" +"Project path: %s\n" +"\n" +"Do you want to convert it?\n" +"\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" +"所选项目“%s”是由较旧版本的引擎生成,需要为此版本进行转换:\n" +"\n" +"项目路径:%s\n" +"\n" +"是否要转换?\n" +"\n" +"警告: 将无法再使用以前版本的引擎打开该项目。" + +msgid "Convert project.godot" +msgstr "转换 project.godot" + +msgid "" +"Can't open project \"%s\" at the following path:\n" +"\n" +"%s\n" +"\n" +"The project settings were created by a newer engine version, whose settings " +"are not compatible with this version." +msgstr "" +"无法打开位于该路径的项目“%s”:\n" +"\n" +"%s\n" +"\n" +"项目设置是由较新版本的引擎创建的,其设置与此版本不兼容。" + +msgid "" +"Warning: This project uses double precision floats, but this version of\n" +"Godot uses single precision floats. Opening this project may cause data " +"loss.\n" +"\n" +msgstr "" +"警告:这个项目使用双精度浮点数,但这个版本的\n" +"Godot 使用单精度浮点数。打开这个项目可能会导致数据丢失。\n" +"\n" + +msgid "" +"Warning: This project uses C#, but this build of Godot does not have\n" +"the Mono module. If you proceed you will not be able to use any C# scripts.\n" +"\n" +msgstr "" +"警告:该项目使用 C#,但 Godot 的这个版本没有\n" +"Mono 模块。如果继续,你将无法使用任何 C# 脚本。\n" +"\n" + +msgid "" +"Warning: This project was built in Godot %s.\n" +"Opening will upgrade or downgrade the project to Godot %s.\n" +"\n" +msgstr "" +"警告:这个项目是在 Godot %s 中构建的。\n" +"打开后将升级或降级该项目到 Godot %s。\n" +"\n" + +msgid "" +"Warning: This project uses the following features not supported by this " +"build of Godot:\n" +"\n" +"%s\n" +"\n" +msgstr "" +"警告:这个项目使用了如下该 Godot 构建不支持的功能:\n" +"\n" +"%s\n" +"\n" + +msgid "Open anyway? Project will be modified." +msgstr "无论如何也要打开?项目将被修改。" + +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." @@ -7232,7 +11587,7 @@ msgid "" "Can't run project: Assets need to be imported.\n" "Please edit the project to trigger the initial import." msgstr "" -"无法运行项目: 需要导入素材。\n" +"无法运行项目: 需要导入资产。\n" "请编辑项目来触发首次导入。" msgid "Are you sure to run %d projects at once?" @@ -7269,6 +11624,9 @@ msgctxt "Application" msgid "Project Manager" msgstr "项目管理器" +msgid "Filter Projects" +msgstr "筛选项目" + msgid "" "This field filters projects by name and last path component.\n" "To filter projects by name and full path, the query must contain at least " @@ -7280,6 +11638,9 @@ msgstr "" msgid "Loading, please wait..." msgstr "正在加载,请稍候……" +msgid "Last Edited" +msgstr "最近编辑" + msgid "New Project" msgstr "新建项目" @@ -7316,6 +11677,26 @@ msgstr "移除全部" msgid "Also delete project contents (no undo!)" msgstr "同时删除项目内容(无法撤销!)" +msgid "" +"This option will perform full project conversion, updating scenes, resources " +"and scripts from Godot 3.x to work in Godot 4.0.\n" +"\n" +"Note that this is a best-effort conversion, i.e. it makes upgrading the " +"project easier, but it will not open out-of-the-box and will still require " +"manual adjustments.\n" +"\n" +"IMPORTANT: Make sure to backup your project before converting, as this " +"operation makes it impossible to open it in older versions of Godot." +msgstr "" +"该选项将执行完整的项目转换,更新 Godot 3.x 的场景、资源和脚本,以便在 Godot " +"4.0 中运行。\n" +"\n" +"注意,转换是尽力而为的,也就是说,它可以让项目的升级更容易,但无法做到开箱即" +"用,仍然需要手动调整。\n" +"\n" +"重要:转换前请一定要备份你的项目,因为这个操作会使它无法在旧版本的 Godot 中打" +"开。" + msgid "Can't run project" msgstr "无法运行项目" @@ -7324,35 +11705,56 @@ msgid "" "Would you like to explore official example projects in the Asset Library?" msgstr "" "目前没有任何项目。\n" -"是否查看素材库中的官方示例项目?" +"是否查看资产库中的官方示例项目?" + +msgid "Add Project Setting" +msgstr "添加项目设置" msgid "Delete Item" msgstr "删除条目" +msgid "(All)" +msgstr "(全部)" + msgid "Add Input Action" msgstr "添加输入动作" msgid "Change Action deadzone" msgstr "修改动作死区" -msgid "Add Input Action Event" -msgstr "添加输入动作事件" - msgid "Erase Input Action" msgstr "擦除输入动作" msgid "Rename Input Action Event" -msgstr "重命名输入事件" +msgstr "重命名输入动作事件" + +msgid "Update Input Action Order" +msgstr "更新输入动作顺序" msgid "Project Settings (project.godot)" msgstr "项目设置(project.godot)" +msgid "Advanced Settings" +msgstr "高级设置" + +msgid "Select a Setting or Type its Name" +msgstr "选择一个设置或输入其名称" + +msgid "Changed settings will be applied to the editor after restarting." +msgstr "更改后的设置将在重新启动后应用于编辑器。" + msgid "Input Map" -msgstr "键位映射" +msgstr "输入映射" msgid "Localization" msgstr "本地化" +msgid "Autoload" +msgstr "自动加载" + +msgid "Shader Globals" +msgstr "着色器全局量" + msgid "Plugins" msgstr "插件" @@ -7365,9 +11767,6 @@ msgstr "选择属性" msgid "Select Virtual Method" msgstr "选择虚方法" -msgid "Select Method" -msgstr "选择方法" - msgid "Batch Rename" msgstr "批量重命名" @@ -7386,6 +11785,21 @@ msgstr "高级选项" msgid "Substitute" msgstr "替换" +msgid "Node name." +msgstr "节点名称。" + +msgid "Node's parent name, if available." +msgstr "父节点的名称,如果有的话。" + +msgid "Node type." +msgstr "节点类型。" + +msgid "Current scene name." +msgstr "当前场景名称。" + +msgid "Root node name." +msgstr "根节点名称。" + msgid "" "Sequential integer counter.\n" "Compare counter options." @@ -7399,9 +11813,15 @@ msgstr "各级单独计数" msgid "If set, the counter restarts for each group of child nodes." msgstr "如果启用,计数器将为每组子节点重置。" +msgid "Initial value for the counter." +msgstr "计数器的初始值。" + msgid "Step" msgstr "步长" +msgid "Amount by which counter is incremented for each node." +msgstr "每个节点的计数器的递增量。" + msgid "Padding" msgstr "填充" @@ -7445,12 +11865,39 @@ msgstr "位于字符 %s" msgid "Reparent Node" msgstr "重设父节点" +msgid "Select new parent:" +msgstr "选择新父级:" + msgid "Keep Global Transform" msgstr "保持全局变换" msgid "Reparent" msgstr "重设父节点" +msgid "Pick Root Node Type" +msgstr "选取根节点类型" + +msgid "Pick" +msgstr "选取" + +msgid "Scene name is valid." +msgstr "场景名称有效。" + +msgid "Scene name is empty." +msgstr "场景名称为空。" + +msgid "File name invalid." +msgstr "文件名无效。" + +msgid "File already exists." +msgstr "文件已经存在。" + +msgid "Invalid root node name." +msgstr "根节点名称无效。" + +msgid "Root Type:" +msgstr "根类型:" + msgid "2D Scene" msgstr "2D 场景" @@ -7460,12 +11907,41 @@ msgstr "3D 场景" msgid "User Interface" msgstr "用户界面" +msgid "Scene Name:" +msgstr "场景名称:" + +msgid "Root Name:" +msgstr "根名称:" + +msgid "Leave empty to use scene name" +msgstr "留空以使用场景名称" + +msgid "Create New Scene" +msgstr "新建场景" + +msgid "No parent to instantiate a child at." +msgstr "没有父节点可用于实例化一个子场景。" + +msgid "No parent to instantiate the scenes at." +msgstr "没有父节点可用于实例化场景。" + msgid "Error loading scene from %s" msgstr "从 %s 加载场景出错" +msgid "" +"Cannot instantiate the scene '%s' because the current scene exists within " +"one of its nodes." +msgstr "无法实例化该场景“%s”,因为当前场景位于该场景节点中。" + +msgid "Instantiate Scene(s)" +msgstr "实例化场景" + msgid "Replace with Branch Scene" msgstr "替换为分支场景" +msgid "Instantiate Child Scene" +msgstr "实例化子场景" + msgid "Detach Script" msgstr "分离脚本" @@ -7518,6 +11994,25 @@ msgid "" msgstr "将分支保存为场景需要仅选择一个节点,但你选了 %d 个。" msgid "" +"Can't save the root node branch as an instantiated scene.\n" +"To create an editable copy of the current scene, duplicate it using the " +"FileSystem dock context menu\n" +"or create an inherited scene using Scene > New Inherited Scene... instead." +msgstr "" +"无法将根节点保存为一个实例化场景。\n" +"如果要创建当前场景的可编辑副本,请使用文件系统停靠面板的上下文菜单复制它\n" +"或者改用场景 > 新建继承场景... 创建一个继承场景。" + +msgid "" +"Can't save the branch of an already instantiated scene.\n" +"To create a variation of a scene, you can make an inherited scene based on " +"the instantiated scene using Scene > New Inherited Scene... instead." +msgstr "" +"无法保存已实例化的场景的分支。\n" +"如果要创建场景的变种,请改用场景 > 新建继承场景... 创建基于该实例化场景的继承" +"场景。" + +msgid "" "Can't save a branch which is a child of an already instantiated scene.\n" "To save this branch into its own scene, open the original scene, right click " "on this branch, and select \"Save Branch as Scene\"." @@ -7568,18 +12063,30 @@ msgstr "新建场景根" msgid "Create Root Node:" msgstr "创建根节点:" +msgid "Switch to Favorite Nodes" +msgstr "切换到收藏节点" + msgid "Other Node" msgstr "其他节点" +msgid "Paste From Clipboard" +msgstr "从剪贴板粘贴" + msgid "Can't operate on nodes from a foreign scene!" msgstr "无法操作外部场景的节点!" msgid "Can't operate on nodes the current scene inherits from!" msgstr "无法操作此节点,因为当前场景继承自该节点!" +msgid "This operation can't be done on instantiated scenes." +msgstr "此操作不能应用于实例化的场景。" + msgid "Attach Script" msgstr "添加脚本" +msgid "Set Shader" +msgstr "设置着色器" + msgid "Cut Node(s)" msgstr "剪切节点" @@ -7603,9 +12110,18 @@ msgstr "保存场景出错。" msgid "Error duplicating scene to save it." msgstr "复制场景出错。" +msgid "Instantiate Script" +msgstr "实例化脚本" + msgid "Sub-Resources" msgstr "子资源" +msgid "Revoke Unique Name" +msgstr "撤销唯一名称" + +msgid "Access as Unique Name" +msgstr "作为唯一名称访问" + msgid "Clear Inheritance" msgstr "清除继承" @@ -7615,9 +12131,28 @@ msgstr "子节点可编辑" msgid "Load As Placeholder" msgstr "加载为占位符" +msgid "Auto Expand to Selected" +msgstr "自动展开至选定项" + msgid "Filters" msgstr "过滤" +msgid "Filter by Type" +msgstr "按类型过滤" + +msgid "Filter by Group" +msgstr "按组过滤" + +msgid "Selects all Nodes of the given type." +msgstr "选择给定类型的所有节点。" + +msgid "" +"Selects all Nodes belonging to the given group.\n" +"If empty, selects any Node belonging to any group." +msgstr "" +"选择属于给定组的所有节点。\n" +"如果为空,则选择属于任何组的任何节点。" + msgid "" "Cannot attach a script: there are no languages registered.\n" "This is probably because this editor was built with all language modules " @@ -7635,8 +12170,11 @@ msgstr "粘贴节点" msgid "Add Child Node" msgstr "添加子节点" +msgid "Expand/Collapse Branch" +msgstr "展开/折叠分支" + msgid "Change Type" -msgstr "修改类型" +msgstr "更改类型" msgid "Reparent to New Node" msgstr "重设父节点为新节点" @@ -7644,18 +12182,29 @@ msgstr "重设父节点为新节点" msgid "Make Scene Root" msgstr "设为场景根节点" +msgid "Toggle Access as Unique Name" +msgstr "切换作为唯一名称访问" + msgid "Delete (No Confirm)" msgstr "删除(无确认)" msgid "Add/Create a New Node." msgstr "添加/创建新节点。" +msgid "" +"Instantiate a scene file as a Node. Creates an inherited scene if no root " +"node exists." +msgstr "将场景文件实例化为节点。如果没有根节点则创建继承场景。" + msgid "Attach a new or existing script to the selected node." msgstr "为选中节点创建或设置脚本。" msgid "Detach the script from the selected node." msgstr "从选中节点分离脚本。" +msgid "Extra scene options." +msgstr "更多场景选项。" + msgid "Remote" msgstr "远程" @@ -7696,6 +12245,23 @@ msgstr "" "这个节点可以在场景中的任意位置通过在节点路径中为其加上“%s”前缀来访问。\n" "点击禁用。" +msgid "Node has one connection." +msgid_plural "Node has {num} connections." +msgstr[0] "节点有 {num} 个连接。" + +msgid "Node is in this group:" +msgid_plural "Node is in the following groups:" +msgstr[0] "节点属于分组:" + +msgid "Click to show signals dock." +msgstr "点击显示信号面板。" + +msgid "This script is currently running in the editor." +msgstr "这个脚本正在编辑器中运行。" + +msgid "This script is a custom type." +msgstr "这个脚本是自定义类型。" + msgid "Open Script:" msgstr "打开脚本:" @@ -7707,12 +12273,22 @@ msgstr "" "点击可解锁。" msgid "" +"Children are not selectable.\n" +"Click to make them selectable." +msgstr "" +"子节点无法选择。\n" +"单击使其可选。" + +msgid "" "AnimationPlayer is pinned.\n" "Click to unpin." msgstr "" "动画播放器被固定。\n" "点击取消固定。" +msgid "\"%s\" is not a known filter." +msgstr "“%s”不是已知筛选器。" + msgid "Invalid node name, the following characters are not allowed:" msgstr "节点名称无效,不允许包含以下字符:" @@ -7737,9 +12313,15 @@ msgstr "路径为空。" msgid "Filename is empty." msgstr "文件名为空。" +msgid "Filename is invalid." +msgstr "文件名无效。" + msgid "Path is not local." msgstr "路径不是本地的。" +msgid "Base path is invalid." +msgstr "基本路径无效。" + msgid "A directory with the same name exists." msgstr "存在同名目录。" @@ -7749,6 +12331,9 @@ msgstr "文件不存在。" msgid "Invalid extension." msgstr "扩展名无效。" +msgid "Extension doesn't match chosen language." +msgstr "扩展名与所选语言不匹配。" + msgid "Template:" msgstr "模板:" @@ -7764,6 +12349,12 @@ msgstr "打开脚本/选择位置" msgid "Open Script" msgstr "打开脚本" +msgid "Inherit %s" +msgstr "继承 %s" + +msgid "Inherit" +msgstr "继承" + msgid "File exists, it will be reused." msgstr "文件存在,将被重用。" @@ -7791,12 +12382,21 @@ msgstr "内置脚本(到场景文件中)。" msgid "Will create a new script file." msgstr "将创建新脚本文件。" +msgid "Using existing script file." +msgstr "使用现有脚本文件。" + msgid "Will load an existing script file." msgstr "将加载现有的脚本文件。" msgid "Script file already exists." msgstr "脚本文件已存在。" +msgid "No suitable template." +msgstr "没有合适的模板。" + +msgid "Empty" +msgstr "空" + msgid "" "Note: Built-in scripts have some limitations and can't be edited using an " "external editor." @@ -7816,12 +12416,66 @@ msgstr "内置脚本:" msgid "Attach Node Script" msgstr "设置节点的脚本" +msgid "Error - Could not create shader include in filesystem." +msgstr "错误 - 无法在文件系统中创建着色器头文件。" + +msgid "Error - Could not create shader in filesystem." +msgstr "错误 - 无法在文件系统中创建着色器。" + +msgid "Error loading shader from %s" +msgstr "从 %s 加载着色器时出错" + +msgid "Open Shader / Choose Location" +msgstr "打开着色器 / 选择位置" + msgid "Invalid base path." msgstr "无效的基本路径。" msgid "Wrong extension chosen." msgstr "选择了错误的扩展名。" +msgid "Shader path/name is valid." +msgstr "着色器路径/名称有效。" + +msgid "Built-in shader (into scene file)." +msgstr "内置着色器(到场景文件中)。" + +msgid "Will create a new shader file." +msgstr "将新建着色器文件。" + +msgid "Will load an existing shader file." +msgstr "将加载现有的着色器文件。" + +msgid "Shader file already exists." +msgstr "着色器文件已存在。" + +msgid "Note: Built-in shaders can't be edited using an external editor." +msgstr "注意:内置着色器不能使用外部编辑器编辑。" + +msgid "Mode:" +msgstr "模式:" + +msgid "Built-in Shader:" +msgstr "内置着色器:" + +msgid "Create Shader" +msgstr "创建着色器" + +msgid "Set Shader Global Variable" +msgstr "设置着色器全局变量" + +msgid "Please specify a valid shader uniform identifier name." +msgstr "请指定有效的着色器 Uniform 标识符名称。" + +msgid "Global shader parameter '%s' already exists'" +msgstr "全局着色器参数“%s”已存在" + +msgid "Name '%s' is a reserved shader language keyword." +msgstr "名称“%s”是为着色器语言保留的关键字。" + +msgid "Add Shader Global Parameter" +msgstr "添加着色器全局参数" + msgid "Change Cylinder Radius" msgstr "修改圆柱体半径" @@ -7861,6 +12515,60 @@ msgstr "实例字典格式不正确(@path 的脚本无效)" msgid "Invalid instance dictionary (invalid subclasses)" msgstr "实例字典无效(派生类无效)" +msgid "Value of type '%s' can't provide a length." +msgstr "类型为“%s”的值无法提供长度。" + +msgid "Export Scene to glTF 2.0 File" +msgstr "将场景导出为 glTF 2.0 文件" + +msgid "glTF 2.0 Scene..." +msgstr "glTF 2.0 场景..." + +msgid "Path does not contain a Blender installation." +msgstr "路径未包含 Blender 安装。" + +msgid "Can't execute Blender binary." +msgstr "无法执行 Blender 可执行文件。" + +msgid "Unexpected --version output from Blender binary at: %s" +msgstr "从 Blender 可执行文件获得了意外的 --version 输出:%s" + +msgid "Path supplied lacks a Blender binary." +msgstr "提供的路径缺少 Blender 可执行文件。" + +msgid "This Blender installation is too old for this importer (not 3.0+)." +msgstr "安装的 Blender 对这个导入器来说太旧了(不是 3.0+)。" + +msgid "This Blender installation is too new for this importer (not 3.x)." +msgstr "安装的 Blender 对这个导入器来说太新了(不是 3.x)。" + +msgid "Path to Blender installation is valid (Autodetected)." +msgstr "Blender 安装路径有效(自动检测)。" + +msgid "Path to Blender installation is valid." +msgstr "Blender 安装路径有效。" + +msgid "Configure Blender Importer" +msgstr "配置 Blender 导入器" + +msgid "" +"Blender 3.0+ is required to import '.blend' files.\n" +"Please provide a valid path to a Blender installation:" +msgstr "" +"要导入“.blend”文件,需要 Blender 3.0 以上版本。\n" +"请提供一个有效的 Blender 安装路径:" + +msgid "Disable '.blend' Import" +msgstr "禁用“.blend”导入" + +msgid "" +"Disables Blender '.blend' files import for this project. Can be re-enabled " +"in Project Settings." +msgstr "禁用此项目的 Blender“.blend”文件导入。可以在项目设置中重新启用。" + +msgid "Disabling '.blend' file import requires restarting the editor." +msgstr "禁用“.blend”文件导入需要重启编辑器。" + msgid "Next Plane" msgstr "下一平面" @@ -7895,7 +12603,7 @@ msgid "GridMap Selection" msgstr "GridMap 选择" msgid "Grid Map" -msgstr "网格地图" +msgstr "栅格地图" msgid "Edit X Axis" msgstr "编辑 X 轴" @@ -7945,12 +12653,54 @@ msgstr "GridMap 设置" msgid "Pick Distance:" msgstr "拾取距离:" +msgid "Filter Meshes" +msgstr "筛选网格" + msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "向此 GridMap 提供 MeshLibrary 资源以使用其网格。" +msgid "Determining optimal atlas size" +msgstr "重在确定最佳图集尺寸" + +msgid "Blitting albedo and emission" +msgstr "正在复制反照率和发光" + +msgid "Plotting mesh into acceleration structure %d/%d" +msgstr "正在加速结构中构造网格 %d/%d" + +msgid "Optimizing acceleration structure" +msgstr "正在优化加速结构" + msgid "Begin Bake" msgstr "开始烘焙" +msgid "Preparing shaders" +msgstr "正在准备着色器" + +msgid "Un-occluding geometry" +msgstr "正在剥离遮挡几何体" + +msgid "Plot direct lighting" +msgstr "构建直接光照" + +msgid "Integrate indirect lighting" +msgstr "集成间接光照" + +msgid "Bounce %d/%d: Integrate indirect lighting %d%%" +msgstr "反弹 %d/%d:集成间接照明 %d%%" + +msgid "Baking lightprobes" +msgstr "正在烘焙光照探针" + +msgid "Integrating light probes %d%%" +msgstr "正在集成光照探针 %d%%" + +msgid "Denoising" +msgstr "正在降噪" + +msgid "Retrieving textures" +msgstr "正在获取纹理" + msgid "Class name can't be a reserved keyword" msgstr "类名不能是保留关键字" @@ -7960,6 +12710,9 @@ msgstr "构建解决方案" msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "解码字节数不够,或格式无效。" +msgid "%d (%s)" +msgstr "%d(%s)" + msgid "%s/s" msgstr "%s/秒" @@ -7969,6 +12722,9 @@ msgstr "传入 RPC" msgid "Outgoing RPC" msgstr "传出 RPC" +msgid "Synchronizer" +msgstr "同步器" + msgid "Config" msgstr "配置" @@ -7981,9 +12737,90 @@ msgstr "大小" msgid "Network Profiler" msgstr "网络分析器" +msgid "Replication" +msgstr "复制" + +msgid "Select a replicator node in order to pick a property to add to it." +msgstr "请选择一个复制器节点,以便选取属性进行添加。" + +msgid "Not possible to add a new property to synchronize without a root." +msgstr "不可能在没有根的情况下添加一个新的属性来进行同步。" + +msgid "Property is already being synchronized." +msgstr "属性已被同步。" + +msgid "Add property to synchronizer" +msgstr "将属性添加至同步器" + +msgid "Pick a node to synchronize:" +msgstr "选择一个节点进行同步:" + +msgid "Add property to sync..." +msgstr "添加同步属性..." + +msgid "Add from path" +msgstr "从路径添加" + +msgid "Spawn" +msgstr "出生" + +msgid "" +"Add properties using the buttons above or\n" +"drag them them from the inspector and drop them here." +msgstr "" +"请使用上面的按钮添加属性或\n" +"将属性从检查器中拖放到这里。" + +msgid "Please select a MultiplayerSynchronizer first." +msgstr "请先选择一个 MultiplayerSynchronizer。" + +msgid "The MultiplayerSynchronizer needs a root path." +msgstr "该 MultiplayerSynchronizer 需要根路径。" + +msgid "Set spawn property" +msgstr "设置出生属性" + +msgid "Set sync property" +msgstr "设置同步属性" + +msgid "Delete Property?" +msgstr "删除属性?" + +msgid "Remove Property" +msgstr "移除属性" + +msgid "" +"A valid NodePath must be set in the \"Spawn Path\" property in order for " +"MultiplayerSpawner to be able to spawn Nodes." +msgstr "" +"要让 MultiplayerSpawner 能够生出节点,必须在“Spawn Path”属性中设置有效的 " +"NodePath。" + +msgid "" +"A valid NodePath must be set in the \"Root Path\" property in order for " +"MultiplayerSynchronizer to be able to synchronize properties." +msgstr "" +"要让 MultiplayerSynchronizer 能够同步属性,必须在“Root Path”属性中设置有效的 " +"NodePath。" + msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "此节点需要设置 NavigationMesh 资源才能正常工作。" +msgid "" +"Cannot generate navigation mesh because it does not belong to the edited " +"scene. Make it unique first." +msgstr "无法生成导航网格,因为它不属于已编辑的场景。请先将其唯一化。" + +msgid "" +"Cannot generate navigation mesh because it belongs to a resource which was " +"imported." +msgstr "无法生成导航网格,因为它属于一个导入的资源。" + +msgid "" +"Cannot generate navigation mesh because the resource was imported from " +"another type." +msgstr "无法生成导航网格,因为该资源是从其他类型导入的。" + msgid "Bake NavMesh" msgstr "烘焙导航网格" @@ -7994,7 +12831,7 @@ msgid "Setting up Configuration..." msgstr "正在设置配置..." msgid "Calculating grid size..." -msgstr "正在计算网格大小..." +msgstr "正在计算栅格大小..." msgid "Creating heightfield..." msgstr "正在创建高度图..." @@ -8029,9 +12866,105 @@ msgstr "解析多边形中..." msgid "Done!" msgstr "完成!" +msgid "Toggles whether the noise preview is computed in 3D space." +msgstr "切换是否在 3D 空间中计算噪声预览。" + +msgid "Rename Action" +msgstr "重命名动作" + +msgid "Rename Actions Localized name" +msgstr "重命名动作本地化名称" + +msgid "Change Action Type" +msgstr "修改动作类型" + +msgid "Remove action" +msgstr "移除动作" + +msgid "Add action set" +msgstr "添加动作集" + +msgid "Remove action set" +msgstr "移除动作集" + +msgid "Add interaction profile" +msgstr "添加交互配置文件" + +msgid "Error saving file %s: %s" +msgstr "保存文件 %s 时出错:%s" + +msgid "Error loading %s: %s." +msgstr "加载 %s 时出错:%s。" + +msgid "OpenXR Action map:" +msgstr "OpenXR 动作映射:" + +msgid "Remove interaction profile" +msgstr "移除交互配置文件" + +msgid "Action Map" +msgstr "动作映射" + +msgid "Add Action Set" +msgstr "添加动作集" + +msgid "Add an action set." +msgstr "添加一个动作集。" + +msgid "Add profile" +msgstr "添加配置文件" + +msgid "Add an interaction profile." +msgstr "添加一个交互配置文件。" + +msgid "Save this OpenXR action map." +msgstr "保存这个 OpenXR 动作映射。" + +msgid "Reset to default OpenXR action map." +msgstr "重置为默认的 OpenXR 动作映射。" + +msgid "Action Sets" +msgstr "动作集" + +msgid "Rename Action Set" +msgstr "重命名动作集" + +msgid "Rename Action Sets Localized name" +msgstr "重命名动作集本地化名称" + +msgid "Change Action Sets priority" +msgstr "更改动作集优先级" + +msgid "Add action" +msgstr "添加动作" + +msgid "Delete action" +msgstr "删除动作" + +msgid "OpenXR Action Map" +msgstr "OpenXR 动作映射" + +msgid "Remove action from interaction profile" +msgstr "从交互配置中移除动作" + +msgid "Add binding" +msgstr "添加绑定" + +msgid "Remove binding" +msgstr "移除绑定" + msgid "Pose" msgstr "姿势" +msgid "Haptic" +msgstr "触摸" + +msgid "Unknown" +msgstr "未知" + +msgid "Select an action" +msgstr "选择一个动作" + msgid "Package name is missing." msgstr "包名缺失。" @@ -8050,6 +12983,11 @@ msgstr "包段中的第一个字符不能是 “%s”。" msgid "The package must have at least one '.' separator." msgstr "包必须至少有一个 “.” 分隔符。" +msgid "" +"The project name does not meet the requirement for the package name format. " +"Please explicitly specify the package name." +msgstr "项目名称不符合包名格式的要求。请显式指定包名。" + msgid "Select device from the list" msgstr "从列表中选择设备" @@ -8122,19 +13060,12 @@ msgstr "APK 扩展的公钥无效。" msgid "Invalid package name:" msgstr "无效的包名称:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "必须启用 “使用自定义构建” 才能使用插件。" +msgid "\"Hand Tracking\" is only valid when \"XR Mode\" is \"OpenXR\"." +msgstr "“手部跟踪”只有在当“XR Mode”是“OpenXR”时才有效。" msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "“穿透”只有在当“XR Mode”是“OpenXR”时才有效。" -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "“Export AAB”只有在当启用“使用自定义构建”时才有效。" - -msgid "" -"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "修改“最小 SDK”只有在当启用“使用自定义构建”时才有效。" - msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "“最小 SDK”应当为有效的整数,但获得了无效的“%s”。" @@ -8144,10 +13075,6 @@ msgid "" msgstr "“最小 SDK”不能低于 %d,这是 Godot 库所需要的版本。" msgid "" -"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "修改“目标 SDK”只有在当启用“使用自定义构建”时才有效。" - -msgid "" "\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "“目标 SDK”应当为有效的整数,但获得了无效的“%s”。" @@ -8165,6 +13092,14 @@ msgid "Code Signing" msgstr "代码签名" msgid "" +"All 'apksigner' tools located in Android SDK 'build-tools' directory failed " +"to execute. Please check that you have the correct version installed for " +"your target sdk version. The resulting %s is unsigned." +msgstr "" +"位于 Android SDK“build-tools”目录下的所有“apksigner”工具都未能成功执行。请检" +"查你是否为目标 SDK 版本安装了正确的版本。生成的 %s 未签名。" + +msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." msgstr "" @@ -8186,6 +13121,13 @@ msgstr "无法启动 apksigner 可执行文件。" msgid "'apksigner' returned with error #%d" msgstr "“apksigner”返回错误 #%d" +msgid "" +"output: \n" +"%s" +msgstr "" +"输出:\n" +"%s" + msgid "Verifying %s..." msgstr "正在校验 %s……" @@ -8208,12 +13150,6 @@ msgid "Unsupported export format!" msgstr "不支持的导出格式!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"尝试从自定义构建的模板构建,但是不存在其版本信息。请从“项目”菜单中重新安装。" - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" @@ -8286,6 +13222,23 @@ msgstr "准备模板" msgid "Export template not found." msgstr "找不到导出模板。" +msgid "Code signing failed, see editor log for details." +msgstr "代码签名失败,详见编辑器日志。" + +msgid "Xcode Build" +msgstr "Xcode 构建" + +msgid "Xcode project build failed, see editor log for details." +msgstr "Xcode 项目构建失败,详见编辑器日志。" + +msgid ".ipa export failed, see editor log for details." +msgstr ".ipa 导出失败,详见编辑器日志。" + +msgid "" +".ipa can only be built on macOS. Leaving Xcode project without building the " +"package." +msgstr ".ipa 只能在 macOS 上构建。正在离开 Xcode 项目,未构建包。" + msgid "App Store Team ID not specified - cannot configure the project." msgstr "未指定 App Store Team ID - 无法配置项目。" @@ -8298,6 +13251,15 @@ msgstr "缺少标识符。" msgid "The character '%s' is not allowed in Identifier." msgstr "标识符中不允许使用字符“%s”。" +msgid "Debug Script Export" +msgstr "调试脚本导出" + +msgid "Could not open file \"%s\"." +msgstr "无法打开文件“%s”。" + +msgid "Could not create console script." +msgstr "无法创建命令行脚本。" + msgid "Failed to open executable file \"%s\"." msgstr "打开可执行文件“%s”失败。" @@ -8310,6 +13272,39 @@ msgstr "32 位可执行文件无法内嵌 >= 4 GiB 的数据。" msgid "Executable \"pck\" section not found." msgstr "可执行文件“pck”区未找到。" +msgid "Stop and uninstall" +msgstr "停止并卸载" + +msgid "Run on remote Linux/BSD system" +msgstr "在远程 Linux/BSD 系统上运行" + +msgid "Stop and uninstall running project from the remote system" +msgstr "停止并卸载正在远程系统上运行的项目" + +msgid "Run exported project on remote Linux/BSD system" +msgstr "在远程 Linux/BSD 系统上运行导出的项目" + +msgid "Running..." +msgstr "正在运行..." + +msgid "Could not create temp directory:" +msgstr "无法创建临时目录:" + +msgid "Exporting project..." +msgstr "正在导出项目..." + +msgid "Creating temporary directory..." +msgstr "正在创建临时目录..." + +msgid "Uploading archive..." +msgstr "正在上传归档..." + +msgid "Uploading scripts..." +msgstr "正在上传脚本..." + +msgid "Starting project..." +msgstr "正在启动项目..." + msgid "Can't get filesystem access." msgstr "无法访问文件系统。" @@ -8329,7 +13324,7 @@ msgid "Failed to create \"%s\" subfolder." msgstr "创建“%s”子文件夹失败。" msgid "Failed to extract thin binary." -msgstr "提取瘦二进制文件失败。" +msgstr "提取精简二进制文件失败。" msgid "Invalid binary format." msgstr "二进制格式无效。" @@ -8373,9 +13368,31 @@ msgstr "无法打开图标文件“%s”。" msgid "Notarization" msgstr "公证" +msgid "" +"rcodesign path is not set. Configure rcodesign path in the Editor Settings " +"(Export > macOS > rcodesign)." +msgstr "" +"未设置 rcodesign 路径。请在编辑器设置中配置 rcodesign 路径(导出 > macOS > " +"rcodesign)。" + +msgid "App Store Connect issuer ID name not specified." +msgstr "未指定 App Store Connect 发行者 ID 名称。" + +msgid "App Store Connect API key ID not specified." +msgstr "未指定 App Store Connect API 密钥 ID。" + +msgid "Could not start rcodesign executable." +msgstr "无法启动 rcodesign 可执行文件。" + +msgid "Notarization failed, see editor log for details." +msgstr "公证失败,详见编辑器日志。" + msgid "Notarization request UUID: \"%s\"" msgstr "公证请求 UUID:“%s”" +msgid "The notarization process generally takes less than an hour." +msgstr "公证过程通常不到一个小时。" + msgid "" "You can check progress manually by opening a Terminal and running the " "following command:" @@ -8386,6 +13403,23 @@ msgid "" "application (optional):" msgstr "运行以下命令将公证票证装订到导出的应用中(可选):" +msgid "Xcode command line tools are not installed." +msgstr "未安装 Xcode 命令行工具。" + +msgid "" +"Neither Apple ID name nor App Store Connect issuer ID name not specified." +msgstr "Apple ID 名称和 App Store Connect 发行者 ID 名称均未指定。" + +msgid "" +"Both Apple ID name and App Store Connect issuer ID name are specified, only " +"one should be set at the same time." +msgstr "" +"同时指定了 Apple ID 名称和 App Store Connect 发行商 ID 名称,只应同时设置一" +"个。" + +msgid "Apple ID password not specified." +msgstr "未指定 Apple ID 密码。" + msgid "Could not start xcrun executable." msgstr "无法启动 xcrun 可执行文件。" @@ -8401,6 +13435,13 @@ msgid "Built-in CodeSign require regex module." msgstr "内置 CodeSign 需要 regex 模块。" msgid "" +"Xrcodesign path is not set. Configure rcodesign path in the Editor Settings " +"(Export > macOS > rcodesign)." +msgstr "" +"未设置 Xrcodesign 路径。请在编辑器设置中配置 rcodesign 路径(导出 > macOS > " +"rcodesign)。" + +msgid "" "Could not start codesign executable, make sure Xcode command line tools are " "installed." msgstr "无法启动 codesign 可执行文件,请确保已安装 Xcode 命令行工具。" @@ -8432,11 +13473,23 @@ msgstr "无法找到导出的模板应用:“%s”。" msgid "Invalid export format." msgstr "导出格式无效。" +msgid "Could not create directory: \"%s\"." +msgstr "无法创建目录:“%s”。" + +msgid "Could not create directory \"%s\"." +msgstr "无法创建目录“%s”。" + msgid "" "Relative symlinks are not supported on this OS, the exported project might " "be broken!" msgstr "该操作系统上不支持相对符号链接,导出的项目可能损坏!" +msgid "Could not created symlink \"%s\" -> \"%s\"." +msgstr "无法创建符号链接 “%s” -> “%s”。" + +msgid "Could not open \"%s\"." +msgstr "无法打开“%s”。" + msgid "" "Requested template binary \"%s\" not found. It might be missing from your " "template archive." @@ -8445,11 +13498,20 @@ msgstr "未找到请求的模板二进制文件“%s”。你的模板归档中 msgid "Making PKG" msgstr "正在制作 PKG" +msgid "Entitlements Modified" +msgstr "授权已修改" + msgid "" "Ad-hoc signed applications require the 'Disable Library Validation' " "entitlement to load dynamic libraries." msgstr "Ad-hoc 签名的应用需要“Disable Library Validation”授权才能加载动态库。" +msgid "Could not create entitlements file." +msgstr "无法创建授权文件。" + +msgid "Could not create helper entitlements file." +msgstr "无法创建帮助程序授权文件。" + msgid "Code signing bundle" msgstr "正在对捆绑包进行代码签名" @@ -8479,9 +13541,40 @@ msgstr "公证:不支持使用 Ad-hoc 签名进行公证。" msgid "Notarization: Code signing is required for notarization." msgstr "公证:公证需要代码签名。" +msgid "Notarization: Xcode command line tools are not installed." +msgstr "公证:未安装 Xcode 命令行工具。" + +msgid "" +"Notarization: Neither Apple ID name nor App Store Connect issuer ID name not " +"specified." +msgstr "公证:Apple ID 名称和 App Store Connect 发行者 ID 名称均未指定。" + +msgid "" +"Notarization: Both Apple ID name and App Store Connect issuer ID name are " +"specified, only one should be set at the same time." +msgstr "" +"公证:同时指定了 Apple ID 名称和 App Store Connect 发行商 ID 名称,只应同时设" +"置一个。" + msgid "Notarization: Apple ID password not specified." msgstr "公证:未指定 Apple ID 密码。" +msgid "Notarization: App Store Connect API key ID not specified." +msgstr "公证:未指定 App Store Connect API 密钥 ID。" + +msgid "Notarization: Apple Team ID not specified." +msgstr "公证:未指定 Apple Team ID。" + +msgid "Notarization: App Store Connect issuer ID name not specified." +msgstr "公证:未指定 App Store Connect 发行者 ID 名称。" + +msgid "" +"Notarization: rcodesign path is not set. Configure rcodesign path in the " +"Editor Settings (Export > macOS > rcodesign)." +msgstr "" +"公证:没有设置 rcodesign 路径。请在编辑器设置中配置 rcodesign 路径(导出 > " +"macOS > rcodesign)。" + msgid "" "Warning: Notarization is disabled. The exported project will be blocked by " "Gatekeeper if it's downloaded from an unknown source." @@ -8497,6 +13590,21 @@ msgstr "" "Silicon 的 Mac 上运行。" msgid "" +"Code signing: Using ad-hoc signature. The exported project will be blocked " +"by Gatekeeper" +msgstr "代码签名:使用临时签名。导出的项目将被 Gatekeeper 阻止" + +msgid "Code signing: Xcode command line tools are not installed." +msgstr "代码签名:未安装 Xcode 命令行工具。" + +msgid "" +"Code signing: rcodesign path is not set. Configure rcodesign path in the " +"Editor Settings (Export > macOS > rcodesign)." +msgstr "" +"代码签名:没有设置 rcodesign 路径。请在编辑器设置中配置 rcodesign 路径(导出 " +"> macOS > rcodesign)。" + +msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." msgstr "隐私:已启用麦克风访问,但未指定用途描述。" @@ -8524,6 +13632,12 @@ msgid "" "specified." msgstr "隐私:已启用照片库访问,但未指定用途描述。" +msgid "Run on remote macOS system" +msgstr "在远程 MacOS 系统上运行" + +msgid "Run exported project on remote macOS system" +msgstr "在远程 MacOS 系统上运行导出的项目" + msgid "Invalid package short name." msgstr "无效的包短名称。" @@ -8599,6 +13713,9 @@ msgstr "使用默认浏览器打开导出的 HTML 文件。" msgid "Resources Modification" msgstr "资源修改" +msgid "Icon size \"%d\" is missing." +msgstr "缺少图标尺寸“%d”。" + msgid "Failed to rename temporary file \"%s\"." msgstr "重命名临时文件“%s”失败。" @@ -8608,6 +13725,17 @@ msgstr "无法在“%s”找到 rcedit 可执行文件。" msgid "Could not find wine executable at \"%s\"." msgstr "无法在“%s”找到 wine 可执行文件。" +msgid "Invalid icon file \"%s\"." +msgstr "无效的图标文件“%s”。" + +msgid "" +"Could not start rcedit executable. Configure rcedit path in the Editor " +"Settings (Export > Windows > rcedit), or disable \"Application > Modify " +"Resources\" in the export preset." +msgstr "" +"无法启动 rcedit 可执行文件。请在编辑器设置中配置 rcedit 路径(导出 > Windows " +"> Rcedit),或在导出预设中禁用“应用 > 修改资源”。" + msgid "rcedit failed to modify executable: %s." msgstr "rcedit 修改可执行文件失败:%s。" @@ -8626,12 +13754,35 @@ msgstr "身份类型无效。" msgid "Invalid timestamp server." msgstr "时间戳服务器无效。" +msgid "" +"Could not start signtool executable. Configure signtool path in the Editor " +"Settings (Export > Windows > signtool), or disable \"Codesign\" in the " +"export preset." +msgstr "" +"无法启动 signtool 可执行文件。请在编辑器设置中配置 signtool 路径(导出 > " +"Windows > Signtool),或在导出预设中禁用“代码签名”。" + +msgid "" +"Could not start osslsigncode executable. Configure signtool path in the " +"Editor Settings (Export > Windows > osslsigncode), or disable \"Codesign\" " +"in the export preset." +msgstr "" +"无法启动 osslsigncode 可执行文件。请在编辑器设置中配置 signtool 路径(导出 > " +"Windows > Signtool),或在导出预设中禁用“代码签名”。" + msgid "Signtool failed to sign executable: %s." msgstr "Signtool 签名可执行文件失败:%s。" msgid "Failed to remove temporary file \"%s\"." msgstr "移除临时文件“%s”失败。" +msgid "" +"The rcedit tool must be configured in the Editor Settings (Export > Windows " +"> rcedit) to change the icon or app information data." +msgstr "" +"必须在编辑器设置中配置 rcedit 工具(导出 > Windows > Rcedit)才能修改图标或应" +"用信息数据。" + msgid "Invalid icon path:" msgstr "图标路径无效:" @@ -8644,6 +13795,26 @@ msgstr "产品版本无效:" msgid "Windows executables cannot be >= 4 GiB." msgstr "Windows 可执行文件不能 >= 4GiB。" +msgid "Run on remote Windows system" +msgstr "在远程 Windows 系统上运行" + +msgid "Run exported project on remote Windows system" +msgstr "在远程 Windows 系统上运行导出的项目" + +msgid "" +"A SpriteFrames resource must be created or set in the \"Frames\" property in " +"order for AnimatedSprite2D to display frames." +msgstr "" +"必须在“Frames”属性中创建或设置 SpriteFrames 资源,让 AnimatedSprite2D 显示" +"帧。" + +msgid "" +"Only one visible CanvasModulate is allowed per scene (or set of instantiated " +"scenes). The first created one will work, while the rest will be ignored." +msgstr "" +"每个场景(或一组实例化的场景)只允许一个可见的CanvasModulate。第一个创建的将" +"会起作用,而其他的将会被忽略。" + msgid "" "This node has no shape, so it can't collide or interact with other objects.\n" "Consider adding a CollisionShape2D or CollisionPolygon2D as a child to " @@ -8653,6 +13824,15 @@ msgstr "" "请添加一个 CollisionShape2D 或 CollisionPolygon2D 类型的子节点来定义它的形" "状。" +msgid "" +"CollisionPolygon2D only serves to provide a collision shape to a " +"CollisionObject2D derived node. Please only use it as a child of Area2D, " +"StaticBody2D, RigidBody2D, CharacterBody2D, etc. to give them a shape." +msgstr "" +"CollisionPolygon2D 节点只能为 CollisionObject2D 的派生类提供碰撞形状,请将其" +"作为 Area2D、StaticBody2D、RigidBody2D 或 CharacterBody2D 的子节点以提供形" +"状。" + msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "空的 CollisionPolygon2D 不起任何碰撞检测作用。" @@ -8667,6 +13847,14 @@ msgid "" msgstr "父节点为 Area2D 时将忽略 One Way Collision 属性。" msgid "" +"CollisionShape2D only serves to provide a collision shape to a " +"CollisionObject2D derived node. Please only use it as a child of Area2D, " +"StaticBody2D, RigidBody2D, CharacterBody2D, etc. to give them a shape." +msgstr "" +"CollisionShape2D 节点只能为 CollisionObject2D 的派生类提供碰撞形状,请将其作" +"为 Area2D、StaticBody2D、RigidBody2D 或 CharacterBody2D 的子节点以提供形状。" + +msgid "" "A shape must be provided for CollisionShape2D to function. Please create a " "shape resource for it!" msgstr "CollisionShape2D 必须有形状才能工作。请先为其创建形状资源!" @@ -8733,6 +13921,13 @@ msgid "" msgstr "NavigationObstacle2D 只能用于为 Node2D 对象避免碰撞。" msgid "" +"A NavigationMesh resource must be set or created for this node to work. " +"Please set a property or draw a polygon." +msgstr "" +"必须为这个节点设置或创建 NavigationMesh 资源,才能正常工作。请设置属性或绘制" +"多边形。" + +msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" "ParallaxLayer 类型的节点必须作为 ParallaxBackground 的子节点才能正常工作。" @@ -8740,9 +13935,42 @@ msgstr "" msgid "PathFollow2D only works when set as a child of a Path2D node." msgstr "PathFollow2D 类型的节点只有作为 Path2D 的子节点节才能正常工作。" +msgid "" +"A PhysicalBone2D only works with a Skeleton2D or another PhysicalBone2D as a " +"parent node!" +msgstr "" +"PhysicalBone2D 只有在有 Skeleton2D 或其他 PhysicalBone2D 作为父节点的情况下才" +"能工作!" + +msgid "" +"A PhysicalBone2D needs to be assigned to a Bone2D node in order to function! " +"Please set a Bone2D node in the inspector." +msgstr "" +"PhysicalBone2D 需要分配给 Bone2D 节点,才能发挥作用!请在检查器中设置 Bone2D " +"节点。" + +msgid "" +"A PhysicalBone2D node should have a Joint2D-based child node to keep bones " +"connected! Please add a Joint2D-based node as a child to this node!" +msgstr "" +"一个 PhysicalBone2D 节点应该有一个基于 Joint2D 的子节点来保持骨骼的连接!请添" +"加一个基于 Joint2D 的节点作为其子节点!" + +msgid "" +"Size changes to RigidBody2D will be overridden by the physics engine when " +"running.\n" +"Change the size in children collision shapes instead." +msgstr "" +"对 RigidBody2D 大小的修改,将会在运行时被物理引擎所覆盖。\n" +"建议修改子节点的碰撞体形状大小。" + msgid "Path property must point to a valid Node2D node to work." msgstr "Path 属性必须指向有效的 Node2D 节点才能正常工作。" +msgid "" +"This node cannot interact with other objects unless a Shape2D is assigned." +msgstr "除非指定 Shape2D,否则该节点不能与其他对象交互。" + msgid "This Bone2D chain should end at a Skeleton2D node." msgstr "这条 Bone2D 链应该以 Skeleton2D 节点结束。" @@ -8754,12 +13982,313 @@ msgid "" "This bone lacks a proper REST pose. Go to the Skeleton2D node and set one." msgstr "这根骨骼没有合适的放松姿势。请到 Skeleton2D 节点中设置一个。" +msgid "" +"A Y-sorted layer has the same Z-index value as a not Y-sorted layer.\n" +"This may lead to unwanted behaviors, as a layer that is not Y-sorted will be " +"Y-sorted as a whole with tiles from Y-sorted layers." +msgstr "" +"Y 排序图层与非 Y 排序图层具有相同的 Z 索引值。\n" +"这可能会导致不需要的行为,因为未按 Y 排序的层将作为一个整体,与来自 Y 排序层" +"的图块一起进行 Y 排序。" + +msgid "" +"Isometric TileSet will likely not look as intended without Y-sort enabled " +"for the TileMap and all of its layers." +msgstr "" +"如果不对 TileMap 和它的所有层启用 Y-sort,Isometric TileSet 可能看起来不像预" +"期的那样。" + +msgid "" +"External Skeleton3D node not set! Please set a path to an external " +"Skeleton3D node." +msgstr "未设置外部 Skeleton3D 节点!请设置外部 Skeleton3D 节点的路径。" + +msgid "" +"Parent node is not a Skeleton3D node! Please use an external Skeleton3D if " +"you intend to use the BoneAttachment3D without it being a child of a " +"Skeleton3D node." +msgstr "" +"父节点不是 Skeleton3D 节点!如果不想让 BoneAttachment3D 成为 Skeleton3D 节点" +"的子节点,请使用外部 Skeleton3D。" + +msgid "" +"BoneAttachment3D node is not bound to any bones! Please select a bone to " +"attach this node." +msgstr "BoneAttachment3D 节点未绑定至任何骨头!请选择这个节点附加的骨头。" + +msgid "" +"This node has no shape, so it can't collide or interact with other objects.\n" +"Consider adding a CollisionShape3D or CollisionPolygon3D as a child to " +"define its shape." +msgstr "" +"这个节点没有形状,因此无法与其他物体产生碰撞或者进行交互。\n" +"请添加一个 CollisionShape3D 或 CollisionPolygon3D 类型的子节点来定义它的形" +"状。" + +msgid "" +"With a non-uniform scale this node will probably not function as expected.\n" +"Please make its scale uniform (i.e. the same on all axes), and change the " +"size in children collision shapes instead." +msgstr "" +"缩放不统一,这个节点很可能无法正常工作。\n" +"请统一其缩放(即各轴均相同),修改子碰撞形状节点的大小。" + +msgid "" +"CollisionPolygon3D only serves to provide a collision shape to a " +"CollisionObject3D derived node.\n" +"Please only use it as a child of Area3D, StaticBody3D, RigidBody3D, " +"CharacterBody3D, etc. to give them a shape." +msgstr "" +"CollisionPolygon3D 类型节点只能为 CollisionObject3D 的派生类提供碰撞形状。\n" +"请将其放在 Area3D、StaticBody3D、RigidBody3D、CharacterBody3D 等节点下提供形" +"状。" + +msgid "An empty CollisionPolygon3D has no effect on collision." +msgstr "空的 CollisionPolygon3D 不影响碰撞。" + +msgid "" +"A non-uniformly scaled CollisionPolygon3D node will probably not function as " +"expected.\n" +"Please make its scale uniform (i.e. the same on all axes), and change its " +"polygon's vertices instead." +msgstr "" +"CollisionPolygon3D 节点的缩放不统一,很可能无法正常工作。\n" +"请统一其缩放(即各轴均相同),修改多边形的顶点。" + +msgid "" +"A shape must be provided for CollisionShape3D to function. Please create a " +"shape resource for it." +msgstr "CollisionShape3D 必须有形状才能工作。请先为其创建形状资源。" + +msgid "" +"ConcavePolygonShape3D doesn't support RigidBody3D in another mode than " +"static." +msgstr "ConcavePolygonShape3D 不支持静态模式以外的 RigidBody3D。" + +msgid "" +"WorldBoundaryShape3D doesn't support RigidBody3D in another mode than static." +msgstr "WorldBoundaryShape3D 不支持静态模式以外的 RigidBody3D。" + +msgid "" +"A non-uniformly scaled CollisionShape3D node will probably not function as " +"expected.\n" +"Please make its scale uniform (i.e. the same on all axes), and change the " +"size of its shape resource instead." +msgstr "" +"缩放不一致的 CollisionShape3D 节点可能不会像预期地那样工作。\n" +"请使其缩放统一(即在所有轴上的值相等),改变其形状资源的大小而不是缩放值。" + msgid "Nothing is visible because no mesh has been assigned." msgstr "未指定网格,无可见内容。" msgid "" +"CPUParticles3D animation requires the usage of a StandardMaterial3D whose " +"Billboard Mode is set to \"Particle Billboard\"." +msgstr "" +"CPUParticles3D 动画需要使用 StandardMaterial3D,其 Billboard Mode 应被设置" +"为“Particle Billboard”。" + +msgid "" +"The decal has no textures loaded into any of its texture properties, and " +"will therefore not be visible." +msgstr "该贴花的所有纹理属性中都没有加载纹理,因此将不可见。" + +msgid "" +"The decal has a Normal and/or ORM texture, but no Albedo texture is set.\n" +"An Albedo texture with an alpha channel is required to blend the normal/ORM " +"maps onto the underlying surface.\n" +"If you don't want the Albedo texture to be visible, set Albedo Mix to 0." +msgstr "" +"该贴花设有法线和/或 ORM 纹理,但没有设置反照率纹理。\n" +"存在带有 Alpha 通道的反照率纹理,才能将法线/ORM 贴图混合到底层表面。\n" +"如果你不希望反照率纹理可见,请将 Albedo Mix 设置为 0。" + +msgid "" +"The decal's Cull Mask has no bits enabled, which means the decal will not " +"paint objects on any layer.\n" +"To resolve this, enable at least one bit in the Cull Mask property." +msgstr "" +"该贴花的 Cull Mask 没有启用任何位,这意味着该贴花不会在任何层上绘制对象。\n" +"要解决此问题,请在 Cull Mask 属性中至少启用一位。" + +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." -msgstr "粒子不可见,因为没有网格指定到绘制通道 (Draw Pass)。" +msgstr "粒子不可见,因为绘制阶段中没有指定网格。" + +msgid "" +"Particles animation requires the usage of a BaseMaterial3D whose Billboard " +"Mode is set to \"Particle Billboard\"." +msgstr "" +"粒子动画需要使用 BaseMaterial3D,其 Billboard Mode 应被设置为“Particle " +"Billboard”。" + +msgid "" +"Using Trail meshes with a skin causes Skin to override Trail poses. Suggest " +"removing the Skin." +msgstr "同时使用尾迹网格和皮肤会导致皮肤覆盖尾迹的姿势。建议移除该皮肤。" + +msgid "Trails active, but neither Trail meshes or a Skin were found." +msgstr "尾迹已激活,但未找到尾迹网格或皮肤。" + +msgid "" +"Only one Trail mesh is supported. If you want to use more than a single " +"mesh, a Skin is needed (see documentation)." +msgstr "仅支持单个尾迹网格。如果你想使用多个网格,则需要皮肤(见文档)。" + +msgid "" +"Trails enabled, but one or more mesh materials are either missing or not set " +"for trails rendering." +msgstr "尾迹已启用,但至少有一个网格材质处于缺失状态,或未设置尾迹渲染。" + +msgid "" +"The Bake Mask has no bits enabled, which means baking will not produce any " +"collision for this GPUParticlesCollisionSDF3D.\n" +"To resolve this, enable at least one bit in the Bake Mask property." +msgstr "" +"Bake Mask 没有启用任何位,这意味着烘焙不会为此 GPUParticlesCollisionSDF3D 生" +"成任何碰撞。\n" +"要解决此问题,请在 Bake Mask 属性中至少启用一位。" + +msgid "Node A and Node B must be PhysicsBody3Ds" +msgstr "Node A 与 Node B 必须为 PhysicsBody3D" + +msgid "Node A must be a PhysicsBody3D" +msgstr "Node A 必须为 PhysicsBody3D" + +msgid "Node B must be a PhysicsBody3D" +msgstr "Node B 必须为 PhysicsBody3D" + +msgid "Joint is not connected to any PhysicsBody3Ds" +msgstr "Joint 未连接到任何 PhysicsBody3D" + +msgid "Node A and Node B must be different PhysicsBody3Ds" +msgstr "Node A 与 Node B 必须为不同的 PhysicsBody3D" + +msgid "A light's scale does not affect the visual size of the light." +msgstr "灯光的缩放不会影响灯光的视觉尺寸。" + +msgid "Projector texture only works with shadows active." +msgstr "投影纹理仅在阴影激活时能够正常工作。" + +msgid "A SpotLight3D with an angle wider than 90 degrees cannot cast shadows." +msgstr "角度大于 90 度的 SpotLight3D 无法投射阴影。" + +msgid "Finding meshes, lights and probes" +msgstr "正在查找网格、灯光和探针" + +msgid "Preparing geometry %d/%d" +msgstr "正在准备几何体 %d/%d" + +msgid "Creating probes" +msgstr "正在创建探针" + +msgid "Creating probes from mesh %d/%d" +msgstr "正在从网格创建探针 %d/%d" + +msgid "Preparing Lightmapper" +msgstr "正在准备光照贴图器" + +msgid "Preparing Environment" +msgstr "正在准备环境" + +msgid "Generating Probe Volumes" +msgstr "正在生成探针体积" + +msgid "Generating Probe Acceleration Structures" +msgstr "正在生成探针加速结构" + +msgid "" +"The NavigationAgent3D can be used only under a Node3D inheriting parent node." +msgstr "NavigationAgent3D 只能在继承 Node3D 的父节点下使用。" + +msgid "" +"The NavigationObstacle3D only serves to provide collision avoidance to a " +"Node3D inheriting parent object." +msgstr "NavigationObstacle3D 只能用于为继承自 Node3D 的父级对象避免碰撞。" + +msgid "" +"Occlusion culling is disabled in the Project Settings, which means occlusion " +"culling won't be performed in the root viewport.\n" +"To resolve this, open the Project Settings and enable Rendering > Occlusion " +"Culling > Use Occlusion Culling." +msgstr "" +"“项目设置”中禁用了遮挡剔除,这意味着在根视口中不会进行遮挡剔除。\n" +"要解决这个问题,请打开“项目设置”并启用“渲染 > 遮挡剔除 > 使用遮挡剔除”。" + +msgid "" +"The Bake Mask has no bits enabled, which means baking will not produce any " +"occluder meshes for this OccluderInstance3D.\n" +"To resolve this, enable at least one bit in the Bake Mask property." +msgstr "" +"Bake Mask 没有启用任何位,这意味着烘焙时不会为这个 OccluderInstance3D 生成任" +"何遮挡网格。\n" +"要解决这个问题,请在 Bake Mask 属性中至少启用一个位。" + +msgid "" +"No occluder mesh is defined in the Occluder property, so no occlusion " +"culling will be performed using this OccluderInstance3D.\n" +"To resolve this, set the Occluder property to one of the primitive occluder " +"types or bake the scene meshes by selecting the OccluderInstance3D and " +"pressing the Bake Occluders button at the top of the 3D editor viewport." +msgstr "" +"Occluder 属性中没有定义遮挡网格,所以使用这个 OccluderInstance3D 不会进行遮挡" +"剔除。\n" +"要解决这个问题,可以将 Occluder 属性设置为基本遮挡器类型之一,或者通过选择 " +"OccluderInstance3D 并使用 3D 编辑器视口顶部的“烘焙遮挡器”按钮来烘焙场景网格。" + +msgid "" +"The occluder mesh has less than 3 vertices, so no occlusion culling will be " +"performed using this OccluderInstance3D.\n" +"To generate a proper occluder mesh, select the OccluderInstance3D then use " +"the Bake Occluders button at the top of the 3D editor viewport." +msgstr "" +"遮挡网格的顶点少于 3 个,所以使用这个 OccluderInstance3D 不会进行遮挡剔除。\n" +"要生成正确的遮挡网格,请选择 OccluderInstance3D,然后使用 3D 编辑器视口顶部" +"的“烘焙遮挡器”按钮。" + +msgid "" +"The polygon occluder has less than 3 vertices, so no occlusion culling will " +"be performed using this OccluderInstance3D.\n" +"Vertices can be added in the inspector or using the polygon editing tools at " +"the top of the 3D editor viewport." +msgstr "" +"多边形遮挡器的顶点少于 3 个,因此使用这个 OccluderInstance3D 不会进行遮挡剔" +"除。\n" +"可以在检查器中添加顶点,也可以使用 3D 编辑器视口顶部的多边形编辑工具添加顶" +"点。" + +msgid "PathFollow3D only works when set as a child of a Path3D node." +msgstr "PathFollow3D 只有作为 Path3D 的子节点节才能正常工作。" + +msgid "" +"PathFollow3D's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its " +"parent Path3D's Curve resource." +msgstr "" +"PathFollow3D 的 ROTATION_ORIENTED 要求在其父级 Path3D 的 Curve 资源中启用“Up " +"Vector”。" + +msgid "" +"Scale changes to RigidBody3D will be overridden by the physics engine when " +"running.\n" +"Please change the size in children collision shapes instead." +msgstr "" +"对 RigidBody3D 尺寸的修改将会在运行时被物理引擎所覆盖。\n" +"请改为修改子节点的碰撞形状的尺寸。" + +msgid "" +"The \"Remote Path\" property must point to a valid Node3D or Node3D-derived " +"node to work." +msgstr "" +"“Remote Path”属性必须指向有效的 Node3D 或从 Node3D 派生的节点才能正常工作。" + +msgid "" +"This node cannot interact with other objects unless a Shape3D is assigned." +msgstr "除非指定 Shape3D,否则该节点不能与其他对象交互。" + +msgid "" +"ShapeCast3D does not support ConcavePolygonShape3Ds. Collisions will not be " +"reported." +msgstr "ShapeCast3D 不支持 ConcavePolygonShape3D。将无法汇报碰撞。" msgid "This body will be ignored until you set a mesh." msgstr "在设置网格之前,将忽略该实体。" @@ -8771,18 +14300,103 @@ msgstr "" "必须在 “Frames” 属性中创建或设置 SpriteFrames 资源,AnimatedSprite3D 才会显示" "帧。" +msgid "" +"VehicleWheel3D serves to provide a wheel system to a VehicleBody3D. Please " +"use it as a child of a VehicleBody3D." +msgstr "" +"VehicleWheel3D 是用来为 VehicleBody3D 提供车轮系统的。请将它用作 " +"VehicleBody3D 的子节点。" + +msgid "" +"The GeometryInstance3D visibility range's End distance is set to a non-zero " +"value, but is lower than the Begin distance.\n" +"This means the GeometryInstance3D will never be visible.\n" +"To resolve this, set the End distance to 0 or to a value greater than the " +"Begin distance." +msgstr "" +"GeometryInstance3D 可视范围的结束距离被设为非零值,但低于开始距离。\n" +"这意味着该 GeometryInstance3D 将永远不可见。\n" +"要解决这个问题,请将结束距离设为 0 或设为大于开始距离的值。" + +msgid "" +"The GeometryInstance3D is configured to fade in smoothly over distance, but " +"the fade transition distance is set to 0.\n" +"To resolve this, increase Visibility Range Begin Margin above 0." +msgstr "" +"GeometryInstance3D 被配置为随距离平滑淡入,但淡入过渡距离被设为 0。\n" +"要解决这个问题,请将可见度范围起始边距增加到 0 以上。" + +msgid "" +"The GeometryInstance3D is configured to fade out smoothly over distance, but " +"the fade transition distance is set to 0.\n" +"To resolve this, increase Visibility Range End Margin above 0." +msgstr "" +"GeometryInstance3D 被配置为随距离平滑淡出,但淡出过渡距离被设置为 0。\n" +"要解决这个问题,请将可见度范围结束边距增加到 0 以上。" + msgid "Plotting Meshes" msgstr "正在绘制网格" msgid "Finishing Plot" msgstr "正在完成绘制" +msgid "Generating Distance Field" +msgstr "正在生成距离场" + +msgid "" +"VoxelGIs are not supported by the OpenGL video driver.\n" +"Use a LightmapGI instead." +msgstr "" +"OpenGL 视频驱动不支持 VoxelGI。\n" +"请改用 LightmapGI。" + +msgid "" +"No VoxelGI data set, so this node is disabled. Bake static objects to enable " +"GI." +msgstr "没有 VoxelGI 数据集,所以这个节点已禁用。要启用 GI,请烘焙静态对象。" + +msgid "" +"To have any visible effect, WorldEnvironment requires its \"Environment\" " +"property to contain an Environment, its \"Camera Attributes\" property to " +"contain a CameraAttributes resource, or both." +msgstr "" +"要产生可见效果,需要让 WorldEnvironment 的“Environment”属性包含 Environment," +"或让其“Camera Attributes”属性包含 CameraAttributes 资源,两者也可同时设置。" + +msgid "" +"Only one WorldEnvironment is allowed per scene (or set of instantiated " +"scenes)." +msgstr "每个场景中只允许有一个 WorldEnvironment(含实例化的场景)。" + +msgid "XRCamera3D must have an XROrigin3D node as its parent." +msgstr "XRCamera3D 必须将 XROrigin3D 节点作为其父节点。" + +msgid "XRController3D must have an XROrigin3D node as its parent." +msgstr "XRController3D 必须将 XROrigin3D 节点作为其父节点。" + +msgid "No tracker name is set." +msgstr "未设置追踪器名称。" + +msgid "No pose is set." +msgstr "未设置姿势。" + +msgid "XROrigin3D requires an XRCamera3D child node." +msgstr "XROrigin3D 需要 XRCamera3D 子节点。" + +msgid "" +"XR is not enabled in rendering project settings. Stereoscopic output is not " +"supported unless this is enabled." +msgstr "渲染项目设置中未启用 XR。除非启用该功能,否则不支持立体输出。" + msgid "On BlendTree node '%s', animation not found: '%s'" msgstr "在 BlendTree 节点 “%s” 上没有发现动画: “%s”" msgid "Animation not found: '%s'" msgstr "没有动画: “%s”" +msgid "Animation Apply Reset" +msgstr "动画应用重置" + msgid "In node '%s', invalid animation: '%s'." msgstr "在节点 “%s” 上的动画无效: “%s” 。" @@ -8805,6 +14419,11 @@ msgid "The AnimationPlayer root node is not a valid node." msgstr "AnimationPlayer 根节点不是有效节点。" msgid "" +"ButtonGroup is intended to be used only with buttons that have toggle_mode " +"set to true." +msgstr "ButtonGroup 的目的是只用于那些将 toggle_mode 设置为 true 的按钮。" + +msgid "" "Color: #%s\n" "LMB: Apply color\n" "RMB: Remove preset" @@ -8813,9 +14432,22 @@ msgstr "" "鼠标左键:应用颜色\n" "鼠标右键:移除预设" +msgid "" +"Color: #%s\n" +"LMB: Apply color" +msgstr "" +"颜色:#%s\n" +"鼠标左键:应用颜色" + msgid "Pick a color from the editor window." msgstr "从编辑器窗口中选择一种颜色。" +msgid "Select a picker shape." +msgstr "选择选取器形状。" + +msgid "Select a picker mode." +msgstr "选择选取器模式。" + msgid "Switch between hexadecimal and code values." msgstr "在十六进制值和代码值之间切换。" @@ -8837,6 +14469,11 @@ msgstr "" "由于该控件的 Mouse Filter 设置为“Ignore”因此将不会显示高亮工具提示。将 Mouse " "Filter 设置为“Stop”或“Pass”可修正此问题。" +msgid "" +"Changing the Z index of a control only affects the drawing order, not the " +"input event handling order." +msgstr "改变控件的Z索引只影响绘图顺序,不影响输入事件的处理顺序。" + msgid "Theme Overrides" msgstr "主题覆盖" @@ -8846,11 +14483,94 @@ msgstr "警告!" msgid "Please Confirm..." msgstr "请确认..." +msgid "You don't have permission to access contents of this folder." +msgstr "你无权访问此文件夹的内容。" + +msgid "All Files" +msgstr "所有文件" + msgid "Must use a valid extension." msgstr "必须使用有效的扩展名。" msgid "Enable grid minimap." -msgstr "启用网格小地图。" +msgstr "启用栅格小地图。" + +msgid "Arrange nodes." +msgstr "排列节点。" + +msgid "" +"The current font does not support rendering one or more characters used in " +"this Label's text." +msgstr "当前字体不支持渲染该标签文本中使用的一个或多个字符。" + +msgid "Same as Layout Direction" +msgstr "与布局方向一致" + +msgid "Auto-Detect Direction" +msgstr "自动检测方向" + +msgid "Left-to-Right" +msgstr "从左至右" + +msgid "Right-to-Left" +msgstr "从右至左" + +msgid "Left-to-Right Mark (LRM)" +msgstr "从左至右标志(LRM)" + +msgid "Right-to-Left Mark (RLM)" +msgstr "从右至左标志(RLM)" + +msgid "Start of Left-to-Right Embedding (LRE)" +msgstr "从左到右嵌入 (LRE) 的开始" + +msgid "Start of Right-to-Left Embedding (RLE)" +msgstr "开始从右至左嵌入(RLE)" + +msgid "Start of Left-to-Right Override (LRO)" +msgstr "开始从左至右强制(LRO)" + +msgid "Start of Right-to-Left Override (RLO)" +msgstr "开始从右至左强制(RLO)" + +msgid "Pop Direction Formatting (PDF)" +msgstr "退出方向格式化(PDF)" + +msgid "Arabic Letter Mark (ALM)" +msgstr "阿拉伯字母标记(ALM)" + +msgid "Left-to-Right Isolate (LRI)" +msgstr "从左至右隔离(LRI)" + +msgid "Right-to-Left Isolate (RLI)" +msgstr "从右至左隔离(RLI)" + +msgid "First Strong Isolate (FSI)" +msgstr "第一个强隔离(FSI)" + +msgid "Pop Direction Isolate (PDI)" +msgstr "退出方向隔离(PDI)" + +msgid "Zero-Width Joiner (ZWJ)" +msgstr "零宽连接符(ZWJ)" + +msgid "Zero-Width Non-Joiner (ZWNJ)" +msgstr "零宽非连接符(ZWNJ)" + +msgid "Word Joiner (WJ)" +msgstr "文字连接符(WJ)" + +msgid "Soft Hyphen (SHY)" +msgstr "软连字符(SHY)" + +msgid "Text Writing Direction" +msgstr "文本书写方向" + +msgid "Display Control Characters" +msgstr "显示控制字符" + +msgid "Insert Control Character" +msgstr "插入控制字符" msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." msgstr "如果启用了 “Exp Edit”,则 “Min Value” 必须大于 0。" @@ -8864,15 +14584,61 @@ msgstr "" "子节点应该是单个容器(VBox、HBox 等)或者使用单个控件并手动设置其自定义最小尺" "寸。" +msgid "" +"This node doesn't have a SubViewport as child, so it can't display its " +"intended content.\n" +"Consider adding a SubViewport as a child to provide something displayable." +msgstr "" +"这个节点没有 SubViewport 子节点,所以无法显示预期的内容。\n" +"请考虑添加一个 SubViewport 作为子节点,来提供可显示的内容。" + msgid "(Other)" msgstr "(其他)" msgid "" +"This node was saved as class type '%s', which was no longer available when " +"this scene was loaded." +msgstr "该节点被保存为“%s”类型,当这个场景被加载时,它不再可用。" + +msgid "" +"Data from the original node is kept as a placeholder until this type of node " +"is available again. It can hence be safely re-saved without risk of data " +"loss." +msgstr "" +"原始节点中的数据将保留为占位符,直到此类型的节点再次可用。因此,它可以安全地" +"重新保存,而不会有数据丢失的风险。" + +msgid "" +"Setting node name '%s' to be unique within scene for '%s', but it's already " +"claimed by '%s'.\n" +"'%s' is no longer set as having a unique name." +msgstr "" +"正在将场景中的唯一节点名称“%s”设给“%s”,但该名称已被“%s”占用。\n" +"“%s”不再设置为具有唯一名称。" + +msgid "" +"This node is marked as deprecated and will be removed in future versions.\n" +"Please check the Godot documentation for information about migration." +msgstr "" +"此节点标记为已弃用,会在将来的版本中移除。\n" +"请查看 Godot 文档中关于迁移的信息。" + +msgid "" +"This node is marked as experimental and may be subject to removal or major " +"changes in future versions." +msgstr "此节点标记为实验性节点,可能会在将来的版本中删除或进行重大更改。" + +msgid "" "Default Environment as specified in Project Settings (Rendering -> " "Environment -> Default Environment) could not be loaded." msgstr "无法加载项目设置中的默认环境(渲染 -> 环境 -> 默认环境)。" msgid "" +"ShaderGlobalsOverride is not active because another node of the same type is " +"in the scene." +msgstr "ShaderGlobalsOverride 未激活,因为场景中存在另一个相同类型的节点。" + +msgid "" "Very low timer wait times (< 0.05 seconds) may behave in significantly " "different ways depending on the rendered or physics frame rate.\n" "Consider using a script's process loop instead of relying on a Timer for " @@ -8887,6 +14653,51 @@ msgid "" "dimensions to render anything." msgstr "Viewport 的宽高都大于等于 2 像素时才能进行渲染。" +msgid "Cannot open font from file: %s." +msgstr "无法打开字体文件:%s。" + +msgid "Version %d of BMFont is not supported (should be 3)." +msgstr "不支持版本为 %d 的 BMFont(应该是3)。" + +msgid "Invalid BMFont info block size." +msgstr "无效的 BMFont 信息块大小。" + +msgid "Invalid BMFont common block size." +msgstr "无效的 BMFont 公共块大小。" + +msgid "Can't load font texture: %s." +msgstr "无法加载字体纹理:%s。" + +msgid "Unsupported BMFont texture format." +msgstr "不支持的 BMFont 纹理格式。" + +msgid "Invalid BMFont block type." +msgstr "无效的 BMFont 块类型。" + +msgid "" +"Shader keywords cannot be used as parameter names.\n" +"Choose another name." +msgstr "" +"着色器关键字不能用作参数名称。\n" +"请选择其他名称。" + +msgid "This parameter type does not support the '%s' qualifier." +msgstr "该参数类型不支持“%s”限定符。" + +msgid "" +"Global parameter '%s' does not exist.\n" +"Create it in the Project Settings." +msgstr "" +"全局参数“%s”不存在。\n" +"在项目设置中创建它。" + +msgid "" +"Global parameter '%s' has an incompatible type for this kind of node.\n" +"Change it in the Project Settings." +msgstr "" +"全局参数“%s”具有与此类节点不兼容的类型。\n" +"在项目设置中改变它。" + msgid "" "The sampler port is connected but not used. Consider changing the source to " "'SamplerPort'." @@ -8898,6 +14709,9 @@ msgstr "预览的源资源无效。" msgid "Invalid source for shader." msgstr "着色器的源资源无效。" +msgid "Invalid operator for that type." +msgstr "运算符对该类型无效。" + msgid "Default Color" msgstr "默认颜色" @@ -8910,14 +14724,660 @@ msgstr "重复" msgid "Invalid comparison function for that type." msgstr "该类型的比较功能无效。" +msgid "2D Mode" +msgstr "2D 模式" + +msgid "Use All Surfaces" +msgstr "使用所有表面" + +msgid "Surface Index" +msgstr "表面索引" + +msgid "" +"Invalid number of arguments when calling stage function '%s', which expects " +"%d arguments." +msgstr "调用阶段函数“%s”时参数数量无效,预期为 %d 个参数。" + +msgid "" +"Invalid argument type when calling stage function '%s', type expected is " +"'%s'." +msgstr "调用阶段函数“%s”时参数类型无效,预期类型为“%s”。" + +msgid "Expected integer constant within [%d..%d] range." +msgstr "预期为 [%d..%d] 范围内的整数常量。" + +msgid "Argument %d of function '%s' is not a variable, array, or member." +msgstr "参数 %d 不是变量、数组、成员,函数为“%s”。" + +msgid "Varyings cannot be passed for the '%s' parameter." +msgstr "Varying 不能传给“%s”参数。" + +msgid "A constant value cannot be passed for the '%s' parameter." +msgstr "常量值不能传给“%s”参数。" + +msgid "" +"Argument %d of function '%s' can only take a local variable, array, or " +"member." +msgstr "参数 %d 只能接受变量、数组、成员,函数为“%s”。" + +msgid "Built-in function \"%s(%s)\" is only supported on high-end platforms." +msgstr "内置函数“%s(%s)”只在高端平台上支持。" + +msgid "Invalid arguments for the built-in function: \"%s(%s)\"." +msgstr "内置函数的参数无效:“%s(%s)”。" + +msgid "Recursion is not allowed." +msgstr "不允许递归。" + +msgid "Function '%s' can't be called from source code." +msgstr "函数“%s”不能从源代码中调用。" + +msgid "" +"Invalid argument for \"%s(%s)\" function: argument %d should be %s but is %s." +msgstr "“%s(%s)”函数的参数无效:参数 %d 应该是 %s 但实际上是 %s。" + +msgid "" +"Too few arguments for \"%s(%s)\" call. Expected at least %d but received %d." +msgstr "“%s(%s)”调用的参数太少。预计至少 %d 个,但收到 %d 个。" + +msgid "" +"Too many arguments for \"%s(%s)\" call. Expected at most %d but received %d." +msgstr "“%s(%s)”调用的参数太多。预计至多 %d 个,但收到 %d 个。" + +msgid "Invalid assignment of '%s' to '%s'." +msgstr "将“%s”分配给“%s”无效。" + +msgid "Expected constant expression." +msgstr "预期为常量表达式。" + +msgid "Expected ',' or ')' after argument." +msgstr "参数后期望有“,”或“)”。" + msgid "Varying may not be assigned in the '%s' function." msgstr "Varying 不能在“%s”函数中赋值。" +msgid "" +"Varying with '%s' data type may only be assigned in the 'fragment' function." +msgstr "数据类型为“%s”的 Varying 只能在“fragment”函数中被赋值。" + +msgid "" +"Varyings which assigned in 'vertex' function may not be reassigned in " +"'fragment' or 'light'." +msgstr "已在“vertex”函数中赋值的 varying 不能在“fragment”或“light”中重新赋值。" + +msgid "" +"Varyings which assigned in 'fragment' function may not be reassigned in " +"'vertex' or 'light'." +msgstr "已在“fragment”函数中赋值的 varying 不能在“vertex”或“light”中重新赋值。" + msgid "Assignment to function." msgstr "对函数的赋值。" +msgid "Swizzling assignment contains duplicates." +msgstr "Swizzling 赋值包含重复项。" + msgid "Assignment to uniform." msgstr "对 Uniform 的赋值。" msgid "Constants cannot be modified." msgstr "不允许修改常量。" + +msgid "" +"Sampler argument %d of function '%s' called more than once using both built-" +"ins and uniform textures, this is not supported (use either one or the " +"other)." +msgstr "" +"采样器参数 %d:函数“%s”有多次调用,同时使用了内置和 uniform 纹理,不支持这种" +"用法(请在其中选择一种使用)。" + +msgid "" +"Sampler argument %d of function '%s' called more than once using textures " +"that differ in either filter or repeat setting." +msgstr "采样器参数 %d:函数“%s”有多次调用,所使用纹理的过滤或重复设置不同。" + +msgid "" +"Sampler argument %d of function '%s' called more than once using different " +"built-ins. Only calling with the same built-in is supported." +msgstr "" +"采样器参数 %d:函数“%s”有多次调用,使用的内置不同。仅支持使用相同的内置进行调" +"用。" + +msgid "Array size is already defined." +msgstr "数组大小已定义。" + +msgid "Unknown array size is forbidden in that context." +msgstr "该上下文中禁止未知数组大小。" + +msgid "Array size expressions are not supported." +msgstr "不支持数组大小表达式。" + +msgid "Expected a positive integer constant." +msgstr "预期为正整数常量。" + +msgid "Invalid data type for the array." +msgstr "数组的数据类型无效。" + +msgid "Array size mismatch." +msgstr "数组大小不匹配。" + +msgid "Expected array initialization." +msgstr "预期为数组初始化。" + +msgid "Cannot convert from '%s' to '%s'." +msgstr "无法从“%s”转换为“%s”。" + +msgid "Expected ')' in expression." +msgstr "表达式中需要“)”。" + +msgid "Void value not allowed in expression." +msgstr "表达式中不允许有空值。" + +msgid "Expected '(' after the type name." +msgstr "类型名称后预期为“(”。" + +msgid "No matching constructor found for: '%s'." +msgstr "没有找到匹配的构造函数:“%s”。" + +msgid "Expected a function name." +msgstr "预期为函数名称。" + +msgid "No matching function found for: '%s'." +msgstr "没有找到与之匹配的函数:“%s”。" + +msgid "" +"Varying '%s' must be assigned in the 'vertex' or 'fragment' function first." +msgstr "Varying“%s”必须先在“vertex”或“fragment”函数中赋值。" + +msgid "Varying '%s' cannot be passed for the '%s' parameter in that context." +msgstr "Varying“%s”在该上下文中无法作为“%s”参数传递。" + +msgid "A constant value cannot be passed for '%s' parameter." +msgstr "常量值不能作为“%s”参数传递。" + +msgid "Unknown identifier in expression: '%s'." +msgstr "表达式中的标识符未知:“%s”。" + +msgid "" +"%s has been removed in favor of using hint_%s with a uniform.\n" +"To continue with minimal code changes add 'uniform sampler2D %s : hint_%s, " +"filter_linear_mipmap;' near the top of your shader." +msgstr "" +"%s 已被移除,请改用 hint_%s 和 uniform。\n" +"为了保持最小的代码改动,你可以在着色器顶部附近添加“uniform sampler2D %s : " +"hint_%s, filter_linear_mipmap;”。" + +msgid "" +"Varying with '%s' data type may only be used in the 'fragment' function." +msgstr "数据类型为“%s”的 Varying 不能在“fragment”函数中使用。" + +msgid "Varying '%s' must be assigned in the 'fragment' function first." +msgstr "Varying“%s”必须先在“fragment”函数中赋值。" + +msgid "" +"Varying with integer data type must be declared with `flat` interpolation " +"qualifier." +msgstr "整数数据类型的 Varying 必须使用 `flat` 插值修饰符声明。" + +msgid "Can't use function as identifier: '%s'." +msgstr "不能使用函数作为标识符:“%s”。" + +msgid "Only integer expressions are allowed for indexing." +msgstr "只允许使用整数表达式进行索引。" + +msgid "Index [%d] out of range [%d..%d]." +msgstr "索引 [%d] 超出了范围 [%d...%d]。" + +msgid "Expected expression, found: '%s'." +msgstr "预期为表达式,发现:“%s”。" + +msgid "Empty statement. Remove ';' to fix this warning." +msgstr "空语句。修复此警告请移除“;”。" + +msgid "Expected an identifier as a member." +msgstr "预期为成员标识符。" + +msgid "Cannot combine symbols from different sets in expression '.%s'." +msgstr "“.%s”表达式中不能合并不同集合中的符号。" + +msgid "Invalid member for '%s' expression: '.%s'." +msgstr "“%s”表达式的成员无效:“.%s”。" + +msgid "An object of type '%s' can't be indexed." +msgstr "类型为“%s”的对象不能被索引。" + +msgid "Invalid base type for increment/decrement operator." +msgstr "递增/递减运算符的基础类型无效。" + +msgid "Invalid use of increment/decrement operator in a constant expression." +msgstr "在常量表达式中使用递增/递减运算符无效。" + +msgid "Invalid token for the operator: '%s'." +msgstr "运算符标记无效:“%s”。" + +msgid "Unexpected end of expression." +msgstr "表达式意外结束。" + +msgid "Invalid arguments to unary operator '%s': %s." +msgstr "一元运算符“%s”的参数无效:%s。" + +msgid "Missing matching ':' for select operator." +msgstr "选择运算符缺少匹配的“:”。" + +msgid "Invalid argument to ternary operator: '%s'." +msgstr "三元运算符的参数无效:“%s”。" + +msgid "Invalid arguments to operator '%s': '%s'." +msgstr "运算符“%s”的参数无效:“%s”。" + +msgid "A switch may only contain '%s' and '%s' blocks." +msgstr "switch 只能包含“%s”和“%s”块。" + +msgid "Expected variable type after precision modifier." +msgstr "精度修饰符后预期为变量类型。" + +msgid "Invalid variable type (samplers are not allowed)." +msgstr "无效的变量类型(不允许使用采样器)。" + +msgid "Expected an identifier or '[' after type." +msgstr "类型后预期为标识符或“[”。" + +msgid "Expected an identifier." +msgstr "预期为标识符。" + +msgid "Expected array initializer." +msgstr "预期为数组初始化器。" + +msgid "Expected data type after precision modifier." +msgstr "精度修饰符后预期为数据类型。" + +msgid "Expected a constant expression." +msgstr "预期为常量表达式。" + +msgid "Expected initialization of constant." +msgstr "预期为常量的初始化。" + +msgid "" +"Expected constant expression for argument %d of function call after '='." +msgstr "“=”后预期为函数调用参数 %d 的常量表达式。" + +msgid "Expected a boolean expression." +msgstr "预期为布尔表达式。" + +msgid "Expected an integer expression." +msgstr "预期为整数表达式。" + +msgid "Cases must be defined before default case." +msgstr "必须在默认 case 前定义其他 case。" + +msgid "Default case must be defined only once." +msgstr "默认 case 必须只定义一次。" + +msgid "Duplicated case label: %d." +msgstr "重复的 case 标签:%d。" + +msgid "'%s' must be placed within a '%s' block." +msgstr "“%s”必须放在“%s”块内。" + +msgid "Expected an integer constant." +msgstr "预期为整数常量。" + +msgid "Using '%s' in the '%s' processor function is incorrect." +msgstr "“%s”在“%s”处理器函数中的使用不正确。" + +msgid "Expected '%s' with an expression of type '%s'." +msgstr "预期为“%s”,是类型为“%s”的表达式。" + +msgid "Expected return with an expression of type '%s'." +msgstr "预期为返回类型为“%s”的表达式。" + +msgid "Use of '%s' is not allowed here." +msgstr "此处不允许使用“%s”。" + +msgid "'%s' is not allowed outside of a loop or '%s' statement." +msgstr "循环和“%s”语句之外不允许“%s”。" + +msgid "'%s' is not allowed outside of a loop." +msgstr "循环之外不允许“%s”。" + +msgid "The middle expression is expected to be a boolean operator." +msgstr "中间的表达式预期为布尔运算符。" + +msgid "The left expression is expected to be a variable declaration." +msgstr "左侧的表达式预期为变量声明。" + +msgid "The precision modifier cannot be used on structs." +msgstr "精度修饰符不能用于结构体。" + +msgid "The precision modifier cannot be used on boolean types." +msgstr "精度修饰符不能用于布尔类型。" + +msgid "Expected '%s' at the beginning of shader. Valid types are: %s." +msgstr "着色器开头预期为“%s”。有效的类型有:%s。" + +msgid "" +"Expected an identifier after '%s', indicating the type of shader. Valid " +"types are: %s." +msgstr "“%s”后预期为标识符,表明着色器的类型。有效的类型有:%s。" + +msgid "Invalid shader type. Valid types are: %s" +msgstr "无效的着色器类型。有效的类型有:%s" + +msgid "Expected an identifier for render mode." +msgstr "预期为渲染模式标识符。" + +msgid "Duplicated render mode: '%s'." +msgstr "重复的渲染模式:“%s”。" + +msgid "" +"Redefinition of render mode: '%s'. The '%s' mode has already been set to " +"'%s'." +msgstr "渲染模式“%s”重定义。“%s”模式已经被设置为“%s”。" + +msgid "Invalid render mode: '%s'." +msgstr "无效的渲染模式:“%s”。" + +msgid "Unexpected token: '%s'." +msgstr "意外的标记:“%s”。" + +msgid "Expected a struct identifier." +msgstr "预期为结构体标识符。" + +msgid "Nested structs are not allowed." +msgstr "不允许嵌套结构。" + +msgid "Expected data type." +msgstr "预期的数据类型。" + +msgid "A '%s' data type is not allowed here." +msgstr "这里不允许“%s”数据类型。" + +msgid "Expected an identifier or '['." +msgstr "预期为标识符或“[”。" + +msgid "Empty structs are not allowed." +msgstr "不允许空结构体。" + +msgid "Uniform instances are not yet implemented for '%s' shaders." +msgstr "“%s”着色器尚未实现 uniform 实例。" + +msgid "Varyings cannot be used in '%s' shaders." +msgstr "Varying 不能在“%s”着色器中使用。" + +msgid "Interpolation qualifiers are not supported for uniforms." +msgstr "Uniform 不支持插值修饰符。" + +msgid "The '%s' data type is not supported for uniforms." +msgstr "Uniform 不支持“%s”数据类型。" + +msgid "The '%s' data type is not allowed here." +msgstr "这里不允许使用“%s”数据类型。" + +msgid "Interpolation modifier '%s' cannot be used with boolean types." +msgstr "插值修饰符“%s”不能用于布尔类型。" + +msgid "Invalid data type for varying." +msgstr "Varying 的数据类型无效。" + +msgid "Global uniform '%s' does not exist. Create it in Project Settings." +msgstr "全局 uniform“%s”不存在。请在项目设置中创建。" + +msgid "Global uniform '%s' must be of type '%s'." +msgstr "全局 uniform“%s”的类型必须为“%s”。" + +msgid "The '%s' qualifier is not supported for sampler types." +msgstr "采样器类型不支持“%s”修饰符。" + +msgid "The '%s' qualifier is not supported for matrix types." +msgstr "矩阵类型不支持“%s”修饰符。" + +msgid "The '%s' qualifier is not supported for uniform arrays." +msgstr "Uniform 数据不支持“%s”修饰符。" + +msgid "Expected valid type hint after ':'." +msgstr "“:”后预期为有效的类型提示。" + +msgid "This hint is not supported for uniform arrays." +msgstr "这个提示不支持 uniform 数组。" + +msgid "Source color hint is for '%s', '%s' or sampler types only." +msgstr "源码颜色提示仅适用于“%s”“%s”或采样器类型。" + +msgid "Duplicated hint: '%s'." +msgstr "重复的提示:“%s”。" + +msgid "Range hint is for '%s' and '%s' only." +msgstr "范围提示仅适用于“%s”和“%s”。" + +msgid "Expected ',' after integer constant." +msgstr "整数常量后预期为“,”。" + +msgid "Expected an integer constant after ','." +msgstr "“,”后预期为整数常量。" + +msgid "Can only specify '%s' once." +msgstr "只能指定一次“%s”。" + +msgid "The instance index can't be negative." +msgstr "实例索引不能为负。" + +msgid "Allowed instance uniform indices must be within [0..%d] range." +msgstr "实例 uniform 索引必须在 [0...%d] 范围内。" + +msgid "This hint is only for sampler types." +msgstr "这个提示仅适用于采样器类型。" + +msgid "Redefinition of hint: '%s'. The hint has already been set to '%s'." +msgstr "提示重定义:“%s”。提示已被设为“%s”。" + +msgid "Duplicated filter mode: '%s'." +msgstr "重复的过滤器模式:“%s”。" + +msgid "" +"Redefinition of filter mode: '%s'. The filter mode has already been set to " +"'%s'." +msgstr "过滤模式重定义:“%s”。过滤模式已被设为“%s”。" + +msgid "Duplicated repeat mode: '%s'." +msgstr "重复的重复模式:“%s”。" + +msgid "" +"Redefinition of repeat mode: '%s'. The repeat mode has already been set to " +"'%s'." +msgstr "重复模式重定义:“%s”。重复模式已被设为“%s”。" + +msgid "Too many '%s' uniforms in shader, maximum supported is %d." +msgstr "着色器中的“%s”uniform 太多,最大支持量为 %d 个。" + +msgid "Setting default values to uniform arrays is not supported." +msgstr "不支持为 uniform 数组设置默认值。" + +msgid "Expected constant expression after '='." +msgstr "“=”后预期为常量表达式。" + +msgid "Can't convert constant to '%s'." +msgstr "无法将常量转换为“%s”。" + +msgid "Expected an uniform subgroup identifier." +msgstr "预期为 uniform 子分组标识符。" + +msgid "Expected an uniform group identifier." +msgstr "预期为 uniform 分组标识符。" + +msgid "Expected an uniform group identifier or `;`." +msgstr "预期为 uniform 分组标识符或 `;`。" + +msgid "Group needs to be opened before." +msgstr "分组需要在此之前打开。" + +msgid "Shader type is already defined." +msgstr "着色器类型已定义。" + +msgid "Expected constant, function, uniform or varying." +msgstr "预期为常量、函数、uniform 或 varying。" + +msgid "Invalid constant type (samplers are not allowed)." +msgstr "无效的常量类型(不允许使用采样器)。" + +msgid "Invalid function type (samplers are not allowed)." +msgstr "无效的函数类型(不允许使用采样器)。" + +msgid "Expected a function name after type." +msgstr "类型后预期为函数名。" + +msgid "Expected '(' after function identifier." +msgstr "函数标识符后预期为“(”。" + +msgid "" +"Global non-constant variables are not supported. Expected '%s' keyword " +"before constant definition." +msgstr "不支持全局非常量变量。常量定义前预期为“%s”关键字。" + +msgid "Expected an identifier after type." +msgstr "类型后预期为标识符。" + +msgid "" +"The '%s' qualifier cannot be used within a function parameter declared with " +"'%s'." +msgstr "“%s”修饰符不能用于声明为“%s”的函数参数。" + +msgid "Expected a valid data type for argument." +msgstr "参数预期为有效的数据类型。" + +msgid "Opaque types cannot be output parameters." +msgstr "不透明类型不能作为输出参数。" + +msgid "Void type not allowed as argument." +msgstr "不允许将 void 类型作为参数。" + +msgid "Expected an identifier for argument name." +msgstr "参数名称预期为标识符。" + +msgid "Function '%s' expects no arguments." +msgstr "函数“%s”预期没有参数。" + +msgid "Function '%s' must be of '%s' return type." +msgstr "函数“%s”的返回类型必须为“%s”。" + +msgid "Expected a '{' to begin function." +msgstr "函数开头预期为“{”。" + +msgid "Expected at least one '%s' statement in a non-void function." +msgstr "非 void 函数中预期至少有一条“%s”语句。" + +msgid "uniform buffer" +msgstr "uniform 缓冲" + +msgid "Expected a '%s'." +msgstr "预期为“%s”。" + +msgid "Expected a '%s' or '%s'." +msgstr "预期为“%s”或“%s”。" + +msgid "Expected a '%s' after '%s'." +msgstr "期望一个“%s”,在此之前是“%s”。" + +msgid "Redefinition of '%s'." +msgstr "重复定义“%s”。" + +msgid "Unknown directive." +msgstr "未知指令。" + +msgid "Invalid macro name." +msgstr "无效宏名称。" + +msgid "Macro redefinition." +msgstr "宏重定义。" + +msgid "Invalid argument name." +msgstr "参数名称无效。" + +msgid "Expected a comma in the macro argument list." +msgstr "希望在宏参数列表中添加一个逗号。" + +msgid "Unmatched elif." +msgstr "elif 未配对。" + +msgid "Missing condition." +msgstr "缺少条件。" + +msgid "Condition evaluation error." +msgstr "条件评估错误。" + +msgid "Unmatched else." +msgstr "else 未配对。" + +msgid "Unmatched endif." +msgstr "endif 未配对。" + +msgid "Invalid ifdef." +msgstr "无效的 ifdef。" + +msgid "Invalid ifndef." +msgstr "无效的 ifndef。" + +msgid "" +"Shader include load failed. Does the shader include exist? Is there a cyclic " +"dependency?" +msgstr "着色器头文件加载失败。该头文件是否存在?是否存在循环依赖?" + +msgid "Shader include resource type is wrong." +msgstr "着色器头文件的资源类型错误。" + +msgid "Cyclic include found." +msgstr "发现循环包含。" + +msgid "Shader max include depth exceeded." +msgstr "超出着色器最大包含深度。" + +msgid "Invalid pragma directive." +msgstr "无效的 pragma 指令。" + +msgid "Invalid undef." +msgstr "无效的 undef。" + +msgid "Macro expansion limit exceeded." +msgstr "已超出宏展开限制。" + +msgid "Invalid macro argument count." +msgstr "无效的宏参数计数。" + +msgid "Can't find matching branch directive." +msgstr "无法找到配对的分支指令。" + +msgid "Invalid symbols placed before directive." +msgstr "指令前放置的符号无效。" + +msgid "Unmatched conditional statement." +msgstr "条件语句未配对。" + +msgid "" +"Direct floating-point comparison (this may not evaluate to `true` as you " +"expect). Instead, use `abs(a - b) < 0.0001` for an approximate but " +"predictable comparison." +msgstr "" +"直接进行浮点比较(可能不会像你期望的那样得到 `true`)。请改用 `abs(a - b) < " +"0.0001` 进行近似但可预测的比较。" + +msgid "The const '%s' is declared but never used." +msgstr "常量“%s”已声明,但从未使用。" + +msgid "The function '%s' is declared but never used." +msgstr "函数“%s”已声明,但从未使用。" + +msgid "The struct '%s' is declared but never used." +msgstr "结构体“%s”已声明,但从未使用。" + +msgid "The uniform '%s' is declared but never used." +msgstr "Uniform“%s”已声明,但从未使用。" + +msgid "The varying '%s' is declared but never used." +msgstr "Varying“%s”已声明,但从未使用。" + +msgid "The local variable '%s' is declared but never used." +msgstr "局部变量“%s”已声明,但从未使用。" + +msgid "" +"The total size of the %s for this shader on this device has been exceeded " +"(%d/%d). The shader may not work correctly." +msgstr "" +"已经超出该着色器在此设备上的 %s 的总大小(%d/%d)。该着色器可能无法正常工作。" diff --git a/editor/translations/editor/zh_TW.po b/editor/translations/editor/zh_TW.po index 354ff922ef..2b54cdefcc 100644 --- a/editor/translations/editor/zh_TW.po +++ b/editor/translations/editor/zh_TW.po @@ -12,7 +12,7 @@ # Qing <icinriiq@gmail.com>, 2018. # Sam Pan <sampan66@gmail.com>, 2016. # ken l <macauhome@gmail.com>, 2018. -# Eric K <eric900601@gmail.com>, 2019. +# Eric K <eric900601@gmail.com>, 2019, 2023. # cnieFIT <dtotncq@gmail.com>, 2019. # Bluesir Bruce <a5566740293@gmail.com>, 2019, 2020. # leela <53352@protonmail.com>, 2019. @@ -39,13 +39,14 @@ # Hugel <qihu@nfschina.com>, 2022. # nitenook <admin@alterbaum.net>, 2022. # Edison Lee <edisonlee@edisonlee55.com>, 2023. +# abcabcc <xmmandxpp@outlook.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-14 10:06+0000\n" -"Last-Translator: Edison Lee <edisonlee@edisonlee55.com>\n" +"PO-Revision-Date: 2023-02-10 10:44+0000\n" +"Last-Translator: abcabcc <xmmandxpp@outlook.com>\n" "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hant/>\n" "Language: zh_TW\n" @@ -53,11 +54,35 @@ 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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" + +msgid "Unset" +msgstr "未設置" msgid "Physical" msgstr "物理" +msgid "Left Mouse Button" +msgstr "滑鼠左鍵" + +msgid "Right Mouse Button" +msgstr "滑鼠右鍵" + +msgid "Middle Mouse Button" +msgstr "滑鼠中鍵" + +msgid "Mouse Wheel Up" +msgstr "滾輪向上" + +msgid "Mouse Wheel Down" +msgstr "滾輪向下" + +msgid "Mouse Wheel Left" +msgstr "滑鼠滾輪向左" + +msgid "Mouse Wheel Right" +msgstr "滑鼠滾輪向右" + msgid "Button" msgstr "按鈕" @@ -599,6 +624,9 @@ msgstr "自訊號:" msgid "Scene does not contain any script." msgstr "場景中無任何腳本。" +msgid "Select Method" +msgstr "選擇方法" + msgid "Remove" msgstr "移除" @@ -654,9 +682,6 @@ msgstr "斷開訊號連接" msgid "Connect a Signal to a Method" msgstr "連接訊號至方法" -msgid "Edit Connection:" -msgstr "編輯連接內容:" - msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "確定要删除所有來自訊號「%s」的連接嗎?" @@ -800,23 +825,8 @@ msgstr "警告:" msgid "Error:" msgstr "錯誤:" -msgid "C++ Error" -msgstr "C++ 錯誤" - -msgid "C++ Error:" -msgstr "C++ 錯誤:" - -msgid "Source" -msgstr "來源" - -msgid "C++ Source" -msgstr "C++ 原始檔" - -msgid "Source:" -msgstr "原始檔:" - -msgid "C++ Source:" -msgstr "C++ 原始檔:" +msgid "%s Error" +msgstr "%s 錯誤" msgid "Stack Trace" msgstr "堆疊回溯" @@ -827,6 +837,9 @@ msgstr "複製錯誤" msgid "Open C++ Source on GitHub" msgstr "於GitHub開啟C++原始碼" +msgid "C++ Source" +msgstr "C++ 原始檔" + msgid "Video RAM" msgstr "視訊記憶體" @@ -1290,6 +1303,9 @@ msgstr "全域變數" msgid "Navigation" msgstr "導航" +msgid "Vulkan" +msgstr "Vulkan" + msgid "Nodes and Classes:" msgstr "節點與類別:" @@ -1767,12 +1783,12 @@ msgstr "顯示所有地區" msgid "Show Selected Locales Only" msgstr "僅顯示選定的地區" +msgid "Edit Filters" +msgstr "編輯篩選條件" + msgid "Language:" msgstr "語言:" -msgid "Script" -msgstr "腳本" - msgid "Variant" msgstr "變體" @@ -2295,22 +2311,6 @@ msgid "Install from file" msgstr "自檔案安裝" msgid "" -"This will set up your project for custom Android builds by installing the " -"source template to \"res://android/build\".\n" -"You can then apply modifications and build your own custom APK on export " -"(adding modules, changing the AndroidManifest.xml, etc.).\n" -"Note that in order to make custom builds instead of using pre-built APKs, " -"the \"Use Custom Build\" option should be enabled in the Android export " -"preset." -msgstr "" -"將於「res://android/build」安裝原始樣板以為該項目設定自定 Android 建置樣" -"板。\n" -"輸出時可套用修改並建置自定 APK(如新增模組、修改 AndroidManifest.xml …" -"等)。\n" -"請注意,若要使用自定建置而非使用預先建置之 APK,請啟用 Android 匯出預設設定中" -"的 [Use Custom Build] 選項。" - -msgid "" "The Android build template is already installed in this project and it won't " "be overwritten.\n" "Remove the \"res://android/build\" directory manually before attempting this " @@ -2529,9 +2529,6 @@ msgstr "快捷鍵" msgid "Binding" msgstr "綁定" -msgid "%s Error" -msgstr "%s 錯誤" - msgid "All Devices" msgstr "所有裝置" @@ -3434,6 +3431,9 @@ msgstr "選擇並移動頂點,使用滑鼠右鍵建立頂點。" msgid "Enable snap and show grid." msgstr "啟用吸附並顯示網格。" +msgid "Blend:" +msgstr "混合:" + msgid "Point" msgstr "點" @@ -3476,15 +3476,9 @@ msgstr "刪除頂點與三角形。" msgid "Generate blend triangles automatically (instead of manually)" msgstr "自動產生混合三角形(而非手動)" -msgid "Blend:" -msgstr "混合:" - msgid "Parameter Changed:" msgstr "已更改參數:" -msgid "Edit Filters" -msgstr "編輯篩選條件" - msgid "Output node can't be added to the blend tree." msgstr "輸出節點無法被新增至混合樹。" @@ -3601,9 +3595,6 @@ msgstr "自目前位置開始倒放所選的動畫。 (A)" msgid "Play selected animation backwards from end. (Shift+A)" msgstr "自結尾倒放所選動畫。(Shift+A)" -msgid "Stop animation playback. (S)" -msgstr "停止播放動畫。(S)" - msgid "Play selected animation from start. (Shift+D)" msgstr "從頭播放所選動畫。(Shift+D)" @@ -4802,12 +4793,6 @@ msgstr "更改通知器 AABB" msgid "Change Particles AABB" msgstr "更改粒子 AABB" -msgid "Change Box Shape Extents" -msgstr "更改框形範圍" - -msgid "Change Probe Extents" -msgstr "更改探查範圍" - msgid "Change Capsule Shape Radius" msgstr "更改楕圓形半徑" @@ -5607,6 +5592,9 @@ msgstr "標準" msgid "Connections to method:" msgstr "連接至方法:" +msgid "Source" +msgstr "來源" + msgid "Target" msgstr "目標" @@ -5845,12 +5833,6 @@ msgstr "(空)" msgid "Animations:" msgstr "動畫:" -msgid "Speed:" -msgstr "速度:" - -msgid "Loop" -msgstr "循環" - msgid "Animation Frames:" msgstr "動畫幀:" @@ -7210,9 +7192,6 @@ msgstr "新增輸入操作" msgid "Change Action deadzone" msgstr "修改操作盲區" -msgid "Add Input Action Event" -msgstr "新增輸入操作事件" - msgid "Erase Input Action" msgstr "清除輸入操作" @@ -7240,9 +7219,6 @@ msgstr "選擇屬性" msgid "Select Virtual Method" msgstr "選擇虛擬方法" -msgid "Select Method" -msgstr "選擇方法" - msgid "Batch Rename" msgstr "批次重新命名" @@ -7986,12 +7962,6 @@ msgstr "無效的 APK Expansion 公鑰。" msgid "Invalid package name:" msgstr "無效的套件名稱:" -msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "「使用自定建置」必須啟用以使用本外掛。" - -msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "「Export AAB」僅於「Use Custom Build」啟用時可用。" - msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "「最小 SDK」應為有效整數,但目前值為無效的「%s」。" @@ -8047,12 +8017,6 @@ msgid "Unsupported export format!" msgstr "不支援的匯出格式!" msgid "" -"Trying to build from a custom built template, but no version info for it " -"exists. Please reinstall from the 'Project' menu." -msgstr "" -"嘗試自自定建置樣板進行建置,但無版本資訊可用。請自「專案」選單中重新安裝。" - -msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" diff --git a/editor/translations/properties/de.po b/editor/translations/properties/de.po index e919f91096..f66608bcde 100644 --- a/editor/translations/properties/de.po +++ b/editor/translations/properties/de.po @@ -93,16 +93,16 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-09 20:42+0000\n" -"Last-Translator: So Wieso <sowieso@dukun.de>\n" +"PO-Revision-Date: 2023-02-09 01:12+0000\n" +"Last-Translator: co1inco <colin.meihoefer@gmx.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" -"godot/de/>\n" +"godot-properties/de/>\n" "Language: de\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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Application" msgstr "Anwendung" @@ -113,9 +113,15 @@ msgstr "Konfiguration" msgid "Name" msgstr "Name" +msgid "Description" +msgstr "Beschreibung" + msgid "Run" msgstr "Ausführen" +msgid "Main Scene" +msgstr "Hauptszene" + msgid "Disable stdout" msgstr "Stdout deaktivieren" @@ -143,6 +149,9 @@ msgstr "Fenster" msgid "Size" msgstr "Größe" +msgid "Mode" +msgstr "Modus" + msgid "Resizable" msgstr "Verstellbar" @@ -158,6 +167,9 @@ msgstr "Energiesparen" msgid "Keep Screen On" msgstr "Bildschirm an lassen" +msgid "Audio" +msgstr "Audio" + msgid "Editor" msgstr "Editor" @@ -179,6 +191,9 @@ msgstr "Debuggen" msgid "Settings" msgstr "Einstellungen" +msgid "Compression" +msgstr "Kompression" + msgid "Crash Handler" msgstr "Absturzbehandlung" @@ -188,6 +203,21 @@ msgstr "Nachricht" msgid "Rendering" msgstr "Am Rendern" +msgid "Occlusion Culling" +msgstr "Occlusion-Culling" + +msgid "Limits" +msgstr "Grenzen" + +msgid "GUI" +msgstr "GUI" + +msgid "Max Size (MB)" +msgstr "Maximale Größe (MB)" + +msgid "Vulkan" +msgstr "Vulkan" + msgid "Low Processor Usage Mode" msgstr "Niedrige-Prozessorauslastungsmodus" @@ -236,6 +266,9 @@ msgstr "Faktor" msgid "Button Index" msgstr "Tastenindex" +msgid "Double Click" +msgstr "Doppelklick" + msgid "Tilt" msgstr "Neigung" @@ -290,6 +323,12 @@ msgstr "Tastenkürzel" msgid "Big Endian" msgstr "Big-Endian" +msgid "Network" +msgstr "Netzwerk" + +msgid "Page Size" +msgstr "Page-Größe" + msgid "Blocking Mode Enabled" msgstr "Blockierender Modus aktiviert" @@ -326,9 +365,6 @@ msgstr "Pfad" msgid "Data Array" msgstr "Datenliste" -msgid "Blocking Handshake" -msgstr "Blockierender Handshake" - msgid "Max Pending Connections" msgstr "Maximale Anzahl hängender Verbindungen" @@ -404,15 +440,6 @@ msgstr "Animation" msgid "Easing" msgstr "Glätten Ein-Aus" -msgid "Interface" -msgstr "Schnittstelle" - -msgid "Editors" -msgstr "Editoren" - -msgid "Network" -msgstr "Netzwerk" - msgid "Remote Port" msgstr "Fern-Port" @@ -482,8 +509,8 @@ msgstr "Ausgewählt" msgid "Keying" msgstr "Schlüsselwerte erzeugen" -msgid "Main Scene" -msgstr "Hauptszene" +msgid "Interface" +msgstr "Schnittstelle" msgid "Show Update Spinner" msgstr "Aktualisierungsrad anzeigen" @@ -791,6 +818,9 @@ msgstr "Schriftgröße von Quellcode in der Hilfe" msgid "Help Title Font Size" msgstr "Schriftgröße von Titeln der Hilfe" +msgid "Editors" +msgstr "Editoren" + msgid "Grid Map" msgstr "Gitterkarte" @@ -1208,6 +1238,9 @@ msgstr "Umrissgröße" msgid "Variation" msgstr "Variation" +msgid "Transform" +msgstr "Transformation" + msgid "Collada" msgstr "Collada" @@ -1238,15 +1271,9 @@ msgstr "Vorladen" msgid "Columns" msgstr "Spalten" -msgid "Mode" -msgstr "Modus" - msgid "Lossy Quality" msgstr "Verlustbehaftete Qualität" -msgid "BPTC LDR" -msgstr "BPTC LDR" - msgid "Mipmaps" msgstr "Mipmaps" @@ -1313,12 +1340,6 @@ msgstr "Optimierer" msgid "Max Angular Error" msgstr "Max Winkelfehler" -msgid "Compression" -msgstr "Kompression" - -msgid "Page Size" -msgstr "Page-Größe" - msgid "Nodes" msgstr "Nodes" @@ -1427,6 +1448,9 @@ msgstr "Threads verwenden" msgid "Available URLs" msgstr "Verfügbare URLs" +msgid "Unset" +msgstr "Deaktiviert" + msgid "Error" msgstr "Fehler" @@ -1544,9 +1568,6 @@ msgstr "Threads" msgid "Thread Model" msgstr "Thread-Model" -msgid "Audio" -msgstr "Audio" - msgid "Handheld" msgstr "Handgerät" @@ -1577,15 +1598,18 @@ msgstr "iOS" msgid "Hide Home Indicator" msgstr "Home-Anzeiger verbergen" +msgid "Input Devices" +msgstr "Eingabegeräte" + +msgid "Pointing" +msgstr "Zeigend" + msgid "Boot Splash" msgstr "Startladebild" msgid "BG Color" msgstr "Hintergrundfarbe" -msgid "Input Devices" -msgstr "Eingabegeräte" - msgid "Environment" msgstr "Umgebung" @@ -1595,21 +1619,24 @@ msgstr "Standard Löschfarbe" msgid "Show Image" msgstr "Bild anzeigen" +msgid "Image" +msgstr "Bild" + msgid "Fullsize" msgstr "Orginalgröße" msgid "Use Filter" msgstr "Filter verwenden" +msgid "Icon" +msgstr "Symbol" + msgid "Buffering" msgstr "Puffern" msgid "Agile Event Flushing" msgstr "Bewegliches Ereignis-Flushing" -msgid "Pointing" -msgstr "Zeigend" - msgid "Emulate Touch From Mouse" msgstr "Druckberührung mit Maus emulieren" @@ -1637,12 +1664,15 @@ msgstr "Solution-Verzeichnis" msgid "Main Loop Type" msgstr "Typ der Hauptschleife" +msgid "Stretch" +msgstr "Strecken" + +msgid "Aspect" +msgstr "Verhältnis" + msgid "Auto Accept Quit" msgstr "Automatisches Beendenakzeptieren" -msgid "GUI" -msgstr "GUI" - msgid "Fonts" msgstr "Schriftarten" @@ -1652,6 +1682,9 @@ msgstr "Dynamische Schriftarten" msgid "Use Oversampling" msgstr "Oversampling verwenden" +msgid "Textures" +msgstr "Texturen" + msgid "Operation" msgstr "Betrieb" @@ -1835,9 +1868,6 @@ msgstr "Basispfad" msgid "Root Nodes" msgstr "Wurzel-Nodes" -msgid "Textures" -msgstr "Texturen" - msgid "Images" msgstr "Bilder" @@ -2132,9 +2162,6 @@ msgstr "IGD-Status" msgid "Write Mode" msgstr "Schreibmodus" -msgid "Limits" -msgstr "Grenzen" - msgid "WebRTC" msgstr "WebRTC" @@ -2189,12 +2216,6 @@ msgstr "Angepasster Vordergrund 432 x 432" msgid "Adaptive Background 432 X 432" msgstr "Angepasster Hintergrund 432 x 432" -msgid "Custom Build" -msgstr "Eigener Build" - -msgid "Use Custom Build" -msgstr "Einen Build verwenden" - msgid "Export Format" msgstr "Exportformat" @@ -2462,9 +2483,6 @@ msgstr "Architektur" msgid "macOS" msgstr "macOS" -msgid "Icon" -msgstr "Symbol" - msgid "Copyright" msgstr "Urheberrecht" @@ -2600,9 +2618,6 @@ msgstr "Anzeigename" msgid "Short Name" msgstr "Kurzname" -msgid "Description" -msgstr "Beschreibung" - msgid "Publisher" msgstr "Veröffentlicher" @@ -2762,18 +2777,12 @@ msgstr "Dateibeschreibung" msgid "Trademarks" msgstr "Handelsmarken" -msgid "Frames" -msgstr "Frames" - msgid "Frame" msgstr "Frame" msgid "Speed Scale" msgstr "Geschwindigkeitsskalierung" -msgid "Playing" -msgstr "Wird abgespielt" - msgid "Centered" msgstr "Zentriert" @@ -2819,6 +2828,9 @@ msgstr "Volumen-dB" msgid "Pitch Scale" msgstr "Tonhöhenskalierung" +msgid "Playing" +msgstr "Wird abgespielt" + msgid "Autoplay" msgstr "Automatisches Abspielen" @@ -3188,9 +3200,6 @@ msgstr "Reisekosten" msgid "Estimate Radius" msgstr "Radius schätzen" -msgid "Transform" -msgstr "Transformation" - msgid "Rotation Degrees" msgstr "Rotationswinkel" @@ -3473,9 +3482,6 @@ msgstr "Z deaktivieren" msgid "Flatness" msgstr "Flachheit" -msgid "Extents" -msgstr "Ausmaße" - msgid "Albedo" msgstr "Albedo" @@ -4034,9 +4040,6 @@ msgstr "Zufällige Zeitverzögerung" msgid "Xfade Time" msgstr "Überblendzeit" -msgid "Reset" -msgstr "Zurücksetzen" - msgid "Active" msgstr "Aktiv" @@ -4046,8 +4049,8 @@ msgstr "Menge hinzufügen" msgid "Blend Amount" msgstr "Abbildungsmenge" -msgid "Seek Position" -msgstr "Position aufsuchen" +msgid "Reset" +msgstr "Zurücksetzen" msgid "Switch" msgstr "Durchwechseln" @@ -4370,9 +4373,6 @@ msgstr "Umgebung" msgid "Relative Index" msgstr "Relativer Index" -msgid "Fit Content Height" -msgstr "An Inhaltshöhe anpassen" - msgid "Scroll Active" msgstr "Scrollen möglich" @@ -4415,9 +4415,6 @@ msgstr "Eingeklappt" msgid "Dragger Visibility" msgstr "Trennersichtbarkeit" -msgid "Stretch" -msgstr "Strecken" - msgid "Stretch Shrink" msgstr "Strecken-Stauchen" @@ -4436,6 +4433,9 @@ msgstr "Tabs sichtbar" msgid "Syntax Highlighter" msgstr "Syntaxhervorhebung" +msgid "Fit Content Height" +msgstr "An Inhaltshöhe anpassen" + msgid "Draw" msgstr "Zeichnen" @@ -4607,9 +4607,6 @@ msgstr "Kantenglättung" msgid "Use Debanding" msgstr "Debanding verwenden" -msgid "Occlusion Culling" -msgstr "Occlusion-Culling" - msgid "Atlas Size" msgstr "Atlasgröße" @@ -4691,9 +4688,6 @@ msgstr "Min Größe" msgid "Max Size" msgstr "Max Größe" -msgid "Aspect" -msgstr "Verhältnis" - msgid "Layer Names" msgstr "Ebenennamen" @@ -5591,9 +5585,6 @@ msgstr "Wachstumsanfang" msgid "Grow End" msgstr "Wachstumsende" -msgid "Image" -msgstr "Bild" - msgid "Load Path" msgstr "Ladepfad" @@ -5618,6 +5609,9 @@ msgstr "Von" msgid "To" msgstr "Bis" +msgid "Frames" +msgstr "Frames" + msgid "Current Frame" msgstr "Aktueller Frame" @@ -5675,18 +5669,6 @@ msgstr "Navigationskarte" msgid "Direct Space State" msgstr "Direkter Raum Zustand" -msgid "Default Gravity" -msgstr "Standard-Gravitation" - -msgid "Default Gravity Vector" -msgstr "Standardgravitationsvektor" - -msgid "Default Cell Size" -msgstr "Standardzellgröße" - -msgid "Default Edge Connection Margin" -msgstr "Standard Kantenverbinungsabstand" - msgid "Fallback Environment" msgstr "Ausweichumgebung" @@ -5822,20 +5804,17 @@ msgstr "Videoverzögerungsbehandlung (ms)" msgid "Bus Count" msgstr "Busanzahl" -msgid "Capture Device" -msgstr "Aufnahmegerät" - msgid "Feed" msgstr "Zufuhr" msgid "Is Active" msgstr "Ist aktiv" -msgid "Sleep Threshold Linear" -msgstr "Schlafschwelle linear" +msgid "Default Cell Size" +msgstr "Standardzellgröße" -msgid "Sleep Threshold Angular" -msgstr "Schlafschwelle Winkel" +msgid "Default Edge Connection Margin" +msgstr "Standard Kantenverbinungsabstand" msgid "Inverse Mass" msgstr "Umgekehrte Masse" @@ -5864,6 +5843,18 @@ msgstr "Mit anderen Gebieten kollidieren" msgid "Shape RID" msgstr "Form RID" +msgid "Default Gravity" +msgstr "Standard-Gravitation" + +msgid "Default Gravity Vector" +msgstr "Standardgravitationsvektor" + +msgid "Sleep Threshold Linear" +msgstr "Schlafschwelle linear" + +msgid "Sleep Threshold Angular" +msgstr "Schlafschwelle Winkel" + msgid "Physics Engine" msgstr "Physikengine" @@ -5897,18 +5888,6 @@ msgstr "Render-Schleife aktiviert" msgid "VRAM Compression" msgstr "VRAM-Kompression" -msgid "Import BPTC" -msgstr "BPTC importieren" - -msgid "Import S3TC" -msgstr "S3TC importieren" - -msgid "Import ETC" -msgstr "ETC importieren" - -msgid "Import ETC2" -msgstr "ETC2 importieren" - msgid "Lossless Compression" msgstr "Verlustfreie Komprimierung" diff --git a/editor/translations/properties/es.po b/editor/translations/properties/es.po index 363ff0a120..40a4fe1441 100644 --- a/editor/translations/properties/es.po +++ b/editor/translations/properties/es.po @@ -97,16 +97,16 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-20 10:19+0000\n" -"Last-Translator: Daniel Miranda <danmiranda@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 14:12+0000\n" +"Last-Translator: Damien Monasterios <monasterio13septiembre@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" -"godot/es/>\n" +"godot-properties/es/>\n" "Language: es\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.15.1\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Application" msgstr "Aplicación" @@ -117,9 +117,15 @@ msgstr "Configuración" msgid "Name" msgstr "Nombre" +msgid "Description" +msgstr "Descripción" + msgid "Run" msgstr "Ejecutar" +msgid "Main Scene" +msgstr "Escena Principal" + msgid "Disable stdout" msgstr "Desactivar stdout" @@ -147,6 +153,9 @@ msgstr "Ventana" msgid "Size" msgstr "Tamaño" +msgid "Mode" +msgstr "Modo" + msgid "Resizable" msgstr "Redimensionable" @@ -156,12 +165,18 @@ msgstr "Sin bordes" msgid "Transparent" msgstr "Transparente" +msgid "Extend to Title" +msgstr "Extender al Título" + msgid "Energy Saving" msgstr "Ahorro de Energía" msgid "Keep Screen On" msgstr "Mantener la Pantalla Activa" +msgid "Audio" +msgstr "Audio" + msgid "Editor" msgstr "Editor" @@ -183,6 +198,9 @@ msgstr "Depurar" msgid "Settings" msgstr "Configuración" +msgid "Compression" +msgstr "Compresión" + msgid "Crash Handler" msgstr "Manipulador de Colisiones" @@ -192,6 +210,15 @@ msgstr "Mensaje" msgid "Rendering" msgstr "Renderización" +msgid "Occlusion Culling" +msgstr "Occlusion Culling" + +msgid "Limits" +msgstr "Límites" + +msgid "GUI" +msgstr "GUI" + msgid "Low Processor Usage Mode" msgstr "Modo de Bajo Uso del Procesador" @@ -240,6 +267,9 @@ msgstr "Factor" msgid "Button Index" msgstr "Índice de Botones" +msgid "Double Click" +msgstr "Doble Clic" + msgid "Tilt" msgstr "Inclinar" @@ -294,6 +324,12 @@ msgstr "Atajo" msgid "Big Endian" msgstr "Big Endian" +msgid "Network" +msgstr "Red" + +msgid "Page Size" +msgstr "Tamaño de Página" + msgid "Blocking Mode Enabled" msgstr "Modo de Bloqueo Activado" @@ -330,9 +366,6 @@ msgstr "Ruta" msgid "Data Array" msgstr "Array de Datos" -msgid "Blocking Handshake" -msgstr "Bloquear Handshake" - msgid "Max Pending Connections" msgstr "Máximo de Conexiones Pendientes" @@ -408,15 +441,6 @@ msgstr "Animación" msgid "Easing" msgstr "Suavizar" -msgid "Interface" -msgstr "Interfaz" - -msgid "Editors" -msgstr "Editores" - -msgid "Network" -msgstr "Red" - msgid "Remote Port" msgstr "Puerto Remoto" @@ -486,8 +510,8 @@ msgstr "Chequeado" msgid "Keying" msgstr "Teclear" -msgid "Main Scene" -msgstr "Escena Principal" +msgid "Interface" +msgstr "Interfaz" msgid "Show Update Spinner" msgstr "Mostrar Spinner de Actualización" @@ -589,7 +613,7 @@ msgid "Theme" msgstr "Theme" msgid "Preset" -msgstr "Preajuste" +msgstr "Preconfigurado" msgid "Base Color" msgstr "Color Base" @@ -795,6 +819,9 @@ msgstr "Tamaño de Fuente de Código de Ayuda" msgid "Help Title Font Size" msgstr "Tamaño de Fuente del Título de Ayuda" +msgid "Editors" +msgstr "Editores" + msgid "Grid Map" msgstr "Mapeo de Cuadrícula" @@ -1206,12 +1233,18 @@ msgstr "Oversampling" msgid "Compress" msgstr "Comprimir" +msgid "Language" +msgstr "Idioma" + msgid "Outline Size" msgstr "Tamaño del Contorno" msgid "Variation" msgstr "Variación" +msgid "Transform" +msgstr "Transformar" + msgid "Collada" msgstr "Collada" @@ -1242,15 +1275,9 @@ msgstr "Precarga" msgid "Columns" msgstr "Columnas" -msgid "Mode" -msgstr "Modo" - msgid "Lossy Quality" msgstr "Con Pérdidas de Calidad" -msgid "BPTC LDR" -msgstr "BPTC LDR" - msgid "Mipmaps" msgstr "Mipmaps" @@ -1317,12 +1344,6 @@ msgstr "Optimizador" msgid "Max Angular Error" msgstr "Error Angular Máximo" -msgid "Compression" -msgstr "Compresión" - -msgid "Page Size" -msgstr "Tamaño de Página" - msgid "Nodes" msgstr "Nodos" @@ -1336,7 +1357,7 @@ msgid "Root Scale" msgstr "Escala de Raíz" msgid "Meshes" -msgstr "Meshes" +msgstr "Mallas" msgid "Ensure Tangents" msgstr "Asegurar Tangentes" @@ -1431,6 +1452,9 @@ msgstr "Usar Hilos" msgid "Available URLs" msgstr "URLs Disponibles" +msgid "Unset" +msgstr "Desactivar" + msgid "Error" msgstr "Error" @@ -1548,9 +1572,6 @@ msgstr "Hilos" msgid "Thread Model" msgstr "Modelo de Hilo" -msgid "Audio" -msgstr "Audio" - msgid "Handheld" msgstr "Manipulador" @@ -1581,15 +1602,18 @@ msgstr "iOS" msgid "Hide Home Indicator" msgstr "Ocultar Indicador de Inicio" +msgid "Input Devices" +msgstr "Dispositivos de Entrada" + +msgid "Pointing" +msgstr "Puntero" + msgid "Boot Splash" msgstr "Pantalla de Splash" msgid "BG Color" msgstr "Color de Fondo" -msgid "Input Devices" -msgstr "Dispositivos de Entrada" - msgid "Environment" msgstr "Entorno" @@ -1599,21 +1623,24 @@ msgstr "Color Claro Predeterminado" msgid "Show Image" msgstr "Mostrar Imagen" +msgid "Image" +msgstr "imagen" + msgid "Fullsize" msgstr "Tamaño completo" msgid "Use Filter" msgstr "Usar Filtro" +msgid "Icon" +msgstr "Icono" + msgid "Buffering" msgstr "Buffering" msgid "Agile Event Flushing" msgstr "Evento Ágil de Vaciado" -msgid "Pointing" -msgstr "Puntero" - msgid "Emulate Touch From Mouse" msgstr "Emular Toque Desde El Mouse" @@ -1641,12 +1668,15 @@ msgstr "Directorio de Soluciones" msgid "Main Loop Type" msgstr "Tipo de Bucle Principal" +msgid "Stretch" +msgstr "Estirar" + +msgid "Aspect" +msgstr "Aspecto" + msgid "Auto Accept Quit" msgstr "Aceptar Cierre Del Programa Automáticamente" -msgid "GUI" -msgstr "GUI" - msgid "Fonts" msgstr "Fuentes" @@ -1656,6 +1686,9 @@ msgstr "Fuentes Dinámicas" msgid "Use Oversampling" msgstr "Usar Sobremuestreo" +msgid "Textures" +msgstr "Texturas" + msgid "Operation" msgstr "Operación" @@ -1839,9 +1872,6 @@ msgstr "Ruta Base" msgid "Root Nodes" msgstr "Nodos Raíz" -msgid "Textures" -msgstr "Texturas" - msgid "Images" msgstr "Imágenes" @@ -2136,9 +2166,6 @@ msgstr "Estado del IGD" msgid "Write Mode" msgstr "Modo de Escritura" -msgid "Limits" -msgstr "Límites" - msgid "WebRTC" msgstr "WebRTC" @@ -2193,12 +2220,6 @@ msgstr "Primer Plano Adaptable 432 X 432" msgid "Adaptive Background 432 X 432" msgstr "Fondo Adaptable 432 X 432" -msgid "Custom Build" -msgstr "Build Personalizada" - -msgid "Use Custom Build" -msgstr "Usar Compilación Personalizada" - msgid "Export Format" msgstr "Formato de Exportación" @@ -2466,9 +2487,6 @@ msgstr "Arquitectura" msgid "macOS" msgstr "macOS" -msgid "Icon" -msgstr "Icono" - msgid "Copyright" msgstr "Copyright" @@ -2604,9 +2622,6 @@ msgstr "Nombre a Mostrar" msgid "Short Name" msgstr "Nombre Corto" -msgid "Description" -msgstr "Descripción" - msgid "Publisher" msgstr "Editor" @@ -2766,18 +2781,12 @@ msgstr "Descripción del Archivo" msgid "Trademarks" msgstr "Marcas comerciales" -msgid "Frames" -msgstr "Fotogramas" - msgid "Frame" msgstr "Fotograma" msgid "Speed Scale" msgstr "Escala de Velocidad" -msgid "Playing" -msgstr "Reproducir" - msgid "Centered" msgstr "Centrado" @@ -2823,6 +2832,9 @@ msgstr "Volumen dB" msgid "Pitch Scale" msgstr "Escala de Tono" +msgid "Playing" +msgstr "Reproducir" + msgid "Autoplay" msgstr "Reproducción Automática" @@ -3192,9 +3204,6 @@ msgstr "Costo del Viaje" msgid "Estimate Radius" msgstr "Estimación del Radio" -msgid "Transform" -msgstr "Transformar" - msgid "Rotation Degrees" msgstr "Grados de Rotación" @@ -3477,9 +3486,6 @@ msgstr "Desactivar Z" msgid "Flatness" msgstr "Llanura" -msgid "Extents" -msgstr "Extensiones" - msgid "Albedo" msgstr "Albedo" @@ -4038,9 +4044,6 @@ msgstr "Retraso Aleatorio" msgid "Xfade Time" msgstr "Tiempo de Fundido Cruzado" -msgid "Reset" -msgstr "Resetear" - msgid "Active" msgstr "Activo" @@ -4050,8 +4053,8 @@ msgstr "Añadir Cantidad" msgid "Blend Amount" msgstr "Cantidad de Mezcla" -msgid "Seek Position" -msgstr "Buscar Posición" +msgid "Reset" +msgstr "Resetear" msgid "Switch" msgstr "Cambiar" @@ -4374,9 +4377,6 @@ msgstr "Env" msgid "Relative Index" msgstr "Índice Relativo" -msgid "Fit Content Height" -msgstr "Ajustar Altura Del Contenido" - msgid "Scroll Active" msgstr "Scroll Activo" @@ -4419,9 +4419,6 @@ msgstr "Colapsado" msgid "Dragger Visibility" msgstr "Visibilidad de los Arrastradores" -msgid "Stretch" -msgstr "Estirar" - msgid "Stretch Shrink" msgstr "Encogimiento por Estiramiento" @@ -4440,6 +4437,9 @@ msgstr "Pestañas Visibles" msgid "Syntax Highlighter" msgstr "Resaltador de Sintaxis" +msgid "Fit Content Height" +msgstr "Ajustar Altura Del Contenido" + msgid "Draw" msgstr "Dibujar" @@ -4611,9 +4611,6 @@ msgstr "Antialias" msgid "Use Debanding" msgstr "Usar Debanding" -msgid "Occlusion Culling" -msgstr "Occlusion Culling" - msgid "Atlas Size" msgstr "Tamaño de Atlas" @@ -4695,9 +4692,6 @@ msgstr "Tamaño Mínimo" msgid "Max Size" msgstr "Tamaño Máximo" -msgid "Aspect" -msgstr "Aspecto" - msgid "Layer Names" msgstr "Nombres de las Capas" @@ -5586,9 +5580,6 @@ msgstr "Inicio de Expansión" msgid "Grow End" msgstr "Fin de Expansión" -msgid "Image" -msgstr "imagen" - msgid "Load Path" msgstr "Ruta de Carga" @@ -5613,6 +5604,9 @@ msgstr "Desde" msgid "To" msgstr "A" +msgid "Frames" +msgstr "Fotogramas" + msgid "Current Frame" msgstr "Cuadro Actual" @@ -5670,18 +5664,6 @@ msgstr "Mapa de Navegación" msgid "Direct Space State" msgstr "Estado de Espacio Directo" -msgid "Default Gravity" -msgstr "Gravedad Predeterminada" - -msgid "Default Gravity Vector" -msgstr "Vector de Gravedad Predeterminado" - -msgid "Default Cell Size" -msgstr "Vista Previa Predeterminada" - -msgid "Default Edge Connection Margin" -msgstr "Margen de Conexión de Bordes Predeterminado" - msgid "Fallback Environment" msgstr "Entorno de Retorno" @@ -5811,20 +5793,17 @@ msgstr "Compensación de Retraso de Vídeo (ms)" msgid "Bus Count" msgstr "Conteo de Buses" -msgid "Capture Device" -msgstr "Dispositivo de Captura" - msgid "Feed" msgstr "Feed" msgid "Is Active" msgstr "Activo" -msgid "Sleep Threshold Linear" -msgstr "Umbral de Sueño Lineal" +msgid "Default Cell Size" +msgstr "Vista Previa Predeterminada" -msgid "Sleep Threshold Angular" -msgstr "Umbral de Sueño Angular" +msgid "Default Edge Connection Margin" +msgstr "Margen de Conexión de Bordes Predeterminado" msgid "Inverse Mass" msgstr "Masa Inversa" @@ -5850,6 +5829,18 @@ msgstr "Colisionar Con Áreas" msgid "Shape RID" msgstr "RID de Forma" +msgid "Default Gravity" +msgstr "Gravedad Predeterminada" + +msgid "Default Gravity Vector" +msgstr "Vector de Gravedad Predeterminado" + +msgid "Sleep Threshold Linear" +msgstr "Umbral de Sueño Lineal" + +msgid "Sleep Threshold Angular" +msgstr "Umbral de Sueño Angular" + msgid "Physics Engine" msgstr "Motor de Física" @@ -5883,18 +5874,6 @@ msgstr "Bucle de Renderización Activado" msgid "VRAM Compression" msgstr "Compresión VRAM" -msgid "Import BPTC" -msgstr "Importar BPTC" - -msgid "Import S3TC" -msgstr "Importar S3TC" - -msgid "Import ETC" -msgstr "Importar ETC" - -msgid "Import ETC2" -msgstr "Importar ETC2" - msgid "Lossless Compression" msgstr "Compresión Sin Pérdidas" diff --git a/editor/translations/properties/fr.po b/editor/translations/properties/fr.po index e2921d8586..74b674aa1c 100644 --- a/editor/translations/properties/fr.po +++ b/editor/translations/properties/fr.po @@ -114,16 +114,16 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-14 00:01+0000\n" -"Last-Translator: slundi <slundi@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 14:12+0000\n" +"Last-Translator: Helix Sir <vincentbarkmann@gmail.com>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" -"godot/fr/>\n" +"godot-properties/fr/>\n" "Language: fr\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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Application" msgstr "Application" @@ -134,9 +134,15 @@ msgstr "Configuration" msgid "Name" msgstr "Nom" +msgid "Description" +msgstr "Description" + msgid "Run" msgstr "Lancer" +msgid "Main Scene" +msgstr "Scène principale" + msgid "Disable stdout" msgstr "Désactiver stdout" @@ -164,33 +170,54 @@ msgstr "Fenêtre" msgid "Size" msgstr "Taille" +msgid "Mode" +msgstr "Mode" + msgid "Resizable" msgstr "Redimensionnable" msgid "Borderless" msgstr "Sans Bordure" +msgid "Always on Top" +msgstr "Toujours au dessus" + msgid "Transparent" msgstr "Transparent" +msgid "Extend to Title" +msgstr "Étirer au titre" + msgid "Energy Saving" msgstr "Économie d'Énergie" msgid "Keep Screen On" msgstr "Garder l'écran actif" +msgid "Audio" +msgstr "Audio" + msgid "Editor" msgstr "Éditeur" msgid "Main Run Args" msgstr "Paramètres d'exécution du programme principal" +msgid "Default Signal Callback Name" +msgstr "Nom de rappel de signal par défaut" + +msgid "Default Signal Callback to Self Name" +msgstr "Nom de rappel de signal à soi-même par défaut" + msgid "Physics" msgstr "Physique" msgid "2D" msgstr "2D" +msgid "Run on Separate Thread" +msgstr "Exécuter sur un thread différent" + msgid "3D" msgstr "3D" @@ -200,6 +227,9 @@ msgstr "Débogage" msgid "Settings" msgstr "Paramètres" +msgid "Compression" +msgstr "Compression" + msgid "Crash Handler" msgstr "Gestionnaire de Crash" @@ -209,6 +239,36 @@ msgstr "Message" msgid "Rendering" msgstr "Rendu" +msgid "Occlusion Culling" +msgstr "Elagage de l'occlusion" + +msgid "Limits" +msgstr "Limites" + +msgid "Internationalization" +msgstr "Internationalisation" + +msgid "Force Right to Left Layout Direction" +msgstr "Forcer l'affichage de droite à gauche" + +msgid "GUI" +msgstr "GUI" + +msgid "Rendering Device" +msgstr "Matériel de rendu" + +msgid "Block Size (KB)" +msgstr "Taille de bloc (Ko)" + +msgid "Max Size (MB)" +msgstr "Taille Maximale (Mo)" + +msgid "Vulkan" +msgstr "Vulkan" + +msgid "Max Descriptors per Pool" +msgstr "Descripteurs maximums par Pool" + msgid "Low Processor Usage Mode" msgstr "Mode d'utilisation du processeur bas en ressources" @@ -218,6 +278,15 @@ msgstr "Mode d'utilisation faible du processeur Veille (µsec)" msgid "Print Error Messages" msgstr "Afficher les messages d'erreur" +msgid "Physics Ticks per Second" +msgstr "Ticks de physique par seconde" + +msgid "Max Physics Steps per Frame" +msgstr "Étapes de physique maximum par trame" + +msgid "Max FPS" +msgstr "FPS Max" + msgid "Time Scale" msgstr "Échelle de temps" @@ -233,9 +302,33 @@ msgstr "Utiliser l'entrée accumulée" msgid "Device" msgstr "Périphérique" +msgid "Window ID" +msgstr "ID de la fenêtre" + +msgid "Alt Pressed" +msgstr "Alt pressé" + +msgid "Shift Pressed" +msgstr "Shift pressé" + +msgid "Ctrl Pressed" +msgstr "Ctrl pressé" + +msgid "Meta Pressed" +msgstr "Meta pressé" + msgid "Pressed" msgstr "Pressé" +msgid "Keycode" +msgstr "Keycode" + +msgid "Physical Keycode" +msgstr "Keycode physique" + +msgid "Key Label" +msgstr "Label de touche" + msgid "Unicode" msgstr "Unicode" @@ -257,6 +350,9 @@ msgstr "Facteur" msgid "Button Index" msgstr "Index du Button" +msgid "Double Click" +msgstr "Double clic" + msgid "Tilt" msgstr "Inclinaison" @@ -281,6 +377,9 @@ msgstr "Valeur de l'Axe" msgid "Index" msgstr "Index" +msgid "Double Tap" +msgstr "Double appui" + msgid "Action" msgstr "Action" @@ -308,9 +407,24 @@ msgstr "Valeur du controller" msgid "Shortcut" msgstr "Raccourci" +msgid "Events" +msgstr "Événements" + +msgid "Include Navigational" +msgstr "Inclure navigationel" + +msgid "Include Hidden" +msgstr "Inclure caché(s)" + msgid "Big Endian" msgstr "Gros-boutiste" +msgid "Network" +msgstr "Réseau" + +msgid "Page Size" +msgstr "Taille de page" + msgid "Blocking Mode Enabled" msgstr "Mode de blocage activé" @@ -326,6 +440,12 @@ msgstr "Données" msgid "Object ID" msgstr "Identifiant de l'Objet" +msgid "Original Class" +msgstr "Classe originale" + +msgid "Recording Properties" +msgstr "Propriétés d'enregistrement" + msgid "Encode Buffer Max Size" msgstr "Taille maximale du tampon d'encodage" @@ -341,15 +461,15 @@ msgstr "Pair de flux" msgid "Resource" msgstr "Ressource" +msgid "Local to Scene" +msgstr "Local à la scène" + msgid "Path" msgstr "Chemin" msgid "Data Array" msgstr "Tableau de données" -msgid "Blocking Handshake" -msgstr "Blocage de la poignée de main" - msgid "Max Pending Connections" msgstr "Connexions Maximales en Attente" @@ -359,6 +479,18 @@ msgstr "Décalage" msgid "Cell Size" msgstr "Taille des Cellules" +msgid "Jumping Enabled" +msgstr "Saut actif" + +msgid "Default Compute Heuristic" +msgstr "Calculation heuristique par défaut" + +msgid "Default Estimate Heuristic" +msgstr "Estimation heuristique par défaut" + +msgid "Diagonal Mode" +msgstr "Mode diagonal" + msgid "Seed" msgstr "Graine" @@ -368,6 +500,24 @@ msgstr "État" msgid "Source Code" msgstr "Code Source" +msgid "TLS" +msgstr "TLS" + +msgid "Threading" +msgstr "Tâches parallèles (Threading)" + +msgid "Worker Pool" +msgstr "Pool de travailleur" + +msgid "Max Threads" +msgstr "Tâches parallèles maximum" + +msgid "Use System Threads for Low Priority Tasks" +msgstr "Utiliser les threads système pour les tâches de basse priorité" + +msgid "Low Priority Thread Ratio" +msgstr "Ratio de threads à basse priorité" + msgid "Locale" msgstr "Localisation" @@ -377,15 +527,33 @@ msgstr "Test" msgid "Fallback" msgstr "Repli" +msgid "Pseudolocalization" +msgstr "Pseudo-localisation" + +msgid "Use Pseudolocalization" +msgstr "Utiliser la pseudo-localisation" + +msgid "Replace With Accents" +msgstr "Remplacer avec accents" + +msgid "Double Vowels" +msgstr "Double voyelles" + msgid "Override" msgstr "Redéfinition" +msgid "Expansion Ratio" +msgstr "Ratio d'expansion" + msgid "Prefix" msgstr "Préfixe" msgid "Suffix" msgstr "Suffixe" +msgid "Skip Placeholders" +msgstr "Ignorer les substituts" + msgid "Rotation" msgstr "Rotation" @@ -425,21 +593,24 @@ msgstr "Animation" msgid "Easing" msgstr "Transition entrée-sortie" -msgid "Interface" -msgstr "Interface" - -msgid "Editors" -msgstr "Éditeurs" - -msgid "Network" -msgstr "Réseau" +msgid "Debug Adapter" +msgstr "Adaptateur de débogage" msgid "Remote Port" msgstr "Port distant" +msgid "Request Timeout" +msgstr "Délai de requête expiré (Timeout)" + +msgid "Sync Breakpoints" +msgstr "Synchroniser les point d'arrêts" + msgid "Debugger" msgstr "Débogueur" +msgid "Auto Switch to Remote Scene Tree" +msgstr "Basculer automatiquement vers l'arborescence de scène distante" + msgid "Remote Scene Tree Refresh Interval" msgstr "Intervalle de rafraîchissement de l'arborescence distante" @@ -458,6 +629,9 @@ msgstr "Accès" msgid "Display Mode" msgstr "Mode d'affichage" +msgid "File Mode" +msgstr "Mode fichier" + msgid "Current Dir" msgstr "Répertoire Actuel" @@ -479,6 +653,9 @@ msgstr "Importer" msgid "Reimport Missing Imported Files" msgstr "Réimporter les fichiers importés manquants" +msgid "Use Multiple Threads" +msgstr "Utiliser le multitâche" + msgid "Text Editor" msgstr "Éditeur de texte" @@ -500,11 +677,20 @@ msgstr "Cochable" msgid "Checked" msgstr "Coché" +msgid "Draw Warning" +msgstr "Montrer les avertissements" + msgid "Keying" msgstr "En train de taper" -msgid "Main Scene" -msgstr "Scène principale" +msgid "Deletable" +msgstr "Supprimable" + +msgid "Interface" +msgstr "Interface" + +msgid "Save on Focus Loss" +msgstr "Enregistrer à la perte de focus" msgid "Show Update Spinner" msgstr "Afficher l'indicateur d'activité" @@ -518,6 +704,9 @@ msgstr "Traduction des paramètres" msgid "Scene Tabs" msgstr "Onglets de scène" +msgid "Restore Scenes on Load" +msgstr "Rouvrir les scènes au chargement" + msgid "Inspector" msgstr "Inspecteur" @@ -539,9 +728,18 @@ msgstr "Édition horizontale de Vector2" msgid "Horizontal Vector Types Editing" msgstr "Édition de Types de Vecteur Horizontal" +msgid "Open Resources in Current Inspector" +msgstr "Ouvrir les ressources dans l'inspecteur actuel" + +msgid "Resources to Open in New Inspector" +msgstr "Ressources à ouvrir dans un nouvel inspecteur" + msgid "Default Color Picker Mode" msgstr "Mode par défaut du sélectionneur de couleur" +msgid "Default Color Picker Shape" +msgstr "Forme par défaut du sélecteur de couleur" + msgid "Distraction Free Mode" msgstr "Mode Sans Distraction" @@ -566,6 +764,15 @@ msgstr "Langue de l'éditeur" msgid "Display Scale" msgstr "Échelle d'affichage" +msgid "Enable Pseudolocalization" +msgstr "Activer la pseudo-localisation" + +msgid "Use Embedded Menu" +msgstr "Utiliser le menu intégré" + +msgid "Expand to Title" +msgstr "Étirer à la longueur du texte" + msgid "Custom Display Scale" msgstr "Échelle personnalisée d'affichage" @@ -575,9 +782,15 @@ msgstr "Taille de la police principale" msgid "Code Font Size" msgstr "Taille de la police du code" +msgid "Font Antialiasing" +msgstr "Anticrénelage de la police" + msgid "Font Hinting" msgstr "Optimisation de rendu de police" +msgid "Font Subpixel Positioning" +msgstr "Positionnement sous-pixel de la police" + msgid "Main Font" msgstr "Police Principale" @@ -599,15 +812,30 @@ msgstr "Mode distraction séparée" msgid "Automatically Open Screenshots" msgstr "Ouvrir automatiquement les captures d'écran" +msgid "Single Window Mode" +msgstr "Mode fenêtre unique" + msgid "Mouse Extra Buttons Navigate History" msgstr "Boutons additionnels de la souris déplacent dans l'historique" +msgid "Save Each Scene on Quit" +msgstr "Enregistrer chaque scène à la fermeture" + +msgid "Show Internal Errors in Toast Notifications" +msgstr "Montrer les erreurs internes dans les notifications Toast" + +msgid "Show Low Level OpenType Features" +msgstr "Afficher les fonctionnalités bas-niveau pour OpenType" + msgid "Theme" msgstr "Thème" msgid "Preset" msgstr "Préréglage" +msgid "Icon and Font Color" +msgstr "Couleur de police et d'icône" + msgid "Base Color" msgstr "Couleur de Base" @@ -617,6 +845,12 @@ msgstr "Couleur d'accentuation" msgid "Contrast" msgstr "Contraste" +msgid "Draw Extra Borders" +msgstr "Dessiner bordures supplémentaires" + +msgid "Icon Saturation" +msgstr "Saturation d'icône" + msgid "Relationship Line Opacity" msgstr "Opacité des lignes de relation" @@ -632,12 +866,36 @@ msgstr "Espacement supplémentaire" msgid "Custom Theme" msgstr "Thème Personnalisé" +msgid "Display Close Button" +msgstr "Afficher bouton Fermer" + +msgid "Show Thumbnail on Hover" +msgstr "Afficher la vignette au survol" + +msgid "Maximum Width" +msgstr "Largeur maximum" + msgid "Show Script Button" msgstr "Afficher le bouton script" msgid "FileSystem" msgstr "Système de fichiers" +msgid "External Programs" +msgstr "Programmes externes" + +msgid "Raster Image Editor" +msgstr "Éditeur d'images tramées" + +msgid "Vector Image Editor" +msgstr "Éditeur d'images vectorielles" + +msgid "Audio Editor" +msgstr "Éditeur audio" + +msgid "3D Model Editor" +msgstr "Éditeur de modèles 3D" + msgid "Directories" msgstr "Dossiers" @@ -668,9 +926,15 @@ msgstr "Arborescence de scène" msgid "Start Create Dialog Fully Expanded" msgstr "Lancer le dialogue de création complètement déplié" +msgid "Auto Expand to Selected" +msgstr "Étirement auto à la sélection" + msgid "Always Show Folders" msgstr "Toujours afficher les dossiers" +msgid "Textfile Extensions" +msgstr "Extensions de fichiers texte" + msgid "Property Editor" msgstr "Éditeur de Propriétés" @@ -692,12 +956,18 @@ msgstr "Caret" msgid "Caret Blink" msgstr "Clignotement du caret" +msgid "Caret Blink Interval" +msgstr "Intervalle de clignotement du caret" + msgid "Highlight Current Line" msgstr "Mettre en évidence la ligne actuelle" msgid "Highlight All Occurrences" msgstr "Mettre en évidence toutes les occurrences" +msgid "Guidelines" +msgstr "Lignes de guide" + msgid "Show Line Length Guidelines" msgstr "Montrer les guides de longueur de ligne" @@ -707,6 +977,9 @@ msgstr "Colonne douce des guides de longueur de ligne" msgid "Line Length Guideline Hard Column" msgstr "Colonne dure des guides de longueur de ligne" +msgid "Gutters" +msgstr "Gouttières" + msgid "Show Line Numbers" msgstr "Afficher les numéros de Ligne" @@ -731,12 +1004,18 @@ msgstr "Afficher la minimap" msgid "Minimap Width" msgstr "Largeur de la mini-carte" +msgid "Lines" +msgstr "Lignes" + msgid "Code Folding" msgstr "Rétrécir le code" msgid "Word Wrap" msgstr "Retour à la ligne des mots" +msgid "Whitespace" +msgstr "Espaces" + msgid "Draw Tabs" msgstr "Montrer les tabulations" @@ -746,15 +1025,30 @@ msgstr "Afficher les espaces" msgid "Line Spacing" msgstr "Espace entre les lignes" +msgid "Behavior" +msgstr "Comportement" + msgid "Navigation" msgstr "Navigation" +msgid "Move Caret on Right Click" +msgstr "Déplacer le caret au clic droit" + +msgid "Scroll Past End of File" +msgstr "Défiler au-delà de la fin du fichier" + msgid "Smooth Scrolling" msgstr "Défilement doux" msgid "V Scroll Speed" msgstr "Vitesse du défilement vertical" +msgid "Drag and Drop Selection" +msgstr "Glisser/déposer la sélection" + +msgid "Stay in Script Editor on Node Selected" +msgstr "Rester sur l’éditeur de script à la sélection d'un nœud" + msgid "Indent" msgstr "Indentation" @@ -764,9 +1058,21 @@ msgstr "Indentation automatique" msgid "Files" msgstr "Fichiers" +msgid "Trim Trailing Whitespace on Save" +msgstr "Retirer les espaces de fin de ligne à l'enregistrement" + msgid "Autosave Interval Secs" msgstr "Intervalle entre les sauvegardes automatiques (en secondes)" +msgid "Restore Scripts on Load" +msgstr "Rouvrir les scripts au chargement" + +msgid "Convert Indent on Save" +msgstr "Convertir les indentations à l'enregistrement" + +msgid "Auto Reload Scripts on External Change" +msgstr "Recharger automatiquement les scripts sur changement externe" + msgid "Script List" msgstr "Liste de scripts" @@ -812,6 +1118,12 @@ msgstr "Taille de police d'origine de l'aide" msgid "Help Title Font Size" msgstr "Taille de police du titre de l'aide" +msgid "Class Reference Examples" +msgstr "Exemples de référence de classe" + +msgid "Editors" +msgstr "Éditeurs" + msgid "Grid Map" msgstr "Grille" @@ -833,6 +1145,9 @@ msgstr "Manipulateurs 3D" msgid "Gizmo Colors" msgstr "Couleurs des manipulateurs" +msgid "Instantiated" +msgstr "Instancié" + msgid "Joint" msgstr "Jointure" @@ -977,9 +1292,15 @@ msgstr "Restreindre la fenêtre d'éditeur" msgid "Simple Panning" msgstr "Panoramique simple" +msgid "Tiles Editor" +msgstr "Éditeur de tuiles" + msgid "Display Grid" msgstr "Afficher la grille" +msgid "Polygon Editor" +msgstr "Éditeur de polygones" + msgid "Point Grab Radius" msgstr "Rayon de saisie de point" @@ -1010,6 +1331,15 @@ msgstr "Éditeurs visuels" msgid "Minimap Opacity" msgstr "Opacité de la mini-carte" +msgid "Lines Curvature" +msgstr "Courbe de lignes" + +msgid "Visual Shader" +msgstr "Visual Shader" + +msgid "Port Preview Size" +msgstr "Taille d'aperçu" + msgid "Window Placement" msgstr "Placement de la fenêtre" @@ -1037,6 +1367,9 @@ msgstr "Taille de la Police" msgid "Remote Host" msgstr "Hôte distant" +msgid "Editor TLS Certificates" +msgstr "Certificats TLS de l’éditeur" + msgid "Profiler Frame History Size" msgstr "Taille de l'historique de la trame du profileur" @@ -1175,6 +1508,9 @@ msgstr "Zoomer" msgid "Export" msgstr "Exporter" +msgid "Convert Text Resources to Binary" +msgstr "Convertir les ressources texte en binaire lors de l'exportation" + msgid "Custom Template" msgstr "Modèle Personnalisé" @@ -1229,6 +1565,9 @@ msgstr "Taille de Contour" msgid "Variation" msgstr "Variation" +msgid "Transform" +msgstr "Transformation" + msgid "Collada" msgstr "Collada" @@ -1259,15 +1598,9 @@ msgstr "Précharger" msgid "Columns" msgstr "Colonnes" -msgid "Mode" -msgstr "Mode" - msgid "Lossy Quality" msgstr "Mauvaise qualité" -msgid "BPTC LDR" -msgstr "BPTC LDR" - msgid "Mipmaps" msgstr "Mipmaps" @@ -1334,12 +1667,6 @@ msgstr "Optimiseur" msgid "Max Angular Error" msgstr "Erreur Angulaire Max" -msgid "Compression" -msgstr "Compression" - -msgid "Page Size" -msgstr "Taille de page" - msgid "Nodes" msgstr "Nœuds" @@ -1448,6 +1775,9 @@ msgstr "Utiliser le multitâche" msgid "Available URLs" msgstr "URLs disponibles" +msgid "Unset" +msgstr "Vider" + msgid "Error" msgstr "Erreur" @@ -1565,9 +1895,6 @@ msgstr "Tâches Parallèles" msgid "Thread Model" msgstr "Modèle de Parallélisme" -msgid "Audio" -msgstr "Audio" - msgid "Handheld" msgstr "Portable" @@ -1598,15 +1925,18 @@ msgstr "iOS" msgid "Hide Home Indicator" msgstr "Masquer l'indicateur d’accueil" +msgid "Input Devices" +msgstr "Périphériques d'entrée" + +msgid "Pointing" +msgstr "Pointage" + msgid "Boot Splash" msgstr "Écran de démarrage" msgid "BG Color" msgstr "Couleur d'arrière-plan" -msgid "Input Devices" -msgstr "Périphériques d'entrée" - msgid "Environment" msgstr "Environnement" @@ -1616,21 +1946,24 @@ msgstr "Couleur d'effacement par défaut" msgid "Show Image" msgstr "Afficher l'image" +msgid "Image" +msgstr "Image" + msgid "Fullsize" msgstr "Pleine taille" msgid "Use Filter" msgstr "Utiliser le filtrage" +msgid "Icon" +msgstr "Icône" + msgid "Buffering" msgstr "Mise en mémoire tampon" msgid "Agile Event Flushing" msgstr "Purge d'événement agile" -msgid "Pointing" -msgstr "Pointage" - msgid "Emulate Touch From Mouse" msgstr "Émuler le toucher tactile avec la souris" @@ -1658,12 +1991,15 @@ msgstr "Choisir un répertoire pour la solution" msgid "Main Loop Type" msgstr "Type de boucle principale" +msgid "Stretch" +msgstr "Étirement" + +msgid "Aspect" +msgstr "Aspect" + msgid "Auto Accept Quit" msgstr "Accepter automatiquement la fermeture" -msgid "GUI" -msgstr "GUI" - msgid "Fonts" msgstr "Polices" @@ -1673,6 +2009,9 @@ msgstr "Polices Dynamiques" msgid "Use Oversampling" msgstr "Utiliser le suréchantillonnage" +msgid "Textures" +msgstr "Textures" + msgid "Operation" msgstr "Opération" @@ -1856,9 +2195,6 @@ msgstr "Chemin de base" msgid "Root Nodes" msgstr "Nœuds racines" -msgid "Textures" -msgstr "Textures" - msgid "Images" msgstr "Images" @@ -2153,9 +2489,6 @@ msgstr "État IGD" msgid "Write Mode" msgstr "Mode écriture" -msgid "Limits" -msgstr "Limites" - msgid "WebRTC" msgstr "WebRTC" @@ -2210,12 +2543,6 @@ msgstr "Avant-Plan Adaptatif 432 X 432" msgid "Adaptive Background 432 X 432" msgstr "Arrière-Plan Adaptatif 432 X 432" -msgid "Custom Build" -msgstr "Construction personnalisé" - -msgid "Use Custom Build" -msgstr "Utiliser une construction personnalisé" - msgid "Export Format" msgstr "Format d'exportation" @@ -2483,9 +2810,6 @@ msgstr "Architecture" msgid "macOS" msgstr "macOS" -msgid "Icon" -msgstr "Icône" - msgid "Copyright" msgstr "Copyright" @@ -2621,9 +2945,6 @@ msgstr "Afficher le nom" msgid "Short Name" msgstr "Nom Abrégé" -msgid "Description" -msgstr "Description" - msgid "Publisher" msgstr "Publicateur" @@ -2783,18 +3104,12 @@ msgstr "Description de fichier" msgid "Trademarks" msgstr "Marques Déposées" -msgid "Frames" -msgstr "Trames" - msgid "Frame" msgstr "Trame" msgid "Speed Scale" msgstr "Échelle de vitesse" -msgid "Playing" -msgstr "En train de jouer" - msgid "Centered" msgstr "Centré" @@ -2840,6 +3155,9 @@ msgstr "Volume (dB)" msgid "Pitch Scale" msgstr "Échelle de pitch" +msgid "Playing" +msgstr "En train de jouer" + msgid "Autoplay" msgstr "Lecture automatique" @@ -3209,9 +3527,6 @@ msgstr "Coût de déplacement" msgid "Estimate Radius" msgstr "Estimer le rayon" -msgid "Transform" -msgstr "Transformation" - msgid "Rotation Degrees" msgstr "Degrés de Rotation" @@ -3494,9 +3809,6 @@ msgstr "Désactiver axe Z" msgid "Flatness" msgstr "Platitude" -msgid "Extents" -msgstr "Étendues" - msgid "Albedo" msgstr "Albédo" @@ -4055,9 +4367,6 @@ msgstr "Retard aléatoire" msgid "Xfade Time" msgstr "Durée du fondu croisé" -msgid "Reset" -msgstr "Réinitialiser" - msgid "Active" msgstr "Actif" @@ -4067,8 +4376,8 @@ msgstr "Ajouter une quantité" msgid "Blend Amount" msgstr "Quantité de mélange" -msgid "Seek Position" -msgstr "Chercher la position" +msgid "Reset" +msgstr "Réinitialiser" msgid "Switch" msgstr "Switch" @@ -4391,9 +4700,6 @@ msgstr "Alentours" msgid "Relative Index" msgstr "Position relative" -msgid "Fit Content Height" -msgstr "Ajuster à la hauteur du conteneur" - msgid "Scroll Active" msgstr "Défilement actif" @@ -4436,9 +4742,6 @@ msgstr "Réduit" msgid "Dragger Visibility" msgstr "Visibilité du Tireur" -msgid "Stretch" -msgstr "Étirement" - msgid "Stretch Shrink" msgstr "Etirer-Réduire" @@ -4457,6 +4760,9 @@ msgstr "Onglets Visibles" msgid "Syntax Highlighter" msgstr "Coloration syntaxique" +msgid "Fit Content Height" +msgstr "Ajuster à la hauteur du conteneur" + msgid "Draw" msgstr "Dessiner" @@ -4628,9 +4934,6 @@ msgstr "Anticrénelage" msgid "Use Debanding" msgstr "Utiliser le Debanding" -msgid "Occlusion Culling" -msgstr "Elagage de l'occlusion" - msgid "Atlas Size" msgstr "Taille de l'Atlas" @@ -4712,9 +5015,6 @@ msgstr "Taille Minimale" msgid "Max Size" msgstr "Taille maximale" -msgid "Aspect" -msgstr "Aspect" - msgid "Layer Names" msgstr "Noms des couches" @@ -5612,9 +5912,6 @@ msgstr "Début d'Expansion" msgid "Grow End" msgstr "Fin d'Expansion" -msgid "Image" -msgstr "Image" - msgid "Load Path" msgstr "Charger chemin" @@ -5639,6 +5936,9 @@ msgstr "De" msgid "To" msgstr "À" +msgid "Frames" +msgstr "Trames" + msgid "Current Frame" msgstr "Trame actuelle" @@ -5696,18 +5996,6 @@ msgstr "Carte de navigation" msgid "Direct Space State" msgstr "Etat de l'espace direct" -msgid "Default Gravity" -msgstr "Gravité par Défaut" - -msgid "Default Gravity Vector" -msgstr "Vecteur de gravité par défaut" - -msgid "Default Cell Size" -msgstr "Taille de cellule par défaut" - -msgid "Default Edge Connection Margin" -msgstr "Marge de connexion des bords par défaut" - msgid "Fallback Environment" msgstr "Environnement de repli" @@ -5843,20 +6131,17 @@ msgstr "Compensation de retard vidéo (ms)" msgid "Bus Count" msgstr "Nombre de ports" -msgid "Capture Device" -msgstr "Périphérique de capture" - msgid "Feed" msgstr "Flux" msgid "Is Active" msgstr "Est active" -msgid "Sleep Threshold Linear" -msgstr "Seuil linéaire de veille" +msgid "Default Cell Size" +msgstr "Taille de cellule par défaut" -msgid "Sleep Threshold Angular" -msgstr "Seuil angulaire de veille" +msgid "Default Edge Connection Margin" +msgstr "Marge de connexion des bords par défaut" msgid "Inverse Mass" msgstr "Masse inverse" @@ -5885,6 +6170,18 @@ msgstr "Collisions avec les zones" msgid "Shape RID" msgstr "RID de forme" +msgid "Default Gravity" +msgstr "Gravité par Défaut" + +msgid "Default Gravity Vector" +msgstr "Vecteur de gravité par défaut" + +msgid "Sleep Threshold Linear" +msgstr "Seuil linéaire de veille" + +msgid "Sleep Threshold Angular" +msgstr "Seuil angulaire de veille" + msgid "Physics Engine" msgstr "Moteur physique" @@ -5918,18 +6215,6 @@ msgstr "Boucle de rendu activée" msgid "VRAM Compression" msgstr "Compression VRAM" -msgid "Import BPTC" -msgstr "Importer BPTC" - -msgid "Import S3TC" -msgstr "Importer S3TC" - -msgid "Import ETC" -msgstr "Importer ETC" - -msgid "Import ETC2" -msgstr "Importer ETC2" - msgid "Lossless Compression" msgstr "Compression sans perte" diff --git a/editor/translations/properties/it.po b/editor/translations/properties/it.po index 07a23b2ceb..b68a503386 100644 --- a/editor/translations/properties/it.po +++ b/editor/translations/properties/it.po @@ -82,16 +82,16 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-15 13:34+0000\n" -"Last-Translator: Damiano Guida <damiano.guida22@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 00:55+0000\n" +"Last-Translator: gianmarco malandra <giamminho12@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" -"godot/it/>\n" +"godot-properties/it/>\n" "Language: it\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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Application" msgstr "Applicazione" @@ -102,9 +102,15 @@ msgstr "Configurazione" msgid "Name" msgstr "Nome" +msgid "Description" +msgstr "Descrizione" + msgid "Run" msgstr "Esegui" +msgid "Main Scene" +msgstr "Scena Principale" + msgid "Disable stdout" msgstr "Disabilita stdout" @@ -124,7 +130,7 @@ msgid "Project Settings Override" msgstr "Sovrascrittura Impostazioni del Progetto" msgid "Display" -msgstr "Display" +msgstr "Schermo" msgid "Window" msgstr "Finestra" @@ -132,6 +138,9 @@ msgstr "Finestra" msgid "Size" msgstr "Dimensione" +msgid "Mode" +msgstr "Modalità" + msgid "Resizable" msgstr "Ridimensionabile" @@ -144,6 +153,9 @@ msgstr "Risparmio Energia" msgid "Keep Screen On" msgstr "Mantieni lo Schermo Acceso" +msgid "Audio" +msgstr "Audio" + msgid "Editor" msgstr "Editor" @@ -165,6 +177,9 @@ msgstr "Debug" msgid "Settings" msgstr "Impostazioni" +msgid "Compression" +msgstr "Compressione" + msgid "Crash Handler" msgstr "Gestore di Crash" @@ -174,6 +189,12 @@ msgstr "Messaggio" msgid "Rendering" msgstr "Renderer" +msgid "Limits" +msgstr "Limiti" + +msgid "GUI" +msgstr "Interfaccia Grafica" + msgid "Low Processor Usage Mode" msgstr "Modalità Processore a Basso Consumo" @@ -273,6 +294,12 @@ msgstr "Valore Controller" msgid "Big Endian" msgstr "Big Endian" +msgid "Network" +msgstr "Reti" + +msgid "Page Size" +msgstr "Dimensione Pagina" + msgid "Blocking Mode Enabled" msgstr "Modalità Blocco Attivata" @@ -309,15 +336,15 @@ msgstr "Percorso" msgid "Data Array" msgstr "Array di Dati" -msgid "Blocking Handshake" -msgstr "Blocco Handshake" - msgid "Max Pending Connections" msgstr "Quantità Massima Connessioni in Attesa" msgid "Offset" msgstr "Scostamento" +msgid "Cell Size" +msgstr "Dimensione Cella" + msgid "Seed" msgstr "Seme" @@ -375,15 +402,6 @@ msgstr "Animazione" msgid "Easing" msgstr "Allentamento" -msgid "Interface" -msgstr "Interfaccia Utente" - -msgid "Editors" -msgstr "Editori" - -msgid "Network" -msgstr "Reti" - msgid "Remote Port" msgstr "Porta Remota" @@ -453,8 +471,8 @@ msgstr "Selezionato" msgid "Keying" msgstr "Tasti" -msgid "Main Scene" -msgstr "Scena Principale" +msgid "Interface" +msgstr "Interfaccia Utente" msgid "Show Update Spinner" msgstr "Mostra Rotella di Caricamento dell'Update" @@ -753,6 +771,9 @@ msgstr "Dimensione dei caratteri della sezione d'assistenza codice sorgente" msgid "Help Title Font Size" msgstr "Dimensione Carattere Titolo della Guida" +msgid "Editors" +msgstr "Editori" + msgid "Grid Map" msgstr "Mappa di Griglia" @@ -1152,6 +1173,9 @@ msgstr "Password" msgid "Compress" msgstr "Comprimi" +msgid "Transform" +msgstr "Trasformazione" + msgid "Collada" msgstr "Collada" @@ -1179,9 +1203,6 @@ msgstr "Delimitatore" msgid "Preload" msgstr "Pre-carica" -msgid "Mode" -msgstr "Modalità" - msgid "Lossy Quality" msgstr "Qualità Lossy" @@ -1242,12 +1263,6 @@ msgstr "Ottimizzatore" msgid "Max Angular Error" msgstr "Errore Angolare Max" -msgid "Compression" -msgstr "Compressione" - -msgid "Page Size" -msgstr "Dimensione Pagina" - msgid "Nodes" msgstr "Nodi" @@ -1353,6 +1368,9 @@ msgstr "Utilizza Threads" msgid "Available URLs" msgstr "URLs Disponibili" +msgid "Unset" +msgstr "Non Impostato" + msgid "Error" msgstr "Errore" @@ -1464,9 +1482,6 @@ msgstr "Threads" msgid "Thread Model" msgstr "Modello Thread" -msgid "Audio" -msgstr "Audio" - msgid "Handheld" msgstr "Maneggiato" @@ -1497,15 +1512,18 @@ msgstr "iOS" msgid "Hide Home Indicator" msgstr "Nascondi Indicatore Home" +msgid "Input Devices" +msgstr "Dispositivi Input" + +msgid "Pointing" +msgstr "Puntamento" + msgid "Boot Splash" msgstr "Sfondo Di Avvio" msgid "BG Color" msgstr "Colore Sfondo" -msgid "Input Devices" -msgstr "Dispositivi Input" - msgid "Environment" msgstr "Ambiente" @@ -1515,21 +1533,24 @@ msgstr "Colore Di Sfondo Di Default" msgid "Show Image" msgstr "Mostra Immagine" +msgid "Image" +msgstr "Immagine" + msgid "Fullsize" msgstr "Dimensione Massima" msgid "Use Filter" msgstr "Usa Filtro" +msgid "Icon" +msgstr "Icona" + msgid "Buffering" msgstr "Buffering" msgid "Agile Event Flushing" msgstr "Svuotamento degli eventi usando l'algoritmo Agile" -msgid "Pointing" -msgstr "Puntamento" - msgid "Emulate Touch From Mouse" msgstr "Emula Tocco Da Mouse" @@ -1554,12 +1575,15 @@ msgstr "Cartella di Soluzione" msgid "Main Loop Type" msgstr "Tipo di Loop Principale" +msgid "Stretch" +msgstr "Allarga" + +msgid "Aspect" +msgstr "Aspetto" + msgid "Auto Accept Quit" msgstr "Auto-Accetta Uscita" -msgid "GUI" -msgstr "Interfaccia Grafica" - msgid "Fonts" msgstr "Font" @@ -1569,6 +1593,9 @@ msgstr "Font Dinamici" msgid "Use Oversampling" msgstr "Usa Oversampling" +msgid "Textures" +msgstr "Textures" + msgid "Operation" msgstr "Operazione" @@ -1737,9 +1764,6 @@ msgstr "Nome Scena" msgid "Root Nodes" msgstr "Nodi Radice" -msgid "Textures" -msgstr "Textures" - msgid "Images" msgstr "Immagini" @@ -2013,9 +2037,6 @@ msgstr "Indirizzo locale IGD" msgid "IGD Status" msgstr "Stato IGD" -msgid "Limits" -msgstr "Limiti" - msgid "Handshake Timeout" msgstr "Timeout Handshake" @@ -2058,12 +2079,6 @@ msgstr "Primo Piano Adattivo 432 X 432" msgid "Adaptive Background 432 X 432" msgstr "Sfondo Adattivo 432 X 432" -msgid "Custom Build" -msgstr "Build Personalizzata" - -msgid "Use Custom Build" -msgstr "Utilizza Build Personalizzata" - msgid "Export Format" msgstr "Formato Esportazione" @@ -2319,9 +2334,6 @@ msgstr "Architettura" msgid "macOS" msgstr "macOS" -msgid "Icon" -msgstr "Icona" - msgid "Copyright" msgstr "Copyright" @@ -2439,9 +2451,6 @@ msgstr "UWP" msgid "Short Name" msgstr "Nome Corto" -msgid "Description" -msgstr "Descrizione" - msgid "Publisher" msgstr "Publisher" @@ -2559,9 +2568,6 @@ msgstr "Multimesh" msgid "Navigation Layers" msgstr "Livelli Navigazione" -msgid "Transform" -msgstr "Trasformazione" - msgid "Rotation Degrees" msgstr "Rotazione in Gradi" @@ -2784,9 +2790,6 @@ msgstr "Passo" msgid "Page" msgstr "Pagina" -msgid "Stretch" -msgstr "Allarga" - msgid "Current Tab" msgstr "Scheda Attuale" @@ -2841,9 +2844,6 @@ msgstr "Schermo Attuale" msgid "Min Size" msgstr "Dimensione Min" -msgid "Aspect" -msgstr "Aspetto" - msgid "Format" msgstr "Formato" @@ -2874,6 +2874,12 @@ msgstr "Cursore" msgid "Node" msgstr "Nodo" +msgid "Sky" +msgstr "Cielo" + +msgid "Ambient Light" +msgstr "Luce Ambientale" + msgid "Source" msgstr "Sorgente" @@ -2946,9 +2952,6 @@ msgstr "In Basso A Destra" msgid "Bottom Left" msgstr "In Basso A Sinistra" -msgid "Image" -msgstr "Immagine" - msgid "Atlas" msgstr "Atlas" diff --git a/editor/translations/properties/ja.po b/editor/translations/properties/ja.po index cb921b2f8a..60b30d9404 100644 --- a/editor/translations/properties/ja.po +++ b/editor/translations/properties/ja.po @@ -52,16 +52,16 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-20 10:19+0000\n" -"Last-Translator: T K <kidaaam@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 00:55+0000\n" +"Last-Translator: Saitos <purifyzombie@gmail.com>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" -"godot/ja/>\n" +"godot-properties/ja/>\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.15.1\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Application" msgstr "アプリケーション" @@ -72,9 +72,15 @@ msgstr "構成" msgid "Name" msgstr "名前" +msgid "Description" +msgstr "説明" + msgid "Run" msgstr "実行" +msgid "Main Scene" +msgstr "メインシーン" + msgid "Disable stdout" msgstr "stdoutを無効化" @@ -102,6 +108,9 @@ msgstr "ウィンドウ" msgid "Size" msgstr "サイズ" +msgid "Mode" +msgstr "モード" + msgid "Resizable" msgstr "サイズを変更可能" @@ -114,6 +123,9 @@ msgstr "省エネルギー" msgid "Keep Screen On" msgstr "画面を常に点灯" +msgid "Audio" +msgstr "オーディオ" + msgid "Editor" msgstr "エディター" @@ -135,6 +147,9 @@ msgstr "デバッグ" msgid "Settings" msgstr "設定" +msgid "Compression" +msgstr "圧縮" + msgid "Crash Handler" msgstr "クラッシュハンドラー" @@ -144,6 +159,24 @@ msgstr "メッセージ" msgid "Rendering" msgstr "レンダリング" +msgid "Occlusion Culling" +msgstr "オクルージョンカリング" + +msgid "Limits" +msgstr "制限" + +msgid "Force Right to Left Layout Direction" +msgstr "レイアウト方向を右から左に強制" + +msgid "GUI" +msgstr "GUI" + +msgid "Vulkan" +msgstr "Vulkan" + +msgid "Max Descriptors per Pool" +msgstr "プールあたりの最大記述子数" + msgid "Low Processor Usage Mode" msgstr "プロセッサー低使用率モード" @@ -168,9 +201,15 @@ msgstr "蓄積された入力を使用" msgid "Device" msgstr "デバイス" +msgid "Command or Control Autoremap" +msgstr "コマンドまたはコントロールの自動再マップ" + msgid "Pressed" msgstr "押下" +msgid "Keycode" +msgstr "キーコード" + msgid "Unicode" msgstr "Unicode" @@ -192,6 +231,9 @@ msgstr "係数" msgid "Button Index" msgstr "ボタンのインデックス" +msgid "Double Click" +msgstr "ダブルクリック" + msgid "Tilt" msgstr "傾き" @@ -243,6 +285,12 @@ msgstr "コントローラー値" msgid "Big Endian" msgstr "ビッグエンディアン" +msgid "Network" +msgstr "ネットワーク" + +msgid "Page Size" +msgstr "ページサイズ" + msgid "Blocking Mode Enabled" msgstr "ブロッキングモードを有効化" @@ -279,9 +327,6 @@ msgstr "パス" msgid "Data Array" msgstr "データ配列" -msgid "Blocking Handshake" -msgstr "ハンドシェイクをブロッキング処理にする" - msgid "Max Pending Connections" msgstr "保留中の接続数の上限" @@ -300,6 +345,18 @@ msgstr "状態" msgid "Source Code" msgstr "ソースコード" +msgid "TLS" +msgstr "TLS" + +msgid "Worker Pool" +msgstr "ワーカープール" + +msgid "Use System Threads for Low Priority Tasks" +msgstr "優先度の低いタスクにシステムスレッドを使用" + +msgid "Low Priority Thread Ratio" +msgstr "優先度の低いスレッドの比率" + msgid "Locale" msgstr "ロケール" @@ -309,6 +366,9 @@ msgstr "テスト" msgid "Fallback" msgstr "フォールバック" +msgid "Fake BiDi" +msgstr "偽のBiDi" + msgid "Override" msgstr "上書き" @@ -345,15 +405,6 @@ msgstr "アニメーション" msgid "Easing" msgstr "イージング" -msgid "Interface" -msgstr "インターフェース" - -msgid "Editors" -msgstr "エディター" - -msgid "Network" -msgstr "ネットワーク" - msgid "Remote Port" msgstr "リモートポート" @@ -423,8 +474,8 @@ msgstr "チェック済み" msgid "Keying" msgstr "キーイング" -msgid "Main Scene" -msgstr "メインシーン" +msgid "Interface" +msgstr "インターフェース" msgid "Show Update Spinner" msgstr "アップデートスピナーを表示" @@ -486,6 +537,12 @@ msgstr "エディターの言語" msgid "Display Scale" msgstr "表示スケール" +msgid "Enable Pseudolocalization" +msgstr "擬似ローカライズの有効化" + +msgid "Use Embedded Menu" +msgstr "埋め込みメニューを使用" + msgid "Custom Display Scale" msgstr "カスタムの表示スケール" @@ -495,9 +552,18 @@ msgstr "メインのフォントサイズ" msgid "Code Font Size" msgstr "コードのフォントサイズ" +msgid "Code Font Contextual Ligatures" +msgstr "コードフォントコンテキスト合字" + +msgid "Code Font Custom OpenType Features" +msgstr "コードフォントカスタムOpenType機能" + msgid "Font Hinting" msgstr "フォントのヒンティング" +msgid "Font Subpixel Positioning" +msgstr "フォントサブピクセルの配置" + msgid "Main Font" msgstr "メインのフォント" @@ -522,6 +588,15 @@ msgstr "自動的にスクリーンショットを開く" msgid "Mouse Extra Buttons Navigate History" msgstr "マウスの追加ボタンで履歴を表示" +msgid "Accept Dialog Cancel OK Buttons" +msgstr "確認ダイアログキャンセルOKボタン" + +msgid "Show Internal Errors in Toast Notifications" +msgstr "Toast通知に内部エラーを表示" + +msgid "Show Low Level OpenType Features" +msgstr "低レベルのOpenType機能を表示" + msgid "Theme" msgstr "テーマ" @@ -537,6 +612,9 @@ msgstr "アクセントカラー" msgid "Contrast" msgstr "コントラスト" +msgid "Draw Extra Borders" +msgstr "エクストラボーダーを描画" + msgid "Relationship Line Opacity" msgstr "関係線の不透明度" @@ -555,6 +633,9 @@ msgstr "スクリプトボタンを表示" msgid "FileSystem" msgstr "ファイルシステム" +msgid "Vector Image Editor" +msgstr "ベクター画像エディタ" + msgid "Directories" msgstr "ディレクトリ" @@ -603,6 +684,9 @@ msgstr "カラーテーマ" msgid "Appearance" msgstr "外観" +msgid "Caret" +msgstr "キャレット" + msgid "Caret Blink" msgstr "キャレットの点滅" @@ -612,6 +696,9 @@ msgstr "現在の行をハイライトする" msgid "Highlight All Occurrences" msgstr "すべての出現箇所をハイライトする" +msgid "Guidelines" +msgstr "ガイドライン" + msgid "Show Line Length Guidelines" msgstr "行の長さのガイド線を表示" @@ -636,6 +723,9 @@ msgstr "ブックマークバーを表示" msgid "Show Info Gutter" msgstr "情報バーを表示" +msgid "Minimap" +msgstr "ミニマップ" + msgid "Show Minimap" msgstr "ミニマップを表示" @@ -648,6 +738,9 @@ msgstr "コードの折りたたみ" msgid "Word Wrap" msgstr "ワードラップ" +msgid "Whitespace" +msgstr "空白" + msgid "Draw Tabs" msgstr "タブを描画" @@ -657,9 +750,15 @@ msgstr "スペースを描画" msgid "Line Spacing" msgstr "行間隔" +msgid "Behavior" +msgstr "ビヘイビア" + msgid "Navigation" msgstr "ナビゲーション" +msgid "Move Caret on Right Click" +msgstr "右クリックでキャレットを移動" + msgid "Smooth Scrolling" msgstr "スムーズスクロール" @@ -723,6 +822,9 @@ msgstr "ヘルプのソースのフォントサイズ" msgid "Help Title Font Size" msgstr "ヘルプのタイトルのフォントサイズ" +msgid "Editors" +msgstr "エディター" + msgid "Grid Map" msgstr "グリッドマップ" @@ -882,6 +984,12 @@ msgstr "ビューポートのボーダーの色" msgid "Constrain Editor View" msgstr "エディタビューを束縛する" +msgid "Sub Editors Panning Scheme" +msgstr "サブエディターのパンニングスキーム" + +msgid "Animation Editors Panning Scheme" +msgstr "アニメーションエディタのパンニングスキーム" + msgid "Simple Panning" msgstr "簡易パンニング操作" @@ -1122,9 +1230,30 @@ msgstr "ファイルサーバー" msgid "Password" msgstr "パスワード" +msgid "Multichannel Signed Distance Field" +msgstr "マルチチャンネル符号付き距離フィールド" + +msgid "MSDF Pixel Range" +msgstr "MSDF ピクセル範囲" + +msgid "Hinting" +msgstr "ヒンティング" + +msgid "Subpixel Positioning" +msgstr "サブピクセルの配置" + +msgid "Oversampling" +msgstr "オーバーサンプリング" + msgid "Compress" msgstr "圧縮" +msgid "Language" +msgstr "言語:" + +msgid "Transform" +msgstr "トランスフォーム" + msgid "Collada" msgstr "Collada" @@ -1143,21 +1272,18 @@ msgstr "フィルター" msgid "Threshold" msgstr "しきい値" +msgid "Except Bone Transform" +msgstr "ボーントランスフォームを除外" + msgid "Create From" msgstr "作成元" msgid "Delimiter" msgstr "区切り文字" -msgid "Mode" -msgstr "モード" - msgid "Lossy Quality" msgstr "非可逆品質" -msgid "BPTC LDR" -msgstr "BPTC LDR" - msgid "Mipmaps" msgstr "ミップマップ" @@ -1218,12 +1344,6 @@ msgstr "オプティマイザー(Optimizer)" msgid "Max Angular Error" msgstr "最大角度エラー" -msgid "Compression" -msgstr "圧縮" - -msgid "Page Size" -msgstr "ページサイズ" - msgid "Nodes" msgstr "ノード" @@ -1329,6 +1449,9 @@ msgstr "スレッドを使用" msgid "Available URLs" msgstr "有効なURL" +msgid "Unset" +msgstr "未設定" + msgid "Error" msgstr "エラー" @@ -1428,9 +1551,6 @@ msgstr "スレッド" msgid "Thread Model" msgstr "スレッドモデル" -msgid "Audio" -msgstr "オーディオ" - msgid "Handheld" msgstr "ポータブル" @@ -1461,15 +1581,21 @@ msgstr "iOS" msgid "Hide Home Indicator" msgstr "ホームインジケーターを隠す" +msgid "Input Devices" +msgstr "入力デバイス" + +msgid "Pointing" +msgstr "ポインティング" + +msgid "XR" +msgstr "XR" + msgid "Boot Splash" msgstr "ブートスプラッシュ" msgid "BG Color" msgstr "背景色" -msgid "Input Devices" -msgstr "入力デバイス" - msgid "Environment" msgstr "環境" @@ -1479,21 +1605,24 @@ msgstr "デフォルトのクリアー色" msgid "Show Image" msgstr "画像を表示" +msgid "Image" +msgstr "画像" + msgid "Fullsize" msgstr "フルサイズ" msgid "Use Filter" msgstr "フィルターを使用" +msgid "Icon" +msgstr "アイコン" + msgid "Buffering" msgstr "バッファリング" msgid "Agile Event Flushing" msgstr "即座にイベントフラッシュ" -msgid "Pointing" -msgstr "ポインティング" - msgid "Emulate Touch From Mouse" msgstr "マウスでタッチ操作をエミュレート" @@ -1521,12 +1650,15 @@ msgstr "ソリューションのディレクトリ" msgid "Main Loop Type" msgstr "メインループのタイプ" +msgid "Stretch" +msgstr "ストレッチ" + +msgid "Aspect" +msgstr "アスペクト" + msgid "Auto Accept Quit" msgstr "プログラム終了を自動的に受け入れる" -msgid "GUI" -msgstr "GUI" - msgid "Fonts" msgstr "フォント" @@ -1536,6 +1668,9 @@ msgstr "ダイナミックフォント" msgid "Use Oversampling" msgstr "オーバーサンプリングを使用" +msgid "Textures" +msgstr "テクスチャ" + msgid "Operation" msgstr "操作" @@ -1611,6 +1746,9 @@ msgstr "強度" msgid "Range" msgstr "範囲" +msgid "Specular Factor" +msgstr "鏡面反射係数" + msgid "Json" msgstr "JSON" @@ -1632,9 +1770,6 @@ msgstr "マテリアル" msgid "Root Nodes" msgstr "ルートノード" -msgid "Textures" -msgstr "テクスチャ" - msgid "Images" msgstr "画像" @@ -1791,9 +1926,6 @@ msgstr "文字列" msgid "Write Mode" msgstr "書き込みモード" -msgid "Limits" -msgstr "制限" - msgid "WebRTC" msgstr "WebRTC" @@ -1944,9 +2076,6 @@ msgstr "アーキテクチャ" msgid "macOS" msgstr "macOS" -msgid "Icon" -msgstr "アイコン" - msgid "Codesign" msgstr "コード署名" @@ -1974,9 +2103,6 @@ msgstr "表示名" msgid "Short Name" msgstr "略称" -msgid "Description" -msgstr "説明" - msgid "Publisher" msgstr "パブリッシャー" @@ -2055,6 +2181,9 @@ msgstr "HTTPホスト" msgid "HTTP Port" msgstr "HTTPポート" +msgid "Variant" +msgstr "バリアント" + msgid "VRAM Texture Compression" msgstr "VRAMテクスチャ圧縮" @@ -2100,18 +2229,12 @@ msgstr "ファイルの説明" msgid "Trademarks" msgstr "商標" -msgid "Frames" -msgstr "フレーム" - msgid "Frame" msgstr "フレーム" msgid "Speed Scale" msgstr "スピードスケール" -msgid "Playing" -msgstr "実行中" - msgid "Centered" msgstr "中央揃え" @@ -2154,6 +2277,9 @@ msgstr "ボリューム dB" msgid "Pitch Scale" msgstr "ピッチスケール" +msgid "Playing" +msgstr "実行中" + msgid "Autoplay" msgstr "自動再生" @@ -2310,8 +2436,11 @@ msgstr "ボーダー" msgid "Round Precision" msgstr "丸め精度" -msgid "Transform" -msgstr "トランスフォーム" +msgid "Rotation Degrees" +msgstr "回転角度" + +msgid "Global Rotation Degrees" +msgstr "グローバル回転角度" msgid "Ignore Camera Zoom" msgstr "カメラのズームを無視" @@ -2454,6 +2583,9 @@ msgstr "ボーン" msgid "Target" msgstr "ターゲット" +msgid "Simulation Precision" +msgstr "シミュレーション精度" + msgid "Total Mass" msgstr "総質量" @@ -2463,6 +2595,9 @@ msgstr "圧力係数" msgid "Damping Coefficient" msgstr "減衰係数" +msgid "Wheel" +msgstr "ホイール" + msgid "Travel" msgstr "トラベル" @@ -2481,6 +2616,9 @@ msgstr "終り" msgid "Sync" msgstr "同期" +msgid "Request" +msgstr "リクエスト" + msgid "Reset" msgstr "リセット" @@ -2505,12 +2643,18 @@ msgstr "ボタングループ" msgid "Localization" msgstr "ローカライズ" +msgid "Focus" +msgstr "フォーカス" + msgid "Next" msgstr "次" msgid "Previous" msgstr "前" +msgid "Default Cursor Shape" +msgstr "デフォルトのカーソル形状" + msgid "Filters" msgstr "フィルター" @@ -2538,8 +2682,11 @@ msgstr "ステップ" msgid "Page" msgstr "ページ" -msgid "Stretch" -msgstr "ストレッチ" +msgid "Progress Bar Delay" +msgstr "プログレスバーのディレイ" + +msgid "Drag to Rearrange Enabled" +msgstr "ドラッグして再配置可能" msgid "Syntax Highlighter" msgstr "シンタックスハイライト" @@ -2571,8 +2718,8 @@ msgstr "転送チャンネル" msgid "Current Scene" msgstr "現在のシーン" -msgid "Occlusion Culling" -msgstr "オクルージョンカリング" +msgid "Screen Space AA" +msgstr "スクリーンスペースAA" msgid "Wait Time" msgstr "待機時間" @@ -2592,9 +2739,6 @@ msgstr "入力無効化" msgid "Current Screen" msgstr "現在の画面" -msgid "Aspect" -msgstr "アスペクト" - msgid "2D Physics" msgstr "2D物理" @@ -2643,6 +2787,9 @@ msgstr "分離" msgid "Cursor" msgstr "カーソル" +msgid "Screen Picker" +msgstr "スクリーンピッカー" + msgid "Node" msgstr "ノード" @@ -2664,6 +2811,9 @@ msgstr "ブルーム" msgid "Fog" msgstr "フォグ" +msgid "Color Correction" +msgstr "色補正" + msgid "Features" msgstr "機能" @@ -2697,6 +2847,15 @@ msgstr "アイテム" msgid "Preview" msgstr "プレビュー" +msgid "Transform Format" +msgstr "変換形式" + +msgid "Transform Array" +msgstr "Transformの配列" + +msgid "Parsed Geometry Type" +msgstr "解析されたジオメトリ型" + msgid "B" msgstr "B" @@ -2724,12 +2883,12 @@ msgstr "右下" msgid "Bottom Left" msgstr "左下" -msgid "Image" -msgstr "画像" - msgid "Use HDR" msgstr "HDRを使用" +msgid "Frames" +msgstr "フレーム" + msgid "Transpose" msgstr "行列(縦横)入れ替え" @@ -2739,6 +2898,9 @@ msgstr "コンスタント" msgid "Function" msgstr "関数" +msgid "Degrees Mode" +msgstr "角度モード" + msgid "Pan" msgstr "パン" @@ -2769,6 +2931,9 @@ msgstr "FFTサイズ" msgid "High-pass" msgstr "ハイパス" +msgid "Time Pullout (ms)" +msgstr "タイムプルアウト(ミリ秒)" + msgid "Surround" msgstr "サラウンド" @@ -2790,24 +2955,15 @@ msgstr "フラグメント" msgid "Unshaded" msgstr "シェーディングなしで" +msgid "Ensure Correct Normals" +msgstr "正しい法線を確保" + msgid "Vertex Lighting" msgstr "頂点ライティング" msgid "VRAM Compression" msgstr "VRAM圧縮" -msgid "Import BPTC" -msgstr "BPTCをインポート" - -msgid "Import S3TC" -msgstr "S3TCをインポート" - -msgid "Import ETC" -msgstr "ETCをインポート" - -msgid "Import ETC2" -msgstr "ETC2をインポート" - msgid "Lossless Compression" msgstr "ロスレス圧縮" diff --git a/editor/translations/properties/ko.po b/editor/translations/properties/ko.po index de9268d577..9118036e30 100644 --- a/editor/translations/properties/ko.po +++ b/editor/translations/properties/ko.po @@ -47,16 +47,16 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-20 10:19+0000\n" -"Last-Translator: 오지훈 <jule1130@naver.com>\n" +"PO-Revision-Date: 2023-02-09 15:26+0000\n" +"Last-Translator: 이정희 <daemul72@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" -"godot/ko/>\n" +"godot-properties/ko/>\n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.15.1\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Application" msgstr "어플리케이션" @@ -67,9 +67,15 @@ msgstr "구성" msgid "Name" msgstr "이름" +msgid "Description" +msgstr "설명" + msgid "Run" msgstr "실행" +msgid "Main Scene" +msgstr "메인 씬" + msgid "Disable stdout" msgstr "표준 출력 비활성화" @@ -97,6 +103,9 @@ msgstr "창" msgid "Size" msgstr "크기" +msgid "Mode" +msgstr "모드" + msgid "Resizable" msgstr "크기 조절 가능한" @@ -109,6 +118,9 @@ msgstr "에너지 절약" msgid "Keep Screen On" msgstr "화면 항상 활성화" +msgid "Audio" +msgstr "오디오" + msgid "Editor" msgstr "에디터" @@ -130,6 +142,9 @@ msgstr "디버그" msgid "Settings" msgstr "설정" +msgid "Compression" +msgstr "압축" + msgid "Crash Handler" msgstr "충돌 처리기" @@ -139,6 +154,12 @@ msgstr "메시지" msgid "Rendering" msgstr "렌더링" +msgid "Limits" +msgstr "제한" + +msgid "GUI" +msgstr "GUI" + msgid "Low Processor Usage Mode" msgstr "저사양 모드" @@ -238,6 +259,12 @@ msgstr "컨트롤러 값" msgid "Big Endian" msgstr "빅 엔디안" +msgid "Network" +msgstr "네트워크" + +msgid "Page Size" +msgstr "페이지 크기" + msgid "Blocking Mode Enabled" msgstr "Blocking 모드 활성화" @@ -274,9 +301,6 @@ msgstr "경로" msgid "Data Array" msgstr "데이터 배열" -msgid "Blocking Handshake" -msgstr "Handshake 차단" - msgid "Max Pending Connections" msgstr "최대 대기 중인 연결 수" @@ -343,15 +367,6 @@ msgstr "애니메이션" msgid "Easing" msgstr "속도 완화" -msgid "Interface" -msgstr "인터페이스" - -msgid "Editors" -msgstr "에디터" - -msgid "Network" -msgstr "네트워크" - msgid "Remote Port" msgstr "원격 포트" @@ -421,8 +436,8 @@ msgstr "확인됨" msgid "Keying" msgstr "키 값 생성" -msgid "Main Scene" -msgstr "메인 씬" +msgid "Interface" +msgstr "인터페이스" msgid "Show Update Spinner" msgstr "업데이트 스피너 표시" @@ -724,6 +739,9 @@ msgstr "소스 폰트 크기 도우미" msgid "Help Title Font Size" msgstr "제목 폰트 크기 도우미" +msgid "Editors" +msgstr "에디터" + msgid "Grid Map" msgstr "그리드맵" @@ -1126,6 +1144,9 @@ msgstr "비밀번호" msgid "Compress" msgstr "컴프레스" +msgid "Transform" +msgstr "변형" + msgid "Collada" msgstr "COLLADA" @@ -1150,15 +1171,9 @@ msgstr "다음에서 만들기" msgid "Delimiter" msgstr "디리미터" -msgid "Mode" -msgstr "모드" - msgid "Lossy Quality" msgstr "손실 품질" -msgid "BPTC LDR" -msgstr "BPTC LDR" - msgid "Mipmaps" msgstr "밉맵" @@ -1201,6 +1216,9 @@ msgstr "오클루더" msgid "Enabled" msgstr "활성화됨" +msgid "Normal Merge Angle" +msgstr "정상적인 병합 각도" + msgid "Loop Mode" msgstr "루프 모드" @@ -1213,12 +1231,6 @@ msgstr "최적화 도구" msgid "Max Angular Error" msgstr "최대 각도 오류" -msgid "Compression" -msgstr "압축" - -msgid "Page Size" -msgstr "페이지 크기" - msgid "Nodes" msgstr "노드" @@ -1441,9 +1453,6 @@ msgstr "스레드" msgid "Thread Model" msgstr "스레드 모델" -msgid "Audio" -msgstr "오디오" - msgid "Handheld" msgstr "휴대용" @@ -1474,15 +1483,18 @@ msgstr "iOS" msgid "Hide Home Indicator" msgstr "홈 표시기 숨기기" +msgid "Input Devices" +msgstr "입력 장치" + +msgid "Pointing" +msgstr "포인팅" + msgid "Boot Splash" msgstr "부트 스플래쉬" msgid "BG Color" msgstr "배경색" -msgid "Input Devices" -msgstr "입력 장치" - msgid "Environment" msgstr "환경" @@ -1492,21 +1504,24 @@ msgstr "기본 클리어 컬러" msgid "Show Image" msgstr "이미지 표시" +msgid "Image" +msgstr "영상" + msgid "Fullsize" msgstr "전체 크기" msgid "Use Filter" msgstr "필터 사용" +msgid "Icon" +msgstr "아이콘" + msgid "Buffering" msgstr "버퍼링" msgid "Agile Event Flushing" msgstr "애자일 이벤트 플러싱" -msgid "Pointing" -msgstr "포인팅" - msgid "Emulate Touch From Mouse" msgstr "마우스 터치 에뮬레이트" @@ -1534,12 +1549,15 @@ msgstr "솔루션 디렉토리" msgid "Main Loop Type" msgstr "메인 루프 유형" +msgid "Stretch" +msgstr "스트레치" + +msgid "Aspect" +msgstr "양상" + msgid "Auto Accept Quit" msgstr "자동 수락 종료" -msgid "GUI" -msgstr "GUI" - msgid "Fonts" msgstr "글꼴" @@ -1549,6 +1567,9 @@ msgstr "동적 글꼴" msgid "Use Oversampling" msgstr "오버샘플링 사용" +msgid "Textures" +msgstr "텍스처" + msgid "Operation" msgstr "오퍼레이션" @@ -1726,9 +1747,6 @@ msgstr "씬 이름" msgid "Root Nodes" msgstr "루트 노드" -msgid "Textures" -msgstr "텍스처" - msgid "Images" msgstr "이미지" @@ -1957,6 +1975,9 @@ msgstr "세심함" msgid "Return Type" msgstr "반환 유형" +msgid "Fractal Octaves" +msgstr "프랙털 옥타브" + msgid "Width" msgstr "너비" @@ -2008,9 +2029,6 @@ msgstr "IGD 우리의 주소" msgid "IGD Status" msgstr "IGD 상태" -msgid "Limits" -msgstr "제한" - msgid "WebRTC" msgstr "WebRTC" @@ -2056,15 +2074,9 @@ msgstr "Wi-Fi 연결" msgid "Push Notifications" msgstr "푸시 알림" -msgid "Icon" -msgstr "아이콘" - msgid "Location" msgstr "위치" -msgid "Description" -msgstr "설명" - msgid "Algorithm" msgstr "알고리즘" @@ -2128,6 +2140,12 @@ msgstr "색상" msgid "Angular Velocity" msgstr "각속도" +msgid "Accel Min" +msgstr "최소 가속도" + +msgid "Accel Max" +msgstr "최대 가속도" + msgid "Path Max Distance" msgstr "경로 최대 거리" @@ -2137,9 +2155,6 @@ msgstr "내비게이션 레이어" msgid "Max Speed" msgstr "최대 속도" -msgid "Transform" -msgstr "변형" - msgid "Rotation Degrees" msgstr "회전 각도" @@ -2266,6 +2281,9 @@ msgstr "버튼 그룹" msgid "Localization" msgstr "현지화" +msgid "Auto Translate" +msgstr "자동 옮기기" + msgid "Next" msgstr "다음" @@ -2290,9 +2308,6 @@ msgstr "아이콘 모드" msgid "Step" msgstr "단계" -msgid "Stretch" -msgstr "스트레치" - msgid "Syntax Highlighter" msgstr "구문 강조" @@ -2323,8 +2338,11 @@ msgstr "현재 화면" msgid "Max Size" msgstr "최대 크기" -msgid "Aspect" -msgstr "양상" +msgid "2D Physics" +msgstr "2D 물리" + +msgid "3D Physics" +msgstr "3D 물리" msgid "Format" msgstr "형식" @@ -2413,9 +2431,6 @@ msgstr "오른쪽 아래" msgid "Bottom Left" msgstr "왼쪽 아래" -msgid "Image" -msgstr "영상" - msgid "Transpose" msgstr "행렬 맞바꾸기" diff --git a/editor/translations/properties/pt.po b/editor/translations/properties/pt.po index caad6ec3fe..f072375d33 100644 --- a/editor/translations/properties/pt.po +++ b/editor/translations/properties/pt.po @@ -57,9 +57,15 @@ msgstr "Configurações" msgid "Name" msgstr "Nome" +msgid "Description" +msgstr "Descrição" + msgid "Run" msgstr "Executar" +msgid "Main Scene" +msgstr "Cena Principal" + msgid "Disable stdout" msgstr "Desativar stdout" @@ -87,6 +93,9 @@ msgstr "Janela" msgid "Size" msgstr "Tamanho" +msgid "Mode" +msgstr "Modo" + msgid "Resizable" msgstr "Redimensionável" @@ -102,6 +111,9 @@ msgstr "Economia de Energia" msgid "Keep Screen On" msgstr "Manter Tela Ligada" +msgid "Audio" +msgstr "Áudio" + msgid "Editor" msgstr "Editor" @@ -123,6 +135,9 @@ msgstr "Depurar" msgid "Settings" msgstr "Configurações" +msgid "Compression" +msgstr "Compressão" + msgid "Crash Handler" msgstr "Gerenciador de Falhas" @@ -132,6 +147,12 @@ msgstr "Mensagem" msgid "Rendering" msgstr "Renderizar" +msgid "Limits" +msgstr "Limites" + +msgid "GUI" +msgstr "Interface Gráfica" + msgid "Low Processor Usage Mode" msgstr "Modo de Baixa Utilização do Processador" @@ -231,6 +252,12 @@ msgstr "Valor do Controlador" msgid "Big Endian" msgstr "Grande Endian" +msgid "Network" +msgstr "Rede" + +msgid "Page Size" +msgstr "Tamanho da Página" + msgid "Blocking Mode Enabled" msgstr "Modo de Bloqueio Ativado" @@ -267,9 +294,6 @@ msgstr "Caminho" msgid "Data Array" msgstr "Lista de dados" -msgid "Blocking Handshake" -msgstr "Bloquear Handshake" - msgid "Max Pending Connections" msgstr "Max Conexões Pendentes" @@ -342,15 +366,6 @@ msgstr "Animação" msgid "Easing" msgstr "Flexibilização" -msgid "Interface" -msgstr "Interface" - -msgid "Editors" -msgstr "Editores" - -msgid "Network" -msgstr "Rede" - msgid "Remote Port" msgstr "Porta Remota" @@ -420,8 +435,8 @@ msgstr "Item Marcado" msgid "Keying" msgstr "Executar" -msgid "Main Scene" -msgstr "Cena Principal" +msgid "Interface" +msgstr "Interface" msgid "Show Update Spinner" msgstr "Mostra Ícone de Atualização" @@ -726,6 +741,9 @@ msgstr "Tamanho da Fonte de Código de Ajuda" msgid "Help Title Font Size" msgstr "Tamanho da Fonte do Título da Ajuda" +msgid "Editors" +msgstr "Editores" + msgid "Grid Map" msgstr "Mapa de grelha" @@ -1137,6 +1155,9 @@ msgstr "Tamanho do Contorno" msgid "Variation" msgstr "Variação" +msgid "Transform" +msgstr "Transformar" + msgid "Collada" msgstr "Collada" @@ -1164,15 +1185,9 @@ msgstr "Delimitador" msgid "Preload" msgstr "Pré-carregar" -msgid "Mode" -msgstr "Modo" - msgid "Lossy Quality" msgstr "Qualidade com Perdas" -msgid "BPTC LDR" -msgstr "BPTC LDR" - msgid "Mipmaps" msgstr "Mipmaps" @@ -1236,12 +1251,6 @@ msgstr "Otimizador" msgid "Max Angular Error" msgstr "Máximo de Erros Angulares" -msgid "Compression" -msgstr "Compressão" - -msgid "Page Size" -msgstr "Tamanho da Página" - msgid "Nodes" msgstr "Nós" @@ -1467,9 +1476,6 @@ msgstr "Threads" msgid "Thread Model" msgstr "Modelo de Thread" -msgid "Audio" -msgstr "Áudio" - msgid "Handheld" msgstr "Portátil" @@ -1500,15 +1506,18 @@ msgstr "iOS" msgid "Hide Home Indicator" msgstr "Esconder Indicador de Home" +msgid "Input Devices" +msgstr "Dispositivos de Entrada" + +msgid "Pointing" +msgstr "Pontuação" + msgid "Boot Splash" msgstr "Plano de Fundo de Inicialização" msgid "BG Color" msgstr "Cor de Fundo" -msgid "Input Devices" -msgstr "Dispositivos de Entrada" - msgid "Environment" msgstr "Ambiente" @@ -1518,21 +1527,24 @@ msgstr "Cor Clara Padrão" msgid "Show Image" msgstr "Mostrar Imagem" +msgid "Image" +msgstr "Imagem" + msgid "Fullsize" msgstr "Tamanho Máximo" msgid "Use Filter" msgstr "Usar Filtro" +msgid "Icon" +msgstr "Ícone" + msgid "Buffering" msgstr "Buffering" msgid "Agile Event Flushing" msgstr "Liberação Ágil de Eventos" -msgid "Pointing" -msgstr "Pontuação" - msgid "Emulate Touch From Mouse" msgstr "Emular Toque do Rato" @@ -1560,12 +1572,15 @@ msgstr "Diretório da Solução" msgid "Main Loop Type" msgstr "Tipo de Loop Principal" +msgid "Stretch" +msgstr "Esticar" + +msgid "Aspect" +msgstr "Aspecto" + msgid "Auto Accept Quit" msgstr "Auto Aceitar Sair" -msgid "GUI" -msgstr "Interface Gráfica" - msgid "Fonts" msgstr "Fontes" @@ -1575,6 +1590,9 @@ msgstr "Fontes Dinâmicas" msgid "Use Oversampling" msgstr "Usar Sobreamostragem" +msgid "Textures" +msgstr "Texturas" + msgid "Operation" msgstr "Operação" @@ -1752,9 +1770,6 @@ msgstr "Nome da Cena" msgid "Root Nodes" msgstr "Nós Raízes" -msgid "Textures" -msgstr "Texturas" - msgid "Images" msgstr "Imagens" @@ -2043,9 +2058,6 @@ msgstr "Estado do IGD" msgid "Write Mode" msgstr "Modo de Escrita" -msgid "Limits" -msgstr "Limites" - msgid "WebRTC" msgstr "WebRTC" @@ -2100,12 +2112,6 @@ msgstr "Primeiro Plano Adaptável 432 X 432" msgid "Adaptive Background 432 X 432" msgstr "Plano de Fundo Adaptável 432 X 432" -msgid "Custom Build" -msgstr "Build Personalizada" - -msgid "Use Custom Build" -msgstr "Usar Compilação Personalizada" - msgid "Export Format" msgstr "Exportar Formato" @@ -2370,9 +2376,6 @@ msgstr "Arquitetura" msgid "macOS" msgstr "macOS" -msgid "Icon" -msgstr "Ícone" - msgid "Copyright" msgstr "Direitos Autorais" @@ -2475,9 +2478,6 @@ msgstr "Nome de Exibição" msgid "Short Name" msgstr "Nome Curto" -msgid "Description" -msgstr "Descrição" - msgid "Publisher" msgstr "Publicadora" @@ -2610,18 +2610,12 @@ msgstr "Descrição do Ficheiro" msgid "Trademarks" msgstr "Marca Registada (Trademarks)" -msgid "Frames" -msgstr "Quadros" - msgid "Frame" msgstr "Quadro" msgid "Speed Scale" msgstr "Escalonamento da Velocidade" -msgid "Playing" -msgstr "A executar" - msgid "Centered" msgstr "Centralizado" @@ -2652,6 +2646,9 @@ msgstr "Volume dB (decibéis)" msgid "Pitch Scale" msgstr "Escalonamento de Pitch" +msgid "Playing" +msgstr "A executar" + msgid "Autoplay" msgstr "Reproduzir automaticamente" @@ -2859,9 +2856,6 @@ msgstr "Velocidade Máxima" msgid "Estimate Radius" msgstr "Raio Estimado" -msgid "Transform" -msgstr "Transformar" - msgid "Rotation Degrees" msgstr "Graus de Rotação" @@ -3318,12 +3312,12 @@ msgstr "Atraso Aleatório" msgid "Xfade Time" msgstr "Tempo do Esmaecer Cruzado" -msgid "Reset" -msgstr "Repor" - msgid "Active" msgstr "Ativo" +msgid "Reset" +msgstr "Repor" + msgid "Switch" msgstr "Alternar" @@ -3423,9 +3417,6 @@ msgstr "Tamanho da Tabulação" msgid "Split Offset" msgstr "Deslocamento de Divisão" -msgid "Stretch" -msgstr "Esticar" - msgid "Current Tab" msgstr "Guia Atual" @@ -3528,9 +3519,6 @@ msgstr "Tamanho Mínimo" msgid "Max Size" msgstr "Tamanho Máximo" -msgid "Aspect" -msgstr "Aspecto" - msgid "Format" msgstr "Formato" @@ -3780,9 +3768,6 @@ msgstr "Fundo Direita" msgid "Bottom Left" msgstr "Fundo Esquerda" -msgid "Image" -msgstr "Imagem" - msgid "Atlas" msgstr "Atlas" @@ -3795,6 +3780,9 @@ msgstr "Usar HDR" msgid "From" msgstr "À Partir de" +msgid "Frames" +msgstr "Quadros" + msgid "Transpose" msgstr "Transpor" @@ -3807,9 +3795,6 @@ msgstr "Função" msgid "Canvas" msgstr "Tela" -msgid "Default Gravity" -msgstr "Gravidade Padrão" - msgid "Plane" msgstr "Plano" @@ -3867,6 +3852,9 @@ msgstr "Excluir" msgid "Collide With Areas" msgstr "Colidir com Áreas" +msgid "Default Gravity" +msgstr "Gravidade Padrão" + msgid "Vertex" msgstr "Vértice" diff --git a/editor/translations/properties/pt_BR.po b/editor/translations/properties/pt_BR.po index bc6daf1f10..d971a31648 100644 --- a/editor/translations/properties/pt_BR.po +++ b/editor/translations/properties/pt_BR.po @@ -162,16 +162,16 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2023-01-14 00:01+0000\n" -"Last-Translator: Levi Ferreira <leviferreiramorais@gmail.com>\n" +"PO-Revision-Date: 2023-02-08 18:01+0000\n" +"Last-Translator: Leonardo <leotada523@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" -"godot-engine/godot/pt_BR/>\n" +"godot-engine/godot-properties/pt_BR/>\n" "Language: pt_BR\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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Application" msgstr "Aplicação" @@ -182,9 +182,15 @@ msgstr "Configuração" msgid "Name" msgstr "Nome" +msgid "Description" +msgstr "Descrição" + msgid "Run" msgstr "Rodar" +msgid "Main Scene" +msgstr "Cena Principal" + msgid "Disable stdout" msgstr "Desativar stdout" @@ -212,6 +218,9 @@ msgstr "Janela" msgid "Size" msgstr "Tamanho" +msgid "Mode" +msgstr "Modo" + msgid "Resizable" msgstr "Redimensionável" @@ -227,6 +236,9 @@ msgstr "Economia de Energia" msgid "Keep Screen On" msgstr "Manter a Tela Ligada" +msgid "Audio" +msgstr "Áudio" + msgid "Editor" msgstr "Editor" @@ -248,6 +260,9 @@ msgstr "Depuração" msgid "Settings" msgstr "Configurações" +msgid "Compression" +msgstr "Compressão" + msgid "Crash Handler" msgstr "Gerenciador de Falhas" @@ -257,6 +272,12 @@ msgstr "Mensagem" msgid "Rendering" msgstr "Renderização" +msgid "Limits" +msgstr "Limites" + +msgid "GUI" +msgstr "GUI (Interface Gráfica de Usuário)" + msgid "Low Processor Usage Mode" msgstr "Modo de Baixo Uso de Processador" @@ -305,6 +326,9 @@ msgstr "Fator" msgid "Button Index" msgstr "Índice do Botão" +msgid "Double Click" +msgstr "Clique Duplo" + msgid "Tilt" msgstr "Inclinar" @@ -356,6 +380,12 @@ msgstr "Valor do Controlador" msgid "Big Endian" msgstr "Big Endian" +msgid "Network" +msgstr "Rede" + +msgid "Page Size" +msgstr "Tamanho da Página" + msgid "Blocking Mode Enabled" msgstr "Modo de bloqueio Ativado" @@ -392,9 +422,6 @@ msgstr "Caminho" msgid "Data Array" msgstr "Matriz de Dados" -msgid "Blocking Handshake" -msgstr "Handshake bloqueante" - msgid "Max Pending Connections" msgstr "Conexões Pendentes Máximas" @@ -467,15 +494,6 @@ msgstr "Animação" msgid "Easing" msgstr "Suavização" -msgid "Interface" -msgstr "Interface" - -msgid "Editors" -msgstr "Editores" - -msgid "Network" -msgstr "Rede" - msgid "Remote Port" msgstr "Porta Remota" @@ -545,8 +563,8 @@ msgstr "Checado" msgid "Keying" msgstr "Chaveamento" -msgid "Main Scene" -msgstr "Cena Principal" +msgid "Interface" +msgstr "Interface" msgid "Show Update Spinner" msgstr "Mostrar Spinner de Atualização" @@ -851,6 +869,9 @@ msgstr "Tamanho da Fonte de Ajuda Principal" msgid "Help Title Font Size" msgstr "Tamanho da Fonte de Ajuda para Títulos" +msgid "Editors" +msgstr "Editores" + msgid "Grid Map" msgstr "Mapa de Grade" @@ -1262,6 +1283,9 @@ msgstr "Tamanho do Contorno" msgid "Variation" msgstr "Variação" +msgid "Transform" +msgstr "Transformação" + msgid "Collada" msgstr "Collada" @@ -1289,15 +1313,9 @@ msgstr "Delimitador" msgid "Preload" msgstr "Pré Carregar" -msgid "Mode" -msgstr "Modo" - msgid "Lossy Quality" msgstr "Com Perda de Qualidade" -msgid "BPTC LDR" -msgstr "BPTC LDR" - msgid "Mipmaps" msgstr "Mipmaps" @@ -1361,12 +1379,6 @@ msgstr "Otimizador" msgid "Max Angular Error" msgstr "Erro Angular Máximo" -msgid "Compression" -msgstr "Compressão" - -msgid "Page Size" -msgstr "Tamanho da Página" - msgid "Nodes" msgstr "Nós" @@ -1592,9 +1604,6 @@ msgstr "Threads" msgid "Thread Model" msgstr "Modelo de Thread" -msgid "Audio" -msgstr "Áudio" - msgid "Handheld" msgstr "Portátil (Handheld)" @@ -1625,15 +1634,18 @@ msgstr "iOS" msgid "Hide Home Indicator" msgstr "Esconder Indicador de Home" +msgid "Input Devices" +msgstr "Dispositivos de Entrada" + +msgid "Pointing" +msgstr "Apontando" + msgid "Boot Splash" msgstr "Imagem de Exibição ao Iniciar" msgid "BG Color" msgstr "Cor do Plano de Fundo" -msgid "Input Devices" -msgstr "Dispositivos de Entrada" - msgid "Environment" msgstr "Ambiente" @@ -1643,21 +1655,24 @@ msgstr "Cor Limpa Padrão" msgid "Show Image" msgstr "Mostrar Imagem" +msgid "Image" +msgstr "Imagem" + msgid "Fullsize" msgstr "Tamanho Inteiro" msgid "Use Filter" msgstr "Usar Filtro" +msgid "Icon" +msgstr "Ícone" + msgid "Buffering" msgstr "Buffering" msgid "Agile Event Flushing" msgstr "Limpeza de Eventos Agil" -msgid "Pointing" -msgstr "Apontando" - msgid "Emulate Touch From Mouse" msgstr "Simular Toque à Partir do Mouse" @@ -1685,12 +1700,15 @@ msgstr "Diretório da Solução" msgid "Main Loop Type" msgstr "Tipo de Loop Principal" +msgid "Stretch" +msgstr "Esticar" + +msgid "Aspect" +msgstr "Aspecto" + msgid "Auto Accept Quit" msgstr "Aceitar Sair Automaticamente" -msgid "GUI" -msgstr "GUI (Interface Gráfica de Usuário)" - msgid "Fonts" msgstr "Fontes" @@ -1700,6 +1718,9 @@ msgstr "Fontes Dinâmicas" msgid "Use Oversampling" msgstr "Utilizar Oversampling" +msgid "Textures" +msgstr "Texturas" + msgid "Operation" msgstr "Operação" @@ -1877,9 +1898,6 @@ msgstr "Nome da Cena" msgid "Root Nodes" msgstr "Nós Raízes" -msgid "Textures" -msgstr "Texturas" - msgid "Images" msgstr "Imagens" @@ -2165,9 +2183,6 @@ msgstr "Estado do IGD" msgid "Write Mode" msgstr "Modo de Escrita" -msgid "Limits" -msgstr "Limites" - msgid "WebRTC" msgstr "WebRTC" @@ -2222,12 +2237,6 @@ msgstr "Primeiro Plano Adaptável 432 X 432" msgid "Adaptive Background 432 X 432" msgstr "Fundo Adaptável 432 X 432" -msgid "Custom Build" -msgstr "Build Personalizada" - -msgid "Use Custom Build" -msgstr "Usar Build Personalizada" - msgid "Export Format" msgstr "Exportar Formato" @@ -2423,9 +2432,6 @@ msgstr "Arquitetura" msgid "macOS" msgstr "macOS" -msgid "Icon" -msgstr "Ícone" - msgid "Copyright" msgstr "Direitos Autorais" @@ -2522,9 +2528,6 @@ msgstr "Nome de Exibição" msgid "Short Name" msgstr "Nome Curto" -msgid "Description" -msgstr "Descrição" - msgid "Publisher" msgstr "Publicadora" @@ -2648,18 +2651,12 @@ msgstr "Descrição do Arquivo" msgid "Trademarks" msgstr "Marca Registrada (Trademarks)" -msgid "Frames" -msgstr "Quadros" - msgid "Frame" msgstr "Quadro" msgid "Speed Scale" msgstr "Escalonamento da Velocidade" -msgid "Playing" -msgstr "Rodando" - msgid "Centered" msgstr "Centralizado" @@ -2690,6 +2687,9 @@ msgstr "Volume dB (decibéis)" msgid "Pitch Scale" msgstr "Escalonamento de Pitch" +msgid "Playing" +msgstr "Rodando" + msgid "Autoplay" msgstr "Rodar automaticamente" @@ -2897,9 +2897,6 @@ msgstr "Velocidade Máxima" msgid "Estimate Radius" msgstr "Raio Estimado" -msgid "Transform" -msgstr "Transformação" - msgid "Rotation Degrees" msgstr "Graus de Rotação" @@ -3356,12 +3353,12 @@ msgstr "Atraso Aleatório" msgid "Xfade Time" msgstr "Tempo do Esmaecer Cruzado" -msgid "Reset" -msgstr "Recompor" - msgid "Active" msgstr "Ativo" +msgid "Reset" +msgstr "Recompor" + msgid "Switch" msgstr "Switch" @@ -3461,9 +3458,6 @@ msgstr "Tamanho da Tabulação" msgid "Split Offset" msgstr "Deslocamento de Divisão" -msgid "Stretch" -msgstr "Esticar" - msgid "Current Tab" msgstr "Aba Atual" @@ -3566,9 +3560,6 @@ msgstr "Tamanho Mínimo" msgid "Max Size" msgstr "Tamanho Máximo" -msgid "Aspect" -msgstr "Aspecto" - msgid "Format" msgstr "Formato" @@ -3818,9 +3809,6 @@ msgstr "Inferior direita" msgid "Bottom Left" msgstr "Inferior Esquerda" -msgid "Image" -msgstr "Imagem" - msgid "Atlas" msgstr "Atlas" @@ -3833,6 +3821,9 @@ msgstr "Usar HDR" msgid "From" msgstr "À Partir de" +msgid "Frames" +msgstr "Quadros" + msgid "Transpose" msgstr "Transpor" @@ -3845,9 +3836,6 @@ msgstr "Função" msgid "Canvas" msgstr "Tela" -msgid "Default Gravity" -msgstr "Gravidade Padrão" - msgid "Plane" msgstr "Plano" @@ -3905,6 +3893,9 @@ msgstr "Excluir" msgid "Collide With Areas" msgstr "Colidir com Áreas" +msgid "Default Gravity" +msgstr "Gravidade Padrão" + msgid "Vertex" msgstr "Vértice" diff --git a/editor/translations/properties/ru.po b/editor/translations/properties/ru.po index 29e6563d92..f792cd0b43 100644 --- a/editor/translations/properties/ru.po +++ b/editor/translations/properties/ru.po @@ -132,17 +132,17 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-11-25 12:13+0000\n" -"Last-Translator: Vladimir Kirillovskiy <vladimir.kirillovskiy@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 10:44+0000\n" +"Last-Translator: Danil Alexeev <danil@alexeev.xyz>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" -"godot/ru/>\n" +"godot-properties/ru/>\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "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.15-dev\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Application" msgstr "Приложение" @@ -153,9 +153,15 @@ msgstr "Конфигурация" msgid "Name" msgstr "Название" +msgid "Description" +msgstr "Описание" + msgid "Run" msgstr "Запустить" +msgid "Main Scene" +msgstr "Главная сцена" + msgid "Disable stdout" msgstr "Отключить стандартный вывод" @@ -183,6 +189,9 @@ msgstr "Окно" msgid "Size" msgstr "Размер" +msgid "Mode" +msgstr "Режим" + msgid "Resizable" msgstr "Изменяемый размер" @@ -198,6 +207,9 @@ msgstr "Энергосбережение" msgid "Keep Screen On" msgstr "Не выключать экран" +msgid "Audio" +msgstr "Аудио" + msgid "Editor" msgstr "Редактор" @@ -219,6 +231,9 @@ msgstr "Отладка" msgid "Settings" msgstr "Настройки" +msgid "Compression" +msgstr "Сжатие" + msgid "Crash Handler" msgstr "Обработчик падений" @@ -228,6 +243,15 @@ msgstr "Сообщение" msgid "Rendering" msgstr "Рендеринг" +msgid "Limits" +msgstr "Лимиты" + +msgid "GUI" +msgstr "GUI" + +msgid "Vulkan" +msgstr "Vulkan" + msgid "Low Processor Usage Mode" msgstr "Режим низкой нагрузки процессора" @@ -276,6 +300,9 @@ msgstr "Множитель" msgid "Button Index" msgstr "Индекс кнопки" +msgid "Double Click" +msgstr "Двойной щелчок" + msgid "Tilt" msgstr "Наклон" @@ -330,6 +357,12 @@ msgstr "Ярлык" msgid "Big Endian" msgstr "Прямой порядок байтов" +msgid "Network" +msgstr "Сеть" + +msgid "Page Size" +msgstr "Размер страницы" + msgid "Blocking Mode Enabled" msgstr "Блокирующий режим включён" @@ -366,9 +399,6 @@ msgstr "Путь" msgid "Data Array" msgstr "Массив данных" -msgid "Blocking Handshake" -msgstr "Блокировать Handshake" - msgid "Max Pending Connections" msgstr "Максимальное количество ожидающих подключений" @@ -441,15 +471,6 @@ msgstr "Анимация" msgid "Easing" msgstr "Облегчение" -msgid "Interface" -msgstr "Интерфейс" - -msgid "Editors" -msgstr "Редакторы" - -msgid "Network" -msgstr "Сеть" - msgid "Remote Port" msgstr "Удалённый порт" @@ -519,8 +540,8 @@ msgstr "Отмеченный" msgid "Keying" msgstr "Вставка ключей" -msgid "Main Scene" -msgstr "Главная сцена" +msgid "Interface" +msgstr "Интерфейс" msgid "Show Update Spinner" msgstr "Показывать индикатор обновления" @@ -825,6 +846,9 @@ msgstr "Размер шрифта исходного кода в справке" msgid "Help Title Font Size" msgstr "Размер шрифта заголовков справки" +msgid "Editors" +msgstr "Редакторы" + msgid "Grid Map" msgstr "Сеточная карта" @@ -1227,9 +1251,15 @@ msgstr "Пароль" msgid "Compress" msgstr "Сжатие" +msgid "Language" +msgstr "Язык" + msgid "Variation" msgstr "Вариация" +msgid "Transform" +msgstr "Преобразование" + msgid "Collada" msgstr "ColladA" @@ -1260,15 +1290,9 @@ msgstr "Предзагрузить" msgid "Columns" msgstr "Колонки" -msgid "Mode" -msgstr "Режим" - msgid "Lossy Quality" msgstr "Качество с потерями" -msgid "BPTC LDR" -msgstr "BPTC LDR" - msgid "Mipmaps" msgstr "Мип-карты" @@ -1332,12 +1356,6 @@ msgstr "Оптимизировать" msgid "Max Angular Error" msgstr "Максимальная угловая погрешность" -msgid "Compression" -msgstr "Сжатие" - -msgid "Page Size" -msgstr "Размер страницы" - msgid "Nodes" msgstr "Узлы" @@ -1443,6 +1461,9 @@ msgstr "Использовать потоки" msgid "Available URLs" msgstr "Доступные URL" +msgid "Unset" +msgstr "Сбросить" + msgid "Error" msgstr "Ошибка" @@ -1560,9 +1581,6 @@ msgstr "Потоки" msgid "Thread Model" msgstr "Модель потоков" -msgid "Audio" -msgstr "Аудио" - msgid "Handheld" msgstr "Портативный" @@ -1593,15 +1611,18 @@ msgstr "iOS" msgid "Hide Home Indicator" msgstr "Скрыть индикатор «Домой»" +msgid "Input Devices" +msgstr "Устройства ввода" + +msgid "Pointing" +msgstr "Указывающие" + msgid "Boot Splash" msgstr "Загрузочная заставка" msgid "BG Color" msgstr "Цвет фона" -msgid "Input Devices" -msgstr "Устройства ввода" - msgid "Environment" msgstr "Окружение" @@ -1611,21 +1632,24 @@ msgstr "Чистый цвет по умолчанию" msgid "Show Image" msgstr "Показать изображение" +msgid "Image" +msgstr "Изображение" + msgid "Fullsize" msgstr "Полноразмерный" msgid "Use Filter" msgstr "Использовать фильтр" +msgid "Icon" +msgstr "Иконка" + msgid "Buffering" msgstr "Буферизация" msgid "Agile Event Flushing" msgstr "Быстрая отправка событий" -msgid "Pointing" -msgstr "Указывающие" - msgid "Emulate Touch From Mouse" msgstr "Эмулировать сенсорный ввод мышью" @@ -1647,12 +1671,15 @@ msgstr "Проект" msgid "Main Loop Type" msgstr "Тип основного цикла" +msgid "Stretch" +msgstr "Растяжение" + +msgid "Aspect" +msgstr "Соотношение" + msgid "Auto Accept Quit" msgstr "Автоподтверждение выхода" -msgid "GUI" -msgstr "GUI" - msgid "Fonts" msgstr "Шрифты" @@ -1662,6 +1689,9 @@ msgstr "Динамические шрифты" msgid "Use Oversampling" msgstr "Использовать передискретизацию" +msgid "Textures" +msgstr "Текстуры" + msgid "Operation" msgstr "Операция" @@ -1830,9 +1860,6 @@ msgstr "Имя сцены" msgid "Root Nodes" msgstr "Корневые узлы" -msgid "Textures" -msgstr "Текстуры" - msgid "Images" msgstr "Изображения" @@ -2088,9 +2115,6 @@ msgstr "IGD Статус" msgid "Write Mode" msgstr "Режим записи" -msgid "Limits" -msgstr "Лимиты" - msgid "WebRTC" msgstr "WebRTC" @@ -2124,12 +2148,6 @@ msgstr "Адаптивный Передний Фон 432 X 432" msgid "Adaptive Background 432 X 432" msgstr "Адаптивный Задний Фон 432 X 432" -msgid "Custom Build" -msgstr "Настраиваемая Сборка" - -msgid "Use Custom Build" -msgstr "Использовать Настраиваемую Сборку" - msgid "Export Format" msgstr "Формат Экспорта" @@ -2256,9 +2274,6 @@ msgstr "Архитектура" msgid "macOS" msgstr "macOS" -msgid "Icon" -msgstr "Иконка" - msgid "Copyright" msgstr "Авторские права" @@ -2358,9 +2373,6 @@ msgstr "Алгоритм отладчика" msgid "Short Name" msgstr "Короткое имя" -msgid "Description" -msgstr "Описание" - msgid "Publisher" msgstr "Издатель" @@ -2412,6 +2424,9 @@ msgstr "HTTP-хост" msgid "HTTP Port" msgstr "HTTP-порт" +msgid "Variant" +msgstr "Вариант" + msgid "VRAM Texture Compression" msgstr "VRAM компрессия текстуры" @@ -2469,18 +2484,12 @@ msgstr "Описание файла" msgid "Trademarks" msgstr "Торговые марки" -msgid "Frames" -msgstr "Кадры" - msgid "Frame" msgstr "Кадр" msgid "Speed Scale" msgstr "Масштаб скорости" -msgid "Playing" -msgstr "Проигрывается" - msgid "Centered" msgstr "Центрированный" @@ -2511,6 +2520,9 @@ msgstr "Текущая" msgid "Volume dB" msgstr "Громкость dB" +msgid "Playing" +msgstr "Проигрывается" + msgid "Autoplay" msgstr "Автовоспроизведение" @@ -2539,13 +2551,13 @@ msgid "Custom Viewport" msgstr "Пользовательское окно просмотра" msgid "Left" -msgstr "Лево" +msgstr "Влево" msgid "Top" msgstr "Верх" msgid "Right" -msgstr "Право" +msgstr "Вправо" msgid "Bottom" msgstr "Внизу" @@ -2748,9 +2760,6 @@ msgstr "Включить уклонение" msgid "Max Speed" msgstr "Макс скорость" -msgid "Transform" -msgstr "Преобразование" - msgid "Global Rotation" msgstr "Глобальный поворот" @@ -2848,7 +2857,7 @@ msgid "Use Global Coordinates" msgstr "Использовать глобальные координаты" msgid "Update" -msgstr "Обновление" +msgstr "Обновить" msgid "Margin" msgstr "Отступ" @@ -3252,9 +3261,6 @@ msgstr "Случайная задержка" msgid "Xfade Time" msgstr "Время Xfade" -msgid "Reset" -msgstr "Сбросить" - msgid "Active" msgstr "Активный" @@ -3264,6 +3270,9 @@ msgstr "Добавить количество" msgid "Blend Amount" msgstr "Количество смешивания" +msgid "Reset" +msgstr "Сбросить" + msgid "Switch" msgstr "Множественный выбор" @@ -3489,9 +3498,6 @@ msgstr "Среда" msgid "Relative Index" msgstr "Относительный индекс" -msgid "Fit Content Height" -msgstr "Вместить по высоте контента" - msgid "Scroll Active" msgstr "Активная прокрутка" @@ -3516,9 +3522,6 @@ msgstr "Счетчик галочек" msgid "Collapsed" msgstr "Свернуто" -msgid "Stretch" -msgstr "Растяжение" - msgid "Stretch Shrink" msgstr "Растянуть сжать" @@ -3531,6 +3534,9 @@ msgstr "Видимость вкладок" msgid "Syntax Highlighter" msgstr "Подсветка синтаксиса" +msgid "Fit Content Height" +msgstr "Вместить по высоте контента" + msgid "Focused" msgstr "Сфокусировано" @@ -3678,9 +3684,6 @@ msgstr "Минимальный размер" msgid "Max Size" msgstr "Максимальный размер" -msgid "Aspect" -msgstr "Соотношение" - msgid "Layer Names" msgstr "Имена слоя" @@ -4086,9 +4089,6 @@ msgstr "Справа внизу" msgid "Bottom Left" msgstr "Слева внизу" -msgid "Image" -msgstr "Изображение" - msgid "Load Path" msgstr "Загрузить путь" @@ -4110,6 +4110,9 @@ msgstr "От" msgid "To" msgstr "До" +msgid "Frames" +msgstr "Кадры" + msgid "Current Frame" msgstr "Текущий кадр" @@ -4155,15 +4158,6 @@ msgstr "Холст" msgid "Navigation Map" msgstr "Карта навигации" -msgid "Default Gravity" -msgstr "Гравитация по умолчанию" - -msgid "Default Gravity Vector" -msgstr "Вектор гравитации по умолчанию" - -msgid "Default Cell Size" -msgstr "Размер ячейки по умолчанию" - msgid "Plane" msgstr "Плоскость" @@ -4212,12 +4206,12 @@ msgstr "Порог Отключения Канала, дБ" msgid "Video Delay Compensation (ms)" msgstr "Компенсация Задержки Видео (мс)" -msgid "Capture Device" -msgstr "Устройство захвата" - msgid "Is Active" msgstr "Активен" +msgid "Default Cell Size" +msgstr "Размер ячейки по умолчанию" + msgid "Inverse Mass" msgstr "Инвертированная масса" @@ -4236,6 +4230,12 @@ msgstr "Сталкивать с телами" msgid "Collide With Areas" msgstr "Сталкивать с областями" +msgid "Default Gravity" +msgstr "Гравитация по умолчанию" + +msgid "Default Gravity Vector" +msgstr "Вектор гравитации по умолчанию" + msgid "Physics Engine" msgstr "Физический движек" @@ -4251,18 +4251,6 @@ msgstr "Включить цикл рендера" msgid "VRAM Compression" msgstr "Сжатие VRAM" -msgid "Import BPTC" -msgstr "Импорт BPTC" - -msgid "Import S3TC" -msgstr "Импорт S3TC" - -msgid "Import ETC" -msgstr "Импортировать ETC" - -msgid "Import ETC2" -msgstr "Импортировать ETC2" - msgid "Lossless Compression" msgstr "Сжатие без потерь" diff --git a/editor/translations/properties/uk.po b/editor/translations/properties/uk.po index 43ebc97bf7..cce1dbb94c 100644 --- a/editor/translations/properties/uk.po +++ b/editor/translations/properties/uk.po @@ -32,17 +32,17 @@ msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-08 09:47+0000\n" -"Last-Translator: KazanskiyMaks <kazanskiy.maks@gmail.com>\n" +"PO-Revision-Date: 2023-02-09 01:12+0000\n" +"Last-Translator: Богдан Матвіїв <bomtvv@gmail.com>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" -"godot/uk/>\n" +"godot-properties/uk/>\n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "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.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Application" msgstr "Програма" @@ -53,9 +53,15 @@ msgstr "Налаштування" msgid "Name" msgstr "Назва" +msgid "Description" +msgstr "Опис" + msgid "Run" msgstr "Запустити" +msgid "Main Scene" +msgstr "Головна сцена" + msgid "Disable stdout" msgstr "Вимкнути stdout" @@ -83,6 +89,9 @@ msgstr "Вікно" msgid "Size" msgstr "Розмір" +msgid "Mode" +msgstr "Режим" + msgid "Resizable" msgstr "Зі зміною розміру" @@ -98,6 +107,9 @@ msgstr "Заощадження енергії" msgid "Keep Screen On" msgstr "Не вимикати екран" +msgid "Audio" +msgstr "Аудіо" + msgid "Editor" msgstr "Редактор" @@ -119,6 +131,9 @@ msgstr "Діагностика" msgid "Settings" msgstr "Параметри" +msgid "Compression" +msgstr "Стиснення" + msgid "Crash Handler" msgstr "Обробник аварій" @@ -128,6 +143,15 @@ msgstr "Повідомлення" msgid "Rendering" msgstr "Обробка" +msgid "Occlusion Culling" +msgstr "Переглянути відбраковування замикання" + +msgid "Limits" +msgstr "Обмеження" + +msgid "GUI" +msgstr "Інтерфейс" + msgid "Low Processor Usage Mode" msgstr "Режим низького використання процесора" @@ -230,6 +254,12 @@ msgstr "Скорочення" msgid "Big Endian" msgstr "Зворотний" +msgid "Network" +msgstr "Мережа" + +msgid "Page Size" +msgstr "Розмір сторінки" + msgid "Blocking Mode Enabled" msgstr "Увімкнено режим блокування" @@ -266,9 +296,6 @@ msgstr "Шлях" msgid "Data Array" msgstr "Масив даних" -msgid "Blocking Handshake" -msgstr "Узгодження блокування" - msgid "Max Pending Connections" msgstr "Макс. к-ть з'єднань у черзі" @@ -344,15 +371,6 @@ msgstr "Анімація" msgid "Easing" msgstr "Пом'якшення" -msgid "Interface" -msgstr "Інтерфейс" - -msgid "Editors" -msgstr "Редактори" - -msgid "Network" -msgstr "Мережа" - msgid "Remote Port" msgstr "Віддалений порт" @@ -422,8 +440,8 @@ msgstr "Позначено" msgid "Keying" msgstr "Набір" -msgid "Main Scene" -msgstr "Головна сцена" +msgid "Interface" +msgstr "Інтерфейс" msgid "Show Update Spinner" msgstr "Показувати індикатор оновлення" @@ -733,6 +751,9 @@ msgstr "Розмір шрифту коду у довідці" msgid "Help Title Font Size" msgstr "Розмір шрифту заголовків у довідці" +msgid "Editors" +msgstr "Редактори" + msgid "Grid Map" msgstr "Карта сітки" @@ -1147,6 +1168,9 @@ msgstr "Розмір обведення" msgid "Variation" msgstr "Дисперсія" +msgid "Transform" +msgstr "Перетворення" + msgid "Collada" msgstr "Collada" @@ -1177,15 +1201,9 @@ msgstr "Попередньо завантажити" msgid "Columns" msgstr "Стовпчики" -msgid "Mode" -msgstr "Режим" - msgid "Lossy Quality" msgstr "Із втратою якості" -msgid "BPTC LDR" -msgstr "BPTC LDR" - msgid "Mipmaps" msgstr "Множинне відтворення" @@ -1252,12 +1270,6 @@ msgstr "Optimizer (Оптимізатор)" msgid "Max Angular Error" msgstr "Макс. кутова похибка" -msgid "Compression" -msgstr "Стиснення" - -msgid "Page Size" -msgstr "Розмір сторінки" - msgid "Nodes" msgstr "Вузли" @@ -1483,9 +1495,6 @@ msgstr "Потоки" msgid "Thread Model" msgstr "Модель потоків" -msgid "Audio" -msgstr "Аудіо" - msgid "Handheld" msgstr "Кишеньковий пристрій" @@ -1516,15 +1525,18 @@ msgstr "iOS" msgid "Hide Home Indicator" msgstr "Приховати індикатор домівки" +msgid "Input Devices" +msgstr "Пристрої вводу" + +msgid "Pointing" +msgstr "Фокус" + msgid "Boot Splash" msgstr "Вітання системи" msgid "BG Color" msgstr "Колір тла" -msgid "Input Devices" -msgstr "Пристрої вводу" - msgid "Environment" msgstr "Середовище" @@ -1534,21 +1546,24 @@ msgstr "Типовий чистий колір" msgid "Show Image" msgstr "Показати зображення" +msgid "Image" +msgstr "Зображення" + msgid "Fullsize" msgstr "Повний розмір" msgid "Use Filter" msgstr "Фільтрування" +msgid "Icon" +msgstr "Піктограма" + msgid "Buffering" msgstr "Буферизація" msgid "Agile Event Flushing" msgstr "Зріле витирання подій" -msgid "Pointing" -msgstr "Фокус" - msgid "Emulate Touch From Mouse" msgstr "Емулювати дотик з миші" @@ -1576,12 +1591,15 @@ msgstr "Каталог проєкту" msgid "Main Loop Type" msgstr "Знайти тип вузла" +msgid "Stretch" +msgstr "Розтягнути" + +msgid "Aspect" +msgstr "Аспект" + msgid "Auto Accept Quit" msgstr "Автоматично виходити" -msgid "GUI" -msgstr "Інтерфейс" - msgid "Fonts" msgstr "Шрифти" @@ -1591,6 +1609,9 @@ msgstr "Динамічні шрифти" msgid "Use Oversampling" msgstr "Передискретизація" +msgid "Textures" +msgstr "Текстури" + msgid "Operation" msgstr "Дія" @@ -1768,9 +1789,6 @@ msgstr "Базовий шлях" msgid "Root Nodes" msgstr "Кореневі вузли" -msgid "Textures" -msgstr "Текстури" - msgid "Images" msgstr "Зображення" @@ -2056,9 +2074,6 @@ msgstr "Стан IGD" msgid "Write Mode" msgstr "Режим пріоритетності" -msgid "Limits" -msgstr "Обмеження" - msgid "WebRTC" msgstr "WebRTC" @@ -2086,9 +2101,6 @@ msgstr "Шлях Android SDK" msgid "Debug Keystore" msgstr "Зневаджувач" -msgid "Use Custom Build" -msgstr "Нетипова збірка" - msgid "Export Format" msgstr "Формат експортування" @@ -2287,9 +2299,6 @@ msgstr "Архітектура" msgid "macOS" msgstr "macOS" -msgid "Icon" -msgstr "Піктограма" - msgid "Copyright" msgstr "Авторські права" @@ -2413,9 +2422,6 @@ msgstr "Показана назва" msgid "Short Name" msgstr "Коротка назва" -msgid "Description" -msgstr "Опис" - msgid "Publisher" msgstr "Видавець" @@ -2551,18 +2557,12 @@ msgstr "Опис файла" msgid "Trademarks" msgstr "Торгівельні марки" -msgid "Frames" -msgstr "Кадри" - msgid "Frame" msgstr "Кадр" msgid "Speed Scale" msgstr "Масштаб" -msgid "Playing" -msgstr "Відтворення" - msgid "Centered" msgstr "За центром" @@ -2608,6 +2608,9 @@ msgstr "Гучність (дБ)" msgid "Pitch Scale" msgstr "Масштаб" +msgid "Playing" +msgstr "Відтворення" + msgid "Autoplay" msgstr "Перемкнути автовідтворення" @@ -2938,9 +2941,6 @@ msgstr "Макс. швидкість" msgid "Estimate Radius" msgstr "Оцінка радіуса" -msgid "Transform" -msgstr "Перетворення" - msgid "Rotation Degrees" msgstr "Грудуси обертання" @@ -3193,9 +3193,6 @@ msgstr "Вимкнути Z" msgid "Flatness" msgstr "Пласкість" -msgid "Extents" -msgstr "Розміри" - msgid "Albedo" msgstr "Альбедо" @@ -3350,7 +3347,7 @@ msgid "Opacity" msgstr "Непрозорість" msgid "Blur" -msgstr "Розмивання" +msgstr "Розмиття" msgid "Directional Shadow" msgstr "Спрямована тінь" @@ -3592,12 +3589,12 @@ msgstr "Випадкова затримка" msgid "Xfade Time" msgstr "Час X-Fade" -msgid "Reset" -msgstr "Скинути" - msgid "Active" msgstr "Активний" +msgid "Reset" +msgstr "Скинути" + msgid "Switch" msgstr "Перемкнутися" @@ -3910,9 +3907,6 @@ msgstr "Сер." msgid "Relative Index" msgstr "Відносний індекс" -msgid "Fit Content Height" -msgstr "Висота підбирання за вмістом" - msgid "Scroll Active" msgstr "Активне гортання" @@ -3949,9 +3943,6 @@ msgstr "Згорнуто" msgid "Dragger Visibility" msgstr "Перемкнути видимість" -msgid "Stretch" -msgstr "Розтягнути" - msgid "Stretch Shrink" msgstr "Стягування розтягування" @@ -3970,6 +3961,9 @@ msgstr "Вкладки видимі" msgid "Syntax Highlighter" msgstr "Засіб підсвічування синтаксису" +msgid "Fit Content Height" +msgstr "Висота підбирання за вмістом" + msgid "Draw" msgstr "Креслення" @@ -4126,9 +4120,6 @@ msgstr "Створити контур" msgid "Anti Aliasing" msgstr "Згладжування" -msgid "Occlusion Culling" -msgstr "Переглянути відбраковування замикання" - msgid "Atlas Size" msgstr "Розмір атласу" @@ -4195,9 +4186,6 @@ msgstr "Мін. розмір" msgid "Max Size" msgstr "Макс. розмір" -msgid "Aspect" -msgstr "Аспект" - msgid "Layer Names" msgstr "Назви шарів" @@ -4876,9 +4864,6 @@ msgstr "Внизу праворуч" msgid "Bottom Left" msgstr "Внизу ліворуч" -msgid "Image" -msgstr "Зображення" - msgid "Load Path" msgstr "Завантажити шаблон" @@ -4897,6 +4882,9 @@ msgstr "Розмір зображення" msgid "Use HDR" msgstr "HDR" +msgid "Frames" +msgstr "Кадри" + msgid "Current Frame" msgstr "Поточний кадр" @@ -4939,12 +4927,6 @@ msgstr "Завантажити типовий" msgid "Canvas" msgstr "Полотно" -msgid "Default Gravity" -msgstr "Типове зображення перегляду" - -msgid "Default Gravity Vector" -msgstr "Типове зображення перегляду" - msgid "Fallback Environment" msgstr "Перегляд середовища" @@ -5029,9 +5011,6 @@ msgstr "Результат" msgid "Bus Count" msgstr "Кількість шин" -msgid "Capture Device" -msgstr "Пристрій захоплення" - msgid "Feed" msgstr "Подача" @@ -5056,6 +5035,12 @@ msgstr "Режим перешкоди" msgid "Shape RID" msgstr "RID форми" +msgid "Default Gravity" +msgstr "Типове зображення перегляду" + +msgid "Default Gravity Vector" +msgstr "Типове зображення перегляду" + msgid "Principal Inertia Axes" msgstr "Головні вісі інерції" @@ -5077,18 +5062,6 @@ msgstr "Увімкнено цикл обробки" msgid "VRAM Compression" msgstr "Вираз" -msgid "Import BPTC" -msgstr "Імпорт" - -msgid "Import S3TC" -msgstr "Імпорт" - -msgid "Import ETC" -msgstr "Імпорт" - -msgid "Import ETC2" -msgstr "Імпорт" - msgid "Lossless Compression" msgstr "Стискання без втрат" diff --git a/editor/translations/properties/zh_CN.po b/editor/translations/properties/zh_CN.po index 941f112094..d623c3ba30 100644 --- a/editor/translations/properties/zh_CN.po +++ b/editor/translations/properties/zh_CN.po @@ -92,16 +92,16 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2022-12-28 00:54+0000\n" -"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" +"PO-Revision-Date: 2023-02-10 10:44+0000\n" +"Last-Translator: 风青山 <idleman@yeah.net>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" -"godot-engine/godot/zh_Hans/>\n" +"godot-engine/godot-properties/zh_Hans/>\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Application" msgstr "应用" @@ -112,9 +112,15 @@ msgstr "配置" msgid "Name" msgstr "名称" +msgid "Description" +msgstr "描述" + msgid "Run" msgstr "运行" +msgid "Main Scene" +msgstr "主场景" + msgid "Disable stdout" msgstr "禁用标准输出" @@ -142,33 +148,63 @@ msgstr "窗口" msgid "Size" msgstr "大小" +msgid "Mode" +msgstr "模式" + +msgid "Initial Position" +msgstr "初始位置" + msgid "Resizable" msgstr "可调整大小" msgid "Borderless" msgstr "无边框" +msgid "Always on Top" +msgstr "置顶" + msgid "Transparent" msgstr "透明" +msgid "Extend to Title" +msgstr "延伸至标题" + +msgid "No Focus" +msgstr "关闭聚焦" + msgid "Energy Saving" msgstr "节能" msgid "Keep Screen On" msgstr "屏幕常亮" +msgid "Audio" +msgstr "音频" + +msgid "Buses" +msgstr "总线" + msgid "Editor" msgstr "编辑器" msgid "Main Run Args" msgstr "主运行参数" +msgid "Default Signal Callback Name" +msgstr "默认信号回调名称" + +msgid "Default Signal Callback to Self Name" +msgstr "默认信号回调为自身名称" + msgid "Physics" msgstr "物理" msgid "2D" msgstr "2D" +msgid "Run on Separate Thread" +msgstr "在独立的线程上运行" + msgid "3D" msgstr "3D" @@ -178,6 +214,9 @@ msgstr "调试" msgid "Settings" msgstr "设置" +msgid "Compression" +msgstr "压缩" + msgid "Crash Handler" msgstr "崩溃处理器" @@ -187,6 +226,42 @@ msgstr "消息" msgid "Rendering" msgstr "渲染" +msgid "Occlusion Culling" +msgstr "遮挡剔除" + +msgid "Limits" +msgstr "限制" + +msgid "Internationalization" +msgstr "国际化" + +msgid "Force Right to Left Layout Direction" +msgstr "强制从右至左的布局方向" + +msgid "GUI" +msgstr "GUI" + +msgid "Rendering Device" +msgstr "渲染设备" + +msgid "Staging Buffer" +msgstr "暂存缓冲区" + +msgid "Block Size (KB)" +msgstr "块大小(KB)" + +msgid "Max Size (MB)" +msgstr "最大大小(MB)" + +msgid "Texture Upload Region Size Px" +msgstr "纹理上传区域像素大小" + +msgid "Vulkan" +msgstr "Vulkan" + +msgid "Max Descriptors per Pool" +msgstr "各池最大描述符数" + msgid "Low Processor Usage Mode" msgstr "低处理器使用模式" @@ -196,6 +271,15 @@ msgstr "低处理器使用模式睡眠(微秒)" msgid "Print Error Messages" msgstr "打印错误消息" +msgid "Physics Ticks per Second" +msgstr "每秒物理周期数" + +msgid "Max Physics Steps per Frame" +msgstr "每帧最大物理迭代数" + +msgid "Max FPS" +msgstr "最大 FPS" + msgid "Time Scale" msgstr "时间缩放" @@ -211,9 +295,36 @@ msgstr "使用累积输入" msgid "Device" msgstr "设备" +msgid "Window ID" +msgstr "窗口 ID" + +msgid "Command or Control Autoremap" +msgstr "自动重映射 Command 和 Ctrl" + +msgid "Alt Pressed" +msgstr "按下 Alt" + +msgid "Shift Pressed" +msgstr "按下 Shift" + +msgid "Ctrl Pressed" +msgstr "按下 Ctrl" + +msgid "Meta Pressed" +msgstr "按下 Meta" + msgid "Pressed" msgstr "按下" +msgid "Keycode" +msgstr "键码" + +msgid "Physical Keycode" +msgstr "物理键码" + +msgid "Key Label" +msgstr "按键标签" + msgid "Unicode" msgstr "Unicode" @@ -230,11 +341,14 @@ msgid "Global Position" msgstr "全局位置" msgid "Factor" -msgstr "因素" +msgstr "系数" msgid "Button Index" msgstr "按钮索引" +msgid "Double Click" +msgstr "双击" + msgid "Tilt" msgstr "倾斜" @@ -259,6 +373,9 @@ msgstr "轴值" msgid "Index" msgstr "索引" +msgid "Double Tap" +msgstr "双击" + msgid "Action" msgstr "动作" @@ -286,9 +403,24 @@ msgstr "控制器值" msgid "Shortcut" msgstr "快捷键" +msgid "Events" +msgstr "事件" + +msgid "Include Navigational" +msgstr "包含导航文件" + +msgid "Include Hidden" +msgstr "包含隐藏文件" + msgid "Big Endian" msgstr "大端序" +msgid "Network" +msgstr "网络" + +msgid "Page Size" +msgstr "页大小" + msgid "Blocking Mode Enabled" msgstr "启用阻塞模式" @@ -296,7 +428,7 @@ msgid "Connection" msgstr "连接" msgid "Read Chunk Size" -msgstr "加载块大小" +msgstr "读取块大小" msgid "Data" msgstr "数据" @@ -304,14 +436,20 @@ msgstr "数据" msgid "Object ID" msgstr "对象 ID" +msgid "Original Class" +msgstr "原始类" + +msgid "Recording Properties" +msgstr "记录属性" + msgid "Encode Buffer Max Size" -msgstr "编码缓冲区大小上限" +msgstr "编码缓冲区最大大小" msgid "Input Buffer Max Size" -msgstr "输入缓冲区大小上限" +msgstr "输入缓冲区最大大小" msgid "Output Buffer Max Size" -msgstr "输出缓冲区大小上限" +msgstr "输出缓冲区最大大小" msgid "Stream Peer" msgstr "流对等体" @@ -319,15 +457,15 @@ msgstr "流对等体" msgid "Resource" msgstr "资源" +msgid "Local to Scene" +msgstr "本地于场景" + msgid "Path" msgstr "路径" msgid "Data Array" msgstr "数据数组" -msgid "Blocking Handshake" -msgstr "阻塞握手" - msgid "Max Pending Connections" msgstr "最大挂起连接数" @@ -337,6 +475,18 @@ msgstr "偏移" msgid "Cell Size" msgstr "单元格大小" +msgid "Jumping Enabled" +msgstr "启用跳跃" + +msgid "Default Compute Heuristic" +msgstr "默认计算启发" + +msgid "Default Estimate Heuristic" +msgstr "默认预估启发" + +msgid "Diagonal Mode" +msgstr "对角模式" + msgid "Seed" msgstr "种子" @@ -346,6 +496,24 @@ msgstr "状态" msgid "Source Code" msgstr "源代码" +msgid "TLS" +msgstr "TLS" + +msgid "Threading" +msgstr "多线程" + +msgid "Worker Pool" +msgstr "工作池" + +msgid "Max Threads" +msgstr "最大线程数" + +msgid "Use System Threads for Low Priority Tasks" +msgstr "将系统线程用于低优先级任务" + +msgid "Low Priority Thread Ratio" +msgstr "低优先级线程比率" + msgid "Locale" msgstr "区域" @@ -355,15 +523,36 @@ msgstr "测试" msgid "Fallback" msgstr "回退" +msgid "Pseudolocalization" +msgstr "伪本地化" + +msgid "Use Pseudolocalization" +msgstr "使用伪本地化" + +msgid "Replace With Accents" +msgstr "使用重音符替换" + +msgid "Double Vowels" +msgstr "元音双写" + +msgid "Fake BiDi" +msgstr "伪 BiDi" + msgid "Override" msgstr "覆盖" +msgid "Expansion Ratio" +msgstr "扩展比" + msgid "Prefix" msgstr "前缀" msgid "Suffix" msgstr "后缀" +msgid "Skip Placeholders" +msgstr "跳过占位符" + msgid "Rotation" msgstr "旋转" @@ -388,6 +577,9 @@ msgstr "入点手柄" msgid "Out Handle" msgstr "出点手柄" +msgid "Handle Mode" +msgstr "手柄模式" + msgid "Stream" msgstr "流" @@ -403,21 +595,24 @@ msgstr "动画" msgid "Easing" msgstr "缓入缓出" -msgid "Interface" -msgstr "界面" - -msgid "Editors" -msgstr "各编辑器" - -msgid "Network" -msgstr "网络" +msgid "Debug Adapter" +msgstr "调试适配器" msgid "Remote Port" msgstr "远程端口" +msgid "Request Timeout" +msgstr "请求超时" + +msgid "Sync Breakpoints" +msgstr "同步断点" + msgid "Debugger" msgstr "调试器" +msgid "Auto Switch to Remote Scene Tree" +msgstr "自动切换到远程场景树" + msgid "Remote Scene Tree Refresh Interval" msgstr "远程场景树刷新间隔" @@ -436,6 +631,9 @@ msgstr "访问" msgid "Display Mode" msgstr "显示模式" +msgid "File Mode" +msgstr "文件模式" + msgid "Current Dir" msgstr "当前目录" @@ -457,6 +655,9 @@ msgstr "导入" msgid "Reimport Missing Imported Files" msgstr "重新导入缺失的已导入文件" +msgid "Use Multiple Threads" +msgstr "使用多线程" + msgid "Text Editor" msgstr "文本编辑器" @@ -478,11 +679,20 @@ msgstr "可勾选" msgid "Checked" msgstr "已勾选" +msgid "Draw Warning" +msgstr "绘制警告" + msgid "Keying" msgstr "制作关键帧" -msgid "Main Scene" -msgstr "主场景" +msgid "Deletable" +msgstr "可删除" + +msgid "Interface" +msgstr "界面" + +msgid "Save on Focus Loss" +msgstr "焦点丢失时保存" msgid "Show Update Spinner" msgstr "显示更新旋转图" @@ -496,6 +706,9 @@ msgstr "设置本地化" msgid "Scene Tabs" msgstr "场景选项卡" +msgid "Restore Scenes on Load" +msgstr "加载时恢复场景" + msgid "Inspector" msgstr "检查器" @@ -517,9 +730,18 @@ msgstr "横向编辑 Vector2" msgid "Horizontal Vector Types Editing" msgstr "横向编辑 Vector 类型" +msgid "Open Resources in Current Inspector" +msgstr "在当前检查器中打开资源" + +msgid "Resources to Open in New Inspector" +msgstr "在新检查器中打开的资源" + msgid "Default Color Picker Mode" msgstr "默认取色器模式" +msgid "Default Color Picker Shape" +msgstr "默认取色器形状" + msgid "Distraction Free Mode" msgstr "专注模式" @@ -544,6 +766,15 @@ msgstr "编辑器语言" msgid "Display Scale" msgstr "显示缩放" +msgid "Enable Pseudolocalization" +msgstr "启用伪本地化" + +msgid "Use Embedded Menu" +msgstr "使用嵌入式菜单" + +msgid "Expand to Title" +msgstr "扩展至标题栏" + msgid "Custom Display Scale" msgstr "自定义显示缩放" @@ -553,9 +784,24 @@ msgstr "主字体大小" msgid "Code Font Size" msgstr "代码字体大小" +msgid "Code Font Contextual Ligatures" +msgstr "代码字体上下文连字" + +msgid "Code Font Custom OpenType Features" +msgstr "代码字体自定义 OpenType 功能" + +msgid "Code Font Custom Variations" +msgstr "代码字体自定义变体" + +msgid "Font Antialiasing" +msgstr "字体抗锯齿" + msgid "Font Hinting" msgstr "字体微调" +msgid "Font Subpixel Positioning" +msgstr "字体次像素定位" + msgid "Main Font" msgstr "主字体" @@ -577,15 +823,36 @@ msgstr "单独的专注模式" msgid "Automatically Open Screenshots" msgstr "自动打开截图" +msgid "Single Window Mode" +msgstr "单窗口模式" + msgid "Mouse Extra Buttons Navigate History" msgstr "使用专门鼠标按键查看历史" +msgid "Save Each Scene on Quit" +msgstr "退出时保存各场景" + +msgid "Accept Dialog Cancel OK Buttons" +msgstr "接受对话框取消/确定按钮" + +msgid "Show Internal Errors in Toast Notifications" +msgstr "在 Toast 通知中显示内部错误" + +msgid "Max Array Dictionary Items per Page" +msgstr "每页最大数组字典条目数" + +msgid "Show Low Level OpenType Features" +msgstr "显示低级 OpenType 功能" + msgid "Theme" msgstr "主题" msgid "Preset" msgstr "预设" +msgid "Icon and Font Color" +msgstr "图标与字体颜色" + msgid "Base Color" msgstr "基础颜色" @@ -595,6 +862,12 @@ msgstr "强调颜色" msgid "Contrast" msgstr "对比度" +msgid "Draw Extra Borders" +msgstr "绘制额外边框" + +msgid "Icon Saturation" +msgstr "图标饱和度" + msgid "Relationship Line Opacity" msgstr "关系线不透明度" @@ -610,12 +883,36 @@ msgstr "额外间距" msgid "Custom Theme" msgstr "自定义主题" +msgid "Display Close Button" +msgstr "显示关闭按钮" + +msgid "Show Thumbnail on Hover" +msgstr "悬停时显示缩略图" + +msgid "Maximum Width" +msgstr "最大宽度" + msgid "Show Script Button" msgstr "显示脚本按钮" msgid "FileSystem" msgstr "文件系统" +msgid "External Programs" +msgstr "外部程序" + +msgid "Raster Image Editor" +msgstr "栅格图编辑器" + +msgid "Vector Image Editor" +msgstr "矢量图编辑器" + +msgid "Audio Editor" +msgstr "音频编辑器" + +msgid "3D Model Editor" +msgstr "3D 模型编辑器" + msgid "Directories" msgstr "目录" @@ -631,6 +928,9 @@ msgstr "保存时" msgid "Compress Binary Resources" msgstr "压缩二进制资源" +msgid "Safe Save on Backup then Rename" +msgstr "安全保存备份后重命名" + msgid "File Dialog" msgstr "文件对话框" @@ -644,19 +944,25 @@ msgid "Scene Tree" msgstr "场景树" msgid "Start Create Dialog Fully Expanded" -msgstr "默认完全展开创建对话框" +msgstr "打开创建对话框时完全展开" + +msgid "Auto Expand to Selected" +msgstr "自动展开至选定项" msgid "Always Show Folders" msgstr "总是显示文件夹" +msgid "Textfile Extensions" +msgstr "文本文件扩展名" + msgid "Property Editor" msgstr "属性编辑器" msgid "Auto Refresh Interval" -msgstr "自动刷新频率" +msgstr "自动刷新间隔" msgid "Subresource Hue Tint" -msgstr "子资源彩色显示" +msgstr "子资源色相调整" msgid "Color Theme" msgstr "颜色主题" @@ -670,20 +976,29 @@ msgstr "光标" msgid "Caret Blink" msgstr "光标闪烁" +msgid "Caret Blink Interval" +msgstr "光标闪烁间隔" + msgid "Highlight Current Line" msgstr "高亮当前行" msgid "Highlight All Occurrences" msgstr "高亮所有匹配项" +msgid "Guidelines" +msgstr "辅助线" + msgid "Show Line Length Guidelines" msgstr "显示行长度参考线" msgid "Line Length Guideline Soft Column" -msgstr "行长度参考线软列数" +msgstr "行长度软参考线列数" msgid "Line Length Guideline Hard Column" -msgstr "行长度参考线硬列数" +msgstr "行长度硬参考线列数" + +msgid "Gutters" +msgstr "装订线" msgid "Show Line Numbers" msgstr "显示行号" @@ -709,12 +1024,18 @@ msgstr "显示小地图" msgid "Minimap Width" msgstr "小地图宽度" +msgid "Lines" +msgstr "行" + msgid "Code Folding" msgstr "代码折叠" msgid "Word Wrap" msgstr "自动换行" +msgid "Whitespace" +msgstr "空格" + msgid "Draw Tabs" msgstr "绘制制表符" @@ -724,15 +1045,30 @@ msgstr "绘制空格" msgid "Line Spacing" msgstr "行间距" +msgid "Behavior" +msgstr "行为" + msgid "Navigation" msgstr "导航" +msgid "Move Caret on Right Click" +msgstr "在右键单击时移动光标" + +msgid "Scroll Past End of File" +msgstr "滚动越过文件末尾" + msgid "Smooth Scrolling" msgstr "平滑滚动" msgid "V Scroll Speed" msgstr "垂直滚动速度" +msgid "Drag and Drop Selection" +msgstr "拖放选区" + +msgid "Stay in Script Editor on Node Selected" +msgstr "选择节点时停留在脚本编辑器" + msgid "Indent" msgstr "缩进" @@ -742,9 +1078,21 @@ msgstr "自动缩进" msgid "Files" msgstr "文件" +msgid "Trim Trailing Whitespace on Save" +msgstr "保存时移除行尾空格" + msgid "Autosave Interval Secs" msgstr "自动保存间隔秒数" +msgid "Restore Scripts on Load" +msgstr "加载时恢复脚本" + +msgid "Convert Indent on Save" +msgstr "保存时转换缩进" + +msgid "Auto Reload Scripts on External Change" +msgstr "外部修改时自动重新加载脚本" + msgid "Script List" msgstr "脚本列表" @@ -790,17 +1138,23 @@ msgstr "帮助源码字体大小" msgid "Help Title Font Size" msgstr "帮助标题字体大小" +msgid "Class Reference Examples" +msgstr "类参考示例" + +msgid "Editors" +msgstr "各编辑器" + msgid "Grid Map" -msgstr "网格地图" +msgstr "栅格地图" msgid "Pick Distance" msgstr "拾取距离" msgid "Primary Grid Color" -msgstr "主网格颜色" +msgstr "主栅格颜色" msgid "Secondary Grid Color" -msgstr "次网格颜色" +msgstr "次栅格颜色" msgid "Selection Box Color" msgstr "选择框颜色" @@ -811,6 +1165,9 @@ msgstr "3D 小工具" msgid "Gizmo Colors" msgstr "小工具颜色" +msgid "Instantiated" +msgstr "实例化的" + msgid "Joint" msgstr "关节" @@ -818,28 +1175,28 @@ msgid "Shape" msgstr "形状" msgid "Primary Grid Steps" -msgstr "主网格步长" +msgstr "主栅格步长" msgid "Grid Size" -msgstr "网格大小" +msgstr "栅格大小" msgid "Grid Division Level Max" -msgstr "网格细分级别上限" +msgstr "栅格细分级别上限" msgid "Grid Division Level Min" -msgstr "网格细分级别下限" +msgstr "栅格细分级别下限" msgid "Grid Division Level Bias" -msgstr "网格细分级别偏置" +msgstr "栅格细分级别偏置" msgid "Grid XZ Plane" -msgstr "网格 XZ 平面" +msgstr "栅格 XZ 平面" msgid "Grid XY Plane" -msgstr "网格 XY 平面" +msgstr "栅格 XY 平面" msgid "Grid YZ Plane" -msgstr "网格 YZ 平面" +msgstr "栅格 YZ 平面" msgid "Default FOV" msgstr "默认 FOV" @@ -878,7 +1235,7 @@ msgid "Zoom Modifier" msgstr "缩放修饰键" msgid "Warped Mouse Panning" -msgstr "鼠标平移跳跃" +msgstr "鼠标持续平移" msgid "Navigation Feel" msgstr "导航体验" @@ -892,9 +1249,6 @@ msgstr "环绕惯性" msgid "Translation Inertia" msgstr "平移惯性" -msgid "Zoom Inertia" -msgstr "缩放关心" - msgid "Freelook" msgstr "自由观看" @@ -917,7 +1271,7 @@ msgid "Freelook Speed Zoom Link" msgstr "自由观看速度缩放关联" msgid "Grid Color" -msgstr "网格颜色" +msgstr "栅格颜色" msgid "Guides Color" msgstr "参考线颜色" @@ -944,7 +1298,7 @@ msgid "Bone Outline Color" msgstr "骨骼轮廓颜色" msgid "Bone Outline Size" -msgstr "骨骼轮廓颜色" +msgstr "骨骼轮廓大小" msgid "Viewport Border Color" msgstr "视口边框颜色" @@ -952,14 +1306,35 @@ msgstr "视口边框颜色" msgid "Constrain Editor View" msgstr "限制编辑器视图" +msgid "Panning" +msgstr "平移" + +msgid "2D Editor Panning Scheme" +msgstr "2D 编辑器平移方案" + +msgid "Sub Editors Panning Scheme" +msgstr "子编辑器平移方案" + +msgid "Animation Editors Panning Scheme" +msgstr "动画编辑器平移方案" + msgid "Simple Panning" msgstr "简单平移" +msgid "2D Editor Pan Speed" +msgstr "2D 编辑器平移速度" + +msgid "Tiles Editor" +msgstr "图块编辑器" + msgid "Display Grid" -msgstr "显示网格" +msgstr "显示栅格" + +msgid "Polygon Editor" +msgstr "多边形编辑器" msgid "Point Grab Radius" -msgstr "句柄点半径" +msgstr "点抓取半径" msgid "Show Previous Outline" msgstr "显示旧有轮廓" @@ -988,6 +1363,15 @@ msgstr "可视化编辑器" msgid "Minimap Opacity" msgstr "小地图不透明度" +msgid "Lines Curvature" +msgstr "线条曲率" + +msgid "Visual Shader" +msgstr "可视化着色器" + +msgid "Port Preview Size" +msgstr "端口预览大小" + msgid "Window Placement" msgstr "窗口放置" @@ -1012,9 +1396,21 @@ msgstr "输出" msgid "Font Size" msgstr "字体大小" +msgid "Always Clear Output on Play" +msgstr "运行时清空输出" + +msgid "Always Open Output on Play" +msgstr "运行时打开输出" + +msgid "Always Close Output on Stop" +msgstr "停止时关闭输出" + msgid "Remote Host" msgstr "远程主机" +msgid "Editor TLS Certificates" +msgstr "编辑器 TLS 证书" + msgid "Profiler Frame History Size" msgstr "性能分析器帧历史大小" @@ -1033,6 +1429,9 @@ msgstr "项目管理器" msgid "Sorting Order" msgstr "排序方式" +msgid "Default Renderer" +msgstr "默认渲染器" + msgid "Highlighting" msgstr "高亮" @@ -1075,6 +1474,9 @@ msgstr "补全存在颜色" msgid "Completion Scroll Color" msgstr "补全滚动条颜色" +msgid "Completion Scroll Hovered Color" +msgstr "补全滚动条悬停颜色" + msgid "Completion Font Color" msgstr "补全字体颜色" @@ -1097,7 +1499,7 @@ msgid "Text Selected Color" msgstr "文本选中颜色" msgid "Selection Color" -msgstr "选中颜色" +msgstr "选区颜色" msgid "Brace Mismatch Color" msgstr "括号不匹配颜色" @@ -1153,12 +1555,18 @@ msgstr "缩放" msgid "Export" msgstr "导出" +msgid "Convert Text Resources to Binary" +msgstr "将文本资源转换为二进制" + msgid "Custom Template" msgstr "自定义模板" msgid "Release" msgstr "发布" +msgid "Export Console Script" +msgstr "导出命令行脚本" + msgid "Binary Format" msgstr "二进制格式" @@ -1183,6 +1591,12 @@ msgstr "ETC2" msgid "No BPTC Fallbacks" msgstr "无 BPTC 回退" +msgid "SSH" +msgstr "SSH" + +msgid "SCP" +msgstr "SCP" + msgid "Export Path" msgstr "导出路径" @@ -1192,20 +1606,74 @@ msgstr "文件服务器" msgid "Password" msgstr "密码" +msgid "Antialiasing" +msgstr "抗锯齿" + +msgid "Generate Mipmaps" +msgstr "生成 Mipmap" + +msgid "Multichannel Signed Distance Field" +msgstr "多通道带符号距离场" + +msgid "MSDF Pixel Range" +msgstr "MSDF 像素范围" + +msgid "MSDF Size" +msgstr "MSDF 大小" + +msgid "Allow System Fallback" +msgstr "允许系统回退" + +msgid "Force Autohinter" +msgstr "强制自动微调" + msgid "Hinting" msgstr "微调" +msgid "Subpixel Positioning" +msgstr "次像素定位" + msgid "Oversampling" msgstr "过采样" +msgid "Metadata Overrides" +msgstr "元数据覆盖" + +msgid "Language Support" +msgstr "语言支持" + +msgid "Script Support" +msgstr "脚本支持" + +msgid "OpenType Features" +msgstr "OpenType 特性" + +msgid "Fallbacks" +msgstr "回退" + msgid "Compress" msgstr "压缩" +msgid "Language" +msgstr "语言" + msgid "Outline Size" msgstr "轮廓大小" msgid "Variation" -msgstr "变化" +msgstr "变体" + +msgid "OpenType" +msgstr "OpenType" + +msgid "Embolden" +msgstr "加粗" + +msgid "Face Index" +msgstr "字面索引" + +msgid "Transform" +msgstr "变换" msgid "Collada" msgstr "Collada" @@ -1213,9 +1681,39 @@ msgstr "Collada" msgid "Use Ambient" msgstr "使用环境光" +msgid "Retarget" +msgstr "重定向" + +msgid "Bone Renamer" +msgstr "骨骼命名器" + +msgid "Rename Bones" +msgstr "重命名骨骼" + +msgid "Unique Node" +msgstr "唯一节点" + msgid "Make Unique" msgstr "唯一化" +msgid "Skeleton Name" +msgstr "骨架名称" + +msgid "Rest Fixer" +msgstr "放松修复器" + +msgid "Apply Node Transforms" +msgstr "应用节点变换" + +msgid "Normalize Position Tracks" +msgstr "归一化位置轨道" + +msgid "Overwrite Axis" +msgstr "覆盖轴" + +msgid "Fix Silhouette" +msgstr "修复剪影" + msgid "Enable" msgstr "启用" @@ -1225,6 +1723,21 @@ msgstr "过滤" msgid "Threshold" msgstr "阈值" +msgid "Base Height Adjustment" +msgstr "基础高度调整" + +msgid "Remove Tracks" +msgstr "移除轨道" + +msgid "Except Bone Transform" +msgstr "排除骨骼变换" + +msgid "Unimportant Positions" +msgstr "非重要位置" + +msgid "Unmapped Bones" +msgstr "未映射骨骼" + msgid "Create From" msgstr "创建自" @@ -1234,17 +1747,29 @@ msgstr "分隔符" msgid "Preload" msgstr "预加载" +msgid "Character Ranges" +msgstr "字符范围" + msgid "Columns" msgstr "列数" -msgid "Mode" -msgstr "模式" +msgid "Rows" +msgstr "行数" + +msgid "Image Margin" +msgstr "图片边距" + +msgid "Character Margin" +msgstr "字符边距" msgid "Lossy Quality" msgstr "有损质量" -msgid "BPTC LDR" -msgstr "BPTC LDR" +msgid "HDR Compression" +msgstr "HDR 压缩" + +msgid "Channel Pack" +msgstr "通道打包" msgid "Mipmaps" msgstr "Mipmap" @@ -1264,6 +1789,9 @@ msgstr "水平" msgid "Vertical" msgstr "垂直" +msgid "Arrangement" +msgstr "排列" + msgid "Layout" msgstr "布局" @@ -1279,15 +1807,36 @@ msgstr "缩放网格" msgid "Offset Mesh" msgstr "偏移网格" +msgid "Optimize Mesh" +msgstr "优化网格" + +msgid "Skip Import" +msgstr "跳过导入" + msgid "NavMesh" msgstr "导航网格" +msgid "Body Type" +msgstr "实体类型" + +msgid "Shape Type" +msgstr "形状类型" + +msgid "Decomposition" +msgstr "拆分" + msgid "Advanced" msgstr "高级" msgid "Precision" msgstr "精度" +msgid "Symmetry Planes Clipping Bias" +msgstr "对称平面裁剪偏置" + +msgid "Normalize Mesh" +msgstr "归一化网格" + msgid "Height" msgstr "高度" @@ -1297,11 +1846,35 @@ msgstr "半径" msgid "Occluder" msgstr "遮挡器" +msgid "Simplification Distance" +msgstr "化简距离" + +msgid "Save to File" +msgstr "保存为文件" + msgid "Enabled" msgstr "启用" +msgid "Shadow Meshes" +msgstr "阴影网格" + +msgid "Lightmap UV" +msgstr "光照贴图 UV" + +msgid "Lods" +msgstr "LOD" + +msgid "Normal Split Angle" +msgstr "法线拆分角度" + +msgid "Normal Merge Angle" +msgstr "法线合并角度" + +msgid "Use External" +msgstr "使用外部" + msgid "Loop Mode" -msgstr "混换模式" +msgstr "循环模式" msgid "Keep Custom Tracks" msgstr "保留自定义轨道" @@ -1309,14 +1882,20 @@ msgstr "保留自定义轨道" msgid "Optimizer" msgstr "优化器" +msgid "Max Velocity Error" +msgstr "最大速度误差" + msgid "Max Angular Error" msgstr "最大角度误差" -msgid "Compression" -msgstr "压缩" +msgid "Max Precision Error" +msgstr "最大精度误差" -msgid "Page Size" -msgstr "页大小" +msgid "Import Tracks" +msgstr "导入轨道" + +msgid "Bone Map" +msgstr "骨骼映射" msgid "Nodes" msgstr "节点" @@ -1327,6 +1906,9 @@ msgstr "根类型" msgid "Root Name" msgstr "根名称" +msgid "Apply Root Scale" +msgstr "应用根缩放" + msgid "Root Scale" msgstr "根缩放" @@ -1336,6 +1918,12 @@ msgstr "网格" msgid "Ensure Tangents" msgstr "确保切线" +msgid "Generate Lods" +msgstr "生成 LOD" + +msgid "Create Shadow Meshes" +msgstr "创建阴影网格" + msgid "Light Baking" msgstr "光照烘焙" @@ -1351,12 +1939,18 @@ msgstr "使用具名蒙皮" msgid "FPS" msgstr "FPS" +msgid "Import Script" +msgstr "导入脚本" + msgid "Normal Map" msgstr "法线贴图" msgid "Roughness" msgstr "粗糙度" +msgid "Src Normal" +msgstr "原法线" + msgid "Process" msgstr "处理" @@ -1369,21 +1963,39 @@ msgstr "预乘 Alpha" msgid "Normal Map Invert Y" msgstr "法线贴图反转 Y" +msgid "HDR as sRGB" +msgstr "HDR 作为 sRGB" + +msgid "HDR Clamp Exposure" +msgstr "HDR 限制曝光" + msgid "Size Limit" msgstr "大小限制" msgid "Detect 3D" msgstr "检测 3D" +msgid "Compress To" +msgstr "压缩至" + msgid "SVG" msgstr "SVG" +msgid "Scale With Editor Scale" +msgstr "依照编辑器比例缩放" + +msgid "Convert Colors With Editor Theme" +msgstr "依照编辑器主题转换颜色" + msgid "Atlas File" msgstr "图集文件" msgid "Import Mode" msgstr "导入模式" +msgid "Crop to Region" +msgstr "裁剪至区域" + msgid "Trim Alpha Border From Region" msgstr "从区域修剪 Alpha 边框" @@ -1418,7 +2030,7 @@ msgid "Loop End" msgstr "循环终点" msgid "Asset Library" -msgstr "素材库" +msgstr "资产库" msgid "Use Threads" msgstr "使用线程" @@ -1426,6 +2038,15 @@ msgstr "使用线程" msgid "Available URLs" msgstr "可用 URL" +msgid "Unset" +msgstr "未设置" + +msgid "Set" +msgstr "设置" + +msgid "Missing" +msgstr "缺失" + msgid "Error" msgstr "错误" @@ -1441,15 +2062,30 @@ msgstr "VisibilityNotifier" msgid "Particles" msgstr "粒子" +msgid "Particle Attractor" +msgstr "粒子吸引器" + +msgid "Particle Collision" +msgstr "粒子碰撞" + msgid "Reflection Probe" msgstr "反射探针" +msgid "Decal" +msgstr "贴花" + +msgid "Voxel GI" +msgstr "体素 GI" + msgid "Joint Body A" msgstr "关节实体 A" msgid "Joint Body B" msgstr "关节实体 B" +msgid "Fog Volume" +msgstr "雾体积" + msgid "Manipulator Gizmo Size" msgstr "操作小工具大小" @@ -1459,6 +2095,12 @@ msgstr "操作小工具不透明度" msgid "Show Viewport Rotation Gizmo" msgstr "显示视口旋转小工具" +msgid "Show Viewport Navigation Gizmo" +msgstr "显示视口导航小工具" + +msgid "Auto Reload and Parse Scripts on Save" +msgstr "保存时自动重新加载并解析脚本" + msgid "External" msgstr "外部" @@ -1469,16 +2111,16 @@ msgid "Exec Path" msgstr "可执行文件路径" msgid "Script Temperature Enabled" -msgstr "启用脚本温度" +msgstr "启用脚本热度" msgid "Script Temperature History Size" -msgstr "脚本温度历史大小" +msgstr "脚本热度历史大小" msgid "Group Help Pages" msgstr "帮助页分组" msgid "Sort Scripts By" -msgstr "脚本排序" +msgstr "脚本排序方式" msgid "List Script Names As" msgstr "列表中的脚本名称" @@ -1487,17 +2129,38 @@ msgid "Exec Flags" msgstr "执行参数" msgid "Skeleton" -msgstr "Skeleton" +msgstr "骨架" + +msgid "Selected Bone" +msgstr "选中骨骼" + +msgid "Gizmo Settings" +msgstr "小工具设置" + +msgid "Bone Shape" +msgstr "骨骼形状" + +msgid "Shader Language" +msgstr "着色器语言" msgid "Warnings" msgstr "警告" +msgid "Treat Warnings as Errors" +msgstr "将警告当作错误" + msgid "ID" msgstr "ID" msgid "Version Control" msgstr "版本控制" +msgid "Plugin Name" +msgstr "插件名" + +msgid "Autoload on Startup" +msgstr "启动时自动加载" + msgid "Username" msgstr "用户名" @@ -1507,12 +2170,21 @@ msgstr "SSH 公钥路径" msgid "SSH Private Key Path" msgstr "SSH 私钥路径" +msgid "Edited Property" +msgstr "编辑的属性" + msgid "Show Scene Tree Root Selection" msgstr "显示场景树根选择" +msgid "Derive Script Globals by Name" +msgstr "按全局脚本名称派生" + msgid "Use Favorites Root Selection" msgstr "使用收藏根选择" +msgid "Flush stdout on Print" +msgstr "打印时清空标准输出" + msgid "File Logging" msgstr "文件日志" @@ -1525,6 +2197,18 @@ msgstr "日志路径" msgid "Driver" msgstr "驱动" +msgid "GL Compatibility" +msgstr "GL 兼容性" + +msgid "Renderer" +msgstr "渲染器" + +msgid "Rendering Method" +msgstr "渲染方法" + +msgid "Include Text Server Data" +msgstr "包括文本服务器数据" + msgid "DPI" msgstr "DPI" @@ -1543,9 +2227,6 @@ msgstr "线程" msgid "Thread Model" msgstr "线程模型" -msgid "Audio" -msgstr "音频" - msgid "Handheld" msgstr "手持设备" @@ -1555,6 +2236,9 @@ msgstr "朝向" msgid "V-Sync" msgstr "垂直同步" +msgid "V-Sync Mode" +msgstr "垂直同步模式" + msgid "Common" msgstr "通用" @@ -1564,6 +2248,9 @@ msgstr "标准输出" msgid "Print FPS" msgstr "打印 FPS" +msgid "Print GPU Profile" +msgstr "输出 GPU 配置" + msgid "Verbose stdout" msgstr "冗长标准输出" @@ -1573,48 +2260,78 @@ msgstr "低处理器模式" msgid "iOS" msgstr "iOS" +msgid "Allow High Refresh Rate" +msgstr "允许高刷新率" + msgid "Hide Home Indicator" msgstr "隐藏 Home 指示条" +msgid "Hide Status Bar" +msgstr "隐藏状态栏" + +msgid "Input Devices" +msgstr "输入设备" + +msgid "Pointing" +msgstr "指点" + +msgid "XR" +msgstr "XR" + +msgid "OpenXR" +msgstr "OpenXR" + +msgid "Submit Depth Buffer" +msgstr "提交深度缓冲区" + msgid "Boot Splash" msgstr "启动页" msgid "BG Color" msgstr "背景色" -msgid "Input Devices" -msgstr "输入设备" +msgid "Pen Tablet" +msgstr "数位板" msgid "Environment" msgstr "环境" +msgid "Defaults" +msgstr "默认" + msgid "Default Clear Color" msgstr "默认清屏颜色" msgid "Show Image" msgstr "显示图像" +msgid "Image" +msgstr "图像" + msgid "Fullsize" msgstr "完整大小" msgid "Use Filter" msgstr "使用过滤" +msgid "Icon" +msgstr "图标" + msgid "Buffering" msgstr "缓冲" msgid "Agile Event Flushing" msgstr "敏捷事件处理" -msgid "Pointing" -msgstr "指点" - msgid "Emulate Touch From Mouse" msgstr "用鼠标模拟触摸" msgid "Emulate Mouse From Touch" msgstr "用触摸模拟鼠标" +msgid "Text Driver" +msgstr "文本驱动" + msgid "Mouse Cursor" msgstr "鼠标光标" @@ -1624,6 +2341,9 @@ msgstr "自定义图像热区" msgid "Tooltip Position Offset" msgstr "工具提示位置偏移" +msgid "Dotnet" +msgstr ".NET" + msgid "Project" msgstr "项目" @@ -1636,11 +2356,26 @@ msgstr "解决方案目录" msgid "Main Loop Type" msgstr "主循环类型" +msgid "Subwindows" +msgstr "子窗口" + +msgid "Embed Subwindows" +msgstr "嵌入式子窗口" + +msgid "Stretch" +msgstr "拉伸" + +msgid "Aspect" +msgstr "比例" + msgid "Auto Accept Quit" msgstr "自动接受退出" -msgid "GUI" -msgstr "GUI" +msgid "Quit on Go Back" +msgstr "返回时退出" + +msgid "Snap Controls to Pixels" +msgstr "控件像素吸附" msgid "Fonts" msgstr "字体" @@ -1651,6 +2386,15 @@ msgstr "动态字体" msgid "Use Oversampling" msgstr "使用过采样" +msgid "Textures" +msgstr "纹理" + +msgid "Default Texture Filter" +msgstr "默认纹理过滤器" + +msgid "Default Texture Repeat" +msgstr "默认纹理重复" + msgid "Operation" msgstr "操作" @@ -1672,6 +2416,9 @@ msgstr "碰撞层" msgid "Collision Mask" msgstr "碰撞遮罩" +msgid "Collision Priority" +msgstr "碰撞优先级" + msgid "Flip Faces" msgstr "翻转表面" @@ -1753,9 +2500,21 @@ msgstr "GDScript" msgid "Function Definition Color" msgstr "函数定义颜色" +msgid "Global Function Color" +msgstr "全局函数颜色" + msgid "Node Path Color" msgstr "节点路径颜色" +msgid "Node Reference Color" +msgstr "节点引用颜色" + +msgid "Annotation Color" +msgstr "注解颜色" + +msgid "String Name Color" +msgstr "StringName 颜色" + msgid "Exclude Addons" msgstr "排除插件" @@ -1765,6 +2524,9 @@ msgstr "语言服务器" msgid "Enable Smart Resolve" msgstr "启用智能解析" +msgid "Show Native Symbols in Editor" +msgstr "编辑器中显示原生符号" + msgid "Use Thread" msgstr "使用线程" @@ -1774,6 +2536,9 @@ msgstr "颜色" msgid "Intensity" msgstr "强度" +msgid "Light Type" +msgstr "光源类型" + msgid "Range" msgstr "范围" @@ -1834,8 +2599,8 @@ msgstr "基础路径" msgid "Root Nodes" msgstr "根节点" -msgid "Textures" -msgstr "纹理" +msgid "Texture Samplers" +msgstr "纹理采样器" msgid "Images" msgstr "图像" @@ -1855,12 +2620,24 @@ msgstr "唯一动画名称" msgid "Skeletons" msgstr "骨架" +msgid "Create Animations" +msgstr "创建动画" + msgid "Animations" msgstr "动画" +msgid "Blender" +msgstr "Blender" + +msgid "Blender 3 Path" +msgstr "Blender 3 路径" + msgid "FBX" msgstr "FBX" +msgid "FBX2glTF Path" +msgstr "FBX2glTF 路径" + msgid "Buffer View" msgstr "缓冲视图" @@ -1970,7 +2747,13 @@ msgid "Src Image" msgstr "来源图像" msgid "Sampler" -msgstr "采样 Sampler" +msgstr "采样器" + +msgid "Mag Filter" +msgstr "放大过滤器" + +msgid "Min Filter" +msgstr "缩小过滤器" msgid "Palette Min Width" msgstr "调色板最小宽度" @@ -2017,6 +2800,9 @@ msgstr "烘焙导航" msgid "Lightmapping" msgstr "光照贴图" +msgid "Bake Quality" +msgstr "烘焙质量" + msgid "Low Quality Ray Count" msgstr "低等质量射线数" @@ -2029,6 +2815,45 @@ msgstr "高等质量射线数" msgid "Ultra Quality Ray Count" msgstr "超级质量射线数" +msgid "Bake Performance" +msgstr "烘焙性能" + +msgid "Max Rays per Pass" +msgstr "每个通道的最大射线数" + +msgid "Region Size" +msgstr "区块大小" + +msgid "Low Quality Probe Ray Count" +msgstr "低等质量探针射线计数" + +msgid "Medium Quality Probe Ray Count" +msgstr "中等质量探针射线计数" + +msgid "High Quality Probe Ray Count" +msgstr "高等质量探针射线计数" + +msgid "Ultra Quality Probe Ray Count" +msgstr "超高质量探针射线计数" + +msgid "Max Rays per Probe Pass" +msgstr "探针每个阶段的最大射线数" + +msgid "Primitive Meshes" +msgstr "基本网格" + +msgid "Texel Size" +msgstr "纹素大小" + +msgid "BPM" +msgstr "BPM" + +msgid "Beat Count" +msgstr "节拍计数" + +msgid "Bar Beats" +msgstr "节拍" + msgid "Loop Offset" msgstr "循环偏移" @@ -2050,6 +2875,33 @@ msgstr "K1" msgid "K2" msgstr "K2" +msgid "Spawnable Scenes" +msgstr "可出生场景" + +msgid "Spawn Path" +msgstr "出生路径" + +msgid "Spawn Limit" +msgstr "出生限制" + +msgid "Root Path" +msgstr "根路径" + +msgid "Replication Interval" +msgstr "复制间隔" + +msgid "Visibility Update Mode" +msgstr "可见性更新模式" + +msgid "Public Visibility" +msgstr "公共可见性" + +msgid "Auth Callback" +msgstr "认证回调" + +msgid "Auth Timeout" +msgstr "认证超时" + msgid "Allow Object Decoding" msgstr "允许解码对象" @@ -2059,18 +2911,39 @@ msgstr "拒绝新连接" msgid "Server Relay" msgstr "服务器接力" +msgid "Noise Type" +msgstr "噪声类型" + +msgid "Frequency" +msgstr "频率" + +msgid "Fractal" +msgstr "分形" + msgid "Octaves" msgstr "倍频" msgid "Lacunarity" -msgstr "缺项性" +msgstr "空隙度" msgid "Gain" msgstr "增益" +msgid "Ping Pong Strength" +msgstr "乒乓强度" + +msgid "Distance Function" +msgstr "距离函数" + +msgid "Jitter" +msgstr "抖动" + msgid "Return Type" msgstr "返回类型" +msgid "Fractal Type" +msgstr "分形类型" + msgid "Width" msgstr "宽度" @@ -2092,6 +2965,15 @@ msgstr "颜色映射" msgid "Noise" msgstr "噪声" +msgid "Localized Name" +msgstr "本地化名称" + +msgid "Action Type" +msgstr "动作类型" + +msgid "Interaction Profile Path" +msgstr "交互配置路径" + msgid "Subject" msgstr "对象" @@ -2131,15 +3013,30 @@ msgstr "IGD 状态" msgid "Write Mode" msgstr "写模式" -msgid "Limits" -msgstr "限制" - msgid "WebRTC" msgstr "WebRTC" +msgid "Max Channel in Buffer (KB)" +msgstr "通道最大缓冲区大小(KB)" + +msgid "Supported Protocols" +msgstr "支持的协议" + +msgid "Handshake Headers" +msgstr "握手标头" + +msgid "Inbound Buffer Size" +msgstr "入站缓冲区大小" + +msgid "Outbound Buffer Size" +msgstr "出站缓冲区大小" + msgid "Handshake Timeout" msgstr "握手超时" +msgid "Max Queued Packets" +msgstr "最大排队数据包数" + msgid "Session Mode" msgstr "会话模式" @@ -2176,6 +3073,12 @@ msgstr "调试密钥库密码" msgid "Force System User" msgstr "强制系统用户" +msgid "Shutdown ADB on Exit" +msgstr "退出时关闭 ADB" + +msgid "One Click Deploy Clear Previous Install" +msgstr "一键部署并清除先前安装" + msgid "Launcher Icons" msgstr "启动器图标" @@ -2188,12 +3091,6 @@ msgstr "自适应前景 432×432" msgid "Adaptive Background 432 X 432" msgstr "自适应背景 432×432" -msgid "Custom Build" -msgstr "自定义构建" - -msgid "Use Custom Build" -msgstr "使用自定义构建" - msgid "Export Format" msgstr "导出格式" @@ -2242,6 +3139,9 @@ msgstr "签名" msgid "App Category" msgstr "App 分类" +msgid "Retain Data on Uninstall" +msgstr "卸载时保留数据" + msgid "Exclude From Recents" msgstr "从最近列表中排除" @@ -2335,6 +3235,18 @@ msgstr "Spotlight 40×40" msgid "Spotlight 80 X 80" msgstr "Spotlight 80×80" +msgid "Settings 58 X 58" +msgstr "设置 58 X 58" + +msgid "Settings 87 X 87" +msgstr "设置 87 X 87" + +msgid "Notification 40 X 40" +msgstr "通知 40 X 40" + +msgid "Notification 60 X 60" +msgstr "通知 60 X 60" + msgid "Landscape Launch Screens" msgstr "横屏启动画面" @@ -2398,12 +3310,21 @@ msgstr "发布导出方法" msgid "Targeted Device Family" msgstr "目标设备族" +msgid "Bundle Identifier" +msgstr "捆绑包标识符" + msgid "Signature" msgstr "签名" msgid "Short Version" msgstr "短版本" +msgid "Icon Interpolation" +msgstr "图标插值" + +msgid "Launch Screens Interpolation" +msgstr "启动屏幕插值" + msgid "Capabilities" msgstr "能力" @@ -2428,12 +3349,21 @@ msgstr "隐私" msgid "Camera Usage Description" msgstr "相机使用描述" +msgid "Camera Usage Description Localized" +msgstr "相机使用描述本地化" + msgid "Microphone Usage Description" msgstr "麦克风使用描述" +msgid "Microphone Usage Description Localized" +msgstr "麦克风使用描述本地化" + msgid "Photolibrary Usage Description" msgstr "照片图库使用描述" +msgid "Photolibrary Usage Description Localized" +msgstr "照片图库使用描述本地化" + msgid "Storyboard" msgstr "Storyboard" @@ -2458,15 +3388,33 @@ msgstr "自定义背景色" msgid "Architecture" msgstr "架构" +msgid "SSH Remote Deploy" +msgstr "SSH 远程部署" + +msgid "Extra Args SSH" +msgstr "额外 SSH 参数" + +msgid "Extra Args SCP" +msgstr "额外 SCP 参数" + +msgid "Run Script" +msgstr "运行脚本" + +msgid "Cleanup Script" +msgstr "清理脚本" + msgid "macOS" msgstr "macOS" -msgid "Icon" -msgstr "图标" +msgid "rcodesign" +msgstr "rcodesign" msgid "Copyright" msgstr "版权" +msgid "Copyright Localized" +msgstr "版权本地化" + msgid "High Res" msgstr "高分辨率" @@ -2476,6 +3424,12 @@ msgstr "代码签名" msgid "Identity" msgstr "身份" +msgid "Certificate File" +msgstr "证书文件" + +msgid "Certificate Password" +msgstr "证书密码" + msgid "Entitlements" msgstr "授权" @@ -2542,6 +3496,9 @@ msgstr "文件音乐" msgid "Files Movies" msgstr "文件影片" +msgid "Helper Executables" +msgstr "帮助程序" + msgid "Custom Options" msgstr "自定义选项" @@ -2557,36 +3514,75 @@ msgstr "Apple ID 密码" msgid "Apple Team ID" msgstr "Apple 团队 ID" +msgid "API UUID" +msgstr "API UUID" + +msgid "API Key" +msgstr "API 密钥" + +msgid "API Key ID" +msgstr "API 密钥 ID" + msgid "Location Usage Description" msgstr "位置使用描述" +msgid "Location Usage Description Localized" +msgstr "位置使用描述本地化" + msgid "Address Book Usage Description" msgstr "地址簿使用描述" +msgid "Address Book Usage Description Localized" +msgstr "地址簿使用描述本地化" + msgid "Calendar Usage Description" msgstr "日历使用描述" +msgid "Calendar Usage Description Localized" +msgstr "日历使用描述本地化" + msgid "Photos Library Usage Description" msgstr "照片图库使用描述" +msgid "Photos Library Usage Description Localized" +msgstr "照片图库使用描述本地化" + msgid "Desktop Folder Usage Description" msgstr "桌面文件夹使用描述" +msgid "Desktop Folder Usage Description Localized" +msgstr "桌面文件夹使用描述本地化" + msgid "Documents Folder Usage Description" msgstr "文档文件夹使用描述" +msgid "Documents Folder Usage Description Localized" +msgstr "文档文件夹使用描述本地化" + msgid "Downloads Folder Usage Description" msgstr "下载文件夹使用描述" +msgid "Downloads Folder Usage Description Localized" +msgstr "下载文件夹使用描述本地化" + msgid "Network Volumes Usage Description" msgstr "网络卷使用描述" +msgid "Network Volumes Usage Description Localized" +msgstr "网络卷使用描述本地化" + msgid "Removable Volumes Usage Description" -msgstr "可移动卷使用描述" +msgstr "可移除卷使用描述" + +msgid "Removable Volumes Usage Description Localized" +msgstr "可移除卷使用描述本地化" msgid "UWP" msgstr "UWP" +msgid "signtool" +msgstr "signtool" + msgid "Debug Certificate" msgstr "调试证书" @@ -2599,9 +3595,6 @@ msgstr "显示名称" msgid "Short Name" msgstr "短名称" -msgid "Description" -msgstr "描述" - msgid "Publisher" msgstr "发行商" @@ -2669,7 +3662,16 @@ msgid "Splash Screen" msgstr "启动屏幕" msgid "Tiles" -msgstr "磁贴" +msgstr "图块" + +msgid "Show Name on Square 150 X 150" +msgstr "在正方形 150×150 上显示名称" + +msgid "Show Name on Wide 310 X 150" +msgstr "在长方形 310×150 上显示名称" + +msgid "Show Name on Square 310 X 310" +msgstr "在正方形 310×310 上显示名称" msgid "Web" msgstr "Web" @@ -2680,9 +3682,21 @@ msgstr "HTTP 主机" msgid "HTTP Port" msgstr "HTTP 端口" +msgid "Use TLS" +msgstr "使用 TLS" + +msgid "TLS Key" +msgstr "TLS 密钥" + +msgid "TLS Certificate" +msgstr "TLS 证书" + msgid "Variant" msgstr "变体" +msgid "Extensions Support" +msgstr "扩展支持" + msgid "VRAM Texture Compression" msgstr "VRAM 纹理压缩" @@ -2707,6 +3721,9 @@ msgstr "头部包含" msgid "Canvas Resize Policy" msgstr "画布大小改变策略" +msgid "Focus Canvas on Start" +msgstr "启动时聚焦画布" + msgid "Experimental Virtual Keyboard" msgstr "实验性虚拟键盘" @@ -2728,6 +3745,15 @@ msgstr "图标 512×512" msgid "Windows" msgstr "Windows" +msgid "rcedit" +msgstr "rcedit" + +msgid "osslsigncode" +msgstr "osslsigncode" + +msgid "wine" +msgstr "wine" + msgid "Identity Type" msgstr "身份类型" @@ -2743,6 +3769,9 @@ msgstr "摘要算法" msgid "Modify Resources" msgstr "修改资源" +msgid "Console Wrapper Icon" +msgstr "控制台封装图标" + msgid "File Version" msgstr "文件版本" @@ -2761,18 +3790,12 @@ msgstr "文件描述" msgid "Trademarks" msgstr "商标" -msgid "Frames" -msgstr "帧" - msgid "Frame" msgstr "帧号" msgid "Speed Scale" msgstr "速度缩放" -msgid "Playing" -msgstr "正在播放" - msgid "Centered" msgstr "居中" @@ -2797,6 +3820,9 @@ msgstr "空间覆盖" msgid "Point" msgstr "点" +msgid "Point Center" +msgstr "点中心" + msgid "Direction" msgstr "方向" @@ -2818,6 +3844,9 @@ msgstr "音量分贝" msgid "Pitch Scale" msgstr "音高缩放" +msgid "Playing" +msgstr "正在播放" + msgid "Autoplay" msgstr "自动播放" @@ -2830,6 +3859,12 @@ msgstr "最大距离" msgid "Attenuation" msgstr "衰减" +msgid "Max Polyphony" +msgstr "最大复音数" + +msgid "Panning Strength" +msgstr "平移强度" + msgid "Bus" msgstr "总线" @@ -2842,17 +3877,23 @@ msgstr "复制模式" msgid "Anchor Mode" msgstr "锚点模式" +msgid "Ignore Rotation" +msgstr "忽略旋转" + msgid "Custom Viewport" msgstr "自定义视口" +msgid "Process Callback" +msgstr "处理回调" + msgid "Left" -msgstr "左侧" +msgstr "左" msgid "Top" msgstr "顶部" msgid "Right" -msgstr "右侧" +msgstr "右" msgid "Bottom" msgstr "底部" @@ -2860,18 +3901,48 @@ msgstr "底部" msgid "Smoothed" msgstr "平滑" +msgid "Follow Smoothing" +msgstr "跟随平滑" + +msgid "Position Smoothing Enabled" +msgstr "启用位置平滑" + +msgid "Position Smoothing Speed" +msgstr "位置平滑速度" + +msgid "Rotation Smoothing" +msgstr "旋转平滑" + msgid "Speed" msgstr "速度" +msgid "Drag" +msgstr "拖动" + msgid "Horizontal Enabled" msgstr "启用水平" msgid "Vertical Enabled" msgstr "启用垂直" +msgid "Horizontal Offset" +msgstr "水平偏移" + +msgid "Vertical Offset" +msgstr "垂直偏移" + +msgid "Left Margin" +msgstr "左边距" + msgid "Top Margin" msgstr "顶边距" +msgid "Right Margin" +msgstr "右边距" + +msgid "Bottom Margin" +msgstr "底边距" + msgid "Draw Screen" msgstr "绘制屏幕" @@ -2884,9 +3955,18 @@ msgstr "绘制拖拽边距" msgid "Tweaks" msgstr "调整" +msgid "Fit Margin" +msgstr "适合边距" + +msgid "Clear Margin" +msgstr "清除边距" + msgid "Use Mipmaps" msgstr "使用 Mipmap" +msgid "Disable Mode" +msgstr "禁用模式" + msgid "Input" msgstr "输入" @@ -2905,6 +3985,9 @@ msgstr "单向碰撞" msgid "One Way Collision Margin" msgstr "单向碰撞边距" +msgid "Debug Color" +msgstr "调试颜色" + msgid "Emitting" msgstr "发射" @@ -2965,6 +4048,9 @@ msgstr "法线" msgid "Colors" msgstr "颜色" +msgid "Particle Flags" +msgstr "粒子标志" + msgid "Align Y" msgstr "对齐 Y" @@ -2974,6 +4060,12 @@ msgstr "发散" msgid "Initial Velocity" msgstr "初速度" +msgid "Velocity Min" +msgstr "最小速度" + +msgid "Velocity Max" +msgstr "最大速度" + msgid "Angular Velocity" msgstr "角速度" @@ -2986,6 +4078,12 @@ msgstr "环绕速度" msgid "Linear Accel" msgstr "线性加速度" +msgid "Accel Min" +msgstr "最小加速度" + +msgid "Accel Max" +msgstr "最大加速度" + msgid "Accel Curve" msgstr "加速度曲线" @@ -2998,6 +4096,12 @@ msgstr "切向加速度" msgid "Damping" msgstr "阻尼" +msgid "Damping Min" +msgstr "最小阻尼" + +msgid "Damping Max" +msgstr "最大阻尼" + msgid "Damping Curve" msgstr "阻尼曲线" @@ -3013,30 +4117,75 @@ msgstr "最大角度" msgid "Angle Curve" msgstr "角度曲线" +msgid "Scale Amount Min" +msgstr "最小缩放量" + +msgid "Scale Amount Max" +msgstr "最大缩放量" + msgid "Scale Amount Curve" msgstr "缩放量曲线" +msgid "Split Scale" +msgstr "拆分缩放" + +msgid "Scale Curve X" +msgstr "缩放曲线 X" + +msgid "Scale Curve Y" +msgstr "缩放曲线 Y" + msgid "Color Initial Ramp" msgstr "颜色初始映射" msgid "Hue Variation" msgstr "色相变化" +msgid "Variation Min" +msgstr "最小变化" + +msgid "Variation Max" +msgstr "最大变化" + msgid "Variation Curve" msgstr "变化曲线" +msgid "Speed Min" +msgstr "最小速度" + +msgid "Speed Max" +msgstr "最大速度" + msgid "Speed Curve" msgstr "速度曲线" +msgid "Offset Min" +msgstr "最小偏移" + +msgid "Offset Max" +msgstr "最大偏移" + msgid "Offset Curve" msgstr "偏移曲线" +msgid "Sub Emitter" +msgstr "子发射器" + msgid "Process Material" msgstr "处理材质" +msgid "Interpolate" +msgstr "插值" + +msgid "Base Size" +msgstr "基本大小" + msgid "Visibility Rect" msgstr "可见矩形" +msgid "Trails" +msgstr "尾迹" + msgid "Node A" msgstr "节点 A" @@ -3103,6 +4252,12 @@ msgstr "关闭" msgid "Cull Mode" msgstr "剔除模式" +msgid "SDF Collision" +msgstr "SDF 碰撞" + +msgid "Occluder Light Mask" +msgstr "遮挡器光照掩码" + msgid "Width Curve" msgstr "宽度曲线" @@ -3163,6 +4318,9 @@ msgstr "路径最大距离" msgid "Navigation Layers" msgstr "导航层" +msgid "Path Metadata Flags" +msgstr "路径元数据标志" + msgid "Avoidance" msgstr "避障" @@ -3178,6 +4336,12 @@ msgstr "时间下限" msgid "Max Speed" msgstr "最大速度" +msgid "Bidirectional" +msgstr "双向的" + +msgid "Start Position" +msgstr "开始位置" + msgid "Enter Cost" msgstr "进入消耗" @@ -3187,8 +4351,8 @@ msgstr "移动消耗" msgid "Estimate Radius" msgstr "估算半径" -msgid "Transform" -msgstr "变换" +msgid "Navigation Polygon" +msgstr "导航多边形" msgid "Rotation Degrees" msgstr "旋转角度" @@ -3205,6 +4369,9 @@ msgstr "全局旋转角度" msgid "Global Scale" msgstr "全局缩放" +msgid "Global Skew" +msgstr "全局倾斜" + msgid "Global Transform" msgstr "全局变换" @@ -3238,18 +4405,39 @@ msgstr "曲线" msgid "Progress" msgstr "进度" +msgid "Progress Ratio" +msgstr "进度比率" + msgid "H Offset" msgstr "水平偏移" msgid "V Offset" msgstr "垂直偏移" +msgid "Rotates" +msgstr "旋转" + msgid "Cubic Interp" msgstr "三次插值" msgid "Lookahead" msgstr "提前量" +msgid "Bone 2D Nodepath" +msgstr "骨骼 2D 节点路径" + +msgid "Bone 2D Index" +msgstr "骨骼 2D 索引" + +msgid "Auto Configure Joint" +msgstr "自动配置关节" + +msgid "Simulate Physics" +msgstr "模拟物理" + +msgid "Follow Bone When Simulating" +msgstr "模拟时跟随骨骼" + msgid "Physics Material Override" msgstr "物理材质覆盖" @@ -3259,12 +4447,21 @@ msgstr "常线速度" msgid "Constant Angular Velocity" msgstr "常角速度" +msgid "Sync to Physics" +msgstr "同步到物理" + msgid "Mass" msgstr "质量" msgid "Inertia" msgstr "惯性" +msgid "Center of Mass Mode" +msgstr "质心模式" + +msgid "Center of Mass" +msgstr "质心" + msgid "Gravity Scale" msgstr "重力缩放" @@ -3274,6 +4471,9 @@ msgstr "自定义集成器" msgid "Continuous CD" msgstr "连续碰撞检测" +msgid "Max Contacts Reported" +msgstr "报告的最大接触" + msgid "Contact Monitor" msgstr "接触监视器" @@ -3283,24 +4483,75 @@ msgstr "睡眠" msgid "Can Sleep" msgstr "可以睡眠" +msgid "Lock Rotation" +msgstr "锁定旋转" + +msgid "Freeze" +msgstr "冻结" + +msgid "Freeze Mode" +msgstr "冻结模式" + msgid "Linear" msgstr "线性" +msgid "Damp Mode" +msgstr "阻尼模式" + msgid "Damp" msgstr "阻尼" msgid "Angular" msgstr "角" +msgid "Constant Forces" +msgstr "恒力" + msgid "Torque" msgstr "力矩" +msgid "Motion Mode" +msgstr "运动模式" + +msgid "Up Direction" +msgstr "向上方向" + +msgid "Slide on Ceiling" +msgstr "在天花板上滑动" + +msgid "Wall Min Slide Angle" +msgstr "墙体最小滑动角度" + +msgid "Floor" +msgstr "地面" + +msgid "Stop on Slope" +msgstr "在斜坡上停止" + +msgid "Constant Speed" +msgstr "恒定速度" + +msgid "Block on Wall" +msgstr "阻止上墙" + msgid "Max Angle" msgstr "最大角" +msgid "Snap Length" +msgstr "吸附长度" + msgid "Moving Platform" msgstr "可移动平台" +msgid "On Leave" +msgstr "离开时" + +msgid "Floor Layers" +msgstr "地面层" + +msgid "Wall Layers" +msgstr "墙体层" + msgid "Safe Margin" msgstr "安全边距" @@ -3319,6 +4570,9 @@ msgstr "内部顶点数" msgid "Exclude Parent" msgstr "排除父节点" +msgid "Target Position" +msgstr "目标位置" + msgid "Collide With" msgstr "参与碰撞" @@ -3340,12 +4594,27 @@ msgstr "更新" msgid "Margin" msgstr "边距" +msgid "Max Results" +msgstr "最大结果" + +msgid "Auto Calculate Length and Angle" +msgstr "自动计算长度和角度" + +msgid "Bone Angle" +msgstr "骨骼角度" + msgid "Editor Settings" msgstr "编辑器设置" +msgid "Show Bone Gizmo" +msgstr "显示骨骼小工具" + msgid "Rest" msgstr "放松" +msgid "Modification Stack" +msgstr "修改堆栈" + msgid "Hframes" msgstr "水平帧数" @@ -3358,12 +4627,33 @@ msgstr "帧坐标" msgid "Region" msgstr "区域" +msgid "Filter Clip Enabled" +msgstr "启用过滤裁剪" + msgid "Tile Set" msgstr "图块集" +msgid "Cell Quadrant Size" +msgstr "单元格象限大小" + +msgid "Collision Animatable" +msgstr "碰撞可动画化" + +msgid "Collision Visibility Mode" +msgstr "碰撞可见性模式" + +msgid "Navigation Visibility Mode" +msgstr "导航可见性模式" + msgid "Layers" msgstr "层" +msgid "Texture Normal" +msgstr "法线纹理" + +msgid "Texture Pressed" +msgstr "按下纹理" + msgid "Bitmask" msgstr "掩码" @@ -3382,6 +4672,18 @@ msgstr "可见模式" msgid "Node Path" msgstr "节点路径" +msgid "Wind" +msgstr "风" + +msgid "Force Magnitude" +msgstr "力量大小" + +msgid "Attenuation Factor" +msgstr "衰减系数" + +msgid "Source Path" +msgstr "来源路径" + msgid "Reverb Bus" msgstr "混响总线" @@ -3424,12 +4726,21 @@ msgstr "跟踪" msgid "Bone Name" msgstr "骨骼名称" +msgid "Bone Idx" +msgstr "骨骼索引" + +msgid "Override Pose" +msgstr "覆盖姿势" + msgid "Keep Aspect" msgstr "保持长宽比" msgid "Cull Mask" msgstr "剔除遮罩" +msgid "Attributes" +msgstr "属性" + msgid "Doppler Tracking" msgstr "多普勒跟踪" @@ -3448,6 +4759,9 @@ msgstr "Far" msgid "Ray Pickable" msgstr "射线可拾取" +msgid "Capture on Drag" +msgstr "拖拽时捕获" + msgid "Box Extents" msgstr "盒子范围" @@ -3472,14 +4786,17 @@ msgstr "禁用 Z" msgid "Flatness" msgstr "扁平度" -msgid "Extents" -msgstr "范围" +msgid "Scale Curve Z" +msgstr "缩放曲线 Z" msgid "Albedo" msgstr "反照率" msgid "Normal" -msgstr "正常" +msgstr "法线" + +msgid "Orm" +msgstr "Orm" msgid "Emission" msgstr "自发光" @@ -3487,15 +4804,33 @@ msgstr "自发光" msgid "Parameters" msgstr "参数" +msgid "Emission Energy" +msgstr "自发光能量" + msgid "Modulate" msgstr "调制" +msgid "Albedo Mix" +msgstr "反照率混合" + +msgid "Normal Fade" +msgstr "法线淡化" + +msgid "Vertical Fade" +msgstr "垂直淡化" + msgid "Distance Fade" msgstr "距离淡出" +msgid "Begin" +msgstr "起点" + msgid "Visibility AABB" msgstr "可见性 AABB" +msgid "Transform Align" +msgstr "变换对齐" + msgid "Draw Passes" msgstr "绘制阶段" @@ -3505,9 +4840,24 @@ msgstr "阶段" msgid "Thickness" msgstr "粗细" +msgid "Bake Mask" +msgstr "烘焙遮罩" + msgid "Update Mode" msgstr "更新模式" +msgid "Follow Camera Enabled" +msgstr "启用跟随相机" + +msgid "Directionality" +msgstr "方向性" + +msgid "Skeleton Path" +msgstr "骨架路径" + +msgid "Solver Priority" +msgstr "求解器优先级" + msgid "Params" msgstr "参数" @@ -3580,15 +4930,27 @@ msgstr "Y" msgid "Z" msgstr "Z" +msgid "Linear Motor" +msgstr "线性马达" + msgid "Force Limit" msgstr "力度限制" +msgid "Linear Spring" +msgstr "线性弹簧" + msgid "Equilibrium Point" msgstr "平衡点" msgid "ERP" msgstr "ERP" +msgid "Angular Motor" +msgstr "角度马达" + +msgid "Angular Spring" +msgstr "角度弹簧" + msgid "Pixel Size" msgstr "像素大小" @@ -3616,6 +4978,15 @@ msgstr "Alpha 切除" msgid "Alpha Scissor Threshold" msgstr "Alpha 裁剪阈值" +msgid "Alpha Antialiasing Mode" +msgstr "Alpha 抗锯齿模式" + +msgid "Alpha Antialiasing Edge" +msgstr "边缘 Alpha 抗锯齿" + +msgid "Texture Filter" +msgstr "纹理过滤器" + msgid "Render Priority" msgstr "渲染优先级" @@ -3640,9 +5011,42 @@ msgstr "垂直对齐" msgid "Uppercase" msgstr "大写" +msgid "Autowrap Mode" +msgstr "自动换行模式" + +msgid "BiDi" +msgstr "BiDi" + +msgid "Text Direction" +msgstr "文本方向" + +msgid "Structured Text BiDi Override" +msgstr "结构化文本 BiDi 覆盖" + +msgid "Structured Text BiDi Override Options" +msgstr "结构化文本 BiDi 覆盖选项" + +msgid "Intensity Lumens" +msgstr "强度流明" + +msgid "Intensity Lux" +msgstr "强度勒克斯" + +msgid "Temperature" +msgstr "温度" + msgid "Indirect Energy" msgstr "间接能量" +msgid "Volumetric Fog Energy" +msgstr "体积雾能量" + +msgid "Projector" +msgstr "投影" + +msgid "Angular Distance" +msgstr "角度距离" + msgid "Negative" msgstr "逆转" @@ -3679,6 +5083,15 @@ msgstr "拆分 3" msgid "Blend Splits" msgstr "混合拆分" +msgid "Fade Start" +msgstr "淡化起点" + +msgid "Pancake Size" +msgstr "Pancake 大小" + +msgid "Sky Mode" +msgstr "天空模式" + msgid "Omni" msgstr "全向" @@ -3691,18 +5104,27 @@ msgstr "聚光" msgid "Angle Attenuation" msgstr "角度衰减" +msgid "Light Texture" +msgstr "灯光纹理" + msgid "Quality" msgstr "质量" msgid "Bounces" msgstr "弹射" +msgid "Directional" +msgstr "定向" + msgid "Interior" msgstr "内部" msgid "Use Denoiser" msgstr "使用降噪器" +msgid "Max Texture Size" +msgstr "最大纹理大小" + msgid "Custom Sky" msgstr "自定义天空" @@ -3712,27 +5134,60 @@ msgstr "自定义颜色" msgid "Custom Energy" msgstr "自定义能量" +msgid "Camera Attributes" +msgstr "相机属性" + msgid "Subdiv" msgstr "细分" msgid "Light Data" msgstr "光照数据" +msgid "Surface Material Override" +msgstr "表面材质覆盖" + msgid "Agent Height Offset" msgstr "代理高度偏移" msgid "Ignore Y" msgstr "忽略 Y" +msgid "Navigation Mesh" +msgstr "导航网格" + +msgid "Quaternion" +msgstr "四元数" + +msgid "Basis" +msgstr "基" + +msgid "Rotation Edit Mode" +msgstr "旋转编辑模式" + +msgid "Rotation Order" +msgstr "旋转顺序" + +msgid "Top Level" +msgstr "顶层" + msgid "Visibility" msgstr "可见性" msgid "Visible" msgstr "可见" +msgid "Visibility Parent" +msgstr "可见性父级" + +msgid "Bake" +msgstr "烘焙" + msgid "Rotation Mode" msgstr "旋转模式" +msgid "Tilt Enabled" +msgstr "启用倾斜" + msgid "Axis Lock" msgstr "轴锁定" @@ -3844,6 +5299,12 @@ msgstr "摩擦" msgid "Bounce" msgstr "反弹" +msgid "Linear Damp Mode" +msgstr "线性阻尼模式" + +msgid "Angular Damp Mode" +msgstr "角度阻尼模式" + msgid "Linear Velocity" msgstr "线性速度" @@ -3859,9 +5320,24 @@ msgstr "盒投影" msgid "Enable Shadows" msgstr "启用阴影" +msgid "Mesh LOD Threshold" +msgstr "网格 LOD 阈值" + +msgid "Ambient" +msgstr "环境" + +msgid "Color Energy" +msgstr "色彩能量" + msgid "Bones" msgstr "骨骼" +msgid "Show Rest Only" +msgstr "仅显示放松" + +msgid "Animate Physical Bones" +msgstr "动画物理骨骼" + msgid "Root Bone" msgstr "根骨骼" @@ -3940,6 +5416,15 @@ msgstr "刹车" msgid "Steering" msgstr "方向控制" +msgid "VehicleBody3D Motion" +msgstr "VehicleBody3D 运动" + +msgid "Use as Traction" +msgstr "用作牵引" + +msgid "Use as Steering" +msgstr "用作转向" + msgid "Wheel" msgstr "车轮" @@ -3979,6 +5464,9 @@ msgstr "材质覆盖" msgid "Material Overlay" msgstr "材质覆盖层" +msgid "Transparency" +msgstr "透明" + msgid "Cast Shadow" msgstr "投射阴影" @@ -3988,11 +5476,32 @@ msgstr "额外剔除边距" msgid "Custom AABB" msgstr "自定义 AABB" +msgid "LOD Bias" +msgstr "LOD 偏差" + +msgid "Ignore Occlusion Culling" +msgstr "忽略遮挡剔除" + +msgid "Global Illumination" +msgstr "全局照明" + msgid "Lightmap Scale" msgstr "光照贴图缩放" +msgid "Visibility Range" +msgstr "能见度范围" + +msgid "Begin Margin" +msgstr "起始边距" + msgid "End" -msgstr "结束" +msgstr "行尾" + +msgid "End Margin" +msgstr "结束边距" + +msgid "Fade Mode" +msgstr "淡化模式" msgid "Dynamic Range" msgstr "动态范围" @@ -4000,12 +5509,21 @@ msgstr "动态范围" msgid "Propagation" msgstr "传播" +msgid "Use Two Bounces" +msgstr "使用二次反弹" + +msgid "Tracker" +msgstr "追踪器" + msgid "Pose" msgstr "姿势" msgid "World Scale" msgstr "世界缩放" +msgid "Play Mode" +msgstr "播放模式" + msgid "Sync" msgstr "同步" @@ -4033,8 +5551,11 @@ msgstr "随机延迟" msgid "Xfade Time" msgstr "淡入淡出时间" -msgid "Reset" -msgstr "重置" +msgid "Xfade Curve" +msgstr "淡入淡出曲线" + +msgid "Request" +msgstr "请求" msgid "Active" msgstr "激活" @@ -4045,8 +5566,17 @@ msgstr "叠加量" msgid "Blend Amount" msgstr "混合量" -msgid "Seek Position" -msgstr "寻道位置" +msgid "Current Index" +msgstr "当前索引" + +msgid "Current State" +msgstr "当前状态" + +msgid "Transition Request" +msgstr "过渡请求" + +msgid "Reset" +msgstr "重置" msgid "Switch" msgstr "切换" @@ -4054,6 +5584,9 @@ msgstr "切换" msgid "Switch Mode" msgstr "切换模式" +msgid "Advance" +msgstr "前进" + msgid "Condition" msgstr "条件" @@ -4069,6 +5602,9 @@ msgstr "当前动画" msgid "Assigned Animation" msgstr "分配动画" +msgid "Reset on Save" +msgstr "保存时重置" + msgid "Current Animation Length" msgstr "当前动画长度" @@ -4087,12 +5623,18 @@ msgstr "默认混合时间" msgid "Method Call Mode" msgstr "方法调用模式" +msgid "Movie Quit on Finish" +msgstr "结束时退出电影" + msgid "Tree Root" msgstr "树根" msgid "Anim Player" msgstr "动画播放器" +msgid "Advance Expression Base Node" +msgstr "前进表达式基础节点" + msgid "Root Motion" msgstr "根运动" @@ -4129,42 +5671,177 @@ msgstr "外部保持按下" msgid "Button Group" msgstr "按钮组" +msgid "Shortcut Feedback" +msgstr "快捷键反馈" + +msgid "Shortcut in Tooltip" +msgstr "工具提示显示快捷键" + +msgid "Text Overrun Behavior" +msgstr "文本超限行为" + msgid "Clip Text" msgstr "裁剪文本" +msgid "Icon Alignment" +msgstr "图标对齐" + msgid "Expand Icon" msgstr "扩展图标" msgid "Use Top Left" msgstr "使用左上角" +msgid "Symbol Lookup on Click" +msgstr "点击查询符号" + +msgid "Line Folding" +msgstr "折叠行" + +msgid "Line Length Guidelines" +msgstr "行长度参考线" + +msgid "Draw Breakpoints Gutter" +msgstr "绘制断点栏" + +msgid "Draw Bookmarks" +msgstr "绘制书签" + +msgid "Draw Executing Lines" +msgstr "绘制执行行" + +msgid "Draw Line Numbers" +msgstr "绘制行号" + +msgid "Zero Pad Line Numbers" +msgstr "行号用零填充" + +msgid "Draw Fold Gutter" +msgstr "绘制折叠栏" + +msgid "Delimiters" +msgstr "分隔符" + +msgid "Comments" +msgstr "注释" + +msgid "Code Completion" +msgstr "代码补全" + +msgid "Prefixes" +msgstr "前缀" + +msgid "Indentation" +msgstr "缩进" + +msgid "Use Spaces" +msgstr "使用空格" + +msgid "Automatic" +msgstr "自动" + +msgid "Automatic Prefixes" +msgstr "自动前缀" + +msgid "Auto Brace Completion" +msgstr "自动补全大括号" + +msgid "Highlight Matching" +msgstr "高亮匹配项" + msgid "Edit Alpha" msgstr "编辑 Alpha" +msgid "Color Mode" +msgstr "颜色模式" + msgid "Deferred Mode" msgstr "延迟模式" +msgid "Picker Shape" +msgstr "拾取器形状" + +msgid "Can Add Swatches" +msgstr "可添加色板" + +msgid "Customization" +msgstr "自定义" + +msgid "Sampler Visible" +msgstr "采样器可见" + +msgid "Color Modes Visible" +msgstr "颜色模式可见" + +msgid "Sliders Visible" +msgstr "滑动条可见" + +msgid "Hex Visible" +msgstr "十六进制可见" + msgid "Presets Visible" msgstr "预设可见" +msgid "Clip Contents" +msgstr "裁剪内容" + +msgid "Custom Minimum Size" +msgstr "自定义最小尺寸" + +msgid "Layout Direction" +msgstr "布局方向" + +msgid "Layout Mode" +msgstr "布局模式" + +msgid "Anchors Preset" +msgstr "锚点预设" + +msgid "Anchor Points" +msgstr "锚点" + +msgid "Anchor Offsets" +msgstr "锚点偏移" + msgid "Grow Direction" msgstr "伸长方向" msgid "Pivot Offset" msgstr "轴心偏移" +msgid "Container Sizing" +msgstr "容器大小" + msgid "Stretch Ratio" msgstr "拉伸比例" msgid "Localization" msgstr "本地化" +msgid "Auto Translate" +msgstr "自动翻译" + +msgid "Localize Numeral System" +msgstr "本地化数字系统" + msgid "Tooltip" msgstr "工具提示" msgid "Focus" msgstr "聚焦" +msgid "Neighbor Left" +msgstr "左邻" + +msgid "Neighbor Top" +msgstr "上邻" + +msgid "Neighbor Right" +msgstr "右邻" + +msgid "Neighbor Bottom" +msgstr "下邻" + msgid "Next" msgstr "下一个" @@ -4174,18 +5851,42 @@ msgstr "上一个" msgid "Mouse" msgstr "鼠标" +msgid "Force Pass Scroll Events" +msgstr "强制传递滚动事件" + msgid "Default Cursor Shape" msgstr "默认光标形状" +msgid "Shortcut Context" +msgstr "快捷键上下文" + +msgid "Type Variation" +msgstr "类型变种" + +msgid "OK Button Text" +msgstr "确定按钮文本" + msgid "Dialog" msgstr "对话框" +msgid "Hide on OK" +msgstr "确定时隐藏" + +msgid "Close on Escape" +msgstr "ESC 时关闭" + msgid "Autowrap" msgstr "自动换行" +msgid "Cancel Button Text" +msgstr "取消按钮文本" + msgid "Mode Overrides Title" msgstr "模式覆盖标题" +msgid "Root Subfolder" +msgstr "根部子文件夹" + msgid "Filters" msgstr "过滤" @@ -4201,6 +5902,15 @@ msgstr "吸附距离" msgid "Use Snap" msgstr "使用吸附" +msgid "Panning Scheme" +msgstr "平移方案" + +msgid "Connection Lines" +msgstr "连接线" + +msgid "Curvature" +msgstr "曲率" + msgid "Zoom Min" msgstr "缩放下限" @@ -4213,12 +5923,27 @@ msgstr "缩放步长" msgid "Show Zoom Label" msgstr "显示缩放标签" +msgid "UI" +msgstr "UI" + +msgid "Arrange Nodes Button Hidden" +msgstr "隐藏排列节点按钮" + msgid "Title" msgstr "标题" +msgid "Position Offset" +msgstr "位置偏移" + msgid "Show Close" msgstr "显示关闭" +msgid "Draggable" +msgstr "可拖动" + +msgid "Selectable" +msgstr "可选择" + msgid "Selected" msgstr "选中" @@ -4264,6 +5989,12 @@ msgstr "图标缩放" msgid "Fixed Icon Size" msgstr "固定图标大小" +msgid "Label Settings" +msgstr "标签设置" + +msgid "Displayed Text" +msgstr "文本显示" + msgid "Lines Skipped" msgstr "跳过行数" @@ -4273,6 +6004,15 @@ msgstr "最大可见行数" msgid "Visible Characters" msgstr "可见字符" +msgid "Visible Characters Behavior" +msgstr "可见字符行为" + +msgid "Visible Ratio" +msgstr "可见比例" + +msgid "Placeholder Text" +msgstr "占位符文本" + msgid "Max Length" msgstr "最大长度" @@ -4282,12 +6022,18 @@ msgstr "秘密" msgid "Secret Character" msgstr "秘密字符" +msgid "Expand to Text Length" +msgstr "扩展至文本长度" + msgid "Context Menu Enabled" msgstr "上下文菜单启用" msgid "Virtual Keyboard Enabled" msgstr "虚拟键盘启用" +msgid "Virtual Keyboard Type" +msgstr "虚拟键盘类型" + msgid "Clear Button Enabled" msgstr "清除按钮启用" @@ -4300,15 +6046,48 @@ msgstr "鼠标中键粘贴启用" msgid "Selecting Enabled" msgstr "选择启用" +msgid "Deselect on Focus Loss Enabled" +msgstr "焦点丢失时取消选择启用" + msgid "Right Icon" msgstr "右侧图标" +msgid "Draw Control Chars" +msgstr "绘制控制字符" + +msgid "Select All on Focus" +msgstr "聚焦时全选" + msgid "Blink" msgstr "闪烁" +msgid "Blink Interval" +msgstr "闪烁间隔" + +msgid "Column" +msgstr "列数" + +msgid "Force Displayed" +msgstr "强制显示" + +msgid "Mid Grapheme" +msgstr "字素内部" + msgid "Underline" msgstr "下划线" +msgid "URI" +msgstr "URI" + +msgid "Start Index" +msgstr "起始索引" + +msgid "Switch on Hover" +msgstr "悬停时切换" + +msgid "Prefer Global Menu" +msgstr "首选全局菜单" + msgid "Draw Center" msgstr "绘制中心" @@ -4321,6 +6100,18 @@ msgstr "宫格边距" msgid "Axis Stretch" msgstr "轴拉伸" +msgid "Fit to Longest Item" +msgstr "适配最长项" + +msgid "Hide on Item Selection" +msgstr "项目选择时隐藏" + +msgid "Hide on Checkable Item Selection" +msgstr "项目勾选时隐藏" + +msgid "Hide on State Item Selection" +msgstr "选择状态项目时隐藏" + msgid "Submenu Popup Delay" msgstr "子菜单弹出延迟" @@ -4330,6 +6121,9 @@ msgstr "允许搜索" msgid "Fill Mode" msgstr "填充模式" +msgid "Show Percentage" +msgstr "显示百分比" + msgid "Min Value" msgstr "最小值" @@ -4363,14 +6157,26 @@ msgstr "边框宽度" msgid "Elapsed Time" msgstr "已经过时间" +msgid "Outline" +msgstr "轮廓" + msgid "Env" msgstr "环境" +msgid "Glyph Index" +msgstr "字形索引" + +msgid "Glyph Count" +msgstr "字形计数" + +msgid "Glyph Flags" +msgstr "字形标志" + msgid "Relative Index" msgstr "相对索引" -msgid "Fit Content Height" -msgstr "适配内容高度" +msgid "Bbcode Enabled" +msgstr "启用 Bbcode" msgid "Scroll Active" msgstr "滚动激活" @@ -4381,12 +6187,27 @@ msgstr "滚动跟随" msgid "Tab Size" msgstr "制表符大小" +msgid "Markup" +msgstr "标记" + msgid "Custom Effects" msgstr "自定义特效" msgid "Meta Underlined" msgstr "元数据下划线" +msgid "Hint Underlined" +msgstr "下划线提示" + +msgid "Threaded" +msgstr "多线程" + +msgid "Progress Bar Delay" +msgstr "进度条延迟" + +msgid "Text Selection" +msgstr "文本选区" + msgid "Selection Enabled" msgstr "启用选择" @@ -4396,6 +6217,15 @@ msgstr "自定义步长" msgid "Follow Focus" msgstr "跟随焦点" +msgid "Horizontal Scroll Mode" +msgstr "水平滚动模式" + +msgid "Vertical Scroll Mode" +msgstr "垂直滚动模式" + +msgid "Scroll Deadzone" +msgstr "滚动死区" + msgid "Default Scroll Deadzone" msgstr "默认滚动死区" @@ -4405,6 +6235,15 @@ msgstr "可滚动" msgid "Tick Count" msgstr "刻度数量" +msgid "Ticks on Borders" +msgstr "边界刻度" + +msgid "Update on Text Changed" +msgstr "文本更改时更新" + +msgid "Custom Arrow Step" +msgstr "自定义箭头步长" + msgid "Split Offset" msgstr "拆分偏移" @@ -4414,30 +6253,75 @@ msgstr "折叠" msgid "Dragger Visibility" msgstr "拖动器可见性" -msgid "Stretch" -msgstr "拉伸" - msgid "Stretch Shrink" msgstr "拉伸收缩" msgid "Current Tab" msgstr "当前选项卡" +msgid "Tab Alignment" +msgstr "选项卡对齐" + +msgid "Clip Tabs" +msgstr "裁剪选项卡" + msgid "Tab Close Display Policy" msgstr "选项卡关闭显示策略" +msgid "Max Tab Width" +msgstr "最大选项卡宽度" + msgid "Scrolling Enabled" msgstr "启用滚动" +msgid "Drag to Rearrange Enabled" +msgstr "启用拖放重排" + +msgid "Tabs Rearrange Group" +msgstr "选项卡重新排列组" + +msgid "Scroll to Selected" +msgstr "滚动到选定" + +msgid "Select With RMB" +msgstr "右键选择" + +msgid "Tabs" +msgstr "选项卡" + msgid "Tabs Visible" msgstr "选项卡可见" +msgid "Use Hidden Tabs for Min Size" +msgstr "最小大小考虑隐藏选项卡" + +msgid "Drag and Drop Selection Enabled" +msgstr "启用拖放选择" + +msgid "Wrap Mode" +msgstr "包裹模式" + msgid "Syntax Highlighter" msgstr "语法高亮器" +msgid "Smooth" +msgstr "平滑" + +msgid "Past End of File" +msgstr "超过文件末尾" + +msgid "Fit Content Height" +msgstr "适配内容高度" + msgid "Draw" msgstr "绘制" +msgid "Move on Right Click" +msgstr "右键点击时移动" + +msgid "Multiple" +msgstr "多个" + msgid "Hover" msgstr "悬停" @@ -4447,9 +6331,15 @@ msgstr "聚焦" msgid "Click Mask" msgstr "点击遮罩" +msgid "Ignore Texture Size" +msgstr "忽略纹理大小" + msgid "Nine Patch Stretch" msgstr "九宫格拉伸" +msgid "Stretch Margin" +msgstr "拉伸边距" + msgid "Under" msgstr "下方" @@ -4474,6 +6364,9 @@ msgstr "填充角度" msgid "Center Offset" msgstr "中心偏移" +msgid "Expand Mode" +msgstr "扩展模式" + msgid "Custom Minimum Height" msgstr "自定义最小高度" @@ -4483,12 +6376,21 @@ msgstr "列标题可见" msgid "Hide Folding" msgstr "隐藏折叠" +msgid "Enable Recursive Folding" +msgstr "启用递归折叠" + msgid "Hide Root" msgstr "隐藏根" msgid "Drop Mode Flags" msgstr "拖放模式标志" +msgid "Scroll Horizontal Enabled" +msgstr "启用水平滚动" + +msgid "Scroll Vertical Enabled" +msgstr "启用垂直滚动" + msgid "Audio Track" msgstr "音频轨道" @@ -4513,12 +6415,27 @@ msgstr "自我调制" msgid "Show Behind Parent" msgstr "显示在父级之后" +msgid "Clip Children" +msgstr "裁剪子项" + msgid "Light Mask" msgstr "光线遮罩" +msgid "Visibility Layer" +msgstr "可见层" + +msgid "Ordering" +msgstr "排序" + msgid "Z Index" msgstr "Z 索引" +msgid "Z as Relative" +msgstr "Z 为相对量" + +msgid "Y Sort Enabled" +msgstr "启用 Y 排序" + msgid "Repeat" msgstr "重复" @@ -4531,6 +6448,9 @@ msgstr "漫反射" msgid "NormalMap" msgstr "法线贴图" +msgid "Shininess" +msgstr "光泽度" + msgid "Follow Viewport" msgstr "跟随视口" @@ -4540,6 +6460,9 @@ msgstr "下载文件" msgid "Download Chunk Size" msgstr "下载分块大小" +msgid "Accept Gzip" +msgstr "接收 Gzip" + msgid "Body Size Limit" msgstr "响应体大小限制" @@ -4549,12 +6472,18 @@ msgstr "最大跳转" msgid "Timeout" msgstr "超时" +msgid "Multiplayer Peer" +msgstr "多人对等体" + msgid "Transfer Mode" msgstr "传输模式" msgid "Transfer Channel" msgstr "传输通道" +msgid "Scene File Path" +msgstr "场景文件路径" + msgid "Owner" msgstr "拥有者" @@ -4570,6 +6499,9 @@ msgstr "剩余时间" msgid "Debug Collisions Hint" msgstr "调试碰撞提示" +msgid "Debug Paths Hint" +msgstr "调试路径提示" + msgid "Debug Navigation Hint" msgstr "调试导航提示" @@ -4597,21 +6529,63 @@ msgstr "接触颜色" msgid "Geometry Color" msgstr "几何体颜色" +msgid "Geometry Width" +msgstr "几何体宽度" + msgid "Draw 2D Outlines" msgstr "绘制 2D 轮廓" msgid "Anti Aliasing" msgstr "抗锯齿" +msgid "MSAA 2D" +msgstr "MSAA 2D" + +msgid "MSAA 3D" +msgstr "MSAA 3D" + +msgid "Viewport" +msgstr "视口" + +msgid "Transparent Background" +msgstr "透明背景" + +msgid "Screen Space AA" +msgstr "屏幕空间 AA" + +msgid "Use TAA" +msgstr "使用 TAA" + msgid "Use Debanding" msgstr "使用去条带" -msgid "Occlusion Culling" -msgstr "遮挡剔除" +msgid "Use Occlusion Culling" +msgstr "使用遮挡剔除" + +msgid "Snap 2D Transforms to Pixel" +msgstr "将 2D 变换捕捉到像素" + +msgid "Snap 2D Vertices to Pixel" +msgstr "将 2D 顶点吸附到像素" + +msgid "Lights and Shadows" +msgstr "灯光与阴影" + +msgid "Positional Shadow" +msgstr "位置阴影" msgid "Atlas Size" msgstr "图集大小" +msgid "Atlas 16 Bits" +msgstr "图集 16 位" + +msgid "SDF" +msgstr "SDF" + +msgid "Oversize" +msgstr "显示缩放" + msgid "Enable Object Picking" msgstr "启用对象拾取" @@ -4627,6 +6601,15 @@ msgstr "Viewport 路径" msgid "Disable 3D" msgstr "禁用 3D" +msgid "Use XR" +msgstr "使用 XR" + +msgid "Own World 3D" +msgstr "自有 3D 世界" + +msgid "World 3D" +msgstr "3D 世界" + msgid "World 2D" msgstr "2D 世界" @@ -4639,6 +6622,27 @@ msgstr "输入本地处理" msgid "Debug Draw" msgstr "调试绘制" +msgid "Scaling 3D" +msgstr "缩放 3D" + +msgid "Scaling 3D Mode" +msgstr "缩放 3D 模式" + +msgid "Scaling 3D Scale" +msgstr "缩放 3D 比例" + +msgid "Texture Mipmap Bias" +msgstr "纹理 Mipmap 偏置" + +msgid "FSR Sharpness" +msgstr "FSR 锐度" + +msgid "Variable Rate Shading" +msgstr "可变速率着色" + +msgid "Canvas Items" +msgstr "画布项" + msgid "Audio Listener" msgstr "音频监听器" @@ -4654,6 +6658,12 @@ msgstr "对象拾取" msgid "Disable Input" msgstr "禁用输入" +msgid "Positional Shadow Atlas" +msgstr "位置阴影图集" + +msgid "16 Bits" +msgstr "16 位" + msgid "Quad 0" msgstr "四方形 0" @@ -4672,6 +6682,15 @@ msgstr "画布变换" msgid "Global Canvas Transform" msgstr "全局画布变换" +msgid "Canvas Cull Mask" +msgstr "画布剔除遮罩" + +msgid "Size 2D Override" +msgstr "2D 大小覆盖" + +msgid "Size 2D Override Stretch" +msgstr "2D 大小覆盖拉伸" + msgid "Render Target" msgstr "渲染目标" @@ -4681,17 +6700,41 @@ msgstr "清屏模式" msgid "Current Screen" msgstr "当前屏幕" +msgid "Mouse Passthrough Polygon" +msgstr "鼠标穿透多边形" + +msgid "Wrap Controls" +msgstr "包裹控件" + +msgid "Transient" +msgstr "瞬态" + msgid "Exclusive" msgstr "独占" +msgid "Unresizable" +msgstr "不可调整大小" + +msgid "Unfocusable" +msgstr "无法聚焦" + +msgid "Popup Window" +msgstr "弹出窗口" + +msgid "Mouse Passthrough" +msgstr "鼠标穿透" + msgid "Min Size" msgstr "最小大小" msgid "Max Size" msgstr "大小上限" -msgid "Aspect" -msgstr "比例" +msgid "Content Scale" +msgstr "内容缩放" + +msgid "Swap Cancel OK" +msgstr "交换取消确定" msgid "Layer Names" msgstr "层名称" @@ -4714,6 +6757,9 @@ msgstr "3D 物理" msgid "3D Navigation" msgstr "3D 导航" +msgid "Polyphony" +msgstr "复音" + msgid "Format" msgstr "格式" @@ -4723,12 +6769,72 @@ msgstr "混音率" msgid "Stereo" msgstr "立体声" +msgid "Profile" +msgstr "配置文件" + +msgid "Bonemap" +msgstr "骨骼映射" + msgid "Exposure" msgstr "曝光" +msgid "Sensitivity" +msgstr "灵敏度" + +msgid "Multiplier" +msgstr "乘数" + msgid "Auto Exposure" msgstr "自动曝光" +msgid "DOF Blur" +msgstr "景深模糊" + +msgid "Far Enabled" +msgstr "远端启用" + +msgid "Far Distance" +msgstr "远端距离" + +msgid "Far Transition" +msgstr "远端过渡" + +msgid "Near Enabled" +msgstr "近端启用" + +msgid "Near Distance" +msgstr "近端距离" + +msgid "Near Transition" +msgstr "近端过渡" + +msgid "Min Sensitivity" +msgstr "最小灵敏度" + +msgid "Max Sensitivity" +msgstr "最大灵敏度" + +msgid "Frustum" +msgstr "视锥" + +msgid "Focus Distance" +msgstr "焦点距离" + +msgid "Focal Length" +msgstr "焦距" + +msgid "Aperture" +msgstr "光圈" + +msgid "Shutter Speed" +msgstr "快门速度" + +msgid "Min Exposure Value" +msgstr "最小曝光值" + +msgid "Max Exposure Value" +msgstr "最大曝光值" + msgid "Light Mode" msgstr "光照模式" @@ -4747,6 +6853,9 @@ msgstr "粒子动画循环" msgid "Segments" msgstr "分段" +msgid "Backface Collision" +msgstr "背面碰撞" + msgid "Bake Resolution" msgstr "烘焙分辨率" @@ -4762,18 +6871,69 @@ msgstr "面板" msgid "Font Color" msgstr "字体颜色" +msgid "Font Pressed Color" +msgstr "字体颜色按下" + +msgid "Font Hover Color" +msgstr "字体颜色悬停" + +msgid "Font Focus Color" +msgstr "字体颜色聚焦" + +msgid "Font Hover Pressed Color" +msgstr "字体颜色悬停且按下" + +msgid "Font Disabled Color" +msgstr "字体颜色禁用" + +msgid "Font Outline Color" +msgstr "字体轮廓颜色" + +msgid "Icon Normal Color" +msgstr "图标正常颜色" + +msgid "Icon Pressed Color" +msgstr "图标按下颜色" + +msgid "Icon Hover Color" +msgstr "图标悬停颜色" + +msgid "Icon Hover Pressed Color" +msgstr "图标悬停按下颜色" + +msgid "Icon Focus Color" +msgstr "图标聚焦颜色" + +msgid "Icon Disabled Color" +msgstr "图标禁用颜色" + msgid "H Separation" msgstr "水平间距" msgid "Underline Spacing" msgstr "下划线间距" +msgid "Normal Mirrored" +msgstr "正常镜像" + +msgid "Hover Mirrored" +msgstr "悬停镜像" + +msgid "Pressed Mirrored" +msgstr "按下镜像" + +msgid "Disabled Mirrored" +msgstr "禁用镜像" + msgid "Arrow" msgstr "箭头" msgid "Arrow Margin" msgstr "箭头边距" +msgid "Modulate Arrow" +msgstr "调制箭头" + msgid "Hover Pressed" msgstr "悬停且按下" @@ -4787,29 +6947,65 @@ msgid "Unchecked Disabled" msgstr "未勾选且禁用" msgid "Radio Checked" -msgstr "单选选中" +msgstr "单选已勾选" msgid "Radio Checked Disabled" -msgstr "单选选中且禁用" +msgstr "单选已勾选且禁用" msgid "Radio Unchecked" -msgstr "单选未选中" +msgstr "单选未勾选" msgid "Radio Unchecked Disabled" msgstr "单选未选中且禁用" +msgid "Check V Offset" +msgstr "勾选图标垂直偏移" + +msgid "Checked Mirrored" +msgstr "勾选镜像" + +msgid "Checked Disabled Mirrored" +msgstr "勾选禁用镜像" + +msgid "Unchecked Mirrored" +msgstr "未勾选镜像" + +msgid "Unchecked Disabled Mirrored" +msgstr "未勾选禁用镜像" + +msgid "Font Shadow Color" +msgstr "字体阴影颜色" + msgid "Shadow Offset X" msgstr "阴影 X 偏移" msgid "Shadow Offset Y" msgstr "阴影 Y 偏移" +msgid "Shadow Outline Size" +msgstr "阴影轮廓大小" + +msgid "Font Selected Color" +msgstr "字体颜色选中" + +msgid "Font Uneditable Color" +msgstr "字体颜色不可编辑" + +msgid "Font Placeholder Color" +msgstr "字体颜色占位符" + msgid "Clear Button Color" msgstr "清除按钮颜色" msgid "Clear Button Color Pressed" msgstr "清除按钮颜色按下" +msgid "Minimum Character Width" +msgstr "最小字符宽度" + +msgid "Caret Width" +msgstr "光标宽度" + msgid "Clear" msgstr "清除" @@ -4822,12 +7018,27 @@ msgstr "选项卡" msgid "Space" msgstr "空格" +msgid "Font Readonly Color" +msgstr "字体颜色只读" + msgid "Breakpoint" msgstr "断点" +msgid "Bookmark" +msgstr "书签" + +msgid "Executing Line" +msgstr "执行行" + +msgid "Can Fold" +msgstr "可折叠" + msgid "Folded" msgstr "已折叠" +msgid "Folded EOL Icon" +msgstr "折叠 EOL 图标" + msgid "Completion Lines" msgstr "补全行数" @@ -4882,30 +7093,60 @@ msgstr "手柄禁用" msgid "Tick" msgstr "刻度" +msgid "Grabber Offset" +msgstr "抓取器偏移" + msgid "Updown" msgstr "上下" +msgid "Embedded Border" +msgstr "嵌入式边框" + msgid "Title Font" msgstr "标题字体" +msgid "Title Font Size" +msgstr "标题字体大小" + msgid "Title Color" msgstr "标题颜色" +msgid "Title Outline Modulate" +msgstr "标题轮廓调制" + +msgid "Title Outline Size" +msgstr "标题轮廓大小" + msgid "Title Height" msgstr "标题高度" +msgid "Resize Margin" +msgstr "调整边距" + msgid "Close" msgstr "关闭" +msgid "Close Pressed" +msgstr "关闭按下" + msgid "Close H Offset" msgstr "关闭水平偏移" msgid "Close V Offset" msgstr "关闭垂直偏移" +msgid "Buttons Separation" +msgstr "按钮间距" + msgid "Parent Folder" msgstr "父文件夹" +msgid "Back Folder" +msgstr "返回文件夹" + +msgid "Forward Folder" +msgstr "前进文件夹" + msgid "Reload" msgstr "重新加载" @@ -4918,6 +7159,15 @@ msgstr "文件夹" msgid "File" msgstr "文件" +msgid "Folder Icon Color" +msgstr "文件夹图标颜色" + +msgid "File Icon Color" +msgstr "文件图标颜色" + +msgid "File Disabled Color" +msgstr "文件禁用颜色" + msgid "Panel Disabled" msgstr "面板禁用" @@ -4933,18 +7183,45 @@ msgstr "带名称分隔线右侧" msgid "Submenu" msgstr "子菜单" +msgid "Submenu Mirrored" +msgstr "子菜单镜像" + msgid "Font Separator" -msgstr "分隔线字体" +msgstr "分隔符字体" + +msgid "Font Separator Size" +msgstr "分隔符字体大小" + +msgid "Font Accelerator Color" +msgstr "字体加速器颜色" + +msgid "Font Separator Color" +msgstr "字体分隔符颜色" + +msgid "Font Separator Outline Color" +msgstr "字体分隔符轮廓颜色" msgid "V Separation" msgstr "垂直间距" +msgid "Separator Outline Size" +msgstr "分隔符轮廓大小" + +msgid "Item Start Padding" +msgstr "项目首端填充" + +msgid "Item End Padding" +msgstr "项目末端填充" + msgid "Selected Frame" msgstr "选中框架" msgid "Comment Focus" msgstr "注释聚焦" +msgid "Slot" +msgstr "插槽" + msgid "Resizer" msgstr "大小调整器" @@ -4960,6 +7237,9 @@ msgstr "间距" msgid "Title Offset" msgstr "标题偏移" +msgid "Title H Offset" +msgstr "标题水平偏移" + msgid "Close Offset" msgstr "关闭偏移" @@ -4993,12 +7273,18 @@ msgstr "自定义按钮按下" msgid "Custom Button Hover" msgstr "自定义按钮悬停" +msgid "Indeterminate" +msgstr "不确定" + msgid "Select Arrow" msgstr "选择箭头" msgid "Arrow Collapsed" msgstr "箭头折叠" +msgid "Arrow Collapsed Mirrored" +msgstr "箭头折叠镜像" + msgid "Title Button Font" msgstr "标题按钮字体" @@ -5014,6 +7300,12 @@ msgstr "放置位置颜色" msgid "Relationship Line Color" msgstr "关系线颜色" +msgid "Parent HL Line Color" +msgstr "父 HL 线颜色" + +msgid "Children HL Line Color" +msgstr "子 HL 线颜色" + msgid "Custom Button Font Highlight" msgstr "自定义按钮字体高亮" @@ -5026,6 +7318,18 @@ msgstr "按钮边距" msgid "Draw Relationship Lines" msgstr "绘制关系线" +msgid "Relationship Line Width" +msgstr "关系线宽度" + +msgid "Parent HL Line Width" +msgstr "父 HL 线宽度" + +msgid "Children HL Line Width" +msgstr "子 HL 线宽度" + +msgid "Parent HL Line Margin" +msgstr "父 HL 线边距" + msgid "Draw Guides" msgstr "绘制参考线" @@ -5041,18 +7345,42 @@ msgstr "图标边距" msgid "Line Separation" msgstr "行间距" +msgid "Tab Selected" +msgstr "选项卡已选" + +msgid "Tab Unselected" +msgstr "选项卡未选" + msgid "Tab Disabled" msgstr "选项卡禁用" +msgid "Tabbar Background" +msgstr "选项卡栏背景" + +msgid "Drop Mark" +msgstr "放下标记" + msgid "Menu" msgstr "菜单" msgid "Menu Highlight" msgstr "菜单高亮" +msgid "Font Unselected Color" +msgstr "字体颜色未选" + +msgid "Drop Mark Color" +msgstr "放下标记颜色" + msgid "Side Margin" msgstr "侧边距" +msgid "Icon Separation" +msgstr "图标间距" + +msgid "Button Highlight" +msgstr "按钮高亮" + msgid "Large" msgstr "大号" @@ -5068,18 +7396,45 @@ msgstr "H 宽度" msgid "Label Width" msgstr "标签宽度" +msgid "Folded Arrow" +msgstr "折叠箭头" + +msgid "Expanded Arrow" +msgstr "展开箭头" + msgid "Screen Picker" msgstr "屏幕取色器" +msgid "Shape Circle" +msgstr "形状圆" + +msgid "Shape Rect" +msgstr "形状矩形" + +msgid "Shape Rect Wheel" +msgstr "形状矩形轮" + msgid "Add Preset" msgstr "添加预设" +msgid "Sample BG" +msgstr "采样背景" + msgid "Overbright Indicator" msgstr "过亮指示器" +msgid "Bar Arrow" +msgstr "条形箭头" + +msgid "Picker Cursor" +msgstr "选取器光标" + msgid "Color Hue" msgstr "颜色色相" +msgid "Color Okhsl Hue" +msgstr "颜色 Okhsl 色相" + msgid "BG" msgstr "背景" @@ -5104,12 +7459,48 @@ msgstr "加粗斜体字体" msgid "Mono Font" msgstr "等宽字体" +msgid "Normal Font Size" +msgstr "正常字体大小" + +msgid "Bold Font Size" +msgstr "粗体字体大小" + +msgid "Italics Font Size" +msgstr "斜体字体大小" + +msgid "Bold Italics Font Size" +msgstr "加粗斜体字体大小" + +msgid "Mono Font Size" +msgstr "等宽字体大小" + msgid "Table H Separation" msgstr "表格水平间距" msgid "Table V Separation" msgstr "表格垂直间距" +msgid "Table Odd Row BG" +msgstr "表格奇数行背景" + +msgid "Table Even Row BG" +msgstr "表格偶数行背景" + +msgid "Table Border" +msgstr "表格边框" + +msgid "Text Highlight H Padding" +msgstr "文本高亮水平填充" + +msgid "Text Highlight V Padding" +msgstr "文本高亮竖直填充" + +msgid "H Grabber" +msgstr "水平抓取器" + +msgid "V Grabber" +msgstr "竖直抓取器" + msgid "Margin Left" msgstr "左边距" @@ -5122,6 +7513,9 @@ msgstr "右边距" msgid "Margin Bottom" msgstr "下边距" +msgid "Minimum Grab Thickness" +msgstr "最小抓取厚度" + msgid "Autohide" msgstr "自动隐藏" @@ -5132,10 +7526,10 @@ msgid "More" msgstr "更多" msgid "Grid Minor" -msgstr "次网格" +msgstr "次栅格" msgid "Grid Major" -msgstr "主网格" +msgstr "主栅格" msgid "Selection Fill" msgstr "选中项填充" @@ -5146,9 +7540,18 @@ msgstr "选中项描边" msgid "Activity" msgstr "活动" +msgid "Port Hotzone Inner Extent" +msgstr "端口热区内部范围" + +msgid "Port Hotzone Outer Extent" +msgstr "端口热区外部范围" + msgid "Node" msgstr "节点" +msgid "Energy Multiplier" +msgstr "能量倍增器" + msgid "Canvas Max Layer" msgstr "画布最大层" @@ -5158,6 +7561,9 @@ msgstr "相机源 ID" msgid "Sky" msgstr "天空" +msgid "Custom FOV" +msgstr "自定义 FOV" + msgid "Ambient Light" msgstr "环境光" @@ -5167,12 +7573,18 @@ msgstr "来源" msgid "Sky Contribution" msgstr "天空贡献" +msgid "Reflected Light" +msgstr "反射光" + msgid "Tonemap" msgstr "色调映射" msgid "White" msgstr "白点" +msgid "SSR" +msgstr "SSR" + msgid "Max Steps" msgstr "最大步数" @@ -5188,15 +7600,57 @@ msgstr "深度公差" msgid "SSAO" msgstr "SSAO" +msgid "Power" +msgstr "力量" + msgid "Detail" msgstr "细节" +msgid "Horizon" +msgstr "地平线" + +msgid "Sharpness" +msgstr "边缘锐度" + msgid "Light Affect" msgstr "光照影响" msgid "AO Channel Affect" msgstr "AO 通道影响" +msgid "SSIL" +msgstr "SSIL" + +msgid "Normal Rejection" +msgstr "法线拒绝" + +msgid "SDFGI" +msgstr "SDFGI" + +msgid "Use Occlusion" +msgstr "使用遮挡" + +msgid "Read Sky Light" +msgstr "读取天空光照" + +msgid "Bounce Feedback" +msgstr "反弹反馈" + +msgid "Cascades" +msgstr "级联" + +msgid "Min Cell Size" +msgstr "最小单元格大小" + +msgid "Cascade 0 Distance" +msgstr "级联 0 距离" + +msgid "Y Scale" +msgstr "Y 比例" + +msgid "Probe Bias" +msgstr "探针偏置" + msgid "Glow" msgstr "辉光" @@ -5239,12 +7693,51 @@ msgstr "HDR 缩放" msgid "HDR Luminance Cap" msgstr "HDR 亮度上限" +msgid "Map Strength" +msgstr "映射强度" + +msgid "Map" +msgstr "映射" + msgid "Fog" msgstr "雾" +msgid "Light Color" +msgstr "光线颜色" + +msgid "Light Energy" +msgstr "光线能量" + +msgid "Sun Scatter" +msgstr "太阳散射" + +msgid "Density" +msgstr "密度" + +msgid "Aerial Perspective" +msgstr "空气透视" + +msgid "Sky Affect" +msgstr "天空影响" + +msgid "Height Density" +msgstr "高度密度" + +msgid "Volumetric Fog" +msgstr "体积雾" + +msgid "GI Inject" +msgstr "GI 注入" + msgid "Anisotropy" msgstr "各向异性" +msgid "Detail Spread" +msgstr "细节传播" + +msgid "Ambient Inject" +msgstr "环境光注入" + msgid "Adjustments" msgstr "调整" @@ -5257,12 +7750,51 @@ msgstr "饱和度" msgid "Color Correction" msgstr "颜色校正" +msgid "Height Falloff" +msgstr "高度衰减" + +msgid "Edge Fade" +msgstr "边缘淡化" + +msgid "Density Texture" +msgstr "密度纹理" + +msgid "Font Name" +msgstr "字体名称" + +msgid "Style Name" +msgstr "样式名称" + +msgid "Font Style" +msgstr "字体样式" + +msgid "Font Weight" +msgstr "字重" + +msgid "Font Stretch" +msgstr "字体拉伸" + +msgid "OpenType Feature Overrides" +msgstr "OpenType 功能覆盖" + +msgid "Base Font" +msgstr "基础字体" + msgid "Features" msgstr "特性" msgid "Extra Spacing" msgstr "额外间距" +msgid "Glyph" +msgstr "字形" + +msgid "Font Names" +msgstr "字体名称" + +msgid "Font Italic" +msgstr "字体斜体" + msgid "Interpolation Mode" msgstr "插值模式" @@ -5293,6 +7825,9 @@ msgstr "深度绘制模式" msgid "Shading" msgstr "着色" +msgid "Shading Mode" +msgstr "着色模式" + msgid "Diffuse Mode" msgstr "漫反射模式" @@ -5305,17 +7840,29 @@ msgstr "禁用环境光" msgid "Vertex Color" msgstr "顶点颜色" +msgid "Use as Albedo" +msgstr "用作反照率" + msgid "Is sRGB" msgstr "是 sRGB" +msgid "Texture Force sRGB" +msgstr "纹理强制 sRGB" + +msgid "Texture MSDF" +msgstr "纹理 MSDF" + +msgid "ORM" +msgstr "ORM" + msgid "Metallic" -msgstr "金属性" +msgstr "金属度" msgid "Texture Channel" msgstr "纹理通道" msgid "Operator" -msgstr "操作符" +msgstr "运算" msgid "On UV2" msgstr "使用 UV2" @@ -5347,9 +7894,18 @@ msgstr "翻转切线" msgid "Flip Binormal" msgstr "翻转次法线" +msgid "Flip Texture" +msgstr "翻转纹理" + msgid "Subsurface Scattering" msgstr "次表面散射" +msgid "Back Lighting" +msgstr "背部照明" + +msgid "Backlight" +msgstr "背光" + msgid "Refraction" msgstr "折射" @@ -5395,33 +7951,66 @@ msgstr "使用点大小" msgid "Point Size" msgstr "点大小" +msgid "Use Particle Trails" +msgstr "使用粒子尾迹" + msgid "Proximity Fade" msgstr "接近淡出" msgid "Distance" msgstr "距离" +msgid "MSDF" +msgstr "MSDF" + +msgid "Pixel Range" +msgstr "像素范围" + msgid "Lightmap Size Hint" msgstr "光照贴图大小提示" +msgid "Blend Shape Mode" +msgstr "混合形状模式" + +msgid "Shadow Mesh" +msgstr "阴影网格" + msgid "Item" msgstr "项目" msgid "Mesh Transform" msgstr "网格变换" +msgid "Navigation Mesh Transform" +msgstr "导航网格变换" + msgid "Preview" msgstr "预览" msgid "Transform Format" msgstr "变换格式" +msgid "Use Custom Data" +msgstr "使用自定义数据" + msgid "Instance Count" msgstr "实例数" msgid "Visible Instance Count" msgstr "可见实例数" +msgid "Transform Array" +msgstr "变换数组" + +msgid "Transform 2D Array" +msgstr "变换 2D 数组" + +msgid "Color Array" +msgstr "颜色数组" + +msgid "Custom Data Array" +msgstr "自定义数据数组" + msgid "Partition Type" msgstr "分区类型" @@ -5497,15 +8086,48 @@ msgstr "颜色纹理" msgid "Point Count" msgstr "点数" +msgid "Scale Min" +msgstr "最小缩放" + +msgid "Scale Max" +msgstr "最大缩放" + msgid "Scale Curve" msgstr "缩放曲线" +msgid "Noise Strength" +msgstr "噪声强度" + +msgid "Noise Speed" +msgstr "噪声速度" + +msgid "Noise Speed Random" +msgstr "噪声速度随机" + +msgid "Influence Min" +msgstr "最小影响" + +msgid "Influence Max" +msgstr "最大影响" + +msgid "Keep Velocity" +msgstr "保持速度" + +msgid "Use Scale" +msgstr "使用缩放" + msgid "Rough" msgstr "粗糙" msgid "Absorbent" msgstr "吸收" +msgid "Add UV2" +msgstr "添加 UV2" + +msgid "UV2 Padding" +msgstr "UV2 填充" + msgid "Subdivide Width" msgstr "细分宽度" @@ -5521,6 +8143,15 @@ msgstr "顶部半径" msgid "Bottom Radius" msgstr "底部半径" +msgid "Cap Top" +msgstr "顶盖" + +msgid "Cap Bottom" +msgstr "底盖" + +msgid "Left to Right" +msgstr "从左到右" + msgid "Is Hemisphere" msgstr "是否半球" @@ -5536,6 +8167,18 @@ msgstr "B" msgid "Custom Solver Bias" msgstr "自定义求解器偏置" +msgid "Target Nodepath" +msgstr "目标节点路径" + +msgid "Use Gravity" +msgstr "使用重力" + +msgid "Bone Index" +msgstr "骨骼索引" + +msgid "Bone 2D Node" +msgstr "Bone2D 节点" + msgid "Bind Count" msgstr "绑定数" @@ -5545,6 +8188,9 @@ msgstr "绑定" msgid "Bone" msgstr "骨骼" +msgid "Sky Material" +msgstr "天空材质" + msgid "Radiance Size" msgstr "辐射大小" @@ -5566,6 +8212,36 @@ msgstr "太阳" msgid "Panorama" msgstr "全景" +msgid "Rayleigh" +msgstr "瑞利散射" + +msgid "Coefficient" +msgstr "系数" + +msgid "Mie" +msgstr "米氏散射" + +msgid "Eccentricity" +msgstr "偏心率" + +msgid "Turbidity" +msgstr "浊度" + +msgid "Ground Color" +msgstr "地面颜色" + +msgid "Content Margins" +msgstr "内容边距" + +msgid "Texture Margins" +msgstr "纹理边距" + +msgid "Expand Margins" +msgstr "扩展边距" + +msgid "Sub-Region" +msgstr "子区域" + msgid "Blend" msgstr "混合" @@ -5590,8 +8266,17 @@ msgstr "向前伸长" msgid "Grow End" msgstr "向后伸长" -msgid "Image" -msgstr "图像" +msgid "Keyword Colors" +msgstr "关键词颜色" + +msgid "Member Keyword Colors" +msgstr "成员关键词颜色" + +msgid "Size Override" +msgstr "尺寸覆盖" + +msgid "Keep Compressed Buffer" +msgstr "保持压缩缓冲" msgid "Load Path" msgstr "加载路径" @@ -5608,6 +8293,15 @@ msgstr "基础纹理" msgid "Image Size" msgstr "图像大小" +msgid "Curve X" +msgstr "曲线 X" + +msgid "Curve Y" +msgstr "曲线 Y" + +msgid "Curve Z" +msgstr "曲线 Z" + msgid "Use HDR" msgstr "使用 HDR" @@ -5617,6 +8311,9 @@ msgstr "起点" msgid "To" msgstr "终点" +msgid "Frames" +msgstr "帧" + msgid "Current Frame" msgstr "当前帧" @@ -5629,24 +8326,99 @@ msgstr "源" msgid "Camera Is Active" msgstr "相机是否活动" +msgid "Default Base Scale" +msgstr "默认基础缩放" + msgid "Default Font" msgstr "默认字体" +msgid "Default Font Size" +msgstr "默认字体大小" + +msgid "Tile Shape" +msgstr "图块形状" + +msgid "Tile Layout" +msgstr "图块布局" + +msgid "Tile Offset Axis" +msgstr "图块偏移轴" + +msgid "Tile Size" +msgstr "图块大小" + +msgid "UV Clipping" +msgstr "UV 裁剪" + +msgid "Occlusion Layers" +msgstr "遮挡层" + +msgid "Physics Layers" +msgstr "物理层" + +msgid "Terrain Sets" +msgstr "地形集" + +msgid "Custom Data Layers" +msgstr "自定义数据层" + msgid "Transpose" msgstr "转置" +msgid "Y Sort Origin" +msgstr "Y 排序原点" + +msgid "Terrains" +msgstr "地形" + +msgid "Terrain Set" +msgstr "地形集" + +msgid "Terrain" +msgstr "地形" + +msgid "Miscellaneous" +msgstr "杂项" + +msgid "Probability" +msgstr "概率" + +msgid "Output Port for Preview" +msgstr "预览输出端口" + msgid "Modes" msgstr "模式" +msgid "Varyings" +msgstr "Varying" + msgid "Input Name" msgstr "输入名称" +msgid "Parameter Name" +msgstr "参数名称" + +msgid "Qualifier" +msgstr "修饰符" + +msgid "Varying Name" +msgstr "Varying 名称" + +msgid "Varying Type" +msgstr "Varying 类型" + +msgid "Op Type" +msgstr "操作类型" + msgid "Constant" msgstr "常量" msgid "Texture Type" msgstr "纹理类型" +msgid "Texture Array" +msgstr "纹理数组" + msgid "Cube Map" msgstr "立方体贴图" @@ -5665,6 +8437,12 @@ msgstr "默认值" msgid "Color Default" msgstr "颜色默认" +msgid "Use All Surfaces" +msgstr "使用所有表面" + +msgid "Surface Index" +msgstr "表面索引" + msgid "Canvas" msgstr "画布" @@ -5674,18 +8452,6 @@ msgstr "导航地图" msgid "Direct Space State" msgstr "DirectSpaceState" -msgid "Default Gravity" -msgstr "默认重力" - -msgid "Default Gravity Vector" -msgstr "默认重力向量" - -msgid "Default Cell Size" -msgstr "默认单元格大小" - -msgid "Default Edge Connection Margin" -msgstr "默认边界连接边距" - msgid "Fallback Environment" msgstr "回退环境" @@ -5695,9 +8461,24 @@ msgstr "场景" msgid "Plane" msgstr "平面" +msgid "Fallback values" +msgstr "回退值" + +msgid "Stylebox" +msgstr "样式盒" + +msgid "Streams" +msgstr "流" + +msgid "Playback Mode" +msgstr "播放模式" + msgid "Random Pitch" msgstr "随机音高" +msgid "Random Volume Offset dB" +msgstr "随机音量偏移 dB" + msgid "Buffer Length" msgstr "缓冲长度" @@ -5809,20 +8590,26 @@ msgstr "撤离时间(毫秒)" msgid "Surround" msgstr "环绕" +msgid "Enable Input" +msgstr "启用输入" + msgid "Output Latency" msgstr "输出延迟" msgid "Channel Disable Threshold dB" msgstr "声道禁用阈值 dB" +msgid "Video" +msgstr "视频" + msgid "Video Delay Compensation (ms)" msgstr "视频延迟补偿(毫秒)" msgid "Bus Count" msgstr "总线数量" -msgid "Capture Device" -msgstr "捕获设备" +msgid "Playback Speed Scale" +msgstr "播放速度缩放" msgid "Feed" msgstr "源" @@ -5830,11 +8617,56 @@ msgstr "源" msgid "Is Active" msgstr "是否激活" -msgid "Sleep Threshold Linear" -msgstr "睡眠线速度阈值" +msgid "Movie Writer" +msgstr "Movie Writer" -msgid "Sleep Threshold Angular" -msgstr "睡眠角速度阈值" +msgid "Movie File" +msgstr "电影文件" + +msgid "Disable V-Sync" +msgstr "禁用垂直同步" + +msgid "Pathfinding Algorithm" +msgstr "寻路算法" + +msgid "Path Postprocessing" +msgstr "路径后处理" + +msgid "Metadata Flags" +msgstr "元数据标志" + +msgid "Path Types" +msgstr "路径类型" + +msgid "Path Rids" +msgstr "路径 RID" + +msgid "Path Owner IDs" +msgstr "路径所有者 ID" + +msgid "Default Cell Size" +msgstr "默认单元格大小" + +msgid "Default Edge Connection Margin" +msgstr "默认边界连接边距" + +msgid "Default Link Connection Radius" +msgstr "默认链接连接边距" + +msgid "Edge Connection Color" +msgstr "边界连接颜色" + +msgid "Geometry Edge Color" +msgstr "几何体边颜色" + +msgid "Geometry Face Color" +msgstr "几何体面颜色" + +msgid "Geometry Edge Disabled Color" +msgstr "几何体边禁用颜色" + +msgid "Geometry Face Disabled Color" +msgstr "几何体面禁用颜色" msgid "Inverse Mass" msgstr "逆转质量" @@ -5863,12 +8695,30 @@ msgstr "与区域碰撞" msgid "Shape RID" msgstr "形状 RID" +msgid "Exclude Objects" +msgstr "排除对象" + +msgid "Default Gravity" +msgstr "默认重力" + +msgid "Default Gravity Vector" +msgstr "默认重力向量" + +msgid "Sleep Threshold Linear" +msgstr "睡眠线速度阈值" + +msgid "Sleep Threshold Angular" +msgstr "睡眠角速度阈值" + msgid "Physics Engine" msgstr "物理引擎" msgid "Principal Inertia Axes" msgstr "主惯性轴" +msgid "Max Collisions" +msgstr "最大碰撞数" + msgid "Vertex" msgstr "顶点" @@ -5884,29 +8734,50 @@ msgstr "剔除" msgid "Unshaded" msgstr "不着色" +msgid "Wireframe" +msgstr "线框" + +msgid "Skip Vertex Transform" +msgstr "跳过顶点变换" + +msgid "World Vertex Coords" +msgstr "世界顶点坐标" + msgid "Ensure Correct Normals" msgstr "确保正确法线" +msgid "Shadows Disabled" +msgstr "禁用阴影" + +msgid "Ambient Light Disabled" +msgstr "禁用环境光" + msgid "Vertex Lighting" msgstr "顶点光照" -msgid "Render Loop Enabled" -msgstr "启用渲染循环" +msgid "Particle Trails" +msgstr "粒子尾迹" -msgid "VRAM Compression" -msgstr "VRAM 压缩" +msgid "Disable Velocity" +msgstr "禁用速度" -msgid "Import BPTC" -msgstr "导入 BPTC" +msgid "Keep Data" +msgstr "保留数据" -msgid "Import S3TC" -msgstr "导入 S3TC" +msgid "Use Half Res Pass" +msgstr "使用二分之一分辨率阶段" -msgid "Import ETC" -msgstr "导入 ETC" +msgid "Use Quarter Res Pass" +msgstr "使用四分之一分辨率阶段" -msgid "Import ETC2" -msgstr "导入 ETC2" +msgid "Disable Fog" +msgstr "禁用雾" + +msgid "Render Loop Enabled" +msgstr "启用渲染循环" + +msgid "VRAM Compression" +msgstr "VRAM 压缩" msgid "Lossless Compression" msgstr "无损压缩" @@ -5914,27 +8785,93 @@ msgstr "无损压缩" msgid "Force PNG" msgstr "强制 PNG" +msgid "Use Physical Light Units" +msgstr "使用物理光线单位" + +msgid "Soft Shadow Filter Quality" +msgstr "柔和阴影过滤器质量" + msgid "Shadow Atlas" msgstr "阴影图集" +msgid "Shader Compiler" +msgstr "着色器编译器" + +msgid "Shader Cache" +msgstr "着色器缓存" + +msgid "Use Zstd Compression" +msgstr "使用 Zstd 压缩" + +msgid "Strip Debug" +msgstr "剥离调试" + msgid "Reflections" msgstr "反射" +msgid "Sky Reflections" +msgstr "天空反射" + msgid "Texture Array Reflections" msgstr "纹理数组反射" +msgid "GGX Samples" +msgstr "GGX 样本" + +msgid "Fast Filter High Quality" +msgstr "高质量快速过滤器" + +msgid "Reflection Atlas" +msgstr "反射图集" + +msgid "Reflection Size" +msgstr "反射大小" + +msgid "Reflection Count" +msgstr "反射数量" + +msgid "GI" +msgstr "全局光" + +msgid "Use Half Resolution" +msgstr "半分辨率" + msgid "Overrides" msgstr "重写" msgid "Force Vertex Shading" msgstr "强制顶点着色" +msgid "Force Lambert over Burley" +msgstr "强制 Lambert 而非 Burley" + msgid "Depth Prepass" msgstr "深度前置阶段" +msgid "Disable for Vendors" +msgstr "针对厂商禁用" + +msgid "Default Filters" +msgstr "默认过滤器" + msgid "Use Nearest Mipmap Filter" msgstr "使用最近 Mipmap 过滤" +msgid "Depth of Field" +msgstr "景深" + +msgid "Depth of Field Use Jitter" +msgstr "景深使用抖动" + +msgid "Occlusion Rays per Thread" +msgstr "每线程遮挡射线" + +msgid "Upscale Mode" +msgstr "放大模式" + +msgid "Global Shader Variables" +msgstr "全局着色器变量" + msgid "Buffer Size" msgstr "缓冲区大小" @@ -5944,12 +8881,21 @@ msgstr "着色器" msgid "Is Primary" msgstr "是否主要" +msgid "Play Area Mode" +msgstr "游玩区模式" + msgid "AR" msgstr "AR" msgid "Is Anchor Detection Enabled" msgstr "锚点检测是否启用" +msgid "Has Tracking Data" +msgstr "有跟踪数据" + +msgid "Tracking Confidence" +msgstr "追踪置信度" + msgid "Primary Interface" msgstr "主接口" diff --git a/editor/translations/properties/zh_TW.po b/editor/translations/properties/zh_TW.po index adadc3a969..93130d6ec7 100644 --- a/editor/translations/properties/zh_TW.po +++ b/editor/translations/properties/zh_TW.po @@ -44,16 +44,16 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-01-14 10:06+0000\n" -"Last-Translator: Edison Lee <edisonlee@edisonlee55.com>\n" +"PO-Revision-Date: 2023-02-10 10:44+0000\n" +"Last-Translator: abcabcc <xmmandxpp@outlook.com>\n" "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/" -"godot-engine/godot/zh_Hant/>\n" +"godot-engine/godot-properties/zh_Hant/>\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.15.1-dev\n" +"X-Generator: Weblate 4.16-dev\n" msgid "Application" msgstr "應用" @@ -64,9 +64,15 @@ msgstr "設置" msgid "Name" msgstr "名稱" +msgid "Description" +msgstr "說明" + msgid "Run" msgstr "執行" +msgid "Main Scene" +msgstr "主場景" + msgid "Disable stdout" msgstr "停用標準輸出" @@ -94,18 +100,27 @@ msgstr "視窗" msgid "Size" msgstr "大小" +msgid "Mode" +msgstr "模式" + msgid "Resizable" msgstr "可調整大小的" msgid "Borderless" msgstr "無邊框" +msgid "No Focus" +msgstr "關閉聚焦" + msgid "Energy Saving" msgstr "節能" msgid "Keep Screen On" msgstr "保持螢幕開啟" +msgid "Audio" +msgstr "音訊" + msgid "Editor" msgstr "編輯器" @@ -127,6 +142,9 @@ msgstr "偵錯" msgid "Settings" msgstr "設定" +msgid "Compression" +msgstr "壓縮" + msgid "Crash Handler" msgstr "當機處理常式" @@ -136,6 +154,21 @@ msgstr "訊息" msgid "Rendering" msgstr "算繪" +msgid "Limits" +msgstr "限制" + +msgid "Force Right to Left Layout Direction" +msgstr "強制畫面佈局由右至左" + +msgid "GUI" +msgstr "圖形使用者介面" + +msgid "Vulkan" +msgstr "Vulkan" + +msgid "Max Descriptors per Pool" +msgstr "各池最大描述符數" + msgid "Low Processor Usage Mode" msgstr "低處理器使用率模式" @@ -145,6 +178,9 @@ msgstr "低處理器使用率模式睡眠(微秒)" msgid "Print Error Messages" msgstr "顯示錯誤訊息" +msgid "Physics Ticks per Second" +msgstr "每秒物理週期數" + msgid "Time Scale" msgstr "時間縮放" @@ -160,9 +196,15 @@ msgstr "使用累積輸入" msgid "Device" msgstr "裝置" +msgid "Command or Control Autoremap" +msgstr "自動重對映 Command 和 Control" + msgid "Pressed" msgstr "按下" +msgid "Keycode" +msgstr "鍵碼" + msgid "Unicode" msgstr "Unicode" @@ -208,6 +250,9 @@ msgstr "軸數值" msgid "Index" msgstr "索引" +msgid "Double Tap" +msgstr "雙擊" + msgid "Action" msgstr "操作" @@ -235,6 +280,12 @@ msgstr "控制器值" msgid "Big Endian" msgstr "大端" +msgid "Network" +msgstr "網路" + +msgid "Page Size" +msgstr "分頁大小" + msgid "Blocking Mode Enabled" msgstr "啟用阻塞模式" @@ -271,15 +322,15 @@ msgstr "路徑" msgid "Data Array" msgstr "資料陣列" -msgid "Blocking Handshake" -msgstr "停用握手" - msgid "Max Pending Connections" msgstr "最大等待連接數" msgid "Offset" msgstr "偏移" +msgid "Cell Size" +msgstr "單元格大小" + msgid "Seed" msgstr "種子" @@ -289,6 +340,15 @@ msgstr "狀態" msgid "Source Code" msgstr "原始碼" +msgid "Worker Pool" +msgstr "工作池" + +msgid "Use System Threads for Low Priority Tasks" +msgstr "將系統執行緒用於低優先度任務" + +msgid "Low Priority Thread Ratio" +msgstr "低優先度執行緒的比率" + msgid "Locale" msgstr "地區" @@ -298,6 +358,9 @@ msgstr "測試" msgid "Fallback" msgstr "後備語言" +msgid "Double Vowels" +msgstr "重複母音" + msgid "Prefix" msgstr "前綴" @@ -343,15 +406,6 @@ msgstr "動畫" msgid "Easing" msgstr "緩入緩出" -msgid "Interface" -msgstr "界面" - -msgid "Editors" -msgstr "編輯器" - -msgid "Network" -msgstr "網路" - msgid "Remote Port" msgstr "遠端阜" @@ -421,8 +475,8 @@ msgstr "已勾選" msgid "Keying" msgstr "輸入" -msgid "Main Scene" -msgstr "主場景" +msgid "Interface" +msgstr "界面" msgid "Show Update Spinner" msgstr "顯示更新旋轉圖" @@ -484,6 +538,12 @@ msgstr "編輯器語言" msgid "Display Scale" msgstr "顯示縮放" +msgid "Enable Pseudolocalization" +msgstr "啟用模擬翻譯模式" + +msgid "Use Embedded Menu" +msgstr "使用嵌入式選單" + msgid "Custom Display Scale" msgstr "自訂顯示縮放" @@ -493,6 +553,12 @@ msgstr "主要字體大小" msgid "Code Font Size" msgstr "程式碼字體大小" +msgid "Code Font Contextual Ligatures" +msgstr "程式碼字體前後合字" + +msgid "Code Font Custom OpenType Features" +msgstr "程式碼字體自定義 OpenType 功能" + msgid "Font Hinting" msgstr "字體微調" @@ -506,19 +572,28 @@ msgid "Code Font" msgstr "程式碼字體" msgid "Low Processor Mode Sleep (µsec)" -msgstr "低處理器睡眠模式(微秒)" +msgstr "處理器節能模式睡眠 (微秒)" msgid "Unfocused Low Processor Mode Sleep (µsec)" -msgstr "未聚焦低處理器睡眠模式(微秒)" +msgstr "未聚焦時處理器節能模式睡眠 (微秒)" msgid "Separate Distraction Mode" -msgstr "獨立專注模式" +msgstr "將專注模式分離" msgid "Automatically Open Screenshots" msgstr "自動開啟截圖" +msgid "Single Window Mode" +msgstr "單視窗模式" + msgid "Mouse Extra Buttons Navigate History" -msgstr "使用額外滑鼠按鍵查看歷史" +msgstr "使用追加滑鼠按鍵以查看歷史紀錄" + +msgid "Save Each Scene on Quit" +msgstr "每次退出時儲存場景" + +msgid "Accept Dialog Cancel OK Buttons" +msgstr "接受對話框的取消/確定按鈕" msgid "Theme" msgstr "主題" @@ -721,6 +796,9 @@ msgstr "幫助源字體大小" msgid "Help Title Font Size" msgstr "幫助標題字體大小" +msgid "Editors" +msgstr "編輯器" + msgid "Grid Map" msgstr "網格地圖" @@ -1129,6 +1207,9 @@ msgstr "輪廓尺寸" msgid "Variation" msgstr "變化" +msgid "Transform" +msgstr "變換" + msgid "Collada" msgstr "Collada" @@ -1153,15 +1234,9 @@ msgstr "建立自" msgid "Delimiter" msgstr "分隔符號" -msgid "Mode" -msgstr "模式" - msgid "Lossy Quality" msgstr "低品質" -msgid "BPTC LDR" -msgstr "BPTC LDR" - msgid "Mipmaps" msgstr "Mipmap" @@ -1175,7 +1250,7 @@ msgid "Vertical" msgstr "垂直" msgid "Layout" -msgstr "畫面配置" +msgstr "配置;畫面佈局" msgid "Amount" msgstr "數量" @@ -1216,12 +1291,6 @@ msgstr "最佳化器" msgid "Max Angular Error" msgstr "最大角度誤差" -msgid "Compression" -msgstr "壓縮" - -msgid "Page Size" -msgstr "分頁大小" - msgid "Nodes" msgstr "節點" @@ -1327,6 +1396,9 @@ msgstr "使用執行緒" msgid "Available URLs" msgstr "可用 URL" +msgid "Unset" +msgstr "未設置" + msgid "Error" msgstr "錯誤" @@ -1444,9 +1516,6 @@ msgstr "執行緒" msgid "Thread Model" msgstr "執行緒模型" -msgid "Audio" -msgstr "音訊" - msgid "Handheld" msgstr "攜帶型" @@ -1477,15 +1546,18 @@ msgstr "iOS" msgid "Hide Home Indicator" msgstr "隱藏 Home 橫條" +msgid "Input Devices" +msgstr "輸入裝置" + +msgid "Pointing" +msgstr "指點" + msgid "Boot Splash" msgstr "啟動畫面" msgid "BG Color" msgstr "背景顏色" -msgid "Input Devices" -msgstr "輸入裝置" - msgid "Environment" msgstr "環境" @@ -1495,21 +1567,24 @@ msgstr "預設清除顏色" msgid "Show Image" msgstr "顯示圖像" +msgid "Image" +msgstr "圖像" + msgid "Fullsize" msgstr "全尺寸" msgid "Use Filter" msgstr "使用篩選器" +msgid "Icon" +msgstr "圖示" + msgid "Buffering" msgstr "緩衝" msgid "Agile Event Flushing" msgstr "敏捷事件刷新" -msgid "Pointing" -msgstr "指點" - msgid "Emulate Touch From Mouse" msgstr "以滑鼠模擬觸控" @@ -1531,12 +1606,15 @@ msgstr "專案" msgid "Main Loop Type" msgstr "主迴圈類型" +msgid "Stretch" +msgstr "伸縮" + +msgid "Aspect" +msgstr "方位" + msgid "Auto Accept Quit" msgstr "自動接受退出" -msgid "GUI" -msgstr "圖形使用者介面" - msgid "Fonts" msgstr "字體" @@ -1855,9 +1933,6 @@ msgstr "IGD 控制 URL" msgid "IGD Our Addr" msgstr "IGD 我方位址" -msgid "Limits" -msgstr "限制" - msgid "WebRTC" msgstr "WebRTC" @@ -1903,9 +1978,6 @@ msgstr "自適應前景 432 X 432" msgid "Adaptive Background 432 X 432" msgstr "自適應背景 432 X 432" -msgid "Use Custom Build" -msgstr "使用自定義建構" - msgid "Min SDK" msgstr "最小 SDK" @@ -1972,9 +2044,6 @@ msgstr "相機使用描述" msgid "Microphone Usage Description" msgstr "麥克風使用描述" -msgid "Icon" -msgstr "圖示" - msgid "Codesign" msgstr "程式碼簽章" @@ -2047,9 +2116,6 @@ msgstr "Apple 團隊 ID" msgid "Short Name" msgstr "短名稱" -msgid "Description" -msgstr "說明" - msgid "Publisher Display Name" msgstr "發布者顯示名稱" @@ -2161,9 +2227,6 @@ msgstr "路徑最大距離" msgid "Max Speed" msgstr "最大速度" -msgid "Transform" -msgstr "變換" - msgid "Rotation Degrees" msgstr "旋轉角度" @@ -2341,15 +2404,15 @@ msgstr "隨機延遲" msgid "Xfade Time" msgstr "Xfade 時間" -msgid "Reset" -msgstr "重設" - msgid "Add Amount" msgstr "增加數量" msgid "Blend Amount" msgstr "混合量" +msgid "Reset" +msgstr "重設" + msgid "Switch" msgstr "切換" @@ -2431,9 +2494,6 @@ msgstr "分頁大小" msgid "Split Offset" msgstr "拆分偏移" -msgid "Stretch" -msgstr "伸縮" - msgid "Current Tab" msgstr "當前分頁" @@ -2494,9 +2554,6 @@ msgstr "最小尺寸" msgid "Max Size" msgstr "最大大小" -msgid "Aspect" -msgstr "方位" - msgid "Format" msgstr "格式" @@ -2680,9 +2737,6 @@ msgstr "右下" msgid "Bottom Left" msgstr "左下" -msgid "Image" -msgstr "圖像" - msgid "Image Size" msgstr "圖片大小" @@ -2698,9 +2752,6 @@ msgstr "常數" msgid "Function" msgstr "函式" -msgid "Default Edge Connection Margin" -msgstr "預設邊緣連接邊距" - msgid "Plane" msgstr "平面" @@ -2719,11 +2770,8 @@ msgstr "FFT 大小" msgid "Time Pullout (ms)" msgstr "撤離時間(毫秒)" -msgid "Sleep Threshold Linear" -msgstr "線性睡眠速度閾值" - -msgid "Sleep Threshold Angular" -msgstr "睡眠角速度閾值" +msgid "Default Edge Connection Margin" +msgstr "預設邊緣連接邊距" msgid "Inverse Mass" msgstr "逆質量" @@ -2752,6 +2800,12 @@ msgstr "區域間碰撞" msgid "Shape RID" msgstr "形狀RID" +msgid "Sleep Threshold Linear" +msgstr "線性睡眠速度閾值" + +msgid "Sleep Threshold Angular" +msgstr "睡眠角速度閾值" + msgid "Physics Engine" msgstr "物理引擎" @@ -2773,18 +2827,6 @@ msgstr "啟用算繪迴圈" msgid "VRAM Compression" msgstr "VRAM壓縮" -msgid "Import BPTC" -msgstr "匯入BPTC" - -msgid "Import S3TC" -msgstr "匯入S3TC" - -msgid "Import ETC" -msgstr "匯入ETC" - -msgid "Import ETC2" -msgstr "匯入ETC2" - msgid "Force PNG" msgstr "強制 PNG" |