diff options
Diffstat (limited to 'editor')
217 files changed, 13990 insertions, 7970 deletions
diff --git a/editor/animation_bezier_editor.cpp b/editor/animation_bezier_editor.cpp index f0650ee446..391cd009f1 100644 --- a/editor/animation_bezier_editor.cpp +++ b/editor/animation_bezier_editor.cpp @@ -44,17 +44,6 @@ float AnimationBezierTrackEdit::_bezier_h_to_pixel(float p_h) { return h; } -static _FORCE_INLINE_ Vector2 _bezier_interp(real_t t, const Vector2 &start, const Vector2 &control_1, const Vector2 &control_2, const Vector2 &end) { - /* Formula from Wikipedia article on Bezier curves. */ - real_t omt = (1.0 - t); - real_t omt2 = omt * omt; - real_t omt3 = omt2 * omt; - real_t t2 = t * t; - real_t t3 = t2 * t; - - return start * omt3 + control_1 * omt2 * t * 3.0 + control_2 * omt * t2 * 3.0 + end * t3; -} - void AnimationBezierTrackEdit::_draw_track(int p_track, const Color &p_color) { float scale = timeline->get_zoom_scale(); @@ -151,7 +140,7 @@ void AnimationBezierTrackEdit::_draw_track(int p_track, const Color &p_color) { for (int k = 0; k < iterations; k++) { float middle = (low + high) / 2; - Vector2 interp = _bezier_interp(middle, start, out_handle, in_handle, end); + Vector2 interp = start.bezier_interpolate(out_handle, in_handle, end, middle); if (interp.x < t) { low = middle; @@ -161,8 +150,8 @@ void AnimationBezierTrackEdit::_draw_track(int p_track, const Color &p_color) { } //interpolate the result: - Vector2 low_pos = _bezier_interp(low, start, out_handle, in_handle, end); - Vector2 high_pos = _bezier_interp(high, start, out_handle, in_handle, end); + Vector2 low_pos = start.bezier_interpolate(out_handle, in_handle, end, low); + Vector2 high_pos = start.bezier_interpolate(out_handle, in_handle, end, high); float c = (t - low_pos.x) / (high_pos.x - low_pos.x); diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index e612130041..19b259489f 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -1577,10 +1577,10 @@ void AnimationTimelineEdit::_notification(int p_what) { int decimals = 2; bool step_found = false; - const float period_width = font->get_char_size('.', 0, font_size).width; - float max_digit_width = font->get_char_size('0', 0, font_size).width; + const float period_width = font->get_char_size('.', font_size).width; + float max_digit_width = font->get_char_size('0', font_size).width; for (int i = 1; i <= 9; i++) { - const float digit_width = font->get_char_size('0' + i, 0, font_size).width; + const float digit_width = font->get_char_size('0' + i, font_size).width; max_digit_width = MAX(digit_width, max_digit_width); } const int max_sc = int(Math::ceil(zoomw / scale)); @@ -1628,7 +1628,7 @@ void AnimationTimelineEdit::_notification(int p_what) { draw_line(Point2(get_name_limit() + i, 0), Point2(get_name_limit() + i, h), linecolor, Math::round(EDSCALE)); draw_string(font, Point2(get_name_limit() + i + 3 * EDSCALE, (h - font->get_height(font_size)) / 2 + font->get_ascent(font_size)).floor(), itos(frame), HORIZONTAL_ALIGNMENT_LEFT, zoomw - i, font_size, sub ? color_time_dec : color_time_sec); - prev_frame_ofs = i + font->get_string_size(itos(frame), font_size).x + 5 * EDSCALE; + prev_frame_ofs = i + font->get_string_size(itos(frame), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x + 5 * EDSCALE; } } } @@ -3696,7 +3696,7 @@ void AnimationTrackEditor::commit_insert_queue() { insert_confirm_bezier->set_visible(all_bezier); insert_confirm_reset->set_visible(reset_allowed); - insert_confirm->get_ok_button()->set_text(TTR("Create")); + insert_confirm->set_ok_button_text(TTR("Create")); insert_confirm->popup_centered(); } else { _insert_track(reset_allowed && EDITOR_GET("editors/animation/default_create_reset_tracks"), all_bezier && EDITOR_GET("editors/animation/default_create_bezier_tracks")); @@ -6473,7 +6473,7 @@ AnimationTrackEditor::AnimationTrackEditor() { optimize_max_angle->set_step(0.1); optimize_max_angle->set_value(22); - optimize_dialog->get_ok_button()->set_text(TTR("Optimize")); + optimize_dialog->set_ok_button_text(TTR("Optimize")); optimize_dialog->connect("confirmed", callable_mp(this, &AnimationTrackEditor::_edit_menu_pressed), varray(EDIT_OPTIMIZE_ANIMATION_CONFIRM)); // @@ -6498,7 +6498,7 @@ AnimationTrackEditor::AnimationTrackEditor() { cleanup_vb->add_child(cleanup_all); cleanup_dialog->set_title(TTR("Clean-Up Animation(s) (NO UNDO!)")); - cleanup_dialog->get_ok_button()->set_text(TTR("Clean-Up")); + cleanup_dialog->set_ok_button_text(TTR("Clean-Up")); cleanup_dialog->connect("confirmed", callable_mp(this, &AnimationTrackEditor::_edit_menu_pressed), varray(EDIT_CLEAN_UP_ANIMATION_CONFIRM)); @@ -6518,7 +6518,7 @@ AnimationTrackEditor::AnimationTrackEditor() { track_copy_dialog = memnew(ConfirmationDialog); add_child(track_copy_dialog); track_copy_dialog->set_title(TTR("Select Tracks to Copy")); - track_copy_dialog->get_ok_button()->set_text(TTR("Copy")); + track_copy_dialog->set_ok_button_text(TTR("Copy")); VBoxContainer *track_vbox = memnew(VBoxContainer); track_copy_dialog->add_child(track_vbox); diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index 7c00cf351c..50abe8bc36 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -1024,6 +1024,7 @@ void CodeTextEditor::update_editor_settings() { text_editor->set_scroll_past_end_of_file_enabled(EditorSettings::get_singleton()->get("text_editor/behavior/navigation/scroll_past_end_of_file")); text_editor->set_smooth_scroll_enabled(EditorSettings::get_singleton()->get("text_editor/behavior/navigation/smooth_scrolling")); text_editor->set_v_scroll_speed(EditorSettings::get_singleton()->get("text_editor/behavior/navigation/v_scroll_speed")); + text_editor->set_drag_and_drop_selection_enabled(EditorSettings::get_singleton()->get("text_editor/behavior/navigation/drag_and_drop_selection")); // Behavior: indent text_editor->set_indent_using_spaces(EditorSettings::get_singleton()->get("text_editor/behavior/indent/type")); @@ -1635,30 +1636,35 @@ void CodeTextEditor::_apply_settings_change() { _update_text_editor_theme(); font_size = EditorSettings::get_singleton()->get("interface/editor/code_font_size"); - int ot_mode = EditorSettings::get_singleton()->get("interface/editor/code_font_contextual_ligatures"); - switch (ot_mode) { - case 1: { // Disable ligatures. - text_editor->clear_opentype_features(); - text_editor->set_opentype_feature("calt", 0); - } break; - case 2: { // Custom. - text_editor->clear_opentype_features(); - Vector<String> subtag = String(EditorSettings::get_singleton()->get("interface/editor/code_font_custom_opentype_features")).split(","); - Dictionary ftrs; - for (int i = 0; i < subtag.size(); i++) { - Vector<String> subtag_a = subtag[i].split("="); - if (subtag_a.size() == 2) { - text_editor->set_opentype_feature(subtag_a[0], subtag_a[1].to_int()); - } else if (subtag_a.size() == 1) { - text_editor->set_opentype_feature(subtag_a[0], 1); + + Ref<FontVariation> fc = text_editor->get_theme_font(SNAME("font")); + if (fc.is_valid()) { + switch (ot_mode) { + case 1: { // Disable ligatures. + Dictionary ftrs; + ftrs[TS->name_to_tag("calt")] = 0; + fc->set_opentype_features(ftrs); + } break; + case 2: { // Custom. + Vector<String> subtag = String(EditorSettings::get_singleton()->get("interface/editor/code_font_custom_opentype_features")).split(","); + Dictionary ftrs; + for (int i = 0; i < subtag.size(); i++) { + Vector<String> subtag_a = subtag[i].split("="); + if (subtag_a.size() == 2) { + ftrs[TS->name_to_tag(subtag_a[0])] = subtag_a[1].to_int(); + } else if (subtag_a.size() == 1) { + ftrs[TS->name_to_tag(subtag_a[0])] = 1; + } } - } - } break; - default: { // Default. - text_editor->clear_opentype_features(); - text_editor->set_opentype_feature("calt", 1); - } break; + fc->set_opentype_features(ftrs); + } break; + default: { // Default. + Dictionary ftrs; + ftrs[TS->name_to_tag("calt")] = 1; + fc->set_opentype_features(ftrs); + } break; + } } text_editor->set_code_hint_draw_below(EDITOR_GET("text_editor/completion/put_callhint_tooltip_below_current_line")); @@ -1861,28 +1867,33 @@ CodeTextEditor::CodeTextEditor() { text_editor->set_v_size_flags(SIZE_EXPAND_FILL); int ot_mode = EditorSettings::get_singleton()->get("interface/editor/code_font_contextual_ligatures"); - switch (ot_mode) { - case 1: { // Disable ligatures. - text_editor->clear_opentype_features(); - text_editor->set_opentype_feature("calt", 0); - } break; - case 2: { // Custom. - text_editor->clear_opentype_features(); - Vector<String> subtag = String(EditorSettings::get_singleton()->get("interface/editor/code_font_custom_opentype_features")).split(","); - Dictionary ftrs; - for (int i = 0; i < subtag.size(); i++) { - Vector<String> subtag_a = subtag[i].split("="); - if (subtag_a.size() == 2) { - text_editor->set_opentype_feature(subtag_a[0], subtag_a[1].to_int()); - } else if (subtag_a.size() == 1) { - text_editor->set_opentype_feature(subtag_a[0], 1); + Ref<FontVariation> fc = text_editor->get_theme_font(SNAME("font")); + if (fc.is_valid()) { + switch (ot_mode) { + case 1: { // Disable ligatures. + Dictionary ftrs; + ftrs[TS->name_to_tag("calt")] = 0; + fc->set_opentype_features(ftrs); + } break; + case 2: { // Custom. + Vector<String> subtag = String(EditorSettings::get_singleton()->get("interface/editor/code_font_custom_opentype_features")).split(","); + Dictionary ftrs; + for (int i = 0; i < subtag.size(); i++) { + Vector<String> subtag_a = subtag[i].split("="); + if (subtag_a.size() == 2) { + ftrs[TS->name_to_tag(subtag_a[0])] = subtag_a[1].to_int(); + } else if (subtag_a.size() == 1) { + ftrs[TS->name_to_tag(subtag_a[0])] = 1; + } } - } - } break; - default: { // Default. - text_editor->clear_opentype_features(); - text_editor->set_opentype_feature("calt", 1); - } break; + fc->set_opentype_features(ftrs); + } break; + default: { // Default. + Dictionary ftrs; + ftrs[TS->name_to_tag("calt")] = 1; + fc->set_opentype_features(ftrs); + } break; + } } text_editor->set_draw_line_numbers(true); diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp index 74fea03fee..ce94edd583 100644 --- a/editor/connections_dialog.cpp +++ b/editor/connections_dialog.cpp @@ -494,8 +494,8 @@ ConnectDialog::ConnectDialog() { error = memnew(AcceptDialog); add_child(error); error->set_title(TTR("Cannot connect signal")); - error->get_ok_button()->set_text(TTR("Close")); - get_ok_button()->set_text(TTR("Connect")); + error->set_ok_button_text(TTR("Close")); + set_ok_button_text(TTR("Connect")); } ConnectDialog::~ConnectDialog() { diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp index 3469e96a0a..c41eeb520a 100644 --- a/editor/create_dialog.cpp +++ b/editor/create_dialog.cpp @@ -57,10 +57,10 @@ void CreateDialog::popup_create(bool p_dont_clear, bool p_replace_mode, const St if (p_replace_mode) { set_title(vformat(TTR("Change %s Type"), base_type)); - get_ok_button()->set_text(TTR("Change")); + set_ok_button_text(TTR("Change")); } else { set_title(vformat(TTR("Create New %s"), base_type)); - get_ok_button()->set_text(TTR("Create")); + set_ok_button_text(TTR("Create")); } _load_favorites_and_history(); @@ -474,6 +474,13 @@ void CreateDialog::select_type(const String &p_type, bool p_center_on_item) { get_ok_button()->set_disabled(false); } +void CreateDialog::select_base() { + if (search_options_types.is_empty()) { + _update_search(); + } + select_type(base_type, false); +} + String CreateDialog::get_selected_type() { TreeItem *selected = search_options->get_selected(); if (!selected) { diff --git a/editor/create_dialog.h b/editor/create_dialog.h index 3ab27ea58c..dc8618a1c0 100644 --- a/editor/create_dialog.h +++ b/editor/create_dialog.h @@ -115,6 +115,7 @@ public: void set_base_type(const String &p_base) { base_type = p_base; } String get_base_type() const { return base_type; } + void select_base(); void set_preferred_search_result_type(const String &p_preferred_type) { preferred_search_result_type = p_preferred_type; } String get_preferred_search_result_type() { return preferred_search_result_type; } diff --git a/editor/debugger/editor_debugger_tree.cpp b/editor/debugger/editor_debugger_tree.cpp index 023204b74a..bdab1cfecb 100644 --- a/editor/debugger/editor_debugger_tree.cpp +++ b/editor/debugger/editor_debugger_tree.cpp @@ -258,7 +258,7 @@ void EditorDebuggerTree::_item_menu_id_pressed(int p_option) { ResourceSaver::get_recognized_extensions(sd, &extensions); file_dialog->clear_filters(); for (int i = 0; i < extensions.size(); i++) { - file_dialog->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper()); + file_dialog->add_filter("*." + extensions[i], extensions[i].to_upper()); } file_dialog->popup_file_dialog(); diff --git a/editor/debugger/editor_performance_profiler.cpp b/editor/debugger/editor_performance_profiler.cpp index 764e842539..50eef7b8b8 100644 --- a/editor/debugger/editor_performance_profiler.cpp +++ b/editor/debugger/editor_performance_profiler.cpp @@ -136,7 +136,7 @@ void EditorPerformanceProfiler::_monitor_draw() { monitor_draw->draw_string(graph_font, rect.position + Point2(0, graph_font->get_ascent(font_size)), current.item->get_text(0), HORIZONTAL_ALIGNMENT_LEFT, rect.size.x, font_size, draw_color); draw_color.a = 0.9f; - float value_position = rect.size.width - graph_font->get_string_size(current.item->get_text(1), font_size).width; + float value_position = rect.size.width - graph_font->get_string_size(current.item->get_text(1), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).width; if (value_position < 0) { value_position = 0; } @@ -184,7 +184,7 @@ void EditorPerformanceProfiler::_monitor_draw() { monitor_draw->draw_line(rect.position + Point2(from, 0), rect.position + Point2(from, rect.size.y), line_color, Math::round(EDSCALE)); String label = _create_label(e->get(), current.type); - Size2 size = graph_font->get_string_size(label, font_size); + Size2 size = graph_font->get_string_size(label, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size); Vector2 text_top_left_position = Vector2(from, h2) - (size + Vector2(MARKER_MARGIN, MARKER_MARGIN)); if (text_top_left_position.x < 0) { text_top_left_position.x = from + MARKER_MARGIN; diff --git a/editor/debugger/editor_profiler.cpp b/editor/debugger/editor_profiler.cpp index 1b1cdbd9ef..28b5d4be15 100644 --- a/editor/debugger/editor_profiler.cpp +++ b/editor/debugger/editor_profiler.cpp @@ -312,7 +312,7 @@ void EditorProfiler::_update_plot() { if (graph_texture.is_null()) { graph_texture.instantiate(); } - graph_texture->create_from_image(img); + graph_texture->set_image(img); } graph_texture->update(img); diff --git a/editor/debugger/editor_visual_profiler.cpp b/editor/debugger/editor_visual_profiler.cpp index 9def646f3f..ee67cbdaea 100644 --- a/editor/debugger/editor_visual_profiler.cpp +++ b/editor/debugger/editor_visual_profiler.cpp @@ -306,7 +306,7 @@ void EditorVisualProfiler::_update_plot() { if (graph_texture.is_null()) { graph_texture.instantiate(); } - graph_texture->create_from_image(img); + graph_texture->set_image(img); } graph_texture->update(img); @@ -469,7 +469,7 @@ void EditorVisualProfiler::_graph_tex_draw() { graph->draw_line(Vector2(0, frame_y), Vector2(half_width, frame_y), color * Color(1, 1, 1, 0.5)); const String limit_str = String::num(graph_limit, 2) + " ms"; - graph->draw_string(font, Vector2(half_width - font->get_string_size(limit_str, font_size).x - 2, frame_y - 2), limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1, 0.75)); + graph->draw_string(font, Vector2(half_width - font->get_string_size(limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x - 2, frame_y - 2), limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1, 0.75)); } if (graph_height_gpu > 0) { @@ -480,11 +480,11 @@ void EditorVisualProfiler::_graph_tex_draw() { graph->draw_line(Vector2(half_width, frame_y), Vector2(graph->get_size().x, frame_y), color * Color(1, 1, 1, 0.5)); const String limit_str = String::num(graph_limit, 2) + " ms"; - graph->draw_string(font, Vector2(half_width * 2 - font->get_string_size(limit_str, font_size).x - 2, frame_y - 2), limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1, 0.75)); + graph->draw_string(font, Vector2(half_width * 2 - font->get_string_size(limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x - 2, frame_y - 2), limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1, 0.75)); } - graph->draw_string(font, Vector2(font->get_string_size("X", font_size).x, font->get_ascent(font_size) + 2), "CPU:", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1)); - graph->draw_string(font, Vector2(font->get_string_size("X", font_size).x + graph->get_size().width / 2, font->get_ascent(font_size) + 2), "GPU:", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1)); + graph->draw_string(font, Vector2(font->get_string_size("X", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x, font->get_ascent(font_size) + 2), "CPU:", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1)); + graph->draw_string(font, Vector2(font->get_string_size("X", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x + graph->get_size().width / 2, font->get_ascent(font_size) + 2), "GPU:", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1)); } void EditorVisualProfiler::_graph_tex_mouse_exit() { diff --git a/editor/debugger/script_editor_debugger.cpp b/editor/debugger/script_editor_debugger.cpp index c209c67dcb..f8b82ecc51 100644 --- a/editor/debugger/script_editor_debugger.cpp +++ b/editor/debugger/script_editor_debugger.cpp @@ -428,6 +428,9 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da case RemoteDebugger::MESSAGE_TYPE_LOG: { msg_type = EditorLog::MSG_TYPE_STD; } break; + case RemoteDebugger::MESSAGE_TYPE_LOG_RICH: { + msg_type = EditorLog::MSG_TYPE_STD_RICH; + } break; case RemoteDebugger::MESSAGE_TYPE_ERROR: { msg_type = EditorLog::MSG_TYPE_ERROR; } break; @@ -1419,6 +1422,10 @@ bool ScriptEditorDebugger::is_skip_breakpoints() { void ScriptEditorDebugger::_error_activated() { TreeItem *selected = error_tree->get_selected(); + if (!selected) { + return; + } + TreeItem *ci = selected->get_first_child(); if (ci) { selected->set_collapsed(!selected->is_collapsed()); @@ -1427,6 +1434,11 @@ void ScriptEditorDebugger::_error_activated() { void ScriptEditorDebugger::_error_selected() { TreeItem *selected = error_tree->get_selected(); + + if (!selected) { + return; + } + Array meta = selected->get_metadata(0); if (meta.size() == 0) { return; diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp index 97699d0349..aa03b7e252 100644 --- a/editor/dependency_editor.cpp +++ b/editor/dependency_editor.cpp @@ -487,7 +487,7 @@ void DependencyRemoveDialog::show(const Vector<String> &p_folders, const Vector< void DependencyRemoveDialog::ok_pressed() { for (int i = 0; i < files_to_delete.size(); ++i) { if (ResourceCache::has(files_to_delete[i])) { - Resource *res = ResourceCache::get(files_to_delete[i]); + Ref<Resource> res = ResourceCache::get_ref(files_to_delete[i]); res->set_path(""); } @@ -575,7 +575,7 @@ void DependencyRemoveDialog::_bind_methods() { } DependencyRemoveDialog::DependencyRemoveDialog() { - get_ok_button()->set_text(TTR("Remove")); + set_ok_button_text(TTR("Remove")); VBoxContainer *vb = memnew(VBoxContainer); add_child(vb); @@ -641,8 +641,8 @@ DependencyErrorDialog::DependencyErrorDialog() { files->set_v_size_flags(Control::SIZE_EXPAND_FILL); set_min_size(Size2(500, 220) * EDSCALE); - get_ok_button()->set_text(TTR("Open Anyway")); - get_cancel_button()->set_text(TTR("Close")); + set_ok_button_text(TTR("Open Anyway")); + set_cancel_button_text(TTR("Close")); text = memnew(Label); vb->add_child(text); @@ -780,7 +780,7 @@ void OrphanResourcesDialog::_bind_methods() { OrphanResourcesDialog::OrphanResourcesDialog() { set_title(TTR("Orphan Resource Explorer")); delete_confirm = memnew(ConfirmationDialog); - get_ok_button()->set_text(TTR("Delete")); + set_ok_button_text(TTR("Delete")); add_child(delete_confirm); dep_edit = memnew(DependencyEditor); add_child(dep_edit); diff --git a/editor/doc_tools.cpp b/editor/doc_tools.cpp index e6cd1e0b48..a6c7970264 100644 --- a/editor/doc_tools.cpp +++ b/editor/doc_tools.cpp @@ -178,6 +178,20 @@ void DocTools::merge_from(const DocTools &p_data) { } } + for (int i = 0; i < c.annotations.size(); i++) { + DocData::MethodDoc &m = c.annotations.write[i]; + + for (int j = 0; j < cf.annotations.size(); j++) { + if (cf.annotations[j].name != m.name) { + continue; + } + const DocData::MethodDoc &mf = cf.annotations[j]; + + m.description = mf.description; + break; + } + } + for (int i = 0; i < c.properties.size(); i++) { DocData::PropertyDoc &p = c.properties.write[i]; @@ -429,7 +443,7 @@ void DocTools::generate(bool p_basic_types) { PropertyInfo retinfo = mb->get_return_info(); found_type = true; - if (retinfo.type == Variant::INT && retinfo.usage & PROPERTY_USAGE_CLASS_IS_ENUM) { + if (retinfo.type == Variant::INT && retinfo.usage & (PROPERTY_USAGE_CLASS_IS_ENUM | PROPERTY_USAGE_CLASS_IS_BITFIELD)) { prop.enumeration = retinfo.class_name; prop.type = "int"; } else if (retinfo.class_name != StringName()) { @@ -575,6 +589,7 @@ void DocTools::generate(bool p_basic_types) { constant.value = itos(ClassDB::get_integer_constant(name, E)); constant.is_value_valid = true; constant.enumeration = ClassDB::get_integer_constant_enum(name, E); + constant.is_bitfield = ClassDB::is_enum_bitfield(name, constant.enumeration); c.constants.push_back(constant); } @@ -959,8 +974,41 @@ void DocTools::generate(bool p_basic_types) { c.constants.push_back(cd); } + // Get annotations. + List<MethodInfo> ainfo; + lang->get_public_annotations(&ainfo); + + for (const MethodInfo &ai : ainfo) { + DocData::MethodDoc atd; + atd.name = ai.name; + + if (ai.flags & METHOD_FLAG_VARARG) { + if (!atd.qualifiers.is_empty()) { + atd.qualifiers += " "; + } + atd.qualifiers += "vararg"; + } + + DocData::return_doc_from_retinfo(atd, ai.return_val); + + for (int j = 0; j < ai.arguments.size(); j++) { + DocData::ArgumentDoc ad; + DocData::argument_doc_from_arginfo(ad, ai.arguments[j]); + + int darg_idx = j - (ai.arguments.size() - ai.default_arguments.size()); + if (darg_idx >= 0) { + Variant default_arg = ai.default_arguments[darg_idx]; + ad.default_value = default_arg.get_construct_string().replace("\n", " "); + } + + atd.arguments.push_back(ad); + } + + c.annotations.push_back(atd); + } + // Skip adding the lang if it doesn't expose anything (e.g. C#). - if (c.methods.is_empty() && c.constants.is_empty()) { + if (c.methods.is_empty() && c.constants.is_empty() && c.annotations.is_empty()) { continue; } @@ -1162,6 +1210,9 @@ Error DocTools::_load(Ref<XMLParser> parser) { } else if (name2 == "signals") { Error err2 = _parse_methods(parser, c.signals); ERR_FAIL_COND_V(err2, err2); + } else if (name2 == "annotations") { + Error err2 = _parse_methods(parser, c.annotations); + ERR_FAIL_COND_V(err2, err2); } else if (name2 == "members") { while (parser->read() == OK) { if (parser->get_node_type() == XMLParser::NODE_ELEMENT) { @@ -1244,6 +1295,9 @@ Error DocTools::_load(Ref<XMLParser> parser) { if (parser->has_attribute("enum")) { constant2.enumeration = parser->get_attribute_value("enum"); } + if (parser->has_attribute("is_bitfield")) { + constant2.is_bitfield = parser->get_attribute_value("is_bitfield").to_lower() == "true"; + } if (!parser->is_empty()) { parser->read(); if (parser->get_node_type() == XMLParser::NODE_TEXT) { @@ -1424,7 +1478,11 @@ Error DocTools::save_classes(const String &p_default_path, const HashMap<String, const DocData::ConstantDoc &k = c.constants[i]; if (k.is_value_valid) { if (!k.enumeration.is_empty()) { - _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"" + k.value + "\" enum=\"" + k.enumeration + "\">"); + if (k.is_bitfield) { + _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"" + k.value + "\" enum=\"" + k.enumeration + "\" is_bitfield=\"true\">"); + } else { + _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"" + k.value + "\" enum=\"" + k.enumeration + "\">"); + } } else { _write_string(f, 2, "<constant name=\"" + k.name + "\" value=\"" + k.value + "\">"); } @@ -1442,6 +1500,8 @@ Error DocTools::save_classes(const String &p_default_path, const HashMap<String, _write_string(f, 1, "</constants>"); } + _write_method_doc(f, "annotation", c.annotations); + if (!c.theme_properties.is_empty()) { c.theme_properties.sort(); diff --git a/editor/editor_asset_installer.cpp b/editor/editor_asset_installer.cpp index ef29448854..3d4bee4b4e 100644 --- a/editor/editor_asset_installer.cpp +++ b/editor/editor_asset_installer.cpp @@ -355,7 +355,7 @@ EditorAssetInstaller::EditorAssetInstaller() { error = memnew(AcceptDialog); add_child(error); - get_ok_button()->set_text(TTR("Install")); + set_ok_button_text(TTR("Install")); set_title(TTR("Asset Installer")); set_hide_on_ok(true); diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp index 89dc106717..fa365c4368 100644 --- a/editor/editor_audio_buses.cpp +++ b/editor/editor_audio_buses.cpp @@ -1332,7 +1332,7 @@ EditorAudioBuses::EditorAudioBuses() { List<String> ext; ResourceLoader::get_recognized_extensions_for_type("AudioBusLayout", &ext); for (const String &E : ext) { - file_dialog->add_filter(vformat("*.%s; %s", E, TTR("Audio Bus Layout"))); + file_dialog->add_filter("*." + E, TTR("Audio Bus Layout")); } add_child(file_dialog); file_dialog->connect("file_selected", callable_mp(this, &EditorAudioBuses::_file_dialog_callback)); @@ -1394,7 +1394,7 @@ Size2 EditorAudioMeterNotches::get_minimum_size() const { for (int i = 0; i < notches.size(); i++) { if (notches[i].render_db_value) { - width = MAX(width, font->get_string_size(String::num(Math::abs(notches[i].db_value)) + "dB", font_size).x); + width = MAX(width, font->get_string_size(String::num(Math::abs(notches[i].db_value)) + "dB", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x); height += font_height; } } diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp index 64c234a07c..e9e3320a3d 100644 --- a/editor/editor_data.cpp +++ b/editor/editor_data.cpp @@ -534,6 +534,7 @@ void EditorData::remove_scene(int p_idx) { } memdelete(edited_scene[p_idx].root); + edited_scene.write[p_idx].root = nullptr; } if (current_edited_scene > p_idx) { diff --git a/editor/editor_dir_dialog.cpp b/editor/editor_dir_dialog.cpp index 8494991892..4cbc0cf25d 100644 --- a/editor/editor_dir_dialog.cpp +++ b/editor/editor_dir_dialog.cpp @@ -211,5 +211,5 @@ EditorDirDialog::EditorDirDialog() { mkdirerr->set_text(TTR("Could not create folder.")); add_child(mkdirerr); - get_ok_button()->set_text(TTR("Choose")); + set_ok_button_text(TTR("Choose")); } diff --git a/editor/editor_feature_profile.cpp b/editor/editor_feature_profile.cpp index f8fc28c31c..9e2d56b2b9 100644 --- a/editor/editor_feature_profile.cpp +++ b/editor/editor_feature_profile.cpp @@ -983,7 +983,7 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { add_child(new_profile_dialog); new_profile_dialog->connect("confirmed", callable_mp(this, &EditorFeatureProfileManager::_create_new_profile)); new_profile_dialog->register_text_enter(new_profile_name); - new_profile_dialog->get_ok_button()->set_text(TTR("Create")); + new_profile_dialog->set_ok_button_text(TTR("Create")); erase_profile_dialog = memnew(ConfirmationDialog); add_child(erase_profile_dialog); @@ -993,7 +993,7 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { import_profiles = memnew(EditorFileDialog); add_child(import_profiles); import_profiles->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILES); - import_profiles->add_filter("*.profile; " + TTR("Godot Feature Profile")); + import_profiles->add_filter("*.profile", TTR("Godot Feature Profile")); import_profiles->connect("files_selected", callable_mp(this, &EditorFeatureProfileManager::_import_profiles)); import_profiles->set_title(TTR("Import Profile(s)")); import_profiles->set_access(EditorFileDialog::ACCESS_FILESYSTEM); @@ -1001,7 +1001,7 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { export_profile = memnew(EditorFileDialog); add_child(export_profile); export_profile->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE); - export_profile->add_filter("*.profile; " + TTR("Godot Feature Profile")); + export_profile->add_filter("*.profile", TTR("Godot Feature Profile")); export_profile->connect("file_selected", callable_mp(this, &EditorFeatureProfileManager::_export_profile)); export_profile->set_title(TTR("Export Profile")); export_profile->set_access(EditorFileDialog::ACCESS_FILESYSTEM); diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp index 95f72476aa..9f446ab38f 100644 --- a/editor/editor_file_dialog.cpp +++ b/editor/editor_file_dialog.cpp @@ -227,10 +227,10 @@ void EditorFileDialog::update_dir() { switch (mode) { case FILE_MODE_OPEN_FILE: case FILE_MODE_OPEN_FILES: - get_ok_button()->set_text(TTR("Open")); + set_ok_button_text(TTR("Open")); break; case FILE_MODE_OPEN_DIR: - get_ok_button()->set_text(TTR("Select Current Folder")); + set_ok_button_text(TTR("Select Current Folder")); break; case FILE_MODE_OPEN_ANY: case FILE_MODE_SAVE_FILE: @@ -507,7 +507,7 @@ void EditorFileDialog::_item_selected(int p_item) { file->set_text(d["name"]); _request_single_thumbnail(get_current_dir().plus_file(get_current_file())); } else if (mode == FILE_MODE_OPEN_DIR) { - get_ok_button()->set_text(TTR("Select This Folder")); + set_ok_button_text(TTR("Select This Folder")); } get_ok_button()->set_disabled(_is_open_should_be_disabled()); @@ -540,13 +540,13 @@ void EditorFileDialog::_items_clear_selection(const Vector2 &p_pos, MouseButton switch (mode) { case FILE_MODE_OPEN_FILE: case FILE_MODE_OPEN_FILES: - get_ok_button()->set_text(TTR("Open")); + set_ok_button_text(TTR("Open")); get_ok_button()->set_disabled(!item_list->is_anything_selected()); break; case FILE_MODE_OPEN_DIR: get_ok_button()->set_disabled(false); - get_ok_button()->set_text(TTR("Select Current Folder")); + set_ok_button_text(TTR("Select Current Folder")); break; case FILE_MODE_OPEN_ANY: @@ -731,9 +731,9 @@ void EditorFileDialog::update_file_name() { String base_name = file_str.get_basename(); Vector<String> filter_substr = filter_str.split(";"); if (filter_substr.size() >= 2) { - file_str = base_name + "." + filter_substr[0].strip_edges().lstrip("*.").to_lower(); + file_str = base_name + "." + filter_substr[0].strip_edges().get_extension().to_lower(); } else { - file_str = base_name + "." + filter_str.get_extension().strip_edges().to_lower(); + file_str = base_name + "." + filter_str.strip_edges().get_extension().to_lower(); } file->set_text(file_str); } @@ -976,8 +976,12 @@ void EditorFileDialog::clear_filters() { invalidate(); } -void EditorFileDialog::add_filter(const String &p_filter) { - filters.push_back(p_filter); +void EditorFileDialog::add_filter(const String &p_filter, const String &p_description) { + if (p_description.is_empty()) { + filters.push_back(p_filter); + } else { + filters.push_back(vformat("%s ; %s", p_filter, p_description)); + } update_filters(); invalidate(); } @@ -1033,27 +1037,27 @@ void EditorFileDialog::set_file_mode(FileMode p_mode) { mode = p_mode; switch (mode) { case FILE_MODE_OPEN_FILE: - get_ok_button()->set_text(TTR("Open")); + set_ok_button_text(TTR("Open")); set_title(TTR("Open a File")); can_create_dir = false; break; case FILE_MODE_OPEN_FILES: - get_ok_button()->set_text(TTR("Open")); + set_ok_button_text(TTR("Open")); set_title(TTR("Open File(s)")); can_create_dir = false; break; case FILE_MODE_OPEN_DIR: - get_ok_button()->set_text(TTR("Open")); + set_ok_button_text(TTR("Open")); set_title(TTR("Open a Directory")); can_create_dir = true; break; case FILE_MODE_OPEN_ANY: - get_ok_button()->set_text(TTR("Open")); + set_ok_button_text(TTR("Open")); set_title(TTR("Open a File or Directory")); can_create_dir = true; break; case FILE_MODE_SAVE_FILE: - get_ok_button()->set_text(TTR("Save")); + set_ok_button_text(TTR("Save")); set_title(TTR("Save a File")); can_create_dir = true; break; @@ -1481,7 +1485,7 @@ void EditorFileDialog::_bind_methods() { ClassDB::bind_method(D_METHOD("_cancel_pressed"), &EditorFileDialog::_cancel_pressed); ClassDB::bind_method(D_METHOD("clear_filters"), &EditorFileDialog::clear_filters); - ClassDB::bind_method(D_METHOD("add_filter", "filter"), &EditorFileDialog::add_filter); + ClassDB::bind_method(D_METHOD("add_filter", "filter", "description"), &EditorFileDialog::add_filter, DEFVAL("")); ClassDB::bind_method(D_METHOD("get_current_dir"), &EditorFileDialog::get_current_dir); ClassDB::bind_method(D_METHOD("get_current_file"), &EditorFileDialog::get_current_file); ClassDB::bind_method(D_METHOD("get_current_path"), &EditorFileDialog::get_current_path); diff --git a/editor/editor_file_dialog.h b/editor/editor_file_dialog.h index 5f2e29b690..51629f2682 100644 --- a/editor/editor_file_dialog.h +++ b/editor/editor_file_dialog.h @@ -212,7 +212,7 @@ protected: public: void popup_file_dialog(); void clear_filters(); - void add_filter(const String &p_filter); + void add_filter(const String &p_filter, const String &p_description = ""); void set_enable_multiple_selection(bool p_enable); Vector<String> get_selected_files() const; diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index f9a4c14c48..adbba98897 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -1792,9 +1792,9 @@ Error EditorFileSystem::_reimport_group(const String &p_group_file, const Vector //if file is currently up, maybe the source it was loaded from changed, so import math must be updated for it //to reload properly - if (ResourceCache::has(file)) { - Resource *r = ResourceCache::get(file); + Ref<Resource> r = ResourceCache::get_ref(file); + if (r.is_valid()) { if (!r->get_import_path().is_empty()) { String dst_path = ResourceFormatImporter::get_singleton()->get_internal_resource_path(file); r->set_import_path(dst_path); @@ -2034,9 +2034,8 @@ void EditorFileSystem::_reimport_file(const String &p_file, const HashMap<String //if file is currently up, maybe the source it was loaded from changed, so import math must be updated for it //to reload properly - if (ResourceCache::has(p_file)) { - Resource *r = ResourceCache::get(p_file); - + Ref<Resource> r = ResourceCache::get_ref(p_file); + if (r.is_valid()) { if (!r->get_import_path().is_empty()) { String dst_path = ResourceFormatImporter::get_singleton()->get_internal_resource_path(p_file); r->set_import_path(dst_path); diff --git a/editor/editor_folding.cpp b/editor/editor_folding.cpp index 9e1b361f64..8c508494c0 100644 --- a/editor/editor_folding.cpp +++ b/editor/editor_folding.cpp @@ -193,10 +193,7 @@ void EditorFolding::load_scene_folding(Node *p_scene, const String &p_path) { for (int i = 0; i < res_unfolds.size(); i += 2) { String path2 = res_unfolds[i]; - Ref<Resource> res; - if (ResourceCache::has(path2)) { - res = Ref<Resource>(ResourceCache::get(path2)); - } + Ref<Resource> res = ResourceCache::get_ref(path2); if (res.is_null()) { continue; } diff --git a/editor/editor_fonts.cpp b/editor/editor_fonts.cpp index 51d4d474c5..d58dc98f07 100644 --- a/editor/editor_fonts.cpp +++ b/editor/editor_fonts.cpp @@ -37,212 +37,8 @@ #include "scene/resources/default_theme/default_theme.h" #include "scene/resources/font.h" -#define MAKE_FALLBACKS(m_name) \ - m_name->add_data(FontArabic); \ - m_name->add_data(FontBengali); \ - m_name->add_data(FontDevanagari); \ - m_name->add_data(FontGeorgian); \ - m_name->add_data(FontHebrew); \ - m_name->add_data(FontMalayalam); \ - m_name->add_data(FontOriya); \ - m_name->add_data(FontSinhala); \ - m_name->add_data(FontTamil); \ - m_name->add_data(FontTelugu); \ - m_name->add_data(FontThai); \ - m_name->add_data(FontJapanese); \ - m_name->add_data(FontFallback); - -// Note: In some languages, the use of italic/slanted fonts is controversial. Therefore, we are limiting simulated slant to the main font (Latin, Cyrillic, and Greek) and using bold fonts for the rest. - -#define MAKE_FALLBACKS_SLANTED(m_name) \ - m_name->add_data(FontArabicBold); \ - m_name->add_data(FontBengaliBold); \ - m_name->add_data(FontDevanagariBold); \ - m_name->add_data(FontGeorgianBold); \ - m_name->add_data(FontHebrewBold); \ - m_name->add_data(FontMalayalamBold); \ - m_name->add_data(FontOriyaBold); \ - m_name->add_data(FontSinhalaBold); \ - m_name->add_data(FontTamilBold); \ - m_name->add_data(FontTeluguBold); \ - m_name->add_data(FontThaiBold); \ - m_name->add_data(FontJapaneseBold); \ - m_name->add_data(FontFallbackBold); - -#define MAKE_FALLBACKS_BOLD(m_name) \ - m_name->add_data(FontArabicBold); \ - m_name->add_data(FontBengaliBold); \ - m_name->add_data(FontDevanagariBold); \ - m_name->add_data(FontGeorgianBold); \ - m_name->add_data(FontHebrewBold); \ - m_name->add_data(FontMalayalamBold); \ - m_name->add_data(FontOriyaBold); \ - m_name->add_data(FontSinhalaBold); \ - m_name->add_data(FontTamilBold); \ - m_name->add_data(FontTeluguBold); \ - m_name->add_data(FontThaiBold); \ - m_name->add_data(FontJapaneseBold); \ - m_name->add_data(FontFallbackBold); - -#define MAKE_DEFAULT_FONT(m_name, m_variations) \ - Ref<Font> m_name; \ - m_name.instantiate(); \ - if (CustomFont.is_valid()) { \ - m_name->add_data(CustomFont); \ - m_name->add_data(DefaultFont); \ - } else { \ - m_name->add_data(DefaultFont); \ - } \ - { \ - Dictionary variations; \ - if (!m_variations.is_empty()) { \ - Vector<String> variation_tags = m_variations.split(","); \ - for (int i = 0; i < variation_tags.size(); i++) { \ - Vector<String> tokens = variation_tags[i].split("="); \ - if (tokens.size() == 2) { \ - variations[tokens[0]] = tokens[1].to_float(); \ - } \ - } \ - } \ - m_name->set_variation_coordinates(variations); \ - } \ - m_name->set_spacing(TextServer::SPACING_TOP, -EDSCALE); \ - m_name->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE); \ - MAKE_FALLBACKS(m_name); - -#define MAKE_DEFAULT_FONT_MSDF(m_name, m_variations) \ - Ref<Font> m_name; \ - m_name.instantiate(); \ - if (CustomFont.is_valid()) { \ - m_name->add_data(CustomFontMSDF); \ - m_name->add_data(DefaultFontMSDF); \ - } else { \ - m_name->add_data(DefaultFontMSDF); \ - } \ - { \ - Dictionary variations; \ - if (!m_variations.is_empty()) { \ - Vector<String> variation_tags = m_variations.split(","); \ - for (int i = 0; i < variation_tags.size(); i++) { \ - Vector<String> tokens = variation_tags[i].split("="); \ - if (tokens.size() == 2) { \ - variations[tokens[0]] = tokens[1].to_float(); \ - } \ - } \ - } \ - m_name->set_variation_coordinates(variations); \ - } \ - m_name->set_spacing(TextServer::SPACING_TOP, -EDSCALE); \ - m_name->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE); \ - MAKE_FALLBACKS(m_name); - -#define MAKE_SLANTED_FONT(m_name, m_variations) \ - Ref<Font> m_name; \ - m_name.instantiate(); \ - m_name.instantiate(); \ - if (CustomFontSlanted.is_valid()) { \ - m_name->add_data(CustomFontSlanted); \ - m_name->add_data(DefaultFontSlanted); \ - } else { \ - m_name->add_data(DefaultFontSlanted); \ - } \ - { \ - Dictionary variations; \ - if (!m_variations.is_empty()) { \ - Vector<String> variation_tags = m_variations.split(","); \ - for (int i = 0; i < variation_tags.size(); i++) { \ - Vector<String> tokens = variation_tags[i].split("="); \ - if (tokens.size() == 2) { \ - variations[tokens[0]] = tokens[1].to_float(); \ - } \ - } \ - } \ - m_name->set_variation_coordinates(variations); \ - } \ - m_name->set_spacing(TextServer::SPACING_TOP, -EDSCALE); \ - m_name->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE); \ - MAKE_FALLBACKS_SLANTED(m_name); - -#define MAKE_BOLD_FONT(m_name, m_variations) \ - Ref<Font> m_name; \ - m_name.instantiate(); \ - if (CustomFontBold.is_valid()) { \ - m_name->add_data(CustomFontBold); \ - m_name->add_data(DefaultFontBold); \ - } else { \ - m_name->add_data(DefaultFontBold); \ - } \ - { \ - Dictionary variations; \ - if (!m_variations.is_empty()) { \ - Vector<String> variation_tags = m_variations.split(","); \ - for (int i = 0; i < variation_tags.size(); i++) { \ - Vector<String> tokens = variation_tags[i].split("="); \ - if (tokens.size() == 2) { \ - variations[tokens[0]] = tokens[1].to_float(); \ - } \ - } \ - } \ - m_name->set_variation_coordinates(variations); \ - } \ - m_name->set_spacing(TextServer::SPACING_TOP, -EDSCALE); \ - m_name->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE); \ - MAKE_FALLBACKS_BOLD(m_name); - -#define MAKE_BOLD_FONT_MSDF(m_name, m_variations) \ - Ref<Font> m_name; \ - m_name.instantiate(); \ - if (CustomFontBold.is_valid()) { \ - m_name->add_data(CustomFontBoldMSDF); \ - m_name->add_data(DefaultFontBoldMSDF); \ - } else { \ - m_name->add_data(DefaultFontBoldMSDF); \ - } \ - { \ - Dictionary variations; \ - if (!m_variations.is_empty()) { \ - Vector<String> variation_tags = m_variations.split(","); \ - for (int i = 0; i < variation_tags.size(); i++) { \ - Vector<String> tokens = variation_tags[i].split("="); \ - if (tokens.size() == 2) { \ - variations[tokens[0]] = tokens[1].to_float(); \ - } \ - } \ - } \ - m_name->set_variation_coordinates(variations); \ - } \ - m_name->set_spacing(TextServer::SPACING_TOP, -EDSCALE); \ - m_name->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE); \ - MAKE_FALLBACKS_BOLD(m_name); - -#define MAKE_SOURCE_FONT(m_name, m_variations) \ - Ref<Font> m_name; \ - m_name.instantiate(); \ - if (CustomFontSource.is_valid()) { \ - m_name->add_data(CustomFontSource); \ - m_name->add_data(dfmono); \ - } else { \ - m_name->add_data(dfmono); \ - } \ - { \ - Dictionary variations; \ - if (!m_variations.is_empty()) { \ - Vector<String> variation_tags = m_variations.split(","); \ - for (int i = 0; i < variation_tags.size(); i++) { \ - Vector<String> tokens = variation_tags[i].split("="); \ - if (tokens.size() == 2) { \ - variations[tokens[0]] = tokens[1].to_float(); \ - } \ - } \ - } \ - m_name->set_variation_coordinates(variations); \ - } \ - m_name->set_spacing(TextServer::SPACING_TOP, -EDSCALE); \ - m_name->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE); \ - MAKE_FALLBACKS(m_name); - -Ref<FontData> load_cached_external_font(const String &p_path, TextServer::Hinting p_hinting, bool p_aa, bool p_autohint, TextServer::SubpixelPositioning p_font_subpixel_positioning, bool p_msdf = false) { - Ref<FontData> font; +Ref<FontFile> load_external_font(const String &p_path, TextServer::Hinting p_hinting, bool p_aa, bool p_autohint, TextServer::SubpixelPositioning p_font_subpixel_positioning, bool p_msdf = false, TypedArray<Font> *r_fallbacks = nullptr) { + Ref<FontFile> font; font.instantiate(); Vector<uint8_t> data = FileAccess::get_file_as_array(p_path); @@ -254,11 +50,15 @@ Ref<FontData> load_cached_external_font(const String &p_path, TextServer::Hintin font->set_force_autohinter(p_autohint); font->set_subpixel_positioning(p_font_subpixel_positioning); + if (r_fallbacks != nullptr) { + r_fallbacks->push_back(font); + } + return font; } -Ref<FontData> load_cached_internal_font(const uint8_t *p_data, size_t p_size, TextServer::Hinting p_hinting, bool p_aa, bool p_autohint, TextServer::SubpixelPositioning p_font_subpixel_positioning, bool p_msdf = false) { - Ref<FontData> font; +Ref<FontFile> load_internal_font(const uint8_t *p_data, size_t p_size, TextServer::Hinting p_hinting, bool p_aa, bool p_autohint, TextServer::SubpixelPositioning p_font_subpixel_positioning, bool p_msdf = false, TypedArray<Font> *r_fallbacks = nullptr) { + Ref<FontFile> font; font.instantiate(); font->set_data_ptr(p_data, p_size); @@ -268,14 +68,29 @@ Ref<FontData> load_cached_internal_font(const uint8_t *p_data, size_t p_size, Te font->set_force_autohinter(p_autohint); font->set_subpixel_positioning(p_font_subpixel_positioning); + if (r_fallbacks != nullptr) { + r_fallbacks->push_back(font); + } + return font; } +Ref<FontVariation> make_bold_font(const Ref<Font> &p_font, double p_embolden, TypedArray<Font> *r_fallbacks = nullptr) { + Ref<FontVariation> font_var; + font_var.instantiate(); + font_var->set_base_font(p_font); + font_var->set_variation_embolden(p_embolden); + + if (r_fallbacks != nullptr) { + r_fallbacks->push_back(font_var); + } + + return font_var; +} + void editor_register_fonts(Ref<Theme> p_theme) { Ref<DirAccess> dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); - /* Custom font */ - bool font_antialiased = (bool)EditorSettings::get_singleton()->get("interface/editor/font_antialiased"); int font_hinting_setting = (int)EditorSettings::get_singleton()->get("interface/editor/font_hinting"); TextServer::SubpixelPositioning font_subpixel_positioning = (TextServer::SubpixelPositioning)(int)EditorSettings::get_singleton()->get("interface/editor/font_subpixel_positioning"); @@ -304,184 +119,268 @@ void editor_register_fonts(Ref<Theme> p_theme) { break; } + // Load built-in fonts. const int default_font_size = int(EDITOR_GET("interface/editor/main_font_size")) * EDSCALE; const float embolden_strength = 0.6; + Ref<Font> default_font = load_internal_font(_font_NotoSans_Regular, _font_NotoSans_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false); + Ref<Font> default_font_msdf = load_internal_font(_font_NotoSans_Regular, _font_NotoSans_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, true); + + TypedArray<Font> fallbacks; + Ref<FontFile> arabic_font = load_internal_font(_font_NotoNaskhArabicUI_Regular, _font_NotoNaskhArabicUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + Ref<FontFile> bengali_font = load_internal_font(_font_NotoSansBengaliUI_Regular, _font_NotoSansBengaliUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + Ref<FontFile> devanagari_font = load_internal_font(_font_NotoSansDevanagariUI_Regular, _font_NotoSansDevanagariUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + Ref<FontFile> georgian_font = load_internal_font(_font_NotoSansGeorgian_Regular, _font_NotoSansGeorgian_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + Ref<FontFile> hebrew_font = load_internal_font(_font_NotoSansHebrew_Regular, _font_NotoSansHebrew_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + Ref<FontFile> malayalam_font = load_internal_font(_font_NotoSansMalayalamUI_Regular, _font_NotoSansMalayalamUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + Ref<FontFile> oriya_font = load_internal_font(_font_NotoSansOriyaUI_Regular, _font_NotoSansOriyaUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + Ref<FontFile> sinhala_font = load_internal_font(_font_NotoSansSinhalaUI_Regular, _font_NotoSansSinhalaUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + Ref<FontFile> tamil_font = load_internal_font(_font_NotoSansTamilUI_Regular, _font_NotoSansTamilUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + Ref<FontFile> telugu_font = load_internal_font(_font_NotoSansTeluguUI_Regular, _font_NotoSansTeluguUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + Ref<FontFile> thai_font = load_internal_font(_font_NotoSansThaiUI_Regular, _font_NotoSansThaiUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + Ref<FontFile> fallback_font = load_internal_font(_font_DroidSansFallback, _font_DroidSansFallback_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + Ref<FontFile> japanese_font = load_internal_font(_font_DroidSansJapanese, _font_DroidSansJapanese_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks); + default_font->set_fallbacks(fallbacks); + default_font_msdf->set_fallbacks(fallbacks); + + Ref<FontFile> default_font_bold = load_internal_font(_font_NotoSans_Bold, _font_NotoSans_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false); + Ref<FontFile> default_font_bold_msdf = load_internal_font(_font_NotoSans_Bold, _font_NotoSans_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, true); + + TypedArray<Font> fallbacks_bold; + Ref<FontFile> arabic_font_bold = load_internal_font(_font_NotoNaskhArabicUI_Bold, _font_NotoNaskhArabicUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks_bold); + Ref<FontFile> bengali_font_bold = load_internal_font(_font_NotoSansBengaliUI_Bold, _font_NotoSansBengaliUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks_bold); + Ref<FontFile> devanagari_font_bold = load_internal_font(_font_NotoSansDevanagariUI_Bold, _font_NotoSansDevanagariUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks_bold); + Ref<FontFile> georgian_font_bold = load_internal_font(_font_NotoSansGeorgian_Bold, _font_NotoSansGeorgian_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks_bold); + Ref<FontFile> hebrew_font_bold = load_internal_font(_font_NotoSansHebrew_Bold, _font_NotoSansHebrew_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks_bold); + Ref<FontFile> malayalam_font_bold = load_internal_font(_font_NotoSansMalayalamUI_Bold, _font_NotoSansMalayalamUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks_bold); + Ref<FontFile> oriya_font_bold = load_internal_font(_font_NotoSansOriyaUI_Bold, _font_NotoSansOriyaUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks_bold); + Ref<FontFile> sinhala_font_bold = load_internal_font(_font_NotoSansSinhalaUI_Bold, _font_NotoSansSinhalaUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks_bold); + Ref<FontFile> tamil_font_bold = load_internal_font(_font_NotoSansTamilUI_Bold, _font_NotoSansTamilUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks_bold); + Ref<FontFile> telugu_font_bold = load_internal_font(_font_NotoSansTeluguUI_Bold, _font_NotoSansTeluguUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks_bold); + Ref<FontFile> thai_font_bold = load_internal_font(_font_NotoSansThaiUI_Bold, _font_NotoSansThaiUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, false, &fallbacks_bold); + Ref<FontVariation> fallback_font_bold = make_bold_font(fallback_font, embolden_strength, &fallbacks_bold); + Ref<FontVariation> japanese_font_bold = make_bold_font(japanese_font, embolden_strength, &fallbacks_bold); + default_font_bold->set_fallbacks(fallbacks_bold); + default_font_bold_msdf->set_fallbacks(fallbacks_bold); + + Ref<FontFile> default_font_mono = load_internal_font(_font_JetBrainsMono_Regular, _font_JetBrainsMono_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); + default_font_mono->set_fallbacks(fallbacks); + + // Init base font configs and load custom fonts. String custom_font_path = EditorSettings::get_singleton()->get("interface/editor/main_font"); - Ref<FontData> CustomFont; + String custom_font_path_bold = EditorSettings::get_singleton()->get("interface/editor/main_font_bold"); + String custom_font_path_source = EditorSettings::get_singleton()->get("interface/editor/code_font"); + + Ref<FontVariation> default_fc; + default_fc.instantiate(); if (custom_font_path.length() > 0 && dir->file_exists(custom_font_path)) { - CustomFont = load_cached_external_font(custom_font_path, font_hinting, font_antialiased, true, font_subpixel_positioning); + Ref<FontFile> custom_font = load_external_font(custom_font_path, font_hinting, font_antialiased, true, font_subpixel_positioning); + { + TypedArray<Font> fallback_custom; + fallback_custom.push_back(default_font); + custom_font->set_fallbacks(fallback_custom); + } + default_fc->set_base_font(custom_font); } else { EditorSettings::get_singleton()->set_manually("interface/editor/main_font", ""); + default_fc->set_base_font(default_font); } + default_fc->set_spacing(TextServer::SPACING_TOP, -EDSCALE); + default_fc->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE); - Ref<FontData> CustomFontMSDF; + Ref<FontVariation> default_fc_msdf; + default_fc_msdf.instantiate(); if (custom_font_path.length() > 0 && dir->file_exists(custom_font_path)) { - CustomFontMSDF = load_cached_external_font(custom_font_path, font_hinting, font_antialiased, true, font_subpixel_positioning, true); + Ref<FontFile> custom_font = load_external_font(custom_font_path, font_hinting, font_antialiased, true, font_subpixel_positioning); + { + TypedArray<Font> fallback_custom; + fallback_custom.push_back(default_font_msdf); + custom_font->set_fallbacks(fallback_custom); + } + default_fc_msdf->set_base_font(custom_font); } else { EditorSettings::get_singleton()->set_manually("interface/editor/main_font", ""); + default_fc_msdf->set_base_font(default_font_msdf); } + default_fc_msdf->set_spacing(TextServer::SPACING_TOP, -EDSCALE); + default_fc_msdf->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE); - Ref<FontData> CustomFontSlanted; - if (CustomFont.is_valid()) { - CustomFontSlanted = CustomFont->duplicate(); - CustomFontSlanted->set_transform(Transform2D(1.0, 0.4, 0.0, 1.0, 0.0, 0.0)); - } - - /* Custom Bold font */ - - String custom_font_path_bold = EditorSettings::get_singleton()->get("interface/editor/main_font_bold"); - Ref<FontData> CustomFontBold; + Ref<FontVariation> bold_fc; + bold_fc.instantiate(); if (custom_font_path_bold.length() > 0 && dir->file_exists(custom_font_path_bold)) { - CustomFontBold = load_cached_external_font(custom_font_path_bold, font_hinting, font_antialiased, true, font_subpixel_positioning); + Ref<FontFile> custom_font = load_external_font(custom_font_path_bold, font_hinting, font_antialiased, true, font_subpixel_positioning); + { + TypedArray<Font> fallback_custom; + fallback_custom.push_back(default_font_bold); + custom_font->set_fallbacks(fallback_custom); + } + bold_fc->set_base_font(custom_font); + } else if (custom_font_path.length() > 0 && dir->file_exists(custom_font_path)) { + Ref<FontFile> custom_font = load_external_font(custom_font_path, font_hinting, font_antialiased, true, font_subpixel_positioning); + { + TypedArray<Font> fallback_custom; + fallback_custom.push_back(default_font_bold); + custom_font->set_fallbacks(fallback_custom); + } + bold_fc->set_base_font(custom_font); + bold_fc->set_variation_embolden(embolden_strength); } else { EditorSettings::get_singleton()->set_manually("interface/editor/main_font_bold", ""); + bold_fc->set_base_font(default_font_bold); } + bold_fc->set_spacing(TextServer::SPACING_TOP, -EDSCALE); + bold_fc->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE); - if (CustomFont.is_valid() && !CustomFontBold.is_valid()) { - CustomFontBold = CustomFont->duplicate(); - CustomFontBold->set_embolden(embolden_strength); - } - - Ref<FontData> CustomFontBoldMSDF; - if (custom_font_path.length() > 0 && dir->file_exists(custom_font_path)) { - CustomFontBoldMSDF = load_cached_external_font(custom_font_path, font_hinting, font_antialiased, true, font_subpixel_positioning, true); + Ref<FontVariation> bold_fc_msdf; + bold_fc_msdf.instantiate(); + if (custom_font_path_bold.length() > 0 && dir->file_exists(custom_font_path_bold)) { + Ref<FontFile> custom_font = load_external_font(custom_font_path_bold, font_hinting, font_antialiased, true, font_subpixel_positioning); + { + TypedArray<Font> fallback_custom; + fallback_custom.push_back(default_font_bold_msdf); + custom_font->set_fallbacks(fallback_custom); + } + bold_fc_msdf->set_base_font(custom_font); + } else if (custom_font_path.length() > 0 && dir->file_exists(custom_font_path)) { + Ref<FontFile> custom_font = load_external_font(custom_font_path, font_hinting, font_antialiased, true, font_subpixel_positioning); + { + TypedArray<Font> fallback_custom; + fallback_custom.push_back(default_font_bold_msdf); + custom_font->set_fallbacks(fallback_custom); + } + bold_fc_msdf->set_base_font(custom_font); + bold_fc_msdf->set_variation_embolden(embolden_strength); } else { EditorSettings::get_singleton()->set_manually("interface/editor/main_font_bold", ""); + bold_fc_msdf->set_base_font(default_font_bold_msdf); } + bold_fc_msdf->set_spacing(TextServer::SPACING_TOP, -EDSCALE); + bold_fc_msdf->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE); - /* Custom source code font */ - - String custom_font_path_source = EditorSettings::get_singleton()->get("interface/editor/code_font"); - Ref<FontData> CustomFontSource; + Ref<FontVariation> mono_fc; + mono_fc.instantiate(); if (custom_font_path_source.length() > 0 && dir->file_exists(custom_font_path_source)) { - CustomFontSource = load_cached_external_font(custom_font_path_source, font_hinting, font_antialiased, true, font_subpixel_positioning); + Ref<FontFile> custom_font = load_external_font(custom_font_path_source, font_hinting, font_antialiased, true, font_subpixel_positioning); + { + TypedArray<Font> fallback_custom; + fallback_custom.push_back(default_font_mono); + custom_font->set_fallbacks(fallback_custom); + } + mono_fc->set_base_font(custom_font); } else { EditorSettings::get_singleton()->set_manually("interface/editor/code_font", ""); + mono_fc->set_base_font(default_font_mono); } + mono_fc->set_spacing(TextServer::SPACING_TOP, -EDSCALE); + mono_fc->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE); + + Ref<FontVariation> mono_other_fc = mono_fc->duplicate(); + + // Enable contextual alternates (coding ligatures) and custom features for the source editor font. + int ot_mode = EditorSettings::get_singleton()->get("interface/editor/code_font_contextual_ligatures"); + switch (ot_mode) { + case 1: { // Disable ligatures. + Dictionary ftrs; + ftrs[TS->name_to_tag("calt")] = 0; + mono_fc->set_opentype_features(ftrs); + } break; + case 2: { // Custom. + Vector<String> subtag = String(EditorSettings::get_singleton()->get("interface/editor/code_font_custom_opentype_features")).split(","); + Dictionary ftrs; + for (int i = 0; i < subtag.size(); i++) { + Vector<String> subtag_a = subtag[i].split("="); + if (subtag_a.size() == 2) { + ftrs[TS->name_to_tag(subtag_a[0])] = subtag_a[1].to_int(); + } else if (subtag_a.size() == 1) { + ftrs[TS->name_to_tag(subtag_a[0])] = 1; + } + } + mono_fc->set_opentype_features(ftrs); + } break; + default: { // Default. + Dictionary ftrs; + ftrs[TS->name_to_tag("calt")] = 1; + mono_fc->set_opentype_features(ftrs); + } break; + } + + { + // Disable contextual alternates (coding ligatures). + Dictionary ftrs; + ftrs[TS->name_to_tag("calt")] = 0; + mono_other_fc->set_opentype_features(ftrs); + } + + Ref<FontVariation> italic_fc = default_fc->duplicate(); + italic_fc->set_variation_transform(Transform2D(1.0, 0.2, 0.0, 1.0, 0.0, 0.0)); - /* Noto Sans */ - - Ref<FontData> DefaultFont = load_cached_internal_font(_font_NotoSans_Regular, _font_NotoSans_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> DefaultFontMSDF = load_cached_internal_font(_font_NotoSans_Regular, _font_NotoSans_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning, true); - Ref<FontData> DefaultFontBold = load_cached_internal_font(_font_NotoSans_Bold, _font_NotoSans_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> DefaultFontBoldMSDF = load_cached_internal_font(_font_NotoSans_Bold, _font_NotoSans_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning, true); - Ref<FontData> FontArabic = load_cached_internal_font(_font_NotoNaskhArabicUI_Regular, _font_NotoNaskhArabicUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontArabicBold = load_cached_internal_font(_font_NotoNaskhArabicUI_Bold, _font_NotoNaskhArabicUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontBengali = load_cached_internal_font(_font_NotoSansBengaliUI_Regular, _font_NotoSansBengaliUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontBengaliBold = load_cached_internal_font(_font_NotoSansBengaliUI_Bold, _font_NotoSansBengaliUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontDevanagari = load_cached_internal_font(_font_NotoSansDevanagariUI_Regular, _font_NotoSansDevanagariUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontDevanagariBold = load_cached_internal_font(_font_NotoSansDevanagariUI_Bold, _font_NotoSansDevanagariUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontGeorgian = load_cached_internal_font(_font_NotoSansGeorgian_Regular, _font_NotoSansGeorgian_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontGeorgianBold = load_cached_internal_font(_font_NotoSansGeorgian_Bold, _font_NotoSansGeorgian_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontHebrew = load_cached_internal_font(_font_NotoSansHebrew_Regular, _font_NotoSansHebrew_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontHebrewBold = load_cached_internal_font(_font_NotoSansHebrew_Bold, _font_NotoSansHebrew_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontMalayalam = load_cached_internal_font(_font_NotoSansMalayalamUI_Regular, _font_NotoSansMalayalamUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontMalayalamBold = load_cached_internal_font(_font_NotoSansMalayalamUI_Bold, _font_NotoSansMalayalamUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontOriya = load_cached_internal_font(_font_NotoSansOriyaUI_Regular, _font_NotoSansOriyaUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontOriyaBold = load_cached_internal_font(_font_NotoSansOriyaUI_Bold, _font_NotoSansOriyaUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontSinhala = load_cached_internal_font(_font_NotoSansSinhalaUI_Regular, _font_NotoSansSinhalaUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontSinhalaBold = load_cached_internal_font(_font_NotoSansSinhalaUI_Bold, _font_NotoSansSinhalaUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontTamil = load_cached_internal_font(_font_NotoSansTamilUI_Regular, _font_NotoSansTamilUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontTamilBold = load_cached_internal_font(_font_NotoSansTamilUI_Bold, _font_NotoSansTamilUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontTelugu = load_cached_internal_font(_font_NotoSansTeluguUI_Regular, _font_NotoSansTeluguUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontTeluguBold = load_cached_internal_font(_font_NotoSansTeluguUI_Bold, _font_NotoSansTeluguUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontThai = load_cached_internal_font(_font_NotoSansThaiUI_Regular, _font_NotoSansThaiUI_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontThaiBold = load_cached_internal_font(_font_NotoSansThaiUI_Bold, _font_NotoSansThaiUI_Bold_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - - Ref<FontData> DefaultFontSlanted = DefaultFont->duplicate(); - DefaultFontSlanted->set_transform(Transform2D(1.0, 0.3, 0.0, 1.0, 0.0, 0.0)); - - /* Droid Sans */ - - Ref<FontData> FontFallback = load_cached_internal_font(_font_DroidSansFallback, _font_DroidSansFallback_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Ref<FontData> FontJapanese = load_cached_internal_font(_font_DroidSansJapanese, _font_DroidSansJapanese_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - - Ref<FontData> FontFallbackBold = FontFallback->duplicate(); - FontFallbackBold->set_embolden(embolden_strength); - Ref<FontData> FontJapaneseBold = FontJapanese->duplicate(); - FontJapaneseBold->set_embolden(embolden_strength); - - /* Hack */ - - Ref<FontData> dfmono = load_cached_internal_font(_font_JetBrainsMono_Regular, _font_JetBrainsMono_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); - Dictionary opentype_features; - opentype_features["calt"] = 0; - dfmono->set_opentype_feature_overrides(opentype_features); // Disable contextual alternates (coding ligatures). - - // Default font - MAKE_DEFAULT_FONT(df, String()); - p_theme->set_default_font(df); // Default theme font + // Setup theme. + + p_theme->set_default_font(default_fc); // Default theme font config. p_theme->set_default_font_size(default_font_size); - p_theme->set_font_size("main_size", "EditorFonts", default_font_size); - p_theme->set_font("main", "EditorFonts", df); + // Main font. - MAKE_DEFAULT_FONT_MSDF(df_msdf, String()); - p_theme->set_font("main_msdf", "EditorFonts", df_msdf); + p_theme->set_font("main", "EditorFonts", default_fc); + p_theme->set_font("main_msdf", "EditorFonts", default_fc_msdf); + p_theme->set_font_size("main_size", "EditorFonts", default_font_size); - // Bold font - MAKE_BOLD_FONT(df_bold, String()); - MAKE_SLANTED_FONT(df_italic, String()); + p_theme->set_font("bold", "EditorFonts", bold_fc); + p_theme->set_font("main_bold_msdf", "EditorFonts", bold_fc_msdf); p_theme->set_font_size("bold_size", "EditorFonts", default_font_size); - p_theme->set_font("bold", "EditorFonts", df_bold); - MAKE_BOLD_FONT_MSDF(df_bold_msdf, String()); - p_theme->set_font("main_bold_msdf", "EditorFonts", df_bold_msdf); + // Title font. - // Title font + p_theme->set_font("title", "EditorFonts", bold_fc); p_theme->set_font_size("title_size", "EditorFonts", default_font_size + 1 * EDSCALE); - p_theme->set_font("title", "EditorFonts", df_bold); + p_theme->set_font("main_button_font", "EditorFonts", bold_fc); p_theme->set_font_size("main_button_font_size", "EditorFonts", default_font_size + 1 * EDSCALE); - p_theme->set_font("main_button_font", "EditorFonts", df_bold); - p_theme->set_font("font", "Label", df); + p_theme->set_font("font", "Label", default_fc); p_theme->set_type_variation("HeaderSmall", "Label"); - p_theme->set_font("font", "HeaderSmall", df_bold); + p_theme->set_font("font", "HeaderSmall", bold_fc); p_theme->set_font_size("font_size", "HeaderSmall", default_font_size); p_theme->set_type_variation("HeaderMedium", "Label"); - p_theme->set_font("font", "HeaderMedium", df_bold); + p_theme->set_font("font", "HeaderMedium", bold_fc); p_theme->set_font_size("font_size", "HeaderMedium", default_font_size + 1 * EDSCALE); p_theme->set_type_variation("HeaderLarge", "Label"); - p_theme->set_font("font", "HeaderLarge", df_bold); + p_theme->set_font("font", "HeaderLarge", bold_fc); p_theme->set_font_size("font_size", "HeaderLarge", default_font_size + 3 * EDSCALE); // Documentation fonts - String code_font_custom_variations = EditorSettings::get_singleton()->get("interface/editor/code_font_custom_variations"); - MAKE_SOURCE_FONT(df_code, code_font_custom_variations); p_theme->set_font_size("doc_size", "EditorFonts", int(EDITOR_GET("text_editor/help/help_font_size")) * EDSCALE); - p_theme->set_font("doc", "EditorFonts", df); - p_theme->set_font("doc_bold", "EditorFonts", df_bold); - p_theme->set_font("doc_italic", "EditorFonts", df_italic); + p_theme->set_font("doc", "EditorFonts", default_fc); + p_theme->set_font("doc_bold", "EditorFonts", bold_fc); + p_theme->set_font("doc_italic", "EditorFonts", italic_fc); p_theme->set_font_size("doc_title_size", "EditorFonts", int(EDITOR_GET("text_editor/help/help_title_font_size")) * EDSCALE); - p_theme->set_font("doc_title", "EditorFonts", df_bold); + p_theme->set_font("doc_title", "EditorFonts", bold_fc); p_theme->set_font_size("doc_source_size", "EditorFonts", int(EDITOR_GET("text_editor/help/help_source_font_size")) * EDSCALE); - p_theme->set_font("doc_source", "EditorFonts", df_code); + p_theme->set_font("doc_source", "EditorFonts", mono_fc); p_theme->set_font_size("doc_keyboard_size", "EditorFonts", (int(EDITOR_GET("text_editor/help/help_source_font_size")) - 1) * EDSCALE); - p_theme->set_font("doc_keyboard", "EditorFonts", df_code); + p_theme->set_font("doc_keyboard", "EditorFonts", mono_fc); // Ruler font p_theme->set_font_size("rulers_size", "EditorFonts", 8 * EDSCALE); - p_theme->set_font("rulers", "EditorFonts", df); + p_theme->set_font("rulers", "EditorFonts", default_fc); // Rotation widget font p_theme->set_font_size("rotation_control_size", "EditorFonts", 14 * EDSCALE); - p_theme->set_font("rotation_control", "EditorFonts", df); + p_theme->set_font("rotation_control", "EditorFonts", default_fc); // Code font p_theme->set_font_size("source_size", "EditorFonts", int(EDITOR_GET("interface/editor/code_font_size")) * EDSCALE); - p_theme->set_font("source", "EditorFonts", df_code); + p_theme->set_font("source", "EditorFonts", mono_fc); p_theme->set_font_size("expression_size", "EditorFonts", (int(EDITOR_GET("interface/editor/code_font_size")) - 1) * EDSCALE); - p_theme->set_font("expression", "EditorFonts", df_code); + p_theme->set_font("expression", "EditorFonts", mono_other_fc); p_theme->set_font_size("output_source_size", "EditorFonts", int(EDITOR_GET("run/output/font_size")) * EDSCALE); - p_theme->set_font("output_source", "EditorFonts", df_code); + p_theme->set_font("output_source", "EditorFonts", mono_other_fc); p_theme->set_font_size("status_source_size", "EditorFonts", default_font_size); - p_theme->set_font("status_source", "EditorFonts", df_code); + p_theme->set_font("status_source", "EditorFonts", mono_other_fc); } diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index b4325f09c5..a674451d1e 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -63,6 +63,8 @@ void EditorHelp::_update_theme() { 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) { @@ -123,6 +125,9 @@ void EditorHelp::_class_desc_select(const String &p_select) { } else if (tag == "constant") { topic = "class_constant"; table = &this->constant_line; + } else if (tag == "annotation") { + topic = "class_annotation"; + table = &this->annotation_line; } else if (tag == "theme_item") { topic = "theme_item"; table = &this->theme_property_line; @@ -181,7 +186,7 @@ void EditorHelp::_class_desc_resized(bool p_force_update_theme) { // The margins increase as the width of the editor help container increases. Ref<Font> doc_code_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 = doc_code_font->get_char_size('x', 0, font_size).width; + real_t char_width = doc_code_font->get_char_size('x', 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; @@ -272,7 +277,7 @@ void EditorHelp::_add_method(const DocData::MethodDoc &p_method, bool p_overview class_desc->add_text(" "); } - if (p_overview && !p_method.description.is_empty()) { + if (p_overview && !p_method.description.strip_edges().is_empty()) { class_desc->push_meta("@method " + p_method.name); } @@ -280,7 +285,7 @@ void EditorHelp::_add_method(const DocData::MethodDoc &p_method, bool p_overview _add_text(p_method.name); class_desc->pop(); - if (p_overview && !p_method.description.is_empty()) { + if (p_overview && !p_method.description.strip_edges().is_empty()) { class_desc->pop(); //meta } @@ -362,8 +367,9 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) { void EditorHelp::_update_method_list(const Vector<DocData::MethodDoc> p_methods, bool &r_method_descrpitons) { Ref<Font> doc_code_font = get_theme_font(SNAME("doc_source"), SNAME("EditorFonts")); - class_desc->pop(); - class_desc->pop(); + class_desc->pop(); // title font size + class_desc->pop(); // title font + class_desc->pop(); // title color class_desc->add_newline(); class_desc->push_font(doc_code_font); @@ -409,7 +415,7 @@ void EditorHelp::_update_method_list(const Vector<DocData::MethodDoc> p_methods, class_desc->pop(); //cell } - if (!m[i].description.is_empty() || m[i].errors_returned.size() > 0) { + if (!m[i].description.strip_edges().is_empty() || m[i].errors_returned.size() > 0) { r_method_descrpitons = true; } @@ -431,8 +437,9 @@ void EditorHelp::_update_method_descriptions(const DocData::ClassDoc p_classdoc, Ref<Font> doc_bold_font = get_theme_font(SNAME("doc_bold"), SNAME("EditorFonts")); Ref<Font> doc_code_font = get_theme_font(SNAME("doc_source"), SNAME("EditorFonts")); String link_color_text = title_color.to_html(false); - class_desc->pop(); - class_desc->pop(); + class_desc->pop(); // title font size + class_desc->pop(); // title font + class_desc->pop(); // title color class_desc->add_newline(); class_desc->add_newline(); @@ -535,15 +542,17 @@ void EditorHelp::_update_doc() { // 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); class_desc->add_text(TTR("Class:") + " "); class_desc->add_image(icon, icon->get_width(), icon->get_height()); class_desc->add_text(" "); class_desc->push_color(headline_color); _add_text(edited_class); - class_desc->pop(); - class_desc->pop(); - class_desc->pop(); + class_desc->pop(); // color + class_desc->pop(); // color + class_desc->pop(); // font size + class_desc->pop(); // font class_desc->add_newline(); // Inheritance tree @@ -605,7 +614,7 @@ void EditorHelp::_update_doc() { class_desc->add_newline(); // Brief description - if (!cd.brief_description.is_empty()) { + if (!cd.brief_description.strip_edges().is_empty()) { class_desc->push_color(text_color); class_desc->push_font(doc_bold_font); class_desc->push_indent(1); @@ -619,14 +628,16 @@ void EditorHelp::_update_doc() { } // Class description - if (!cd.description.is_empty()) { + if (!cd.description.strip_edges().is_empty()) { 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); class_desc->add_text(TTR("Description")); - class_desc->pop(); - class_desc->pop(); + class_desc->pop(); // font size + class_desc->pop(); // font + class_desc->pop(); // color class_desc->add_newline(); class_desc->add_newline(); @@ -646,9 +657,11 @@ void EditorHelp::_update_doc() { 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); class_desc->add_text(TTR("Online Tutorials")); - class_desc->pop(); - class_desc->pop(); + class_desc->pop(); // font size + class_desc->pop(); // font + class_desc->pop(); // color class_desc->push_indent(1); class_desc->push_font(doc_code_font); @@ -682,7 +695,7 @@ void EditorHelp::_update_doc() { if (cd.is_script_doc) { has_properties = false; for (int i = 0; i < cd.properties.size(); i++) { - if (cd.properties[i].name.begins_with("_") && cd.properties[i].description.is_empty()) { + if (cd.properties[i].name.begins_with("_") && cd.properties[i].description.strip_edges().is_empty()) { continue; } has_properties = true; @@ -694,9 +707,11 @@ void EditorHelp::_update_doc() { 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); class_desc->add_text(TTR("Properties")); - class_desc->pop(); - class_desc->pop(); + class_desc->pop(); // font size + class_desc->pop(); // font + class_desc->pop(); // color class_desc->add_newline(); class_desc->push_font(doc_code_font); @@ -706,7 +721,7 @@ void EditorHelp::_update_doc() { for (int i = 0; i < cd.properties.size(); i++) { // Ignore undocumented private. - if (cd.properties[i].name.begins_with("_") && cd.properties[i].description.is_empty()) { + 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; //gets overridden if description @@ -731,7 +746,7 @@ void EditorHelp::_update_doc() { describe = true; } - if (!cd.properties[i].description.is_empty()) { + if (!cd.properties[i].description.strip_edges().is_empty()) { describe = true; } @@ -844,7 +859,7 @@ void EditorHelp::_update_doc() { } } // Ignore undocumented non virtual private. - if (cd.methods[i].name.begins_with("_") && cd.methods[i].description.is_empty() && !cd.methods[i].qualifiers.contains("virtual")) { + if (cd.methods[i].name.begins_with("_") && cd.methods[i].description.strip_edges().is_empty() && !cd.methods[i].qualifiers.contains("virtual")) { continue; } methods.push_back(cd.methods[i]); @@ -858,6 +873,7 @@ 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); class_desc->add_text(TTR("Constructors")); _update_method_list(cd.constructors, constructor_descriptions); } @@ -869,6 +885,7 @@ 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); class_desc->add_text(TTR("Methods")); _update_method_list(methods, method_descriptions); } @@ -881,6 +898,7 @@ 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); class_desc->add_text(TTR("Operators")); _update_method_list(cd.operators, operator_descriptions); } @@ -890,9 +908,11 @@ void EditorHelp::_update_doc() { 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); class_desc->add_text(TTR("Theme Properties")); - class_desc->pop(); - class_desc->pop(); + class_desc->pop(); // font size + class_desc->pop(); // font + class_desc->pop(); // color class_desc->add_newline(); class_desc->add_newline(); @@ -916,13 +936,15 @@ void EditorHelp::_update_doc() { class_desc->push_color(title_color); class_desc->push_font(doc_title_font); + class_desc->push_font_size(doc_title_font_size); 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(); - class_desc->pop(); + class_desc->pop(); // font size + class_desc->pop(); // font + class_desc->pop(); // color class_desc->add_newline(); class_desc->add_newline(); @@ -957,7 +979,7 @@ void EditorHelp::_update_doc() { class_desc->pop(); // monofont // Theme item description. - if (!cd.theme_properties[i].description.is_empty()) { + 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_indent(1); @@ -984,9 +1006,11 @@ 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); class_desc->add_text(TTR("Signals")); - class_desc->pop(); - class_desc->pop(); + class_desc->pop(); // font size + class_desc->pop(); // font + class_desc->pop(); // color class_desc->add_newline(); class_desc->add_newline(); @@ -997,8 +1021,8 @@ void EditorHelp::_update_doc() { signal_line[cd.signals[i].name] = class_desc->get_paragraph_count() - 2; // Gets overridden if description. class_desc->push_font(doc_code_font); // monofont - class_desc->push_color(headline_color); _add_bulletpoint(); + class_desc->push_color(headline_color); _add_text(cd.signals[i].name); class_desc->pop(); class_desc->push_color(symbol_color); @@ -1027,7 +1051,7 @@ void EditorHelp::_update_doc() { class_desc->add_text(")"); class_desc->pop(); class_desc->pop(); // end monofont - if (!cd.signals[i].description.is_empty()) { + if (!cd.signals[i].description.strip_edges().is_empty()) { class_desc->push_font(doc_font); class_desc->push_color(comment_color); class_desc->push_indent(1); @@ -1058,7 +1082,7 @@ void EditorHelp::_update_doc() { enums[cd.constants[i].enumeration].push_back(cd.constants[i]); } else { // Ignore undocumented private. - if (cd.constants[i].name.begins_with("_") && cd.constants[i].description.is_empty()) { + if (cd.constants[i].name.begins_with("_") && cd.constants[i].description.strip_edges().is_empty()) { continue; } constants.push_back(cd.constants[i]); @@ -1070,9 +1094,11 @@ void EditorHelp::_update_doc() { 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); class_desc->add_text(TTR("Enumerations")); - class_desc->pop(); - class_desc->pop(); + class_desc->pop(); // font size + class_desc->pop(); // font + class_desc->pop(); // color class_desc->push_indent(1); class_desc->add_newline(); @@ -1082,7 +1108,11 @@ void EditorHelp::_update_doc() { class_desc->push_font(doc_code_font); class_desc->push_color(title_color); - class_desc->add_text("enum "); + 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)) { @@ -1128,8 +1158,8 @@ void EditorHelp::_update_doc() { constant_line[enum_list[i].name] = class_desc->get_paragraph_count() - 2; class_desc->push_font(doc_code_font); - class_desc->push_color(headline_color); _add_bulletpoint(); + class_desc->push_color(headline_color); _add_text(enum_list[i].name); class_desc->pop(); class_desc->push_color(symbol_color); @@ -1174,9 +1204,11 @@ void EditorHelp::_update_doc() { 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); class_desc->add_text(TTR("Constants")); - class_desc->pop(); - class_desc->pop(); + class_desc->pop(); // font size + class_desc->pop(); // font + class_desc->pop(); // color class_desc->push_indent(1); class_desc->add_newline(); @@ -1211,7 +1243,7 @@ void EditorHelp::_update_doc() { class_desc->add_newline(); - if (!constants[i].description.is_empty()) { + if (!constants[i].description.strip_edges().is_empty()) { class_desc->push_font(doc_font); class_desc->push_color(comment_color); _add_text(DTR(constants[i].description)); @@ -1230,14 +1262,122 @@ void EditorHelp::_update_doc() { } } + // Annotations + if (!cd.annotations.is_empty()) { + if (sort_methods) { + cd.annotations.sort(); + } + + 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); + class_desc->add_text(TTR("Annotations")); + class_desc->pop(); // font size + class_desc->pop(); // font + class_desc->pop(); // color + + class_desc->add_newline(); + class_desc->add_newline(); + + class_desc->push_indent(1); + + 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 + _add_bulletpoint(); + class_desc->push_color(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->add_text("("); + class_desc->pop(); + for (int j = 0; j < cd.annotations[i].arguments.size(); j++) { + class_desc->push_color(text_color); + if (j > 0) { + class_desc->add_text(", "); + } + + _add_text(cd.annotations[i].arguments[j].name); + 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->add_text(" = "); + class_desc->pop(); + _add_text(cd.annotations[i].arguments[j].default_value); + } + + class_desc->pop(); + } + + if (cd.annotations[i].qualifiers.contains("vararg")) { + class_desc->push_color(text_color); + if (cd.annotations[i].arguments.size()) { + class_desc->add_text(", "); + } + class_desc->push_color(symbol_color); + class_desc->add_text("..."); + class_desc->pop(); + class_desc->pop(); + } + + class_desc->push_color(symbol_color); + class_desc->add_text(")"); + class_desc->pop(); + } + + if (!cd.annotations[i].qualifiers.is_empty()) { + class_desc->push_color(qualifier_color); + class_desc->add_text(" "); + _add_text(cd.annotations[i].qualifiers); + class_desc->pop(); + } + + class_desc->pop(); // end monofont + + if (!cd.annotations[i].description.strip_edges().is_empty()) { + class_desc->push_font(doc_font); + class_desc->push_color(comment_color); + class_desc->push_indent(1); + _add_text(DTR(cd.annotations[i].description)); + class_desc->pop(); // indent + class_desc->pop(); + class_desc->pop(); // font + } 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); + if (cd.is_script_doc) { + class_desc->append_text(TTR("There is currently no description for this annotation.")); + } else { + class_desc->append_text(TTR("There is currently no description for this annotation. Please help us by [color=$color][url=$url]contributing one[/url][/color]!").replace("$url", CONTRIBUTE_URL).replace("$color", link_color_text)); + } + class_desc->pop(); + class_desc->pop(); // indent + } + class_desc->add_newline(); + class_desc->add_newline(); + } + + class_desc->pop(); + class_desc->add_newline(); + } + // Property descriptions if (property_descr) { 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); class_desc->add_text(TTR("Property Descriptions")); - class_desc->pop(); - class_desc->pop(); + class_desc->pop(); // font size + class_desc->pop(); // font + class_desc->pop(); // color class_desc->add_newline(); class_desc->add_newline(); @@ -1401,6 +1541,7 @@ void EditorHelp::_update_doc() { 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); class_desc->add_text(TTR("Constructor Descriptions")); _update_method_descriptions(cd, cd.constructors, "constructor"); } @@ -1410,6 +1551,7 @@ void EditorHelp::_update_doc() { 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); class_desc->add_text(TTR("Method Descriptions")); _update_method_descriptions(cd, methods, "method"); } @@ -1419,6 +1561,7 @@ void EditorHelp::_update_doc() { 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); class_desc->add_text(TTR("Operator Descriptions")); _update_method_descriptions(cd, cd.operators, "operator"); } @@ -1471,6 +1614,10 @@ void EditorHelp::_help_callback(const String &p_topic) { if (constant_line.has(name)) { line = constant_line[name]; } + } else if (what == "class_annotation") { + if (annotation_line.has(name)) { + line = annotation_line[name]; + } } else if (what == "class_global") { if (constant_line.has(name)) { line = constant_line[name]; diff --git a/editor/editor_help.h b/editor/editor_help.h index 766a09f485..9f8da938f1 100644 --- a/editor/editor_help.h +++ b/editor/editor_help.h @@ -110,6 +110,7 @@ class EditorHelp : public VBoxContainer { HashMap<String, int> property_line; HashMap<String, int> theme_property_line; HashMap<String, int> constant_line; + HashMap<String, int> annotation_line; HashMap<String, int> enum_line; HashMap<String, HashMap<String, int>> enum_values_line; int description_line = 0; @@ -140,6 +141,8 @@ class EditorHelp : public VBoxContainer { Ref<Font> doc_title_font; Ref<Font> doc_code_font; + int doc_title_font_size; + int scroll_to = -1; void _update_theme(); diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp index f454ba2c41..c48b443a0b 100644 --- a/editor/editor_help_search.cpp +++ b/editor/editor_help_search.cpp @@ -185,7 +185,7 @@ EditorHelpSearch::EditorHelpSearch() { set_title(TTR("Search Help")); get_ok_button()->set_disabled(true); - get_ok_button()->set_text(TTR("Open")); + set_ok_button_text(TTR("Open")); // Split search and results area. VBoxContainer *vbox = memnew(VBoxContainer); diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 0f31e3e7bb..0bb44c87d8 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -322,7 +322,7 @@ void EditorProperty::_notification(int p_what) { Ref<Texture2D> pinned_icon = get_theme_icon(SNAME("Pin"), SNAME("EditorIcons")); int margin_w = get_theme_constant(SNAME("hseparator"), SNAME("Tree")) * 2; int total_icon_w = margin_w + pinned_icon->get_width(); - int text_w = font->get_string_size(label, font_size, rtl ? HORIZONTAL_ALIGNMENT_RIGHT : HORIZONTAL_ALIGNMENT_LEFT, text_limit - total_icon_w).x; + int text_w = font->get_string_size(label, rtl ? HORIZONTAL_ALIGNMENT_RIGHT : HORIZONTAL_ALIGNMENT_LEFT, text_limit - total_icon_w, font_size).x; int y = (size.height - pinned_icon->get_height()) / 2; if (rtl) { draw_texture(pinned_icon, Vector2(size.width - ofs - text_w - total_icon_w, y), color); @@ -406,7 +406,7 @@ Object *EditorProperty::get_edited_object() { return object; } -StringName EditorProperty::get_edited_property() { +StringName EditorProperty::get_edited_property() const { return property; } @@ -437,16 +437,20 @@ Variant EditorPropertyRevert::get_property_revert_value(Object *p_object, const return PropertyUtils::get_property_default_value(p_object, p_property, r_is_valid); } -bool EditorPropertyRevert::can_property_revert(Object *p_object, const StringName &p_property) { +bool EditorPropertyRevert::can_property_revert(Object *p_object, const StringName &p_property, const Variant *p_custom_current_value) { bool is_valid_revert = false; Variant revert_value = EditorPropertyRevert::get_property_revert_value(p_object, p_property, &is_valid_revert); if (!is_valid_revert) { return false; } - Variant current_value = p_object->get(p_property); + Variant current_value = p_custom_current_value ? *p_custom_current_value : p_object->get(p_property); return PropertyUtils::is_property_value_different(current_value, revert_value); } +StringName EditorProperty::_get_revert_property() const { + return property; +} + void EditorProperty::update_revert_and_pin_status() { if (property == StringName()) { return; //no property, so nothing to do @@ -458,7 +462,8 @@ void EditorProperty::update_revert_and_pin_status() { CRASH_COND(!node); new_pinned = node->is_property_pinned(property); } - bool new_can_revert = EditorPropertyRevert::can_property_revert(object, property) && !is_read_only(); + Variant current = object->get(_get_revert_property()); + bool new_can_revert = EditorPropertyRevert::can_property_revert(object, property, ¤t) && !is_read_only(); if (new_can_revert != can_revert || new_pinned != pinned) { can_revert = new_can_revert; @@ -717,11 +722,15 @@ void EditorProperty::set_bottom_editor(Control *p_control) { bottom_editor = p_control; } +Variant EditorProperty::_get_cache_value(const StringName &p_prop, bool &r_valid) const { + return object->get(p_prop, &r_valid); +} + bool EditorProperty::is_cache_valid() const { if (object) { for (const KeyValue<StringName, Variant> &E : cache) { bool valid; - Variant value = object->get(E.key, &valid); + Variant value = _get_cache_value(E.key, valid); if (!valid || value != E.value) { return false; } @@ -733,7 +742,7 @@ void EditorProperty::update_cache() { cache.clear(); if (object && property != StringName()) { bool valid; - Variant value = object->get(property, &valid); + Variant value = _get_cache_value(property, valid); if (valid) { cache[property] = value; } @@ -1078,7 +1087,7 @@ void EditorInspectorCategory::_notification(int p_what) { int hs = get_theme_constant(SNAME("h_separation"), SNAME("Tree")); - int w = font->get_string_size(label, font_size).width; + int w = font->get_string_size(label, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).width; if (icon.is_valid()) { w += hs + icon->get_width(); } @@ -3420,6 +3429,7 @@ void EditorInspector::_property_checked(const String &p_path, bool p_checked) { if (editor_property_map.has(p_path)) { for (EditorProperty *E : editor_property_map[p_path]) { + E->set_checked(p_checked); E->update_property(); E->update_revert_and_pin_status(); E->update_cache(); @@ -3771,7 +3781,7 @@ void EditorInspector::_show_add_meta_dialog() { add_meta_type->add_icon_item(get_theme_icon(type, "EditorIcons"), type, i); } hbc->add_child(add_meta_type); - add_meta_dialog->get_ok_button()->set_text(TTR("Add")); + add_meta_dialog->set_ok_button_text(TTR("Add")); add_child(add_meta_dialog); add_meta_dialog->register_text_enter(add_meta_name); add_meta_dialog->connect("confirmed", callable_mp(this, &EditorInspector::_add_meta_confirm)); diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h index 555fedf939..d70d06c48b 100644 --- a/editor/editor_inspector.h +++ b/editor/editor_inspector.h @@ -50,7 +50,7 @@ public: static bool is_property_value_different(const Variant &p_a, const Variant &p_b); static Variant get_property_revert_value(Object *p_object, const StringName &p_property, bool *r_is_valid); - static bool can_property_revert(Object *p_object, const StringName &p_property); + static bool can_property_revert(Object *p_object, const StringName &p_property, const Variant *p_custom_current_value = nullptr); }; class EditorProperty : public Container { @@ -131,6 +131,9 @@ protected: virtual void shortcut_input(const Ref<InputEvent> &p_event) override; const Color *_get_property_colors(); + virtual Variant _get_cache_value(const StringName &p_prop, bool &r_valid) const; + virtual StringName _get_revert_property() const; + public: void emit_changed(const StringName &p_property, const Variant &p_value, const StringName &p_field = StringName(), bool p_changing = false); @@ -143,7 +146,7 @@ public: bool is_read_only() const; Object *get_edited_object(); - StringName get_edited_property(); + StringName get_edited_property() const; virtual void update_property(); void update_revert_and_pin_status(); diff --git a/editor/editor_locale_dialog.cpp b/editor/editor_locale_dialog.cpp index abef0dc353..cd8150d235 100644 --- a/editor/editor_locale_dialog.cpp +++ b/editor/editor_locale_dialog.cpp @@ -552,5 +552,5 @@ EditorLocaleDialog::EditorLocaleDialog() { add_child(vb); _update_tree(); - get_ok_button()->set_text(TTR("Select")); + set_ok_button_text(TTR("Select")); } diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp index dbe44aee1b..f26f47dbc7 100644 --- a/editor/editor_log.cpp +++ b/editor/editor_log.cpp @@ -181,7 +181,7 @@ void EditorLog::clear() { } void EditorLog::_process_message(const String &p_msg, MessageType p_type) { - if (messages.size() > 0 && messages[messages.size() - 1].text == p_msg) { + if (messages.size() > 0 && messages[messages.size() - 1].text == p_msg && messages[messages.size() - 1].type == p_type) { // If previous message is the same as the new one, increase previous count rather than adding another // instance to the messages list. LogMessage &previous = messages.write[messages.size() - 1]; @@ -258,6 +258,8 @@ void EditorLog::_add_log_line(LogMessage &p_message, bool p_replace_previous) { switch (p_message.type) { case MSG_TYPE_STD: { } break; + case MSG_TYPE_STD_RICH: { + } break; case MSG_TYPE_ERROR: { log->push_color(get_theme_color(SNAME("error_color"), SNAME("Editor"))); Ref<Texture2D> icon = get_theme_icon(SNAME("Error"), SNAME("EditorIcons")); @@ -285,11 +287,15 @@ void EditorLog::_add_log_line(LogMessage &p_message, bool p_replace_previous) { log->pop(); } - log->add_text(p_message.text); + if (p_message.type == MSG_TYPE_STD_RICH) { + log->append_text(p_message.text); + } else { + log->add_text(p_message.text); + } // Need to use pop() to exit out of the RichTextLabels current "push" stack. - // We only "push" in the above switch when message type != STD, so only pop when that is the case. - if (p_message.type != MSG_TYPE_STD) { + // We only "push" in the above switch when message type != STD and RICH, so only pop when that is the case. + if (p_message.type != MSG_TYPE_STD && p_message.type != MSG_TYPE_STD_RICH) { log->pop(); } @@ -342,6 +348,7 @@ EditorLog::EditorLog() { // Log - Rich Text Label. log = memnew(RichTextLabel); + log->set_use_bbcode(true); log->set_scroll_follow(true); log->set_selection_enabled(true); log->set_focus_mode(FOCUS_CLICK); @@ -418,6 +425,7 @@ EditorLog::EditorLog() { std_filter->initialize_button(TTR("Toggle visibility of standard output messages."), callable_mp(this, &EditorLog::_set_filter_active)); vb_right->add_child(std_filter->toggle_button); type_filter_map.insert(MSG_TYPE_STD, std_filter); + type_filter_map.insert(MSG_TYPE_STD_RICH, std_filter); LogFilter *error_filter = memnew(LogFilter(MSG_TYPE_ERROR)); error_filter->initialize_button(TTR("Toggle visibility of errors."), callable_mp(this, &EditorLog::_set_filter_active)); @@ -451,6 +459,10 @@ void EditorLog::deinit() { EditorLog::~EditorLog() { for (const KeyValue<MessageType, LogFilter *> &E : type_filter_map) { - memdelete(E.value); + // MSG_TYPE_STD_RICH is connected to the std_filter button, so we do this + // to avoid it from being deleted twice, causing a crash on closing. + if (E.key != MSG_TYPE_STD_RICH) { + memdelete(E.value); + } } } diff --git a/editor/editor_log.h b/editor/editor_log.h index de0368501c..653fba9524 100644 --- a/editor/editor_log.h +++ b/editor/editor_log.h @@ -48,6 +48,7 @@ public: enum MessageType { MSG_TYPE_STD, MSG_TYPE_ERROR, + MSG_TYPE_STD_RICH, MSG_TYPE_WARNING, MSG_TYPE_EDITOR, }; diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 15770f9ac8..abe431221c 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -134,6 +134,7 @@ #include "editor/plugins/audio_stream_editor_plugin.h" #include "editor/plugins/audio_stream_randomizer_editor_plugin.h" #include "editor/plugins/bit_map_editor_plugin.h" +#include "editor/plugins/bone_map_editor_plugin.h" #include "editor/plugins/camera_3d_editor_plugin.h" #include "editor/plugins/canvas_item_editor_plugin.h" #include "editor/plugins/collision_polygon_2d_editor_plugin.h" @@ -145,7 +146,7 @@ #include "editor/plugins/debugger_editor_plugin.h" #include "editor/plugins/editor_debugger_plugin.h" #include "editor/plugins/editor_preview_plugins.h" -#include "editor/plugins/font_editor_plugin.h" +#include "editor/plugins/font_config_plugin.h" #include "editor/plugins/gdextension_export_plugin.h" #include "editor/plugins/gpu_particles_2d_editor_plugin.h" #include "editor/plugins/gpu_particles_3d_editor_plugin.h" @@ -164,7 +165,6 @@ #include "editor/plugins/navigation_polygon_editor_plugin.h" #include "editor/plugins/node_3d_editor_plugin.h" #include "editor/plugins/occluder_instance_3d_editor_plugin.h" -#include "editor/plugins/ot_features_plugin.h" #include "editor/plugins/packed_scene_translation_parser_plugin.h" #include "editor/plugins/path_2d_editor_plugin.h" #include "editor/plugins/path_3d_editor_plugin.h" @@ -186,7 +186,6 @@ #include "editor/plugins/sprite_frames_editor_plugin.h" #include "editor/plugins/style_box_editor_plugin.h" #include "editor/plugins/sub_viewport_preview_editor_plugin.h" -#include "editor/plugins/text_control_editor_plugin.h" #include "editor/plugins/text_editor.h" #include "editor/plugins/texture_3d_editor_plugin.h" #include "editor/plugins/texture_editor_plugin.h" @@ -460,7 +459,7 @@ void EditorNode::shortcut_input(const Ref<InputEvent> &p_event) { _editor_select(EDITOR_SCRIPT); } else if (ED_IS_SHORTCUT("editor/editor_help", p_event)) { emit_signal(SNAME("request_help_search"), ""); - } else if (ED_IS_SHORTCUT("editor/editor_assetlib", p_event) && StreamPeerSSL::is_available()) { + } else if (ED_IS_SHORTCUT("editor/editor_assetlib", p_event) && AssetLibraryEditorPlugin::is_available()) { _editor_select(EDITOR_ASSETLIB); } else if (ED_IS_SHORTCUT("editor/editor_next", p_event)) { _editor_select_next(); @@ -553,8 +552,6 @@ void EditorNode::_update_from_settings() { tree->set_debug_collision_contact_color(GLOBAL_GET("debug/shapes/collision/contact_color")); tree->set_debug_navigation_color(GLOBAL_GET("debug/shapes/navigation/geometry_color")); tree->set_debug_navigation_disabled_color(GLOBAL_GET("debug/shapes/navigation/disabled_geometry_color")); - - _update_title(); } void EditorNode::_select_default_main_screen_plugin() { @@ -584,7 +581,11 @@ void EditorNode::_notification(int p_what) { opening_prev = false; } - unsaved_cache = saved_version != editor_data.get_undo_redo().get_version(); + bool unsaved_cache_changed = false; + if (unsaved_cache != (saved_version != editor_data.get_undo_redo().get_version())) { + unsaved_cache = (saved_version != editor_data.get_undo_redo().get_version()); + unsaved_cache_changed = true; + } if (last_checked_version != editor_data.get_undo_redo().get_version()) { _update_scene_tabs(); @@ -614,6 +615,10 @@ void EditorNode::_notification(int p_what) { ResourceImporterTexture::get_singleton()->update_imports(); + if (settings_changed || unsaved_cache_changed) { + _update_title(); + } + if (settings_changed) { _update_from_settings(); settings_changed = false; @@ -875,7 +880,7 @@ void EditorNode::_resources_changed(const Vector<String> &p_resources) { int rc = p_resources.size(); for (int i = 0; i < rc; i++) { - Ref<Resource> res(ResourceCache::get(p_resources.get(i))); + Ref<Resource> res = ResourceCache::get_ref(p_resources.get(i)); if (res.is_null()) { continue; } @@ -1005,8 +1010,8 @@ void EditorNode::_resources_reimported(const Vector<String> &p_resources) { continue; } // Reload normally. - Resource *resource = ResourceCache::get(p_resources[i]); - if (resource) { + Ref<Resource> resource = ResourceCache::get_ref(p_resources[i]); + if (resource.is_valid()) { resource->reload_from_file(); } } @@ -1254,7 +1259,7 @@ void EditorNode::save_resource_as(const Ref<Resource> &p_resource, const String // This serves no purpose and confused people. continue; } - file->add_filter("*." + E + " ; " + E.to_upper()); + file->add_filter("*." + E, E.to_upper()); preferred.push_back(E); } // Lowest priority extension. @@ -1614,34 +1619,6 @@ bool EditorNode::_validate_scene_recursive(const String &p_filename, Node *p_nod return false; } -static bool _find_edited_resources(const Ref<Resource> &p_resource, HashSet<Ref<Resource>> &edited_resources) { - if (p_resource->is_edited()) { - edited_resources.insert(p_resource); - return true; - } - - List<PropertyInfo> plist; - - p_resource->get_property_list(&plist); - - for (const PropertyInfo &E : plist) { - if (E.type == Variant::OBJECT && E.usage & PROPERTY_USAGE_STORAGE && !(E.usage & PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT)) { - Ref<Resource> res = p_resource->get(E.name); - if (res.is_null()) { - continue; - } - if (res->get_path().is_resource_file()) { // Not a subresource, continue. - continue; - } - if (_find_edited_resources(res, edited_resources)) { - return true; - } - } - } - - return false; -} - int EditorNode::_save_external_resources() { // Save external resources and its subresources if any was modified. @@ -1651,29 +1628,43 @@ int EditorNode::_save_external_resources() { } flg |= ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS; - HashSet<Ref<Resource>> edited_subresources; + HashSet<String> edited_resources; int saved = 0; List<Ref<Resource>> cached; ResourceCache::get_cached_resources(&cached); - for (const Ref<Resource> &res : cached) { - if (!res->get_path().is_resource_file()) { + + for (Ref<Resource> res : cached) { + if (!res->is_edited()) { continue; } - // not only check if this resource is edited, check contained subresources too - if (_find_edited_resources(res, edited_subresources)) { - ResourceSaver::save(res->get_path(), res, flg); - saved++; - } - } - // Clear later, because user may have put the same subresource in two different resources, - // which will be shared until the next reload. + String path = res->get_path(); + if (path.begins_with("res://")) { + int subres_pos = path.find("::"); + if (subres_pos == -1) { + // Actual resource. + edited_resources.insert(path); + } else { + edited_resources.insert(path.substr(0, subres_pos)); + } + } - for (const Ref<Resource> &E : edited_subresources) { - Ref<Resource> res = E; res->set_edited(false); } + for (const String &E : edited_resources) { + Ref<Resource> res = ResourceCache::get_ref(E); + if (!res.is_valid()) { + continue; // Maybe it was erased in a thread, who knows. + } + Ref<PackedScene> ps = res; + if (ps.is_valid()) { + continue; // Do not save PackedScenes, this will mess up the editor. + } + ResourceSaver::save(res->get_path(), res, flg); + saved++; + } + return saved; } @@ -1719,7 +1710,7 @@ void EditorNode::_save_scene(String p_file, int idx) { // We must update it, but also let the previous scene state go, as // old version still work for referencing changes in instantiated or inherited scenes. - sdata = Ref<PackedScene>(Object::cast_to<PackedScene>(ResourceCache::get(p_file))); + sdata = ResourceCache::get_ref(p_file); if (sdata.is_valid()) { sdata->recreate_state(); } else { @@ -2348,6 +2339,20 @@ void EditorNode::_run(bool p_current, const String &p_custom) { play_custom_scene_button->set_pressed(false); play_custom_scene_button->set_icon(gui_base->get_theme_icon(SNAME("PlayCustom"), SNAME("EditorIcons"))); + String write_movie_file; + if (write_movie_button->is_pressed()) { + if (p_current && get_tree()->get_edited_scene_root() && get_tree()->get_edited_scene_root()->has_meta("movie_file")) { + // If the scene file has a movie_file metadata set, use this as file. Quick workaround if you want to have multiple scenes that write to multiple movies. + write_movie_file = get_tree()->get_edited_scene_root()->get_meta("movie_file"); + } else { + write_movie_file = GLOBAL_GET("editor/movie_writer/movie_file"); + } + if (write_movie_file == String()) { + show_accept(TTR("Movie Maker mode is enabled, but no movie file path has been specified.\nA default movie file path can be specified in the project settings under the 'Editor/Movie Writer' category.\nAlternatively, for running single scenes, a 'movie_path' metadata can be added to the root node,\nspecifying the path to a movie file that will be used when recording that scene."), TTR("OK")); + return; + } + } + String run_filename; if (p_current || (editor_data.get_edited_scene_root() && !p_custom.is_empty() && p_custom == editor_data.get_edited_scene_root()->get_scene_file_path())) { @@ -2404,7 +2409,7 @@ void EditorNode::_run(bool p_current, const String &p_custom) { } EditorDebuggerNode::get_singleton()->start(); - Error error = editor_run.run(run_filename); + Error error = editor_run.run(run_filename, write_movie_file); if (error != OK) { EditorDebuggerNode::get_singleton()->stop(); show_accept(TTR("Could not start subprocess(es)!"), TTR("OK")); @@ -2466,7 +2471,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { ResourceLoader::get_recognized_extensions_for_type("PackedScene", &extensions); file->clear_filters(); for (int i = 0; i < extensions.size(); i++) { - file->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper()); + file->add_filter("*." + extensions[i], extensions[i].to_upper()); } Node *scene = editor_data.get_edited_scene_root(); @@ -2536,10 +2541,10 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { if (scene_root) { String scene_filename = scene_root->get_scene_file_path(); if (p_option == FILE_CLOSE_ALL_AND_RELOAD_CURRENT_PROJECT) { - save_confirmation->get_ok_button()->set_text(TTR("Save & Reload")); + save_confirmation->set_ok_button_text(TTR("Save & Reload")); save_confirmation->set_text(vformat(TTR("Save changes to '%s' before reloading?"), !scene_filename.is_empty() ? scene_filename : "unsaved scene")); } else { - save_confirmation->get_ok_button()->set_text(TTR("Save & Quit")); + save_confirmation->set_ok_button_text(TTR("Save & Quit")); save_confirmation->set_text(vformat(TTR("Save changes to '%s' before closing?"), !scene_filename.is_empty() ? scene_filename : "unsaved scene")); } save_confirmation->popup_centered(); @@ -2612,7 +2617,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { ResourceSaver::get_recognized_extensions(sd, &extensions); file->clear_filters(); for (int i = 0; i < extensions.size(); i++) { - file->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper()); + file->add_filter("*." + extensions[i], extensions[i].to_upper()); } if (!scene->get_scene_file_path().is_empty()) { @@ -2655,7 +2660,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { case FILE_EXTERNAL_OPEN_SCENE: { if (unsaved_cache && !p_confirmed) { - confirmation->get_ok_button()->set_text(TTR("Open")); + confirmation->set_ok_button_text(TTR("Open")); confirmation->set_text(TTR("Current scene not saved. Open anyway?")); confirmation->popup_centered(); break; @@ -2711,7 +2716,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { } if (unsaved_cache && !p_confirmed) { - confirmation->get_ok_button()->set_text(TTR("Reload Saved Scene")); + confirmation->set_ok_button_text(TTR("Reload Saved Scene")); confirmation->set_text( TTR("The current scene has unsaved changes.\nReload the saved scene anyway? This action cannot be undone.")); confirmation->popup_centered(); @@ -2833,10 +2838,10 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { i = _next_unsaved_scene(true, ++i); } if (p_option == RELOAD_CURRENT_PROJECT) { - save_confirmation->get_ok_button()->set_text(TTR("Save & Reload")); + save_confirmation->set_ok_button_text(TTR("Save & Reload")); save_confirmation->set_text(TTR("Save changes to the following scene(s) before reloading?") + unsaved_scenes); } else { - save_confirmation->get_ok_button()->set_text(TTR("Save & Quit")); + save_confirmation->set_ok_button_text(TTR("Save & Quit")); save_confirmation->set_text((p_option == FILE_QUIT ? TTR("Save changes to the following scene(s) before quitting?") : TTR("Save changes to the following scene(s) before opening Project Manager?")) + unsaved_scenes); } save_confirmation->popup_centered(); @@ -2898,7 +2903,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { ResourceLoader::get_recognized_extensions_for_type("PackedScene", &extensions); file->clear_filters(); for (int i = 0; i < extensions.size(); i++) { - file->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper()); + file->add_filter("*." + extensions[i], extensions[i].to_upper()); } Node *scene = editor_data.get_edited_scene_root(); @@ -3694,7 +3699,7 @@ Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, b if (ResourceCache::has(lpath)) { // Used from somewhere else? No problem! Update state and replace sdata. - Ref<PackedScene> ps = Ref<PackedScene>(Object::cast_to<PackedScene>(ResourceCache::get(lpath))); + Ref<PackedScene> ps = ResourceCache::get_ref(lpath); if (ps.is_valid()) { ps->replace_state(sdata->get_state()); ps->set_last_modified_time(sdata->get_last_modified_time()); @@ -4038,10 +4043,8 @@ Ref<ImageTexture> EditorNode::_load_custom_class_icon(const String &p_path) cons Ref<Image> img = memnew(Image); Error err = ImageLoader::load_image(p_path, img); if (err == OK) { - Ref<ImageTexture> icon = memnew(ImageTexture); img->resize(16 * EDSCALE, 16 * EDSCALE, Image::INTERPOLATE_LANCZOS); - icon->create_from_image(img); - return icon; + return ImageTexture::create_from_image(img); } } return nullptr; @@ -4269,14 +4272,14 @@ Error EditorNode::export_preset(const String &p_preset, const String &p_path, bo void EditorNode::show_accept(const String &p_text, const String &p_title) { current_menu_option = -1; - accept->get_ok_button()->set_text(p_title); + accept->set_ok_button_text(p_title); accept->set_text(p_text); accept->popup_centered(); } void EditorNode::show_save_accept(const String &p_text, const String &p_title) { current_menu_option = -1; - save_accept->get_ok_button()->set_text(p_title); + save_accept->set_ok_button_text(p_title); save_accept->set_text(p_text); save_accept->popup_centered(); } @@ -4954,8 +4957,8 @@ void EditorNode::_immediate_dialog_confirmed() { bool EditorNode::immediate_confirmation_dialog(const String &p_text, const String &p_ok_text, const String &p_cancel_text) { ConfirmationDialog *cd = memnew(ConfirmationDialog); cd->set_text(p_text); - cd->get_ok_button()->set_text(p_ok_text); - cd->get_cancel_button()->set_text(p_cancel_text); + cd->set_ok_button_text(p_ok_text); + cd->set_cancel_button_text(p_cancel_text); cd->connect("confirmed", callable_mp(singleton, &EditorNode::_immediate_dialog_confirmed)); singleton->gui_base->add_child(cd); @@ -5017,14 +5020,14 @@ void EditorNode::_layout_menu_option(int p_id) { case SETTINGS_LAYOUT_SAVE: { current_menu_option = p_id; layout_dialog->set_title(TTR("Save Layout")); - layout_dialog->get_ok_button()->set_text(TTR("Save")); + layout_dialog->set_ok_button_text(TTR("Save")); layout_dialog->popup_centered(); layout_dialog->set_name_line_enabled(true); } break; case SETTINGS_LAYOUT_DELETE: { current_menu_option = p_id; layout_dialog->set_title(TTR("Delete Layout")); - layout_dialog->get_ok_button()->set_text(TTR("Delete")); + layout_dialog->set_ok_button_text(TTR("Delete")); layout_dialog->popup_centered(); layout_dialog->set_name_line_enabled(false); } break; @@ -5066,7 +5069,7 @@ void EditorNode::_scene_tab_closed(int p_tab, int option) { ? saved_version != editor_data.get_undo_redo().get_version() : editor_data.get_scene_version(p_tab) != 0; if (unsaved) { - save_confirmation->get_ok_button()->set_text(TTR("Save & Close")); + save_confirmation->set_ok_button_text(TTR("Save & Close")); save_confirmation->set_text(vformat(TTR("Save changes to '%s' before closing?"), !scene->get_scene_file_path().is_empty() ? scene->get_scene_file_path() : "unsaved scene")); save_confirmation->popup_centered(); } else { @@ -5388,9 +5391,7 @@ Variant EditorNode::drag_resource(const Ref<Resource> &p_res, Control *p_from) { Ref<Image> img = texture->get_image(); img = img->duplicate(); img->resize(48, 48); // meh - Ref<ImageTexture> resized_pic = Ref<ImageTexture>(memnew(ImageTexture)); - resized_pic->create_from_image(img); - preview = resized_pic; + preview = ImageTexture::create_from_image(img); } drag_preview->set_texture(preview); @@ -5735,12 +5736,12 @@ void EditorNode::_feature_profile_changed() { main_editor_buttons[EDITOR_3D]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_3D)); main_editor_buttons[EDITOR_SCRIPT]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_SCRIPT)); - if (StreamPeerSSL::is_available()) { + if (AssetLibraryEditorPlugin::is_available()) { main_editor_buttons[EDITOR_ASSETLIB]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_ASSET_LIB)); } if ((profile->is_feature_disabled(EditorFeatureProfile::FEATURE_3D) && singleton->main_editor_buttons[EDITOR_3D]->is_pressed()) || (profile->is_feature_disabled(EditorFeatureProfile::FEATURE_SCRIPT) && singleton->main_editor_buttons[EDITOR_SCRIPT]->is_pressed()) || - (StreamPeerSSL::is_available() && profile->is_feature_disabled(EditorFeatureProfile::FEATURE_ASSET_LIB) && singleton->main_editor_buttons[EDITOR_ASSETLIB]->is_pressed())) { + (AssetLibraryEditorPlugin::is_available() && profile->is_feature_disabled(EditorFeatureProfile::FEATURE_ASSET_LIB) && singleton->main_editor_buttons[EDITOR_ASSETLIB]->is_pressed())) { _editor_select(EDITOR_2D); } } else { @@ -5752,7 +5753,7 @@ void EditorNode::_feature_profile_changed() { FileSystemDock::get_singleton()->set_visible(true); main_editor_buttons[EDITOR_3D]->set_visible(true); main_editor_buttons[EDITOR_SCRIPT]->set_visible(true); - if (StreamPeerSSL::is_available()) { + if (AssetLibraryEditorPlugin::is_available()) { main_editor_buttons[EDITOR_ASSETLIB]->set_visible(true); } } @@ -5812,9 +5813,15 @@ static Node *_resource_get_edited_scene() { return EditorNode::get_singleton()->get_edited_scene(); } -void EditorNode::_print_handler(void *p_this, const String &p_string, bool p_error) { +void EditorNode::_print_handler(void *p_this, const String &p_string, bool p_error, bool p_rich) { EditorNode *en = static_cast<EditorNode *>(p_this); - en->log->add_message(p_string, p_error ? EditorLog::MSG_TYPE_ERROR : EditorLog::MSG_TYPE_STD); + if (p_error) { + en->log->add_message(p_string, EditorLog::MSG_TYPE_ERROR); + } else if (p_rich) { + en->log->add_message(p_string, EditorLog::MSG_TYPE_STD_RICH); + } else { + en->log->add_message(p_string, EditorLog::MSG_TYPE_STD); + } } static void _execute_thread(void *p_ud) { @@ -6114,7 +6121,7 @@ EditorNode::EditorNode() { EDITOR_DEF("interface/inspector/open_resources_in_current_inspector", true); EDITOR_DEF("interface/inspector/resources_to_open_in_new_inspector", "Script,MeshLibrary"); EDITOR_DEF("interface/inspector/default_color_picker_mode", 0); - EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "interface/inspector/default_color_picker_mode", PROPERTY_HINT_ENUM, "RGB,HSV,RAW", PROPERTY_USAGE_DEFAULT)); + EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "interface/inspector/default_color_picker_mode", PROPERTY_HINT_ENUM, "RGB,HSV,RAW,OKHSL", PROPERTY_USAGE_DEFAULT)); EDITOR_DEF("interface/inspector/default_color_picker_shape", (int32_t)ColorPicker::SHAPE_OKHSL_CIRCLE); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "interface/inspector/default_color_picker_shape", PROPERTY_HINT_ENUM, "HSV Rectangle,HSV Rectangle Wheel,VHS Circle,OKHSL Circle", PROPERTY_USAGE_DEFAULT)); @@ -6703,6 +6710,20 @@ EditorNode::EditorNode() { ED_SHORTCUT_OVERRIDE("editor/play_custom_scene", "macos", KeyModifierMask::CMD | KeyModifierMask::SHIFT | Key::R); play_custom_scene_button->set_shortcut(ED_GET_SHORTCUT("editor/play_custom_scene")); + write_movie_button = memnew(Button); + write_movie_button->set_flat(true); + write_movie_button->set_toggle_mode(true); + play_hb->add_child(write_movie_button); + write_movie_button->set_pressed(false); + write_movie_button->set_icon(gui_base->get_theme_icon(SNAME("MainMovieWrite"), SNAME("EditorIcons"))); + write_movie_button->set_focus_mode(Control::FOCUS_NONE); + write_movie_button->set_tooltip(TTR("Enable Movie Maker mode.\nThe project will run at stable FPS and the visual and audio output will be recorded to a video file.")); + + // This button behaves differently, so color it as such. + write_movie_button->add_theme_color_override("icon_normal_color", Color(1, 1, 1, 0.7)); + write_movie_button->add_theme_color_override("icon_pressed_color", gui_base->get_theme_color(SNAME("error_color"), SNAME("Editor"))); + write_movie_button->add_theme_color_override("icon_hover_color", Color(1, 1, 1, 0.9)); + HBoxContainer *right_menu_hb = memnew(HBoxContainer); menu_hb->add_child(right_menu_hb); @@ -6748,7 +6769,7 @@ EditorNode::EditorNode() { video_restart_dialog = memnew(ConfirmationDialog); video_restart_dialog->set_text(TTR("Changing the video driver requires restarting the editor.")); - video_restart_dialog->get_ok_button()->set_text(TTR("Save & Restart")); + video_restart_dialog->set_ok_button_text(TTR("Save & Restart")); video_restart_dialog->connect("confirmed", callable_mp(this, &EditorNode::_menu_option), varray(SET_RENDERING_DRIVER_SAVE_AND_RESTART)); gui_base->add_child(video_restart_dialog); @@ -6917,7 +6938,7 @@ EditorNode::EditorNode() { custom_build_manage_templates = memnew(ConfirmationDialog); custom_build_manage_templates->set_text(TTR("Android build template is missing, please install relevant templates.")); - custom_build_manage_templates->get_ok_button()->set_text(TTR("Manage Templates")); + custom_build_manage_templates->set_ok_button_text(TTR("Manage Templates")); custom_build_manage_templates->add_button(TTR("Install from file"))->connect("pressed", callable_mp(this, &EditorNode::_menu_option), varray(SETTINGS_INSTALL_ANDROID_BUILD_TEMPLATE)); custom_build_manage_templates->connect("confirmed", callable_mp(this, &EditorNode::_menu_option), varray(SETTINGS_MANAGE_EXPORT_TEMPLATES)); gui_base->add_child(custom_build_manage_templates); @@ -6932,13 +6953,13 @@ EditorNode::EditorNode() { install_android_build_template = memnew(ConfirmationDialog); install_android_build_template->set_text(TTR("This will set up your project for custom Android builds by installing the source template to \"res://android/build\".\nYou can then apply modifications and build your own custom APK on export (adding modules, changing the AndroidManifest.xml, etc.).\nNote 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.")); - install_android_build_template->get_ok_button()->set_text(TTR("Install")); + install_android_build_template->set_ok_button_text(TTR("Install")); install_android_build_template->connect("confirmed", callable_mp(this, &EditorNode::_menu_confirm_current)); gui_base->add_child(install_android_build_template); remove_android_build_template = memnew(ConfirmationDialog); remove_android_build_template->set_text(TTR("The Android build template is already installed in this project and it won't be overwritten.\nRemove the \"res://android/build\" directory manually before attempting this operation again.")); - remove_android_build_template->get_ok_button()->set_text(TTR("Show in File Manager")); + remove_android_build_template->set_ok_button_text(TTR("Show in File Manager")); remove_android_build_template->connect("confirmed", callable_mp(this, &EditorNode::_menu_option), varray(FILE_EXPLORE_ANDROID_BUILD_TEMPLATES)); gui_base->add_child(remove_android_build_template); @@ -6949,7 +6970,7 @@ EditorNode::EditorNode() { file_templates->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE); file_templates->set_access(EditorFileDialog::ACCESS_FILESYSTEM); file_templates->clear_filters(); - file_templates->add_filter("*.tpz ; " + TTR("Template Package")); + file_templates->add_filter("*.tpz", TTR("Template Package")); file = memnew(EditorFileDialog); gui_base->add_child(file); @@ -7013,7 +7034,7 @@ EditorNode::EditorNode() { disk_changed->connect("confirmed", callable_mp(this, &EditorNode::_reload_modified_scenes)); disk_changed->connect("confirmed", callable_mp(this, &EditorNode::_reload_project_settings)); - disk_changed->get_ok_button()->set_text(TTR("Reload")); + disk_changed->set_ok_button_text(TTR("Reload")); disk_changed->add_button(TTR("Resave"), !DisplayServer::get_singleton()->get_swap_cancel_ok(), "resave"); disk_changed->connect("custom_action", callable_mp(this, &EditorNode::_resave_scenes)); @@ -7031,15 +7052,11 @@ EditorNode::EditorNode() { ScriptTextEditor::register_editor(); // Register one for text scripts. TextEditor::register_editor(); - // Asset Library can't work on Web editor for now as most assets are sourced - // directly from GitHub which does not set CORS. -#ifndef JAVASCRIPT_ENABLED - if (StreamPeerSSL::is_available()) { + if (AssetLibraryEditorPlugin::is_available()) { add_editor_plugin(memnew(AssetLibraryEditorPlugin)); } else { - WARN_PRINT("Asset Library not available, as it requires SSL to work."); + print_verbose("Asset Library not available (due to using Web editor, or SSL support disabled)."); } -#endif // Add interface before adding plugins. @@ -7086,7 +7103,6 @@ EditorNode::EditorNode() { add_editor_plugin(memnew(CollisionShape2DEditorPlugin)); add_editor_plugin(memnew(CurveEditorPlugin)); add_editor_plugin(memnew(FontEditorPlugin)); - add_editor_plugin(memnew(OpenTypeFeaturesEditorPlugin)); add_editor_plugin(memnew(TextureEditorPlugin)); add_editor_plugin(memnew(TextureLayeredEditorPlugin)); add_editor_plugin(memnew(Texture3DEditorPlugin)); @@ -7101,11 +7117,11 @@ EditorNode::EditorNode() { add_editor_plugin(memnew(GPUParticlesCollisionSDF3DEditorPlugin)); add_editor_plugin(memnew(InputEventEditorPlugin)); add_editor_plugin(memnew(SubViewportPreviewEditorPlugin)); - add_editor_plugin(memnew(TextControlEditorPlugin)); add_editor_plugin(memnew(ControlEditorPlugin)); add_editor_plugin(memnew(GradientTexture2DEditorPlugin)); add_editor_plugin(memnew(BitMapEditorPlugin)); add_editor_plugin(memnew(RayCast2DEditorPlugin)); + add_editor_plugin(memnew(BoneMapEditorPlugin)); for (int i = 0; i < EditorPlugins::get_plugin_count(); i++) { add_editor_plugin(EditorPlugins::create(i)); @@ -7192,7 +7208,7 @@ EditorNode::EditorNode() { set_process(true); open_imported = memnew(ConfirmationDialog); - open_imported->get_ok_button()->set_text(TTR("Open Anyway")); + open_imported->set_ok_button_text(TTR("Open Anyway")); new_inherited_button = open_imported->add_button(TTR("New Inherited"), !DisplayServer::get_singleton()->get_swap_cancel_ok(), "inherit"); open_imported->connect("confirmed", callable_mp(this, &EditorNode::_open_imported)); open_imported->connect("custom_action", callable_mp(this, &EditorNode::_inherit_imported)); @@ -7233,7 +7249,7 @@ EditorNode::EditorNode() { pick_main_scene = memnew(ConfirmationDialog); gui_base->add_child(pick_main_scene); - pick_main_scene->get_ok_button()->set_text(TTR("Select")); + pick_main_scene->set_ok_button_text(TTR("Select")); pick_main_scene->connect("confirmed", callable_mp(this, &EditorNode::_menu_option), varray(SETTINGS_PICK_MAIN_SCENE)); select_current_scene_button = pick_main_scene->add_button(TTR("Select Current"), true, "select_current"); pick_main_scene->connect("custom_action", callable_mp(this, &EditorNode::_pick_main_scene_custom_action)); diff --git a/editor/editor_node.h b/editor/editor_node.h index 48df767562..07d565314d 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -333,6 +333,7 @@ private: Button *play_scene_button = nullptr; Button *play_custom_scene_button = nullptr; Button *search_button = nullptr; + Button *write_movie_button = nullptr; TextureProgressBar *audio_vu = nullptr; Timer *screenshot_timer = nullptr; @@ -503,7 +504,7 @@ private: static void _load_error_notify(void *p_ud, const String &p_text); static void _file_access_close_error_notify(const String &p_str); - static void _print_handler(void *p_this, const String &p_string, bool p_error); + static void _print_handler(void *p_this, const String &p_string, bool p_error, bool p_rich); static void _resource_saved(Ref<Resource> p_resource, const String &p_path); static void _resource_loaded(Ref<Resource> p_resource, const String &p_path); @@ -667,7 +668,6 @@ private: void _pick_main_scene_custom_action(const String &p_custom_action_name); void _immediate_dialog_confirmed(); - void _select_default_main_screen_plugin(); void _bottom_panel_switch(bool p_enable, int p_idx); diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp index 639846861b..d9c2a42114 100644 --- a/editor/editor_plugin.cpp +++ b/editor/editor_plugin.cpp @@ -133,8 +133,7 @@ Vector<Ref<Texture2D>> EditorInterface::make_mesh_previews(const Vector<Ref<Mesh Main::iteration(); Ref<Image> img = RS::get_singleton()->texture_2d_get(viewport_texture); ERR_CONTINUE(!img.is_valid() || img->is_empty()); - Ref<ImageTexture> it(memnew(ImageTexture)); - it->create_from_image(img); + Ref<ImageTexture> it = ImageTexture::create_from_image(img); RS::get_singleton()->free(inst); diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index a5c02c70d9..aaa518362c 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -43,6 +43,7 @@ #include "scene/main/window.h" #include "scene/resources/font.h" #include "scene/resources/mesh.h" +#include "scene/resources/packed_scene.h" ///////////////////// Nil ///////////////////////// @@ -164,6 +165,9 @@ void EditorPropertyMultilineText::_notification(int p_what) { Ref<Font> font = get_theme_font(SNAME("font"), SNAME("Label")); int font_size = get_theme_font_size(SNAME("font_size"), SNAME("Label")); text->set_custom_minimum_size(Vector2(0, font->get_height(font_size) * 6)); + text->add_theme_font_override("font", get_theme_font("expression", "EditorFonts")); + text->add_theme_font_size_override("font_size", get_theme_font_size("expression_size", "EditorFonts")); + } break; } } @@ -171,7 +175,7 @@ void EditorPropertyMultilineText::_notification(int p_what) { void EditorPropertyMultilineText::_bind_methods() { } -EditorPropertyMultilineText::EditorPropertyMultilineText() { +EditorPropertyMultilineText::EditorPropertyMultilineText(bool p_expression) { HBoxContainer *hb = memnew(HBoxContainer); hb->add_theme_constant_override("separation", 0); add_child(hb); @@ -188,6 +192,12 @@ EditorPropertyMultilineText::EditorPropertyMultilineText() { hb->add_child(open_big_text); big_text_dialog = nullptr; big_text = nullptr; + if (p_expression) { + expression = true; + Ref<EditorStandardSyntaxHighlighter> highlighter; + highlighter.instantiate(); + text->set_syntax_highlighter(highlighter); + } } ///////////////////// TEXT ENUM ///////////////////////// @@ -826,7 +836,7 @@ EditorPropertyLayersGrid::EditorPropertyLayersGrid() { rename_dialog->add_child(rename_dialog_vb); rename_dialog_text = memnew(LineEdit); rename_dialog_vb->add_margin_child(TTR("Name:"), rename_dialog_text); - rename_dialog->get_ok_button()->set_text(TTR("Rename")); + rename_dialog->set_ok_button_text(TTR("Rename")); add_child(rename_dialog); rename_dialog->register_text_enter(rename_dialog_text); rename_dialog->connect("confirmed", callable_mp(this, &EditorPropertyLayersGrid::_rename_operation_confirm)); @@ -1294,7 +1304,7 @@ void EditorPropertyObjectID::update_property() { ObjectID id = get_edited_object()->get(get_edited_property()); if (id.is_valid()) { - edit->set_text(type + " ID: " + itos(id)); + edit->set_text(type + " ID: " + uitos(id)); edit->set_disabled(false); edit->set_icon(EditorNode::get_singleton()->get_class_icon(type)); } else { @@ -1318,6 +1328,54 @@ EditorPropertyObjectID::EditorPropertyObjectID() { edit->connect("pressed", callable_mp(this, &EditorPropertyObjectID::_edit_pressed)); } +///////////////////// SIGNAL ///////////////////////// + +void EditorPropertySignal::_edit_pressed() { + Signal signal = get_edited_object()->get(get_edited_property()); + emit_signal(SNAME("object_id_selected"), get_edited_property(), signal.get_object_id()); +} + +void EditorPropertySignal::update_property() { + String type = base_type; + + Signal signal = get_edited_object()->get(get_edited_property()); + + edit->set_text("Signal: " + signal.get_name()); + edit->set_disabled(false); + edit->set_icon(get_theme_icon(SNAME("Signals"), SNAME("EditorIcons"))); +} + +void EditorPropertySignal::_bind_methods() { +} + +EditorPropertySignal::EditorPropertySignal() { + edit = memnew(Button); + add_child(edit); + add_focusable(edit); + edit->connect("pressed", callable_mp(this, &EditorPropertySignal::_edit_pressed)); +} + +///////////////////// CALLABLE ///////////////////////// + +void EditorPropertyCallable::update_property() { + String type = base_type; + + Callable callable = get_edited_object()->get(get_edited_property()); + + edit->set_text("Callable"); + edit->set_disabled(true); + edit->set_icon(get_theme_icon(SNAME("Callable"), SNAME("EditorIcons"))); +} + +void EditorPropertyCallable::_bind_methods() { +} + +EditorPropertyCallable::EditorPropertyCallable() { + edit = memnew(Button); + add_child(edit); + add_focusable(edit); +} + ///////////////////// FLOAT ///////////////////////// void EditorPropertyFloat::_set_read_only(bool p_read_only) { @@ -2952,12 +3010,7 @@ void EditorPropertyColor::_popup_closed() { void EditorPropertyColor::_picker_created() { // get default color picker mode from editor settings int default_color_mode = EDITOR_GET("interface/inspector/default_color_picker_mode"); - if (default_color_mode == 1) { - picker->get_picker()->set_hsv_mode(true); - } else if (default_color_mode == 2) { - picker->get_picker()->set_raw_mode(true); - } - + picker->get_picker()->set_color_mode((ColorPicker::ColorModeType)default_color_mode); int picker_shape = EDITOR_GET("interface/inspector/default_color_picker_shape"); picker->get_picker()->set_picker_shape((ColorPicker::PickerShapeType)picker_shape); } @@ -3017,6 +3070,27 @@ void EditorPropertyNodePath::_set_read_only(bool p_read_only) { clear->set_disabled(p_read_only); }; +String EditorPropertyNodePath::_get_meta_pointer_property() const { + ERR_FAIL_COND_V(!pointer_mode, String()); + return SceneState::get_meta_pointer_property(get_edited_property()); +} + +Variant EditorPropertyNodePath::_get_cache_value(const StringName &p_prop, bool &r_valid) const { + if (p_prop == get_edited_property()) { + r_valid = true; + return const_cast<EditorPropertyNodePath *>(this)->get_edited_object()->get(pointer_mode ? StringName(_get_meta_pointer_property()) : get_edited_property(), &r_valid); + } + return Variant(); +} + +StringName EditorPropertyNodePath::_get_revert_property() const { + if (pointer_mode) { + return _get_meta_pointer_property(); + } else { + return get_edited_property(); + } +} + void EditorPropertyNodePath::_node_selected(const NodePath &p_path) { NodePath path = p_path; Node *base_node = nullptr; @@ -3048,7 +3122,11 @@ void EditorPropertyNodePath::_node_selected(const NodePath &p_path) { if (base_node) { // for AnimationTrackKeyEdit path = base_node->get_path().rel_path_to(p_path); } - emit_changed(get_edited_property(), path); + if (pointer_mode && base_node) { + emit_changed(_get_meta_pointer_property(), path); + } else { + emit_changed(get_edited_property(), path); + } update_property(); } @@ -3064,7 +3142,11 @@ void EditorPropertyNodePath::_node_assign() { } void EditorPropertyNodePath::_node_clear() { - emit_changed(get_edited_property(), NodePath()); + if (pointer_mode) { + emit_changed(_get_meta_pointer_property(), NodePath()); + } else { + emit_changed(get_edited_property(), NodePath()); + } update_property(); } @@ -3088,11 +3170,29 @@ bool EditorPropertyNodePath::is_drop_valid(const Dictionary &p_drag_data) const return false; } Array nodes = p_drag_data["nodes"]; - return nodes.size() == 1; + if (nodes.size() != 1) { + return false; + } + + Node *dropped_node = get_tree()->get_edited_scene_root()->get_node(nodes[0]); + ERR_FAIL_NULL_V(dropped_node, false); + + for (const StringName &E : valid_types) { + if (dropped_node->is_class(E)) { + return true; + } + } + + return false; } void EditorPropertyNodePath::update_property() { - NodePath p = get_edited_object()->get(get_edited_property()); + NodePath p; + if (pointer_mode) { + p = get_edited_object()->get(_get_meta_pointer_property()); + } else { + p = get_edited_object()->get(get_edited_property()); + } assign->set_tooltip(p); if (p == NodePath()) { @@ -3131,7 +3231,8 @@ void EditorPropertyNodePath::update_property() { assign->set_icon(EditorNode::get_singleton()->get_object_icon(target_node, "Node")); } -void EditorPropertyNodePath::setup(const NodePath &p_base_hint, Vector<StringName> p_valid_types, bool p_use_path_from_scene_root) { +void EditorPropertyNodePath::setup(const NodePath &p_base_hint, Vector<StringName> p_valid_types, bool p_use_path_from_scene_root, bool p_pointer_mode) { + pointer_mode = p_pointer_mode; base_hint = p_base_hint; valid_types = p_valid_types; use_path_from_scene_root = p_use_path_from_scene_root; @@ -3177,8 +3278,8 @@ EditorPropertyNodePath::EditorPropertyNodePath() { void EditorPropertyRID::update_property() { RID rid = get_edited_object()->get(get_edited_property()); if (rid.is_valid()) { - int id = rid.get_id(); - label->set_text("RID: " + itos(id)); + uint64_t id = rid.get_id(); + label->set_text("RID: " + uitos(id)); } else { label->set_text(TTR("Invalid RID")); } @@ -3601,7 +3702,7 @@ static EditorPropertyRangeHint _parse_range_hint(PropertyHint p_hint, const Stri hint.greater = true; } else if (slice == "or_lesser") { hint.lesser = true; - } else if (slice == "noslider") { + } else if (slice == "no_slider") { hint.hide_slider = true; } else if (slice == "exp") { hint.exp_range = true; @@ -3739,6 +3840,9 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_ } else if (p_hint == PROPERTY_HINT_MULTILINE_TEXT) { EditorPropertyMultilineText *editor = memnew(EditorPropertyMultilineText); return editor; + } else if (p_hint == PROPERTY_HINT_EXPRESSION) { + EditorPropertyMultilineText *editor = memnew(EditorPropertyMultilineText(true)); + return editor; } else if (p_hint == PROPERTY_HINT_TYPE_STRING) { EditorPropertyClassName *editor = memnew(EditorPropertyClassName); editor->setup("Object", p_hint_text); @@ -3747,11 +3851,11 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_ EditorPropertyLocale *editor = memnew(EditorPropertyLocale); editor->setup(p_hint_text); return editor; - } else if (p_hint == PROPERTY_HINT_DIR || p_hint == PROPERTY_HINT_FILE || p_hint == PROPERTY_HINT_SAVE_FILE || p_hint == PROPERTY_HINT_GLOBAL_DIR || p_hint == PROPERTY_HINT_GLOBAL_FILE) { + } else if (p_hint == PROPERTY_HINT_DIR || p_hint == PROPERTY_HINT_FILE || p_hint == PROPERTY_HINT_SAVE_FILE || p_hint == PROPERTY_HINT_GLOBAL_SAVE_FILE || p_hint == PROPERTY_HINT_GLOBAL_DIR || p_hint == PROPERTY_HINT_GLOBAL_FILE) { Vector<String> extensions = p_hint_text.split(","); - bool global = p_hint == PROPERTY_HINT_GLOBAL_DIR || p_hint == PROPERTY_HINT_GLOBAL_FILE; + bool global = p_hint == PROPERTY_HINT_GLOBAL_DIR || p_hint == PROPERTY_HINT_GLOBAL_FILE || p_hint == PROPERTY_HINT_GLOBAL_SAVE_FILE; bool folder = p_hint == PROPERTY_HINT_DIR || p_hint == PROPERTY_HINT_GLOBAL_DIR; - bool save = p_hint == PROPERTY_HINT_SAVE_FILE; + bool save = p_hint == PROPERTY_HINT_SAVE_FILE || p_hint == PROPERTY_HINT_GLOBAL_SAVE_FILE; EditorPropertyPath *editor = memnew(EditorPropertyPath); editor->setup(extensions, folder, global); if (save) { @@ -3927,24 +4031,40 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_ return editor; } break; case Variant::OBJECT: { - EditorPropertyResource *editor = memnew(EditorPropertyResource); - editor->setup(p_object, p_path, p_hint == PROPERTY_HINT_RESOURCE_TYPE ? p_hint_text : "Resource"); - - if (p_hint == PROPERTY_HINT_RESOURCE_TYPE) { - String open_in_new = EDITOR_GET("interface/inspector/resources_to_open_in_new_inspector"); - for (int i = 0; i < open_in_new.get_slice_count(","); i++) { - String type = open_in_new.get_slicec(',', i).strip_edges(); - for (int j = 0; j < p_hint_text.get_slice_count(","); j++) { - String inherits = p_hint_text.get_slicec(',', j); - if (ClassDB::is_parent_class(inherits, type)) { - editor->set_use_sub_inspector(false); + if (p_hint == PROPERTY_HINT_NODE_TYPE) { + EditorPropertyNodePath *editor = memnew(EditorPropertyNodePath); + Vector<String> types = p_hint_text.split(",", false); + Vector<StringName> sn = Variant(types); //convert via variant + editor->setup(NodePath(), sn, false, true); + return editor; + } else { + EditorPropertyResource *editor = memnew(EditorPropertyResource); + editor->setup(p_object, p_path, p_hint == PROPERTY_HINT_RESOURCE_TYPE ? p_hint_text : "Resource"); + + if (p_hint == PROPERTY_HINT_RESOURCE_TYPE) { + String open_in_new = EDITOR_GET("interface/inspector/resources_to_open_in_new_inspector"); + for (int i = 0; i < open_in_new.get_slice_count(","); i++) { + String type = open_in_new.get_slicec(',', i).strip_edges(); + for (int j = 0; j < p_hint_text.get_slice_count(","); j++) { + String inherits = p_hint_text.get_slicec(',', j); + if (ClassDB::is_parent_class(inherits, type)) { + editor->set_use_sub_inspector(false); + } } } } + + return editor; } + } break; + case Variant::CALLABLE: { + EditorPropertyCallable *editor = memnew(EditorPropertyCallable); + return editor; + } break; + case Variant::SIGNAL: { + EditorPropertySignal *editor = memnew(EditorPropertySignal); return editor; - } break; case Variant::DICTIONARY: { if (p_hint == PROPERTY_HINT_LOCALIZABLE_STRING) { diff --git a/editor/editor_properties.h b/editor/editor_properties.h index a3b98b7724..7bec2d0013 100644 --- a/editor/editor_properties.h +++ b/editor/editor_properties.h @@ -81,6 +81,7 @@ class EditorPropertyMultilineText : public EditorProperty { void _big_text_changed(); void _text_changed(); void _open_big_text(); + bool expression = false; protected: virtual void _set_read_only(bool p_read_only) override; @@ -89,7 +90,7 @@ protected: public: virtual void update_property() override; - EditorPropertyMultilineText(); + EditorPropertyMultilineText(bool p_expression = false); }; class EditorPropertyTextEnum : public EditorProperty { @@ -388,6 +389,33 @@ public: EditorPropertyObjectID(); }; +class EditorPropertySignal : public EditorProperty { + GDCLASS(EditorPropertySignal, EditorProperty); + Button *edit = nullptr; + String base_type; + void _edit_pressed(); + +protected: + static void _bind_methods(); + +public: + virtual void update_property() override; + EditorPropertySignal(); +}; + +class EditorPropertyCallable : public EditorProperty { + GDCLASS(EditorPropertyCallable, EditorProperty); + Button *edit = nullptr; + String base_type; + +protected: + static void _bind_methods(); + +public: + virtual void update_property() override; + EditorPropertyCallable(); +}; + class EditorPropertyFloat : public EditorProperty { GDCLASS(EditorPropertyFloat, EditorProperty); EditorSpinSlider *spin = nullptr; @@ -704,6 +732,7 @@ class EditorPropertyNodePath : public EditorProperty { SceneTreeDialog *scene_tree = nullptr; NodePath base_hint; bool use_path_from_scene_root = false; + bool pointer_mode = false; Vector<StringName> valid_types; void _node_selected(const NodePath &p_path); @@ -714,6 +743,10 @@ class EditorPropertyNodePath : public EditorProperty { void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from); bool is_drop_valid(const Dictionary &p_drag_data) const; + String _get_meta_pointer_property() const; + virtual Variant _get_cache_value(const StringName &p_prop, bool &r_valid) const override; + virtual StringName _get_revert_property() const override; + protected: virtual void _set_read_only(bool p_read_only) override; static void _bind_methods(); @@ -721,7 +754,7 @@ protected: public: virtual void update_property() override; - void setup(const NodePath &p_base_hint, Vector<StringName> p_valid_types, bool p_use_path_from_scene_root = true); + void setup(const NodePath &p_base_hint, Vector<StringName> p_valid_types, bool p_use_path_from_scene_root = true, bool p_pointer_mode = false); EditorPropertyNodePath(); }; diff --git a/editor/editor_property_name_processor.cpp b/editor/editor_property_name_processor.cpp index 397afc0653..09d2992e07 100644 --- a/editor/editor_property_name_processor.cpp +++ b/editor/editor_property_name_processor.cpp @@ -176,6 +176,7 @@ EditorPropertyNameProcessor::EditorPropertyNameProcessor() { capitalize_string_remaps["lowpass"] = "Low-pass"; capitalize_string_remaps["macos"] = "macOS"; capitalize_string_remaps["mb"] = "(MB)"; // Unit. + capitalize_string_remaps["mjpeg"] = "MJPEG"; capitalize_string_remaps["mms"] = "MMS"; capitalize_string_remaps["ms"] = "(ms)"; // Unit capitalize_string_remaps["msaa"] = "MSAA"; diff --git a/editor/editor_resource_picker.cpp b/editor/editor_resource_picker.cpp index 4d53ddb344..2e78b58e11 100644 --- a/editor/editor_resource_picker.cpp +++ b/editor/editor_resource_picker.cpp @@ -254,7 +254,7 @@ void EditorResourcePicker::_edit_menu_cbk(int p_which) { file_dialog->clear_filters(); for (const String &E : valid_extensions) { - file_dialog->add_filter("*." + E + " ; " + E.to_upper()); + file_dialog->add_filter("*." + E, E.to_upper()); } file_dialog->popup_file_dialog(); @@ -534,8 +534,6 @@ void EditorResourcePicker::_get_allowed_types(bool p_with_convert, HashSet<Strin p_vector->insert("Texture2D"); } else if (base == "ShaderMaterial") { p_vector->insert("Shader"); - } else if (base == "Font") { - p_vector->insert("FontData"); } else if (base == "Texture2D") { p_vector->insert("Image"); } @@ -675,22 +673,12 @@ void EditorResourcePicker::drop_data_fw(const Point2 &p_point, const Variant &p_ break; } - if (at == "Font" && Ref<FontData>(dropped_resource).is_valid()) { - Ref<Font> font = edited_resource; - if (!font.is_valid()) { - font.instantiate(); - } - font->add_data(dropped_resource); - dropped_resource = font; - break; - } - if (at == "Texture2D" && Ref<Image>(dropped_resource).is_valid()) { Ref<ImageTexture> texture = edited_resource; if (!texture.is_valid()) { texture.instantiate(); } - texture->create_from_image(dropped_resource); + texture->set_image(dropped_resource); dropped_resource = texture; break; } diff --git a/editor/editor_resource_preview.cpp b/editor/editor_resource_preview.cpp index dffb378408..b84e654d42 100644 --- a/editor/editor_resource_preview.cpp +++ b/editor/editor_resource_preview.cpp @@ -184,7 +184,7 @@ void EditorResourcePreview::_generate_preview(Ref<ImageTexture> &r_texture, Ref< small_image = small_image->duplicate(); small_image->resize(small_thumbnail_size, small_thumbnail_size, Image::INTERPOLATE_CUBIC); r_small_texture.instantiate(); - r_small_texture->create_from_image(small_image); + r_small_texture->set_image(small_image); } break; @@ -300,14 +300,14 @@ void EditorResourcePreview::_iterate() { cache_valid = false; } else { texture.instantiate(); - texture->create_from_image(img); + texture->set_image(img); if (has_small_texture) { if (small_img->load(cache_base + "_small.png") != OK) { cache_valid = false; } else { small_texture.instantiate(); - small_texture->create_from_image(small_img); + small_texture->set_image(small_img); } } } diff --git a/editor/editor_run.cpp b/editor/editor_run.cpp index 6a2ff50ee0..ba49c6dc5f 100644 --- a/editor/editor_run.cpp +++ b/editor/editor_run.cpp @@ -43,7 +43,7 @@ String EditorRun::get_running_scene() const { return running_scene; } -Error EditorRun::run(const String &p_scene) { +Error EditorRun::run(const String &p_scene, const String &p_write_movie) { List<String> args; String resource_path = ProjectSettings::get_singleton()->get_resource_path(); @@ -59,15 +59,30 @@ Error EditorRun::run(const String &p_scene) { args.push_back(itos(OS::get_singleton()->get_process_id())); bool debug_collisions = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_debug_collisons", false); + bool debug_paths = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_debug_paths", false); bool debug_navigation = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_debug_navigation", false); if (debug_collisions) { args.push_back("--debug-collisions"); } + if (debug_paths) { + args.push_back("--debug-paths"); + } + if (debug_navigation) { args.push_back("--debug-navigation"); } + if (p_write_movie != "") { + args.push_back("--write-movie"); + args.push_back(p_write_movie); + args.push_back("--fixed-fps"); + args.push_back(itos(GLOBAL_GET("editor/movie_writer/fps"))); + if (bool(GLOBAL_GET("editor/movie_writer/disable_vsync"))) { + args.push_back("--disable-vsync"); + } + } + int screen = EditorSettings::get_singleton()->get("run/window_placement/screen"); if (screen == 0) { // Same as editor diff --git a/editor/editor_run.h b/editor/editor_run.h index 50604ff032..4cbc6838e4 100644 --- a/editor/editor_run.h +++ b/editor/editor_run.h @@ -50,7 +50,7 @@ private: public: Status get_status() const; String get_running_scene() const; - Error run(const String &p_scene); + Error run(const String &p_scene, const String &p_write_movie = ""); void run_native_notify() { status = STATUS_PLAY; } void stop(); diff --git a/editor/editor_run_native.cpp b/editor/editor_run_native.cpp index 6ce9e5fa6f..854885c707 100644 --- a/editor/editor_run_native.cpp +++ b/editor/editor_run_native.cpp @@ -49,9 +49,7 @@ void EditorRunNative::_notification(int p_what) { im->clear_mipmaps(); if (!im->is_empty()) { im->resize(16 * EDSCALE, 16 * EDSCALE); - Ref<ImageTexture> small_icon; - small_icon.instantiate(); - small_icon->create_from_image(im); + Ref<ImageTexture> small_icon = ImageTexture::create_from_image(im); MenuButton *mb = memnew(MenuButton); mb->get_popup()->connect("id_pressed", callable_mp(this, &EditorRunNative::run_native), varray(i)); mb->connect("pressed", callable_mp(this, &EditorRunNative::run_native), varray(-1, i)); diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index db9193db06..fa8643af86 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -444,6 +444,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { // Inspector EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "interface/inspector/max_array_dictionary_items_per_page", 20, "10,100,1") + EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/inspector/show_low_level_opentype_features", false, "") // Theme EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_ENUM, "interface/theme/preset", "Default", "Default,Breeze Dark,Godot 2,Gray,Light,Solarized (Dark),Solarized (Light),Custom") @@ -542,6 +543,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("text_editor/behavior/navigation/scroll_past_end_of_file", false); _initial_set("text_editor/behavior/navigation/smooth_scrolling", true); EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "text_editor/behavior/navigation/v_scroll_speed", 80, "1,10000,1") + _initial_set("text_editor/behavior/navigation/drag_and_drop_selection", true); // Behavior: Indent EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "text_editor/behavior/indent/type", 0, "Tabs,Spaces") @@ -762,6 +764,7 @@ void EditorSettings::_load_godot2_text_editor_theme() { _initial_set("text_editor/theme/highlighting/completion_selected_color", Color(0.26, 0.26, 0.27)); _initial_set("text_editor/theme/highlighting/completion_existing_color", Color(0.87, 0.87, 0.87, 0.13)); _initial_set("text_editor/theme/highlighting/completion_scroll_color", Color(1, 1, 1, 0.29)); + _initial_set("text_editor/theme/highlighting/completion_scroll_hovered_color", Color(1, 1, 1, 0.4)); _initial_set("text_editor/theme/highlighting/completion_font_color", Color(0.67, 0.67, 0.67)); _initial_set("text_editor/theme/highlighting/text_color", Color(0.67, 0.67, 0.67)); _initial_set("text_editor/theme/highlighting/line_number_color", Color(0.67, 0.67, 0.67, 0.4)); diff --git a/editor/editor_settings_dialog.cpp b/editor/editor_settings_dialog.cpp index 3eb7d7ffbd..08ff63551f 100644 --- a/editor/editor_settings_dialog.cpp +++ b/editor/editor_settings_dialog.cpp @@ -772,7 +772,7 @@ EditorSettingsDialog::EditorSettingsDialog() { timer->set_one_shot(true); add_child(timer); EditorSettings::get_singleton()->connect("settings_changed", callable_mp(this, &EditorSettingsDialog::_settings_changed)); - get_ok_button()->set_text(TTR("Close")); + set_ok_button_text(TTR("Close")); } EditorSettingsDialog::~EditorSettingsDialog() { diff --git a/editor/editor_spin_slider.cpp b/editor/editor_spin_slider.cpp index a0c818ba84..c651d6bf6e 100644 --- a/editor/editor_spin_slider.cpp +++ b/editor/editor_spin_slider.cpp @@ -286,7 +286,7 @@ void EditorSpinSlider::_draw_spin_slider() { int sep_base = 4 * EDSCALE; int sep = sep_base + sb->get_offset().x; //make it have the same margin on both sides, looks better - int label_width = font->get_string_size(label, font_size).width; + int label_width = font->get_string_size(label, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).width; int number_width = size.width - sb->get_minimum_size().width - label_width - sep; Ref<Texture2D> updown = get_theme_icon(is_read_only() ? SNAME("updown_disabled") : SNAME("updown"), SNAME("SpinBox")); @@ -324,7 +324,10 @@ void EditorSpinSlider::_draw_spin_slider() { int suffix_start = numstr.length(); RID num_rid = TS->create_shaped_text(); - TS->shaped_text_add_string(num_rid, numstr + U"\u2009" + suffix, font->get_rids(), font_size); + TS->shaped_text_add_string(num_rid, numstr + U"\u2009" + suffix, font->get_rids(), font_size, font->get_opentype_features()); + for (int i = 0; i < TextServer::SPACING_MAX; i++) { + TS->shaped_text_set_spacing(num_rid, TextServer::SpacingType(i), font->get_spacing(TextServer::SpacingType(i))); + } float text_start = rtl ? Math::round(sb->get_offset().x) : Math::round(sb->get_offset().x + label_width + sep); Vector2 text_ofs = rtl ? Vector2(text_start + (number_width - TS->shaped_text_get_width(num_rid)), vofs) : Vector2(text_start, vofs); @@ -530,7 +533,7 @@ void EditorSpinSlider::_evaluate_input_text() { return; } - Variant v = expr->execute(Array(), nullptr, false); + Variant v = expr->execute(Array(), nullptr, false, true); if (v.get_type() == Variant::NIL) { return; } diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index 7a80cf36a8..13109478e4 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -97,7 +97,6 @@ static Ref<Texture2D> flip_icon(Ref<Texture2D> p_texture, bool p_flip_y = false, return p_texture; } - Ref<ImageTexture> texture(memnew(ImageTexture)); Ref<Image> img = p_texture->get_image(); ERR_FAIL_NULL_V(img, Ref<Texture2D>()); img = img->duplicate(); @@ -109,14 +108,12 @@ static Ref<Texture2D> flip_icon(Ref<Texture2D> p_texture, bool p_flip_y = false, img->flip_x(); } - texture->create_from_image(img); - return texture; + return ImageTexture::create_from_image(img); } #ifdef MODULE_SVG_ENABLED // See also `generate_icon()` in `scene/resources/default_theme.cpp`. static Ref<ImageTexture> editor_generate_icon(int p_index, bool p_convert_color, float p_scale = EDSCALE, float p_saturation = 1.0, Dictionary p_convert_colors = Dictionary()) { - Ref<ImageTexture> icon = memnew(ImageTexture); Ref<Image> img = memnew(Image); // Upsample icon generation only if the editor scale isn't an integer multiplier. @@ -129,9 +126,9 @@ static Ref<ImageTexture> editor_generate_icon(int p_index, bool p_convert_color, if (p_saturation != 1.0) { img->adjust_bcs(1.0, 1.0, p_saturation); } - icon->create_from_image(img); // in this case filter really helps - return icon; + // In this case filter really helps. + return ImageTexture::create_from_image(img); } #endif @@ -464,6 +461,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { Color icon_hover_color = icon_normal_color * (dark_theme ? 1.15 : 1.45); icon_hover_color.a = 1.0; Color icon_focus_color = icon_hover_color; + Color icon_disabled_color = Color(icon_normal_color, 0.4); // Make the pressed icon color overbright because icons are not completely white on a dark theme. // On a light theme, icons are dark, so we need to modulate them with an even brighter color. Color icon_pressed_color = accent_color * (dark_theme ? 1.15 : 3.5); @@ -738,10 +736,12 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_color("font_focus_color", "Button", font_focus_color); theme->set_color("font_pressed_color", "Button", accent_color); theme->set_color("font_disabled_color", "Button", font_disabled_color); + theme->set_color("icon_normal_color", "Button", icon_normal_color); theme->set_color("icon_hover_color", "Button", icon_hover_color); theme->set_color("icon_focus_color", "Button", icon_focus_color); theme->set_color("icon_pressed_color", "Button", icon_pressed_color); + theme->set_color("icon_disabled_color", "Button", icon_disabled_color); const float ACTION_BUTTON_EXTRA_MARGIN = 32 * EDSCALE; @@ -768,7 +768,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { // When pressed, don't tint the icons with the accent color, just leave them normal. theme->set_color("icon_pressed_color", "EditorLogFilterButton", icon_normal_color); // When unpressed, dim the icons. - theme->set_color("icon_normal_color", "EditorLogFilterButton", font_disabled_color); + theme->set_color("icon_normal_color", "EditorLogFilterButton", icon_disabled_color); // When pressed, add a small bottom border to the buttons to better show their active state, // similar to active tabs. Ref<StyleBoxFlat> editor_log_button_pressed = style_widget_pressed->duplicate(); @@ -805,8 +805,13 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_color("font_focus_color", "OptionButton", font_focus_color); theme->set_color("font_pressed_color", "OptionButton", accent_color); theme->set_color("font_disabled_color", "OptionButton", font_disabled_color); + + theme->set_color("icon_normal_color", "OptionButton", icon_normal_color); theme->set_color("icon_hover_color", "OptionButton", icon_hover_color); theme->set_color("icon_focus_color", "OptionButton", icon_focus_color); + theme->set_color("icon_pressed_color", "OptionButton", icon_pressed_color); + theme->set_color("icon_disabled_color", "OptionButton", icon_disabled_color); + theme->set_icon("arrow", "OptionButton", theme->get_icon(SNAME("GuiOptionArrow"), SNAME("EditorIcons"))); theme->set_constant("arrow_margin", "OptionButton", widget_default_margin.x - 2 * EDSCALE); theme->set_constant("modulate_arrow", "OptionButton", true); @@ -833,8 +838,12 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_color("font_focus_color", "CheckButton", font_focus_color); theme->set_color("font_pressed_color", "CheckButton", accent_color); theme->set_color("font_disabled_color", "CheckButton", font_disabled_color); + + theme->set_color("icon_normal_color", "CheckButton", icon_normal_color); theme->set_color("icon_hover_color", "CheckButton", icon_hover_color); theme->set_color("icon_focus_color", "CheckButton", icon_focus_color); + theme->set_color("icon_pressed_color", "CheckButton", icon_pressed_color); + theme->set_color("icon_disabled_color", "CheckButton", icon_disabled_color); theme->set_constant("h_separation", "CheckButton", 8 * EDSCALE); theme->set_constant("check_v_adjust", "CheckButton", 0 * EDSCALE); @@ -864,8 +873,12 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_color("font_focus_color", "CheckBox", font_focus_color); theme->set_color("font_pressed_color", "CheckBox", accent_color); theme->set_color("font_disabled_color", "CheckBox", font_disabled_color); + + theme->set_color("icon_normal_color", "CheckBox", icon_normal_color); theme->set_color("icon_hover_color", "CheckBox", icon_hover_color); theme->set_color("icon_focus_color", "CheckBox", icon_focus_color); + theme->set_color("icon_pressed_color", "CheckBox", icon_pressed_color); + theme->set_color("icon_disabled_color", "CheckBox", icon_disabled_color); theme->set_constant("h_separation", "CheckBox", 8 * EDSCALE); theme->set_constant("check_v_adjust", "CheckBox", 0 * EDSCALE); @@ -1667,6 +1680,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { const Color completion_existing_color = alpha2; // Same opacity as the scroll grabber editor icon. const Color completion_scroll_color = Color(mono_value, mono_value, mono_value, 0.29); + const Color completion_scroll_hovered_color = Color(mono_value, mono_value, mono_value, 0.4); const Color completion_font_color = font_color; const Color text_color = font_color; const Color line_number_color = dim_color; @@ -1705,6 +1719,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { setting->set_initial_value("text_editor/theme/highlighting/completion_selected_color", completion_selected_color, true); setting->set_initial_value("text_editor/theme/highlighting/completion_existing_color", completion_existing_color, true); setting->set_initial_value("text_editor/theme/highlighting/completion_scroll_color", completion_scroll_color, true); + setting->set_initial_value("text_editor/theme/highlighting/completion_scroll_hovered_color", completion_scroll_hovered_color, true); setting->set_initial_value("text_editor/theme/highlighting/completion_font_color", completion_font_color, true); setting->set_initial_value("text_editor/theme/highlighting/text_color", text_color, true); setting->set_initial_value("text_editor/theme/highlighting/line_number_color", line_number_color, true); @@ -1750,6 +1765,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_color("completion_selected_color", "CodeEdit", EDITOR_GET("text_editor/theme/highlighting/completion_selected_color")); theme->set_color("completion_existing_color", "CodeEdit", EDITOR_GET("text_editor/theme/highlighting/completion_existing_color")); theme->set_color("completion_scroll_color", "CodeEdit", EDITOR_GET("text_editor/theme/highlighting/completion_scroll_color")); + theme->set_color("completion_scroll_hovered_color", "CodeEdit", EDITOR_GET("text_editor/theme/highlighting/completion_scroll_hovered_color")); theme->set_color("completion_font_color", "CodeEdit", EDITOR_GET("text_editor/theme/highlighting/completion_font_color")); theme->set_color("font_color", "CodeEdit", EDITOR_GET("text_editor/theme/highlighting/text_color")); theme->set_color("line_number_color", "CodeEdit", EDITOR_GET("text_editor/theme/highlighting/line_number_color")); diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp index 4ca2e1fdbf..af9c918360 100644 --- a/editor/export_template_manager.cpp +++ b/editor/export_template_manager.cpp @@ -810,7 +810,7 @@ void ExportTemplateManager::_bind_methods() { ExportTemplateManager::ExportTemplateManager() { set_title(TTR("Export Template Manager")); set_hide_on_ok(false); - get_ok_button()->set_text(TTR("Close")); + set_ok_button_text(TTR("Close")); // Downloadable export templates are only available for stable and official alpha/beta/RC builds // (which always have a number following their status, e.g. "alpha1"). @@ -990,7 +990,7 @@ ExportTemplateManager::ExportTemplateManager() { install_file_dialog->set_title(TTR("Select Template File")); install_file_dialog->set_access(FileDialog::ACCESS_FILESYSTEM); install_file_dialog->set_file_mode(FileDialog::FILE_MODE_OPEN_FILE); - install_file_dialog->add_filter("*.tpz ; " + TTR("Godot Export Templates")); + install_file_dialog->add_filter("*.tpz", TTR("Godot Export Templates")); install_file_dialog->connect("file_selected", callable_mp(this, &ExportTemplateManager::_install_file_selected), varray(false)); add_child(install_file_dialog); diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index 3dd0044ab9..fe6e6044a4 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -43,6 +43,7 @@ #include "editor/editor_scale.h" #include "editor/editor_settings.h" #include "editor/import_dock.h" +#include "editor/scene_create_dialog.h" #include "editor/scene_tree_dock.h" #include "editor/shader_create_dialog.h" #include "scene/gui/label.h" @@ -1469,44 +1470,12 @@ void FileSystemDock::_make_dir_confirm() { } void FileSystemDock::_make_scene_confirm() { - String scene_name = make_scene_dialog_text->get_text().strip_edges(); - - if (scene_name.length() == 0) { - EditorNode::get_singleton()->show_warning(TTR("No name provided.")); - return; - } - - String directory = path; - if (!directory.ends_with("/")) { - directory = directory.get_base_dir(); - } - - String extension = scene_name.get_extension(); - List<String> extensions; - Ref<PackedScene> sd = memnew(PackedScene); - ResourceSaver::get_recognized_extensions(sd, &extensions); - - bool extension_correct = false; - for (const String &E : extensions) { - if (E == extension) { - extension_correct = true; - break; - } - } - if (!extension_correct) { - scene_name = scene_name.get_basename() + ".tscn"; - } - - scene_name = directory.plus_file(scene_name); - - Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_RESOURCES); - if (da->file_exists(scene_name)) { - EditorNode::get_singleton()->show_warning(TTR("A file or folder with this name already exists.")); - return; - } + const String scene_path = make_scene_dialog->get_scene_path(); int idx = EditorNode::get_singleton()->new_scene(); - EditorNode::get_singleton()->get_editor_data().set_scene_path(idx, scene_name); + EditorNode::get_singleton()->get_editor_data().set_scene_path(idx, scene_path); + EditorNode::get_singleton()->set_edited_scene(make_scene_dialog->create_scene_root()); + EditorNode::get_singleton()->save_scene_list({ scene_path }); } void FileSystemDock::_file_removed(String p_file) { @@ -2003,10 +1972,12 @@ void FileSystemDock::_file_option(int p_option, const Vector<String> &p_selected } break; case FILE_NEW_SCENE: { - make_scene_dialog_text->set_text("new scene"); - make_scene_dialog_text->select_all(); - make_scene_dialog->popup_centered(Size2(250, 80) * EDSCALE); - make_scene_dialog_text->grab_focus(); + String directory = path; + if (!directory.ends_with("/")) { + directory = directory.get_base_dir(); + } + make_scene_dialog->config(directory); + make_scene_dialog->popup_centered(); } break; case FILE_NEW_SCRIPT: { @@ -3174,7 +3145,7 @@ FileSystemDock::FileSystemDock() { add_child(remove_dialog); move_dialog = memnew(EditorDirDialog); - move_dialog->get_ok_button()->set_text(TTR("Move")); + move_dialog->set_ok_button_text(TTR("Move")); add_child(move_dialog); move_dialog->connect("dir_selected", callable_mp(this, &FileSystemDock::_move_operation_confirm), make_binds(false)); @@ -3184,13 +3155,13 @@ FileSystemDock::FileSystemDock() { rename_dialog_text = memnew(LineEdit); rename_dialog_vb->add_margin_child(TTR("Name:"), rename_dialog_text); - rename_dialog->get_ok_button()->set_text(TTR("Rename")); + rename_dialog->set_ok_button_text(TTR("Rename")); add_child(rename_dialog); rename_dialog->register_text_enter(rename_dialog_text); rename_dialog->connect("confirmed", callable_mp(this, &FileSystemDock::_rename_operation_confirm)); overwrite_dialog = memnew(ConfirmationDialog); - overwrite_dialog->get_ok_button()->set_text(TTR("Overwrite")); + overwrite_dialog->set_ok_button_text(TTR("Overwrite")); add_child(overwrite_dialog); overwrite_dialog->connect("confirmed", callable_mp(this, &FileSystemDock::_move_with_overwrite)); @@ -3200,7 +3171,7 @@ FileSystemDock::FileSystemDock() { duplicate_dialog_text = memnew(LineEdit); duplicate_dialog_vb->add_margin_child(TTR("Name:"), duplicate_dialog_text); - duplicate_dialog->get_ok_button()->set_text(TTR("Duplicate")); + duplicate_dialog->set_ok_button_text(TTR("Duplicate")); add_child(duplicate_dialog); duplicate_dialog->register_text_enter(duplicate_dialog_text); duplicate_dialog->connect("confirmed", callable_mp(this, &FileSystemDock::_duplicate_operation_confirm)); @@ -3216,15 +3187,8 @@ FileSystemDock::FileSystemDock() { make_dir_dialog->register_text_enter(make_dir_dialog_text); make_dir_dialog->connect("confirmed", callable_mp(this, &FileSystemDock::_make_dir_confirm)); - make_scene_dialog = memnew(ConfirmationDialog); - make_scene_dialog->set_title(TTR("Create Scene")); - VBoxContainer *make_scene_dialog_vb = memnew(VBoxContainer); - make_scene_dialog->add_child(make_scene_dialog_vb); - - make_scene_dialog_text = memnew(LineEdit); - make_scene_dialog_vb->add_margin_child(TTR("Name:"), make_scene_dialog_text); + make_scene_dialog = memnew(SceneCreateDialog); add_child(make_scene_dialog); - make_scene_dialog->register_text_enter(make_scene_dialog_text); make_scene_dialog->connect("confirmed", callable_mp(this, &FileSystemDock::_make_scene_confirm)); make_script_dialog = memnew(ScriptCreateDialog); diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index f20c0b2f76..f73e076ac0 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -47,6 +47,7 @@ #include "scene/gui/split_container.h" #include "scene/gui/tree.h" +class SceneCreateDialog; class ShaderCreateDialog; class FileSystemDock : public VBoxContainer { @@ -148,9 +149,8 @@ private: LineEdit *duplicate_dialog_text = nullptr; ConfirmationDialog *make_dir_dialog = nullptr; LineEdit *make_dir_dialog_text = nullptr; - ConfirmationDialog *make_scene_dialog = nullptr; - LineEdit *make_scene_dialog_text = nullptr; ConfirmationDialog *overwrite_dialog = nullptr; + SceneCreateDialog *make_scene_dialog = nullptr; ScriptCreateDialog *make_script_dialog = nullptr; ShaderCreateDialog *make_shader_dialog = nullptr; CreateDialog *new_resource_dialog = nullptr; diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp index e1c9689f73..81b71b5609 100644 --- a/editor/find_in_files.cpp +++ b/editor/find_in_files.cpp @@ -764,8 +764,8 @@ void FindInFilesPanel::draw_result_text(Object *item_obj, Rect2 rect) { int font_size = _results_display->get_theme_font_size(SNAME("font_size")); Rect2 match_rect = rect; - match_rect.position.x += font->get_string_size(item_text.left(r.begin_trimmed), font_size).x; - match_rect.size.x = font->get_string_size(_search_text_label->get_text(), font_size).x; + match_rect.position.x += font->get_string_size(item_text.left(r.begin_trimmed), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x; + match_rect.size.x = font->get_string_size(_search_text_label->get_text(), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x; match_rect.position.y += 1 * EDSCALE; match_rect.size.y -= 2 * EDSCALE; diff --git a/editor/groups_editor.cpp b/editor/groups_editor.cpp index 5dc81f623d..bca8c95574 100644 --- a/editor/groups_editor.cpp +++ b/editor/groups_editor.cpp @@ -568,7 +568,7 @@ GroupDialog::GroupDialog() { error = memnew(ConfirmationDialog); add_child(error); - error->get_ok_button()->set_text(TTR("Close")); + error->set_ok_button_text(TTR("Close")); _add_group_text_changed(""); } diff --git a/editor/icons/BaseButton.svg b/editor/icons/BaseButton.svg new file mode 100644 index 0000000000..9aa0ae1c07 --- /dev/null +++ b/editor/icons/BaseButton.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m5.5 9c-.831 0-1.5.669-1.5 1.5v1.5h-2v2h12v-2h-2v-1.5c0-.831-.669-1.5-1.5-1.5z" fill="#8eef97"/></svg> diff --git a/editor/icons/BoneMapHumanBody.svg b/editor/icons/BoneMapHumanBody.svg new file mode 100644 index 0000000000..2c2c5db1f6 --- /dev/null +++ b/editor/icons/BoneMapHumanBody.svg @@ -0,0 +1 @@ +<svg enable-background="new 0 0 1024 1024" height="1024" viewBox="0 0 1024 1024" width="1024" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h1024v1024h-1024z" fill="#3f3f3f"/><path d="m926.5 217.162c-11.5-2-26.03 4.547-37.5 6.5-15.723 2.678-25.238 3.24-33.333 5.167-1.227.292-3.103.763-5.792.958 0 0-.019.16-.052.437-36.819.994-106.823-6.062-138.156-2.062-23.816 3.041-86.334-5.667-105.667-6-13.911-.239-59.292-4.583-71.75-2.5-.667-4.083-1.5-10.75.95-17.468 14.881-7.246 27.229-21.569 35.341-38.467.922 4.424 6.252 4.929 12.459-14.231 5.662-17.478 2.324-22.254-2.313-22.525.172-2.056.279-4.105.313-6.142.788-48.041-15-78.667-69-78.667s-69.787 30.626-69 78.667c.033 2.036.141 4.086.313 6.142-4.637.271-7.975 5.048-2.313 22.525 6.207 19.16 11.537 18.655 12.459 14.231 8.113 16.897 20.461 31.221 35.342 38.467 2.449 6.718 1.617 13.385.949 17.468-12.457-2.083-57.838 2.261-71.75 2.5-19.332.333-81.85 9.041-105.666 6-31.333-4-101.337 3.056-138.156 2.062-.033-.276-.053-.437-.053-.437-2.689-.195-4.564-.666-5.791-.958-8.096-1.927-17.611-2.489-33.334-5.167-11.469-1.953-26-8.5-37.5-6.5-3.367.586 6 9.834 15.5 12.334 13.635 3.588 25.25 10.666 36 13.166-2.25 3.75-15.59 7.063-23 12-5.336 3.557 6.5 6.5 12 5 20.842-5.684 22.973.389 37.514-9.019 30.078 4.078 102.537 20.514 122.154 14.186 12.457-4.018 100.332 7.083 142.332 5.833 6.039-.18 1.656 65.563 2 73.5 3 69-16.842 133.135-18.666 169.667-1.92 38.42-3.42 57.919 7.666 131.333 6.967 46.126-2.521 82.079-2 94 6 137 29 172 4 221-14 27.44 67.449 26.958 65 9-3.012-22.092-12.666-22.333-10.666-46.333 1.896-22.768 16.049-151.298 8.666-206.667-2-15 0-26 2-66 2.355-47.101 7-88 14-123 7 35 11.645 75.899 14 123 2 40 4 51 2 66-7.383 55.369 6.77 183.899 8.667 206.667 2 24-7.654 24.241-10.667 46.333-2.449 17.958 79 18.44 65-9-25-49-2-84 4-221 .522-11.921-8.966-47.874-2-94 11.086-73.414 9.586-92.913 7.667-131.333-1.824-36.532-21.667-100.667-18.667-169.667.345-7.938-4.039-73.68 2-73.5 42 1.25 129.876-9.852 142.333-5.833 19.616 6.328 92.076-10.107 122.153-14.186 14.541 9.407 16.673 3.335 37.514 9.019 5.5 1.5 17.336-1.443 12-5-7.409-4.937-20.75-8.25-23-12 10.75-2.5 22.366-9.578 36.001-13.166 9.5-2.5 18.866-11.748 15.499-12.334z" fill="#b2b2b2"/></svg> diff --git a/editor/icons/BoneMapHumanFace.svg b/editor/icons/BoneMapHumanFace.svg new file mode 100644 index 0000000000..6cb21140bc --- /dev/null +++ b/editor/icons/BoneMapHumanFace.svg @@ -0,0 +1 @@ +<svg enable-background="new 0 0 1024 1024" height="1024" viewBox="0 0 1024 1024" width="1024" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h1024v1024h-1024z" fill="#3f3f3f"/><path d="m788.105 552.967c17.995-57.892 31.896-124.566 30.875-198.071-3.758-270.403-249.846-251.479-295.568-244.947-359.868 51.409-219.047 452.358-220.453 496.426-4.899 153.499 83.686 170.991 161.665 215.554 2.646 1.512 7.259 1.786 13.313 1.111 7.223 25.179 11.762 59.035 9.548 75.638-3.266 24.495 209.021 24.495 209.021 0 0-62.883 12.233-124.363 33.827-188.89 7.143-2.284 16.054-7.601 25.963-16.95 13.681-12.908 34.839-21.774 45.726-63.145 15.615-59.338 3.869-76.074-13.917-76.726z" fill="#b2b2b2"/></svg> diff --git a/editor/icons/BoneMapHumanLeftHand.svg b/editor/icons/BoneMapHumanLeftHand.svg new file mode 100644 index 0000000000..08c68bb4be --- /dev/null +++ b/editor/icons/BoneMapHumanLeftHand.svg @@ -0,0 +1 @@ +<svg enable-background="new 0 0 1024 1024" height="1024" viewBox="0 0 1024 1024" width="1024" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h1024v1024h-1024z" fill="#3f3f3f"/><path d="m703.906 786.098c7.046-66.929 28.135-153.363 18.529-260.192-1.143-12.71-4.5-48.282-4.46-82.732.025-21.174-2.111-48.505-1.975-64.174.167-19.333-.428-41.584-.625-55.755-1.052-75.44-13.225-85.827-30.813-85.827-17.246 0-26.77 14.266-27.062 84.582-.061 14.42.5 51 .5 58.5 0 17.508-.333 34.167 0 53.5.447 25.955-4.279 68-9 68-3.902 0-8.099-39.299-9.575-76.999-.756-19.326-3.219-58.336-2.6-70.102 1.759-33.413.474-58.914 1.537-90.165 3.183-93.607-13.016-111.729-34.695-111.729-21.973 0-35.979 57.688-34.849 114.224.128 6.394-1.165 50.739.188 89.859.754 21.811-1.07 49.627-1.683 69.67-1.095 35.768-5.755 63.896-8.869 63.896-2.641 0-4.135-32.584-5.456-65.706-.859-21.557-4.468-58.477-3.664-83.616 1.886-59.012-1.139-110.226-1.063-121.501.635-94.955-14.66-123.101-36.052-123.101-21.476 0-37.188 30.192-36.6 123.343.067 10.53-2.62 99.926-1.759 121.816.865 21.992-2.773 65.062-3.517 84.818-1.299 34.521-6.49 63.947-9.124 63.947-3.281 0-10.794-25.638-11.724-60.965-.587-22.275 1.231-50.99.624-70.688-1.257-40.707-3.175-64.631-3.877-99.708-1.945-97.182-16.352-106.289-38.142-106.289-17.957 0-32.453 28.673-32.657 115.03-.065 27.702-2.429 62.626-.315 94.329.805 12.081-.622 42.512-1.875 73.894-.799 20.007-1.102 47.501-1.137 63.775-.17 78.595-26.712 133.424-36.555 131.308-30.333-6.521-51.648-43.918-71.219-117.307-10.551-39.566-36.667-71.149-69.9-77.813-25.9-5.193-19.783 46.161-1.319 125.293 8.65 37.068 27.909 86.227 39.566 122.655 31.653 98.917 125.574 188.563 160.903 228.546 17.146 19.403 236.894 19.403 264.59 0 11.525-8.07 43.087-101.557 45.724-126.616z" fill="#b2b2b2"/></svg> diff --git a/editor/icons/BoneMapHumanRightHand.svg b/editor/icons/BoneMapHumanRightHand.svg new file mode 100644 index 0000000000..4e40af35d8 --- /dev/null +++ b/editor/icons/BoneMapHumanRightHand.svg @@ -0,0 +1 @@ +<svg enable-background="new 0 0 1024 1024" height="1024" viewBox="0 0 1024 1024" width="1024" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h1024v1024h-1024z" fill="#3f3f3f"/><path d="m320.094 786.098c-7.046-66.929-28.135-153.363-18.529-260.192 1.143-12.71 4.5-48.282 4.46-82.732-.025-21.174 2.111-48.505 1.975-64.174-.167-19.333.428-41.584.625-55.755 1.052-75.44 13.225-85.827 30.813-85.827 17.246 0 26.77 14.266 27.062 84.582.061 14.42-.5 51-.5 58.5 0 17.508.333 34.167 0 53.5-.447 25.955 4.279 68 9 68 3.902 0 8.099-39.299 9.575-76.999.756-19.326 3.219-58.336 2.6-70.102-1.759-33.413-.474-58.914-1.537-90.165-3.183-93.607 13.016-111.729 34.695-111.729 21.973 0 35.979 57.688 34.849 114.224-.128 6.394 1.165 50.739-.188 89.859-.754 21.811 1.07 49.627 1.683 69.67 1.095 35.768 5.755 63.896 8.869 63.896 2.641 0 4.135-32.584 5.456-65.706.859-21.557 4.468-58.477 3.664-83.616-1.886-59.012 1.139-110.226 1.063-121.501-.635-94.955 14.66-123.101 36.052-123.101 21.476 0 37.188 30.192 36.6 123.343-.067 10.53 2.62 99.926 1.759 121.816-.865 21.992 2.773 65.062 3.517 84.818 1.299 34.521 6.49 63.947 9.124 63.947 3.281 0 10.794-25.638 11.724-60.965.587-22.275-1.231-50.99-.624-70.688 1.257-40.707 3.176-64.631 3.877-99.708 1.945-97.182 16.352-106.289 38.142-106.289 17.957 0 32.453 28.673 32.657 115.03.065 27.702 2.429 62.626.314 94.329-.805 12.081.622 42.512 1.875 73.894.799 20.007 1.102 47.501 1.137 63.775.171 78.595 26.713 133.424 36.556 131.308 30.333-6.521 51.648-43.918 71.219-117.307 10.551-39.566 36.667-71.149 69.9-77.813 25.9-5.193 19.783 46.161 1.318 125.293-8.649 37.068-27.909 86.227-39.566 122.655-31.652 98.917-125.573 188.563-160.902 228.546-17.146 19.403-236.894 19.403-264.59 0-11.525-8.07-43.087-101.557-45.724-126.616z" fill="#b2b2b2"/></svg> diff --git a/editor/icons/BoneMapperHandle.svg b/editor/icons/BoneMapperHandle.svg new file mode 100644 index 0000000000..8c7d7e1d70 --- /dev/null +++ b/editor/icons/BoneMapperHandle.svg @@ -0,0 +1 @@ +<svg enable-background="new 0 0 12 12" height="12" viewBox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"><circle cx="6" cy="6" fill-opacity=".2941" r="5"/><circle cx="6" cy="6" fill="#fff" r="4"/></svg> diff --git a/editor/icons/BoneMapperHandleCircle.svg b/editor/icons/BoneMapperHandleCircle.svg new file mode 100644 index 0000000000..ecf97669b8 --- /dev/null +++ b/editor/icons/BoneMapperHandleCircle.svg @@ -0,0 +1 @@ +<svg enable-background="new 0 0 12 12" height="12" viewBox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"><circle cx="6" cy="6" fill="#fff" r="3"/></svg> diff --git a/editor/icons/BoneMapperHandleSelected.svg b/editor/icons/BoneMapperHandleSelected.svg new file mode 100644 index 0000000000..729a443f6e --- /dev/null +++ b/editor/icons/BoneMapperHandleSelected.svg @@ -0,0 +1 @@ +<svg enable-background="new -506.5 517.5 12 12" height="12" viewBox="-506.5 517.5 12 12" width="12" xmlns="http://www.w3.org/2000/svg"><circle cx="-500.5" cy="523.5" fill-opacity=".2941" r="5"/><g fill="#fff"><circle cx="-500.5" cy="523.5" r="4"/><path d="m-499.5 517.5h5v5h-1v-4h-4z"/><path d="m-494.5 524.5v5h-5v-1h4v-4z"/><path d="m-501.5 529.5h-5v-5h1v4h4z"/><path d="m-506.5 522.5v-5h5v1h-4v4z"/></g></svg> diff --git a/editor/icons/Font.svg b/editor/icons/Font.svg index 2c8d7cb43e..dda1aa577e 100644 --- a/editor/icons/Font.svg +++ b/editor/icons/Font.svg @@ -1 +1 @@ -<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#e0e0e0" transform="translate(0 -1036.4)"><path d="m1 1037.4h14v2h-14z"/><path d="m7 1037.4h2v14h-2z"/><path d="m5 1050.4h6v1h-6z"/><path d="m1037.4-2h4v1h-4z" transform="rotate(90)"/><path d="m1037.4-15h4v1h-4z" transform="rotate(90)"/><path d="m2 3v2a2 2 0 0 1 2-2z" transform="translate(0 1036.4)"/><path d="m12 3a2 2 0 0 1 2 2v-2z" transform="translate(0 1036.4)"/><path d="m5 1050.4a2 2 0 0 0 2-2v2z"/><path d="m11 1050.4a2 2 0 0 1 -2-2v2z"/></g></svg> +<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#e0e0e0"><path d="M1 1h14v2H1z"/><path d="M7 1h2v14H7z"/><path d="M5 14h6v1H5zM2 1v4H1V1zm13 0v4h-1V1zM2 3v2a2 2 0 0 1 2-2zm10 0a2 2 0 0 1 2 2V3zM5 14a2 2 0 0 0 2-2v2zm6 0a2 2 0 0 1-2-2v2z"/></g></svg> diff --git a/editor/icons/FontData.svg b/editor/icons/FontData.svg deleted file mode 100644 index 4cb6412081..0000000000 --- a/editor/icons/FontData.svg +++ /dev/null @@ -1 +0,0 @@ -<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m1 1v2 1h1a1 1 0 0 1 1-1h2v6a1 1 0 0 1 -1 1v1h1 2 1v-1a1 1 0 0 1 -1-1v-6h2a1 1 0 0 1 1 1h1v-1-2h-4-2zm0 5v2h2v-2zm0 3v2h2v-2zm0 3v2h2v-2zm3 0v2h2v-2z" fill="#e0e0e0"/><path d="m4 5v2 1h1a1 1 0 0 1 1-1h2v6a1 1 0 0 1 -1 1v1h1 2 1v-1a1 1 0 0 1 -1-1v-6h2a1 1 0 0 1 1 1h1v-1-2h-4-2z" fill="#ff5f5f"/></svg> diff --git a/editor/icons/FontFile.svg b/editor/icons/FontFile.svg new file mode 100644 index 0000000000..4b94fd0d74 --- /dev/null +++ b/editor/icons/FontFile.svg @@ -0,0 +1 @@ +<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M1.5 1v3h1a1 1 0 0 1 1-1h2v6a1 1 0 0 1-1 1v1h4v-1a1 1 0 0 1-1-1V3h2a1 1 0 0 1 1 1h1V1h-6Z" fill="#e0e0e0"/><path d="M4.5 5v3h1a1 1 0 0 1 1-1h2v6a1 1 0 0 1-1 1v1h4v-1a1 1 0 0 1-1-1V7h2a1 1 0 0 1 1 1h1V5h-6Z" fill="#ff5f5f"/></svg> diff --git a/editor/icons/FontVariation.svg b/editor/icons/FontVariation.svg new file mode 100644 index 0000000000..eaad049fce --- /dev/null +++ b/editor/icons/FontVariation.svg @@ -0,0 +1 @@ +<svg height="16" width="16" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="M2.437 1 1.379 4h1A.84 1.192 50 0 1 3.73 3h2L3.615 9a.84 1.192 50 0 1-1.352 1l-.353 1h4l.353-1a.84 1.192 50 0 1-.648-1l2.116-6h2a.84 1.192 50 0 1 .648 1h1l1.058-3h-6Z" fill="#e0e0e0"/><path d="m4.621 5-.705 2-.353 1h1a.84 1.192 49.998 0 1 1.353-1h2L5.8 13a.84 1.192 49.998 0 1-1.353 1l-.353 1h4l.353-1a.84 1.192 49.998 0 1-.647-1l2.116-6h2a.84 1.192 49.998 0 1 .647 1h1l.353-1 .705-2h-6Z" fill="#ff5f5f"/></svg> diff --git a/editor/icons/GeometryInstance3D.svg b/editor/icons/GeometryInstance3D.svg new file mode 100644 index 0000000000..759d5fe413 --- /dev/null +++ b/editor/icons/GeometryInstance3D.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m3 1a2 2 0 0 0 -2 2 2 2 0 0 0 1 1.7304688v6.5410152a2 2 0 0 0 -1 1.728516 2 2 0 0 0 2 2 2 2 0 0 0 1.7304688-1h6.5410152a2 2 0 0 0 1.728516 1 2 2 0 0 0 2-2 2 2 0 0 0 -1.03125-1.75h.03125v-6.5214844a2 2 0 0 0 1-1.7285156 2 2 0 0 0 -2-2 2 2 0 0 0 -1.730469 1h-6.5410154a2 2 0 0 0 -1.7285156-1zm1 3h1.4140625 3.5859375 2.271484a2 2 0 0 0 .728516.7304688v1.2695312 4.585938 1.414062h-1.414062-4.585938-1.2714844a2 2 0 0 0 -.7285156-.730469v-3.269531-2.5859375z" fill="#fc7f7f"/></svg> diff --git a/editor/icons/ImporterMeshInstance3D.svg b/editor/icons/ImporterMeshInstance3D.svg new file mode 100644 index 0000000000..7e7598ac2b --- /dev/null +++ b/editor/icons/ImporterMeshInstance3D.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#fc7f7f"><path d="m3 1a2 2 0 0 0 -2 2 2 2 0 0 0 1 1.7304688v6.5410152a2 2 0 0 0 -1 1.728516 2 2 0 0 0 2 2 2 2 0 0 0 1.7304688-1h6.5410152a2 2 0 0 0 1.728516 1 2 2 0 0 0 2-2 2 2 0 0 0 -1.03125-1.75h.03125v-6.5214844a2 2 0 0 0 1-1.7285156 2 2 0 0 0 -2-2 2 2 0 0 0 -1.730469 1h-6.5410154a2 2 0 0 0 -1.7285156-1zm1 3h1.4140625 3.5859375 2.271484a2 2 0 0 0 .728516.7304688v1.2695312 4.585938 1.414062h-1.414062-4.585938-1.2714844a2 2 0 0 0 -.7285156-.730469v-3.269531-2.5859375z"/><path d="m7 7h2v4h-2z"/><path d="m7 5h2v1h-2z"/></g></svg> diff --git a/editor/icons/MainMovieWrite.svg b/editor/icons/MainMovieWrite.svg new file mode 100644 index 0000000000..21464bb57c --- /dev/null +++ b/editor/icons/MainMovieWrite.svg @@ -0,0 +1 @@ +<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M8 2a6 6 0 0 0-6 6 6 6 0 0 0 6 6 6 6 0 0 0 4-1.535V14h.002a2 2 0 0 0 .266 1A2 2 0 0 0 14 16h1v-2h-.5a.5.5 0 0 1-.5-.5V8a6 6 0 0 0-6-6zm0 1a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1zm3.441 2a1 1 0 0 1 .89.5 1 1 0 0 1-.366 1.365 1 1 0 0 1-1.367-.365 1 1 0 0 1 .367-1.365A1 1 0 0 1 11.44 5zm-6.953.002a1 1 0 0 1 .547.133A1 1 0 0 1 5.402 6.5a1 1 0 0 1-1.367.365A1 1 0 0 1 3.67 5.5a1 1 0 0 1 .818-.498zM4.512 9a1 1 0 0 1 .89.5 1 1 0 0 1-.367 1.365A1 1 0 0 1 3.67 10.5a1 1 0 0 1 .365-1.365A1 1 0 0 1 4.512 9zm6.904.002a1 1 0 0 1 .549.133 1 1 0 0 1 .365 1.365 1 1 0 0 1-1.365.365 1 1 0 0 1-.367-1.365 1 1 0 0 1 .818-.498zM8 11a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1z" fill="#e0e0e0"/></svg> diff --git a/editor/icons/MultiplayerSpawner.svg b/editor/icons/MultiplayerSpawner.svg new file mode 100644 index 0000000000..68ffd3aab4 --- /dev/null +++ b/editor/icons/MultiplayerSpawner.svg @@ -0,0 +1 @@ +<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:none;fill-opacity:.996078;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:16.5;stroke-opacity:1;paint-order:stroke markers fill" d="M4.936 7.429A4 4 0 0 1 8 6a4 4 0 0 1 3.064 1.429M1.872 4.858A8 8 0 0 1 8 2a8 8 0 0 1 6.128 2.858"/><path d="M7 9v2H5v2h2v2h2v-2h2v-2H9V9Z" fill="#5fff97"/></svg> diff --git a/editor/icons/MultiplayerSynchronizer.svg b/editor/icons/MultiplayerSynchronizer.svg new file mode 100644 index 0000000000..1547ec5a2b --- /dev/null +++ b/editor/icons/MultiplayerSynchronizer.svg @@ -0,0 +1 @@ +<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#5fff97;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" d="M5 10h3l-2 4-2-4Z"/><path style="fill:#ff5f5f;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" d="M9 14h3l-2-4-2 4Z"/><path style="fill:none;fill-opacity:.996078;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:16.5;stroke-opacity:1;paint-order:stroke markers fill" d="M4.936 7.429A4 4 0 0 1 8 6a4 4 0 0 1 3.064 1.429M1.872 4.858A8 8 0 0 1 8 2a8 8 0 0 1 6.128 2.858"/></svg> diff --git a/editor/icons/Range.svg b/editor/icons/Range.svg new file mode 100644 index 0000000000..49311546b0 --- /dev/null +++ b/editor/icons/Range.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m7.8027344 2.7714844c-1.0905892.2029663-1.089037 1.7659969.00195 1.9667968l2.8808595.5761719.576172 2.8808594c.231158 1.3504655 2.264924.9453327 1.960937-.390625l-.7070279-3.5371094c-.039663-.1968491-.137665-.3771998-.28125-.5175781-.138135-.1351849-.312483-.2274468-.501953-.265625l-3.5371095-.7070312c-.1291868-.0278728-.262617-.0298643-.3925781-.0058594zm-3.9941406 4.2167968c-.6571498-.0349349-1.1683412.5633914-1.03125 1.2070313l.7070312 3.5371095c.079467.394998.3882047.703736.7832031.783203l3.5371094.707031c1.3359577.303987 1.7410905-1.729779.390625-1.960937l-2.8808594-.576172-.5761719-2.8808595c-.0369237-.1982539-.1329195-.3807141-.2753906-.5234375-.1744016-.1751556-.407488-.2795227-.6542968-.2929688z" fill="#8eef97"/></svg> diff --git a/editor/icons/VisualInstance3D.svg b/editor/icons/VisualInstance3D.svg new file mode 100644 index 0000000000..e5e43b59dd --- /dev/null +++ b/editor/icons/VisualInstance3D.svg @@ -0,0 +1 @@ +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#fc7f7f"><circle cx="3" cy="3" r="2"/><circle cx="13" cy="3" r="2"/><circle cx="13" cy="13" r="2"/><circle cx="3" cy="13" r="2"/></g></svg> diff --git a/editor/import/dynamic_font_import_settings.cpp b/editor/import/dynamic_font_import_settings.cpp index f7fe334828..ee13a1a9c1 100644 --- a/editor/import/dynamic_font_import_settings.cpp +++ b/editor/import/dynamic_font_import_settings.cpp @@ -41,50 +41,44 @@ /* Settings data */ /*************************************************************************/ -class DynamicFontImportSettingsData : public RefCounted { - GDCLASS(DynamicFontImportSettingsData, RefCounted) - friend class DynamicFontImportSettings; - - HashMap<StringName, Variant> settings; - HashMap<StringName, Variant> defaults; - List<ResourceImporter::ImportOption> options; - DynamicFontImportSettings *owner = nullptr; - - bool _set(const StringName &p_name, const Variant &p_value) { - if (defaults.has(p_name) && defaults[p_name] == p_value) { - settings.erase(p_name); - } else { - settings[p_name] = p_value; - } - return true; +bool DynamicFontImportSettingsData::_set(const StringName &p_name, const Variant &p_value) { + if (defaults.has(p_name) && defaults[p_name] == p_value) { + settings.erase(p_name); + } else { + settings[p_name] = p_value; } + return true; +} - bool _get(const StringName &p_name, Variant &r_ret) const { - if (settings.has(p_name)) { - r_ret = settings[p_name]; - return true; - } - if (defaults.has(p_name)) { - r_ret = defaults[p_name]; - return true; - } - return false; +bool DynamicFontImportSettingsData::_get(const StringName &p_name, Variant &r_ret) const { + if (settings.has(p_name)) { + r_ret = settings[p_name]; + return true; + } + if (defaults.has(p_name)) { + r_ret = defaults[p_name]; + return true; } + return false; +} - void _get_property_list(List<PropertyInfo> *p_list) const { - for (const List<ResourceImporter::ImportOption>::Element *E = options.front(); E; E = E->next()) { - if (owner && owner->import_settings_data.is_valid()) { - if (owner->import_settings_data->get("multichannel_signed_distance_field") && (E->get().option.name == "size" || E->get().option.name == "outline_size" || E->get().option.name == "oversampling")) { - continue; - } - if (!owner->import_settings_data->get("multichannel_signed_distance_field") && (E->get().option.name == "msdf_pixel_range" || E->get().option.name == "msdf_size")) { - continue; - } +void DynamicFontImportSettingsData::_get_property_list(List<PropertyInfo> *p_list) const { + for (const List<ResourceImporter::ImportOption>::Element *E = options.front(); E; E = E->next()) { + if (owner && owner->import_settings_data.is_valid()) { + if (owner->import_settings_data->get("multichannel_signed_distance_field") && (E->get().option.name == "size" || E->get().option.name == "outline_size" || E->get().option.name == "oversampling")) { + continue; + } + if (!owner->import_settings_data->get("multichannel_signed_distance_field") && (E->get().option.name == "msdf_pixel_range" || E->get().option.name == "msdf_size")) { + continue; } - p_list->push_back(E->get().option); } + p_list->push_back(E->get().option); } -}; +} + +Ref<FontFile> DynamicFontImportSettingsData::get_font() const { + return fd; +} /*************************************************************************/ /* Glyph ranges */ @@ -454,58 +448,32 @@ void DynamicFontImportSettings::_add_glyph_range_item(int32_t p_start, int32_t p void DynamicFontImportSettings::_main_prop_changed(const String &p_edited_property) { // Update font preview. - if (p_edited_property == "face_index") { - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_face_index(import_settings_data->get("face_index")); - } - } else if (p_edited_property == "antialiased") { - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_antialiased(import_settings_data->get("antialiased")); - } - } else if (p_edited_property == "generate_mipmaps") { - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_generate_mipmaps(import_settings_data->get("generate_mipmaps")); - } - } else if (p_edited_property == "multichannel_signed_distance_field") { - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_multichannel_signed_distance_field(import_settings_data->get("multichannel_signed_distance_field")); - } - _variation_selected(); - _variations_validate(); - } else if (p_edited_property == "msdf_pixel_range") { - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_msdf_pixel_range(import_settings_data->get("msdf_pixel_range")); - } - } else if (p_edited_property == "msdf_size") { - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_msdf_size(import_settings_data->get("msdf_size")); - } - } else if (p_edited_property == "force_autohinter") { - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_force_autohinter(import_settings_data->get("force_autohinter")); - } - } else if (p_edited_property == "hinting") { - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_hinting((TextServer::Hinting)import_settings_data->get("hinting").operator int()); - } - } else if (p_edited_property == "subpixel_positioning") { - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_subpixel_positioning((TextServer::SubpixelPositioning)import_settings_data->get("subpixel_positioning").operator int()); - } - } else if (p_edited_property == "embolden") { - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_embolden(import_settings_data->get("embolden")); - } - } else if (p_edited_property == "transform") { - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_transform(import_settings_data->get("transform")); - } - } else if (p_edited_property == "oversampling") { - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_oversampling(import_settings_data->get("oversampling")); + if (font_preview.is_valid()) { + if (p_edited_property == "antialiased") { + font_preview->set_antialiased(import_settings_data->get("antialiased")); + } else if (p_edited_property == "generate_mipmaps") { + font_preview->set_generate_mipmaps(import_settings_data->get("generate_mipmaps")); + } else if (p_edited_property == "multichannel_signed_distance_field") { + font_preview->set_multichannel_signed_distance_field(import_settings_data->get("multichannel_signed_distance_field")); + _variation_selected(); + _variations_validate(); + } else if (p_edited_property == "msdf_pixel_range") { + font_preview->set_msdf_pixel_range(import_settings_data->get("msdf_pixel_range")); + } else if (p_edited_property == "msdf_size") { + font_preview->set_msdf_size(import_settings_data->get("msdf_size")); + } else if (p_edited_property == "force_autohinter") { + font_preview->set_force_autohinter(import_settings_data->get("force_autohinter")); + } else if (p_edited_property == "hinting") { + font_preview->set_hinting((TextServer::Hinting)import_settings_data->get("hinting").operator int()); + } else if (p_edited_property == "subpixel_positioning") { + font_preview->set_subpixel_positioning((TextServer::SubpixelPositioning)import_settings_data->get("subpixel_positioning").operator int()); + } else if (p_edited_property == "oversampling") { + font_preview->set_oversampling(import_settings_data->get("oversampling")); } } + font_preview_label->add_theme_font_override("font", font_preview); + font_preview_label->add_theme_font_size_override("font_size", 200 * EDSCALE); font_preview_label->update(); } @@ -534,6 +502,7 @@ void DynamicFontImportSettings::_variation_add() { import_variation_data->options = options_variations; inspector_vars->edit(import_variation_data.ptr()); import_variation_data->notify_property_list_changed(); + import_variation_data->fd = font_main; vars_item->set_metadata(0, import_variation_data); @@ -548,6 +517,10 @@ void DynamicFontImportSettings::_variation_selected() { inspector_vars->edit(import_variation_data.ptr()); import_variation_data->notify_property_list_changed(); + + label_glyphs->set_text(TTR("Preloaded glyphs: ") + itos(import_variation_data->selected_glyphs.size())); + _range_selected(); + _change_text_opts(); } } @@ -611,63 +584,91 @@ void DynamicFontImportSettings::_variations_validate() { } /*************************************************************************/ -/* Page 3 callbacks: Text to select glyphs */ +/* Page 2.1 callbacks: Text to select glyphs */ /*************************************************************************/ void DynamicFontImportSettings::_change_text_opts() { - Vector<String> ftr = ftr_edit->get_text().split(","); - for (int i = 0; i < ftr.size(); i++) { - Vector<String> tokens = ftr[i].split("="); - if (tokens.size() == 2) { - text_edit->set_opentype_feature(tokens[0], tokens[1].to_int()); - } else if (tokens.size() == 1) { - text_edit->set_opentype_feature(tokens[0], 1); - } + Ref<DynamicFontImportSettingsData> import_variation_data; + + TreeItem *vars_item = vars_list->get_selected(); + if (vars_item) { + import_variation_data = vars_item->get_metadata(0); } - text_edit->set_language(lang_edit->get_text()); + if (import_variation_data.is_null()) { + return; + } + + Ref<FontVariation> font_main_text; + font_main_text.instantiate(); + font_main_text->set_base_font(font_main); + font_main_text->set_opentype_features(text_settings_data->get("opentype_features")); + font_main_text->set_variation_opentype(import_variation_data->get("variation_opentype")); + font_main_text->set_variation_embolden(import_variation_data->get("variation_embolden")); + font_main_text->set_variation_face_index(import_variation_data->get("variation_face_index")); + font_main_text->set_variation_transform(import_variation_data->get("variation_transform")); + + text_edit->add_theme_font_override("font", font_main_text); } void DynamicFontImportSettings::_glyph_clear() { - selected_glyphs.clear(); - label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(selected_glyphs.size())); + Ref<DynamicFontImportSettingsData> import_variation_data; + + TreeItem *vars_item = vars_list->get_selected(); + if (vars_item) { + import_variation_data = vars_item->get_metadata(0); + } + if (import_variation_data.is_null()) { + return; + } + + import_variation_data->selected_glyphs.clear(); + label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(import_variation_data->selected_glyphs.size())); _range_selected(); } void DynamicFontImportSettings::_glyph_text_selected() { - Dictionary ftrs; - Vector<String> ftr = ftr_edit->get_text().split(","); - for (int i = 0; i < ftr.size(); i++) { - Vector<String> tokens = ftr[i].split("="); - if (tokens.size() == 2) { - ftrs[tokens[0]] = tokens[1].to_int(); - } else if (tokens.size() == 1) { - ftrs[tokens[0]] = 1; - } - } + Ref<DynamicFontImportSettingsData> import_variation_data; + TreeItem *vars_item = vars_list->get_selected(); + if (vars_item) { + import_variation_data = vars_item->get_metadata(0); + } + if (import_variation_data.is_null()) { + return; + } RID text_rid = TS->create_shaped_text(); if (text_rid.is_valid()) { - TS->shaped_text_add_string(text_rid, text_edit->get_text(), font_main->get_rids(), 16, ftrs, text_edit->get_language()); + TS->shaped_text_add_string(text_rid, text_edit->get_text(), font_main->get_rids(), 16, text_settings_data->get("opentype_features"), text_settings_data->get("language")); TS->shaped_text_shape(text_rid); const Glyph *gl = TS->shaped_text_get_glyphs(text_rid); const int gl_size = TS->shaped_text_get_glyph_count(text_rid); for (int i = 0; i < gl_size; i++) { if (gl[i].font_rid.is_valid() && gl[i].index != 0) { - selected_glyphs.insert(gl[i].index); + import_variation_data->selected_glyphs.insert(gl[i].index); } } TS->free_rid(text_rid); - label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(selected_glyphs.size())); + label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(import_variation_data->selected_glyphs.size())); } _range_selected(); } /*************************************************************************/ -/* Page 4 callbacks: Character map */ +/* Page 2.2 callbacks: Character map */ /*************************************************************************/ void DynamicFontImportSettings::_glyph_selected() { + Ref<DynamicFontImportSettingsData> import_variation_data; + + TreeItem *vars_item = vars_list->get_selected(); + if (vars_item) { + import_variation_data = vars_item->get_metadata(0); + } + if (import_variation_data.is_null()) { + return; + } + TreeItem *item = glyph_table->get_selected(); ERR_FAIL_NULL(item); @@ -685,7 +686,7 @@ void DynamicFontImportSettings::_glyph_selected() { item->clear_custom_bg_color(glyph_table->get_selected_column()); } } - label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(selected_glyphs.size())); + label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(import_variation_data->selected_glyphs.size())); item = glyph_tree->get_selected(); ERR_FAIL_NULL(item); @@ -698,7 +699,7 @@ void DynamicFontImportSettings::_glyph_selected() { total_chars--; } - if (selected_chars.has(i)) { + if (import_variation_data->selected_chars.has(i)) { selected_count++; } } @@ -728,6 +729,16 @@ void DynamicFontImportSettings::_range_selected() { } void DynamicFontImportSettings::_edit_range(int32_t p_start, int32_t p_end) { + Ref<DynamicFontImportSettingsData> import_variation_data; + + TreeItem *vars_item = vars_list->get_selected(); + if (vars_item) { + import_variation_data = vars_item->get_metadata(0); + } + if (import_variation_data.is_null()) { + return; + } + glyph_table->clear(); TreeItem *root = glyph_table->create_item(); @@ -740,6 +751,8 @@ void DynamicFontImportSettings::_edit_range(int32_t p_start, int32_t p_end) { TreeItem *item = nullptr; int col = 0; + Ref<Font> font_main_big = font_main->duplicate(); + for (int32_t c = p_start; c <= p_end; c++) { if (col == 0) { item = glyph_table->create_item(root); @@ -752,7 +765,7 @@ void DynamicFontImportSettings::_edit_range(int32_t p_start, int32_t p_end) { if (font_main->has_char(c)) { item->set_text(col + 1, String::chr(c)); item->set_custom_color(col + 1, Color(1, 1, 1)); - if (selected_chars.has(c) || (font_main->get_data(0).is_valid() && selected_glyphs.has(font_main->get_data(0)->get_glyph_index(get_theme_font_size(SNAME("font_size")) * 2, c)))) { + if (import_variation_data->selected_chars.has(c) || import_variation_data->selected_glyphs.has(font_main->get_glyph_index(16, c))) { item->set_custom_color(col + 1, fcol); item->set_custom_bg_color(col + 1, scol); } else { @@ -765,7 +778,8 @@ void DynamicFontImportSettings::_edit_range(int32_t p_start, int32_t p_end) { item->set_metadata(col + 1, c); item->set_text_alignment(col + 1, HORIZONTAL_ALIGNMENT_CENTER); item->set_selectable(col + 1, true); - item->set_custom_font(col + 1, font_main); + + item->set_custom_font(col + 1, font_main_big); item->set_custom_font_size(col + 1, get_theme_font_size(SNAME("font_size")) * 2); col++; @@ -773,41 +787,61 @@ void DynamicFontImportSettings::_edit_range(int32_t p_start, int32_t p_end) { col = 0; } } - label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(selected_glyphs.size())); + label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(import_variation_data->selected_glyphs.size())); } bool DynamicFontImportSettings::_char_update(int32_t p_char) { - if (selected_chars.has(p_char)) { - selected_chars.erase(p_char); + Ref<DynamicFontImportSettingsData> import_variation_data; + + TreeItem *vars_item = vars_list->get_selected(); + if (vars_item) { + import_variation_data = vars_item->get_metadata(0); + } + if (import_variation_data.is_null()) { return false; - } else if (font_main->get_data(0).is_valid() && selected_glyphs.has(font_main->get_data(0)->get_glyph_index(get_theme_font_size(SNAME("font_size")) * 2, p_char))) { - selected_glyphs.erase(font_main->get_data(0)->get_glyph_index(get_theme_font_size(SNAME("font_size")) * 2, p_char)); + } + + if (import_variation_data->selected_chars.has(p_char)) { + import_variation_data->selected_chars.erase(p_char); + return false; + } else if (font_main.is_valid() && font_main.is_valid() && import_variation_data->selected_glyphs.has(font_main->get_glyph_index(16, p_char))) { + import_variation_data->selected_glyphs.erase(font_main->get_glyph_index(16, p_char)); return false; } else { - selected_chars.insert(p_char); + import_variation_data->selected_chars.insert(p_char); return true; } } void DynamicFontImportSettings::_range_update(int32_t p_start, int32_t p_end) { + Ref<DynamicFontImportSettingsData> import_variation_data; + + TreeItem *vars_item = vars_list->get_selected(); + if (vars_item) { + import_variation_data = vars_item->get_metadata(0); + } + if (import_variation_data.is_null()) { + return; + } + bool all_selected = true; for (int32_t i = p_start; i <= p_end; i++) { if (font_main->has_char(i)) { - if (font_main->get_data(0).is_valid()) { - all_selected = all_selected && (selected_chars.has(i) || (font_main->get_data(0).is_valid() && selected_glyphs.has(font_main->get_data(0)->get_glyph_index(get_theme_font_size(SNAME("font_size")) * 2, i)))); + if (font_main.is_valid()) { + all_selected = all_selected && (import_variation_data->selected_chars.has(i) || import_variation_data->selected_glyphs.has(font_main->get_glyph_index(16, i))); } else { - all_selected = all_selected && selected_chars.has(i); + all_selected = all_selected && import_variation_data->selected_chars.has(i); } } } for (int32_t i = p_start; i <= p_end; i++) { if (font_main->has_char(i)) { if (!all_selected) { - selected_chars.insert(i); + import_variation_data->selected_chars.insert(i); } else { - selected_chars.erase(i); - if (font_main->get_data(0).is_valid()) { - selected_glyphs.erase(font_main->get_data(0)->get_glyph_index(get_theme_font_size(SNAME("font_size")) * 2, i)); + import_variation_data->selected_chars.erase(i); + if (font_main.is_valid()) { + import_variation_data->selected_glyphs.erase(font_main->get_glyph_index(16, i)); } } } @@ -820,106 +854,6 @@ void DynamicFontImportSettings::_range_update(int32_t p_start, int32_t p_end) { } /*************************************************************************/ -/* Page 5 callbacks: CMetadata override */ -/*************************************************************************/ - -void DynamicFontImportSettings::_lang_add() { - locale_select->popup_locale_dialog(); -} - -void DynamicFontImportSettings::_lang_add_item(const String &p_locale) { - TreeItem *lang_item = lang_list->create_item(lang_list_root); - ERR_FAIL_NULL(lang_item); - - lang_item->set_cell_mode(0, TreeItem::CELL_MODE_CHECK); - lang_item->set_editable(0, true); - lang_item->set_checked(0, false); - lang_item->set_text(1, p_locale); - lang_item->set_editable(1, true); - lang_item->add_button(2, lang_list->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), BUTTON_REMOVE_VAR, false, TTR("Remove")); - lang_item->set_button_color(2, 0, Color(1, 1, 1, 0.75)); -} - -void DynamicFontImportSettings::_lang_remove(Object *p_item, int p_column, int p_id, MouseButton p_button) { - if (p_button != MouseButton::LEFT) { - return; - } - - TreeItem *lang_item = (TreeItem *)p_item; - ERR_FAIL_NULL(lang_item); - - lang_list_root->remove_child(lang_item); - memdelete(lang_item); -} - -void DynamicFontImportSettings::_ot_add() { - menu_ot->set_position(ot_list->get_screen_transform().xform(ot_list->get_local_mouse_position())); - menu_ot->set_size(Vector2(1, 1)); - menu_ot->popup(); -} - -void DynamicFontImportSettings::_ot_add_item(int p_option) { - String name = TS->tag_to_name(p_option); - for (TreeItem *ot_item = ot_list_root->get_first_child(); ot_item; ot_item = ot_item->get_next()) { - if (ot_item->get_text(0) == name) { - return; - } - } - TreeItem *ot_item = ot_list->create_item(ot_list_root); - ERR_FAIL_NULL(ot_item); - - ot_item->set_text(0, name); - ot_item->set_editable(0, false); - ot_item->set_text(1, "1"); - ot_item->set_editable(1, true); - ot_item->add_button(2, ot_list->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), BUTTON_REMOVE_VAR, false, TTR("Remove")); - ot_item->set_button_color(2, 0, Color(1, 1, 1, 0.75)); -} - -void DynamicFontImportSettings::_ot_remove(Object *p_item, int p_column, int p_id, MouseButton p_button) { - if (p_button != MouseButton::LEFT) { - return; - } - - TreeItem *ot_item = (TreeItem *)p_item; - ERR_FAIL_NULL(ot_item); - - ot_list_root->remove_child(ot_item); - memdelete(ot_item); -} - -void DynamicFontImportSettings::_script_add() { - menu_scripts->set_position(script_list->get_screen_position() + script_list->get_local_mouse_position()); - menu_scripts->reset_size(); - menu_scripts->popup(); -} - -void DynamicFontImportSettings::_script_add_item(int p_option) { - TreeItem *script_item = script_list->create_item(script_list_root); - ERR_FAIL_NULL(script_item); - - script_item->set_cell_mode(0, TreeItem::CELL_MODE_CHECK); - script_item->set_editable(0, true); - script_item->set_checked(0, false); - script_item->set_text(1, script_codes[p_option]); - script_item->set_editable(1, true); - script_item->add_button(2, lang_list->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), BUTTON_REMOVE_VAR, false, TTR("Remove")); - script_item->set_button_color(2, 0, Color(1, 1, 1, 0.75)); -} - -void DynamicFontImportSettings::_script_remove(Object *p_item, int p_column, int p_id, MouseButton p_button) { - if (p_button != MouseButton::LEFT) { - return; - } - - TreeItem *script_item = (TreeItem *)p_item; - ERR_FAIL_NULL(script_item); - - script_list_root->remove_child(script_item); - memdelete(script_item); -} - -/*************************************************************************/ /* Common */ /*************************************************************************/ @@ -938,10 +872,7 @@ void DynamicFontImportSettings::_notification(int p_what) { case NOTIFICATION_ENTER_TREE: case NOTIFICATION_THEME_CHANGED: { - add_lang->set_icon(add_var->get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); - add_script->set_icon(add_var->get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); add_var->set_icon(add_var->get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); - add_ot->set_icon(add_var->get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); } break; } } @@ -958,90 +889,40 @@ void DynamicFontImportSettings::_re_import() { main_settings["force_autohinter"] = import_settings_data->get("force_autohinter"); main_settings["hinting"] = import_settings_data->get("hinting"); main_settings["subpixel_positioning"] = import_settings_data->get("subpixel_positioning"); - main_settings["embolden"] = import_settings_data->get("embolden"); - main_settings["transform"] = import_settings_data->get("transform"); main_settings["oversampling"] = import_settings_data->get("oversampling"); + main_settings["fallbacks"] = import_settings_data->get("fallbacks"); main_settings["compress"] = import_settings_data->get("compress"); - Vector<String> variations; + Array configurations; for (TreeItem *vars_item = vars_list_root->get_first_child(); vars_item; vars_item = vars_item->get_next()) { - String variation; Ref<DynamicFontImportSettingsData> import_variation_data = vars_item->get_metadata(0); ERR_FAIL_NULL(import_variation_data); - String name = vars_item->get_text(0); - variation += ("name=" + name); + Dictionary preload_config; + preload_config["name"] = vars_item->get_text(0); + for (const KeyValue<StringName, Variant> &E : import_variation_data->settings) { - if (!variation.is_empty()) { - variation += ","; - } - variation += (String(E.key) + "=" + String(E.value)); - } - variations.push_back(variation); - } - main_settings["preload/configurations"] = variations; - - Vector<String> langs_enabled; - Vector<String> langs_disabled; - for (TreeItem *lang_item = lang_list_root->get_first_child(); lang_item; lang_item = lang_item->get_next()) { - bool selected = lang_item->is_checked(0); - String name = lang_item->get_text(1); - if (selected) { - langs_enabled.push_back(name); - } else { - langs_disabled.push_back(name); + preload_config[E.key] = E.value; } - } - main_settings["support_overrides/language_enabled"] = langs_enabled; - main_settings["support_overrides/language_disabled"] = langs_disabled; - - Vector<String> scripts_enabled; - Vector<String> scripts_disabled; - for (TreeItem *script_item = script_list_root->get_first_child(); script_item; script_item = script_item->get_next()) { - bool selected = script_item->is_checked(0); - String name = script_item->get_text(1); - if (selected) { - scripts_enabled.push_back(name); - } else { - scripts_disabled.push_back(name); - } - } - main_settings["support_overrides/script_enabled"] = scripts_enabled; - main_settings["support_overrides/script_disabled"] = scripts_disabled; - - if (!selected_chars.is_empty()) { - Vector<String> ranges; - char32_t start = selected_chars.front()->get(); - for (RBSet<char32_t>::Element *E = selected_chars.front()->next(); E; E = E->next()) { - if (E->prev() && ((E->prev()->get() + 1) != E->get())) { - ranges.push_back(String("0x") + String::num_int64(start, 16) + String("-0x") + String::num_int64(E->prev()->get(), 16)); - start = E->get(); - } + + Array chars; + for (const char32_t &E : import_variation_data->selected_chars) { + chars.push_back(E); } - ranges.push_back(String("0x") + String::num_int64(start, 16) + String("-0x") + String::num_int64(selected_chars.back()->get(), 16)); - main_settings["preload/char_ranges"] = ranges; - } + preload_config["chars"] = chars; - if (!selected_glyphs.is_empty()) { - Vector<String> ranges; - int32_t start = selected_glyphs.front()->get(); - for (RBSet<int32_t>::Element *E = selected_glyphs.front()->next(); E; E = E->next()) { - if (E->prev() && ((E->prev()->get() + 1) != E->get())) { - ranges.push_back(String("0x") + String::num_int64(start, 16) + String("-0x") + String::num_int64(E->prev()->get(), 16)); - start = E->get(); - } + Array glyphs; + for (const int32_t &E : import_variation_data->selected_glyphs) { + glyphs.push_back(E); } - ranges.push_back(String("0x") + String::num_int64(start, 16) + String("-0x") + String::num_int64(selected_glyphs.back()->get(), 16)); - main_settings["preload/glyph_ranges"] = ranges; - } + preload_config["glyphs"] = glyphs; - Dictionary ot_ov; - for (TreeItem *ot_item = ot_list_root->get_first_child(); ot_item; ot_item = ot_item->get_next()) { - String tag = ot_item->get_text(0); - int32_t value = ot_item->get_text(1).to_int(); - ot_ov[tag] = value; + configurations.push_back(preload_config); } - main_settings["opentype_feature_overrides"] = ot_ov; + main_settings["preload"] = configurations; + main_settings["language_support"] = import_settings_data->get("language_support"); + main_settings["script_support"] = import_settings_data->get("script_support"); + main_settings["opentype_features"] = import_settings_data->get("opentype_features"); if (OS::get_singleton()->is_stdout_verbose()) { print_line("Import settings:"); @@ -1058,33 +939,33 @@ void DynamicFontImportSettings::open_settings(const String &p_path) { Vector<uint8_t> data = FileAccess::get_file_as_array(p_path); // Load font for preview. - Ref<FontData> dfont_prev; - dfont_prev.instantiate(); - dfont_prev->set_data(data); - font_preview.instantiate(); - font_preview->add_data(dfont_prev); + font_preview->set_data(data); + String font_name = vformat("%s (%s)", font_preview->get_font_name(), font_preview->get_font_style_name()); String sample; static const String sample_base = U"12漢字ԱբΑαАбΑαאבابܐܒހށआআਆઆଆஆఆಆആආกิກິༀကႠა한글ሀᎣᐁᚁᚠᜀᜠᝀᝠកᠠᤁᥐAb😀"; for (int i = 0; i < sample_base.length(); i++) { - if (dfont_prev->has_char(sample_base[i])) { + if (font_preview->has_char(sample_base[i])) { sample += sample_base[i]; } } if (sample.is_empty()) { - sample = dfont_prev->get_supported_chars().substr(0, 6); + sample = font_preview->get_supported_chars().substr(0, 6); } font_preview_label->set_text(sample); - // Load second copy of font with MSDF disabled for the glyph table and metadata extraction. - Ref<FontData> dfont_main; - dfont_main.instantiate(); - dfont_main->set_data(data); - dfont_main->set_multichannel_signed_distance_field(false); + Ref<Font> bold_font = get_theme_font(SNAME("bold"), SNAME("EditorFonts")); + if (bold_font.is_valid() && bold_font.is_valid()) { + font_name_label->add_theme_font_override("bold_font", bold_font); + } + font_name_label->set_text(font_name); + // Load second copy of font with MSDF disabled for the glyph table and metadata extraction. font_main.instantiate(); - font_main->add_data(dfont_main); + font_main->set_data(data); + font_main->set_multichannel_signed_distance_field(false); + text_edit->add_theme_font_override("font", font_main); base_path = p_path; @@ -1092,35 +973,27 @@ void DynamicFontImportSettings::open_settings(const String &p_path) { inspector_vars->edit(nullptr); inspector_general->edit(nullptr); - int gww = get_theme_font(SNAME("font"))->get_string_size("00000", get_theme_font_size(SNAME("font_size"))).x + 50; + text_settings_data.instantiate(); + ERR_FAIL_NULL(text_settings_data); + + text_settings_data->owner = this; + + for (List<ResourceImporter::ImportOption>::Element *F = options_text.front(); F; F = F->next()) { + text_settings_data->defaults[F->get().option.name] = F->get().default_value; + } + + text_settings_data->fd = font_main; + text_settings_data->options = options_text; + + inspector_text->edit(text_settings_data.ptr()); + + int gww = get_theme_font(SNAME("font"))->get_string_size("00000").x + 50; glyph_table->set_column_custom_minimum_width(0, gww); glyph_table->clear(); vars_list->clear(); - lang_list->clear(); - script_list->clear(); - ot_list->clear(); - - selected_chars.clear(); - selected_glyphs.clear(); - text_edit->set_text(String()); vars_list_root = vars_list->create_item(); - lang_list_root = lang_list->create_item(); - script_list_root = script_list->create_item(); - ot_list_root = ot_list->create_item(); - - options_variations.clear(); - Dictionary var_list = dfont_main->get_supported_variation_list(); - for (int i = 0; i < var_list.size(); i++) { - int32_t tag = var_list.get_key_at_index(i); - Vector3i value = var_list.get_value_at_index(i); - options_variations.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::FLOAT, TS->tag_to_name(tag), PROPERTY_HINT_RANGE, itos(value.x) + "," + itos(value.y) + ",1"), value.z)); - } - options_variations.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "size", PROPERTY_HINT_RANGE, "0,127,1"), 16)); - options_variations.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "outline_size", PROPERTY_HINT_RANGE, "0,127,1"), 0)); - options_variations.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "extra_spacing_glyph"), 0)); - options_variations.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "extra_spacing_space"), 0)); import_settings_data->defaults.clear(); for (List<ResourceImporter::ImportOption>::Element *E = options_general.front(); E; E = E->next()) { @@ -1139,157 +1012,58 @@ void DynamicFontImportSettings::open_settings(const String &p_path) { for (List<String>::Element *E = keys.front(); E; E = E->next()) { String key = E->get(); print_verbose(String(" ") + key + " == " + String(config->get_value("params", key))); - if (key == "preload/char_ranges") { - Vector<String> ranges = config->get_value("params", key); - for (int i = 0; i < ranges.size(); i++) { - int32_t start, end; - Vector<String> tokens = ranges[i].split("-"); - if (tokens.size() == 2) { - if (!ResourceImporterDynamicFont::_decode_range(tokens[0], start) || !ResourceImporterDynamicFont::_decode_range(tokens[1], end)) { - WARN_PRINT("Invalid range: \"" + ranges[i] + "\""); - continue; - } - } else if (tokens.size() == 1) { - if (!ResourceImporterDynamicFont::_decode_range(tokens[0], start)) { - WARN_PRINT("Invalid range: \"" + ranges[i] + "\""); - continue; - } - end = start; - } else { - WARN_PRINT("Invalid range: \"" + ranges[i] + "\""); - continue; - } - for (int32_t j = start; j <= end; j++) { - selected_chars.insert(j); - } - } - } else if (key == "preload/glyph_ranges") { - Vector<String> ranges = config->get_value("params", key); - for (int i = 0; i < ranges.size(); i++) { - int32_t start, end; - Vector<String> tokens = ranges[i].split("-"); - if (tokens.size() == 2) { - if (!ResourceImporterDynamicFont::_decode_range(tokens[0], start) || !ResourceImporterDynamicFont::_decode_range(tokens[1], end)) { - WARN_PRINT("Invalid range: \"" + ranges[i] + "\""); - continue; - } - } else if (tokens.size() == 1) { - if (!ResourceImporterDynamicFont::_decode_range(tokens[0], start)) { - WARN_PRINT("Invalid range: \"" + ranges[i] + "\""); - continue; - } - end = start; - } else { - WARN_PRINT("Invalid range: \"" + ranges[i] + "\""); - continue; - } - for (int32_t j = start; j <= end; j++) { - selected_glyphs.insert(j); - } - } - } else if (key == "preload/configurations") { - Vector<String> variations = config->get_value("params", key); - for (int i = 0; i < variations.size(); i++) { + if (key == "preload") { + Array preload_configurations = config->get_value("params", key); + for (int i = 0; i < preload_configurations.size(); i++) { + Dictionary preload_config = preload_configurations[i]; + + Dictionary variation = preload_config.has("variation_opentype") ? preload_config["variation_opentype"].operator Dictionary() : Dictionary(); + double embolden = preload_config.has("variation_embolden") ? preload_config["variation_embolden"].operator double() : 0; + int face_index = preload_config.has("variation_face_index") ? preload_config["variation_face_index"].operator int() : 0; + Transform2D transform = preload_config.has("variation_transform") ? preload_config["variation_transform"].operator Transform2D() : Transform2D(); + Vector2i size = preload_config.has("size") ? preload_config["size"].operator Vector2i() : Vector2i(16, 0); + String cfg_name = preload_config.has("name") ? preload_config["name"].operator String() : vformat("Configuration %d", i); + TreeItem *vars_item = vars_list->create_item(vars_list_root); ERR_FAIL_NULL(vars_item); - vars_item->set_text(0, TTR("Configuration") + " " + itos(i)); + vars_item->set_text(0, cfg_name); vars_item->set_editable(0, true); vars_item->add_button(1, vars_list->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), BUTTON_REMOVE_VAR, false, TTR("Remove Variation")); vars_item->set_button_color(1, 0, Color(1, 1, 1, 0.75)); Ref<DynamicFontImportSettingsData> import_variation_data_custom; import_variation_data_custom.instantiate(); - import_variation_data_custom->owner = this; ERR_FAIL_NULL(import_variation_data_custom); + import_variation_data_custom->owner = this; for (List<ResourceImporter::ImportOption>::Element *F = options_variations.front(); F; F = F->next()) { import_variation_data_custom->defaults[F->get().option.name] = F->get().default_value; } - import_variation_data_custom->options = options_variations; + import_variation_data_custom->fd = font_main; + import_variation_data_custom->options = options_variations; vars_item->set_metadata(0, import_variation_data_custom); - Vector<String> variation_tags = variations[i].split(","); - for (int j = 0; j < variation_tags.size(); j++) { - Vector<String> tokens = variation_tags[j].split("="); - if (tokens[0] == "name") { - vars_item->set_text(0, tokens[1]); - } else if (tokens[0] == "size" || tokens[0] == "outline_size" || tokens[0] == "extra_spacing_space" || tokens[0] == "extra_spacing_glyph") { - import_variation_data_custom->set(tokens[0], tokens[1].to_int()); - } else { - import_variation_data_custom->set(tokens[0], tokens[1].to_float()); - } + + import_variation_data_custom->set("size", size.x); + import_variation_data_custom->set("outline_size", size.y); + import_variation_data_custom->set("variation_opentype", variation); + import_variation_data_custom->set("variation_embolden", embolden); + import_variation_data_custom->set("variation_face_index", face_index); + import_variation_data_custom->set("variation_transform", transform); + + Array chars = preload_config["chars"]; + for (int j = 0; j < chars.size(); j++) { + char32_t c = chars[j].operator int(); + import_variation_data_custom->selected_chars.insert(c); } - } - } else if (key == "support_overrides/language_enabled") { - PackedStringArray _langs = config->get_value("params", key); - for (int i = 0; i < _langs.size(); i++) { - TreeItem *lang_item = lang_list->create_item(lang_list_root); - ERR_FAIL_NULL(lang_item); - - lang_item->set_cell_mode(0, TreeItem::CELL_MODE_CHECK); - lang_item->set_editable(0, true); - lang_item->set_checked(0, true); - lang_item->set_text(1, _langs[i]); - lang_item->set_editable(1, true); - lang_item->add_button(2, lang_list->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), BUTTON_REMOVE_VAR, false, TTR("Remove")); - } - } else if (key == "support_overrides/language_disabled") { - PackedStringArray _langs = config->get_value("params", key); - for (int i = 0; i < _langs.size(); i++) { - TreeItem *lang_item = lang_list->create_item(lang_list_root); - ERR_FAIL_NULL(lang_item); - - lang_item->set_cell_mode(0, TreeItem::CELL_MODE_CHECK); - lang_item->set_editable(0, true); - lang_item->set_checked(0, false); - lang_item->set_text(1, _langs[i]); - lang_item->set_editable(1, true); - lang_item->add_button(2, lang_list->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), BUTTON_REMOVE_VAR, false, TTR("Remove")); - } - } else if (key == "support_overrides/script_enabled") { - PackedStringArray _scripts = config->get_value("params", key); - for (int i = 0; i < _scripts.size(); i++) { - TreeItem *script_item = script_list->create_item(script_list_root); - ERR_FAIL_NULL(script_item); - - script_item->set_cell_mode(0, TreeItem::CELL_MODE_CHECK); - script_item->set_editable(0, true); - script_item->set_checked(0, true); - script_item->set_text(1, _scripts[i]); - script_item->set_editable(1, true); - script_item->add_button(2, lang_list->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), BUTTON_REMOVE_VAR, false, TTR("Remove")); - } - } else if (key == "support_overrides/script_disabled") { - PackedStringArray _scripts = config->get_value("params", key); - for (int i = 0; i < _scripts.size(); i++) { - TreeItem *script_item = script_list->create_item(script_list_root); - ERR_FAIL_NULL(script_item); - - script_item->set_cell_mode(0, TreeItem::CELL_MODE_CHECK); - script_item->set_editable(0, true); - script_item->set_checked(0, false); - script_item->set_text(1, _scripts[i]); - script_item->set_editable(1, true); - script_item->add_button(2, lang_list->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), BUTTON_REMOVE_VAR, false, TTR("Remove")); - } - } else if (key == "opentype_feature_overrides") { - Dictionary features = config->get_value("params", key); - for (const Variant *ftr = features.next(nullptr); ftr != nullptr; ftr = features.next(ftr)) { - TreeItem *ot_item = ot_list->create_item(ot_list_root); - ERR_FAIL_NULL(ot_item); - int32_t value = features[*ftr]; - if (ftr->get_type() == Variant::STRING) { - ot_item->set_text(0, *ftr); - } else { - ot_item->set_text(0, TS->tag_to_name(*ftr)); + + Array glyphs = preload_config["glyphs"]; + for (int j = 0; j < glyphs.size(); j++) { + int32_t c = glyphs[j]; + import_variation_data_custom->selected_glyphs.insert(c); } - ot_item->set_editable(0, false); - ot_item->set_text(1, itos(value)); - ot_item->set_editable(1, true); - ot_item->add_button(2, ot_list->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), BUTTON_REMOVE_VAR, false, TTR("Remove")); - ot_item->set_button_color(2, 0, Color(1, 1, 1, 0.75)); } } else { Variant value = config->get_value("params", key); @@ -1297,61 +1071,26 @@ void DynamicFontImportSettings::open_settings(const String &p_path) { } } } - label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(selected_glyphs.size())); + import_settings_data->fd = font_main; import_settings_data->options = options_general; inspector_general->edit(import_settings_data.ptr()); import_settings_data->notify_property_list_changed(); - if (font_preview->get_data_count() > 0) { - font_preview->get_data(0)->set_face_index(import_settings_data->get("face_index")); - font_preview->get_data(0)->set_antialiased(import_settings_data->get("antialiased")); - font_preview->get_data(0)->set_multichannel_signed_distance_field(import_settings_data->get("multichannel_signed_distance_field")); - font_preview->get_data(0)->set_msdf_pixel_range(import_settings_data->get("msdf_pixel_range")); - font_preview->get_data(0)->set_msdf_size(import_settings_data->get("msdf_size")); - font_preview->get_data(0)->set_force_autohinter(import_settings_data->get("force_autohinter")); - font_preview->get_data(0)->set_hinting((TextServer::Hinting)import_settings_data->get("hinting").operator int()); - font_preview->get_data(0)->set_subpixel_positioning((TextServer::SubpixelPositioning)import_settings_data->get("subpixel_positioning").operator int()); - font_preview->get_data(0)->set_embolden(import_settings_data->get("embolden")); - font_preview->get_data(0)->set_transform(import_settings_data->get("transform")); - font_preview->get_data(0)->set_oversampling(import_settings_data->get("oversampling")); + if (font_preview.is_valid()) { + font_preview->set_antialiased(import_settings_data->get("antialiased")); + font_preview->set_multichannel_signed_distance_field(import_settings_data->get("multichannel_signed_distance_field")); + font_preview->set_msdf_pixel_range(import_settings_data->get("msdf_pixel_range")); + font_preview->set_msdf_size(import_settings_data->get("msdf_size")); + font_preview->set_force_autohinter(import_settings_data->get("force_autohinter")); + font_preview->set_hinting((TextServer::Hinting)import_settings_data->get("hinting").operator int()); + font_preview->set_subpixel_positioning((TextServer::SubpixelPositioning)import_settings_data->get("subpixel_positioning").operator int()); + font_preview->set_oversampling(import_settings_data->get("oversampling")); } font_preview_label->add_theme_font_override("font", font_preview); + font_preview_label->add_theme_font_size_override("font_size", 200 * EDSCALE); font_preview_label->update(); - menu_ot->clear(); - menu_ot_ss->clear(); - menu_ot_cv->clear(); - menu_ot_cu->clear(); - bool have_ss = false; - bool have_cv = false; - bool have_cu = false; - Dictionary features = font_preview->get_feature_list(); - for (const Variant *ftr = features.next(nullptr); ftr != nullptr; ftr = features.next(ftr)) { - String ftr_name = TS->tag_to_name(*ftr); - if (ftr_name.begins_with("stylistic_set_")) { - menu_ot_ss->add_item(ftr_name.capitalize(), (int32_t)*ftr); - have_ss = true; - } else if (ftr_name.begins_with("character_variant_")) { - menu_ot_cv->add_item(ftr_name.capitalize(), (int32_t)*ftr); - have_cv = true; - } else if (ftr_name.begins_with("custom_")) { - menu_ot_cu->add_item(ftr_name.replace("custom_", ""), (int32_t)*ftr); - have_cu = true; - } else { - menu_ot->add_item(ftr_name.capitalize(), (int32_t)*ftr); - } - } - if (have_ss) { - menu_ot->add_submenu_item(RTR("Stylistic Sets"), "SSMenu"); - } - if (have_cv) { - menu_ot->add_submenu_item(RTR("Character Variants"), "CVMenu"); - } - if (have_cu) { - menu_ot->add_submenu_item(RTR("Custom"), "CUMenu"); - } - _variations_validate(); popup_centered_ratio(); @@ -1366,7 +1105,8 @@ DynamicFontImportSettings *DynamicFontImportSettings::get_singleton() { DynamicFontImportSettings::DynamicFontImportSettings() { singleton = this; - options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "face_index"), 0)); + options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::NIL, "Rendering", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_GROUP), Variant())); + options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "antialiased"), true)); options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "generate_mipmaps"), false)); options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "multichannel_signed_distance_field", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), true)); @@ -1375,44 +1115,29 @@ DynamicFontImportSettings::DynamicFontImportSettings() { options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "force_autohinter"), false)); options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "hinting", PROPERTY_HINT_ENUM, "None,Light,Normal"), 1)); options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "subpixel_positioning", PROPERTY_HINT_ENUM, "Disabled,Auto,One half of a pixel,One quarter of a pixel"), 1)); - options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::FLOAT, "embolden", PROPERTY_HINT_RANGE, "-2,2,0.01"), 0.f)); - options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::TRANSFORM2D, "transform"), Transform2D())); options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::FLOAT, "oversampling", PROPERTY_HINT_RANGE, "0,10,0.1"), 0.0)); - options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "compress", PROPERTY_HINT_NONE, ""), false)); - - // Popup menus - - locale_select = memnew(EditorLocaleDialog); - locale_select->connect("locale_selected", callable_mp(this, &DynamicFontImportSettings::_lang_add_item)); - add_child(locale_select); - menu_scripts = memnew(PopupMenu); - menu_scripts->set_name("Script"); - script_codes = TranslationServer::get_singleton()->get_all_scripts(); - for (int i = 0; i < script_codes.size(); i++) { - menu_scripts->add_item(TranslationServer::get_singleton()->get_script_name(script_codes[i]) + " (" + script_codes[i] + ")", i); - } - add_child(menu_scripts); - menu_scripts->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_script_add_item)); + options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::NIL, "Metadata Overrides", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_GROUP), Variant())); + options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::DICTIONARY, "language_support"), Dictionary())); + options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::DICTIONARY, "script_support"), Dictionary())); + options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::DICTIONARY, "opentype_features"), Dictionary())); - menu_ot = memnew(PopupMenu); - add_child(menu_ot); - menu_ot->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add_item)); + options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::NIL, "Fallbacks", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_GROUP), Variant())); + options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::ARRAY, "fallbacks", PROPERTY_HINT_ARRAY_TYPE, vformat("%s/%s:%s", Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "Font")), Array())); - menu_ot_cv = memnew(PopupMenu); - menu_ot_cv->set_name("CVMenu"); - menu_ot->add_child(menu_ot_cv); - menu_ot_cv->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add_item)); + options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::NIL, "Compress", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_GROUP), Variant())); + options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "compress", PROPERTY_HINT_NONE, ""), false)); - menu_ot_ss = memnew(PopupMenu); - menu_ot_ss->set_name("SSMenu"); - menu_ot->add_child(menu_ot_ss); - menu_ot_ss->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add_item)); + options_text.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::DICTIONARY, "opentype_features"), Dictionary())); + options_text.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::STRING, "language", PROPERTY_HINT_LOCALE_ID, ""), "")); - menu_ot_cu = memnew(PopupMenu); - menu_ot_cu->set_name("CUMenu"); - menu_ot->add_child(menu_ot_cu); - menu_ot_cu->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add_item)); + options_variations.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "size", PROPERTY_HINT_RANGE, "0,127,1"), 16)); + options_variations.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "outline_size", PROPERTY_HINT_RANGE, "0,127,1"), 0)); + options_variations.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::NIL, "Variation", PROPERTY_HINT_NONE, "variation", PROPERTY_USAGE_GROUP), Variant())); + options_variations.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::DICTIONARY, "variation_opentype"), Dictionary())); + options_variations.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::FLOAT, "variation_embolden", PROPERTY_HINT_RANGE, "-2,2,0.01"), 0)); + options_variations.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "variation_face_index"), 0)); + options_variations.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::TRANSFORM2D, "variation_transform"), Transform2D())); Color warn_color = (EditorNode::get_singleton()) ? EditorNode::get_singleton()->get_gui_base()->get_theme_color(SNAME("warning_color"), SNAME("Editor")) : Color(1, 1, 0); @@ -1442,7 +1167,7 @@ DynamicFontImportSettings::DynamicFontImportSettings() { main_pages->add_child(page1_vb); page1_description = memnew(Label); - page1_description->set_text(TTR("Select font rendering options:")); + page1_description->set_text(TTR("Select font rendering options, fallback font, and metadata override:")); page1_description->set_h_size_flags(Control::SIZE_EXPAND_FILL); page1_vb->add_child(page1_description); @@ -1451,15 +1176,25 @@ DynamicFontImportSettings::DynamicFontImportSettings() { page1_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL); page1_vb->add_child(page1_hb); + VBoxContainer *page1_lbl_vb = memnew(VBoxContainer); + page1_lbl_vb->set_v_size_flags(Control::SIZE_EXPAND_FILL); + page1_lbl_vb->set_h_size_flags(Control::SIZE_EXPAND_FILL); + page1_hb->add_child(page1_lbl_vb); + + font_name_label = memnew(Label); + font_name_label->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER); + font_name_label->set_clip_text(true); + font_name_label->set_h_size_flags(Control::SIZE_EXPAND_FILL); + page1_lbl_vb->add_child(font_name_label); + font_preview_label = memnew(Label); - font_preview_label->add_theme_font_size_override("font_size", 200 * EDSCALE); font_preview_label->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER); font_preview_label->set_vertical_alignment(VERTICAL_ALIGNMENT_CENTER); font_preview_label->set_autowrap_mode(TextServer::AUTOWRAP_ARBITRARY); font_preview_label->set_clip_text(true); font_preview_label->set_v_size_flags(Control::SIZE_EXPAND_FILL); font_preview_label->set_h_size_flags(Control::SIZE_EXPAND_FILL); - page1_hb->add_child(font_preview_label); + page1_lbl_vb->add_child(font_preview_label); inspector_general = memnew(EditorInspector); inspector_general->set_v_size_flags(Control::SIZE_EXPAND_FILL); @@ -1469,11 +1204,11 @@ DynamicFontImportSettings::DynamicFontImportSettings() { // Page 2 layout: Configurations VBoxContainer *page2_vb = memnew(VBoxContainer); - page2_vb->set_name(TTR("Sizes and Variations")); + page2_vb->set_name(TTR("Pre-render configurations")); main_pages->add_child(page2_vb); page2_description = memnew(Label); - page2_description->set_text(TTR("Add font size, variation coordinates, and extra spacing combinations to pre-render:")); + page2_description->set_text(TTR("Add font size, and variation coordinates, and select glyphs to pre-render:")); page2_description->set_h_size_flags(Control::SIZE_EXPAND_FILL); page2_description->set_autowrap_mode(TextServer::AUTOWRAP_WORD_SMART); page2_vb->add_child(page2_description); @@ -1517,48 +1252,44 @@ 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)); - page2_hb->add_child(inspector_vars); - - // Page 3 layout: Text to select glyphs - VBoxContainer *page3_vb = memnew(VBoxContainer); - page3_vb->set_name(TTR("Glyphs from the Text")); - main_pages->add_child(page3_vb); + page2_side_vb->add_child(inspector_vars); - page3_description = memnew(Label); - page3_description->set_text(TTR("Enter a text to shape and add all required glyphs to pre-render list:")); - page3_description->set_h_size_flags(Control::SIZE_EXPAND_FILL); - page3_description->set_autowrap_mode(TextServer::AUTOWRAP_WORD_SMART); - page3_vb->add_child(page3_description); + preload_pages = memnew(TabContainer); + preload_pages->set_tab_alignment(TabBar::ALIGNMENT_CENTER); + preload_pages->set_v_size_flags(Control::SIZE_EXPAND_FILL); + preload_pages->set_h_size_flags(Control::SIZE_EXPAND_FILL); + page2_hb->add_child(preload_pages); - HBoxContainer *ot_hb = memnew(HBoxContainer); - page3_vb->add_child(ot_hb); - ot_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL); + // Page 2.1 layout: Text to select glyphs + VBoxContainer *page2_1_vb = memnew(VBoxContainer); + page2_1_vb->set_name(TTR("Glyphs from the Text")); + preload_pages->add_child(page2_1_vb); - Label *label_ed_ftr = memnew(Label); - ot_hb->add_child(label_ed_ftr); - label_ed_ftr->set_text(TTR("OpenType features:")); + page2_1_description = memnew(Label); + page2_1_description->set_text(TTR("Enter a text to shape and add all required glyphs to pre-render list:")); + page2_1_description->set_h_size_flags(Control::SIZE_EXPAND_FILL); + page2_1_description->set_autowrap_mode(TextServer::AUTOWRAP_WORD_SMART); + page2_1_vb->add_child(page2_1_description); - ftr_edit = memnew(LineEdit); - ot_hb->add_child(ftr_edit); - ftr_edit->connect("text_changed", callable_mp(this, &DynamicFontImportSettings::_change_text_opts)); - ftr_edit->set_h_size_flags(Control::SIZE_EXPAND_FILL); + HSplitContainer *page2_1_hb = memnew(HSplitContainer); + page2_1_vb->add_child(page2_1_hb); + page2_1_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL); + page2_1_hb->set_v_size_flags(Control::SIZE_EXPAND_FILL); - Label *label_ed_lang = memnew(Label); - ot_hb->add_child(label_ed_lang); - label_ed_lang->set_text(TTR("Text language:")); + inspector_text = memnew(EditorInspector); - lang_edit = memnew(LineEdit); - ot_hb->add_child(lang_edit); - lang_edit->connect("text_changed", callable_mp(this, &DynamicFontImportSettings::_change_text_opts)); - lang_edit->set_h_size_flags(Control::SIZE_EXPAND_FILL); + 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)); + page2_1_hb->add_child(inspector_text); text_edit = memnew(TextEdit); - page3_vb->add_child(text_edit); + page2_1_hb->add_child(text_edit); text_edit->set_v_size_flags(Control::SIZE_EXPAND_FILL); text_edit->set_h_size_flags(Control::SIZE_EXPAND_FILL); HBoxContainer *text_hb = memnew(HBoxContainer); - page3_vb->add_child(text_hb); + page2_1_vb->add_child(text_hb); text_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL); label_glyphs = memnew(Label); @@ -1576,21 +1307,21 @@ DynamicFontImportSettings::DynamicFontImportSettings() { btn_clear->set_text(TTR("Clear glyph list")); btn_clear->connect("pressed", callable_mp(this, &DynamicFontImportSettings::_glyph_clear)); - // Page 4 layout: Character map - VBoxContainer *page4_vb = memnew(VBoxContainer); - page4_vb->set_name(TTR("Glyphs from the Character Map")); - main_pages->add_child(page4_vb); + // Page 2.2 layout: Character map + VBoxContainer *page2_2_vb = memnew(VBoxContainer); + page2_2_vb->set_name(TTR("Glyphs from the Character Map")); + preload_pages->add_child(page2_2_vb); - page4_description = memnew(Label); - page4_description->set_text(TTR("Add or remove additional glyphs from the character map to pre-render list:\nNote: 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\" to add these.")); - page4_description->set_h_size_flags(Control::SIZE_EXPAND_FILL); - page4_description->set_autowrap_mode(TextServer::AUTOWRAP_WORD_SMART); - page4_vb->add_child(page4_description); + page2_2_description = memnew(Label); + page2_2_description->set_text(TTR("Add or remove glyphs from the character map to pre-render list:\nNote: 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.")); + page2_2_description->set_h_size_flags(Control::SIZE_EXPAND_FILL); + page2_2_description->set_autowrap_mode(TextServer::AUTOWRAP_WORD_SMART); + page2_2_vb->add_child(page2_2_description); HSplitContainer *glyphs_split = memnew(HSplitContainer); glyphs_split->set_v_size_flags(Control::SIZE_EXPAND_FILL); glyphs_split->set_h_size_flags(Control::SIZE_EXPAND_FILL); - page4_vb->add_child(glyphs_split); + page2_2_vb->add_child(glyphs_split); glyph_table = memnew(Tree); glyphs_split->add_child(glyph_table); @@ -1627,106 +1358,11 @@ DynamicFontImportSettings::DynamicFontImportSettings() { _add_glyph_range_item(unicode_ranges[i].start, unicode_ranges[i].end, unicode_ranges[i].name); } - // Page 4 layout: Metadata override - VBoxContainer *page5_vb = memnew(VBoxContainer); - page5_vb->set_name(TTR("Metadata Override")); - main_pages->add_child(page5_vb); - - page5_description = memnew(Label); - page5_description->set_text(TTR("Add or remove language and script support overrides, to control fallback font selection order:")); - page5_description->set_h_size_flags(Control::SIZE_EXPAND_FILL); - page5_description->set_autowrap_mode(TextServer::AUTOWRAP_WORD_SMART); - page5_vb->add_child(page5_description); - - HBoxContainer *hb_lang = memnew(HBoxContainer); - page5_vb->add_child(hb_lang); - - label_langs = memnew(Label); - label_langs->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER); - label_langs->set_h_size_flags(Control::SIZE_EXPAND_FILL); - label_langs->set_text(TTR("Language support overrides")); - hb_lang->add_child(label_langs); - - add_lang = memnew(Button); - hb_lang->add_child(add_lang); - add_lang->set_tooltip(TTR("Add language override")); - add_lang->set_icon(add_var->get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); - add_lang->connect("pressed", callable_mp(this, &DynamicFontImportSettings::_lang_add)); - - lang_list = memnew(Tree); - page5_vb->add_child(lang_list); - lang_list->set_hide_root(true); - lang_list->set_columns(3); - lang_list->set_column_expand(0, false); // Check - lang_list->set_column_custom_minimum_width(0, 50 * EDSCALE); - lang_list->set_column_expand(1, true); - lang_list->set_column_custom_minimum_width(1, 80 * EDSCALE); - lang_list->set_column_expand(2, false); - lang_list->set_column_custom_minimum_width(2, 50 * EDSCALE); - lang_list->connect("button_clicked", callable_mp(this, &DynamicFontImportSettings::_lang_remove)); - lang_list->set_v_size_flags(Control::SIZE_EXPAND_FILL); - - HBoxContainer *hb_script = memnew(HBoxContainer); - page5_vb->add_child(hb_script); - - label_script = memnew(Label); - label_script->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER); - label_script->set_h_size_flags(Control::SIZE_EXPAND_FILL); - label_script->set_text(TTR("Script support overrides")); - hb_script->add_child(label_script); - - add_script = memnew(Button); - hb_script->add_child(add_script); - add_script->set_tooltip(TTR("Add script override")); - add_script->set_icon(add_var->get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); - add_script->connect("pressed", callable_mp(this, &DynamicFontImportSettings::_script_add)); - - script_list = memnew(Tree); - page5_vb->add_child(script_list); - script_list->set_hide_root(true); - script_list->set_columns(3); - script_list->set_column_expand(0, false); - script_list->set_column_custom_minimum_width(0, 50 * EDSCALE); - script_list->set_column_expand(1, true); - script_list->set_column_custom_minimum_width(1, 80 * EDSCALE); - script_list->set_column_expand(2, false); - script_list->set_column_custom_minimum_width(2, 50 * EDSCALE); - script_list->connect("button_clicked", callable_mp(this, &DynamicFontImportSettings::_script_remove)); - script_list->set_v_size_flags(Control::SIZE_EXPAND_FILL); - - HBoxContainer *hb_ot = memnew(HBoxContainer); - page5_vb->add_child(hb_ot); - - label_ot = memnew(Label); - label_ot->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER); - label_ot->set_h_size_flags(Control::SIZE_EXPAND_FILL); - label_ot->set_text(TTR("OpenType feature overrides")); - hb_ot->add_child(label_ot); - - add_ot = memnew(Button); - hb_ot->add_child(add_ot); - add_ot->set_tooltip(TTR("Add feature override")); - add_ot->set_icon(add_var->get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); - add_ot->connect("pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add)); - - ot_list = memnew(Tree); - page5_vb->add_child(ot_list); - ot_list->set_hide_root(true); - ot_list->set_columns(3); - ot_list->set_column_expand(0, true); - ot_list->set_column_custom_minimum_width(0, 80 * EDSCALE); - ot_list->set_column_expand(1, true); - ot_list->set_column_custom_minimum_width(1, 80 * EDSCALE); - ot_list->set_column_expand(2, false); - ot_list->set_column_custom_minimum_width(2, 50 * EDSCALE); - ot_list->connect("button_clicked", callable_mp(this, &DynamicFontImportSettings::_ot_remove)); - ot_list->set_v_size_flags(Control::SIZE_EXPAND_FILL); - // Common import_settings_data.instantiate(); import_settings_data->owner = this; - get_ok_button()->set_text(TTR("Reimport")); - get_cancel_button()->set_text(TTR("Close")); + set_ok_button_text(TTR("Reimport")); + set_cancel_button_text(TTR("Close")); } diff --git a/editor/import/dynamic_font_import_settings.h b/editor/import/dynamic_font_import_settings.h index ba75c98057..a1f763b445 100644 --- a/editor/import/dynamic_font_import_settings.h +++ b/editor/import/dynamic_font_import_settings.h @@ -45,7 +45,30 @@ #include "scene/resources/font.h" #include "servers/text_server.h" -class DynamicFontImportSettingsData; +class DynamicFontImportSettings; + +class DynamicFontImportSettingsData : public RefCounted { + GDCLASS(DynamicFontImportSettingsData, RefCounted) + friend class DynamicFontImportSettings; + + HashMap<StringName, Variant> settings; + HashMap<StringName, Variant> defaults; + List<ResourceImporter::ImportOption> options; + DynamicFontImportSettings *owner = nullptr; + + HashSet<char32_t> selected_chars; + HashSet<int32_t> selected_glyphs; + + Ref<FontFile> fd; + +public: + bool _set(const StringName &p_name, const Variant &p_value); + bool _get(const StringName &p_name, Variant &r_ret) const; + void _get_property_list(List<PropertyInfo> *p_list) const; + + Ref<FontFile> get_font() const; +}; + class EditorFileDialog; class EditorInspector; class EditorLocaleDialog; @@ -67,21 +90,19 @@ class DynamicFontImportSettings : public ConfirmationDialog { List<ResourceImporter::ImportOption> options_variations; List<ResourceImporter::ImportOption> options_general; - EditorLocaleDialog *locale_select = nullptr; - Vector<String> script_codes; - // Root layout Label *label_warn = nullptr; TabContainer *main_pages = nullptr; // Page 1 layout: Rendering Options Label *page1_description = nullptr; + Label *font_name_label = nullptr; Label *font_preview_label = nullptr; EditorInspector *inspector_general = nullptr; void _main_prop_changed(const String &p_edited_property); - // Page 2 layout: Configurations + // Page 2 layout: Preload Configurations Label *page2_description = nullptr; Label *label_vars = nullptr; Button *add_var = nullptr; @@ -95,19 +116,23 @@ class DynamicFontImportSettings : public ConfirmationDialog { void _variation_changed(const String &p_edited_property); void _variations_validate(); - // Page 3 layout: Text to select glyphs - Label *page3_description = nullptr; + TabContainer *preload_pages = nullptr; + + // Page 2.1 layout: Text to select glyphs + Label *page2_1_description = nullptr; Label *label_glyphs = nullptr; TextEdit *text_edit = nullptr; - LineEdit *ftr_edit = nullptr; - LineEdit *lang_edit = nullptr; + EditorInspector *inspector_text = nullptr; + + List<ResourceImporter::ImportOption> options_text; + Ref<DynamicFontImportSettingsData> text_settings_data; void _change_text_opts(); void _glyph_text_selected(); void _glyph_clear(); - // Page 4 layout: Character map - Label *page4_description = nullptr; + // Page 2.2 layout: Character map + Label *page2_2_description = nullptr; Tree *glyph_table = nullptr; Tree *glyph_tree = nullptr; TreeItem *glyph_root = nullptr; @@ -119,51 +144,12 @@ class DynamicFontImportSettings : public ConfirmationDialog { bool _char_update(int32_t p_char); void _range_update(int32_t p_start, int32_t p_end); - // Page 5 layout: Metadata override - Label *page5_description = nullptr; - Button *add_lang = nullptr; - Button *add_script = nullptr; - Button *add_ot = nullptr; - - PopupMenu *menu_scripts = nullptr; - PopupMenu *menu_ot = nullptr; - PopupMenu *menu_ot_ss = nullptr; - PopupMenu *menu_ot_cv = nullptr; - PopupMenu *menu_ot_cu = nullptr; - - Tree *lang_list = nullptr; - TreeItem *lang_list_root = nullptr; - Label *label_langs = nullptr; - - Tree *script_list = nullptr; - TreeItem *script_list_root = nullptr; - Label *label_script = nullptr; - - Tree *ot_list = nullptr; - TreeItem *ot_list_root = nullptr; - Label *label_ot = nullptr; - - void _lang_add(); - void _lang_add_item(const String &p_locale); - void _lang_remove(Object *p_item, int p_column, int p_id, MouseButton p_button); - - void _script_add(); - void _script_add_item(int p_option); - void _script_remove(Object *p_item, int p_column, int p_id, MouseButton p_button); - - void _ot_add(); - void _ot_add_item(int p_option); - void _ot_remove(Object *p_item, int p_column, int p_id, MouseButton p_button); - // Common void _add_glyph_range_item(int32_t p_start, int32_t p_end, const String &p_name); - Ref<Font> font_preview; - Ref<Font> font_main; - - RBSet<char32_t> selected_chars; - RBSet<int32_t> selected_glyphs; + Ref<FontFile> font_preview; + Ref<FontFile> font_main; void _re_import(); diff --git a/editor/import/post_import_plugin_skeleton_renamer.cpp b/editor/import/post_import_plugin_skeleton_renamer.cpp new file mode 100644 index 0000000000..b0c4bc8c30 --- /dev/null +++ b/editor/import/post_import_plugin_skeleton_renamer.cpp @@ -0,0 +1,144 @@ +/*************************************************************************/ +/* post_import_plugin_skeleton_renamer.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#include "post_import_plugin_skeleton_renamer.h" + +#include "editor/import/scene_import_settings.h" +#include "scene/3d/importer_mesh_instance_3d.h" +#include "scene/3d/skeleton_3d.h" +#include "scene/animation/animation_player.h" +#include "scene/resources/bone_map.h" + +void PostImportPluginSkeletonRenamer::get_internal_import_options(InternalImportCategory p_category, List<ResourceImporter::ImportOption> *r_options) { + if (p_category == INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE) { + r_options->push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "retarget/bone_renamer/rename_bones"), true)); + } +} + +void PostImportPluginSkeletonRenamer::internal_process(InternalImportCategory p_category, Node *p_base_scene, Node *p_node, Ref<Resource> p_resource, const Dictionary &p_options) { + if (p_category == INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE) { + // Prepare objects. + Object *map = p_options["retarget/bone_map"].get_validated_object(); + if (!map || !bool(p_options["retarget/bone_renamer/rename_bones"])) { + return; + } + BoneMap *bone_map = Object::cast_to<BoneMap>(map); + Skeleton3D *skeleton = Object::cast_to<Skeleton3D>(p_node); + + // Rename bones in Skeleton3D. + { + int len = skeleton->get_bone_count(); + for (int i = 0; i < len; i++) { + StringName bn = bone_map->find_profile_bone_name(skeleton->get_bone_name(i)); + if (bn) { + skeleton->set_bone_name(i, bn); + } + } + } + + // Rename bones in Skin. + { + TypedArray<Node> nodes = p_base_scene->find_children("*", "ImporterMeshInstance3D"); + while (nodes.size()) { + ImporterMeshInstance3D *mi = Object::cast_to<ImporterMeshInstance3D>(nodes.pop_back()); + Ref<Skin> skin = mi->get_skin(); + if (skin.is_valid()) { + Node *node = mi->get_node(mi->get_skeleton_path()); + if (node) { + Skeleton3D *mesh_skeleton = Object::cast_to<Skeleton3D>(node); + if (mesh_skeleton && node == skeleton) { + int len = skin->get_bind_count(); + for (int i = 0; i < len; i++) { + StringName bn = bone_map->find_profile_bone_name(skin->get_bind_name(i)); + if (bn) { + skin->set_bind_name(i, bn); + } + } + } + } + } + } + } + + // Rename bones in AnimationPlayer. + { + TypedArray<Node> nodes = p_base_scene->find_children("*", "AnimationPlayer"); + while (nodes.size()) { + AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(nodes.pop_back()); + List<StringName> anims; + ap->get_animation_list(&anims); + for (const StringName &name : anims) { + Ref<Animation> anim = ap->get_animation(name); + int len = anim->get_track_count(); + for (int i = 0; i < len; i++) { + if (anim->track_get_path(i).get_subname_count() != 1 || !(anim->track_get_type(i) == Animation::TYPE_POSITION_3D || anim->track_get_type(i) == Animation::TYPE_ROTATION_3D || anim->track_get_type(i) == Animation::TYPE_SCALE_3D)) { + continue; + } + String track_path = String(anim->track_get_path(i).get_concatenated_names()); + Node *node = (ap->get_node(ap->get_root()))->get_node(NodePath(track_path)); + if (node) { + Skeleton3D *track_skeleton = Object::cast_to<Skeleton3D>(node); + if (track_skeleton && track_skeleton == skeleton) { + StringName bn = bone_map->find_profile_bone_name(anim->track_get_path(i).get_subname(0)); + if (bn) { + anim->track_set_path(i, track_path + ":" + bn); + } + } + } + } + } + } + } + + // Rename bones in all Nodes by calling method. + { + Vector<Variant> vargs; + vargs.push_back(p_base_scene); + vargs.push_back(skeleton); + vargs.push_back(bone_map); + const Variant **argptrs = (const Variant **)alloca(sizeof(const Variant **) * vargs.size()); + const Variant *args = vargs.ptr(); + uint32_t argcount = vargs.size(); + for (uint32_t i = 0; i < argcount; i++) { + argptrs[i] = &args[i]; + } + + TypedArray<Node> nodes = p_base_scene->find_children("*"); + while (nodes.size()) { + Node *nd = Object::cast_to<Node>(nodes.pop_back()); + Callable::CallError ce; + nd->callp("_notify_skeleton_bones_renamed", argptrs, argcount, ce); + } + } + } +} + +PostImportPluginSkeletonRenamer::PostImportPluginSkeletonRenamer() { +} diff --git a/editor/plugins/font_editor_plugin.h b/editor/import/post_import_plugin_skeleton_renamer.h index 3f0700d880..73cbabd1c5 100644 --- a/editor/plugins/font_editor_plugin.h +++ b/editor/import/post_import_plugin_skeleton_renamer.h @@ -1,5 +1,5 @@ /*************************************************************************/ -/* font_editor_plugin.h */ +/* post_import_plugin_skeleton_renamer.h */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ @@ -28,50 +28,19 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#ifndef FONT_EDITOR_PLUGIN_H -#define FONT_EDITOR_PLUGIN_H +#ifndef POST_IMPORT_PLUGIN_SKELETON_RENAMER_H +#define POST_IMPORT_PLUGIN_SKELETON_RENAMER_H -#include "editor/editor_plugin.h" -#include "scene/resources/font.h" -#include "scene/resources/text_line.h" +#include "resource_importer_scene.h" -class FontDataPreview : public Control { - GDCLASS(FontDataPreview, Control); - -protected: - void _notification(int p_what); - static void _bind_methods(); - - Ref<TextLine> line; - -public: - virtual Size2 get_minimum_size() const override; - - void set_data(const Ref<FontData> &p_data); - - FontDataPreview(); -}; - -/*************************************************************************/ - -class EditorInspectorPluginFont : public EditorInspectorPlugin { - GDCLASS(EditorInspectorPluginFont, EditorInspectorPlugin); - -public: - virtual bool can_handle(Object *p_object) override; - virtual void parse_begin(Object *p_object) override; - virtual bool parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const uint32_t p_usage, const bool p_wide = false) override; -}; - -/*************************************************************************/ - -class FontEditorPlugin : public EditorPlugin { - GDCLASS(FontEditorPlugin, EditorPlugin); +class PostImportPluginSkeletonRenamer : public EditorScenePostImportPlugin { + GDCLASS(PostImportPluginSkeletonRenamer, EditorScenePostImportPlugin); public: - FontEditorPlugin(); + virtual void get_internal_import_options(InternalImportCategory p_category, List<ResourceImporter::ImportOption> *r_options) override; + virtual void internal_process(InternalImportCategory p_category, Node *p_base_scene, Node *p_node, Ref<Resource> p_resource, const Dictionary &p_options) override; - virtual String get_name() const override { return "Font"; } + PostImportPluginSkeletonRenamer(); }; -#endif // FONT_EDITOR_PLUGIN_H +#endif // POST_IMPORT_PLUGIN_SKELETON_RENAMER_H diff --git a/editor/import/resource_importer_bmfont.cpp b/editor/import/resource_importer_bmfont.cpp index 8a40b113b9..987ca4b911 100644 --- a/editor/import/resource_importer_bmfont.cpp +++ b/editor/import/resource_importer_bmfont.cpp @@ -52,7 +52,7 @@ String ResourceImporterBMFont::get_save_extension() const { } String ResourceImporterBMFont::get_resource_type() const { - return "FontData"; + return "FontFile"; } bool ResourceImporterBMFont::get_option_visibility(const String &p_path, const String &p_option, const HashMap<StringName, Variant> &p_options) const { @@ -60,19 +60,25 @@ bool ResourceImporterBMFont::get_option_visibility(const String &p_path, const S } void ResourceImporterBMFont::get_import_options(const String &p_path, List<ImportOption> *r_options, int p_preset) const { + r_options->push_back(ImportOption(PropertyInfo(Variant::ARRAY, "fallbacks", PROPERTY_HINT_ARRAY_TYPE, vformat("%s/%s:%s", Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "Font")), Array())); + r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "compress"), true)); } Error ResourceImporterBMFont::import(const String &p_source_file, const String &p_save_path, const HashMap<StringName, Variant> &p_options, List<String> *r_platform_variants, List<String> *r_gen_files, Variant *r_metadata) { print_verbose("Importing BMFont font from: " + p_source_file); - Ref<FontData> font; + Array fallbacks = p_options["fallbacks"]; + + Ref<FontFile> font; font.instantiate(); Error err = font->load_bitmap_font(p_source_file); ERR_FAIL_COND_V_MSG(err != OK, err, "Cannot load font to file \"" + p_source_file + "\"."); - int flg = ResourceSaver::SaverFlags::FLAG_BUNDLE_RESOURCES | ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS; + font->set_fallbacks(fallbacks); + + int flg = 0; if ((bool)p_options["compress"]) { flg |= ResourceSaver::SaverFlags::FLAG_COMPRESS; } diff --git a/editor/import/resource_importer_dynamic_font.cpp b/editor/import/resource_importer_dynamic_font.cpp index a92b0fe280..f1a70ff30a 100644 --- a/editor/import/resource_importer_dynamic_font.cpp +++ b/editor/import/resource_importer_dynamic_font.cpp @@ -66,7 +66,7 @@ String ResourceImporterDynamicFont::get_save_extension() const { } String ResourceImporterDynamicFont::get_resource_type() const { - return "FontData"; + return "FontFile"; } bool ResourceImporterDynamicFont::get_option_visibility(const String &p_path, const String &p_option, const HashMap<StringName, Variant> &p_options) const { @@ -103,7 +103,7 @@ String ResourceImporterDynamicFont::get_preset_name(int p_idx) const { void ResourceImporterDynamicFont::get_import_options(const String &p_path, List<ImportOption> *r_options, int p_preset) const { bool msdf = p_preset == PRESET_MSDF; - r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "face_index"), 0)); + r_options->push_back(ImportOption(PropertyInfo(Variant::NIL, "Rendering", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_GROUP), Variant())); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "antialiased"), true)); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "generate_mipmaps"), false)); @@ -114,63 +114,19 @@ void ResourceImporterDynamicFont::get_import_options(const String &p_path, List< r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "force_autohinter"), false)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "hinting", PROPERTY_HINT_ENUM, "None,Light,Normal"), 1)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "subpixel_positioning", PROPERTY_HINT_ENUM, "Disabled,Auto,One half of a pixel,One quarter of a pixel"), 1)); - r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "embolden", PROPERTY_HINT_RANGE, "-2,2,0.01"), 0.f)); - r_options->push_back(ImportOption(PropertyInfo(Variant::TRANSFORM2D, "transform"), Transform2D())); r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "oversampling", PROPERTY_HINT_RANGE, "0,10,0.1"), 0.0)); - r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "compress"), true)); - r_options->push_back(ImportOption(PropertyInfo(Variant::DICTIONARY, "opentype_feature_overrides"), Dictionary())); - - r_options->push_back(ImportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "preload/char_ranges"), Vector<String>())); - r_options->push_back(ImportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "preload/glyph_ranges"), Vector<String>())); - r_options->push_back(ImportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "preload/configurations"), Vector<String>())); - - r_options->push_back(ImportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "support_overrides/language_enabled"), Vector<String>())); - r_options->push_back(ImportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "support_overrides/language_disabled"), Vector<String>())); + r_options->push_back(ImportOption(PropertyInfo(Variant::NIL, "Fallbacks", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_GROUP), Variant())); + r_options->push_back(ImportOption(PropertyInfo(Variant::ARRAY, "fallbacks", PROPERTY_HINT_ARRAY_TYPE, vformat("%s/%s:%s", Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "Font")), Array())); - r_options->push_back(ImportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "support_overrides/script_enabled"), Vector<String>())); - r_options->push_back(ImportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "support_overrides/script_disabled"), Vector<String>())); -} + r_options->push_back(ImportOption(PropertyInfo(Variant::NIL, "Compress", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_GROUP), Variant())); + r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "compress"), true)); -bool ResourceImporterDynamicFont::_decode_variation(const String &p_token, Dictionary &r_variations, Vector2i &r_size, String &r_name, Vector2i &r_spacing) { - Vector<String> tokens = p_token.split("="); - if (tokens.size() == 2) { - if (tokens[0] == "name") { - r_name = tokens[1]; - } else if (tokens[0] == "size") { - r_size.x = tokens[1].to_int(); - } else if (tokens[0] == "outline_size") { - r_size.y = tokens[1].to_int(); - } else if (tokens[0] == "spacing_space") { - r_spacing.x = tokens[1].to_int(); - } else if (tokens[0] == "spacing_glyph") { - r_spacing.y = tokens[1].to_int(); - } else { - r_variations[tokens[0]] = tokens[1].to_float(); - } - return true; - } else { - WARN_PRINT("Invalid variation: '" + p_token + "'."); - return false; - } -} - -bool ResourceImporterDynamicFont::_decode_range(const String &p_token, int32_t &r_pos) { - if (p_token.begins_with("U+") || p_token.begins_with("u+") || p_token.begins_with("0x")) { - // Unicode character hex index. - r_pos = p_token.substr(2).hex_to_int(); - return true; - } else if (p_token.length() == 3 && p_token[0] == '\'' && p_token[2] == '\'') { - // Unicode character. - r_pos = p_token.unicode_at(1); - return true; - } else if (p_token.is_numeric()) { - // Unicode character decimal index. - r_pos = p_token.to_int(); - return true; - } else { - return false; - } + // Hide from the main UI, only for advanced import dialog. + r_options->push_back(ImportOption(PropertyInfo(Variant::ARRAY, "preload", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), Array())); + r_options->push_back(ImportOption(PropertyInfo(Variant::DICTIONARY, "language_support", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), Dictionary())); + r_options->push_back(ImportOption(PropertyInfo(Variant::DICTIONARY, "script_support", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), Dictionary())); + r_options->push_back(ImportOption(PropertyInfo(Variant::DICTIONARY, "opentype_features", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), Dictionary())); } bool ResourceImporterDynamicFont::has_advanced_options() const { @@ -183,30 +139,26 @@ void ResourceImporterDynamicFont::show_advanced_options(const String &p_path) { Error ResourceImporterDynamicFont::import(const String &p_source_file, const String &p_save_path, const HashMap<StringName, Variant> &p_options, List<String> *r_platform_variants, List<String> *r_gen_files, Variant *r_metadata) { print_verbose("Importing dynamic font from: " + p_source_file); - int face_index = p_options["face_index"]; - bool antialiased = p_options["antialiased"]; bool generate_mipmaps = p_options["generate_mipmaps"]; bool msdf = p_options["multichannel_signed_distance_field"]; int px_range = p_options["msdf_pixel_range"]; int px_size = p_options["msdf_size"]; - Dictionary ot_ov = p_options["opentype_feature_overrides"]; + Dictionary ot_ov = p_options["opentype_features"]; bool autohinter = p_options["force_autohinter"]; int hinting = p_options["hinting"]; int subpixel_positioning = p_options["subpixel_positioning"]; real_t oversampling = p_options["oversampling"]; - real_t embolden = p_options["embolden"]; - Transform2D transform = p_options["transform"]; + Array fallbacks = p_options["fallbacks"]; // Load base font data. Vector<uint8_t> data = FileAccess::get_file_as_array(p_source_file); // Create font. - Ref<FontData> font; + Ref<FontFile> font; font.instantiate(); font->set_data(data); - font->set_face_index(face_index); font->set_antialiased(antialiased); font->set_generate_mipmaps(generate_mipmaps); font->set_multichannel_signed_distance_field(msdf); @@ -216,105 +168,52 @@ Error ResourceImporterDynamicFont::import(const String &p_source_file, const Str font->set_fixed_size(0); font->set_force_autohinter(autohinter); font->set_subpixel_positioning((TextServer::SubpixelPositioning)subpixel_positioning); - font->set_embolden(embolden); - font->set_transform(transform); font->set_hinting((TextServer::Hinting)hinting); font->set_oversampling(oversampling); + font->set_fallbacks(fallbacks); - Vector<String> lang_en = p_options["support_overrides/language_enabled"]; - for (int i = 0; i < lang_en.size(); i++) { - font->set_language_support_override(lang_en[i], true); + Dictionary langs = p_options["language_support"]; + for (int i = 0; i < langs.size(); i++) { + String key = langs.get_key_at_index(i); + bool enabled = langs.get_value_at_index(i); + font->set_language_support_override(key, enabled); } - Vector<String> lang_dis = p_options["support_overrides/language_disabled"]; - for (int i = 0; i < lang_dis.size(); i++) { - font->set_language_support_override(lang_dis[i], false); + Dictionary scripts = p_options["script_support"]; + for (int i = 0; i < scripts.size(); i++) { + String key = scripts.get_key_at_index(i); + bool enabled = scripts.get_value_at_index(i); + font->set_script_support_override(key, enabled); } - Vector<String> scr_en = p_options["support_overrides/script_enabled"]; - for (int i = 0; i < scr_en.size(); i++) { - font->set_script_support_override(scr_en[i], true); - } + Array preload_configurations = p_options["preload"]; - Vector<String> scr_dis = p_options["support_overrides/script_disabled"]; - for (int i = 0; i < scr_dis.size(); i++) { - font->set_script_support_override(scr_dis[i], false); - } + for (int i = 0; i < preload_configurations.size(); i++) { + Dictionary preload_config = preload_configurations[i]; - Vector<String> variations = p_options["preload/configurations"]; - Vector<String> char_ranges = p_options["preload/char_ranges"]; - Vector<String> gl_ranges = p_options["preload/glyph_ranges"]; - - for (int i = 0; i < variations.size(); i++) { - String name; - Dictionary var; - Vector2i size = Vector2(16, 0); - Vector2i spacing; - - Vector<String> variation_tags = variations[i].split(","); - for (int j = 0; j < variation_tags.size(); j++) { - if (!_decode_variation(variation_tags[j], var, size, name, spacing)) { - WARN_PRINT(vformat(TTR("Invalid variation: \"%s\""), variations[i])); - continue; - } - } - RID conf = font->find_cache(var); - - for (int j = 0; j < char_ranges.size(); j++) { - int32_t start, end; - Vector<String> tokens = char_ranges[j].split("-"); - if (tokens.size() == 2) { - if (!_decode_range(tokens[0], start) || !_decode_range(tokens[1], end)) { - WARN_PRINT(vformat(TTR("Invalid range: \"%s\""), char_ranges[j])); - continue; - } - } else if (tokens.size() == 1) { - if (!_decode_range(tokens[0], start)) { - WARN_PRINT(vformat(TTR("Invalid range: \"%s\""), char_ranges[j])); - continue; - } - end = start; - } else { - WARN_PRINT(vformat(TTR("Invalid range: \"%s\""), char_ranges[j])); - continue; - } - - // Preload character ranges for each variations / sizes. - print_verbose(vformat(TTR("Pre-rendering range U+%s...%s from configuration \"%s\" (%d / %d)..."), String::num_int64(start, 16), String::num_int64(end, 16), name, i + 1, variations.size())); - TS->font_render_range(conf, size, start, end); - } + Dictionary variation = preload_config.has("variation_opentype") ? preload_config["variation_opentype"].operator Dictionary() : Dictionary(); + double embolden = preload_config.has("variation_embolden") ? preload_config["variation_embolden"].operator double() : 0; + int face_index = preload_config.has("variation_face_index") ? preload_config["variation_face_index"].operator int() : 0; + Transform2D transform = preload_config.has("variation_transform") ? preload_config["variation_transform"].operator Transform2D() : Transform2D(); + Vector2i size = preload_config.has("size") ? preload_config["size"].operator Vector2i() : Vector2i(16, 0); + String name = preload_config.has("name") ? preload_config["name"].operator String() : vformat("Configuration %d", i); - for (int j = 0; j < gl_ranges.size(); j++) { - int32_t start, end; - Vector<String> tokens = gl_ranges[j].split("-"); - if (tokens.size() == 2) { - if (!_decode_range(tokens[0], start) || !_decode_range(tokens[1], end)) { - WARN_PRINT(vformat(TTR("Invalid range: \"%s\""), gl_ranges[j])); - continue; - } - } else if (tokens.size() == 1) { - if (!_decode_range(tokens[0], start)) { - WARN_PRINT(vformat(TTR("Invalid range: \"%s\""), gl_ranges[j])); - continue; - } - end = start; - } else { - WARN_PRINT(vformat(TTR("Invalid range: \"%s\""), gl_ranges[j])); - continue; - } - - // Preload glyph range for each variations / sizes. - print_verbose(vformat(TTR("Pre-rendering glyph range 0x%s...%s from configuration \"%s\" (%d / %d)..."), String::num_int64(start, 16), String::num_int64(end, 16), name, i + 1, variations.size())); - for (int32_t k = start; k <= end; k++) { - TS->font_render_glyph(conf, size, k); - } + RID conf_rid = font->find_variation(variation, face_index, embolden, transform); + + Array chars = preload_config["chars"]; + for (int j = 0; j < chars.size(); j++) { + char32_t c = chars[j].operator int(); + TS->font_render_range(conf_rid, size, c, c); } - TS->font_set_spacing(conf, size.x, TextServer::SPACING_SPACE, spacing.x); - TS->font_set_spacing(conf, size.x, TextServer::SPACING_GLYPH, spacing.y); + Array glyphs = preload_config["glyphs"]; + for (int j = 0; j < glyphs.size(); j++) { + int32_t c = glyphs[j]; + TS->font_render_glyph(conf_rid, size, c); + } } - int flg = ResourceSaver::SaverFlags::FLAG_BUNDLE_RESOURCES | ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS; + int flg = 0; if ((bool)p_options["compress"]) { flg |= ResourceSaver::SaverFlags::FLAG_COMPRESS; } diff --git a/editor/import/resource_importer_dynamic_font.h b/editor/import/resource_importer_dynamic_font.h index c0b6c094b0..a05c8bab05 100644 --- a/editor/import/resource_importer_dynamic_font.h +++ b/editor/import/resource_importer_dynamic_font.h @@ -43,9 +43,6 @@ class ResourceImporterDynamicFont : public ResourceImporter { }; public: - static bool _decode_range(const String &p_token, int32_t &r_pos); - static bool _decode_variation(const String &p_token, Dictionary &r_variations, Vector2i &r_size, String &r_name, Vector2i &r_spacing); - virtual String get_importer_name() const override; virtual String get_visible_name() const override; virtual void get_recognized_extensions(List<String> *p_extensions) const override; diff --git a/editor/import/resource_importer_imagefont.cpp b/editor/import/resource_importer_imagefont.cpp index 30c349d0f2..ea84d4c883 100644 --- a/editor/import/resource_importer_imagefont.cpp +++ b/editor/import/resource_importer_imagefont.cpp @@ -52,7 +52,7 @@ String ResourceImporterImageFont::get_save_extension() const { } String ResourceImporterImageFont::get_resource_type() const { - return "FontData"; + return "FontFile"; } bool ResourceImporterImageFont::get_option_visibility(const String &p_path, const String &p_option, const HashMap<StringName, Variant> &p_options) const { @@ -64,6 +64,9 @@ void ResourceImporterImageFont::get_import_options(const String &p_path, List<Im r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "columns"), 1)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "rows"), 1)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "font_size"), 14)); + + r_options->push_back(ImportOption(PropertyInfo(Variant::ARRAY, "fallbacks", PROPERTY_HINT_ARRAY_TYPE, vformat("%s/%s:%s", Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "Font")), Array())); + r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "compress"), true)); } @@ -92,8 +95,9 @@ Error ResourceImporterImageFont::import(const String &p_source_file, const Strin int rows = p_options["rows"]; int base_size = p_options["font_size"]; Vector<String> ranges = p_options["character_ranges"]; + Array fallbacks = p_options["fallbacks"]; - Ref<FontData> font; + Ref<FontFile> font; font.instantiate(); font->set_antialiased(false); font->set_generate_mipmaps(false); @@ -103,6 +107,7 @@ Error ResourceImporterImageFont::import(const String &p_source_file, const Strin font->set_force_autohinter(false); font->set_hinting(TextServer::HINTING_NONE); font->set_oversampling(1.0f); + font->set_fallbacks(fallbacks); Ref<Image> img; img.instantiate(); @@ -145,10 +150,10 @@ Error ResourceImporterImageFont::import(const String &p_source_file, const Strin ERR_FAIL_COND_V_MSG(pos >= count, ERR_CANT_CREATE, "Too many characters in range."); } } - font->set_ascent(0, base_size, 0.5 * chr_height); - font->set_descent(0, base_size, 0.5 * chr_height); + font->set_cache_ascent(0, base_size, 0.5 * chr_height); + font->set_cache_descent(0, base_size, 0.5 * chr_height); - int flg = ResourceSaver::SaverFlags::FLAG_BUNDLE_RESOURCES | ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS; + int flg = 0; if ((bool)p_options["compress"]) { flg |= ResourceSaver::SaverFlags::FLAG_COMPRESS; } diff --git a/editor/import/resource_importer_scene.cpp b/editor/import/resource_importer_scene.cpp index f2975b1d7a..860269bfcb 100644 --- a/editor/import/resource_importer_scene.cpp +++ b/editor/import/resource_importer_scene.cpp @@ -144,11 +144,11 @@ Variant EditorScenePostImportPlugin::get_option_value(const StringName &p_name) ERR_FAIL_COND_V_MSG(current_options == nullptr && current_options_dict == nullptr, Variant(), "get_option_value called from a function where option values are not available."); ERR_FAIL_COND_V_MSG(current_options && !current_options->has(p_name), Variant(), "get_option_value called with unexisting option argument: " + String(p_name)); ERR_FAIL_COND_V_MSG(current_options_dict && !current_options_dict->has(p_name), Variant(), "get_option_value called with unexisting option argument: " + String(p_name)); - if (current_options) { - (*current_options)[p_name]; + if (current_options && current_options->has(p_name)) { + return (*current_options)[p_name]; } - if (current_options_dict) { - (*current_options_dict)[p_name]; + if (current_options_dict && current_options_dict->has(p_name)) { + return (*current_options_dict)[p_name]; } return Variant(); } @@ -232,6 +232,7 @@ void EditorScenePostImportPlugin::_bind_methods() { BIND_ENUM_CONSTANT(INTERNAL_IMPORT_CATEGORY_MATERIAL); BIND_ENUM_CONSTANT(INTERNAL_IMPORT_CATEGORY_ANIMATION); BIND_ENUM_CONSTANT(INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE); + BIND_ENUM_CONSTANT(INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE); BIND_ENUM_CONSTANT(INTERNAL_IMPORT_CATEGORY_MAX); } @@ -766,6 +767,27 @@ Node *ResourceImporterScene::_post_fix_node(Node *p_node, Node *p_root, HashMap< } { + //make sure this is unique + node_settings = node_settings.duplicate(true); + //fill node settings for this node with default values + List<ImportOption> iopts; + if (Object::cast_to<ImporterMeshInstance3D>(p_node)) { + get_internal_import_options(INTERNAL_IMPORT_CATEGORY_MESH_3D_NODE, &iopts); + } else if (Object::cast_to<AnimationPlayer>(p_node)) { + get_internal_import_options(INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE, &iopts); + } else if (Object::cast_to<Skeleton3D>(p_node)) { + get_internal_import_options(INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE, &iopts); + } else { + get_internal_import_options(INTERNAL_IMPORT_CATEGORY_NODE, &iopts); + } + for (const ImportOption &E : iopts) { + if (!node_settings.has(E.option.name)) { + node_settings[E.option.name] = E.default_value; + } + } + } + + { ObjectID node_id = p_node->get_instance_id(); for (int i = 0; i < post_importer_plugins.size(); i++) { post_importer_plugins.write[i]->internal_process(EditorScenePostImportPlugin::INTERNAL_IMPORT_CATEGORY_NODE, p_root, p_node, Ref<Resource>(), node_settings); @@ -785,6 +807,16 @@ Node *ResourceImporterScene::_post_fix_node(Node *p_node, Node *p_root, HashMap< } } + if (Object::cast_to<Skeleton3D>(p_node)) { + ObjectID node_id = p_node->get_instance_id(); + for (int i = 0; i < post_importer_plugins.size(); i++) { + post_importer_plugins.write[i]->internal_process(EditorScenePostImportPlugin::INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE, p_root, p_node, Ref<Resource>(), node_settings); + if (ObjectDB::get_instance(node_id) == nullptr) { //may have been erased, so do not continue + break; + } + } + } + if (Object::cast_to<ImporterMeshInstance3D>(p_node)) { ImporterMeshInstance3D *mi = Object::cast_to<ImporterMeshInstance3D>(p_node); @@ -799,6 +831,16 @@ Node *ResourceImporterScene::_post_fix_node(Node *p_node, Node *p_root, HashMap< if (!mat_id.is_empty() && p_material_data.has(mat_id)) { Dictionary matdata = p_material_data[mat_id]; + { + //fill node settings for this node with default values + List<ImportOption> iopts; + get_internal_import_options(INTERNAL_IMPORT_CATEGORY_MATERIAL, &iopts); + for (const ImportOption &E : iopts) { + if (!matdata.has(E.option.name)) { + matdata[E.option.name] = E.default_value; + } + } + } for (int j = 0; j < post_importer_plugins.size(); j++) { post_importer_plugins.write[j]->internal_process(EditorScenePostImportPlugin::INTERNAL_IMPORT_CATEGORY_MATERIAL, p_root, p_node, mat, matdata); @@ -966,19 +1008,6 @@ Node *ResourceImporterScene::_post_fix_node(Node *p_node, Node *p_root, HashMap< if (Object::cast_to<AnimationPlayer>(p_node)) { AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(p_node); - { - //make sure this is unique - node_settings = node_settings.duplicate(true); - //fill node settings for this node with default values - List<ImportOption> iopts; - get_internal_import_options(INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE, &iopts); - for (const ImportOption &E : iopts) { - if (!node_settings.has(E.option.name)) { - node_settings[E.option.name] = E.default_value; - } - } - } - for (int i = 0; i < post_importer_plugins.size(); i++) { post_importer_plugins.write[i]->internal_process(EditorScenePostImportPlugin::INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE, p_root, p_node, Ref<Resource>(), node_settings); } @@ -1115,7 +1144,7 @@ Ref<Animation> ResourceImporterScene::_save_animation_to_file(Ref<Animation> ani } if (ResourceCache::has(p_save_to_path)) { - Ref<Animation> old_anim = Ref<Resource>(ResourceCache::get(p_save_to_path)); + Ref<Animation> old_anim = ResourceCache::get_ref(p_save_to_path); if (old_anim.is_valid()) { old_anim->copy_from(anim); anim = old_anim; @@ -1385,6 +1414,10 @@ void ResourceImporterScene::get_internal_import_options(InternalImportCategory p r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "slice_" + itos(i + 1) + "/save_to_file/keep_custom_tracks"), false)); } } break; + case INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE: { + r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "import/skip_import", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), false)); + r_options->push_back(ImportOption(PropertyInfo(Variant::OBJECT, "retarget/bone_map", PROPERTY_HINT_RESOURCE_TYPE, "BoneMap", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), Variant())); + } break; default: { } } @@ -1499,6 +1532,12 @@ bool ResourceImporterScene::get_internal_option_visibility(InternalImportCategor } } } break; + case INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE: { + const bool use_retarget = p_options["retarget/bone_map"].get_validated_object() != nullptr; + if (p_option != "retarget/bone_map" && p_option.begins_with("retarget/")) { + return use_retarget; + } + } break; default: { } } @@ -1534,6 +1573,8 @@ bool ResourceImporterScene::get_internal_option_update_view_required(InternalImp } break; case INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE: { } break; + case INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE: { + } break; default: { } } @@ -1622,6 +1663,16 @@ void ResourceImporterScene::_generate_meshes(Node *p_node, const Dictionary &p_m if (!mesh_id.is_empty() && p_mesh_data.has(mesh_id)) { Dictionary mesh_settings = p_mesh_data[mesh_id]; + { + //fill node settings for this node with default values + List<ImportOption> iopts; + get_internal_import_options(INTERNAL_IMPORT_CATEGORY_MESH, &iopts); + for (const ImportOption &E : iopts) { + if (!mesh_settings.has(E.option.name)) { + mesh_settings[E.option.name] = E.default_value; + } + } + } if (mesh_settings.has("generate/shadow_meshes")) { int shadow_meshes = mesh_settings["generate/shadow_meshes"]; @@ -1711,7 +1762,7 @@ void ResourceImporterScene::_generate_meshes(Node *p_node, const Dictionary &p_m } if (!save_to_file.is_empty()) { - Ref<Mesh> existing = Ref<Resource>(ResourceCache::get(save_to_file)); + Ref<Mesh> existing = ResourceCache::get_ref(save_to_file); if (existing.is_valid()) { //if somehow an existing one is useful, create existing->reset_state(); @@ -1921,7 +1972,7 @@ void ResourceImporterScene::_optimize_track_usage(AnimationPlayer *p_player, Ani } } -Node *ResourceImporterScene::pre_import(const String &p_source_file) { +Node *ResourceImporterScene::pre_import(const String &p_source_file, const HashMap<StringName, Variant> &p_options) { Ref<EditorSceneFormatImporter> importer; String ext = p_source_file.get_extension().to_lower(); @@ -1946,8 +1997,13 @@ Node *ResourceImporterScene::pre_import(const String &p_source_file) { ERR_FAIL_COND_V(!importer.is_valid(), nullptr); + int bake_fps = 30; + if (p_options.has(SNAME("animation/fps"))) { + bake_fps = p_options[SNAME("animation/fps")]; + } + Error err = OK; - Node *scene = importer->import_scene(p_source_file, EditorSceneFormatImporter::IMPORT_ANIMATION | EditorSceneFormatImporter::IMPORT_GENERATE_TANGENT_ARRAYS, HashMap<StringName, Variant>(), 15, nullptr, &err); + Node *scene = importer->import_scene(p_source_file, EditorSceneFormatImporter::IMPORT_ANIMATION | EditorSceneFormatImporter::IMPORT_GENERATE_TANGENT_ARRAYS, p_options, bake_fps, nullptr, &err); if (!scene || err != OK) { return nullptr; } diff --git a/editor/import/resource_importer_scene.h b/editor/import/resource_importer_scene.h index 16cf3d651d..b77c1dccb4 100644 --- a/editor/import/resource_importer_scene.h +++ b/editor/import/resource_importer_scene.h @@ -106,6 +106,7 @@ public: INTERNAL_IMPORT_CATEGORY_MATERIAL, INTERNAL_IMPORT_CATEGORY_ANIMATION, INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE, + INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE, INTERNAL_IMPORT_CATEGORY_MAX }; @@ -259,6 +260,7 @@ public: INTERNAL_IMPORT_CATEGORY_MATERIAL = EditorScenePostImportPlugin::INTERNAL_IMPORT_CATEGORY_MATERIAL, INTERNAL_IMPORT_CATEGORY_ANIMATION = EditorScenePostImportPlugin::INTERNAL_IMPORT_CATEGORY_ANIMATION, INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE = EditorScenePostImportPlugin::INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE, + INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE = EditorScenePostImportPlugin::INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE, INTERNAL_IMPORT_CATEGORY_MAX = EditorScenePostImportPlugin::INTERNAL_IMPORT_CATEGORY_MAX }; @@ -279,7 +281,7 @@ public: void _optimize_animations(AnimationPlayer *anim, float p_max_lin_error, float p_max_ang_error, float p_max_angle); void _compress_animations(AnimationPlayer *anim, int p_page_size_kb); - Node *pre_import(const String &p_source_file); + Node *pre_import(const String &p_source_file, const HashMap<StringName, Variant> &p_options); virtual Error import(const String &p_source_file, const String &p_save_path, const HashMap<StringName, Variant> &p_options, List<String> *r_platform_variants, List<String> *r_gen_files = nullptr, Variant *r_metadata = nullptr) override; virtual bool has_advanced_options() const override; diff --git a/editor/import/resource_importer_texture_atlas.cpp b/editor/import/resource_importer_texture_atlas.cpp index aa338a6c0d..28653dac3e 100644 --- a/editor/import/resource_importer_texture_atlas.cpp +++ b/editor/import/resource_importer_texture_atlas.cpp @@ -88,13 +88,7 @@ Error ResourceImporterTextureAtlas::import(const String &p_source_file, const St //use an xpm because it's size independent, the editor images are vector and size dependent //it's a simple hack Ref<Image> broken = memnew(Image((const char **)atlas_import_failed_xpm)); - Ref<ImageTexture> broken_texture; - broken_texture.instantiate(); - broken_texture->create_from_image(broken); - - String target_file = p_save_path + ".tex"; - - ResourceSaver::save(target_file, broken_texture); + ResourceSaver::save(p_save_path + ".tex", ImageTexture::create_from_image(broken)); return OK; } @@ -306,13 +300,9 @@ Error ResourceImporterTextureAtlas::import_group_file(const String &p_group_file //update cache if existing, else create Ref<Texture2D> cache; - if (ResourceCache::has(p_group_file)) { - Resource *resptr = ResourceCache::get(p_group_file); - cache.reference_ptr(resptr); - } else { - Ref<ImageTexture> res_cache; - res_cache.instantiate(); - res_cache->create_from_image(new_atlas); + cache = ResourceCache::get_ref(p_group_file); + if (!cache.is_valid()) { + Ref<ImageTexture> res_cache = ImageTexture::create_from_image(new_atlas); res_cache->set_path(p_group_file); cache = res_cache; } diff --git a/editor/import/resource_importer_wav.cpp b/editor/import/resource_importer_wav.cpp index 362940dc17..f0ba1eb7a1 100644 --- a/editor/import/resource_importer_wav.cpp +++ b/editor/import/resource_importer_wav.cpp @@ -162,7 +162,7 @@ Error ResourceImporterWAV::import(const String &p_source_file, const String &p_s //Consider revision for engine version 3.0 compression_code = file->get_16(); if (compression_code != 1 && compression_code != 3) { - ERR_FAIL_V_MSG(ERR_INVALID_DATA, "Format not supported for WAVE file (not PCM). Save WAVE files as uncompressed PCM instead."); + ERR_FAIL_V_MSG(ERR_INVALID_DATA, "Format not supported for WAVE file (not PCM). Save WAVE files as uncompressed PCM or IEEE float instead."); } format_channels = file->get_16(); @@ -180,6 +180,10 @@ Error ResourceImporterWAV::import(const String &p_source_file, const String &p_s ERR_FAIL_V_MSG(ERR_INVALID_DATA, "Invalid amount of bits in the sample (should be one of 8, 16, 24 or 32)."); } + if (compression_code == 3 && format_bits % 32) { + ERR_FAIL_V_MSG(ERR_INVALID_DATA, "Invalid amount of bits in the IEEE float sample (should be 32 or 64)."); + } + /* Don't need anything else, continue */ format_found = true; } @@ -208,36 +212,46 @@ Error ResourceImporterWAV::import(const String &p_source_file, const String &p_s data.resize(frames * format_channels); - if (format_bits == 8) { - for (int i = 0; i < frames * format_channels; i++) { - // 8 bit samples are UNSIGNED + if (compression_code == 1) { + if (format_bits == 8) { + for (int i = 0; i < frames * format_channels; i++) { + // 8 bit samples are UNSIGNED - data.write[i] = int8_t(file->get_8() - 128) / 128.f; - } - } else if (format_bits == 32 && compression_code == 3) { - for (int i = 0; i < frames * format_channels; i++) { - //32 bit IEEE Float + data.write[i] = int8_t(file->get_8() - 128) / 128.f; + } + } else if (format_bits == 16) { + for (int i = 0; i < frames * format_channels; i++) { + //16 bit SIGNED - data.write[i] = file->get_float(); - } - } else if (format_bits == 16) { - for (int i = 0; i < frames * format_channels; i++) { - //16 bit SIGNED + data.write[i] = int16_t(file->get_16()) / 32768.f; + } + } else { + for (int i = 0; i < frames * format_channels; i++) { + //16+ bits samples are SIGNED + // if sample is > 16 bits, just read extra bytes + + uint32_t s = 0; + for (int b = 0; b < (format_bits >> 3); b++) { + s |= ((uint32_t)file->get_8()) << (b * 8); + } + s <<= (32 - format_bits); - data.write[i] = int16_t(file->get_16()) / 32768.f; + data.write[i] = (int32_t(s) >> 16) / 32768.f; + } } - } else { - for (int i = 0; i < frames * format_channels; i++) { - //16+ bits samples are SIGNED - // if sample is > 16 bits, just read extra bytes - - uint32_t s = 0; - for (int b = 0; b < (format_bits >> 3); b++) { - s |= ((uint32_t)file->get_8()) << (b * 8); + } else if (compression_code == 3) { + if (format_bits == 32) { + for (int i = 0; i < frames * format_channels; i++) { + //32 bit IEEE Float + + data.write[i] = file->get_float(); } - s <<= (32 - format_bits); + } else if (format_bits == 64) { + for (int i = 0; i < frames * format_channels; i++) { + //64 bit IEEE Float - data.write[i] = (int32_t(s) >> 16) / 32768.f; + data.write[i] = file->get_double(); + } } } diff --git a/editor/import/scene_import_settings.cpp b/editor/import/scene_import_settings.cpp index 99d1658405..0e2967dc42 100644 --- a/editor/import/scene_import_settings.cpp +++ b/editor/import/scene_import_settings.cpp @@ -135,6 +135,12 @@ void SceneImportSettings::_fill_material(Tree *p_tree, const Ref<Material> &p_ma String import_id; bool has_import_id = false; + bool created = false; + if (!material_set.has(p_material)) { + material_set.insert(p_material); + created = true; + } + if (p_material->has_meta("import_id")) { import_id = p_material->get_meta("import_id"); has_import_id = true; @@ -142,7 +148,7 @@ void SceneImportSettings::_fill_material(Tree *p_tree, const Ref<Material> &p_ma import_id = p_material->get_name(); has_import_id = true; } else { - import_id = "@MATERIAL:" + itos(material_set.size()); + import_id = "@MATERIAL:" + itos(material_set.size() - 1); } if (!material_map.has(import_id)) { @@ -160,14 +166,12 @@ void SceneImportSettings::_fill_material(Tree *p_tree, const Ref<Material> &p_ma Ref<Texture2D> icon = get_theme_icon(SNAME("StandardMaterial3D"), SNAME("EditorIcons")); TreeItem *item = p_tree->create_item(p_parent); - item->set_text(0, p_material->get_name()); - item->set_icon(0, icon); - - bool created = false; - if (!material_set.has(p_material)) { - material_set.insert(p_material); - created = true; + if (p_material->get_name().is_empty()) { + item->set_text(0, TTR("<Unnamed Material>")); + } else { + item->set_text(0, p_material->get_name()); } + item->set_icon(0, icon); item->set_meta("type", "Material"); item->set_meta("import_id", import_id); @@ -339,6 +343,8 @@ void SceneImportSettings::_fill_scene(Node *p_node, TreeItem *p_parent_item) { category = ResourceImporterScene::INTERNAL_IMPORT_CATEGORY_MESH_3D_NODE; } else if (Object::cast_to<AnimationPlayer>(p_node)) { category = ResourceImporterScene::INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE; + } else if (Object::cast_to<Skeleton3D>(p_node)) { + category = ResourceImporterScene::INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE; } else { category = ResourceImporterScene::INTERNAL_IMPORT_CATEGORY_NODE; } @@ -536,12 +542,6 @@ void SceneImportSettings::open_settings(const String &p_path, bool p_for_animati scene_import_settings_data->settings = nullptr; scene_import_settings_data->path = p_path; - scene = ResourceImporterScene::get_scene_singleton()->pre_import(p_path); // Use the scene singleton here because we want to see the full thing. - if (scene == nullptr) { - EditorNode::get_singleton()->show_warning(TTR("Error opening scene")); - return; - } - // Visibility data_mode->set_tab_hidden(1, p_for_animation); data_mode->set_tab_hidden(2, p_for_animation); @@ -587,6 +587,12 @@ void SceneImportSettings::open_settings(const String &p_path, bool p_for_animati } } + scene = ResourceImporterScene::get_scene_singleton()->pre_import(p_path, defaults); // Use the scene singleton here because we want to see the full thing. + if (scene == nullptr) { + EditorNode::get_singleton()->show_warning(TTR("Error opening scene")); + return; + } + first_aabb = true; _update_scene(); @@ -604,6 +610,9 @@ void SceneImportSettings::open_settings(const String &p_path, bool p_for_animati _update_view_gizmos(); _update_camera(); + // Start with the root item (Scene) selected. + scene_tree->get_root()->select(0); + if (p_for_animation) { set_title(vformat(TTR("Advanced Import Settings for AnimationLibrary '%s'"), base_path.get_file())); } else { @@ -617,6 +626,13 @@ SceneImportSettings *SceneImportSettings::get_singleton() { return singleton; } +Node *SceneImportSettings::get_selected_node() { + if (selected_id == "") { + return nullptr; + } + return node_map[selected_id].node; +} + void SceneImportSettings::_select(Tree *p_from, String p_type, String p_id) { selecting = true; scene_import_settings_data->hide_options = false; @@ -657,6 +673,8 @@ void SceneImportSettings::_select(Tree *p_from, String p_type, String p_id) { scene_import_settings_data->hide_options = editing_animation; } else if (Object::cast_to<AnimationPlayer>(nd.node)) { scene_import_settings_data->category = ResourceImporterScene::INTERNAL_IMPORT_CATEGORY_ANIMATION_NODE; + } else if (Object::cast_to<Skeleton3D>(nd.node)) { + scene_import_settings_data->category = ResourceImporterScene::INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE; } else { scene_import_settings_data->category = ResourceImporterScene::INTERNAL_IMPORT_CATEGORY_NODE; scene_import_settings_data->hide_options = editing_animation; @@ -1041,7 +1059,7 @@ void SceneImportSettings::_save_dir_callback(const String &p_path) { } external_paths->set_title(TTR("Extract Materials to Resource Files")); - external_paths->get_ok_button()->set_text(TTR("Extract")); + external_paths->set_ok_button_text(TTR("Extract")); } break; case ACTION_CHOOSE_MESH_SAVE_PATHS: { for (const KeyValue<String, MeshData> &E : mesh_map) { @@ -1094,7 +1112,7 @@ void SceneImportSettings::_save_dir_callback(const String &p_path) { } external_paths->set_title(TTR("Set paths to save meshes as resource files on Reimport")); - external_paths->get_ok_button()->set_text(TTR("Set Paths")); + external_paths->set_ok_button_text(TTR("Set Paths")); } break; case ACTION_CHOOSE_ANIMATION_SAVE_PATHS: { for (const KeyValue<String, AnimationData> &E : animation_map) { @@ -1140,7 +1158,7 @@ void SceneImportSettings::_save_dir_callback(const String &p_path) { } external_paths->set_title(TTR("Set paths to save animations as resource files on Reimport")); - external_paths->get_ok_button()->set_text(TTR("Set Paths")); + external_paths->set_ok_button_text(TTR("Set Paths")); } break; } @@ -1329,8 +1347,8 @@ SceneImportSettings::SceneImportSettings() { scene_import_settings_data = memnew(SceneImportSettingsData); - get_ok_button()->set_text(TTR("Reimport")); - get_cancel_button()->set_text(TTR("Close")); + set_ok_button_text(TTR("Reimport")); + set_cancel_button_text(TTR("Close")); external_paths = memnew(ConfirmationDialog); add_child(external_paths); @@ -1364,8 +1382,8 @@ SceneImportSettings::SceneImportSettings() { item_save_path = memnew(EditorFileDialog); item_save_path->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE); - item_save_path->add_filter("*.tres; " + TTR("Text Resource")); - item_save_path->add_filter("*.res; " + TTR("Binary Resource")); + item_save_path->add_filter("*.tres", TTR("Text Resource")); + item_save_path->add_filter("*.res", TTR("Binary Resource")); add_child(item_save_path); item_save_path->connect("file_selected", callable_mp(this, &SceneImportSettings::_save_path_changed)); diff --git a/editor/import/scene_import_settings.h b/editor/import/scene_import_settings.h index 81d13166ab..b5cf82f64b 100644 --- a/editor/import/scene_import_settings.h +++ b/editor/import/scene_import_settings.h @@ -201,6 +201,7 @@ public: void update_view(); void open_settings(const String &p_path, bool p_for_animation = false); static SceneImportSettings *get_singleton(); + Node *get_selected_node(); SceneImportSettings(); ~SceneImportSettings(); }; diff --git a/editor/import_dock.cpp b/editor/import_dock.cpp index 6bb71ff491..f9e5885f9d 100644 --- a/editor/import_dock.cpp +++ b/editor/import_dock.cpp @@ -671,7 +671,7 @@ ImportDock::ImportDock() { advanced->connect("pressed", callable_mp(this, &ImportDock::_advanced_options)); reimport_confirm = memnew(ConfirmationDialog); - reimport_confirm->get_ok_button()->set_text(TTR("Save Scenes, Re-Import, and Restart")); + reimport_confirm->set_ok_button_text(TTR("Save Scenes, Re-Import, and Restart")); content->add_child(reimport_confirm); reimport_confirm->connect("confirmed", callable_mp(this, &ImportDock::_reimport_and_restart)); diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp index ad92911810..a509cf3d8f 100644 --- a/editor/inspector_dock.cpp +++ b/editor/inspector_dock.cpp @@ -219,12 +219,12 @@ void InspectorDock::_load_resource(const String &p_type) { load_resource_dialog->clear_filters(); for (int i = 0; i < extensions.size(); i++) { - load_resource_dialog->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper()); + load_resource_dialog->add_filter("*." + extensions[i], extensions[i].to_upper()); } const Vector<String> textfile_ext = ((String)(EditorSettings::get_singleton()->get("docks/filesystem/textfile_extensions"))).split(",", false); for (int i = 0; i < textfile_ext.size(); i++) { - load_resource_dialog->add_filter("*." + textfile_ext[i] + " ; " + textfile_ext[i].to_upper()); + load_resource_dialog->add_filter("*." + textfile_ext[i], textfile_ext[i].to_upper()); } load_resource_dialog->popup_file_dialog(); diff --git a/editor/plugin_config_dialog.cpp b/editor/plugin_config_dialog.cpp index 77e4905341..7061204832 100644 --- a/editor/plugin_config_dialog.cpp +++ b/editor/plugin_config_dialog.cpp @@ -200,7 +200,7 @@ void PluginConfigDialog::config(const String &p_config_path) { _on_required_text_changed(""); get_ok_button()->set_disabled(!_edit_mode); - get_ok_button()->set_text(_edit_mode ? TTR("Update") : TTR("Create")); + set_ok_button_text(_edit_mode ? TTR("Update") : TTR("Create")); } void PluginConfigDialog::_bind_methods() { diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp index ad6d8e6379..a5ca55f6df 100644 --- a/editor/plugins/abstract_polygon_2d_editor.cpp +++ b/editor/plugins/abstract_polygon_2d_editor.cpp @@ -565,7 +565,7 @@ void AbstractPolygon2DEditor::forward_canvas_draw_over_viewport(Control *p_overl Ref<Font> font = get_theme_font(SNAME("font"), SNAME("Label")); int font_size = get_theme_font_size(SNAME("font_size"), SNAME("Label")); String num = String::num(vertex.vertex); - Size2 num_size = font->get_string_size(num, font_size); + Size2 num_size = font->get_string_size(num, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size); p_overlay->draw_string(font, point - num_size * 0.5, num, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(1.0, 1.0, 1.0, 0.5)); } } @@ -733,7 +733,7 @@ AbstractPolygon2DEditor::AbstractPolygon2DEditor(bool p_wip_destructive) { create_resource = memnew(ConfirmationDialog); add_child(create_resource); - create_resource->get_ok_button()->set_text(TTR("Create")); + create_resource->set_ok_button_text(TTR("Create")); } void AbstractPolygon2DEditorPlugin::edit(Object *p_object) { diff --git a/editor/plugins/animation_blend_space_1d_editor.cpp b/editor/plugins/animation_blend_space_1d_editor.cpp index 2e4dcab203..248ba021ce 100644 --- a/editor/plugins/animation_blend_space_1d_editor.cpp +++ b/editor/plugins/animation_blend_space_1d_editor.cpp @@ -215,7 +215,7 @@ void AnimationNodeBlendSpace1DEditor::_blend_space_draw() { blend_space_draw->draw_rect(Rect2(Point2(), s), color, false); } - blend_space_draw->draw_line(Point2(1, s.height - 1), Point2(s.width - 1, s.height - 1), linecolor); + blend_space_draw->draw_line(Point2(1, s.height - 1), Point2(s.width - 1, s.height - 1), linecolor, Math::round(EDSCALE)); if (blend_space->get_min_space() < 0) { float point = 0.0; @@ -224,9 +224,9 @@ void AnimationNodeBlendSpace1DEditor::_blend_space_draw() { float x = point; - blend_space_draw->draw_line(Point2(x, s.height - 1), Point2(x, s.height - 5 * EDSCALE), linecolor); + blend_space_draw->draw_line(Point2(x, s.height - 1), Point2(x, s.height - 5 * EDSCALE), linecolor, Math::round(EDSCALE)); blend_space_draw->draw_string(font, Point2(x + 2 * EDSCALE, s.height - 2 * EDSCALE - font->get_height(font_size) + font->get_ascent(font_size)), "0", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, linecolor); - blend_space_draw->draw_line(Point2(x, s.height - 5 * EDSCALE), Point2(x, 0), linecolor_soft); + blend_space_draw->draw_line(Point2(x, s.height - 5 * EDSCALE), Point2(x, 0), linecolor_soft, Math::round(EDSCALE)); } if (snap->is_pressed()) { @@ -240,7 +240,7 @@ void AnimationNodeBlendSpace1DEditor::_blend_space_draw() { int idx = int(v / blend_space->get_snap()); if (i > 0 && prev_idx != idx) { - blend_space_draw->draw_line(Point2(i, 0), Point2(i, s.height), linecolor_soft); + blend_space_draw->draw_line(Point2(i, 0), Point2(i, s.height), linecolor_soft, Math::round(EDSCALE)); } prev_idx = idx; @@ -297,10 +297,10 @@ void AnimationNodeBlendSpace1DEditor::_blend_space_draw() { float mind = 5 * EDSCALE; float maxd = 15 * EDSCALE; - blend_space_draw->draw_line(gui_point + Vector2(mind, 0), gui_point + Vector2(maxd, 0), color, 2); - blend_space_draw->draw_line(gui_point + Vector2(-mind, 0), gui_point + Vector2(-maxd, 0), color, 2); - blend_space_draw->draw_line(gui_point + Vector2(0, mind), gui_point + Vector2(0, maxd), color, 2); - blend_space_draw->draw_line(gui_point + Vector2(0, -mind), gui_point + Vector2(0, -maxd), color, 2); + blend_space_draw->draw_line(gui_point + Vector2(mind, 0), gui_point + Vector2(maxd, 0), color, Math::round(2 * EDSCALE)); + blend_space_draw->draw_line(gui_point + Vector2(-mind, 0), gui_point + Vector2(-maxd, 0), color, Math::round(2 * EDSCALE)); + blend_space_draw->draw_line(gui_point + Vector2(0, mind), gui_point + Vector2(0, maxd), color, Math::round(2 * EDSCALE)); + blend_space_draw->draw_line(gui_point + Vector2(0, -mind), gui_point + Vector2(0, -maxd), color, Math::round(2 * EDSCALE)); } } diff --git a/editor/plugins/animation_blend_space_2d_editor.cpp b/editor/plugins/animation_blend_space_2d_editor.cpp index 86addde87b..dfde63ecb6 100644 --- a/editor/plugins/animation_blend_space_2d_editor.cpp +++ b/editor/plugins/animation_blend_space_2d_editor.cpp @@ -407,22 +407,22 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_draw() { Color color = get_theme_color(SNAME("accent_color"), SNAME("Editor")); blend_space_draw->draw_rect(Rect2(Point2(), s), color, false); } - blend_space_draw->draw_line(Point2(1, 0), Point2(1, s.height - 1), linecolor); - blend_space_draw->draw_line(Point2(1, s.height - 1), Point2(s.width - 1, s.height - 1), linecolor); + blend_space_draw->draw_line(Point2(1, 0), Point2(1, s.height - 1), linecolor, Math::round(EDSCALE)); + blend_space_draw->draw_line(Point2(1, s.height - 1), Point2(s.width - 1, s.height - 1), linecolor, Math::round(EDSCALE)); - blend_space_draw->draw_line(Point2(0, 0), Point2(5 * EDSCALE, 0), linecolor); + blend_space_draw->draw_line(Point2(0, 0), Point2(5 * EDSCALE, 0), linecolor, Math::round(EDSCALE)); if (blend_space->get_min_space().y < 0) { int y = (blend_space->get_max_space().y / (blend_space->get_max_space().y - blend_space->get_min_space().y)) * s.height; - blend_space_draw->draw_line(Point2(0, y), Point2(5 * EDSCALE, y), linecolor); + blend_space_draw->draw_line(Point2(0, y), Point2(5 * EDSCALE, y), linecolor, Math::round(EDSCALE)); blend_space_draw->draw_string(font, Point2(2 * EDSCALE, y - font->get_height(font_size) + font->get_ascent(font_size)), "0", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, linecolor); - blend_space_draw->draw_line(Point2(5 * EDSCALE, y), Point2(s.width, y), linecolor_soft); + blend_space_draw->draw_line(Point2(5 * EDSCALE, y), Point2(s.width, y), linecolor_soft, Math::round(EDSCALE)); } if (blend_space->get_min_space().x < 0) { int x = (-blend_space->get_min_space().x / (blend_space->get_max_space().x - blend_space->get_min_space().x)) * s.width; - blend_space_draw->draw_line(Point2(x, s.height - 1), Point2(x, s.height - 5 * EDSCALE), linecolor); + blend_space_draw->draw_line(Point2(x, s.height - 1), Point2(x, s.height - 5 * EDSCALE), linecolor, Math::round(EDSCALE)); blend_space_draw->draw_string(font, Point2(x + 2 * EDSCALE, s.height - 2 * EDSCALE - font->get_height(font_size) + font->get_ascent(font_size)), "0", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, linecolor); - blend_space_draw->draw_line(Point2(x, s.height - 5 * EDSCALE), Point2(x, 0), linecolor_soft); + blend_space_draw->draw_line(Point2(x, s.height - 5 * EDSCALE), Point2(x, 0), linecolor_soft, Math::round(EDSCALE)); } if (snap->is_pressed()) { @@ -435,7 +435,7 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_draw() { int idx = int(v / blend_space->get_snap().x); if (i > 0 && prev_idx != idx) { - blend_space_draw->draw_line(Point2(i, 0), Point2(i, s.height), linecolor_soft); + blend_space_draw->draw_line(Point2(i, 0), Point2(i, s.height), linecolor_soft, Math::round(EDSCALE)); } prev_idx = idx; @@ -449,7 +449,7 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_draw() { int idx = int(v / blend_space->get_snap().y); if (i > 0 && prev_idx != idx) { - blend_space_draw->draw_line(Point2(0, i), Point2(s.width, i), linecolor_soft); + blend_space_draw->draw_line(Point2(0, i), Point2(s.width, i), linecolor_soft, Math::round(EDSCALE)); } prev_idx = idx; @@ -478,7 +478,7 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_draw() { } for (int j = 0; j < 3; j++) { - blend_space_draw->draw_line(points[j], points[(j + 1) % 3], linecolor, 1); + blend_space_draw->draw_line(points[j], points[(j + 1) % 3], linecolor, Math::round(EDSCALE), true); } Color color; @@ -533,9 +533,9 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_draw() { } for (int i = 0; i < points.size() - 1; i++) { - blend_space_draw->draw_line(points[i], points[i + 1], linecolor, 2); + blend_space_draw->draw_line(points[i], points[i + 1], linecolor, Math::round(2 * EDSCALE), true); } - blend_space_draw->draw_line(points[points.size() - 1], blend_space_draw->get_local_mouse_position(), linecolor, 2); + blend_space_draw->draw_line(points[points.size() - 1], blend_space_draw->get_local_mouse_position(), linecolor, Math::round(2 * EDSCALE), true); } ///draw cursor position @@ -564,15 +564,15 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_draw() { Color lcol = color; lcol.a *= 0.4; - blend_space_draw->draw_line(point, closest, lcol, 2); + blend_space_draw->draw_line(point, closest, lcol, Math::round(2 * EDSCALE), true); } float mind = 5 * EDSCALE; float maxd = 15 * EDSCALE; - blend_space_draw->draw_line(point + Vector2(mind, 0), point + Vector2(maxd, 0), color, 2); - blend_space_draw->draw_line(point + Vector2(-mind, 0), point + Vector2(-maxd, 0), color, 2); - blend_space_draw->draw_line(point + Vector2(0, mind), point + Vector2(0, maxd), color, 2); - blend_space_draw->draw_line(point + Vector2(0, -mind), point + Vector2(0, -maxd), color, 2); + blend_space_draw->draw_line(point + Vector2(mind, 0), point + Vector2(maxd, 0), color, Math::round(2 * EDSCALE)); + blend_space_draw->draw_line(point + Vector2(-mind, 0), point + Vector2(-maxd, 0), color, Math::round(2 * EDSCALE)); + blend_space_draw->draw_line(point + Vector2(0, mind), point + Vector2(0, maxd), color, Math::round(2 * EDSCALE)); + blend_space_draw->draw_line(point + Vector2(0, -mind), point + Vector2(0, -maxd), color, Math::round(2 * EDSCALE)); } } diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp index 98ccc1fdbe..3d4701a54a 100644 --- a/editor/plugins/animation_player_editor_plugin.cpp +++ b/editor/plugins/animation_player_editor_plugin.cpp @@ -135,7 +135,7 @@ void AnimationPlayerEditor::_notification(int p_what) { autoplay_reset_img->blit_rect(autoplay_img, Rect2(Point2(), icon_size), Point2()); autoplay_reset_img->blit_rect(reset_img, Rect2(Point2(), icon_size), Point2(icon_size.x, 0)); autoplay_reset_icon.instantiate(); - autoplay_reset_icon->create_from_image(autoplay_reset_img); + autoplay_reset_icon->set_image(autoplay_reset_img); } stop->set_icon(get_theme_icon(SNAME("Stop"), SNAME("EditorIcons"))); @@ -1053,7 +1053,7 @@ void AnimationPlayerEditor::_animation_duplicate() { _update_name_dialog_library_dropdown(); name_dialog_op = TOOL_DUPLICATE_ANIM; - name_dialog->set_title("Duplicate Animation"); + name_dialog->set_title(TTR("Duplicate Animation")); name_title->set_text(TTR("Duplicated Animation Name:")); name->set_text(new_name); name_dialog->popup_centered(Size2(300, 90)); @@ -1688,7 +1688,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(AnimationPlayerEditorPlugin *p_plug name_dialog->register_text_enter(name); error_dialog = memnew(ConfirmationDialog); - error_dialog->get_ok_button()->set_text(TTR("Close")); + error_dialog->set_ok_button_text(TTR("Close")); error_dialog->set_title(TTR("Error!")); add_child(error_dialog); @@ -1696,7 +1696,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(AnimationPlayerEditorPlugin *p_plug blend_editor.dialog = memnew(AcceptDialog); add_child(blend_editor.dialog); - blend_editor.dialog->get_ok_button()->set_text(TTR("Close")); + blend_editor.dialog->set_ok_button_text(TTR("Close")); blend_editor.dialog->set_hide_on_ok(true); VBoxContainer *blend_vb = memnew(VBoxContainer); blend_editor.dialog->add_child(blend_vb); diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp index 2ba2466646..05d7a5f973 100644 --- a/editor/plugins/animation_state_machine_editor.cpp +++ b/editor/plugins/animation_state_machine_editor.cpp @@ -817,11 +817,11 @@ bool AnimationNodeStateMachineEditor::_create_submenu(PopupMenu *p_menu, Ref<Ani Vector<Ref<AnimationNodeStateMachine>> parents = p_parents; if (from_root) { - Ref<AnimationNodeStateMachine> prev = p_nodesm->get_prev_state_machine(); + AnimationNodeStateMachine *prev = p_nodesm->get_prev_state_machine(); - while (prev.is_valid()) { + while (prev != nullptr) { parents.push_back(prev); - p_nodesm = prev; + p_nodesm = Ref<AnimationNodeStateMachine>(prev); prev_path += "../"; prev = prev->get_prev_state_machine(); } @@ -1224,7 +1224,7 @@ void AnimationNodeStateMachineEditor::_state_machine_draw() { Ref<StyleBox> sb = selected_nodes.has(E) ? style_selected : style; Size2 s = sb->get_minimum_size(); - int strsize = font->get_string_size(name, font_size).width; + int strsize = font->get_string_size(name, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).width; s.width += strsize; s.height += MAX(font->get_height(font_size), play->get_height()); s.width += sep + play->get_width(); @@ -1379,7 +1379,7 @@ void AnimationNodeStateMachineEditor::_state_machine_draw() { Ref<AnimationNode> anode = state_machine->get_node(name); bool needs_editor = AnimationTreeEditor::get_singleton()->can_edit(anode); Ref<StyleBox> sb = selected_nodes.has(name) ? style_selected : style; - int strsize = font->get_string_size(name, font_size).width; + int strsize = font->get_string_size(name, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).width; NodeRect &nr = node_rects.write[i]; Vector2 offset = nr.node.position; diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp index 249b3a6d6a..bc95624dd5 100644 --- a/editor/plugins/asset_library_editor_plugin.cpp +++ b/editor/plugins/asset_library_editor_plugin.cpp @@ -32,6 +32,7 @@ #include "core/input/input.h" #include "core/io/json.h" +#include "core/io/stream_peer_ssl.h" #include "core/os/keyboard.h" #include "core/version.h" #include "editor/editor_file_dialog.h" @@ -164,14 +165,9 @@ void EditorAssetLibraryItemDescription::set_image(int p_type, int p_index, const // Overlay and thumbnail need the same format for `blend_rect` to work. thumbnail->convert(Image::FORMAT_RGBA8); - thumbnail->blend_rect(overlay, overlay->get_used_rect(), overlay_pos); + preview_images[i].button->set_icon(ImageTexture::create_from_image(thumbnail)); - Ref<ImageTexture> tex; - tex.instantiate(); - tex->create_from_image(thumbnail); - - preview_images[i].button->set_icon(tex); // Make it clearer that clicking it will open an external link preview_images[i].button->set_default_cursor_shape(Control::CURSOR_POINTING_HAND); } else { @@ -290,12 +286,15 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() { hbox->add_child(previews_vbox); previews_vbox->add_theme_constant_override("separation", 15 * EDSCALE); previews_vbox->set_v_size_flags(Control::SIZE_EXPAND_FILL); + previews_vbox->set_h_size_flags(Control::SIZE_EXPAND_FILL); preview = memnew(TextureRect); previews_vbox->add_child(preview); preview->set_ignore_texture_size(true); preview->set_stretch_mode(TextureRect::STRETCH_KEEP_ASPECT_CENTERED); preview->set_custom_minimum_size(Size2(640 * EDSCALE, 345 * EDSCALE)); + preview->set_v_size_flags(Control::SIZE_EXPAND_FILL); + preview->set_h_size_flags(Control::SIZE_EXPAND_FILL); previews_bg = memnew(PanelContainer); previews_vbox->add_child(previews_bg); @@ -308,8 +307,8 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() { preview_hb->set_v_size_flags(Control::SIZE_EXPAND_FILL); previews->add_child(preview_hb); - get_ok_button()->set_text(TTR("Download")); - get_cancel_button()->set_text(TTR("Close")); + set_ok_button_text(TTR("Download")); + set_cancel_button_text(TTR("Close")); } /////////////////////////////////////////////////////////////////////////////////// @@ -620,6 +619,10 @@ void EditorAssetLibrary::_notification(int p_what) { } break; + case NOTIFICATION_RESIZED: { + _update_asset_items_columns(); + } break; + case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { _update_repository_options(); setup_http_request(request); @@ -782,9 +785,7 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const PackedB } break; } - Ref<ImageTexture> tex; - tex.instantiate(); - tex->create_from_image(image); + Ref<ImageTexture> tex = ImageTexture::create_from_image(image); obj->call("set_image", image_queue[p_queue_id].image_type, image_queue[p_queue_id].image_index, tex); image_set = true; @@ -1209,7 +1210,7 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const library_vb->add_child(asset_top_page); asset_items = memnew(GridContainer); - asset_items->set_columns(2); + _update_asset_items_columns(); asset_items->add_theme_constant_override("h_separation", 10 * EDSCALE); asset_items->add_theme_constant_override("v_separation", 10 * EDSCALE); @@ -1292,14 +1293,14 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const EditorAssetLibraryItemDownload *download_item = _get_asset_in_progress(description->get_asset_id()); if (download_item) { if (download_item->can_install()) { - description->get_ok_button()->set_text(TTR("Install")); + description->set_ok_button_text(TTR("Install")); description->get_ok_button()->set_disabled(false); } else { - description->get_ok_button()->set_text(TTR("Downloading...")); + description->set_ok_button_text(TTR("Downloading...")); description->get_ok_button()->set_disabled(true); } } else { - description->get_ok_button()->set_text(TTR("Download")); + description->set_ok_button_text(TTR("Download")); description->get_ok_button()->set_disabled(false); } @@ -1375,12 +1376,17 @@ void EditorAssetLibrary::_install_external_asset(String p_zip_path, String p_tit emit_signal(SNAME("install_asset"), p_zip_path, p_title); } -void EditorAssetLibrary::disable_community_support() { - support->get_popup()->set_item_checked(SUPPORT_COMMUNITY, false); +void EditorAssetLibrary::_update_asset_items_columns() { + int new_columns = get_size().x / (450.0 * EDSCALE); + new_columns = MAX(1, new_columns); + + if (new_columns != asset_items->get_columns()) { + asset_items->set_columns(new_columns); + } } -void EditorAssetLibrary::set_columns(const int p_columns) { - asset_items->set_columns(p_columns); +void EditorAssetLibrary::disable_community_support() { + support->get_popup()->set_item_checked(SUPPORT_COMMUNITY, false); } void EditorAssetLibrary::_bind_methods() { @@ -1538,7 +1544,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { library_vb->add_child(asset_top_page); asset_items = memnew(GridContainer); - asset_items->set_columns(2); + _update_asset_items_columns(); asset_items->add_theme_constant_override("h_separation", 10 * EDSCALE); asset_items->add_theme_constant_override("v_separation", 10 * EDSCALE); @@ -1578,7 +1584,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { asset_open = memnew(EditorFileDialog); asset_open->set_access(EditorFileDialog::ACCESS_FILESYSTEM); - asset_open->add_filter("*.zip ; " + TTR("Assets ZIP File")); + asset_open->add_filter("*.zip", TTR("Assets ZIP File")); asset_open->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE); add_child(asset_open); asset_open->connect("file_selected", callable_mp(this, &EditorAssetLibrary::_asset_file_selected)); @@ -1588,6 +1594,16 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { /////// +bool AssetLibraryEditorPlugin::is_available() { +#ifdef JAVASCRIPT_ENABLED + // Asset Library can't work on Web editor for now as most assets are sourced + // directly from GitHub which does not set CORS. + return false; +#else + return StreamPeerSSL::is_available(); +#endif +} + void AssetLibraryEditorPlugin::make_visible(bool p_visible) { if (p_visible) { addon_library->show(); diff --git a/editor/plugins/asset_library_editor_plugin.h b/editor/plugins/asset_library_editor_plugin.h index e09700b646..e02662b8db 100644 --- a/editor/plugins/asset_library_editor_plugin.h +++ b/editor/plugins/asset_library_editor_plugin.h @@ -301,6 +301,8 @@ class EditorAssetLibrary : public PanelContainer { void _install_external_asset(String p_zip_path, String p_title); + void _update_asset_items_columns(); + friend class EditorAssetLibraryItemDescription; friend class EditorAssetLibraryItem; @@ -311,7 +313,6 @@ protected: public: void disable_community_support(); - void set_columns(int p_columns); EditorAssetLibrary(bool p_templates_only = false); }; @@ -322,6 +323,8 @@ class AssetLibraryEditorPlugin : public EditorPlugin { EditorAssetLibrary *addon_library = nullptr; public: + static bool is_available(); + virtual String get_name() const override { return "AssetLib"; } bool has_main_screen() const override { return true; } virtual void edit(Object *p_object) override {} diff --git a/editor/plugins/bit_map_editor_plugin.cpp b/editor/plugins/bit_map_editor_plugin.cpp index 9003c4480b..657c5a36b6 100644 --- a/editor/plugins/bit_map_editor_plugin.cpp +++ b/editor/plugins/bit_map_editor_plugin.cpp @@ -33,11 +33,7 @@ #include "editor/editor_scale.h" void BitMapEditor::setup(const Ref<BitMap> &p_bitmap) { - Ref<ImageTexture> texture; - texture.instantiate(); - texture->create_from_image(p_bitmap->convert_to_image()); - texture_rect->set_texture(texture); - + texture_rect->set_texture(ImageTexture::create_from_image(p_bitmap->convert_to_image())); size_label->set_text(vformat(String::utf8("%s×%s"), p_bitmap->get_size().width, p_bitmap->get_size().height)); } diff --git a/editor/plugins/bone_map_editor_plugin.cpp b/editor/plugins/bone_map_editor_plugin.cpp new file mode 100644 index 0000000000..fffadae3eb --- /dev/null +++ b/editor/plugins/bone_map_editor_plugin.cpp @@ -0,0 +1,439 @@ +/*************************************************************************/ +/* bone_map_editor_plugin.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#include "bone_map_editor_plugin.h" + +#include "editor/editor_scale.h" +#include "editor/import/post_import_plugin_skeleton_renamer.h" +#include "editor/import/scene_import_settings.h" + +void BoneMapperButton::fetch_textures() { + if (selected) { + set_normal_texture(get_theme_icon(SNAME("BoneMapperHandleSelected"), SNAME("EditorIcons"))); + } else { + set_normal_texture(get_theme_icon(SNAME("BoneMapperHandle"), SNAME("EditorIcons"))); + } + set_offset(SIDE_LEFT, 0); + set_offset(SIDE_RIGHT, 0); + set_offset(SIDE_TOP, 0); + set_offset(SIDE_BOTTOM, 0); + + circle = memnew(TextureRect); + circle->set_texture(get_theme_icon(SNAME("BoneMapperHandleCircle"), SNAME("EditorIcons"))); + add_child(circle); + set_state(BONE_MAP_STATE_UNSET); +} + +StringName BoneMapperButton::get_profile_bone_name() const { + return profile_bone_name; +} + +void BoneMapperButton::set_state(BoneMapState p_state) { + switch (p_state) { + case BONE_MAP_STATE_UNSET: { + circle->set_modulate(EditorSettings::get_singleton()->get("editors/bone_mapper/handle_colors/unset")); + } break; + case BONE_MAP_STATE_SET: { + circle->set_modulate(EditorSettings::get_singleton()->get("editors/bone_mapper/handle_colors/set")); + } break; + case BONE_MAP_STATE_ERROR: { + circle->set_modulate(EditorSettings::get_singleton()->get("editors/bone_mapper/handle_colors/error")); + } break; + default: { + } break; + } +} + +void BoneMapperButton::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_ENTER_TREE: { + fetch_textures(); + } break; + } +} + +BoneMapperButton::BoneMapperButton(const StringName p_profile_bone_name, bool p_selected) { + profile_bone_name = p_profile_bone_name; + selected = p_selected; +} + +BoneMapperButton::~BoneMapperButton() { +} + +void BoneMapperItem::create_editor() { + skeleton_bone_selector = memnew(EditorPropertyTextEnum); + skeleton_bone_selector->setup(skeleton_bone_names); + skeleton_bone_selector->set_label(profile_bone_name); + skeleton_bone_selector->set_selectable(false); + skeleton_bone_selector->set_object_and_property(bone_map.ptr(), "bone_map/" + String(profile_bone_name)); + skeleton_bone_selector->update_property(); + skeleton_bone_selector->connect("property_changed", callable_mp(this, &BoneMapperItem::_value_changed)); + add_child(skeleton_bone_selector); +} + +void BoneMapperItem::_update_property() { + if (skeleton_bone_selector->get_edited_object() && skeleton_bone_selector->get_edited_property()) { + skeleton_bone_selector->update_property(); + } +} + +void BoneMapperItem::_value_changed(const String &p_property, Variant p_value, const String &p_name, bool p_changing) { + bone_map->set(p_property, p_value); +} + +void BoneMapperItem::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_ENTER_TREE: { + create_editor(); + bone_map->connect("bone_map_updated", callable_mp(this, &BoneMapperItem::_update_property)); + } break; + case NOTIFICATION_EXIT_TREE: { + if (!bone_map.is_null() && bone_map->is_connected("bone_map_updated", callable_mp(this, &BoneMapperItem::_update_property))) { + bone_map->disconnect("bone_map_updated", callable_mp(this, &BoneMapperItem::_update_property)); + } + } break; + } +} + +void BoneMapperItem::_bind_methods() { +} + +BoneMapperItem::BoneMapperItem(Ref<BoneMap> &p_bone_map, PackedStringArray p_skeleton_bone_names, const StringName &p_profile_bone_name) { + bone_map = p_bone_map; + skeleton_bone_names = p_skeleton_bone_names; + profile_bone_name = p_profile_bone_name; +} + +BoneMapperItem::~BoneMapperItem() { +} + +void BoneMapper::create_editor() { + profile_group_selector = memnew(EditorPropertyEnum); + profile_group_selector->set_label("Group"); + profile_group_selector->set_selectable(false); + profile_group_selector->set_object_and_property(this, "current_group_idx"); + profile_group_selector->update_property(); + profile_group_selector->connect("property_changed", callable_mp(this, &BoneMapper::_value_changed)); + add_child(profile_group_selector); + + bone_mapper_field = memnew(AspectRatioContainer); + bone_mapper_field->set_stretch_mode(AspectRatioContainer::STRETCH_FIT); + bone_mapper_field->set_custom_minimum_size(Vector2(0, 256.0) * EDSCALE); + bone_mapper_field->set_h_size_flags(Control::SIZE_FILL); + add_child(bone_mapper_field); + + profile_bg = memnew(ColorRect); + profile_bg->set_color(Color(0, 0, 0, 1)); + profile_bg->set_h_size_flags(Control::SIZE_FILL); + profile_bg->set_v_size_flags(Control::SIZE_FILL); + bone_mapper_field->add_child(profile_bg); + + profile_texture = memnew(TextureRect); + profile_texture->set_stretch_mode(TextureRect::STRETCH_KEEP_ASPECT_CENTERED); + profile_texture->set_ignore_texture_size(true); + profile_texture->set_h_size_flags(Control::SIZE_FILL); + profile_texture->set_v_size_flags(Control::SIZE_FILL); + bone_mapper_field->add_child(profile_texture); + + mapper_item_vbox = memnew(VBoxContainer); + add_child(mapper_item_vbox); + + separator = memnew(HSeparator); + add_child(separator); + + recreate_items(); +} + +void BoneMapper::update_group_idx() { + if (!bone_map->get_profile().is_valid()) { + return; + } + + PackedStringArray group_names; + int len = bone_map->get_profile()->get_group_size(); + for (int i = 0; i < len; i++) { + group_names.push_back(bone_map->get_profile()->get_group_name(i)); + } + if (current_group_idx >= len) { + current_group_idx = 0; + } + if (len > 0) { + profile_group_selector->setup(group_names); + profile_group_selector->update_property(); + profile_group_selector->set_read_only(false); + } +} + +void BoneMapper::set_current_group_idx(int p_group_idx) { + current_group_idx = p_group_idx; + recreate_editor(); +} + +int BoneMapper::get_current_group_idx() const { + return current_group_idx; +} + +void BoneMapper::set_current_bone_idx(int p_bone_idx) { + current_bone_idx = p_bone_idx; + recreate_editor(); +} + +int BoneMapper::get_current_bone_idx() const { + return current_bone_idx; +} + +void BoneMapper::recreate_editor() { + // Clear buttons. + int len = bone_mapper_buttons.size(); + for (int i = 0; i < len; i++) { + profile_texture->remove_child(bone_mapper_buttons[i]); + memdelete(bone_mapper_buttons[i]); + } + bone_mapper_buttons.clear(); + + // Organize mapper items. + len = bone_mapper_items.size(); + for (int i = 0; i < len; i++) { + bone_mapper_items[i]->set_visible(current_bone_idx == i); + } + + Ref<SkeletonProfile> profile = bone_map->get_profile(); + if (profile.is_valid()) { + SkeletonProfileHumanoid *hmn = Object::cast_to<SkeletonProfileHumanoid>(profile.ptr()); + if (hmn) { + StringName hmn_group_name = profile->get_group_name(current_group_idx); + if (hmn_group_name == "Body") { + profile_texture->set_texture(get_theme_icon(SNAME("BoneMapHumanBody"), SNAME("EditorIcons"))); + } else if (hmn_group_name == "Face") { + profile_texture->set_texture(get_theme_icon(SNAME("BoneMapHumanFace"), SNAME("EditorIcons"))); + } else if (hmn_group_name == "LeftHand") { + profile_texture->set_texture(get_theme_icon(SNAME("BoneMapHumanLeftHand"), SNAME("EditorIcons"))); + } else if (hmn_group_name == "RightHand") { + profile_texture->set_texture(get_theme_icon(SNAME("BoneMapHumanRightHand"), SNAME("EditorIcons"))); + } + } else { + profile_texture->set_texture(profile->get_texture(current_group_idx)); + } + } else { + profile_texture->set_texture(Ref<Texture2D>()); + } + + if (!profile.is_valid()) { + return; + } + + for (int i = 0; i < len; i++) { + if (profile->get_group(i) == profile->get_group_name(current_group_idx)) { + BoneMapperButton *mb = memnew(BoneMapperButton(profile->get_bone_name(i), current_bone_idx == i)); + mb->connect("pressed", callable_mp(this, &BoneMapper::set_current_bone_idx), varray(i), CONNECT_DEFERRED); + mb->set_h_grow_direction(GROW_DIRECTION_BOTH); + mb->set_v_grow_direction(GROW_DIRECTION_BOTH); + Vector2 vc = profile->get_handle_offset(i); + bone_mapper_buttons.push_back(mb); + profile_texture->add_child(mb); + mb->set_anchor(SIDE_LEFT, vc.x); + mb->set_anchor(SIDE_RIGHT, vc.x); + mb->set_anchor(SIDE_TOP, vc.y); + mb->set_anchor(SIDE_BOTTOM, vc.y); + } + } + + _update_state(); +} + +void BoneMapper::clear_items() { + // Clear items. + int len = bone_mapper_items.size(); + for (int i = 0; i < len; i++) { + mapper_item_vbox->remove_child(bone_mapper_items[i]); + memdelete(bone_mapper_items[i]); + } + bone_mapper_items.clear(); +} + +void BoneMapper::recreate_items() { + clear_items(); + // Create items by profile. + Ref<SkeletonProfile> profile = bone_map->get_profile(); + if (profile.is_valid()) { + PackedStringArray skeleton_bone_names; + skeleton_bone_names.push_back(String()); + + int len = skeleton->get_bone_count(); + for (int i = 0; i < len; i++) { + skeleton_bone_names.push_back(skeleton->get_bone_name(i)); + } + + len = profile->get_bone_size(); + for (int i = 0; i < len; i++) { + StringName bn = profile->get_bone_name(i); + bone_mapper_items.append(memnew(BoneMapperItem(bone_map, skeleton_bone_names, bn))); + mapper_item_vbox->add_child(bone_mapper_items[i]); + } + } + + update_group_idx(); + recreate_editor(); +} + +void BoneMapper::_update_state() { + int len = bone_mapper_buttons.size(); + for (int i = 0; i < len; i++) { + StringName sbn = bone_map->get_skeleton_bone_name(bone_mapper_buttons[i]->get_profile_bone_name()); + if (skeleton->find_bone(sbn) >= 0) { + if (bone_map->get_skeleton_bone_name_count(sbn) == 1) { + bone_mapper_buttons[i]->set_state(BoneMapperButton::BONE_MAP_STATE_SET); + } else { + bone_mapper_buttons[i]->set_state(BoneMapperButton::BONE_MAP_STATE_ERROR); + } + } else { + bone_mapper_buttons[i]->set_state(BoneMapperButton::BONE_MAP_STATE_UNSET); + } + } +} + +void BoneMapper::_value_changed(const String &p_property, Variant p_value, const String &p_name, bool p_changing) { + set(p_property, p_value); + recreate_editor(); +} + +void BoneMapper::_bind_methods() { + ClassDB::bind_method(D_METHOD("set_current_group_idx", "current_group_idx"), &BoneMapper::set_current_group_idx); + ClassDB::bind_method(D_METHOD("get_current_group_idx"), &BoneMapper::get_current_group_idx); + ClassDB::bind_method(D_METHOD("set_current_bone_idx", "current_bone_idx"), &BoneMapper::set_current_bone_idx); + ClassDB::bind_method(D_METHOD("get_current_bone_idx"), &BoneMapper::get_current_bone_idx); + ADD_PROPERTY(PropertyInfo(Variant::INT, "current_group_idx"), "set_current_group_idx", "get_current_group_idx"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "current_bone_idx"), "set_current_bone_idx", "get_current_bone_idx"); +} + +void BoneMapper::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_ENTER_TREE: { + create_editor(); + bone_map->connect("bone_map_updated", callable_mp(this, &BoneMapper::_update_state)); + bone_map->connect("profile_updated", callable_mp(this, &BoneMapper::recreate_items)); + } break; + case NOTIFICATION_EXIT_TREE: { + clear_items(); + if (!bone_map.is_null()) { + if (bone_map->is_connected("bone_map_updated", callable_mp(this, &BoneMapper::_update_state))) { + bone_map->disconnect("bone_map_updated", callable_mp(this, &BoneMapper::_update_state)); + } + if (bone_map->is_connected("profile_updated", callable_mp(this, &BoneMapper::recreate_items))) { + bone_map->disconnect("profile_updated", callable_mp(this, &BoneMapper::recreate_items)); + } + } + } + } +} + +BoneMapper::BoneMapper(Skeleton3D *p_skeleton, Ref<BoneMap> &p_bone_map) { + skeleton = p_skeleton; + bone_map = p_bone_map; +} + +BoneMapper::~BoneMapper() { +} + +void BoneMapEditor::create_editors() { + if (!skeleton) { + return; + } + bone_mapper = memnew(BoneMapper(skeleton, bone_map)); + add_child(bone_mapper); +} + +void BoneMapEditor::fetch_objects() { + // Hackey... but it may be the easist way to get a selected object from "ImporterScene". + SceneImportSettings *si = SceneImportSettings::get_singleton(); + if (!si) { + return; + } + Node *selected = si->get_selected_node(); + if (selected) { + Skeleton3D *sk = Object::cast_to<Skeleton3D>(selected); + if (!sk) { + return; + } + skeleton = sk; + } else { + // Editor should not exist. + skeleton = nullptr; + } +} + +void BoneMapEditor::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_ENTER_TREE: { + fetch_objects(); + create_editors(); + } break; + case NOTIFICATION_EXIT_TREE: { + remove_child(bone_mapper); + bone_mapper->queue_delete(); + } + } +} + +BoneMapEditor::BoneMapEditor(Ref<BoneMap> &p_bone_map) { + bone_map = p_bone_map; +} + +BoneMapEditor::~BoneMapEditor() { +} + +bool EditorInspectorPluginBoneMap::can_handle(Object *p_object) { + return Object::cast_to<BoneMap>(p_object) != nullptr; +} + +void EditorInspectorPluginBoneMap::parse_begin(Object *p_object) { + BoneMap *bm = Object::cast_to<BoneMap>(p_object); + if (!bm) { + return; + } + Ref<BoneMap> r(bm); + editor = memnew(BoneMapEditor(r)); + add_custom_control(editor); +} + +BoneMapEditorPlugin::BoneMapEditorPlugin() { + // Register properties in editor settings. + EDITOR_DEF("editors/bone_mapper/handle_colors/set", Color(0.1, 0.6, 0.25)); + EDITOR_DEF("editors/bone_mapper/handle_colors/error", Color(0.8, 0.2, 0.2)); + EDITOR_DEF("editors/bone_mapper/handle_colors/unset", Color(0.3, 0.3, 0.3)); + + Ref<EditorInspectorPluginBoneMap> inspector_plugin; + inspector_plugin.instantiate(); + add_inspector_plugin(inspector_plugin); + + Ref<PostImportPluginSkeletonRenamer> post_import_plugin_renamer; + post_import_plugin_renamer.instantiate(); + add_scene_post_import_plugin(post_import_plugin_renamer); +} diff --git a/editor/plugins/bone_map_editor_plugin.h b/editor/plugins/bone_map_editor_plugin.h new file mode 100644 index 0000000000..0ec9f74373 --- /dev/null +++ b/editor/plugins/bone_map_editor_plugin.h @@ -0,0 +1,176 @@ +/*************************************************************************/ +/* bone_map_editor_plugin.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#ifndef BONE_MAP_EDITOR_H +#define BONE_MAP_EDITOR_H + +#include "editor/editor_node.h" +#include "editor/editor_plugin.h" +#include "editor/editor_properties.h" +#include "scene/3d/skeleton_3d.h" +#include "scene/gui/color_rect.h" +#include "scene/gui/dialogs.h" +#include "scene/resources/bone_map.h" +#include "scene/resources/texture.h" + +class BoneMapperButton : public TextureButton { + GDCLASS(BoneMapperButton, TextureButton); + +public: + enum BoneMapState { + BONE_MAP_STATE_UNSET, + BONE_MAP_STATE_SET, + BONE_MAP_STATE_ERROR + }; + +private: + StringName profile_bone_name; + bool selected = false; + + TextureRect *circle; + + void fetch_textures(); + +protected: + void _notification(int p_what); + +public: + StringName get_profile_bone_name() const; + void set_state(BoneMapState p_state); + + BoneMapperButton(const StringName p_profile_bone_name, bool p_selected); + ~BoneMapperButton(); +}; + +class BoneMapperItem : public VBoxContainer { + GDCLASS(BoneMapperItem, VBoxContainer); + + int button_id = -1; + StringName profile_bone_name; + + PackedStringArray skeleton_bone_names; + Ref<BoneMap> bone_map; + + EditorPropertyTextEnum *skeleton_bone_selector; + + void _update_property(); + +protected: + void _notification(int p_what); + static void _bind_methods(); + virtual void _value_changed(const String &p_property, Variant p_value, const String &p_name, bool p_changing); + virtual void create_editor(); + +public: + void assign_button_id(int p_button_id); + + BoneMapperItem(Ref<BoneMap> &p_bone_map, PackedStringArray p_skeleton_bone_names, const StringName &p_profile_bone_name = StringName()); + ~BoneMapperItem(); +}; + +class BoneMapper : public VBoxContainer { + GDCLASS(BoneMapper, VBoxContainer); + + Skeleton3D *skeleton; + Ref<BoneMap> bone_map; + + Vector<BoneMapperItem *> bone_mapper_items; + + VBoxContainer *mapper_item_vbox; + HSeparator *separator; + + int current_group_idx = 0; + int current_bone_idx = -1; + + AspectRatioContainer *bone_mapper_field; + EditorPropertyEnum *profile_group_selector; + ColorRect *profile_bg; + TextureRect *profile_texture; + Vector<BoneMapperButton *> bone_mapper_buttons; + + void create_editor(); + void recreate_editor(); + void clear_items(); + void recreate_items(); + void update_group_idx(); + void _update_state(); + +protected: + void _notification(int p_what); + static void _bind_methods(); + virtual void _value_changed(const String &p_property, Variant p_value, const String &p_name, bool p_changing); + +public: + void set_current_group_idx(int p_group_idx); + int get_current_group_idx() const; + void set_current_bone_idx(int p_bone_idx); + int get_current_bone_idx() const; + + BoneMapper(Skeleton3D *p_skeleton, Ref<BoneMap> &p_bone_map); + ~BoneMapper(); +}; + +class BoneMapEditor : public VBoxContainer { + GDCLASS(BoneMapEditor, VBoxContainer); + + Skeleton3D *skeleton; + Ref<BoneMap> bone_map; + BoneMapper *bone_mapper; + + void fetch_objects(); + void clear_editors(); + void create_editors(); + +protected: + void _notification(int p_what); + +public: + BoneMapEditor(Ref<BoneMap> &p_bone_map); + ~BoneMapEditor(); +}; + +class EditorInspectorPluginBoneMap : public EditorInspectorPlugin { + GDCLASS(EditorInspectorPluginBoneMap, EditorInspectorPlugin); + BoneMapEditor *editor; + +public: + virtual bool can_handle(Object *p_object) override; + virtual void parse_begin(Object *p_object) override; +}; + +class BoneMapEditorPlugin : public EditorPlugin { + GDCLASS(BoneMapEditorPlugin, EditorPlugin); + +public: + virtual String get_name() const override { return "BoneMap"; } + BoneMapEditorPlugin(); +}; + +#endif // BONE_MAP_EDITOR_H diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index 1ea0299d4e..7e525a4698 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -813,9 +813,17 @@ Vector2 CanvasItemEditor::_position_to_anchor(const Control *p_control, Vector2 } void CanvasItemEditor::_save_canvas_item_state(List<CanvasItem *> p_canvas_items, bool save_bones) { + original_transform = Transform2D(); + bool transform_stored = false; + for (CanvasItem *canvas_item : p_canvas_items) { CanvasItemEditorSelectedItem *se = editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item); if (se) { + if (!transform_stored) { + original_transform = canvas_item->get_global_transform(); + transform_stored = true; + } + se->undo_state = canvas_item->_edit_get_state(); se->pre_drag_xform = canvas_item->get_global_transform_with_canvas(); if (canvas_item->_edit_use_rect()) { @@ -2669,7 +2677,7 @@ void CanvasItemEditor::_draw_text_at_position(Point2 p_position, String p_string color.a = 0.8; Ref<Font> font = get_theme_font(SNAME("font"), SNAME("Label")); int font_size = get_theme_font_size(SNAME("font_size"), SNAME("Label")); - Size2 text_size = font->get_string_size(p_string, font_size); + Size2 text_size = font->get_string_size(p_string, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size); switch (p_side) { case SIDE_LEFT: p_position += Vector2(-text_size.x - 5, text_size.y / 2); @@ -2741,16 +2749,18 @@ void CanvasItemEditor::_draw_guides() { String str = TS->format_number(vformat("%d px", Math::round(xform.affine_inverse().xform(dragged_guide_pos).x))); Ref<Font> font = get_theme_font(SNAME("bold"), SNAME("EditorFonts")); int font_size = get_theme_font_size(SNAME("bold_size"), SNAME("EditorFonts")); - Size2 text_size = font->get_string_size(str, font_size); - viewport->draw_string(font, Point2(dragged_guide_pos.x + 10, RULER_WIDTH + text_size.y / 2 + 10), str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, text_color, outline_size, outline_color); + Size2 text_size = font->get_string_size(str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size); + viewport->draw_string_outline(font, Point2(dragged_guide_pos.x + 10, RULER_WIDTH + text_size.y / 2 + 10), str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, outline_size, outline_color); + viewport->draw_string(font, Point2(dragged_guide_pos.x + 10, RULER_WIDTH + text_size.y / 2 + 10), str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, text_color); viewport->draw_line(Point2(dragged_guide_pos.x, 0), Point2(dragged_guide_pos.x, viewport->get_size().y), guide_color, Math::round(EDSCALE)); } if (drag_type == DRAG_DOUBLE_GUIDE || drag_type == DRAG_H_GUIDE) { String str = TS->format_number(vformat("%d px", Math::round(xform.affine_inverse().xform(dragged_guide_pos).y))); Ref<Font> font = get_theme_font(SNAME("bold"), SNAME("EditorFonts")); int font_size = get_theme_font_size(SNAME("bold_size"), SNAME("EditorFonts")); - Size2 text_size = font->get_string_size(str, font_size); - viewport->draw_string(font, Point2(RULER_WIDTH + 10, dragged_guide_pos.y + text_size.y / 2 + 10), str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, text_color, outline_size, outline_color); + Size2 text_size = font->get_string_size(str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size); + viewport->draw_string_outline(font, Point2(RULER_WIDTH + 10, dragged_guide_pos.y + text_size.y / 2 + 10), str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, outline_size, outline_color); + viewport->draw_string(font, Point2(RULER_WIDTH + 10, dragged_guide_pos.y + text_size.y / 2 + 10), str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, text_color); viewport->draw_line(Point2(0, dragged_guide_pos.y), Point2(viewport->get_size().x, dragged_guide_pos.y), guide_color, Math::round(EDSCALE)); } } @@ -2962,13 +2972,15 @@ void CanvasItemEditor::_draw_ruler_tool() { text_pos.y = CLAMP(text_pos.y, text_height * 1.5, viewport->get_rect().size.y - text_height * 1.5); if (begin.is_equal_approx(end)) { - viewport->draw_string(font, text_pos, (String)ruler_tool_origin, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_color, outline_size, outline_color); + viewport->draw_string_outline(font, text_pos, (String)ruler_tool_origin, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, outline_size, outline_color); + viewport->draw_string(font, text_pos, (String)ruler_tool_origin, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_color); Ref<Texture2D> position_icon = get_theme_icon(SNAME("EditorPosition"), SNAME("EditorIcons")); viewport->draw_texture(get_theme_icon(SNAME("EditorPosition"), SNAME("EditorIcons")), (ruler_tool_origin - view_offset) * zoom - position_icon->get_size() / 2); return; } - viewport->draw_string(font, text_pos, TS->format_number(vformat("%.1f px", length_vector.length())), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_color, outline_size, outline_color); + viewport->draw_string_outline(font, text_pos, TS->format_number(vformat("%.1f px", length_vector.length())), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, outline_size, outline_color); + viewport->draw_string(font, text_pos, TS->format_number(vformat("%.1f px", length_vector.length())), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_color); bool draw_secondary_lines = !(Math::is_equal_approx(begin.y, corner.y) || Math::is_equal_approx(end.x, corner.x)); @@ -2986,16 +2998,19 @@ void CanvasItemEditor::_draw_ruler_tool() { Point2 text_pos2 = text_pos; text_pos2.x = begin.x < text_pos.x ? MIN(text_pos.x - text_width, begin.x - text_width / 2) : MAX(text_pos.x + text_width, begin.x - text_width / 2); - viewport->draw_string(font, text_pos2, TS->format_number(vformat("%.1f px", length_vector.y)), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_secondary_color, outline_size, outline_color); + viewport->draw_string_outline(font, text_pos2, TS->format_number(vformat("%.1f px", length_vector.y)), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, outline_size, outline_color); + viewport->draw_string(font, text_pos2, TS->format_number(vformat("%.1f px", length_vector.y)), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_secondary_color); Point2 v_angle_text_pos = Point2(); v_angle_text_pos.x = CLAMP(begin.x - angle_text_width / 2, angle_text_width / 2, viewport->get_rect().size.x - angle_text_width); v_angle_text_pos.y = begin.y < end.y ? MIN(text_pos2.y - 2 * text_height, begin.y - text_height * 0.5) : MAX(text_pos2.y + text_height * 3, begin.y + text_height * 1.5); - viewport->draw_string(font, v_angle_text_pos, TS->format_number(vformat(String::utf8("%d°"), vertical_angle)), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_secondary_color, outline_size, outline_color); + viewport->draw_string_outline(font, v_angle_text_pos, TS->format_number(vformat(String::utf8("%d°"), vertical_angle)), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, outline_size, outline_color); + viewport->draw_string(font, v_angle_text_pos, TS->format_number(vformat(String::utf8("%d°"), vertical_angle)), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_secondary_color); text_pos2 = text_pos; text_pos2.y = end.y < text_pos.y ? MIN(text_pos.y - text_height * 2, end.y - text_height / 2) : MAX(text_pos.y + text_height * 2, end.y - text_height / 2); - viewport->draw_string(font, text_pos2, TS->format_number(vformat("%.1f px", length_vector.x)), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_secondary_color, outline_size, outline_color); + viewport->draw_string_outline(font, text_pos2, TS->format_number(vformat("%.1f px", length_vector.x)), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, outline_size, outline_color); + viewport->draw_string(font, text_pos2, TS->format_number(vformat("%.1f px", length_vector.x)), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_secondary_color); Point2 h_angle_text_pos = Point2(); h_angle_text_pos.x = CLAMP(end.x - angle_text_width / 2, angle_text_width / 2, viewport->get_rect().size.x - angle_text_width); @@ -3012,7 +3027,8 @@ void CanvasItemEditor::_draw_ruler_tool() { h_angle_text_pos.y = MIN(text_pos.y - height_multiplier * text_height, MIN(end.y - text_height * 0.5, text_pos2.y - height_multiplier * text_height)); } } - viewport->draw_string(font, h_angle_text_pos, TS->format_number(vformat(String::utf8("%d°"), horizontal_angle)), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_secondary_color, outline_size, outline_color); + viewport->draw_string_outline(font, h_angle_text_pos, TS->format_number(vformat(String::utf8("%d°"), horizontal_angle)), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, outline_size, outline_color); + viewport->draw_string(font, h_angle_text_pos, TS->format_number(vformat(String::utf8("%d°"), horizontal_angle)), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_secondary_color); // Angle arcs int arc_point_count = 8; @@ -3047,17 +3063,21 @@ void CanvasItemEditor::_draw_ruler_tool() { text_pos.y = CLAMP(text_pos.y, text_height * 2.5, viewport->get_rect().size.y - text_height / 2); if (draw_secondary_lines) { - viewport->draw_string(font, text_pos, TS->format_number(vformat("%.2f " + TTR("units"), (length_vector / grid_step).length())), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_color, outline_size, outline_color); + viewport->draw_string_outline(font, text_pos, TS->format_number(vformat("%.2f " + TTR("units"), (length_vector / grid_step).length())), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, outline_size, outline_color); + viewport->draw_string(font, text_pos, TS->format_number(vformat("%.2f " + TTR("units"), (length_vector / grid_step).length())), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_color); Point2 text_pos2 = text_pos; text_pos2.x = begin.x < text_pos.x ? MIN(text_pos.x - text_width, begin.x - text_width / 2) : MAX(text_pos.x + text_width, begin.x - text_width / 2); - viewport->draw_string(font, text_pos2, TS->format_number(vformat("%d " + TTR("units"), roundf(length_vector.y / grid_step.y))), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_secondary_color, outline_size, outline_color); + viewport->draw_string_outline(font, text_pos2, TS->format_number(vformat("%d " + TTR("units"), roundf(length_vector.y / grid_step.y))), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, outline_size, outline_color); + viewport->draw_string(font, text_pos2, TS->format_number(vformat("%d " + TTR("units"), roundf(length_vector.y / grid_step.y))), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_secondary_color); text_pos2 = text_pos; text_pos2.y = end.y < text_pos.y ? MIN(text_pos.y - text_height * 2, end.y + text_height / 2) : MAX(text_pos.y + text_height * 2, end.y + text_height / 2); - viewport->draw_string(font, text_pos2, TS->format_number(vformat("%d " + TTR("units"), roundf(length_vector.x / grid_step.x))), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_secondary_color, outline_size, outline_color); + viewport->draw_string_outline(font, text_pos2, TS->format_number(vformat("%d " + TTR("units"), roundf(length_vector.x / grid_step.x))), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, outline_size, outline_color); + viewport->draw_string(font, text_pos2, TS->format_number(vformat("%d " + TTR("units"), roundf(length_vector.x / grid_step.x))), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_secondary_color); } else { - viewport->draw_string(font, text_pos, TS->format_number(vformat("%d " + TTR("units"), roundf((length_vector / grid_step).length()))), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_color, outline_size, outline_color); + viewport->draw_string_outline(font, text_pos, TS->format_number(vformat("%d " + TTR("units"), roundf((length_vector / grid_step).length()))), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, outline_size, outline_color); + viewport->draw_string(font, text_pos, TS->format_number(vformat("%d " + TTR("units"), roundf((length_vector / grid_step).length()))), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, font_color); } } } else { @@ -3603,7 +3623,7 @@ void CanvasItemEditor::_draw_hover() { Ref<Font> font = get_theme_font(SNAME("font"), SNAME("Label")); int font_size = get_theme_font_size(SNAME("font_size"), SNAME("Label")); - Size2 node_name_size = font->get_string_size(node_name, font_size); + Size2 node_name_size = font->get_string_size(node_name, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size); Size2 item_size = Size2(node_icon->get_size().x + 4 + node_name_size.x, MAX(node_icon->get_size().y, node_name_size.y - 3)); Point2 pos = transform.xform(hovering_results[i].position) - Point2(0, item_size.y) + (Point2(node_icon->get_size().x, -node_icon->get_size().y) / 4); @@ -3624,6 +3644,67 @@ void CanvasItemEditor::_draw_hover() { } } +void CanvasItemEditor::_draw_transform_message() { + if (drag_selection.is_empty() || !drag_selection.front()->get()) { + return; + } + String transform_message; + Transform2D current_transform = drag_selection.front()->get()->get_global_transform(); + + double snap = EDITOR_GET("interface/inspector/default_float_step"); + int snap_step_decimals = Math::range_step_decimals(snap); +#define FORMAT(value) (TS->format_number(String::num(value, snap_step_decimals))) + + switch (drag_type) { + case DRAG_MOVE: + case DRAG_MOVE_X: + case DRAG_MOVE_Y: { + Vector2 delta = current_transform.get_origin() - original_transform.get_origin(); + if (drag_type == DRAG_MOVE) { + transform_message = TTR("Moving:") + " (" + FORMAT(delta.x) + ", " + FORMAT(delta.y) + ") px"; + } else if (drag_type == DRAG_MOVE_X) { + transform_message = TTR("Moving:") + " " + FORMAT(delta.x) + " px"; + } else if (drag_type == DRAG_MOVE_Y) { + transform_message = TTR("Moving:") + " " + FORMAT(delta.y) + " px"; + } + } break; + + case DRAG_ROTATE: { + real_t delta = Math::rad2deg(current_transform.get_rotation() - original_transform.get_rotation()); + transform_message = TTR("Rotating:") + " " + FORMAT(delta) + String::utf8(" °"); + } break; + + case DRAG_SCALE_X: + case DRAG_SCALE_Y: + case DRAG_SCALE_BOTH: { + Vector2 original_scale = (Math::is_zero_approx(original_transform.get_scale().x) || Math::is_zero_approx(original_transform.get_scale().y)) ? Vector2(CMP_EPSILON, CMP_EPSILON) : original_transform.get_scale(); + Vector2 delta = current_transform.get_scale() / original_scale; + if (drag_type == DRAG_SCALE_BOTH) { + transform_message = TTR("Scaling:") + String::utf8(" ×(") + FORMAT(delta.x) + ", " + FORMAT(delta.y) + ")"; + } else if (drag_type == DRAG_SCALE_X) { + transform_message = TTR("Scaling:") + String::utf8(" ×") + FORMAT(delta.x); + } else if (drag_type == DRAG_SCALE_Y) { + transform_message = TTR("Scaling:") + String::utf8(" ×") + FORMAT(delta.y); + } + } break; + + default: + break; + } +#undef FORMAT + + if (transform_message.is_empty()) { + return; + } + + Ref<Font> font = get_theme_font(SNAME("font"), SNAME("Label")); + int font_size = get_theme_font_size(SNAME("font_size"), SNAME("Label")); + Point2 msgpos = Point2(RULER_WIDTH + 5 * EDSCALE, viewport->get_size().y - 20 * EDSCALE); + viewport->draw_string(font, msgpos + Point2(1, 1), transform_message, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(0, 0, 0, 0.8)); + viewport->draw_string(font, msgpos + Point2(-1, -1), transform_message, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(0, 0, 0, 0.8)); + viewport->draw_string(font, msgpos, transform_message, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(1, 1, 1, 1)); +} + void CanvasItemEditor::_draw_locks_and_groups(Node *p_node, const Transform2D &p_parent_xform, const Transform2D &p_canvas_xform) { ERR_FAIL_COND(!p_node); @@ -3735,6 +3816,7 @@ void CanvasItemEditor::_draw_viewport() { _draw_smart_snapping(); _draw_focus(); _draw_hover(); + _draw_transform_message(); } void CanvasItemEditor::update_viewport() { @@ -5455,7 +5537,7 @@ void CanvasItemEditorViewport::_create_nodes(Node *parent, Node *child, String & } child->set_name(name); - Ref<Texture2D> texture = Ref<Texture2D>(Object::cast_to<Texture2D>(ResourceCache::get(path))); + Ref<Texture2D> texture = ResourceCache::get_ref(path); if (parent) { editor_data->get_undo_redo().add_do_method(parent, "add_child", child, true); diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h index c20a054800..5f50882dba 100644 --- a/editor/plugins/canvas_item_editor_plugin.h +++ b/editor/plugins/canvas_item_editor_plugin.h @@ -347,6 +347,7 @@ private: bool is_hovering_v_guide = false; bool updating_value_dialog = false; + Transform2D original_transform; Point2 box_selecting_to; @@ -433,6 +434,7 @@ private: void _draw_invisible_nodes_positions(Node *p_node, const Transform2D &p_parent_xform = Transform2D(), const Transform2D &p_canvas_xform = Transform2D()); void _draw_locks_and_groups(Node *p_node, const Transform2D &p_parent_xform = Transform2D(), const Transform2D &p_canvas_xform = Transform2D()); void _draw_hover(); + void _draw_transform_message(); void _draw_viewport(); diff --git a/editor/plugins/cpu_particles_2d_editor_plugin.cpp b/editor/plugins/cpu_particles_2d_editor_plugin.cpp index 79025041d3..a7c3c32120 100644 --- a/editor/plugins/cpu_particles_2d_editor_plugin.cpp +++ b/editor/plugins/cpu_particles_2d_editor_plugin.cpp @@ -257,7 +257,7 @@ CPUParticles2DEditorPlugin::CPUParticles2DEditorPlugin() { List<String> ext; ImageLoader::get_recognized_extensions(&ext); for (const String &E : ext) { - file->add_filter("*." + E + "; " + E.to_upper()); + file->add_filter("*." + E, E.to_upper()); } file->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE); toolbar->add_child(file); diff --git a/editor/plugins/curve_editor_plugin.cpp b/editor/plugins/curve_editor_plugin.cpp index 6d1a86765a..66e58339ed 100644 --- a/editor/plugins/curve_editor_plugin.cpp +++ b/editor/plugins/curve_editor_plugin.cpp @@ -751,12 +751,13 @@ void CurveEditor::_draw() { // Help text + float width = view_size.x - 60 * EDSCALE; if (_selected_point > 0 && _selected_point + 1 < curve.get_point_count()) { text_color.a *= 0.4; - draw_string(font, Vector2(50 * EDSCALE, font_height), TTR("Hold Shift to edit tangents individually"), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, text_color); + draw_multiline_string(font, Vector2(50 * EDSCALE, font_height), TTR("Hold Shift to edit tangents individually"), HORIZONTAL_ALIGNMENT_LEFT, width, -1, font_size, text_color); } else if (curve.get_point_count() == 0) { text_color.a *= 0.4; - draw_string(font, Vector2(50 * EDSCALE, font_height), TTR("Right click to add point"), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, text_color); + draw_multiline_string(font, Vector2(50 * EDSCALE, font_height), TTR("Right click to add point"), HORIZONTAL_ALIGNMENT_LEFT, width, -1, font_size, text_color); } } @@ -840,9 +841,5 @@ Ref<Texture2D> CurvePreviewGenerator::generate(const Ref<Resource> &p_from, cons prev_y = y; } - - Ref<ImageTexture> ptex = Ref<ImageTexture>(memnew(ImageTexture)); - - ptex->create_from_image(img_ref); - return ptex; + return ImageTexture::create_from_image(img_ref); } diff --git a/editor/plugins/debugger_editor_plugin.cpp b/editor/plugins/debugger_editor_plugin.cpp index 8ea50c4529..5c90d70982 100644 --- a/editor/plugins/debugger_editor_plugin.cpp +++ b/editor/plugins/debugger_editor_plugin.cpp @@ -72,6 +72,9 @@ DebuggerEditorPlugin::DebuggerEditorPlugin(MenuButton *p_debug_menu) { p->add_check_shortcut(ED_SHORTCUT("editor/visible_collision_shapes", TTR("Visible Collision Shapes")), RUN_DEBUG_COLLISONS); p->set_item_tooltip(-1, TTR("When this option is enabled, collision shapes and raycast nodes (for 2D and 3D) will be visible in the running project.")); + p->add_check_shortcut(ED_SHORTCUT("editor/visible_paths", TTR("Visible Paths")), RUN_DEBUG_PATHS); + p->set_item_tooltip(-1, + TTR("When this option is enabled, curve resources used by path nodes will be visible in the running project.")); p->add_check_shortcut(ED_SHORTCUT("editor/visible_navigation", TTR("Visible Navigation")), RUN_DEBUG_NAVIGATION); p->set_item_tooltip(-1, TTR("When this option is enabled, navigation meshes and polygons will be visible in the running project.")); @@ -153,6 +156,12 @@ void DebuggerEditorPlugin::_menu_option(int p_option) { EditorSettings::get_singleton()->set_project_metadata("debug_options", "run_debug_collisons", !ischecked); } break; + case RUN_DEBUG_PATHS: { + bool ischecked = debug_menu->get_popup()->is_item_checked(debug_menu->get_popup()->get_item_index(RUN_DEBUG_PATHS)); + debug_menu->get_popup()->set_item_checked(debug_menu->get_popup()->get_item_index(RUN_DEBUG_PATHS), !ischecked); + EditorSettings::get_singleton()->set_project_metadata("debug_options", "run_debug_paths", !ischecked); + + } break; case RUN_DEBUG_NAVIGATION: { bool ischecked = debug_menu->get_popup()->is_item_checked(debug_menu->get_popup()->get_item_index(RUN_DEBUG_NAVIGATION)); debug_menu->get_popup()->set_item_checked(debug_menu->get_popup()->get_item_index(RUN_DEBUG_NAVIGATION), !ischecked); @@ -182,6 +191,7 @@ void DebuggerEditorPlugin::_update_debug_options() { bool check_deploy_remote = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_deploy_remote_debug", false); bool check_file_server = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_file_server", false); bool check_debug_collisions = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_debug_collisons", false); + bool check_debug_paths = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_debug_paths", false); bool check_debug_navigation = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_debug_navigation", false); bool check_live_debug = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_live_debug", true); bool check_reload_scripts = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_reload_scripts", true); @@ -196,6 +206,9 @@ void DebuggerEditorPlugin::_update_debug_options() { if (check_debug_collisions) { _menu_option(RUN_DEBUG_COLLISONS); } + if (check_debug_paths) { + _menu_option(RUN_DEBUG_PATHS); + } if (check_debug_navigation) { _menu_option(RUN_DEBUG_NAVIGATION); } diff --git a/editor/plugins/debugger_editor_plugin.h b/editor/plugins/debugger_editor_plugin.h index 10e1a27933..fb963385cd 100644 --- a/editor/plugins/debugger_editor_plugin.h +++ b/editor/plugins/debugger_editor_plugin.h @@ -49,6 +49,7 @@ private: RUN_FILE_SERVER, RUN_LIVE_DEBUG, RUN_DEBUG_COLLISONS, + RUN_DEBUG_PATHS, RUN_DEBUG_NAVIGATION, RUN_DEPLOY_REMOTE_DEBUG, RUN_RELOAD_SCRIPTS, diff --git a/editor/plugins/editor_preview_plugins.cpp b/editor/plugins/editor_preview_plugins.cpp index bb0cfcba25..478f4264e5 100644 --- a/editor/plugins/editor_preview_plugins.cpp +++ b/editor/plugins/editor_preview_plugins.cpp @@ -127,13 +127,9 @@ Ref<Texture2D> EditorTexturePreviewPlugin::generate(const Ref<Resource> &p_from, } Vector2i new_size_i(MAX(1, (int)new_size.x), MAX(1, (int)new_size.y)); img->resize(new_size_i.x, new_size_i.y, Image::INTERPOLATE_CUBIC); - post_process_preview(img); - Ref<ImageTexture> ptex = Ref<ImageTexture>(memnew(ImageTexture)); - - ptex->create_from_image(img); - return ptex; + return ImageTexture::create_from_image(img); } EditorTexturePreviewPlugin::EditorTexturePreviewPlugin() { @@ -171,14 +167,9 @@ Ref<Texture2D> EditorImagePreviewPlugin::generate(const Ref<Resource> &p_from, c new_size = Vector2(new_size.x * p_size.y / new_size.y, p_size.y); } img->resize(new_size.x, new_size.y, Image::INTERPOLATE_CUBIC); - post_process_preview(img); - Ref<ImageTexture> ptex; - ptex.instantiate(); - - ptex->create_from_image(img); - return ptex; + return ImageTexture::create_from_image(img); } EditorImagePreviewPlugin::EditorImagePreviewPlugin() { @@ -239,13 +230,9 @@ Ref<Texture2D> EditorBitmapPreviewPlugin::generate(const Ref<Resource> &p_from, new_size = Vector2(new_size.x * p_size.y / new_size.y, p_size.y); } img->resize(new_size.x, new_size.y, Image::INTERPOLATE_CUBIC); - post_process_preview(img); - Ref<ImageTexture> ptex = Ref<ImageTexture>(memnew(ImageTexture)); - - ptex->create_from_image(img); - return ptex; + return ImageTexture::create_from_image(img); } bool EditorBitmapPreviewPlugin::generate_small_preview_automatically() const { @@ -282,11 +269,8 @@ Ref<Texture2D> EditorPackedScenePreviewPlugin::generate_from_path(const String & img.instantiate(); Error err = img->load(path); if (err == OK) { - Ref<ImageTexture> ptex = Ref<ImageTexture>(memnew(ImageTexture)); - post_process_preview(img); - ptex->create_from_image(img); - return ptex; + return ImageTexture::create_from_image(img); } else { return Ref<Texture2D>(); @@ -336,9 +320,7 @@ Ref<Texture2D> EditorMaterialPreviewPlugin::generate(const Ref<Resource> &p_from int thumbnail_size = MAX(p_size.x, p_size.y); img->resize(thumbnail_size, thumbnail_size, Image::INTERPOLATE_CUBIC); post_process_preview(img); - Ref<ImageTexture> ptex = Ref<ImageTexture>(memnew(ImageTexture)); - ptex->create_from_image(img); - return ptex; + return ImageTexture::create_from_image(img); } return Ref<Texture2D>(); @@ -591,13 +573,8 @@ Ref<Texture2D> EditorScriptPreviewPlugin::generate(const Ref<Resource> &p_from, } } } - post_process_preview(img); - - Ref<ImageTexture> ptex = Ref<ImageTexture>(memnew(ImageTexture)); - - ptex->create_from_image(img); - return ptex; + return ImageTexture::create_from_image(img); } EditorScriptPreviewPlugin::EditorScriptPreviewPlugin() { @@ -676,12 +653,10 @@ Ref<Texture2D> EditorAudioStreamPreviewPlugin::generate(const Ref<Resource> &p_f //post_process_preview(img); - Ref<ImageTexture> ptex = Ref<ImageTexture>(memnew(ImageTexture)); Ref<Image> image; image.instantiate(); image->create(w, h, false, Image::FORMAT_RGB8, img); - ptex->create_from_image(image); - return ptex; + return ImageTexture::create_from_image(image); } EditorAudioStreamPreviewPlugin::EditorAudioStreamPreviewPlugin() { @@ -746,12 +721,9 @@ Ref<Texture2D> EditorMeshPreviewPlugin::generate(const Ref<Resource> &p_from, co new_size = Vector2(new_size.x * p_size.y / new_size.y, p_size.y); } img->resize(new_size.x, new_size.y, Image::INTERPOLATE_CUBIC); - post_process_preview(img); - Ref<ImageTexture> ptex = Ref<ImageTexture>(memnew(ImageTexture)); - ptex->create_from_image(img); - return ptex; + return ImageTexture::create_from_image(img); } EditorMeshPreviewPlugin::EditorMeshPreviewPlugin() { @@ -812,19 +784,12 @@ void EditorFontPreviewPlugin::_preview_done() { } bool EditorFontPreviewPlugin::handles(const String &p_type) const { - return ClassDB::is_parent_class(p_type, "FontData") || ClassDB::is_parent_class(p_type, "Font"); + return ClassDB::is_parent_class(p_type, "Font"); } Ref<Texture2D> EditorFontPreviewPlugin::generate_from_path(const String &p_path, const Size2 &p_size) const { - Ref<Resource> res = ResourceLoader::load(p_path); - ERR_FAIL_COND_V(res.is_null(), Ref<Texture2D>()); - Ref<Font> sampled_font; - if (res->is_class("Font")) { - sampled_font = res->duplicate(); - } else if (res->is_class("FontData")) { - sampled_font.instantiate(); - sampled_font->add_data(res->duplicate()); - } + Ref<Font> sampled_font = ResourceLoader::load(p_path); + ERR_FAIL_COND_V(sampled_font.is_null(), Ref<Texture2D>()); String sample; static const String sample_base = U"12漢字ԱբΑαАбΑαאבابܐܒހށआআਆઆଆஆఆಆആආกิກິༀကႠა한글ሀᎣᐁᚁᚠᜀᜠᝀᝠកᠠᤁᥐAb😀"; @@ -836,18 +801,16 @@ Ref<Texture2D> EditorFontPreviewPlugin::generate_from_path(const String &p_path, if (sample.is_empty()) { sample = sampled_font->get_supported_chars().substr(0, 6); } - Vector2 size = sampled_font->get_string_size(sample, 50); + Vector2 size = sampled_font->get_string_size(sample, HORIZONTAL_ALIGNMENT_LEFT, -1, 50); Vector2 pos; pos.x = 64 - size.x / 2; pos.y = 80; - Ref<Font> font = sampled_font; - const Color c = GLOBAL_GET("rendering/environment/defaults/default_clear_color"); const float fg = c.get_luminance() < 0.5 ? 1.0 : 0.0; - font->draw_string(canvas_item, pos, sample, HORIZONTAL_ALIGNMENT_LEFT, -1.f, 50, Color(fg, fg, fg)); + sampled_font->draw_string(canvas_item, pos, sample, HORIZONTAL_ALIGNMENT_LEFT, -1.f, 50, Color(fg, fg, fg)); RS::get_singleton()->connect(SNAME("frame_pre_draw"), callable_mp(const_cast<EditorFontPreviewPlugin *>(this), &EditorFontPreviewPlugin::_generate_frame_started), Vector<Variant>(), Object::CONNECT_ONESHOT); @@ -868,13 +831,9 @@ Ref<Texture2D> EditorFontPreviewPlugin::generate_from_path(const String &p_path, new_size = Vector2(new_size.x * p_size.y / new_size.y, p_size.y); } img->resize(new_size.x, new_size.y, Image::INTERPOLATE_CUBIC); - post_process_preview(img); - Ref<ImageTexture> ptex = Ref<ImageTexture>(memnew(ImageTexture)); - ptex->create_from_image(img); - - return ptex; + return ImageTexture::create_from_image(img); } Ref<Texture2D> EditorFontPreviewPlugin::generate(const Ref<Resource> &p_from, const Size2 &p_size) const { @@ -924,11 +883,7 @@ Ref<Texture2D> EditorGradientPreviewPlugin::generate(const Ref<Resource> &p_from ptex.instantiate(); ptex->set_width(p_size.width * GRADIENT_PREVIEW_TEXTURE_SCALE_FACTOR * EDSCALE); ptex->set_gradient(gradient); - - Ref<ImageTexture> itex; - itex.instantiate(); - itex->create_from_image(ptex->get_image()); - return itex; + return ImageTexture::create_from_image(ptex->get_image()); } return Ref<Texture2D>(); } diff --git a/editor/plugins/font_config_plugin.cpp b/editor/plugins/font_config_plugin.cpp new file mode 100644 index 0000000000..848fb5887d --- /dev/null +++ b/editor/plugins/font_config_plugin.cpp @@ -0,0 +1,979 @@ +/*************************************************************************/ +/* font_config_plugin.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#include "font_config_plugin.h" + +#include "editor/editor_scale.h" +#include "editor/import/dynamic_font_import_settings.h" + +/*************************************************************************/ +/* EditorPropertyFontMetaObject */ +/*************************************************************************/ + +bool EditorPropertyFontMetaObject::_set(const StringName &p_name, const Variant &p_value) { + String name = p_name; + + if (name.begins_with("keys")) { + String key = name.get_slicec('/', 1); + dict[key] = p_value; + return true; + } + + return false; +} + +bool EditorPropertyFontMetaObject::_get(const StringName &p_name, Variant &r_ret) const { + String name = p_name; + + if (name.begins_with("keys")) { + String key = name.get_slicec('/', 1); + r_ret = dict[key]; + return true; + } + + return false; +} + +void EditorPropertyFontMetaObject::_bind_methods() { +} + +void EditorPropertyFontMetaObject::set_dict(const Dictionary &p_dict) { + dict = p_dict; +} + +Dictionary EditorPropertyFontMetaObject::get_dict() { + return dict; +} + +/*************************************************************************/ +/* EditorPropertyFontOTObject */ +/*************************************************************************/ + +bool EditorPropertyFontOTObject::_set(const StringName &p_name, const Variant &p_value) { + String name = p_name; + + if (name.begins_with("keys")) { + int key = name.get_slicec('/', 1).to_int(); + dict[key] = p_value; + return true; + } + + return false; +} + +bool EditorPropertyFontOTObject::_get(const StringName &p_name, Variant &r_ret) const { + String name = p_name; + + if (name.begins_with("keys")) { + int key = name.get_slicec('/', 1).to_int(); + r_ret = dict[key]; + return true; + } + + return false; +} + +void EditorPropertyFontOTObject::_bind_methods() { + ClassDB::bind_method(D_METHOD("property_can_revert", "name"), &EditorPropertyFontOTObject::property_can_revert); + ClassDB::bind_method(D_METHOD("property_get_revert", "name"), &EditorPropertyFontOTObject::property_get_revert); +} + +void EditorPropertyFontOTObject::set_dict(const Dictionary &p_dict) { + dict = p_dict; +} + +Dictionary EditorPropertyFontOTObject::get_dict() { + return dict; +} + +void EditorPropertyFontOTObject::set_defaults(const Dictionary &p_dict) { + defaults_dict = p_dict; +} + +Dictionary EditorPropertyFontOTObject::get_defaults() { + return defaults_dict; +} + +bool EditorPropertyFontOTObject::property_can_revert(const String &p_name) { + String name = p_name; + + if (name.begins_with("keys")) { + int key = name.get_slicec('/', 1).to_int(); + if (defaults_dict.has(key) && dict.has(key)) { + int value = dict[key]; + Vector3i range = defaults_dict[key]; + return range.z != value; + } + } + + return false; +} + +Variant EditorPropertyFontOTObject::property_get_revert(const String &p_name) { + String name = p_name; + + if (name.begins_with("keys")) { + int key = name.get_slicec('/', 1).to_int(); + if (defaults_dict.has(key)) { + Vector3i range = defaults_dict[key]; + return range.z; + } + } + + return Variant(); +} + +/*************************************************************************/ +/* EditorPropertyFontMetaOverride */ +/*************************************************************************/ + +void EditorPropertyFontMetaOverride::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { + if (Object::cast_to<Button>(button_add)) { + button_add->set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); + } + } break; + } +} + +void EditorPropertyFontMetaOverride::_property_changed(const String &p_property, Variant p_value, const String &p_name, bool p_changing) { + if (p_property.begins_with("keys")) { + Dictionary dict = object->get_dict(); + String key = p_property.get_slice("/", 1); + dict[key] = (bool)p_value; + + emit_changed(get_edited_property(), dict, "", true); + + dict = dict.duplicate(); // Duplicate, so undo/redo works better. + object->set_dict(dict); + } +} + +void EditorPropertyFontMetaOverride::_remove(Object *p_button, const String &p_key) { + Dictionary dict = object->get_dict(); + + dict.erase(p_key); + + emit_changed(get_edited_property(), dict, "", false); + + dict = dict.duplicate(); // Duplicate, so undo/redo works better. + object->set_dict(dict); + update_property(); +} + +void EditorPropertyFontMetaOverride::_add_menu() { + if (script_editor) { + Size2 size = get_size(); + menu->set_position(get_screen_position() + Size2(0, size.height * get_global_transform().get_scale().y)); + menu->reset_size(); + menu->popup(); + } else { + locale_select->popup_locale_dialog(); + } +} + +void EditorPropertyFontMetaOverride::_add_script(int p_option) { + Dictionary dict = object->get_dict(); + + dict[script_codes[p_option]] = true; + + emit_changed(get_edited_property(), dict, "", false); + + dict = dict.duplicate(); // Duplicate, so undo/redo works better. + object->set_dict(dict); + update_property(); +} + +void EditorPropertyFontMetaOverride::_add_lang(const String &p_locale) { + Dictionary dict = object->get_dict(); + + dict[p_locale] = true; + + emit_changed(get_edited_property(), dict, "", false); + + dict = dict.duplicate(); // Duplicate, so undo/redo works better. + object->set_dict(dict); + update_property(); +} + +void EditorPropertyFontMetaOverride::_object_id_selected(const StringName &p_property, ObjectID p_id) { + emit_signal(SNAME("object_id_selected"), p_property, p_id); +} + +void EditorPropertyFontMetaOverride::update_property() { + Variant updated_val = get_edited_object()->get(get_edited_property()); + + Dictionary dict = updated_val; + + edit->set_text(vformat(TTR("Overrides (%d)"), dict.size())); + + bool unfolded = get_edited_object()->editor_is_section_unfolded(get_edited_property()); + if (edit->is_pressed() != unfolded) { + edit->set_pressed(unfolded); + } + + if (unfolded) { + updating = true; + + if (!container) { + container = memnew(MarginContainer); + container->set_theme_type_variation("MarginContainer4px"); + add_child(container); + set_bottom_editor(container); + + VBoxContainer *vbox = memnew(VBoxContainer); + vbox->set_v_size_flags(SIZE_EXPAND_FILL); + container->add_child(vbox); + + property_vbox = memnew(VBoxContainer); + property_vbox->set_h_size_flags(SIZE_EXPAND_FILL); + vbox->add_child(property_vbox); + + paginator = memnew(EditorPaginator); + paginator->connect("page_changed", callable_mp(this, &EditorPropertyFontMetaOverride::_page_changed)); + vbox->add_child(paginator); + } else { + // Queue children for deletion, deleting immediately might cause errors. + for (int i = property_vbox->get_child_count() - 1; i >= 0; i--) { + property_vbox->get_child(i)->queue_delete(); + } + button_add = nullptr; + } + + int size = dict.size(); + + int max_page = MAX(0, size - 1) / page_length; + page_index = MIN(page_index, max_page); + + paginator->update(page_index, max_page); + paginator->set_visible(max_page > 0); + + int offset = page_index * page_length; + + int amount = MIN(size - offset, page_length); + + dict = dict.duplicate(); + object->set_dict(dict); + + for (int i = 0; i < amount; i++) { + String name = dict.get_key_at_index(i); + EditorProperty *prop = memnew(EditorPropertyCheck); + prop->set_object_and_property(object.ptr(), "keys/" + name); + + if (script_editor) { + prop->set_label(TranslationServer::get_singleton()->get_script_name(name)); + } else { + prop->set_label(TranslationServer::get_singleton()->get_locale_name(name)); + } + prop->set_tooltip(name); + prop->set_selectable(false); + + prop->connect("property_changed", callable_mp(this, &EditorPropertyFontMetaOverride::_property_changed)); + prop->connect("object_id_selected", callable_mp(this, &EditorPropertyFontMetaOverride::_object_id_selected)); + + HBoxContainer *hbox = memnew(HBoxContainer); + property_vbox->add_child(hbox); + hbox->add_child(prop); + prop->set_h_size_flags(SIZE_EXPAND_FILL); + Button *remove = memnew(Button); + remove->set_icon(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons"))); + hbox->add_child(remove); + remove->connect("pressed", callable_mp(this, &EditorPropertyFontMetaOverride::_remove), varray(remove, name)); + + prop->update_property(); + } + + if (script_editor) { + button_add = EditorInspector::create_inspector_action_button(TTR("Add Script")); + } else { + button_add = EditorInspector::create_inspector_action_button(TTR("Add Locale")); + } + button_add->connect("pressed", callable_mp(this, &EditorPropertyFontMetaOverride::_add_menu)); + property_vbox->add_child(button_add); + + updating = false; + } else { + if (container) { + set_bottom_editor(nullptr); + memdelete(container); + button_add = nullptr; + container = nullptr; + } + } +} + +void EditorPropertyFontMetaOverride::_edit_pressed() { + Variant prop_val = get_edited_object()->get(get_edited_property()); + if (prop_val.get_type() == Variant::NIL) { + Callable::CallError ce; + Variant::construct(Variant::DICTIONARY, prop_val, nullptr, 0, ce); + get_edited_object()->set(get_edited_property(), prop_val); + } + + get_edited_object()->editor_set_section_unfold(get_edited_property(), edit->is_pressed()); + update_property(); +} + +void EditorPropertyFontMetaOverride::_page_changed(int p_page) { + if (updating) { + return; + } + page_index = p_page; + update_property(); +} + +EditorPropertyFontMetaOverride::EditorPropertyFontMetaOverride(bool p_script) { + script_editor = p_script; + + object.instantiate(); + page_length = int(EDITOR_GET("interface/inspector/max_array_dictionary_items_per_page")); + + edit = memnew(Button); + edit->set_h_size_flags(SIZE_EXPAND_FILL); + edit->set_clip_text(true); + edit->connect("pressed", callable_mp(this, &EditorPropertyFontMetaOverride::_edit_pressed)); + edit->set_toggle_mode(true); + add_child(edit); + add_focusable(edit); + + menu = memnew(PopupMenu); + if (script_editor) { + script_codes = TranslationServer::get_singleton()->get_all_scripts(); + for (int i = 0; i < script_codes.size(); i++) { + menu->add_item(TranslationServer::get_singleton()->get_script_name(script_codes[i]) + " (" + script_codes[i] + ")", i); + } + } + add_child(menu); + menu->connect("id_pressed", callable_mp(this, &EditorPropertyFontMetaOverride::_add_script)); + + locale_select = memnew(EditorLocaleDialog); + locale_select->connect("locale_selected", callable_mp(this, &EditorPropertyFontMetaOverride::_add_lang)); + add_child(locale_select); +} + +/*************************************************************************/ +/* EditorPropertyOTVariation */ +/*************************************************************************/ + +void EditorPropertyOTVariation::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { + } break; + } +} + +void EditorPropertyOTVariation::_property_changed(const String &p_property, Variant p_value, const String &p_name, bool p_changing) { + if (p_property.begins_with("keys")) { + Dictionary dict = object->get_dict(); + Dictionary defaults_dict = object->get_defaults(); + int key = p_property.get_slice("/", 1).to_int(); + dict[key] = (int)p_value; + if (defaults_dict.has(key)) { + Vector3i range = defaults_dict[key]; + if (range.z == (int)p_value) { + dict.erase(key); + } + } + + emit_changed(get_edited_property(), dict, "", true); + + dict = dict.duplicate(); // Duplicate, so undo/redo works better. + object->set_dict(dict); + } +} + +void EditorPropertyOTVariation::_object_id_selected(const StringName &p_property, ObjectID p_id) { + emit_signal(SNAME("object_id_selected"), p_property, p_id); +} + +void EditorPropertyOTVariation::update_property() { + Variant updated_val = get_edited_object()->get(get_edited_property()); + + Dictionary dict = updated_val; + + Ref<Font> fd; + if (Object::cast_to<Font>(get_edited_object()) != nullptr) { + fd = get_edited_object(); + } else if (Object::cast_to<DynamicFontImportSettingsData>(get_edited_object()) != nullptr) { + Ref<DynamicFontImportSettingsData> imp = Object::cast_to<DynamicFontImportSettingsData>(get_edited_object()); + fd = imp->get_font(); + } + + Dictionary supported = (fd.is_valid()) ? fd->get_supported_variation_list() : Dictionary(); + + edit->set_text(vformat(TTR("Variation Coordinates (%d)"), supported.size())); + + bool unfolded = get_edited_object()->editor_is_section_unfolded(get_edited_property()); + if (edit->is_pressed() != unfolded) { + edit->set_pressed(unfolded); + } + + if (unfolded) { + updating = true; + + if (!container) { + container = memnew(MarginContainer); + container->set_theme_type_variation("MarginContainer4px"); + add_child(container); + set_bottom_editor(container); + + VBoxContainer *vbox = memnew(VBoxContainer); + vbox->set_v_size_flags(SIZE_EXPAND_FILL); + container->add_child(vbox); + + property_vbox = memnew(VBoxContainer); + property_vbox->set_h_size_flags(SIZE_EXPAND_FILL); + vbox->add_child(property_vbox); + + paginator = memnew(EditorPaginator); + paginator->connect("page_changed", callable_mp(this, &EditorPropertyOTVariation::_page_changed)); + vbox->add_child(paginator); + } else { + // Queue children for deletion, deleting immediately might cause errors. + for (int i = property_vbox->get_child_count() - 1; i >= 0; i--) { + property_vbox->get_child(i)->queue_delete(); + } + } + + int size = supported.size(); + + int max_page = MAX(0, size - 1) / page_length; + page_index = MIN(page_index, max_page); + + paginator->update(page_index, max_page); + paginator->set_visible(max_page > 0); + + int offset = page_index * page_length; + + int amount = MIN(size - offset, page_length); + + dict = dict.duplicate(); + object->set_dict(dict); + object->set_defaults(supported); + + for (int i = 0; i < amount; i++) { + int name_tag = supported.get_key_at_index(i); + Vector3i range = supported.get_value_at_index(i); + + EditorPropertyInteger *prop = memnew(EditorPropertyInteger); + prop->setup(range.x, range.y, 1, false, false); + prop->set_object_and_property(object.ptr(), "keys/" + itos(name_tag)); + + String name = TS->tag_to_name(name_tag); + prop->set_label(name.capitalize()); + prop->set_tooltip(name); + prop->set_selectable(false); + + prop->connect("property_changed", callable_mp(this, &EditorPropertyOTVariation::_property_changed)); + prop->connect("object_id_selected", callable_mp(this, &EditorPropertyOTVariation::_object_id_selected)); + + property_vbox->add_child(prop); + + prop->update_property(); + } + + updating = false; + } else { + if (container) { + set_bottom_editor(nullptr); + memdelete(container); + container = nullptr; + } + } +} + +void EditorPropertyOTVariation::_edit_pressed() { + Variant prop_val = get_edited_object()->get(get_edited_property()); + if (prop_val.get_type() == Variant::NIL) { + Callable::CallError ce; + Variant::construct(Variant::DICTIONARY, prop_val, nullptr, 0, ce); + get_edited_object()->set(get_edited_property(), prop_val); + } + + get_edited_object()->editor_set_section_unfold(get_edited_property(), edit->is_pressed()); + update_property(); +} + +void EditorPropertyOTVariation::_page_changed(int p_page) { + if (updating) { + return; + } + page_index = p_page; + update_property(); +} + +EditorPropertyOTVariation::EditorPropertyOTVariation() { + object.instantiate(); + page_length = int(EDITOR_GET("interface/inspector/max_array_dictionary_items_per_page")); + + edit = memnew(Button); + edit->set_h_size_flags(SIZE_EXPAND_FILL); + edit->set_clip_text(true); + edit->connect("pressed", callable_mp(this, &EditorPropertyOTVariation::_edit_pressed)); + edit->set_toggle_mode(true); + add_child(edit); + add_focusable(edit); +} + +/*************************************************************************/ +/* EditorPropertyOTFeatures */ +/*************************************************************************/ + +void EditorPropertyOTFeatures::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { + if (Object::cast_to<Button>(button_add)) { + button_add->set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); + } + } break; + } +} + +void EditorPropertyOTFeatures::_property_changed(const String &p_property, Variant p_value, const String &p_name, bool p_changing) { + if (p_property.begins_with("keys")) { + Dictionary dict = object->get_dict(); + int key = p_property.get_slice("/", 1).to_int(); + dict[key] = (int)p_value; + + emit_changed(get_edited_property(), dict, "", true); + + dict = dict.duplicate(); // Duplicate, so undo/redo works better. + object->set_dict(dict); + } +} + +void EditorPropertyOTFeatures::_remove(Object *p_button, int p_key) { + Dictionary dict = object->get_dict(); + + dict.erase(p_key); + + emit_changed(get_edited_property(), dict, "", false); + + dict = dict.duplicate(); // Duplicate, so undo/redo works better. + object->set_dict(dict); + update_property(); +} + +void EditorPropertyOTFeatures::_add_menu() { + Size2 size = get_size(); + menu->set_position(get_screen_position() + Size2(0, size.height * get_global_transform().get_scale().y)); + menu->reset_size(); + menu->popup(); +} + +void EditorPropertyOTFeatures::_add_feature(int p_option) { + Dictionary dict = object->get_dict(); + + dict[p_option] = 1; + + emit_changed(get_edited_property(), dict, "", false); + + dict = dict.duplicate(); // Duplicate, so undo/redo works better. + object->set_dict(dict); + update_property(); +} + +void EditorPropertyOTFeatures::_object_id_selected(const StringName &p_property, ObjectID p_id) { + emit_signal(SNAME("object_id_selected"), p_property, p_id); +} + +void EditorPropertyOTFeatures::update_property() { + Variant updated_val = get_edited_object()->get(get_edited_property()); + + Dictionary dict = updated_val; + + Ref<Font> fd; + if (Object::cast_to<FontVariation>(get_edited_object()) != nullptr) { + fd = get_edited_object(); + } else if (Object::cast_to<DynamicFontImportSettingsData>(get_edited_object()) != nullptr) { + Ref<DynamicFontImportSettingsData> imp = Object::cast_to<DynamicFontImportSettingsData>(get_edited_object()); + fd = imp->get_font(); + } + + Dictionary supported; + if (fd.is_valid()) { + supported = fd->get_supported_feature_list(); + } + + edit->set_text(vformat(TTR("Features (%d of %d set)"), dict.size(), supported.size())); + + bool unfolded = get_edited_object()->editor_is_section_unfolded(get_edited_property()); + if (edit->is_pressed() != unfolded) { + edit->set_pressed(unfolded); + } + + if (unfolded) { + updating = true; + + if (!container) { + container = memnew(MarginContainer); + container->set_theme_type_variation("MarginContainer4px"); + add_child(container); + set_bottom_editor(container); + + VBoxContainer *vbox = memnew(VBoxContainer); + vbox->set_v_size_flags(SIZE_EXPAND_FILL); + container->add_child(vbox); + + property_vbox = memnew(VBoxContainer); + property_vbox->set_h_size_flags(SIZE_EXPAND_FILL); + vbox->add_child(property_vbox); + + paginator = memnew(EditorPaginator); + paginator->connect("page_changed", callable_mp(this, &EditorPropertyOTFeatures::_page_changed)); + vbox->add_child(paginator); + } else { + // Queue children for deletion, deleting immediately might cause errors. + for (int i = property_vbox->get_child_count() - 1; i >= 0; i--) { + property_vbox->get_child(i)->queue_delete(); + } + button_add = nullptr; + } + + // Update add menu items. + menu->clear(); + bool have_sub[FGRP_MAX]; + for (int i = 0; i < FGRP_MAX; i++) { + menu_sub[i]->clear(); + have_sub[i] = false; + } + + bool show_hidden = EDITOR_GET("interface/inspector/show_low_level_opentype_features"); + + for (int i = 0; i < supported.size(); i++) { + int name_tag = supported.get_key_at_index(i); + Dictionary info = supported.get_value_at_index(i); + bool hidden = info["hidden"].operator bool(); + String name = TS->tag_to_name(name_tag); + FeatureGroups grp = FGRP_MAX; + + if (hidden && !show_hidden) { + continue; + } + + if (name.begins_with("stylistic_set_")) { + grp = FGRP_STYLISTIC_SET; + } else if (name.begins_with("character_variant_")) { + grp = FGRP_CHARACTER_VARIANT; + } else if (name.ends_with("_capitals")) { + grp = FGRP_CAPITLS; + } else if (name.ends_with("_ligatures")) { + grp = FGRP_LIGATURES; + } else if (name.ends_with("_alternates")) { + grp = FGRP_ALTERNATES; + } else if (name.ends_with("_kanji_forms") || name.begins_with("jis") || name == "simplified_forms" || name == "traditional_name_forms" || name == "traditional_forms") { + grp = FGRP_EAL; + } else if (name.ends_with("_widths")) { + grp = FGRP_EAW; + } else if (name == "tabular_figures" || name == "proportional_figures") { + grp = FGRP_NUMAL; + } else if (name.begins_with("custom_")) { + grp = FGRP_CUSTOM; + } + String disp_name = name.capitalize(); + if (info.has("label")) { + disp_name = vformat("%s (%s)", disp_name, info["label"].operator String()); + } + + if (grp == FGRP_MAX) { + menu->add_item(disp_name, name_tag); + } else { + menu_sub[grp]->add_item(disp_name, name_tag); + have_sub[grp] = true; + } + } + for (int i = 0; i < FGRP_MAX; i++) { + if (have_sub[i]) { + menu->add_submenu_item(RTR(group_names[i]), "FTRMenu_" + itos(i)); + } + } + + int size = dict.size(); + + int max_page = MAX(0, size - 1) / page_length; + page_index = MIN(page_index, max_page); + + paginator->update(page_index, max_page); + paginator->set_visible(max_page > 0); + + int offset = page_index * page_length; + + int amount = MIN(size - offset, page_length); + + dict = dict.duplicate(); + object->set_dict(dict); + + for (int i = 0; i < amount; i++) { + int name_tag = dict.get_key_at_index(i); + + if (supported.has(name_tag)) { + Dictionary info = supported[name_tag]; + Variant::Type vtype = Variant::Type(info["type"].operator int()); + bool hidden = info["hidden"].operator bool(); + if (hidden && !show_hidden) { + continue; + } + + EditorProperty *prop = nullptr; + switch (vtype) { + case Variant::NIL: { + prop = memnew(EditorPropertyNil); + } break; + case Variant::BOOL: { + prop = memnew(EditorPropertyCheck); + } break; + case Variant::INT: { + EditorPropertyInteger *editor = memnew(EditorPropertyInteger); + editor->setup(0, 255, 1, false, false); + prop = editor; + } break; + default: { + ERR_CONTINUE_MSG(true, vformat("Unsupported OT feature data type %s", Variant::get_type_name(vtype))); + } + } + prop->set_object_and_property(object.ptr(), "keys/" + itos(name_tag)); + + String name = TS->tag_to_name(name_tag); + String disp_name = name.capitalize(); + if (info.has("label")) { + disp_name = vformat("%s (%s)", disp_name, info["label"].operator String()); + } + prop->set_label(disp_name); + prop->set_tooltip(name); + prop->set_selectable(false); + + prop->connect("property_changed", callable_mp(this, &EditorPropertyOTFeatures::_property_changed)); + prop->connect("object_id_selected", callable_mp(this, &EditorPropertyOTFeatures::_object_id_selected)); + + HBoxContainer *hbox = memnew(HBoxContainer); + property_vbox->add_child(hbox); + hbox->add_child(prop); + prop->set_h_size_flags(SIZE_EXPAND_FILL); + Button *remove = memnew(Button); + remove->set_icon(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons"))); + hbox->add_child(remove); + remove->connect("pressed", callable_mp(this, &EditorPropertyOTFeatures::_remove), varray(remove, name_tag)); + + prop->update_property(); + } + } + + button_add = EditorInspector::create_inspector_action_button(TTR("Add Feature")); + button_add->set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); + button_add->connect("pressed", callable_mp(this, &EditorPropertyOTFeatures::_add_menu)); + property_vbox->add_child(button_add); + + updating = false; + } else { + if (container) { + set_bottom_editor(nullptr); + memdelete(container); + button_add = nullptr; + container = nullptr; + } + } +} + +void EditorPropertyOTFeatures::_edit_pressed() { + Variant prop_val = get_edited_object()->get(get_edited_property()); + if (prop_val.get_type() == Variant::NIL) { + Callable::CallError ce; + Variant::construct(Variant::DICTIONARY, prop_val, nullptr, 0, ce); + get_edited_object()->set(get_edited_property(), prop_val); + } + + get_edited_object()->editor_set_section_unfold(get_edited_property(), edit->is_pressed()); + update_property(); +} + +void EditorPropertyOTFeatures::_page_changed(int p_page) { + if (updating) { + return; + } + page_index = p_page; + update_property(); +} + +EditorPropertyOTFeatures::EditorPropertyOTFeatures() { + object.instantiate(); + page_length = int(EDITOR_GET("interface/inspector/max_array_dictionary_items_per_page")); + + edit = memnew(Button); + edit->set_h_size_flags(SIZE_EXPAND_FILL); + edit->set_clip_text(true); + edit->connect("pressed", callable_mp(this, &EditorPropertyOTFeatures::_edit_pressed)); + edit->set_toggle_mode(true); + add_child(edit); + add_focusable(edit); + + menu = memnew(PopupMenu); + add_child(menu); + menu->connect("id_pressed", callable_mp(this, &EditorPropertyOTFeatures::_add_feature)); + + for (int i = 0; i < FGRP_MAX; i++) { + menu_sub[i] = memnew(PopupMenu); + menu_sub[i]->set_name("FTRMenu_" + itos(i)); + menu->add_child(menu_sub[i]); + menu_sub[i]->connect("id_pressed", callable_mp(this, &EditorPropertyOTFeatures::_add_feature)); + } + + group_names[FGRP_STYLISTIC_SET] = "Stylistic Sets"; + group_names[FGRP_CHARACTER_VARIANT] = "Character Variants"; + group_names[FGRP_CAPITLS] = "Capitals"; + group_names[FGRP_LIGATURES] = "Ligatures"; + group_names[FGRP_ALTERNATES] = "Alternates"; + group_names[FGRP_EAL] = "East Asian Language"; + group_names[FGRP_EAW] = "East Asian Widths"; + group_names[FGRP_NUMAL] = "Numeral Alignment"; + group_names[FGRP_CUSTOM] = "Custom"; +} + +/*************************************************************************/ +/* EditorInspectorPluginFontVariation */ +/*************************************************************************/ + +bool EditorInspectorPluginFontVariation::can_handle(Object *p_object) { + return (Object::cast_to<FontVariation>(p_object) != nullptr) || (Object::cast_to<DynamicFontImportSettingsData>(p_object) != nullptr); +} + +bool EditorInspectorPluginFontVariation::parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const uint32_t p_usage, const bool p_wide) { + if (p_path == "variation_opentype") { + add_property_editor(p_path, memnew(EditorPropertyOTVariation)); + return true; + } else if (p_path == "opentype_features") { + add_property_editor(p_path, memnew(EditorPropertyOTFeatures)); + return true; + } else if (p_path == "language_support") { + add_property_editor(p_path, memnew(EditorPropertyFontMetaOverride(false))); + return true; + } else if (p_path == "script_support") { + add_property_editor(p_path, memnew(EditorPropertyFontMetaOverride(true))); + return true; + } + return false; +} + +/*************************************************************************/ +/* FontPreview */ +/*************************************************************************/ + +void FontPreview::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_DRAW: { + // Draw font name (style). + Ref<Font> font = get_theme_font(SNAME("font"), SNAME("Label")); + int font_size = get_theme_font_size(SNAME("font_size"), SNAME("Label")); + Color text_color = get_theme_color(SNAME("font_color"), SNAME("Label")); + font->draw_string(get_canvas_item(), Point2(0, font->get_height(font_size) + 2 * EDSCALE), name, HORIZONTAL_ALIGNMENT_CENTER, get_size().x, font_size, text_color); + + // Draw font preview. + Vector2 pos = Vector2(0, font->get_height(font_size)) + (get_size() - Vector2(0, font->get_height(font_size)) - line->get_size()) / 2; + line->draw(get_canvas_item(), pos, text_color); + + // Draw font baseline. + Color line_color = text_color; + line_color.a *= 0.6; + draw_line(Vector2(0, pos.y + line->get_line_ascent()), Vector2(pos.x - 5, pos.y + line->get_line_ascent()), line_color); + draw_line(Vector2(pos.x + line->get_size().x + 5, pos.y + line->get_line_ascent()), Vector2(get_size().x, pos.y + line->get_line_ascent()), line_color); + } break; + } +} + +void FontPreview::_bind_methods() {} + +Size2 FontPreview::get_minimum_size() const { + return Vector2(64, 64) * EDSCALE; +} + +void FontPreview::set_data(const Ref<Font> &p_f) { + line->clear(); + if (p_f.is_valid()) { + name = vformat("%s (%s)", p_f->get_font_name(), p_f->get_font_style_name()); + if (p_f->is_class("FontVariation")) { + name += " " + TTR(" - Variation"); + } + String sample; + static const String sample_base = U"12漢字ԱբΑαАбΑαאבابܐܒހށआআਆઆଆஆఆಆആආกิກິༀကႠა한글ሀᎣᐁᚁᚠᜀᜠᝀᝠកᠠᤁᥐAb😀"; + for (int i = 0; i < sample_base.length(); i++) { + if (p_f->has_char(sample_base[i])) { + sample += sample_base[i]; + } + } + if (sample.is_empty()) { + sample = p_f->get_supported_chars().substr(0, 6); + } + line->add_string(sample, p_f, 50); + } + + update(); +} + +FontPreview::FontPreview() { + line.instantiate(); +} + +/*************************************************************************/ +/* EditorInspectorPluginFontPreview */ +/*************************************************************************/ + +bool EditorInspectorPluginFontPreview::can_handle(Object *p_object) { + return Object::cast_to<Font>(p_object) != nullptr; +} + +void EditorInspectorPluginFontPreview::parse_begin(Object *p_object) { + Font *fd = Object::cast_to<Font>(p_object); + ERR_FAIL_COND(!fd); + + FontPreview *editor = memnew(FontPreview); + editor->set_data(fd); + add_custom_control(editor); +} + +bool EditorInspectorPluginFontPreview::parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const uint32_t p_usage, const bool p_wide) { + return false; +} + +/*************************************************************************/ +/* FontEditorPlugin */ +/*************************************************************************/ + +FontEditorPlugin::FontEditorPlugin() { + Ref<EditorInspectorPluginFontVariation> fc_plugin; + fc_plugin.instantiate(); + EditorInspector::add_inspector_plugin(fc_plugin); + + Ref<EditorInspectorPluginFontPreview> fp_plugin; + fp_plugin.instantiate(); + EditorInspector::add_inspector_plugin(fp_plugin); +} diff --git a/editor/plugins/font_config_plugin.h b/editor/plugins/font_config_plugin.h new file mode 100644 index 0000000000..9b7ee55870 --- /dev/null +++ b/editor/plugins/font_config_plugin.h @@ -0,0 +1,261 @@ +/*************************************************************************/ +/* font_config_plugin.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#ifndef OT_FEATURES_PLUGIN_H +#define OT_FEATURES_PLUGIN_H + +#include "core/io/marshalls.h" +#include "editor/editor_plugin.h" +#include "editor/editor_properties.h" + +/*************************************************************************/ + +class EditorPropertyFontMetaObject : public RefCounted { + GDCLASS(EditorPropertyFontMetaObject, RefCounted); + + Dictionary dict; + +protected: + bool _set(const StringName &p_name, const Variant &p_value); + bool _get(const StringName &p_name, Variant &r_ret) const; + static void _bind_methods(); + +public: + void set_dict(const Dictionary &p_dict); + Dictionary get_dict(); + + EditorPropertyFontMetaObject(){}; +}; + +/*************************************************************************/ + +class EditorPropertyFontOTObject : public RefCounted { + GDCLASS(EditorPropertyFontOTObject, RefCounted); + + Dictionary dict; + Dictionary defaults_dict; + +protected: + bool _set(const StringName &p_name, const Variant &p_value); + bool _get(const StringName &p_name, Variant &r_ret) const; + static void _bind_methods(); + +public: + void set_dict(const Dictionary &p_dict); + Dictionary get_dict(); + + void set_defaults(const Dictionary &p_dict); + Dictionary get_defaults(); + + bool property_can_revert(const String &p_name); + Variant property_get_revert(const String &p_name); + + EditorPropertyFontOTObject(){}; +}; + +/*************************************************************************/ + +class EditorPropertyFontMetaOverride : public EditorProperty { + GDCLASS(EditorPropertyFontMetaOverride, EditorProperty); + + Ref<EditorPropertyFontMetaObject> object; + + MarginContainer *container = nullptr; + VBoxContainer *property_vbox = nullptr; + + Button *button_add = nullptr; + Button *edit = nullptr; + PopupMenu *menu = nullptr; + EditorLocaleDialog *locale_select = nullptr; + + Vector<String> script_codes; + + bool script_editor = false; + bool updating = false; + int page_length = 20; + int page_index = 0; + EditorPaginator *paginator = nullptr; + +protected: + void _notification(int p_what); + static void _bind_methods(){}; + + void _edit_pressed(); + void _page_changed(int p_page); + void _property_changed(const String &p_property, Variant p_value, const String &p_name = "", bool p_changing = false); + void _remove(Object *p_button, const String &p_key); + void _add_menu(); + void _add_script(int p_option); + void _add_lang(const String &p_locale); + void _object_id_selected(const StringName &p_property, ObjectID p_id); + +public: + virtual void update_property() override; + + EditorPropertyFontMetaOverride(bool p_script); +}; + +/*************************************************************************/ + +class EditorPropertyOTVariation : public EditorProperty { + GDCLASS(EditorPropertyOTVariation, EditorProperty); + + Ref<EditorPropertyFontOTObject> object; + + MarginContainer *container = nullptr; + VBoxContainer *property_vbox = nullptr; + + Button *edit = nullptr; + + bool updating = false; + int page_length = 20; + int page_index = 0; + EditorPaginator *paginator = nullptr; + +protected: + void _notification(int p_what); + static void _bind_methods(){}; + + void _edit_pressed(); + void _page_changed(int p_page); + void _property_changed(const String &p_property, Variant p_value, const String &p_name = "", bool p_changing = false); + void _object_id_selected(const StringName &p_property, ObjectID p_id); + +public: + virtual void update_property() override; + + EditorPropertyOTVariation(); +}; + +/*************************************************************************/ + +class EditorPropertyOTFeatures : public EditorProperty { + GDCLASS(EditorPropertyOTFeatures, EditorProperty); + + enum FeatureGroups { + FGRP_STYLISTIC_SET, + FGRP_CHARACTER_VARIANT, + FGRP_CAPITLS, + FGRP_LIGATURES, + FGRP_ALTERNATES, + FGRP_EAL, + FGRP_EAW, + FGRP_NUMAL, + FGRP_CUSTOM, + FGRP_MAX, + }; + + Ref<EditorPropertyFontOTObject> object; + + MarginContainer *container = nullptr; + VBoxContainer *property_vbox = nullptr; + + Button *button_add = nullptr; + Button *edit = nullptr; + PopupMenu *menu = nullptr; + PopupMenu *menu_sub[FGRP_MAX]; + String group_names[FGRP_MAX]; + + bool updating = false; + int page_length = 20; + int page_index = 0; + EditorPaginator *paginator = nullptr; + +protected: + void _notification(int p_what); + static void _bind_methods(){}; + + void _edit_pressed(); + void _page_changed(int p_page); + void _property_changed(const String &p_property, Variant p_value, const String &p_name = "", bool p_changing = false); + void _remove(Object *p_button, int p_key); + void _add_menu(); + void _add_feature(int p_option); + void _object_id_selected(const StringName &p_property, ObjectID p_id); + +public: + virtual void update_property() override; + + EditorPropertyOTFeatures(); +}; + +/*************************************************************************/ + +class EditorInspectorPluginFontVariation : public EditorInspectorPlugin { + GDCLASS(EditorInspectorPluginFontVariation, EditorInspectorPlugin); + +public: + virtual bool can_handle(Object *p_object) override; + virtual bool parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const uint32_t p_usage, const bool p_wide = false) override; +}; + +/*************************************************************************/ + +class FontPreview : public Control { + GDCLASS(FontPreview, Control); + +protected: + void _notification(int p_what); + static void _bind_methods(); + + String name; + Ref<TextLine> line; + +public: + virtual Size2 get_minimum_size() const override; + + void set_data(const Ref<Font> &p_f); + + FontPreview(); +}; + +/*************************************************************************/ + +class EditorInspectorPluginFontPreview : public EditorInspectorPlugin { + GDCLASS(EditorInspectorPluginFontPreview, EditorInspectorPlugin); + +public: + virtual bool can_handle(Object *p_object) override; + virtual void parse_begin(Object *p_object) override; + virtual bool parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const uint32_t p_usage, const bool p_wide = false) override; +}; + +/*************************************************************************/ + +class FontEditorPlugin : public EditorPlugin { + GDCLASS(FontEditorPlugin, EditorPlugin); + +public: + FontEditorPlugin(); + + virtual String get_name() const override { return "Font"; } +}; + +#endif // OT_FEATURES_PLUGIN_H diff --git a/editor/plugins/font_editor_plugin.cpp b/editor/plugins/font_editor_plugin.cpp deleted file mode 100644 index b9de621bcb..0000000000 --- a/editor/plugins/font_editor_plugin.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/*************************************************************************/ -/* font_editor_plugin.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ - -#include "font_editor_plugin.h" - -#include "editor/editor_scale.h" - -void FontDataPreview::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_DRAW: { - Color text_color = get_theme_color(SNAME("font_color"), SNAME("Label")); - Color line_color = text_color; - line_color.a *= 0.6; - Vector2 pos = (get_size() - line->get_size()) / 2; - line->draw(get_canvas_item(), pos, text_color); - draw_line(Vector2(0, pos.y + line->get_line_ascent()), Vector2(pos.x - 5, pos.y + line->get_line_ascent()), line_color); - draw_line(Vector2(pos.x + line->get_size().x + 5, pos.y + line->get_line_ascent()), Vector2(get_size().x, pos.y + line->get_line_ascent()), line_color); - } break; - } -} - -void FontDataPreview::_bind_methods() {} - -Size2 FontDataPreview::get_minimum_size() const { - return Vector2(64, 64) * EDSCALE; -} - -void FontDataPreview::set_data(const Ref<FontData> &p_data) { - Ref<Font> f = memnew(Font); - f->add_data(p_data); - - line->clear(); - if (p_data.is_valid()) { - String sample; - static const String sample_base = U"12漢字ԱբΑαАбΑαאבابܐܒހށआআਆઆଆஆఆಆആආกิກິༀကႠა한글ሀᎣᐁᚁᚠᜀᜠᝀᝠកᠠᤁᥐAb😀"; - for (int i = 0; i < sample_base.length(); i++) { - if (p_data->has_char(sample_base[i])) { - sample += sample_base[i]; - } - } - if (sample.is_empty()) { - sample = p_data->get_supported_chars().substr(0, 6); - } - line->add_string(sample, f, 72); - } - - update(); -} - -FontDataPreview::FontDataPreview() { - line.instantiate(); -} - -/*************************************************************************/ - -bool EditorInspectorPluginFont::can_handle(Object *p_object) { - return Object::cast_to<FontData>(p_object) != nullptr; -} - -void EditorInspectorPluginFont::parse_begin(Object *p_object) { - FontData *fd = Object::cast_to<FontData>(p_object); - ERR_FAIL_COND(!fd); - - FontDataPreview *editor = memnew(FontDataPreview); - editor->set_data(fd); - add_custom_control(editor); -} - -bool EditorInspectorPluginFont::parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const uint32_t p_usage, const bool p_wide) { - return false; -} - -/*************************************************************************/ - -FontEditorPlugin::FontEditorPlugin() { - Ref<EditorInspectorPluginFont> fd_plugin; - fd_plugin.instantiate(); - EditorInspector::add_inspector_plugin(fd_plugin); -} diff --git a/editor/plugins/gpu_particles_2d_editor_plugin.cpp b/editor/plugins/gpu_particles_2d_editor_plugin.cpp index 72caa15e9c..8e6687c836 100644 --- a/editor/plugins/gpu_particles_2d_editor_plugin.cpp +++ b/editor/plugins/gpu_particles_2d_editor_plugin.cpp @@ -299,12 +299,7 @@ void GPUParticles2DEditorPlugin::_generate_emission_mask() { img.instantiate(); img->create(w, h, false, Image::FORMAT_RGF, texdata); - - Ref<ImageTexture> imgt; - imgt.instantiate(); - imgt->create_from_image(img); - - pm->set_emission_point_texture(imgt); + pm->set_emission_point_texture(ImageTexture::create_from_image(img)); pm->set_emission_point_count(vpc); if (capture_colors) { @@ -320,10 +315,7 @@ void GPUParticles2DEditorPlugin::_generate_emission_mask() { img.instantiate(); img->create(w, h, false, Image::FORMAT_RGBA8, colordata); - - imgt.instantiate(); - imgt->create_from_image(img); - pm->set_emission_color_texture(imgt); + pm->set_emission_color_texture(ImageTexture::create_from_image(img)); } if (valid_normals.size()) { @@ -343,10 +335,7 @@ void GPUParticles2DEditorPlugin::_generate_emission_mask() { img.instantiate(); img->create(w, h, false, Image::FORMAT_RGF, normdata); - - imgt.instantiate(); - imgt->create_from_image(img); - pm->set_emission_normal_texture(imgt); + pm->set_emission_normal_texture(ImageTexture::create_from_image(img)); } else { pm->set_emission_shape(ParticlesMaterial::EMISSION_SHAPE_POINTS); @@ -391,7 +380,7 @@ GPUParticles2DEditorPlugin::GPUParticles2DEditorPlugin() { List<String> ext; ImageLoader::get_recognized_extensions(&ext); for (const String &E : ext) { - file->add_filter("*." + E + "; " + E.to_upper()); + file->add_filter("*." + E, E.to_upper()); } file->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE); toolbar->add_child(file); diff --git a/editor/plugins/gpu_particles_3d_editor_plugin.cpp b/editor/plugins/gpu_particles_3d_editor_plugin.cpp index fa971679e6..6750f1aa9c 100644 --- a/editor/plugins/gpu_particles_3d_editor_plugin.cpp +++ b/editor/plugins/gpu_particles_3d_editor_plugin.cpp @@ -215,7 +215,7 @@ GPUParticles3DEditorBase::GPUParticles3DEditorBase() { emission_fill->add_item(TTR("Volume")); emd_vb->add_margin_child(TTR("Emission Source:"), emission_fill); - emission_dialog->get_ok_button()->set_text(TTR("Create")); + emission_dialog->set_ok_button_text(TTR("Create")); emission_dialog->connect("confirmed", callable_mp(this, &GPUParticles3DEditorBase::_generate_emission_points)); emission_tree_dialog = memnew(SceneTreeDialog); @@ -363,10 +363,7 @@ void GPUParticles3DEditor::_generate_emission_points() { } Ref<Image> image = memnew(Image(w, h, false, Image::FORMAT_RGBF, point_img)); - - Ref<ImageTexture> tex; - tex.instantiate(); - tex->create_from_image(image); + Ref<ImageTexture> tex = ImageTexture::create_from_image(image); Ref<ParticlesMaterial> material = node->get_process_material(); ERR_FAIL_COND(material.is_null()); @@ -392,12 +389,7 @@ void GPUParticles3DEditor::_generate_emission_points() { } Ref<Image> image2 = memnew(Image(w, h, false, Image::FORMAT_RGBF, point_img2)); - - Ref<ImageTexture> tex2; - tex2.instantiate(); - tex2->create_from_image(image2); - - material->set_emission_normal_texture(tex2); + material->set_emission_normal_texture(ImageTexture::create_from_image(image2)); } else { material->set_emission_shape(ParticlesMaterial::EMISSION_SHAPE_POINTS); material->set_emission_point_count(point_count); diff --git a/editor/plugins/lightmap_gi_editor_plugin.cpp b/editor/plugins/lightmap_gi_editor_plugin.cpp index aef97f059a..8413c5e875 100644 --- a/editor/plugins/lightmap_gi_editor_plugin.cpp +++ b/editor/plugins/lightmap_gi_editor_plugin.cpp @@ -138,7 +138,7 @@ LightmapGIEditorPlugin::LightmapGIEditorPlugin() { file_dialog = memnew(EditorFileDialog); file_dialog->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE); - file_dialog->add_filter("*.lmbake ; " + TTR("LightMap Bake")); + file_dialog->add_filter("*.lmbake", TTR("LightMap Bake")); file_dialog->set_title(TTR("Select lightmap bake file:")); file_dialog->connect("file_selected", callable_mp(this, &LightmapGIEditorPlugin::_bake_select_file)); bake->add_child(file_dialog); diff --git a/editor/plugins/mesh_instance_3d_editor_plugin.cpp b/editor/plugins/mesh_instance_3d_editor_plugin.cpp index d1f858315c..5fb885ad1f 100644 --- a/editor/plugins/mesh_instance_3d_editor_plugin.cpp +++ b/editor/plugins/mesh_instance_3d_editor_plugin.cpp @@ -519,7 +519,7 @@ MeshInstance3DEditor::MeshInstance3DEditor() { outline_dialog = memnew(ConfirmationDialog); outline_dialog->set_title(TTR("Create Outline Mesh")); - outline_dialog->get_ok_button()->set_text(TTR("Create")); + outline_dialog->set_ok_button_text(TTR("Create")); VBoxContainer *outline_dialog_vbc = memnew(VBoxContainer); outline_dialog->add_child(outline_dialog_vbc); diff --git a/editor/plugins/mesh_library_editor_plugin.cpp b/editor/plugins/mesh_library_editor_plugin.cpp index 914ccb54c1..72bfc05270 100644 --- a/editor/plugins/mesh_library_editor_plugin.cpp +++ b/editor/plugins/mesh_library_editor_plugin.cpp @@ -263,7 +263,7 @@ MeshLibraryEditor::MeshLibraryEditor() { file->clear_filters(); file->set_title(TTR("Import Scene")); for (int i = 0; i < extensions.size(); i++) { - file->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper()); + file->add_filter("*." + extensions[i], extensions[i].to_upper()); } add_child(file); file->connect("file_selected", callable_mp(this, &MeshLibraryEditor::_import_scene_cbk)); @@ -288,7 +288,7 @@ MeshLibraryEditor::MeshLibraryEditor() { cd_remove->get_ok_button()->connect("pressed", callable_mp(this, &MeshLibraryEditor::_menu_remove_confirm)); cd_update = memnew(ConfirmationDialog); add_child(cd_update); - cd_update->get_ok_button()->set_text(TTR("Apply without Transforms")); + cd_update->set_ok_button_text(TTR("Apply without Transforms")); cd_update->get_ok_button()->connect("pressed", callable_mp(this, &MeshLibraryEditor::_menu_update_confirm), varray(false)); cd_update->add_button(TTR("Apply with Transforms"))->connect("pressed", callable_mp(this, &MeshLibraryEditor::_menu_update_confirm), varray(true)); } diff --git a/editor/plugins/multimesh_editor_plugin.cpp b/editor/plugins/multimesh_editor_plugin.cpp index 0fab3aed0d..7207390922 100644 --- a/editor/plugins/multimesh_editor_plugin.cpp +++ b/editor/plugins/multimesh_editor_plugin.cpp @@ -347,7 +347,7 @@ MultiMeshEditor::MultiMeshEditor() { populate_amount->set_value(128); vbc->add_margin_child(TTR("Amount:"), populate_amount); - populate_dialog->get_ok_button()->set_text(TTR("Populate")); + populate_dialog->set_ok_button_text(TTR("Populate")); populate_dialog->get_ok_button()->connect("pressed", callable_mp(this, &MultiMeshEditor::_populate)); std = memnew(SceneTreeDialog); diff --git a/editor/plugins/node_3d_editor_gizmos.cpp b/editor/plugins/node_3d_editor_gizmos.cpp index 64aeb9f2a8..77cf1f0064 100644 --- a/editor/plugins/node_3d_editor_gizmos.cpp +++ b/editor/plugins/node_3d_editor_gizmos.cpp @@ -245,6 +245,7 @@ void EditorNode3DGizmo::Instance::create_instance(Node3D *p_base, bool p_hidden) int layer = p_hidden ? 0 : 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER; RS::get_singleton()->instance_set_layer_mask(instance, layer); //gizmos are 26 RS::get_singleton()->instance_geometry_set_flag(instance, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(instance, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); } void EditorNode3DGizmo::add_mesh(const Ref<Mesh> &p_mesh, const Ref<Material> &p_material, const Transform3D &p_xform, const Ref<SkinReference> &p_skin_reference) { diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 815d0a2425..99c492379d 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -145,7 +145,7 @@ void ViewportRotationControl::_draw_axis(const Axis2D &p_axis) { // Draw the axis letter for the positive axes. const String axis_name = direction == 0 ? "X" : (direction == 1 ? "Y" : "Z"); - draw_char(get_theme_font(SNAME("rotation_control"), SNAME("EditorFonts")), p_axis.screen_point + Vector2i(Math::round(-4.0 * EDSCALE), Math::round(5.0 * EDSCALE)), axis_name, "", get_theme_font_size(SNAME("rotation_control_size"), SNAME("EditorFonts")), Color(0.0, 0.0, 0.0, alpha)); + draw_char(get_theme_font(SNAME("rotation_control"), SNAME("EditorFonts")), p_axis.screen_point + Vector2i(Math::round(-4.0 * EDSCALE), Math::round(5.0 * EDSCALE)), axis_name, get_theme_font_size(SNAME("rotation_control_size"), SNAME("EditorFonts")), Color(0.0, 0.0, 0.0, alpha)); } else { // Draw an outline around the negative axes. draw_circle(p_axis.screen_point, AXIS_CIRCLE_RADIUS, c); @@ -2725,7 +2725,8 @@ static void draw_indicator_bar(Control &p_surface, real_t p_fill, const Ref<Text p_surface.draw_texture(p_icon, icon_pos, p_color); // Draw text below the bar (for speed/zoom information). - p_surface.draw_string(p_font, Vector2(icon_pos.x, icon_pos.y + icon_size.y + 16 * EDSCALE), p_text, HORIZONTAL_ALIGNMENT_LEFT, -1.f, p_font_size, p_color, Math::round(2 * EDSCALE), Color(0, 0, 0)); + p_surface.draw_string_outline(p_font, Vector2(icon_pos.x, icon_pos.y + icon_size.y + 16 * EDSCALE), p_text, HORIZONTAL_ALIGNMENT_LEFT, -1.f, p_font_size, Math::round(2 * EDSCALE), Color(0, 0, 0)); + p_surface.draw_string(p_font, Vector2(icon_pos.x, icon_pos.y + icon_size.y + 16 * EDSCALE), p_text, HORIZONTAL_ALIGNMENT_LEFT, -1.f, p_font_size, p_color); } void Node3DEditorViewport::_draw() { @@ -3251,6 +3252,7 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) { RS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(move_gizmo_instance[i], layer); RS::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); move_plane_gizmo_instance[i] = RS::get_singleton()->instance_create(); RS::get_singleton()->instance_set_base(move_plane_gizmo_instance[i], spatial_editor->get_move_plane_gizmo(i)->get_rid()); @@ -3259,6 +3261,7 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) { RS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_plane_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(move_plane_gizmo_instance[i], layer); RS::get_singleton()->instance_geometry_set_flag(move_plane_gizmo_instance[i], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(move_plane_gizmo_instance[i], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); rotate_gizmo_instance[i] = RS::get_singleton()->instance_create(); RS::get_singleton()->instance_set_base(rotate_gizmo_instance[i], spatial_editor->get_rotate_gizmo(i)->get_rid()); @@ -3267,6 +3270,7 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) { RS::get_singleton()->instance_geometry_set_cast_shadows_setting(rotate_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(rotate_gizmo_instance[i], layer); RS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); scale_gizmo_instance[i] = RS::get_singleton()->instance_create(); RS::get_singleton()->instance_set_base(scale_gizmo_instance[i], spatial_editor->get_scale_gizmo(i)->get_rid()); @@ -3275,6 +3279,7 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) { RS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(scale_gizmo_instance[i], layer); RS::get_singleton()->instance_geometry_set_flag(scale_gizmo_instance[i], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(scale_gizmo_instance[i], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); scale_plane_gizmo_instance[i] = RS::get_singleton()->instance_create(); RS::get_singleton()->instance_set_base(scale_plane_gizmo_instance[i], spatial_editor->get_scale_plane_gizmo(i)->get_rid()); @@ -3283,6 +3288,7 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) { RS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_plane_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(scale_plane_gizmo_instance[i], layer); RS::get_singleton()->instance_geometry_set_flag(scale_plane_gizmo_instance[i], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(scale_plane_gizmo_instance[i], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); axis_gizmo_instance[i] = RS::get_singleton()->instance_create(); RS::get_singleton()->instance_set_base(axis_gizmo_instance[i], spatial_editor->get_axis_gizmo(i)->get_rid()); @@ -3290,6 +3296,8 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) { RS::get_singleton()->instance_set_visible(axis_gizmo_instance[i], true); RS::get_singleton()->instance_geometry_set_cast_shadows_setting(axis_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(axis_gizmo_instance[i], layer); + RS::get_singleton()->instance_geometry_set_flag(axis_gizmo_instance[i], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(axis_gizmo_instance[i], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); } // Rotation white outline @@ -3300,6 +3308,7 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) { RS::get_singleton()->instance_geometry_set_cast_shadows_setting(rotate_gizmo_instance[3], RS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(rotate_gizmo_instance[3], layer); RS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[3], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[3], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); } void Node3DEditorViewport::_finish_gizmo_instances() { @@ -4514,6 +4523,7 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, int p vbox->add_child(view_menu); display_submenu = memnew(PopupMenu); + view_menu->get_popup()->set_hide_on_checkable_item_selection(false); view_menu->get_popup()->add_child(display_submenu); view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/top_view"), VIEW_TOP); @@ -4537,6 +4547,7 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, int p view_menu->get_popup()->add_radio_check_shortcut(ED_SHORTCUT("spatial_editor/view_display_lighting", TTR("Display Lighting")), VIEW_DISPLAY_LIGHTING); view_menu->get_popup()->add_radio_check_shortcut(ED_SHORTCUT("spatial_editor/view_display_unshaded", TTR("Display Unshaded")), VIEW_DISPLAY_SHADELESS); view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(VIEW_DISPLAY_NORMAL), true); + display_submenu->set_hide_on_checkable_item_selection(false); display_submenu->add_radio_check_item(TTR("Directional Shadow Splits"), VIEW_DISPLAY_DEBUG_PSSM_SPLITS); display_submenu->add_separator(); display_submenu->add_radio_check_item(TTR("Normal Buffer"), VIEW_DISPLAY_NORMAL_BUFFER); @@ -4692,7 +4703,7 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, int p frame_time_gradient->add_point(0.5, Color()); top_right_vbox = memnew(VBoxContainer); - top_right_vbox->set_anchors_and_offsets_preset(PRESET_TOP_RIGHT, PRESET_MODE_MINSIZE, 2.0 * EDSCALE); + top_right_vbox->set_anchors_and_offsets_preset(PRESET_TOP_RIGHT, PRESET_MODE_MINSIZE, 10.0 * EDSCALE); top_right_vbox->set_h_grow_direction(GROW_DIRECTION_BEGIN); // Make sure frame time labels don't touch the viewport's edge. top_right_vbox->set_custom_minimum_size(Size2(100, 0) * EDSCALE); @@ -5188,7 +5199,9 @@ Object *Node3DEditor::_get_editor_data(Object *p_what) { RS::get_singleton()->instance_set_layer_mask(si->sbox_instance, 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER); RS::get_singleton()->instance_set_layer_mask(si->sbox_instance_offset, 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER); RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_offset, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_offset, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); si->sbox_instance_xray = RenderingServer::get_singleton()->instance_create2( selection_box_xray->get_rid(), sp->get_world_3d()->get_scenario()); @@ -5206,7 +5219,9 @@ Object *Node3DEditor::_get_editor_data(Object *p_what) { RS::get_singleton()->instance_set_layer_mask(si->sbox_instance_xray, 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER); RS::get_singleton()->instance_set_layer_mask(si->sbox_instance_xray_offset, 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER); RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_xray, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_xray, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_xray_offset, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_xray_offset, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); return si; } @@ -5993,6 +6008,7 @@ void fragment() { origin_instance = RenderingServer::get_singleton()->instance_create2(origin, get_tree()->get_root()->get_world_3d()->get_scenario()); RS::get_singleton()->instance_set_layer_mask(origin_instance, 1 << Node3DEditorViewport::GIZMO_GRID_LAYER); RS::get_singleton()->instance_geometry_set_flag(origin_instance, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(origin_instance, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); RenderingServer::get_singleton()->instance_geometry_set_cast_shadows_setting(origin_instance, RS::SHADOW_CASTING_SETTING_OFF); } @@ -6603,6 +6619,7 @@ void Node3DEditor::_init_grid() { RenderingServer::get_singleton()->instance_geometry_set_cast_shadows_setting(grid_instance[c], RS::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(grid_instance[c], 1 << Node3DEditorViewport::GIZMO_GRID_LAYER); RS::get_singleton()->instance_geometry_set_flag(grid_instance[c], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(grid_instance[c], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); } } diff --git a/editor/plugins/occluder_instance_3d_editor_plugin.cpp b/editor/plugins/occluder_instance_3d_editor_plugin.cpp index d5fc51aea4..365f74d7a3 100644 --- a/editor/plugins/occluder_instance_3d_editor_plugin.cpp +++ b/editor/plugins/occluder_instance_3d_editor_plugin.cpp @@ -113,7 +113,7 @@ OccluderInstance3DEditorPlugin::OccluderInstance3DEditorPlugin() { file_dialog = memnew(EditorFileDialog); file_dialog->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE); - file_dialog->add_filter("*.occ ; Occluder3D"); + file_dialog->add_filter("*.occ", "Occluder3D"); file_dialog->set_title(TTR("Select occluder bake file:")); file_dialog->connect("file_selected", callable_mp(this, &OccluderInstance3DEditorPlugin::_bake_select_file)); bake->add_child(file_dialog); diff --git a/editor/plugins/ot_features_plugin.cpp b/editor/plugins/ot_features_plugin.cpp deleted file mode 100644 index f8526fb715..0000000000 --- a/editor/plugins/ot_features_plugin.cpp +++ /dev/null @@ -1,235 +0,0 @@ -/*************************************************************************/ -/* ot_features_plugin.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ - -#include "ot_features_plugin.h" - -#include "scene/3d/label_3d.h" -#include "scene/resources/primitive_meshes.h" - -void OpenTypeFeaturesEditor::_value_changed(double val) { - if (setting) { - return; - } - - emit_changed(get_edited_property(), spin->get_value()); -} - -void OpenTypeFeaturesEditor::update_property() { - double val = get_edited_object()->get(get_edited_property()); - setting = true; - spin->set_value(val); - setting = false; -} - -void OpenTypeFeaturesEditor::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: - case NOTIFICATION_THEME_CHANGED: { - Color base = get_theme_color(SNAME("accent_color"), SNAME("Editor")); - - button->set_icon(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons"))); - button->set_size(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons"))->get_size()); - spin->add_theme_color_override("label_color", base); - } break; - } -} - -void OpenTypeFeaturesEditor::_remove_feature() { - get_edited_object()->set(get_edited_property(), -1); -} - -void OpenTypeFeaturesEditor::_bind_methods() { -} - -OpenTypeFeaturesEditor::OpenTypeFeaturesEditor() { - HBoxContainer *bc = memnew(HBoxContainer); - add_child(bc); - - spin = memnew(EditorSpinSlider); - spin->set_flat(true); - bc->add_child(spin); - add_focusable(spin); - spin->connect("value_changed", callable_mp(this, &OpenTypeFeaturesEditor::_value_changed)); - spin->set_h_size_flags(SIZE_EXPAND_FILL); - - spin->set_min(0); - spin->set_max(65536); - spin->set_step(1); - spin->set_hide_slider(false); - spin->set_allow_greater(false); - spin->set_allow_lesser(false); - - button = memnew(Button); - button->set_tooltip(RTR("Remove feature")); - button->set_flat(true); - bc->add_child(button); - - button->connect("pressed", callable_mp(this, &OpenTypeFeaturesEditor::_remove_feature)); - - setting = false; -} - -/*************************************************************************/ - -void OpenTypeFeaturesAdd::_add_feature(int p_option) { - edited_object->set("opentype_features/" + TS->tag_to_name(p_option), 1); -} - -void OpenTypeFeaturesAdd::_features_menu() { - Size2 size = get_size(); - menu->set_position(get_screen_position() + Size2(0, size.height * get_global_transform().get_scale().y)); - menu->reset_size(); - menu->popup(); -} - -void OpenTypeFeaturesAdd::setup(Object *p_object) { - edited_object = p_object; - - menu->clear(); - menu_ss->clear(); - menu_cv->clear(); - menu_cu->clear(); - bool have_ss = false; - bool have_cv = false; - bool have_cu = false; - - Ref<Font> font; - - Control *ctrl = Object::cast_to<Control>(edited_object); - if (ctrl != nullptr) { - font = ctrl->get_theme_font(SNAME("font")); - } - Label3D *l3d = Object::cast_to<Label3D>(edited_object); - if (l3d != nullptr) { - font = l3d->_get_font_or_default(); - } - TextMesh *tm = Object::cast_to<TextMesh>(edited_object); - if (tm != nullptr) { - font = tm->_get_font_or_default(); - } - - if (font.is_null()) { - return; - } - - Dictionary features = font->get_feature_list(); - - for (const Variant *ftr = features.next(nullptr); ftr != nullptr; ftr = features.next(ftr)) { - String ftr_name = TS->tag_to_name(*ftr); - if (ftr_name.begins_with("stylistic_set_")) { - menu_ss->add_item(ftr_name.capitalize(), (int32_t)*ftr); - have_ss = true; - } else if (ftr_name.begins_with("character_variant_")) { - menu_cv->add_item(ftr_name.capitalize(), (int32_t)*ftr); - have_cv = true; - } else if (ftr_name.begins_with("custom_")) { - menu_cu->add_item(ftr_name.replace("custom_", ""), (int32_t)*ftr); - have_cu = true; - } else { - menu->add_item(ftr_name.capitalize(), (int32_t)*ftr); - } - } - if (have_ss) { - menu->add_submenu_item(RTR("Stylistic Sets"), "SSMenu"); - } - if (have_cv) { - menu->add_submenu_item(RTR("Character Variants"), "CVMenu"); - } - if (have_cu) { - menu->add_submenu_item(RTR("Custom"), "CUMenu"); - } -} - -void OpenTypeFeaturesAdd::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - connect("pressed", callable_mp(this, &OpenTypeFeaturesAdd::_features_menu)); - [[fallthrough]]; - } - case NOTIFICATION_THEME_CHANGED: { - set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); - } break; - } -} - -void OpenTypeFeaturesAdd::_bind_methods() { -} - -OpenTypeFeaturesAdd::OpenTypeFeaturesAdd() { - set_text(TTR("Add Feature...")); - - menu = memnew(PopupMenu); - add_child(menu); - - menu_cv = memnew(PopupMenu); - menu_cv->set_name("CVMenu"); - menu->add_child(menu_cv); - - menu_ss = memnew(PopupMenu); - menu_ss->set_name("SSMenu"); - menu->add_child(menu_ss); - - menu_cu = memnew(PopupMenu); - menu_cu->set_name("CUMenu"); - menu->add_child(menu_cu); - - menu->connect("id_pressed", callable_mp(this, &OpenTypeFeaturesAdd::_add_feature)); - menu_cv->connect("id_pressed", callable_mp(this, &OpenTypeFeaturesAdd::_add_feature)); - menu_ss->connect("id_pressed", callable_mp(this, &OpenTypeFeaturesAdd::_add_feature)); - menu_cu->connect("id_pressed", callable_mp(this, &OpenTypeFeaturesAdd::_add_feature)); -} - -/*************************************************************************/ - -bool EditorInspectorPluginOpenTypeFeatures::can_handle(Object *p_object) { - return (Object::cast_to<Control>(p_object) != nullptr) || (Object::cast_to<Label3D>(p_object) != nullptr) || (Object::cast_to<TextMesh>(p_object) != nullptr); -} - -bool EditorInspectorPluginOpenTypeFeatures::parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const uint32_t p_usage, const bool p_wide) { - if (p_path == "opentype_features/_new") { - OpenTypeFeaturesAdd *editor = memnew(OpenTypeFeaturesAdd); - editor->setup(p_object); - add_custom_control(editor); - return true; - } else if (p_path.begins_with("opentype_features")) { - OpenTypeFeaturesEditor *editor = memnew(OpenTypeFeaturesEditor); - add_property_editor(p_path, editor); - return true; - } - return false; -} - -/*************************************************************************/ - -OpenTypeFeaturesEditorPlugin::OpenTypeFeaturesEditorPlugin() { - Ref<EditorInspectorPluginOpenTypeFeatures> ftr_plugin; - ftr_plugin.instantiate(); - EditorInspector::add_inspector_plugin(ftr_plugin); -} diff --git a/editor/plugins/replication_editor_plugin.cpp b/editor/plugins/replication_editor_plugin.cpp index 72fe3c5f20..9e495c3aa3 100644 --- a/editor/plugins/replication_editor_plugin.cpp +++ b/editor/plugins/replication_editor_plugin.cpp @@ -171,7 +171,7 @@ ReplicationEditor::ReplicationEditor() { add_child(delete_dialog); error_dialog = memnew(AcceptDialog); - error_dialog->get_ok_button()->set_text(TTR("Close")); + error_dialog->set_ok_button_text(TTR("Close")); error_dialog->set_title(TTR("Error!")); add_child(error_dialog); diff --git a/editor/plugins/resource_preloader_editor_plugin.cpp b/editor/plugins/resource_preloader_editor_plugin.cpp index 79fc304242..4e528ef066 100644 --- a/editor/plugins/resource_preloader_editor_plugin.cpp +++ b/editor/plugins/resource_preloader_editor_plugin.cpp @@ -57,7 +57,7 @@ void ResourcePreloaderEditor::_files_load_request(const Vector<String> &p_paths) dialog->set_text(TTR("ERROR: Couldn't load resource!")); dialog->set_title(TTR("Error!")); //dialog->get_cancel()->set_text("Close"); - dialog->get_ok_button()->set_text(TTR("Close")); + dialog->set_ok_button_text(TTR("Close")); dialog->popup_centered(); return; ///beh should show an error i guess } @@ -139,7 +139,7 @@ void ResourcePreloaderEditor::_paste_pressed() { if (!r.is_valid()) { dialog->set_text(TTR("Resource clipboard is empty!")); dialog->set_title(TTR("Error!")); - dialog->get_ok_button()->set_text(TTR("Close")); + dialog->set_ok_button_text(TTR("Close")); dialog->popup_centered(); return; ///beh should show an error i guess } diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index 6ab2366a44..f4d42ff456 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -377,7 +377,7 @@ ScriptEditorQuickOpen::ScriptEditorQuickOpen() { search_box->connect("gui_input", callable_mp(this, &ScriptEditorQuickOpen::_sbox_input)); search_options = memnew(Tree); vbc->add_margin_child(TTR("Matches:"), search_options, true); - get_ok_button()->set_text(TTR("Open")); + set_ok_button_text(TTR("Open")); get_ok_button()->set_disabled(true); register_text_enter(search_box); set_hide_on_ok(false); @@ -1188,7 +1188,7 @@ void ScriptEditor::_menu_option(int p_option) { file_dialog->clear_filters(); for (const String &E : textfile_extensions) { - file_dialog->add_filter("*." + E + " ; " + E.to_upper()); + file_dialog->add_filter("*." + E, E.to_upper()); } file_dialog->popup_file_dialog(); file_dialog->set_title(TTR("New Text File...")); @@ -1203,11 +1203,11 @@ void ScriptEditor::_menu_option(int p_option) { ResourceLoader::get_recognized_extensions_for_type("Script", &extensions); file_dialog->clear_filters(); for (int i = 0; i < extensions.size(); i++) { - file_dialog->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper()); + file_dialog->add_filter("*." + extensions[i], extensions[i].to_upper()); } for (const String &E : textfile_extensions) { - file_dialog->add_filter("*." + E + " ; " + E.to_upper()); + file_dialog->add_filter("*." + E, E.to_upper()); } file_dialog->popup_file_dialog(); @@ -3883,7 +3883,7 @@ ScriptEditor::ScriptEditor() { tab_container->connect("tab_changed", callable_mp(this, &ScriptEditor::_tab_changed)); erase_tab_confirm = memnew(ConfirmationDialog); - erase_tab_confirm->get_ok_button()->set_text(TTR("Save")); + erase_tab_confirm->set_ok_button_text(TTR("Save")); erase_tab_confirm->add_button(TTR("Discard"), DisplayServer::get_singleton()->get_swap_cancel_ok(), "discard"); erase_tab_confirm->connect("confirmed", callable_mp(this, &ScriptEditor::_close_current_tab), varray(true)); erase_tab_confirm->connect("custom_action", callable_mp(this, &ScriptEditor::_close_discard_current_tab)); @@ -3916,7 +3916,7 @@ ScriptEditor::ScriptEditor() { disk_changed_list->set_v_size_flags(SIZE_EXPAND_FILL); disk_changed->connect("confirmed", callable_mp(this, &ScriptEditor::_reload_scripts)); - disk_changed->get_ok_button()->set_text(TTR("Reload")); + disk_changed->set_ok_button_text(TTR("Reload")); disk_changed->add_button(TTR("Resave"), !DisplayServer::get_singleton()->get_swap_cancel_ok(), "resave"); disk_changed->connect("custom_action", callable_mp(this, &ScriptEditor::_resave_scripts)); diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index 05c707c065..66cd85a26a 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -886,6 +886,9 @@ void ScriptTextEditor::_lookup_symbol(const String &p_symbol, int p_row, int p_c emit_signal(SNAME("go_to_help"), "class_enum:" + result.class_name + ":" + result.class_member); } break; + case ScriptLanguage::LOOKUP_RESULT_CLASS_ANNOTATION: { + emit_signal(SNAME("go_to_help"), "class_annotation:" + result.class_name + ":" + result.class_member); + } break; case ScriptLanguage::LOOKUP_RESULT_CLASS_TBD_GLOBALSCOPE: { emit_signal(SNAME("go_to_help"), "class_global:" + result.class_name + ":" + result.class_member); } break; @@ -1196,7 +1199,7 @@ void ScriptTextEditor::_edit_option(int p_op) { String whitespace = line.substr(0, line.size() - line.strip_edges(true, false).size()); //extract the whitespace at the beginning if (expression.parse(line) == OK) { - Variant result = expression.execute(Array(), Variant(), false); + Variant result = expression.execute(Array(), Variant(), false, true); if (expression.get_error_text().is_empty()) { results.push_back(whitespace + result.get_construct_string()); } else { @@ -1862,11 +1865,7 @@ void ScriptTextEditor::_enable_code_editor() { // get default color picker mode from editor settings int default_color_mode = EDITOR_GET("interface/inspector/default_color_picker_mode"); - if (default_color_mode == 1) { - color_picker->set_hsv_mode(true); - } else if (default_color_mode == 2) { - color_picker->set_raw_mode(true); - } + color_picker->set_color_mode((ColorPicker::ColorModeType)default_color_mode); int picker_shape = EDITOR_GET("interface/inspector/default_color_picker_shape"); color_picker->set_picker_shape((ColorPicker::PickerShapeType)picker_shape); diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp index 04b407ce65..85a39b1c9c 100644 --- a/editor/plugins/shader_editor_plugin.cpp +++ b/editor/plugins/shader_editor_plugin.cpp @@ -830,7 +830,7 @@ ShaderEditor::ShaderEditor() { vbc->add_child(dl); disk_changed->connect("confirmed", callable_mp(this, &ShaderEditor::_reload_shader_from_disk)); - disk_changed->get_ok_button()->set_text(TTR("Reload")); + disk_changed->set_ok_button_text(TTR("Reload")); disk_changed->add_button(TTR("Resave"), !DisplayServer::get_singleton()->get_swap_cancel_ok(), "resave"); disk_changed->connect("custom_action", callable_mp(this, &ShaderEditor::save_external_data)); diff --git a/editor/plugins/sprite_2d_editor_plugin.cpp b/editor/plugins/sprite_2d_editor_plugin.cpp index ad817f9a41..3323d865c2 100644 --- a/editor/plugins/sprite_2d_editor_plugin.cpp +++ b/editor/plugins/sprite_2d_editor_plugin.cpp @@ -122,7 +122,7 @@ void Sprite2DEditor::_menu_option(int p_option) { switch (p_option) { case MENU_OPTION_CONVERT_TO_MESH_2D: { - debug_uv_dialog->get_ok_button()->set_text(TTR("Create MeshInstance2D")); + debug_uv_dialog->set_ok_button_text(TTR("Create MeshInstance2D")); debug_uv_dialog->set_title(TTR("MeshInstance2D Preview")); _update_mesh_data(); @@ -131,7 +131,7 @@ void Sprite2DEditor::_menu_option(int p_option) { } break; case MENU_OPTION_CONVERT_TO_POLYGON_2D: { - debug_uv_dialog->get_ok_button()->set_text(TTR("Create Polygon2D")); + debug_uv_dialog->set_ok_button_text(TTR("Create Polygon2D")); debug_uv_dialog->set_title(TTR("Polygon2D Preview")); _update_mesh_data(); @@ -139,7 +139,7 @@ void Sprite2DEditor::_menu_option(int p_option) { debug_uv->update(); } break; case MENU_OPTION_CREATE_COLLISION_POLY_2D: { - debug_uv_dialog->get_ok_button()->set_text(TTR("Create CollisionPolygon2D")); + debug_uv_dialog->set_ok_button_text(TTR("Create CollisionPolygon2D")); debug_uv_dialog->set_title(TTR("CollisionPolygon2D Preview")); _update_mesh_data(); @@ -148,7 +148,7 @@ void Sprite2DEditor::_menu_option(int p_option) { } break; case MENU_OPTION_CREATE_LIGHT_OCCLUDER_2D: { - debug_uv_dialog->get_ok_button()->set_text(TTR("Create LightOccluder2D")); + debug_uv_dialog->set_ok_button_text(TTR("Create LightOccluder2D")); debug_uv_dialog->set_title(TTR("LightOccluder2D Preview")); _update_mesh_data(); diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp index 8a40ffbe38..edd900f7d8 100644 --- a/editor/plugins/sprite_frames_editor_plugin.cpp +++ b/editor/plugins/sprite_frames_editor_plugin.cpp @@ -119,7 +119,7 @@ void SpriteFramesEditor::_sheet_preview_draw() { if (frames_selected.size() == 0) { split_sheet_dialog->get_ok_button()->set_disabled(true); - split_sheet_dialog->get_ok_button()->set_text(TTR("No Frames Selected")); + split_sheet_dialog->set_ok_button_text(TTR("No Frames Selected")); return; } @@ -140,7 +140,7 @@ void SpriteFramesEditor::_sheet_preview_draw() { } split_sheet_dialog->get_ok_button()->set_disabled(false); - split_sheet_dialog->get_ok_button()->set_text(vformat(TTR("Add %d Frame(s)"), frames_selected.size())); + split_sheet_dialog->set_ok_button_text(vformat(TTR("Add %d Frame(s)"), frames_selected.size())); } void SpriteFramesEditor::_sheet_preview_input(const Ref<InputEvent> &p_event) { @@ -449,7 +449,7 @@ void SpriteFramesEditor::_file_load_request(const Vector<String> &p_path, int p_ dialog->set_title(TTR("Error!")); //dialog->get_cancel()->set_text("Close"); - dialog->get_ok_button()->set_text(TTR("Close")); + dialog->set_ok_button_text(TTR("Close")); dialog->popup_centered(); return; ///beh should show an error i guess } @@ -516,7 +516,7 @@ void SpriteFramesEditor::_paste_pressed() { dialog->set_text(TTR("Resource clipboard is empty or not a texture!")); dialog->set_title(TTR("Error!")); //dialog->get_cancel()->set_text("Close"); - dialog->get_ok_button()->set_text(TTR("Close")); + dialog->set_ok_button_text(TTR("Close")); dialog->popup_centered(); return; ///beh should show an error i guess } diff --git a/editor/plugins/text_control_editor_plugin.cpp b/editor/plugins/text_control_editor_plugin.cpp deleted file mode 100644 index 2a5faba4a2..0000000000 --- a/editor/plugins/text_control_editor_plugin.cpp +++ /dev/null @@ -1,660 +0,0 @@ -/*************************************************************************/ -/* text_control_editor_plugin.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ - -#include "text_control_editor_plugin.h" - -#include "editor/editor_node.h" -#include "editor/editor_scale.h" -#include "editor/multi_node_edit.h" - -void TextControlEditor::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - if (!EditorFileSystem::get_singleton()->is_connected("filesystem_changed", callable_mp(this, &TextControlEditor::_reload_fonts))) { - EditorFileSystem::get_singleton()->connect("filesystem_changed", callable_mp(this, &TextControlEditor::_reload_fonts), make_binds("")); - } - [[fallthrough]]; - } - case NOTIFICATION_THEME_CHANGED: { - clear_formatting->set_icon(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons"))); - } break; - - case NOTIFICATION_EXIT_TREE: { - if (EditorFileSystem::get_singleton()->is_connected("filesystem_changed", callable_mp(this, &TextControlEditor::_reload_fonts))) { - EditorFileSystem::get_singleton()->disconnect("filesystem_changed", callable_mp(this, &TextControlEditor::_reload_fonts)); - } - } break; - } -} - -void TextControlEditor::_bind_methods() { - ClassDB::bind_method(D_METHOD("_update_control"), &TextControlEditor::_update_control); -} - -void TextControlEditor::_find_resources(EditorFileSystemDirectory *p_dir) { - for (int i = 0; i < p_dir->get_subdir_count(); i++) { - _find_resources(p_dir->get_subdir(i)); - } - - for (int i = 0; i < p_dir->get_file_count(); i++) { - if (p_dir->get_file_type(i) == "FontData") { - Ref<FontData> fd = ResourceLoader::load(p_dir->get_file_path(i)); - if (fd.is_valid()) { - String name = fd->get_font_name(); - String sty = fd->get_font_style_name(); - if (sty.is_empty()) { - sty = "Default"; - } - fonts[name][sty] = p_dir->get_file_path(i); - } - } - } -} - -void TextControlEditor::_reload_fonts(const String &p_path) { - fonts.clear(); - _find_resources(EditorFileSystem::get_singleton()->get_filesystem()); - _update_control(); -} - -void TextControlEditor::_update_fonts_menu() { - font_list->clear(); - font_list->add_item(TTR("[Theme Default]"), FONT_INFO_THEME_DEFAULT); - if (custom_font.is_valid()) { - font_list->add_item(TTR("[Custom Font]"), FONT_INFO_USER_CUSTOM); - } - - int id = FONT_INFO_ID; - for (const KeyValue<String, HashMap<String, String>> &E : fonts) { - font_list->add_item(E.key, id++); - } - - if (font_list->get_item_count() > 1) { - font_list->show(); - } else { - font_list->hide(); - } -} - -void TextControlEditor::_update_styles_menu() { - font_style_list->clear(); - if ((font_list->get_selected_id() >= FONT_INFO_ID)) { - const String &name = font_list->get_item_text(font_list->get_selected()); - for (KeyValue<String, String> &E : fonts[name]) { - font_style_list->add_item(E.key); - } - } else if (font_list->get_selected() >= 0) { - font_style_list->add_item("Default"); - } - - if (font_style_list->get_item_count() > 1) { - font_style_list->show(); - } else { - font_style_list->hide(); - } -} - -void TextControlEditor::_update_control() { - if (!edited_controls.is_empty()) { - String font_selected; - bool same_font = true; - String style_selected; - bool same_style = true; - int font_size = 0; - bool same_font_size = true; - int outline_size = 0; - bool same_outline_size = true; - Color font_color = Color{ 1.0f, 1.0f, 1.0f }; - bool same_font_color = true; - Color outline_color = Color{ 1.0f, 1.0f, 1.0f }; - bool same_outline_color = true; - - int count = edited_controls.size(); - for (int i = 0; i < count; ++i) { - Control *edited_control = edited_controls[i]; - - StringName edited_color; - StringName edited_font; - StringName edited_font_size; - - // Get override names. - if (Object::cast_to<RichTextLabel>(edited_control)) { - edited_color = SNAME("default_color"); - edited_font = SNAME("normal_font"); - edited_font_size = SNAME("normal_font_size"); - } else { - edited_color = SNAME("font_color"); - edited_font = SNAME("font"); - edited_font_size = SNAME("font_size"); - } - - // Get font override. - Ref<Font> font; - if (edited_control->has_theme_font_override(edited_font)) { - font = edited_control->get_theme_font(edited_font); - } - - if (font.is_valid()) { - if (font->get_data_count() != 1) { - if (i > 0) { - same_font = same_font && (custom_font == font); - } - custom_font = font; - - font_selected = TTR("[Custom Font]"); - same_style = false; - } else { - String name = font->get_data(0)->get_font_name(); - String style = font->get_data(0)->get_font_style_name(); - if (fonts.has(name) && fonts[name].has(style)) { - if (i > 0) { - same_font = same_font && (name == font_selected); - same_style = same_style && (style == style_selected); - } - font_selected = name; - style_selected = style; - } else { - if (i > 0) { - same_font = same_font && (custom_font == font); - } - custom_font = font; - - font_selected = TTR("[Custom Font]"); - same_style = false; - } - } - } else { - if (i > 0) { - same_font = same_font && (font_selected == TTR("[Theme Default]")); - } - - font_selected = TTR("[Theme Default]"); - same_style = false; - } - - int current_font_size = edited_control->get_theme_font_size(edited_font_size); - int current_outline_size = edited_control->get_theme_constant(SNAME("outline_size")); - Color current_font_color = edited_control->get_theme_color(edited_color); - Color current_outline_color = edited_control->get_theme_color(SNAME("font_outline_color")); - if (i > 0) { - same_font_size = same_font_size && (font_size == current_font_size); - same_outline_size = same_outline_size && (outline_size == current_outline_size); - same_font_color = same_font_color && (font_color == current_font_color); - same_outline_color = same_outline_color && (outline_color == current_outline_color); - } - - font_size = current_font_size; - outline_size = current_outline_size; - font_color = current_font_color; - outline_color = current_outline_color; - } - _update_fonts_menu(); - if (same_font) { - for (int j = 0; j < font_list->get_item_count(); j++) { - if (font_list->get_item_text(j) == font_selected) { - font_list->select(j); - break; - } - } - } else { - custom_font = Ref<Font>(); - font_list->select(-1); - } - - _update_styles_menu(); - if (same_style) { - for (int j = 0; j < font_style_list->get_item_count(); j++) { - if (font_style_list->get_item_text(j) == style_selected) { - font_style_list->select(j); - break; - } - } - } else { - font_style_list->select(-1); - } - - // Get other theme overrides. - font_size_list->set_block_signals(true); - if (same_font_size) { - font_size_list->get_line_edit()->set_text(String::num_uint64(font_size)); - font_size_list->set_value(font_size); - } else { - font_size_list->get_line_edit()->set_text(""); - } - font_size_list->set_block_signals(false); - - outline_size_list->set_block_signals(true); - if (same_outline_size) { - outline_size_list->get_line_edit()->set_text(String::num_uint64(outline_size)); - outline_size_list->set_value(outline_size); - } else { - outline_size_list->get_line_edit()->set_text(""); - } - outline_size_list->set_block_signals(false); - - if (!same_font_color) { - font_color = Color{ 1.0f, 1.0f, 1.0f }; - } - font_color_picker->set_pick_color(font_color); - - if (!same_outline_color) { - outline_color = Color{ 1.0f, 1.0f, 1.0f }; - } - outline_color_picker->set_pick_color(outline_color); - } -} - -void TextControlEditor::_font_selected(int p_id) { - _update_styles_menu(); - _set_font(); -} - -void TextControlEditor::_font_style_selected(int p_id) { - _set_font(); -} - -void TextControlEditor::_set_font() { - if (edited_controls.is_empty()) { - return; - } - - UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); - ur->create_action(TTR("Set Font")); - - int count = edited_controls.size(); - for (int i = 0; i < count; ++i) { - Control *edited_control = edited_controls[i]; - - StringName edited_font; - if (Object::cast_to<RichTextLabel>(edited_control)) { - edited_font = SNAME("normal_font"); - } else { - edited_font = SNAME("font"); - } - - if (font_list->get_selected_id() == FONT_INFO_THEME_DEFAULT) { - // Remove font override. - ur->add_do_method(edited_control, "remove_theme_font_override", edited_font); - } else if (font_list->get_selected_id() == FONT_INFO_USER_CUSTOM) { - // Restore "custom_font". - ur->add_do_method(edited_control, "add_theme_font_override", edited_font, custom_font); - } else if (font_list->get_selected() >= 0) { - // Load new font resource using selected name and style. - String name = font_list->get_item_text(font_list->get_selected()); - String style = font_style_list->get_item_text(font_style_list->get_selected()); - if (style.is_empty()) { - style = "Default"; - } - if (fonts.has(name)) { - Ref<FontData> fd = ResourceLoader::load(fonts[name][style]); - if (fd.is_valid()) { - Ref<Font> font; - font.instantiate(); - font->add_data(fd); - ur->add_do_method(edited_control, "add_theme_font_override", edited_font, font); - } - } - } - - if (edited_control->has_theme_font_override(edited_font)) { - ur->add_undo_method(edited_control, "add_theme_font_override", edited_font, edited_control->get_theme_font(edited_font)); - } else { - ur->add_undo_method(edited_control, "remove_theme_font_override", edited_font); - } - } - - ur->add_do_method(this, "_update_control"); - ur->add_undo_method(this, "_update_control"); - - ur->commit_action(); -} - -void TextControlEditor::_font_size_selected(double p_size) { - if (edited_controls.is_empty()) { - return; - } - - UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); - ur->create_action(TTR("Set Font Size")); - - int count = edited_controls.size(); - for (int i = 0; i < count; ++i) { - Control *edited_control = edited_controls[i]; - - StringName edited_font_size; - if (Object::cast_to<RichTextLabel>(edited_control)) { - edited_font_size = SNAME("normal_font_size"); - } else { - edited_font_size = SNAME("font_size"); - } - - ur->add_do_method(edited_control, "add_theme_font_size_override", edited_font_size, p_size); - if (edited_control->has_theme_font_size_override(edited_font_size)) { - ur->add_undo_method(edited_control, "add_theme_font_size_override", edited_font_size, edited_control->get_theme_font_size(edited_font_size)); - } else { - ur->add_undo_method(edited_control, "remove_theme_font_size_override", edited_font_size); - } - } - - ur->add_do_method(this, "_update_control"); - ur->add_undo_method(this, "_update_control"); - - ur->commit_action(); -} - -void TextControlEditor::_outline_size_selected(double p_size) { - if (edited_controls.is_empty()) { - return; - } - - UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); - ur->create_action(TTR("Set Font Outline Size")); - - int count = edited_controls.size(); - for (int i = 0; i < count; ++i) { - Control *edited_control = edited_controls[i]; - - ur->add_do_method(edited_control, "add_theme_constant_override", "outline_size", p_size); - if (edited_control->has_theme_constant_override("outline_size")) { - ur->add_undo_method(edited_control, "add_theme_constant_override", "outline_size", edited_control->get_theme_constant(SNAME("outline_size"))); - } else { - ur->add_undo_method(edited_control, "remove_theme_constant_override", "outline_size"); - } - } - - ur->add_do_method(this, "_update_control"); - ur->add_undo_method(this, "_update_control"); - - ur->commit_action(); -} - -void TextControlEditor::_font_color_changed(const Color &p_color) { - if (edited_controls.is_empty()) { - return; - } - - UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); - ur->create_action(TTR("Set Font Color"), UndoRedo::MERGE_ENDS); - - int count = edited_controls.size(); - for (int i = 0; i < count; ++i) { - Control *edited_control = edited_controls[i]; - - StringName edited_color; - if (Object::cast_to<RichTextLabel>(edited_control)) { - edited_color = SNAME("default_color"); - } else { - edited_color = SNAME("font_color"); - } - - ur->add_do_method(edited_control, "add_theme_color_override", edited_color, p_color); - if (edited_control->has_theme_color_override(edited_color)) { - ur->add_undo_method(edited_control, "add_theme_color_override", edited_color, edited_control->get_theme_color(edited_color)); - } else { - ur->add_undo_method(edited_control, "remove_theme_color_override", edited_color); - } - } - - ur->add_do_method(this, "_update_control"); - ur->add_undo_method(this, "_update_control"); - - ur->commit_action(); -} - -void TextControlEditor::_outline_color_changed(const Color &p_color) { - if (edited_controls.is_empty()) { - return; - } - - UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); - ur->create_action(TTR("Set Font Outline Color"), UndoRedo::MERGE_ENDS); - - int count = edited_controls.size(); - for (int i = 0; i < count; ++i) { - Control *edited_control = edited_controls[i]; - - ur->add_do_method(edited_control, "add_theme_color_override", "font_outline_color", p_color); - if (edited_control->has_theme_color_override("font_outline_color")) { - ur->add_undo_method(edited_control, "add_theme_color_override", "font_outline_color", edited_control->get_theme_color(SNAME("font_outline_color"))); - } else { - ur->add_undo_method(edited_control, "remove_theme_color_override", "font_outline_color"); - } - } - - ur->add_do_method(this, "_update_control"); - ur->add_undo_method(this, "_update_control"); - - ur->commit_action(); -} - -void TextControlEditor::_clear_formatting() { - if (edited_controls.is_empty()) { - return; - } - - UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); - ur->create_action(TTR("Clear Control Formatting")); - - int count = edited_controls.size(); - for (int i = 0; i < count; ++i) { - Control *edited_control = edited_controls[i]; - - StringName edited_color; - StringName edited_font; - StringName edited_font_size; - - // Get override names. - if (Object::cast_to<RichTextLabel>(edited_control)) { - edited_color = SNAME("default_color"); - edited_font = SNAME("normal_font"); - edited_font_size = SNAME("normal_font_size"); - } else { - edited_color = SNAME("font_color"); - edited_font = SNAME("font"); - edited_font_size = SNAME("font_size"); - } - - ur->add_do_method(edited_control, "begin_bulk_theme_override"); - ur->add_undo_method(edited_control, "begin_bulk_theme_override"); - - ur->add_do_method(edited_control, "remove_theme_font_override", edited_font); - if (edited_control->has_theme_font_override(edited_font)) { - ur->add_undo_method(edited_control, "add_theme_font_override", edited_font, edited_control->get_theme_font(edited_font)); - } - - ur->add_do_method(edited_control, "remove_theme_font_size_override", edited_font_size); - if (edited_control->has_theme_font_size_override(edited_font_size)) { - ur->add_undo_method(edited_control, "add_theme_font_size_override", edited_font_size, edited_control->get_theme_font_size(edited_font_size)); - } - - ur->add_do_method(edited_control, "remove_theme_color_override", edited_color); - if (edited_control->has_theme_color_override(edited_color)) { - ur->add_undo_method(edited_control, "add_theme_color_override", edited_color, edited_control->get_theme_color(edited_color)); - } - - ur->add_do_method(edited_control, "remove_theme_color_override", "font_outline_color"); - if (edited_control->has_theme_color_override("font_outline_color")) { - ur->add_undo_method(edited_control, "add_theme_color_override", "font_outline_color", edited_control->get_theme_color(SNAME("font_outline_color"))); - } - - ur->add_do_method(edited_control, "remove_theme_constant_override", "outline_size"); - if (edited_control->has_theme_constant_override("outline_size")) { - ur->add_undo_method(edited_control, "add_theme_constant_override", "outline_size", edited_control->get_theme_constant(SNAME("outline_size"))); - } - - ur->add_do_method(edited_control, "end_bulk_theme_override"); - ur->add_undo_method(edited_control, "end_bulk_theme_override"); - } - - ur->add_do_method(this, "_update_control"); - ur->add_undo_method(this, "_update_control"); - - ur->commit_action(); -} - -void TextControlEditor::edit(Object *p_object) { - Control *ctrl = Object::cast_to<Control>(p_object); - MultiNodeEdit *multi_node = Object::cast_to<MultiNodeEdit>(p_object); - - edited_controls.clear(); - custom_font = Ref<Font>(); - if (ctrl) { - edited_controls.append(ctrl); - _update_control(); - } else if (multi_node && handles(multi_node)) { - int count = multi_node->get_node_count(); - Node *scene = EditorNode::get_singleton()->get_edited_scene(); - - for (int i = 0; i < count; ++i) { - Control *child = Object::cast_to<Control>(scene->get_node(multi_node->get_node(i))); - edited_controls.append(child); - } - _update_control(); - } -} - -bool TextControlEditor::handles(Object *p_object) const { - Control *ctrl = Object::cast_to<Control>(p_object); - MultiNodeEdit *multi_node = Object::cast_to<MultiNodeEdit>(p_object); - - if (!ctrl && !multi_node) { - return false; - } else if (ctrl) { - bool valid = false; - ctrl->get("text", &valid); - return valid; - } else { - bool valid = true; - int count = multi_node->get_node_count(); - Node *scene = EditorNode::get_singleton()->get_edited_scene(); - - for (int i = 0; i < count; ++i) { - bool temp_valid = false; - Control *child = Object::cast_to<Control>(scene->get_node(multi_node->get_node(i))); - if (child) { - child->get("text", &temp_valid); - } - valid = valid && temp_valid; - - if (!valid) { - break; - } - } - - return valid; - } -} - -TextControlEditor::TextControlEditor() { - add_child(memnew(VSeparator)); - - font_list = memnew(OptionButton); - font_list->set_flat(true); - font_list->set_tooltip(TTR("Font")); - add_child(font_list); - font_list->connect("item_selected", callable_mp(this, &TextControlEditor::_font_selected)); - - font_style_list = memnew(OptionButton); - font_style_list->set_flat(true); - font_style_list->set_tooltip(TTR("Font style")); - font_style_list->set_toggle_mode(true); - add_child(font_style_list); - font_style_list->connect("item_selected", callable_mp(this, &TextControlEditor::_font_style_selected)); - - font_size_list = memnew(SpinBox); - font_size_list->set_tooltip(TTR("Font Size")); - font_size_list->get_line_edit()->add_theme_constant_override("minimum_character_width", 2); - font_size_list->set_min(6); - font_size_list->set_step(1); - font_size_list->set_max(96); - font_size_list->get_line_edit()->set_flat(true); - add_child(font_size_list); - font_size_list->connect("value_changed", callable_mp(this, &TextControlEditor::_font_size_selected)); - - font_color_picker = memnew(ColorPickerButton); - font_color_picker->set_custom_minimum_size(Size2(20, 0) * EDSCALE); - font_color_picker->set_flat(true); - font_color_picker->set_tooltip(TTR("Text Color")); - add_child(font_color_picker); - font_color_picker->connect("color_changed", callable_mp(this, &TextControlEditor::_font_color_changed)); - - add_child(memnew(VSeparator)); - - outline_size_list = memnew(SpinBox); - outline_size_list->set_tooltip(TTR("Outline Size")); - outline_size_list->get_line_edit()->add_theme_constant_override("minimum_character_width", 2); - outline_size_list->set_min(0); - outline_size_list->set_step(1); - outline_size_list->set_max(96); - outline_size_list->get_line_edit()->set_flat(true); - add_child(outline_size_list); - outline_size_list->connect("value_changed", callable_mp(this, &TextControlEditor::_outline_size_selected)); - - outline_color_picker = memnew(ColorPickerButton); - outline_color_picker->set_custom_minimum_size(Size2(20, 0) * EDSCALE); - outline_color_picker->set_flat(true); - outline_color_picker->set_tooltip(TTR("Outline Color")); - add_child(outline_color_picker); - outline_color_picker->connect("color_changed", callable_mp(this, &TextControlEditor::_outline_color_changed)); - - add_child(memnew(VSeparator)); - - clear_formatting = memnew(Button); - clear_formatting->set_flat(true); - clear_formatting->set_tooltip(TTR("Clear Formatting")); - add_child(clear_formatting); - clear_formatting->connect("pressed", callable_mp(this, &TextControlEditor::_clear_formatting)); -} - -/*************************************************************************/ - -void TextControlEditorPlugin::edit(Object *p_object) { - text_ctl_editor->edit(p_object); -} - -bool TextControlEditorPlugin::handles(Object *p_object) const { - return text_ctl_editor->handles(p_object); -} - -void TextControlEditorPlugin::make_visible(bool p_visible) { - if (p_visible) { - text_ctl_editor->show(); - } else { - text_ctl_editor->hide(); - text_ctl_editor->edit(nullptr); - } -} - -TextControlEditorPlugin::TextControlEditorPlugin() { - text_ctl_editor = memnew(TextControlEditor); - CanvasItemEditor::get_singleton()->add_control_to_menu_panel(text_ctl_editor); - - text_ctl_editor->hide(); -} diff --git a/editor/plugins/text_control_editor_plugin.h b/editor/plugins/text_control_editor_plugin.h deleted file mode 100644 index cf069338b6..0000000000 --- a/editor/plugins/text_control_editor_plugin.h +++ /dev/null @@ -1,115 +0,0 @@ -/*************************************************************************/ -/* text_control_editor_plugin.h */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ - -#ifndef TEXT_CONTROL_EDITOR_PLUGIN_H -#define TEXT_CONTROL_EDITOR_PLUGIN_H - -#include "canvas_item_editor_plugin.h" -#include "editor/editor_file_system.h" -#include "editor/editor_inspector.h" -#include "editor/editor_plugin.h" -#include "scene/gui/color_picker.h" -#include "scene/gui/color_rect.h" -#include "scene/gui/menu_button.h" -#include "scene/gui/option_button.h" -#include "scene/gui/popup_menu.h" - -/*************************************************************************/ - -class TextControlEditor : public HBoxContainer { - GDCLASS(TextControlEditor, HBoxContainer); - - enum FontInfoID { - FONT_INFO_THEME_DEFAULT = 0, - FONT_INFO_USER_CUSTOM = 1, - FONT_INFO_ID = 100, - }; - - HashMap<String, HashMap<String, String>> fonts; - - OptionButton *font_list = nullptr; - SpinBox *font_size_list = nullptr; - OptionButton *font_style_list = nullptr; - ColorPickerButton *font_color_picker = nullptr; - SpinBox *outline_size_list = nullptr; - ColorPickerButton *outline_color_picker = nullptr; - Button *clear_formatting = nullptr; - - Vector<Control *> edited_controls; - Ref<Font> custom_font; - -protected: - void _notification(int p_what); - static void _bind_methods(); - - void _find_resources(EditorFileSystemDirectory *p_dir); - void _reload_fonts(const String &p_path); - - void _update_fonts_menu(); - void _update_styles_menu(); - void _update_control(); - - void _font_selected(int p_id); - void _font_style_selected(int p_id); - void _set_font(); - - void _font_size_selected(double p_size); - void _outline_size_selected(double p_size); - - void _font_color_changed(const Color &p_color); - void _outline_color_changed(const Color &p_color); - - void _clear_formatting(); - -public: - void edit(Object *p_object); - bool handles(Object *p_object) const; - - TextControlEditor(); -}; - -/*************************************************************************/ - -class TextControlEditorPlugin : public EditorPlugin { - GDCLASS(TextControlEditorPlugin, EditorPlugin); - - TextControlEditor *text_ctl_editor = nullptr; - -public: - virtual String get_name() const override { return "TextControlFontEditor"; } - bool has_main_screen() const override { return false; } - virtual void edit(Object *p_object) override; - virtual bool handles(Object *p_object) const override; - virtual void make_visible(bool p_visible) override; - - TextControlEditorPlugin(); -}; - -#endif // TEXT_CONTROL_EDITOR_PLUGIN_H diff --git a/editor/plugins/texture_editor_plugin.cpp b/editor/plugins/texture_editor_plugin.cpp index 15f03fd46d..98e80c5513 100644 --- a/editor/plugins/texture_editor_plugin.cpp +++ b/editor/plugins/texture_editor_plugin.cpp @@ -59,7 +59,7 @@ void TexturePreview::_notification(int p_what) { } void TexturePreview::_update_metadata_label_text() { - Ref<Texture2D> texture = texture_display->get_texture(); + const Ref<Texture2D> texture = texture_display->get_texture(); String format; if (Object::cast_to<ImageTexture>(*texture)) { @@ -70,7 +70,49 @@ void TexturePreview::_update_metadata_label_text() { format = texture->get_class(); } - metadata_label->set_text(vformat(String::utf8("%s×%s %s"), itos(texture->get_width()), itos(texture->get_height()), format)); + const Ref<Image> image = texture->get_image(); + if (image.is_valid()) { + const int mipmaps = image->get_mipmap_count(); + // Avoid signed integer overflow that could occur with huge texture sizes by casting everything to uint64_t. + uint64_t memory = uint64_t(image->get_width()) * uint64_t(image->get_height()) * uint64_t(Image::get_format_pixel_size(image->get_format())); + // Handle VRAM-compressed formats that are stored with 4 bpp. + memory >>= Image::get_format_pixel_rshift(image->get_format()); + + float mipmaps_multiplier = 1.0; + float mipmap_increase = 0.25; + for (int i = 0; i < mipmaps; i++) { + // Each mip adds 25% memory usage of the previous one. + // With a complete mipmap chain, memory usage increases by ~33%. + mipmaps_multiplier += mipmap_increase; + mipmap_increase *= 0.25; + } + memory *= mipmaps_multiplier; + + if (mipmaps >= 1) { + metadata_label->set_text( + vformat(String::utf8("%d×%d %s\n") + TTR("%s Mipmaps") + "\n" + TTR("Memory: %s"), + texture->get_width(), + texture->get_height(), + format, + mipmaps, + String::humanize_size(memory))); + } else { + // "No Mipmaps" is easier to distinguish than "0 Mipmaps", + // especially since 0, 6, and 8 look quite close with the default code font. + metadata_label->set_text( + vformat(String::utf8("%d×%d %s\n") + TTR("No Mipmaps") + "\n" + TTR("Memory: %s"), + texture->get_width(), + texture->get_height(), + format, + String::humanize_size(memory))); + } + } else { + metadata_label->set_text( + vformat(String::utf8("%d×%d %s"), + texture->get_width(), + texture->get_height(), + format)); + } } TexturePreview::TexturePreview(Ref<Texture2D> p_texture, bool p_show_metadata) { @@ -97,11 +139,9 @@ TexturePreview::TexturePreview(Ref<Texture2D> p_texture, bool p_show_metadata) { metadata_label->add_theme_color_override("font_color", Color::named("white")); metadata_label->add_theme_color_override("font_color_shadow", Color::named("black")); - metadata_label->add_theme_font_size_override("font_size", 16 * EDSCALE); + metadata_label->add_theme_font_size_override("font_size", 14 * EDSCALE); metadata_label->add_theme_color_override("font_outline_color", Color::named("black")); - metadata_label->add_theme_constant_override("outline_size", 2 * EDSCALE); - - metadata_label->add_theme_constant_override("shadow_outline_size", 1); + metadata_label->add_theme_constant_override("outline_size", 8 * EDSCALE); metadata_label->set_h_size_flags(Control::SIZE_SHRINK_END); metadata_label->set_v_size_flags(Control::SIZE_SHRINK_END); diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp index 3f4f9a4f4d..dd98247428 100644 --- a/editor/plugins/texture_region_editor_plugin.cpp +++ b/editor/plugins/texture_region_editor_plugin.cpp @@ -989,7 +989,7 @@ Vector2 TextureRegionEditor::snap_point(Vector2 p_target) const { } TextureRegionEditor::TextureRegionEditor() { - get_ok_button()->set_text(TTR("Close")); + set_ok_button_text(TTR("Close")); VBoxContainer *vb = memnew(VBoxContainer); add_child(vb); node_sprite_2d = nullptr; diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp index c7dc61b3a8..129af1bb1d 100644 --- a/editor/plugins/theme_editor_plugin.cpp +++ b/editor/plugins/theme_editor_plugin.cpp @@ -1883,7 +1883,7 @@ void ThemeItemEditorDialog::set_edited_theme(const Ref<Theme> &p_theme) { ThemeItemEditorDialog::ThemeItemEditorDialog(ThemeTypeEditor *p_theme_type_editor) { set_title(TTR("Manage Theme Items")); - get_ok_button()->set_text(TTR("Close")); + set_ok_button_text(TTR("Close")); set_hide_on_ok(false); // Closing may require a confirmation in some cases. theme_type_editor = p_theme_type_editor; @@ -2080,7 +2080,7 @@ ThemeItemEditorDialog::ThemeItemEditorDialog(ThemeTypeEditor *p_theme_type_edito List<String> ext; ResourceLoader::get_recognized_extensions_for_type("Theme", &ext); for (const String &E : ext) { - import_another_theme_dialog->add_filter(vformat("*.%s; %s", E, TTR("Theme Resource"))); + import_another_theme_dialog->add_filter("*." + E, TTR("Theme Resource")); } import_another_file_hb->add_child(import_another_theme_dialog); import_another_theme_dialog->connect("file_selected", callable_mp(this, &ThemeItemEditorDialog::_select_another_theme_cbk)); @@ -2733,7 +2733,7 @@ void ThemeTypeEditor::_list_type_selected(int p_index) { void ThemeTypeEditor::_add_type_button_cbk() { add_type_mode = ADD_THEME_TYPE; add_type_dialog->set_title(TTR("Add Item Type")); - add_type_dialog->get_ok_button()->set_text(TTR("Add Type")); + add_type_dialog->set_ok_button_text(TTR("Add Type")); add_type_dialog->set_include_own_types(false); add_type_dialog->popup_centered(Size2(560, 420) * EDSCALE); } @@ -2931,10 +2931,6 @@ void ThemeTypeEditor::_item_remove_cbk(int p_data_type, String p_item_name) { ur->add_undo_method(*edited_theme, "set_font", p_item_name, edited_type, Ref<Font>()); } } break; - case Theme::DATA_TYPE_FONT_SIZE: { - ur->add_do_method(*edited_theme, "clear_font_size", p_item_name, edited_type); - ur->add_undo_method(*edited_theme, "set_font_size", p_item_name, edited_type, edited_theme->get_font_size(p_item_name, edited_type)); - } break; case Theme::DATA_TYPE_ICON: { ur->add_do_method(*edited_theme, "clear_icon", p_item_name, edited_type); if (edited_theme->has_icon(p_item_name, edited_type)) { @@ -3273,7 +3269,7 @@ void ThemeTypeEditor::_type_variation_changed(const String p_value) { void ThemeTypeEditor::_add_type_variation_cbk() { add_type_mode = ADD_VARIATION_BASE; add_type_dialog->set_title(TTR("Set Variation Base Type")); - add_type_dialog->get_ok_button()->set_text(TTR("Set Base Type")); + add_type_dialog->set_ok_button_text(TTR("Set Base Type")); add_type_dialog->set_include_own_types(true); add_type_dialog->popup_centered(Size2(560, 420) * EDSCALE); } @@ -3667,7 +3663,7 @@ ThemeEditor::ThemeEditor() { List<String> ext; ResourceLoader::get_recognized_extensions_for_type("PackedScene", &ext); for (const String &E : ext) { - preview_scene_dialog->add_filter(vformat("*.%s; %s", E, TTR("Scene"))); + preview_scene_dialog->add_filter("*." + E, TTR("Scene")); } main_hs->add_child(preview_scene_dialog); preview_scene_dialog->connect("file_selected", callable_mp(this, &ThemeEditor::_preview_scene_dialog_cbk)); @@ -3698,7 +3694,7 @@ bool ThemeEditorPlugin::handles(Object *p_node) const { // 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, FontData inside of Font. + // 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)) { diff --git a/editor/plugins/theme_editor_preview.cpp b/editor/plugins/theme_editor_preview.cpp index a6e34cf5e0..826631d750 100644 --- a/editor/plugins/theme_editor_preview.cpp +++ b/editor/plugins/theme_editor_preview.cpp @@ -126,7 +126,7 @@ void ThemeEditorPreview::_draw_picker_overlay() { } Rect2 highlight_label_rect = highlight_rect; - highlight_label_rect.size = theme_cache.preview_picker_font->get_string_size(highlight_name, theme_cache.font_size); + highlight_label_rect.size = theme_cache.preview_picker_font->get_string_size(highlight_name, HORIZONTAL_ALIGNMENT_LEFT, -1, theme_cache.font_size); int margin_top = theme_cache.preview_picker_label->get_margin(SIDE_TOP); int margin_left = theme_cache.preview_picker_label->get_margin(SIDE_LEFT); diff --git a/editor/plugins/tiles/atlas_merging_dialog.cpp b/editor/plugins/tiles/atlas_merging_dialog.cpp index e37878ff98..3fe6778f48 100644 --- a/editor/plugins/tiles/atlas_merging_dialog.cpp +++ b/editor/plugins/tiles/atlas_merging_dialog.cpp @@ -116,12 +116,8 @@ void AtlasMergingDialog::_generate_merged(Vector<Ref<TileSetAtlasSource>> p_atla } } - Ref<ImageTexture> output_image_texture; - output_image_texture.instantiate(); - output_image_texture->create_from_image(output_image); - merged->set_name(p_atlas_sources[0]->get_name()); - merged->set_texture(output_image_texture); + merged->set_texture(ImageTexture::create_from_image(output_image)); merged->set_texture_region_size(new_texture_region_size); } } @@ -260,7 +256,7 @@ AtlasMergingDialog::AtlasMergingDialog() { set_hide_on_ok(false); // Ok buttons - get_ok_button()->set_text(TTR("Merge (Keep original Atlases)")); + set_ok_button_text(TTR("Merge (Keep original Atlases)")); get_ok_button()->set_disabled(true); merge_button = add_button(TTR("Merge"), true, "merge"); merge_button->set_disabled(true); diff --git a/editor/plugins/tiles/tile_data_editors.cpp b/editor/plugins/tiles/tile_data_editors.cpp index ec45341970..1263ee5758 100644 --- a/editor/plugins/tiles/tile_data_editors.cpp +++ b/editor/plugins/tiles/tile_data_editors.cpp @@ -218,7 +218,7 @@ void GenericTilePolygonEditor::_base_control_draw() { Ref<Font> font = get_theme_font(SNAME("font"), SNAME("Label")); int font_size = get_theme_font_size(SNAME("font_size"), SNAME("Label")); String text = multiple_polygon_mode ? vformat("%d:%d", tinted_polygon_index, tinted_point_index) : vformat("%d", tinted_point_index); - Size2 text_size = font->get_string_size(text, font_size); + Size2 text_size = font->get_string_size(text, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size); base_control->draw_string(font, xform.xform(polygons[tinted_polygon_index][tinted_point_index]) - text_size * 0.5, text, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(1.0, 1.0, 1.0, 0.5)); } @@ -1116,8 +1116,9 @@ void TileDataDefaultEditor::draw_over_tile(CanvasItem *p_canvas_item, Transform2 } } - Vector2 string_size = font->get_string_size(text, font_size); - p_canvas_item->draw_string(font, p_transform.get_origin() + Vector2i(-string_size.x / 2, string_size.y / 2), text, HORIZONTAL_ALIGNMENT_CENTER, string_size.x, font_size, color, 1, Color(0, 0, 0, 1)); + Vector2 string_size = font->get_string_size(text, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size); + p_canvas_item->draw_string_outline(font, p_transform.get_origin() + Vector2i(-string_size.x / 2, string_size.y / 2), text, HORIZONTAL_ALIGNMENT_CENTER, string_size.x, font_size, 1, Color(0, 0, 0, 1)); + p_canvas_item->draw_string(font, p_transform.get_origin() + Vector2i(-string_size.x / 2, string_size.y / 2), text, HORIZONTAL_ALIGNMENT_CENTER, string_size.x, font_size, color); } } @@ -1147,7 +1148,7 @@ void TileDataDefaultEditor::setup_property_editor(Variant::Type p_type, String p property_editor = EditorInspectorDefaultPlugin::get_editor_for_property(dummy_object, p_type, p_property, PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT); property_editor->set_object_and_property(dummy_object, p_property); if (p_label.is_empty()) { - property_editor->set_label(p_property); + property_editor->set_label(EditorPropertyNameProcessor::get_singleton()->process_name(p_property, EditorPropertyNameProcessor::get_default_inspector_style())); } else { property_editor->set_label(p_label); } @@ -1173,6 +1174,7 @@ TileDataDefaultEditor::TileDataDefaultEditor() { label = memnew(Label); label->set_text(TTR("Painting:")); + label->set_theme_type_variation("HeaderSmall"); add_child(label); toolbar->add_child(memnew(VSeparator)); @@ -1726,8 +1728,9 @@ void TileDataTerrainsEditor::forward_draw_over_atlas(TileAtlasView *p_tile_atlas } else { text = "-"; } - Vector2 string_size = font->get_string_size(text, font_size); - p_canvas_item->draw_string(font, p_transform.xform(position) + Vector2i(-string_size.x / 2, string_size.y / 2), text, HORIZONTAL_ALIGNMENT_CENTER, string_size.x, font_size, color, 1, Color(0, 0, 0, 1)); + Vector2 string_size = font->get_string_size(text, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size); + p_canvas_item->draw_string_outline(font, p_transform.xform(position) + Vector2i(-string_size.x / 2, string_size.y / 2), text, HORIZONTAL_ALIGNMENT_CENTER, string_size.x, font_size, 1, Color(0, 0, 0, 1)); + p_canvas_item->draw_string(font, p_transform.xform(position) + Vector2i(-string_size.x / 2, string_size.y / 2), text, HORIZONTAL_ALIGNMENT_CENTER, string_size.x, font_size, color); } } } @@ -1917,8 +1920,9 @@ void TileDataTerrainsEditor::forward_draw_over_alternatives(TileAtlasView *p_til } else { text = "-"; } - Vector2 string_size = font->get_string_size(text, font_size); - p_canvas_item->draw_string(font, p_transform.xform(position) + Vector2i(-string_size.x / 2, string_size.y / 2), text, HORIZONTAL_ALIGNMENT_CENTER, string_size.x, font_size, color, 1, Color(0, 0, 0, 1)); + Vector2 string_size = font->get_string_size(text, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size); + p_canvas_item->draw_string_outline(font, p_transform.xform(position) + Vector2i(-string_size.x / 2, string_size.y / 2), text, HORIZONTAL_ALIGNMENT_CENTER, string_size.x, font_size, 1, Color(0, 0, 0, 1)); + p_canvas_item->draw_string(font, p_transform.xform(position) + Vector2i(-string_size.x / 2, string_size.y / 2), text, HORIZONTAL_ALIGNMENT_CENTER, string_size.x, font_size, color); } } } @@ -2566,7 +2570,8 @@ TileDataTerrainsEditor::TileDataTerrainsEditor() { undo_redo = EditorNode::get_undo_redo(); label = memnew(Label); - label->set_text("Painting:"); + label->set_text(TTR("Painting:")); + label->set_theme_type_variation("HeaderSmall"); add_child(label); // Toolbar diff --git a/editor/plugins/tiles/tile_map_editor.cpp b/editor/plugins/tiles/tile_map_editor.cpp index 77a3c07548..d914b9c363 100644 --- a/editor/plugins/tiles/tile_map_editor.cpp +++ b/editor/plugins/tiles/tile_map_editor.cpp @@ -884,6 +884,9 @@ void TileMapEditorTilesPlugin::forward_canvas_draw_over_viewport(Control *p_over if (atlas_source) { // Get tile data. TileData *tile_data = atlas_source->get_tile_data(E.value.get_atlas_coords(), E.value.alternative_tile); + if (!tile_data) { + continue; + } // Compute the offset Rect2i source_rect = atlas_source->get_tile_texture_region(E.value.get_atlas_coords()); diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp index 66459d3ef9..deffa48615 100644 --- a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp +++ b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp @@ -97,9 +97,9 @@ bool TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::_get(const StringN void TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::_get_property_list(List<PropertyInfo> *p_list) const { 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, "")); - p_list->push_back(PropertyInfo(Variant::VECTOR2I, "separation", PROPERTY_HINT_NONE, "")); - p_list->push_back(PropertyInfo(Variant::VECTOR2I, "texture_region_size", PROPERTY_HINT_NONE, "")); + p_list->push_back(PropertyInfo(Variant::VECTOR2I, "margins", PROPERTY_HINT_NONE, "suffix:px")); + p_list->push_back(PropertyInfo(Variant::VECTOR2I, "separation", PROPERTY_HINT_NONE, "suffix:px")); + 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, "")); } @@ -401,15 +401,15 @@ 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::VECTOR2I, "animation_separation", PROPERTY_HINT_NONE, "suffix:px")); 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_")); // 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, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_READ_ONLY)); + 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, "")); + p_list->push_back(PropertyInfo(Variant::FLOAT, vformat("animation_frame_%d/duration", i), PROPERTY_HINT_NONE, "suffix:s")); } } } @@ -2335,6 +2335,7 @@ TileSetAtlasSourceEditor::TileSetAtlasSourceEditor() { // Tile inspector. tile_inspector_label = memnew(Label); tile_inspector_label->set_text(TTR("Tile Properties:")); + tile_inspector_label->set_theme_type_variation("HeaderSmall"); middle_vbox_container->add_child(tile_inspector_label); tile_proxy_object = memnew(AtlasTileProxyObject(this)); @@ -2350,7 +2351,7 @@ TileSetAtlasSourceEditor::TileSetAtlasSourceEditor() { tile_inspector_no_tile_selected_label = memnew(Label); tile_inspector_no_tile_selected_label->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER); - tile_inspector_no_tile_selected_label->set_text(TTR("No tile selected.")); + tile_inspector_no_tile_selected_label->set_text(TTR("No tiles selected.")); middle_vbox_container->add_child(tile_inspector_no_tile_selected_label); // Property values palette. @@ -2358,6 +2359,7 @@ TileSetAtlasSourceEditor::TileSetAtlasSourceEditor() { tile_data_editors_label = memnew(Label); tile_data_editors_label->set_text(TTR("Paint Properties:")); + tile_data_editors_label->set_theme_type_variation("HeaderSmall"); middle_vbox_container->add_child(tile_data_editors_label); tile_data_editor_dropdown_button = memnew(Button); @@ -2381,6 +2383,7 @@ TileSetAtlasSourceEditor::TileSetAtlasSourceEditor() { // Atlas source inspector. atlas_source_inspector_label = memnew(Label); atlas_source_inspector_label->set_text(TTR("Atlas Properties:")); + atlas_source_inspector_label->set_theme_type_variation("HeaderSmall"); middle_vbox_container->add_child(atlas_source_inspector_label); atlas_source_proxy_object = memnew(TileSetAtlasSourceProxyObject()); @@ -2402,7 +2405,7 @@ TileSetAtlasSourceEditor::TileSetAtlasSourceEditor() { confirm_auto_create_tiles = memnew(AcceptDialog); confirm_auto_create_tiles->set_title(TTR("Auto Create Tiles in Non-Transparent Texture Regions?")); confirm_auto_create_tiles->set_text(TTR("The atlas's texture was modified.\nWould you like to automatically create tiles in the atlas?")); - confirm_auto_create_tiles->get_ok_button()->set_text(TTR("Yes")); + confirm_auto_create_tiles->set_ok_button_text(TTR("Yes")); confirm_auto_create_tiles->add_cancel_button()->set_text(TTR("No")); confirm_auto_create_tiles->connect("confirmed", callable_mp(this, &TileSetAtlasSourceEditor::_auto_create_tiles)); add_child(confirm_auto_create_tiles); diff --git a/editor/plugins/tiles/tiles_editor_plugin.cpp b/editor/plugins/tiles/tiles_editor_plugin.cpp index 543304346e..419d0ffcfc 100644 --- a/editor/plugins/tiles/tiles_editor_plugin.cpp +++ b/editor/plugins/tiles/tiles_editor_plugin.cpp @@ -121,12 +121,9 @@ void TilesEditorPlugin::_thread() { pattern_preview_done.wait(); Ref<Image> image = viewport->get_texture()->get_image(); - Ref<ImageTexture> image_texture; - image_texture.instantiate(); - image_texture->create_from_image(image); // Find the index for the given pattern. TODO: optimize. - Variant args[] = { item.pattern, image_texture }; + Variant args[] = { item.pattern, ImageTexture::create_from_image(image) }; const Variant *args_ptr[] = { &args[0], &args[1] }; Variant r; Callable::CallError error; diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp index 8c72a886ea..94073daeda 100644 --- a/editor/plugins/visual_shader_editor_plugin.cpp +++ b/editor/plugins/visual_shader_editor_plugin.cpp @@ -4911,7 +4911,7 @@ VisualShaderEditor::VisualShaderEditor() { members_dialog->set_title(TTR("Create Shader Node")); members_dialog->set_exclusive(false); members_dialog->add_child(members_vb); - members_dialog->get_ok_button()->set_text(TTR("Create")); + members_dialog->set_ok_button_text(TTR("Create")); members_dialog->get_ok_button()->connect("pressed", callable_mp(this, &VisualShaderEditor::_member_create)); members_dialog->get_ok_button()->set_disabled(true); members_dialog->connect("cancelled", callable_mp(this, &VisualShaderEditor::_member_cancel)); @@ -4922,7 +4922,7 @@ VisualShaderEditor::VisualShaderEditor() { add_varying_dialog = memnew(ConfirmationDialog); add_varying_dialog->set_title(TTR("Create Shader Varying")); add_varying_dialog->set_exclusive(false); - add_varying_dialog->get_ok_button()->set_text(TTR("Create")); + add_varying_dialog->set_ok_button_text(TTR("Create")); add_varying_dialog->get_ok_button()->connect("pressed", callable_mp(this, &VisualShaderEditor::_varying_create)); add_varying_dialog->get_ok_button()->set_disabled(true); add_child(add_varying_dialog); @@ -4966,7 +4966,7 @@ VisualShaderEditor::VisualShaderEditor() { remove_varying_dialog = memnew(ConfirmationDialog); remove_varying_dialog->set_title(TTR("Delete Shader Varying")); remove_varying_dialog->set_exclusive(false); - remove_varying_dialog->get_ok_button()->set_text(TTR("Delete")); + remove_varying_dialog->set_ok_button_text(TTR("Delete")); remove_varying_dialog->get_ok_button()->connect("pressed", callable_mp(this, &VisualShaderEditor::_varying_deleted)); add_child(remove_varying_dialog); diff --git a/editor/project_converter_3_to_4.cpp b/editor/project_converter_3_to_4.cpp index dfe40f9d4f..654ebf4573 100644 --- a/editor/project_converter_3_to_4.cpp +++ b/editor/project_converter_3_to_4.cpp @@ -110,6 +110,7 @@ static const char *enum_renames[][2] = { { "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 @@ -124,12 +125,14 @@ static const char *enum_renames[][2] = { { "MATH_RANDOM", "MATH_RANDI_RANGE" }, // VisualScriptBuiltinFunc { "MATH_STEPIFY", "MATH_STEP_DECIMALS" }, // VisualScriptBuiltinFunc { "MODE_CHARACTER", "MODE_DYNAMIC_LOCKED" }, // RigidBody2D, RigidBody3D + { "MODE_KINEMATIC", "FREEZE_MODE_KINEMATIC" }, // RigidDynamicBody { "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_RIGID", "MODE_DYNAMIC" }, // RigidBody2D, RigidBody3D { "MODE_SAVE_FILE", "FILE_MODE_SAVE_FILE" }, // FileDialog + { "MODE_STATIC", "FREEZE_MODE_STATIC" }, // RigidDynamicBody { "NOTIFICATION_APP_PAUSED", "NOTIFICATION_APPLICATION_PAUSED" }, // MainLoop { "NOTIFICATION_APP_RESUMED", "NOTIFICATION_APPLICATION_RESUMED" }, // MainLoop { "NOTIFICATION_PATH_CHANGED", "NOTIFICATION_PATH_RENAMED" }, //Node @@ -208,7 +211,6 @@ static const char *gdscript_function_renames[][2] = { // { "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 - { "RenderingServer", "get_tab_alignment" }, // Tab { "_about_to_show", "_about_to_popup" }, // ColorPickerButton { "_get_configuration_warning", "_get_configuration_warnings" }, // Node { "_set_current", "set_current" }, // Camera2D @@ -217,17 +219,20 @@ static const char *gdscript_function_renames[][2] = { { "_update_wrap_at", "_update_wrap_at_column" }, // TextEdit { "add_animation", "add_animation_library" }, // AnimationPlayer { "add_cancel", "add_cancel_button" }, // AcceptDialog - { "add_central_force", "add_constant_central_force" }, //RigidDynamicBody2D + { "add_central_force", "apply_central_force" }, //RigidDynamicBody2D { "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", "add_constant_force" }, //RigidDynamicBody2D + { "add_force", "apply_force" }, //RigidDynamicBody2D { "add_icon_override", "add_theme_icon_override" }, // Control { "add_scene_import_plugin", "add_scene_format_importer_plugin" }, //EditorPlugin { "add_stylebox_override", "add_theme_stylebox_override" }, // Control - { "add_torque", "add_constant_torque" }, //RigidDynamicBody2D + { "add_torque", "apply_torque" }, //RigidDynamicBody2D + { "apply_changes", "_apply_changes" }, // EditorPlugin { "bind_child_node_to_bone", "set_bone_children" }, // Skeleton3D + { "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_fw", "_can_drop_data_fw" }, // ScriptEditor @@ -239,6 +244,7 @@ static const char *gdscript_function_renames[][2] = { { "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_speed" }, // TextEdit { "cursor_get_column", "get_caret_column" }, // TextEdit { "cursor_get_line", "get_caret_line" }, // TextEdit @@ -251,8 +257,10 @@ static const char *gdscript_function_renames[][2] = { { "damped_string_joint_set_param", "damped_spring_joint_set_param" }, // PhysicsServer2D { "delete_char_at_cursor", "delete_char_at_caret" }, // LineEdit { "deselect_items", "deselect_all" }, // FileDialog + { "disable_plugin", "_disable_plugin" }, // EditorPlugin { "drop_data_fw", "_drop_data_fw" }, // ScriptEditor { "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 @@ -287,7 +295,9 @@ static const char *gdscript_function_renames[][2] = { { "get_cull_mask_bit", "get_cull_mask_value" }, // Camera3D { "get_cursor_position", "get_caret_column" }, // LineEdit { "get_d", "get_distance" }, // LineShape2D + { "get_drag_data", "_get_drag_data" }, // Control { "get_drag_data_fw", "_get_drag_data_fw" }, // ScriptEditor + { "get_editor_description", "_get_editor_description" }, // Node { "get_editor_viewport", "get_viewport" }, // EditorPlugin { "get_enabled_focus_mode", "get_focus_mode" }, // BaseButton { "get_endian_swap", "is_big_endian" }, // File @@ -327,6 +337,7 @@ static const char *gdscript_function_renames[][2] = { { "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 @@ -392,8 +403,10 @@ static const char *gdscript_function_renames[][2] = { { "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_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 @@ -415,6 +428,7 @@ static const char *gdscript_function_renames[][2] = { { "line_intersects_line_2d", "line_intersects_line" }, // Geometry2D { "load_from_globals", "load_from_project_settings" }, // InputMap { "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 @@ -438,6 +452,7 @@ static const char *gdscript_function_renames[][2] = { { "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_stylebox_override", "remove_theme_stylebox_override" }, // Control { "rename_animation", "rename_animation_library" }, // AnimationPlayer @@ -465,6 +480,7 @@ static const char *gdscript_function_renames[][2] = { { "set_cursor_position", "set_caret_column" }, // LineEdit { "set_d", "set_distance" }, // WorldMarginShape2D { "set_doubleclick", "set_double_click" }, // InputEventMouseButton + { "set_draw_red", "set_draw_warning" }, // EditorProperty { "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 @@ -477,6 +493,7 @@ static const char *gdscript_function_renames[][2] = { { "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 @@ -487,6 +504,7 @@ static const char *gdscript_function_renames[][2] = { { "set_mid_height", "set_height" }, // CapsuleMesh { "set_network_master", "set_multiplayer_authority" }, // Node { "set_network_peer", "set_multiplayer_peer" }, // Multiplayer API + { "set_pause_mode", "set_process_mode" }, // Node { "set_physical_scancode", "set_physical_keycode" }, // InputEventKey { "set_refuse_new_network_connections", "set_refuse_new_connections" }, // Multiplayer API { "set_region", "set_region_enabled" }, // Sprite2D, Sprite broke AtlasTexture @@ -1220,7 +1238,6 @@ static const char *class_renames[][2] = { // { "Physics2DShapeQueryResult", "PhysicsShapeQueryResult2D" }, // Class is not visible in ClassDB // { "PhysicsShapeQueryResult", "PhysicsShapeQueryResult3D" }, // Class is not visible in ClassDB // { "NativeScript","NativeExtension"}, ?? - { "AStar", "AStar3D" }, { "ARVRAnchor", "XRAnchor3D" }, { "ARVRCamera", "XRCamera3D" }, { "ARVRController", "XRController3D" }, @@ -1229,13 +1246,14 @@ static const char *class_renames[][2] = { { "ARVROrigin", "XROrigin3D" }, { "ARVRPositionalTracker", "XRPositionalTracker" }, { "ARVRServer", "XRServer" }, + { "AStar", "AStar3D" }, { "AnimatedSprite", "AnimatedSprite2D" }, { "AnimationTreePlayer", "AnimationTree" }, { "Area", "Area3D" }, // Be careful, this will be used everywhere { "AudioStreamRandomPitch", "AudioStreamRandomizer" }, { "BakedLightmap", "LightmapGI" }, { "BakedLightmapData", "LightmapGIData" }, - { "BitmapFont", "Font" }, + { "BitmapFont", "FontFile" }, { "BoneAttachment", "BoneAttachment3D" }, { "BoxShape", "BoxShape3D" }, { "CPUParticles", "CPUParticles3D" }, @@ -1261,8 +1279,8 @@ static const char *class_renames[][2] = { { "CubeMesh", "BoxMesh" }, { "CylinderShape", "CylinderShape3D" }, { "DirectionalLight", "DirectionalLight3D" }, - { "DynamicFont", "Font" }, - { "DynamicFontData", "FontData" }, + { "DynamicFont", "FontFile" }, + { "DynamicFontData", "FontFile" }, { "EditorNavigationMeshGenerator", "NavigationMeshGenerator" }, { "EditorSceneImporter", "EditorSceneFormatImporter" }, { "EditorSceneImporterFBX", "EditorSceneFormatImporterFBX" }, @@ -1344,6 +1362,7 @@ static const char *class_renames[][2] = { { "ResourceInteractiveLoader", "ResourceLoader" }, { "RigidBody", "RigidDynamicBody3D" }, { "RigidBody2D", "RigidDynamicBody2D" }, + { "SceneTreeTween", "Tween" }, { "Shape", "Shape3D" }, // Be careful, this will be used everywhere { "ShortCut", "Shortcut" }, { "Skeleton", "Skeleton3D" }, @@ -2045,6 +2064,7 @@ bool ProjectConverter3To4::test_conversion() { valid = valid & test_conversion_single_additional("set_cell_item(a, b)", "set_cell_item(a, b)", &ProjectConverter3To4::rename_gdscript_functions, "custom rename"); valid = valid & test_conversion_single_additional("get_cell_item_orientation(a, b,c)", "get_cell_item_orientation(Vector3i(a,b,c))", &ProjectConverter3To4::rename_gdscript_functions, "custom rename"); valid = valid & test_conversion_single_additional("get_cell_item(a, b,c)", "get_cell_item(Vector3i(a,b,c))", &ProjectConverter3To4::rename_gdscript_functions, "custom rename"); + valid = valid & test_conversion_single_additional("map_to_world(a, b,c)", "map_to_world(Vector3i(a,b,c))", &ProjectConverter3To4::rename_gdscript_functions, "custom rename"); valid = valid & test_conversion_single_additional("PackedStringArray(req_godot).join('.')", "'.'.join(PackedStringArray(req_godot))", &ProjectConverter3To4::rename_gdscript_functions, "custom rename"); valid = valid & test_conversion_single_additional("=PackedStringArray(req_godot).join('.')", "='.'.join(PackedStringArray(req_godot))", &ProjectConverter3To4::rename_gdscript_functions, "custom rename"); @@ -2054,6 +2074,9 @@ bool ProjectConverter3To4::test_conversion() { valid = valid & test_conversion_single_additional("\t aa", "\taa", &ProjectConverter3To4::rename_gdscript_functions, "custom rename"); valid = valid & test_conversion_single_additional(" \taa", " \taa", &ProjectConverter3To4::rename_gdscript_functions, "custom rename"); + valid = valid & test_conversion_single_additional("apply_force(position, impulse)", "apply_force(impulse, position)", &ProjectConverter3To4::rename_gdscript_functions, "custom rename"); + valid = valid & test_conversion_single_additional("apply_impulse(position, impulse)", "apply_impulse(impulse, position)", &ProjectConverter3To4::rename_gdscript_functions, "custom rename"); + valid = valid & test_conversion_single_additional("AAA Color.white AF", "AAA Color.WHITE AF", &ProjectConverter3To4::rename_enums, "custom rename"); // Custom rule conversion @@ -2993,14 +3016,39 @@ void ProjectConverter3To4::rename_gdscript_functions(String &file_content) { } } } - - // TODO - add_surface_from_arrays - additional 4 argument - // ENetMultiplayerPeer.create_client - additional argument - // ENetMultiplayerPeer.create_server - additional argument - // Translation.get_message (and similar) - // TreeItem.move_after() - new argument - // TreeItem.move_before() - new argument - // UndoRedo.commit_action() - additional argument + // apply_impulse(A, B) -> apply_impulse(B, A) + if (line.find("apply_impulse(") != -1) { + int start = line.find("apply_impulse("); + int end = get_end_parenthess(line.substr(start)) + 1; + if (end > -1) { + Vector<String> parts = parse_arguments(line.substr(start, end)); + if (parts.size() == 2) { + line = line.substr(0, start) + "apply_impulse(" + parts[1] + ", " + parts[0] + ")" + line.substr(end + start); + } + } + } + // apply_force(A, B) -> apply_force(B, A) + if (line.find("apply_force(") != -1) { + int start = line.find("apply_force("); + int end = get_end_parenthess(line.substr(start)) + 1; + if (end > -1) { + Vector<String> parts = parse_arguments(line.substr(start, end)); + if (parts.size() == 2) { + line = line.substr(0, start) + "apply_force(" + parts[1] + ", " + parts[0] + ")" + line.substr(end + start); + } + } + } + // map_to_world(a, b, c) -> map_to_world(Vector3i(a, b, c)) + if (line.find("map_to_world(") != -1) { + int start = line.find("map_to_world("); + int end = get_end_parenthess(line.substr(start)) + 1; + if (end > -1) { + Vector<String> parts = parse_arguments(line.substr(start, end)); + if (parts.size() == 3) { + line = line.substr(0, start) + "map_to_world(Vector3i(" + parts[0] + "," + parts[1] + "," + parts[2] + "))" + line.substr(end + start); + } + } + } } // Collect vector to string @@ -3398,13 +3446,39 @@ Vector<String> ProjectConverter3To4::check_for_rename_gdscript_functions(Vector< } } - // TODO - add_surface_from_arrays - additional 4 argument - // ENetMultiplayerPeer.create_client - additional argument - // ENetMultiplayerPeer.create_server - additional argument - // Translation.get_message (and similar) - // TreeItem.move_after() - new argument - // TreeItem.move_before() - new argument - // UndoRedo.commit_action() - additional argument + // apply_impulse(A, B) -> apply_impulse(B, A) + if (line.find("apply_impulse(") != -1) { + int start = line.find("apply_impulse("); + int end = get_end_parenthess(line.substr(start)) + 1; + if (end > -1) { + Vector<String> parts = parse_arguments(line.substr(start, end)); + if (parts.size() == 2) { + line = line.substr(0, start) + "apply_impulse(" + parts[1] + ", " + parts[0] + ")" + line.substr(end + start); + } + } + } + // apply_force(A, B) -> apply_force(B, A) + if (line.find("apply_force(") != -1) { + int start = line.find("apply_force("); + int end = get_end_parenthess(line.substr(start)) + 1; + if (end > -1) { + Vector<String> parts = parse_arguments(line.substr(start, end)); + if (parts.size() == 2) { + line = line.substr(0, start) + "apply_force(" + parts[1] + ", " + parts[0] + ")" + line.substr(end + start); + } + } + } + // map_to_world(a, b, c) -> map_to_world(Vector3i(a, b, c)) + if (line.find("map_to_world(") != -1) { + int start = line.find("get_cell_item_orientation("); + int end = get_end_parenthess(line.substr(start)) + 1; + if (end > -1) { + Vector<String> parts = parse_arguments(line.substr(start, end)); + if (parts.size() == 3) { + line = line.substr(0, start) + "map_to_world(Vector3i(" + parts[0] + "," + parts[1] + "," + parts[2] + "))" + line.substr(end + start); + } + } + } if (old_line != line) { found_things.append(simple_line_formatter(current_line, old_line, line)); diff --git a/editor/project_export.cpp b/editor/project_export.cpp index 030337a4bc..209c997d58 100644 --- a/editor/project_export.cpp +++ b/editor/project_export.cpp @@ -366,16 +366,17 @@ void ProjectExportDialog::_update_feature_list() { } custom_feature_display->clear(); + String text; bool first = true; for (const String &E : fset) { - String f = E; if (!first) { - f += ", "; + text += ", "; } else { first = false; } - custom_feature_display->add_text(f); + text += E; } + custom_feature_display->add_text(text); } void ProjectExportDialog::_custom_features_changed(const String &p_text) { @@ -891,7 +892,7 @@ void ProjectExportDialog::_export_project() { List<String> extension_list = platform->get_binary_extensions(current); for (int i = 0; i < extension_list.size(); i++) { // TRANSLATORS: This is the name of a project export file format. %s will be replaced by the platform name. - export_project->add_filter(vformat("*.%s; %s", extension_list[i], vformat(TTR("%s Export"), platform->get_name()))); + export_project->add_filter("*." + extension_list[i], vformat(TTR("%s Export"), platform->get_name())); } if (!current->get_export_path().is_empty()) { @@ -1194,13 +1195,13 @@ ProjectExportDialog::ProjectExportDialog() { delete_confirm = memnew(ConfirmationDialog); add_child(delete_confirm); - delete_confirm->get_ok_button()->set_text(TTR("Delete")); + delete_confirm->set_ok_button_text(TTR("Delete")); delete_confirm->connect("confirmed", callable_mp(this, &ProjectExportDialog::_delete_preset_confirm)); // Export buttons, dialogs and errors. - get_cancel_button()->set_text(TTR("Close")); - get_ok_button()->set_text(TTR("Export PCK/ZIP...")); + set_cancel_button_text(TTR("Close")); + set_ok_button_text(TTR("Export PCK/ZIP...")); export_button = add_button(TTR("Export Project..."), !DisplayServer::get_singleton()->get_swap_cancel_ok(), "export"); export_button->connect("pressed", callable_mp(this, &ProjectExportDialog::_export_project)); // Disable initially before we select a valid preset @@ -1221,8 +1222,8 @@ ProjectExportDialog::ProjectExportDialog() { export_all_button->set_disabled(true); export_pck_zip = memnew(EditorFileDialog); - export_pck_zip->add_filter("*.zip ; " + TTR("ZIP File")); - export_pck_zip->add_filter("*.pck ; " + TTR("Godot Project Pack")); + export_pck_zip->add_filter("*.zip", TTR("ZIP File")); + export_pck_zip->add_filter("*.pck", TTR("Godot Project Pack")); export_pck_zip->set_access(EditorFileDialog::ACCESS_FILESYSTEM); export_pck_zip->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE); add_child(export_pck_zip); diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 2e7b6f7476..f7ef574205 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -362,8 +362,8 @@ private: if (mode == MODE_IMPORT) { fdialog->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE); fdialog->clear_filters(); - fdialog->add_filter(vformat("project.godot ; %s %s", VERSION_NAME, TTR("Project"))); - fdialog->add_filter("*.zip ; " + TTR("ZIP File")); + fdialog->add_filter("project.godot", vformat("%s %s", VERSION_NAME, TTR("Project"))); + fdialog->add_filter("*.zip", TTR("ZIP File")); } else { fdialog->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_DIR); } @@ -681,7 +681,7 @@ public: install_browse->hide(); set_title(TTR("Rename Project")); - get_ok_button()->set_text(TTR("Rename")); + set_ok_button_text(TTR("Rename")); name_container->show(); status_rect->hide(); msg->hide(); @@ -735,7 +735,7 @@ public: if (mode == MODE_IMPORT) { set_title(TTR("Import Existing Project")); - get_ok_button()->set_text(TTR("Import & Edit")); + set_ok_button_text(TTR("Import & Edit")); name_container->hide(); install_path_container->hide(); rasterizer_container->hide(); @@ -744,7 +744,7 @@ public: } else if (mode == MODE_NEW) { set_title(TTR("Create New Project")); - get_ok_button()->set_text(TTR("Create & Edit")); + set_ok_button_text(TTR("Create & Edit")); name_container->show(); install_path_container->hide(); rasterizer_container->show(); @@ -754,7 +754,7 @@ public: } else if (mode == MODE_INSTALL) { set_title(TTR("Install Project:") + " " + zip_title); - get_ok_button()->set_text(TTR("Install & Edit")); + set_ok_button_text(TTR("Install & Edit")); project_name->set_text(zip_title); name_container->show(); install_path_container->hide(); @@ -1167,9 +1167,7 @@ void ProjectList::load_project_icon(int p_index) { Error err = img->load(item.icon.replace_first("res://", item.path + "/")); if (err == OK) { img->resize(default_icon->get_width(), default_icon->get_height(), Image::INTERPOLATE_LANCZOS); - Ref<ImageTexture> it = memnew(ImageTexture); - it->create_from_image(img); - icon = it; + icon = ImageTexture::create_from_image(img); } } if (icon.is_null()) { @@ -1895,7 +1893,6 @@ void ProjectManager::_notification(int p_what) { } if (asset_library) { real_t size = get_size().x / EDSCALE; - asset_library->set_columns(size < 1000 ? 1 : 2); // Adjust names of tabs to fit the new size. if (size < 650) { local_projects_hb->set_name(TTR("Local")); @@ -2792,25 +2789,21 @@ ProjectManager::ProjectManager() { center_box->add_child(settings_hb); } - // Asset Library can't work on Web editor for now as most assets are sourced - // directly from GitHub which does not set CORS. -#ifndef JAVASCRIPT_ENABLED - if (StreamPeerSSL::is_available()) { + if (AssetLibraryEditorPlugin::is_available()) { asset_library = memnew(EditorAssetLibrary(true)); asset_library->set_name(TTR("Asset Library Projects")); tabs->add_child(asset_library); asset_library->connect("install_asset", callable_mp(this, &ProjectManager::_install_project)); } else { - WARN_PRINT("Asset Library not available, as it requires SSL to work."); + print_verbose("Asset Library not available (due to using Web editor, or SSL support disabled)."); } -#endif { // Dialogs language_restart_ask = memnew(ConfirmationDialog); - language_restart_ask->get_ok_button()->set_text(TTR("Restart Now")); + language_restart_ask->set_ok_button_text(TTR("Restart Now")); language_restart_ask->get_ok_button()->connect("pressed", callable_mp(this, &ProjectManager::_restart_confirm)); - language_restart_ask->get_cancel_button()->set_text(TTR("Continue")); + language_restart_ask->set_cancel_button_text(TTR("Continue")); add_child(language_restart_ask); scan_dir = memnew(EditorFileDialog); @@ -2823,12 +2816,12 @@ ProjectManager::ProjectManager() { scan_dir->connect("dir_selected", callable_mp(this, &ProjectManager::_scan_begin)); erase_missing_ask = memnew(ConfirmationDialog); - erase_missing_ask->get_ok_button()->set_text(TTR("Remove All")); + erase_missing_ask->set_ok_button_text(TTR("Remove All")); erase_missing_ask->get_ok_button()->connect("pressed", callable_mp(this, &ProjectManager::_erase_missing_projects_confirm)); add_child(erase_missing_ask); erase_ask = memnew(ConfirmationDialog); - erase_ask->get_ok_button()->set_text(TTR("Remove")); + erase_ask->set_ok_button_text(TTR("Remove")); erase_ask->get_ok_button()->connect("pressed", callable_mp(this, &ProjectManager::_erase_project_confirm)); add_child(erase_ask); @@ -2843,17 +2836,17 @@ ProjectManager::ProjectManager() { erase_ask_vb->add_child(delete_project_contents); multi_open_ask = memnew(ConfirmationDialog); - multi_open_ask->get_ok_button()->set_text(TTR("Edit")); + multi_open_ask->set_ok_button_text(TTR("Edit")); multi_open_ask->get_ok_button()->connect("pressed", callable_mp(this, &ProjectManager::_open_selected_projects)); add_child(multi_open_ask); multi_run_ask = memnew(ConfirmationDialog); - multi_run_ask->get_ok_button()->set_text(TTR("Run")); + multi_run_ask->set_ok_button_text(TTR("Run")); multi_run_ask->get_ok_button()->connect("pressed", callable_mp(this, &ProjectManager::_run_project_confirm)); add_child(multi_run_ask); multi_scan_ask = memnew(ConfirmationDialog); - multi_scan_ask->get_ok_button()->set_text(TTR("Scan")); + multi_scan_ask->set_ok_button_text(TTR("Scan")); add_child(multi_scan_ask); ask_update_settings = memnew(ConfirmationDialog); @@ -2875,7 +2868,7 @@ ProjectManager::ProjectManager() { if (asset_library) { open_templates = memnew(ConfirmationDialog); open_templates->set_text(TTR("You currently don't have any projects.\nWould you like to explore official example projects in the Asset Library?")); - open_templates->get_ok_button()->set_text(TTR("Open Asset Library")); + open_templates->set_ok_button_text(TTR("Open Asset Library")); open_templates->connect("confirmed", callable_mp(this, &ProjectManager::_open_asset_library)); add_child(open_templates); } diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp index 404199d2da..49707355a0 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -35,6 +35,7 @@ #include "editor/editor_log.h" #include "editor/editor_node.h" #include "editor/editor_scale.h" +#include "servers/movie_writer/movie_writer.h" ProjectSettingsEditor *ProjectSettingsEditor::singleton = nullptr; @@ -261,6 +262,7 @@ void ProjectSettingsEditor::_add_feature_overrides() { presets.insert("standalone"); presets.insert("32"); presets.insert("64"); + presets.insert("movie"); EditorExport *ee = EditorExport::get_singleton(); @@ -683,7 +685,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { timer->set_one_shot(true); add_child(timer); - get_ok_button()->set_text(TTR("Close")); + set_ok_button_text(TTR("Close")); set_hide_on_ok(true); bool use_advanced = EditorSettings::get_singleton()->get_project_metadata("project_settings", "advanced_mode", false); @@ -698,4 +700,6 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { import_defaults_editor->set_name(TTR("Import Defaults")); tab_container->add_child(import_defaults_editor); import_defaults_editor->connect("project_settings_changed", callable_mp(this, &ProjectSettingsEditor::queue_save)); + + MovieWriter::set_extensions_hint(); // ensure extensions are properly displayed. } diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp index 771d34d841..277ae14e0e 100644 --- a/editor/property_editor.cpp +++ b/editor/property_editor.cpp @@ -145,7 +145,7 @@ void CustomPropertyEditor::_menu_option(int p_which) { file->clear_filters(); for (const String &E : valid_extensions) { - file->add_filter("*." + E + " ; " + E.to_upper()); + file->add_filter("*." + E, E.to_upper()); } file->popup_file_dialog(); @@ -831,11 +831,7 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant:: // get default color picker mode from editor settings int default_color_mode = EDITOR_GET("interface/inspector/default_color_picker_mode"); - if (default_color_mode == 1) { - color_picker->set_hsv_mode(true); - } else if (default_color_mode == 2) { - color_picker->set_raw_mode(true); - } + color_picker->set_color_mode((ColorPicker::ColorModeType)default_color_mode); int picker_shape = EDITOR_GET("interface/inspector/default_color_picker_shape"); color_picker->set_picker_shape((ColorPicker::PickerShapeType)picker_shape); @@ -1227,7 +1223,7 @@ void CustomPropertyEditor::_action_pressed(int p_which) { filter = "*." + extensions[i]; } - file->add_filter(filter + " ; " + extensions[i].to_upper()); + file->add_filter(filter, extensions[i].to_upper()); } } file->popup_file_dialog(); @@ -1311,7 +1307,7 @@ void CustomPropertyEditor::_action_pressed(int p_which) { ResourceLoader::get_recognized_extensions_for_type(type, &extensions); file->clear_filters(); for (const String &E : extensions) { - file->add_filter("*." + E + " ; " + E.to_upper()); + file->add_filter("*." + E, E.to_upper()); } file->popup_file_dialog(); @@ -1474,7 +1470,7 @@ void CustomPropertyEditor::_modified(String p_string) { v = value_editor[0]->get_text().to_int(); return; } else { - v = expr->execute(Array(), nullptr, false); + v = expr->execute(Array(), nullptr, false, false); } if (v != prev_v) { @@ -1650,7 +1646,7 @@ real_t CustomPropertyEditor::_parse_real_expression(String text) { if (err != OK) { out = value_editor[0]->get_text().to_float(); } else { - out = expr->execute(Array(), nullptr, false); + out = expr->execute(Array(), nullptr, false, true); } return out; } diff --git a/editor/property_selector.cpp b/editor/property_selector.cpp index c136eae1bc..841c3ff3b1 100644 --- a/editor/property_selector.cpp +++ b/editor/property_selector.cpp @@ -581,7 +581,7 @@ PropertySelector::PropertySelector() { search_box->connect("gui_input", callable_mp(this, &PropertySelector::_sbox_input)); search_options = memnew(Tree); vbc->add_margin_child(TTR("Matches:"), search_options, true); - get_ok_button()->set_text(TTR("Open")); + set_ok_button_text(TTR("Open")); get_ok_button()->set_disabled(true); register_text_enter(search_box); set_hide_on_ok(false); diff --git a/editor/quick_open.cpp b/editor/quick_open.cpp index 53da945868..4f7f9fc78c 100644 --- a/editor/quick_open.cpp +++ b/editor/quick_open.cpp @@ -146,8 +146,8 @@ void EditorQuickOpen::_confirmed() { return; } _cleanup(); - emit_signal(SNAME("quick_open")); hide(); + emit_signal(SNAME("quick_open")); } void EditorQuickOpen::cancel_pressed() { @@ -263,6 +263,6 @@ EditorQuickOpen::EditorQuickOpen() { search_options->add_theme_constant_override("draw_guides", 1); vbc->add_margin_child(TTR("Matches:"), search_options, true); - get_ok_button()->set_text(TTR("Open")); + set_ok_button_text(TTR("Open")); set_hide_on_ok(false); } diff --git a/editor/rename_dialog.cpp b/editor/rename_dialog.cpp index a8278b9aab..255187e4ed 100644 --- a/editor/rename_dialog.cpp +++ b/editor/rename_dialog.cpp @@ -289,7 +289,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und // ---- Dialog related set_min_size(Size2(383, 0)); - get_ok_button()->set_text(TTR("Rename")); + set_ok_button_text(TTR("Rename")); Button *but_reset = add_button(TTR("Reset")); eh.errfunc = _error_handler; diff --git a/editor/reparent_dialog.cpp b/editor/reparent_dialog.cpp index 5a8fe24518..75098b25b1 100644 --- a/editor/reparent_dialog.cpp +++ b/editor/reparent_dialog.cpp @@ -89,7 +89,7 @@ ReparentDialog::ReparentDialog() { //cancel->connect("pressed", this,"_cancel"); - get_ok_button()->set_text(TTR("Reparent")); + set_ok_button_text(TTR("Reparent")); } ReparentDialog::~ReparentDialog() { diff --git a/editor/scene_create_dialog.cpp b/editor/scene_create_dialog.cpp new file mode 100644 index 0000000000..6a35b22210 --- /dev/null +++ b/editor/scene_create_dialog.cpp @@ -0,0 +1,312 @@ +/*************************************************************************/ +/* scene_create_dialog.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#include "scene_create_dialog.h" + +#include "core/io/dir_access.h" +#include "editor/create_dialog.h" +#include "editor/editor_node.h" +#include "editor/editor_scale.h" +#include "scene/2d/node_2d.h" +#include "scene/3d/node_3d.h" +#include "scene/gui/box_container.h" +#include "scene/gui/check_box.h" +#include "scene/gui/grid_container.h" +#include "scene/gui/line_edit.h" +#include "scene/gui/option_button.h" +#include "scene/gui/panel_container.h" +#include "scene/resources/packed_scene.h" + +void SceneCreateDialog::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { + select_node_button->set_icon(get_theme_icon(SNAME("ClassList"), SNAME("EditorIcons"))); + node_type_2d->set_icon(get_theme_icon(SNAME("Node2D"), SNAME("EditorIcons"))); + node_type_3d->set_icon(get_theme_icon(SNAME("Node3D"), SNAME("EditorIcons"))); + node_type_gui->set_icon(get_theme_icon(SNAME("Control"), SNAME("EditorIcons"))); + node_type_other->add_theme_icon_override(SNAME("icon"), get_theme_icon(SNAME("Node"), SNAME("EditorIcons"))); + status_panel->add_theme_style_override("panel", get_theme_stylebox(SNAME("bg"), SNAME("Tree"))); + } break; + } +} + +void SceneCreateDialog::config(const String &p_dir) { + directory = p_dir; + root_name_edit->set_text(""); + scene_name_edit->set_text(""); + scene_name_edit->call_deferred(SNAME("grab_focus")); + update_dialog(); +} + +void SceneCreateDialog::accept_create() { + if (!get_ok_button()->is_disabled()) { + hide(); + emit_signal(SNAME("confirmed")); + } +} + +void SceneCreateDialog::browse_types() { + select_node_dialog->popup_create(true); + select_node_dialog->set_title(TTR("Pick Root Node Type")); + select_node_dialog->set_ok_button_text(TTR("Pick")); +} + +void SceneCreateDialog::on_type_picked() { + other_type_display->set_text(select_node_dialog->get_selected_type().get_slice(" ", 0)); + if (node_type_other->is_pressed()) { + update_dialog(); + } else { + node_type_other->set_pressed(true); // Calls update_dialog() via group. + } +} + +void SceneCreateDialog::update_dialog() { + scene_name = scene_name_edit->get_text().strip_edges(); + update_error(file_error_label, MSG_OK, TTR("Scene name is valid.")); + + bool is_valid = true; + if (scene_name.is_empty()) { + update_error(file_error_label, MSG_ERROR, TTR("Scene name is empty.")); + is_valid = false; + } + + if (is_valid) { + if (!scene_name.ends_with(".")) { + scene_name += "."; + } + scene_name += scene_extension_picker->get_selected_metadata().operator String(); + } + + if (is_valid && !scene_name.is_valid_filename()) { + update_error(file_error_label, MSG_ERROR, TTR("File name invalid.")); + is_valid = false; + } + + if (is_valid) { + scene_name = directory.plus_file(scene_name); + Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + if (da->file_exists(scene_name)) { + update_error(file_error_label, MSG_ERROR, TTR("File already exists.")); + is_valid = false; + } + } + + const StringName root_type_name = StringName(other_type_display->get_text()); + if (has_theme_icon(root_type_name, SNAME("EditorIcons"))) { + node_type_other->set_icon(get_theme_icon(root_type_name, SNAME("EditorIcons"))); + } else { + node_type_other->set_icon(nullptr); + } + + update_error(node_error_label, MSG_OK, "Root node valid."); + + root_name = root_name_edit->get_text().strip_edges(); + if (root_name.is_empty()) { + root_name = scene_name.get_file().get_basename(); + } + + if (!root_name.is_valid_identifier()) { + update_error(node_error_label, MSG_ERROR, TTR("Invalid root node name.")); + is_valid = false; + } + + get_ok_button()->set_disabled(!is_valid); +} + +void SceneCreateDialog::update_error(Label *p_label, MsgType p_type, const String &p_msg) { + p_label->set_text(String::utf8("• ") + p_msg); + switch (p_type) { + case MSG_OK: + p_label->add_theme_color_override("font_color", get_theme_color(SNAME("success_color"), SNAME("Editor"))); + break; + case MSG_ERROR: + p_label->add_theme_color_override("font_color", get_theme_color(SNAME("error_color"), SNAME("Editor"))); + break; + } +} + +String SceneCreateDialog::get_scene_path() const { + return scene_name; +} + +Node *SceneCreateDialog::create_scene_root() { + ERR_FAIL_NULL_V(node_type_group->get_pressed_button(), nullptr); + RootType type = (RootType)node_type_group->get_pressed_button()->get_meta(type_meta).operator int(); + + Node *root = nullptr; + switch (type) { + case ROOT_2D_SCENE: + root = memnew(Node2D); + break; + case ROOT_3D_SCENE: + root = memnew(Node3D); + break; + case ROOT_USER_INTERFACE: { + Control *gui = memnew(Control); + gui->set_anchors_and_offsets_preset(Control::PRESET_WIDE); + root = gui; + } break; + case ROOT_OTHER: + root = Object::cast_to<Node>(select_node_dialog->instance_selected()); + break; + } + + ERR_FAIL_NULL_V(root, nullptr); + root->set_name(root_name); + return root; +} + +SceneCreateDialog::SceneCreateDialog() { + select_node_dialog = memnew(CreateDialog); + add_child(select_node_dialog); + select_node_dialog->set_base_type("Node"); + select_node_dialog->select_base(); + select_node_dialog->connect("create", callable_mp(this, &SceneCreateDialog::on_type_picked)); + + VBoxContainer *main_vb = memnew(VBoxContainer); + add_child(main_vb); + + GridContainer *gc = memnew(GridContainer); + main_vb->add_child(gc); + gc->set_columns(2); + + { + Label *label = memnew(Label(TTR("Root Type:"))); + gc->add_child(label); + label->set_v_size_flags(Control::SIZE_SHRINK_BEGIN); + + VBoxContainer *vb = memnew(VBoxContainer); + gc->add_child(vb); + + node_type_group.instantiate(); + + node_type_2d = memnew(CheckBox); + vb->add_child(node_type_2d); + node_type_2d->set_text(TTR("2D Scene")); + node_type_2d->set_button_group(node_type_group); + node_type_2d->set_meta(type_meta, ROOT_2D_SCENE); + node_type_2d->set_pressed(true); + + node_type_3d = memnew(CheckBox); + vb->add_child(node_type_3d); + node_type_3d->set_text(TTR("3D Scene")); + node_type_3d->set_button_group(node_type_group); + node_type_3d->set_meta(type_meta, ROOT_3D_SCENE); + + node_type_gui = memnew(CheckBox); + vb->add_child(node_type_gui); + node_type_gui->set_text(TTR("User Interface")); + node_type_gui->set_button_group(node_type_group); + node_type_gui->set_meta(type_meta, ROOT_USER_INTERFACE); + + HBoxContainer *hb = memnew(HBoxContainer); + vb->add_child(hb); + + node_type_other = memnew(CheckBox); + hb->add_child(node_type_other); + node_type_other->set_button_group(node_type_group); + node_type_other->set_meta(type_meta, ROOT_OTHER); + + Control *spacing = memnew(Control); + hb->add_child(spacing); + spacing->set_custom_minimum_size(Size2(4 * EDSCALE, 0)); + + other_type_display = memnew(LineEdit); + hb->add_child(other_type_display); + other_type_display->set_h_size_flags(Control::SIZE_EXPAND_FILL); + other_type_display->set_editable(false); + other_type_display->set_text("Node"); + + select_node_button = memnew(Button); + hb->add_child(select_node_button); + select_node_button->connect("pressed", callable_mp(this, &SceneCreateDialog::browse_types)); + + node_type_group->connect("pressed", callable_mp(this, &SceneCreateDialog::update_dialog).unbind(1)); + } + + { + Label *label = memnew(Label(TTR("Scene Name:"))); + gc->add_child(label); + + HBoxContainer *hb = memnew(HBoxContainer); + gc->add_child(hb); + + scene_name_edit = memnew(LineEdit); + hb->add_child(scene_name_edit); + scene_name_edit->set_h_size_flags(Control::SIZE_EXPAND_FILL); + scene_name_edit->connect("text_changed", callable_mp(this, &SceneCreateDialog::update_dialog).unbind(1)); + scene_name_edit->connect("text_submitted", callable_mp(this, &SceneCreateDialog::accept_create).unbind(1)); + + List<String> extensions; + Ref<PackedScene> sd = memnew(PackedScene); + ResourceSaver::get_recognized_extensions(sd, &extensions); + + scene_extension_picker = memnew(OptionButton); + hb->add_child(scene_extension_picker); + for (const String &E : extensions) { + scene_extension_picker->add_item("." + E); + scene_extension_picker->set_item_metadata(-1, E); + } + } + + { + Label *label = memnew(Label(TTR("Root Name:"))); + gc->add_child(label); + + root_name_edit = memnew(LineEdit); + gc->add_child(root_name_edit); + root_name_edit->set_placeholder(TTR("Leave empty to use scene name")); + root_name_edit->set_h_size_flags(Control::SIZE_EXPAND_FILL); + root_name_edit->connect("text_changed", callable_mp(this, &SceneCreateDialog::update_dialog).unbind(1)); + root_name_edit->connect("text_submitted", callable_mp(this, &SceneCreateDialog::accept_create).unbind(1)); + } + + Control *spacing = memnew(Control); + main_vb->add_child(spacing); + spacing->set_custom_minimum_size(Size2(0, 10 * EDSCALE)); + + status_panel = memnew(PanelContainer); + main_vb->add_child(status_panel); + status_panel->set_h_size_flags(Control::SIZE_FILL); + status_panel->set_v_size_flags(Control::SIZE_EXPAND_FILL); + + VBoxContainer *status_vb = memnew(VBoxContainer); + status_panel->add_child(status_vb); + + file_error_label = memnew(Label); + status_vb->add_child(file_error_label); + + node_error_label = memnew(Label); + status_vb->add_child(node_error_label); + + set_title(TTR("Create New Scene")); + set_min_size(Size2i(400 * EDSCALE, 0)); +} diff --git a/editor/plugins/ot_features_plugin.h b/editor/scene_create_dialog.h index 6639148080..5ac9d89cd7 100644 --- a/editor/plugins/ot_features_plugin.h +++ b/editor/scene_create_dialog.h @@ -1,5 +1,5 @@ /*************************************************************************/ -/* ot_features_plugin.h */ +/* scene_create_dialog.h */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ @@ -28,75 +28,77 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#ifndef OT_FEATURES_PLUGIN_H -#define OT_FEATURES_PLUGIN_H +#ifndef SCENE_CREATE_DIALOG_H +#define SCENE_CREATE_DIALOG_H -#include "editor/editor_plugin.h" -#include "editor/editor_properties.h" +#include "scene/gui/dialogs.h" -/*************************************************************************/ +class ButtonGroup; +class CheckBox; +class CreateDialog; +class EditorFileDialog; +class Label; +class LineEdit; +class OptionButton; +class PanelContainer; -class OpenTypeFeaturesEditor : public EditorProperty { - GDCLASS(OpenTypeFeaturesEditor, EditorProperty); - EditorSpinSlider *spin = nullptr; - bool setting = true; - void _value_changed(double p_val); - Button *button = nullptr; +class SceneCreateDialog : public ConfirmationDialog { + GDCLASS(SceneCreateDialog, ConfirmationDialog); - void _remove_feature(); + enum MsgType { + MSG_OK, + MSG_ERROR, + }; -protected: - void _notification(int p_what); - static void _bind_methods(); + const StringName type_meta = StringName("type"); public: - virtual void update_property() override; - OpenTypeFeaturesEditor(); -}; - -/*************************************************************************/ - -class OpenTypeFeaturesAdd : public Button { - GDCLASS(OpenTypeFeaturesAdd, Button); - - Object *edited_object = nullptr; - PopupMenu *menu = nullptr; - PopupMenu *menu_ss = nullptr; - PopupMenu *menu_cv = nullptr; - PopupMenu *menu_cu = nullptr; - - void _add_feature(int p_option); - void _features_menu(); + enum RootType { + ROOT_2D_SCENE, + ROOT_3D_SCENE, + ROOT_USER_INTERFACE, + ROOT_OTHER, + }; + +private: + String directory; + String scene_name; + String root_name; + + Ref<ButtonGroup> node_type_group; + CheckBox *node_type_2d = nullptr; + CheckBox *node_type_3d = nullptr; + CheckBox *node_type_gui = nullptr; + CheckBox *node_type_other = nullptr; + + LineEdit *other_type_display = nullptr; + Button *select_node_button = nullptr; + CreateDialog *select_node_dialog = nullptr; + + LineEdit *scene_name_edit = nullptr; + OptionButton *scene_extension_picker = nullptr; + LineEdit *root_name_edit = nullptr; + + PanelContainer *status_panel = nullptr; + Label *file_error_label = nullptr; + Label *node_error_label = nullptr; + + void accept_create(); + void browse_types(); + void on_type_picked(); + void update_dialog(); + void update_error(Label *p_label, MsgType p_type, const String &p_msg); protected: void _notification(int p_what); - static void _bind_methods(); public: - void setup(Object *p_object); - - OpenTypeFeaturesAdd(); -}; + void config(const String &p_dir); -/*************************************************************************/ - -class EditorInspectorPluginOpenTypeFeatures : public EditorInspectorPlugin { - GDCLASS(EditorInspectorPluginOpenTypeFeatures, EditorInspectorPlugin); - -public: - virtual bool can_handle(Object *p_object) override; - virtual bool parse_property(Object *p_object, const Variant::Type p_type, const String &p_path, const PropertyHint p_hint, const String &p_hint_text, const uint32_t p_usage, const bool p_wide = false) override; -}; - -/*************************************************************************/ - -class OpenTypeFeaturesEditorPlugin : public EditorPlugin { - GDCLASS(OpenTypeFeaturesEditorPlugin, EditorPlugin); - -public: - OpenTypeFeaturesEditorPlugin(); + String get_scene_path() const; + Node *create_scene_root(); - virtual String get_name() const override { return "OpenTypeFeatures"; } + SceneCreateDialog(); }; -#endif // OT_FEATURES_PLUGIN_H +#endif // SCENE_CREATE_DIALOG_H diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index 08df4cdf3c..fb8be5db81 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -910,7 +910,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { ResourceSaver::get_recognized_extensions(sd, &extensions); new_scene_from_dialog->clear_filters(); for (int i = 0; i < extensions.size(); i++) { - new_scene_from_dialog->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper()); + new_scene_from_dialog->add_filter("*." + extensions[i], extensions[i].to_upper()); } String existing; @@ -2418,8 +2418,8 @@ void SceneTreeDock::_new_scene_from(String p_file) { Node *copy = base->duplicate_from_editor(duplimap); if (copy) { - for (int i = 0; i < copy->get_child_count(); i++) { - _set_node_owner_recursive(copy->get_child(i), copy); + for (int i = 0; i < copy->get_child_count(false); i++) { + _set_node_owner_recursive(copy->get_child(i, false), copy); } Ref<PackedScene> sdata = memnew(PackedScene); @@ -2456,8 +2456,8 @@ void SceneTreeDock::_set_node_owner_recursive(Node *p_node, Node *p_owner) { p_node->set_owner(p_owner); } - for (int i = 0; i < p_node->get_child_count(); i++) { - _set_node_owner_recursive(p_node->get_child(i), p_owner); + for (int i = 0; i < p_node->get_child_count(false); i++) { + _set_node_owner_recursive(p_node->get_child(i, false), p_owner); } } @@ -3535,7 +3535,7 @@ SceneTreeDock::SceneTreeDock(Node *p_scene_root, EditorSelection *p_editor_selec clear_inherit_confirm = memnew(ConfirmationDialog); clear_inherit_confirm->set_text(TTR("Clear Inheritance? (No Undo!)")); - clear_inherit_confirm->get_ok_button()->set_text(TTR("Clear")); + clear_inherit_confirm->set_ok_button_text(TTR("Clear")); add_child(clear_inherit_confirm); set_process_input(true); diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp index 5536e09da7..86fa9222c0 100644 --- a/editor/scene_tree_editor.cpp +++ b/editor/scene_tree_editor.cpp @@ -1353,8 +1353,9 @@ void SceneTreeDialog::_cancel() { void SceneTreeDialog::_select() { if (tree->get_selected()) { - emit_signal(SNAME("selected"), tree->get_selected()->get_path()); + // The signal may cause another dialog to be displayed, so be sure to hide this one first. hide(); + emit_signal(SNAME("selected"), tree->get_selected()->get_path()); } } diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp index e8561de19c..f2eabdd208 100644 --- a/editor/script_create_dialog.cpp +++ b/editor/script_create_dialog.cpp @@ -481,7 +481,7 @@ void ScriptCreateDialog::_browse_path(bool browse_parent, bool p_save) { if (p_save) { file_browse->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE); file_browse->set_title(TTR("Open Script / Choose Location")); - file_browse->get_ok_button()->set_text(TTR("Open")); + file_browse->set_ok_button_text(TTR("Open")); } else { file_browse->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE); file_browse->set_title(TTR("Open Script")); @@ -528,7 +528,7 @@ void ScriptCreateDialog::_browse_class_in_tree() { select_class->set_base_type(base_type); select_class->popup_create(true); select_class->set_title(vformat(TTR("Inherit %s"), base_type)); - select_class->get_ok_button()->set_text(TTR("Inherit")); + select_class->set_ok_button_text(TTR("Inherit")); } void ScriptCreateDialog::_path_changed(const String &p_path) { @@ -750,7 +750,7 @@ void ScriptCreateDialog::_update_dialog() { parent_browse_button->set_disabled(!is_new_file || !can_inherit_from_file); template_inactive_message = ""; String button_text = is_new_file ? TTR("Create") : TTR("Load"); - get_ok_button()->set_text(button_text); + set_ok_button_text(button_text); if (is_new_file) { if (is_built_in) { @@ -1088,7 +1088,7 @@ ScriptCreateDialog::ScriptCreateDialog() { file_browse->connect("file_selected", callable_mp(this, &ScriptCreateDialog::_file_selected)); file_browse->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE); add_child(file_browse); - get_ok_button()->set_text(TTR("Create")); + set_ok_button_text(TTR("Create")); alert = memnew(AcceptDialog); alert->get_label()->set_autowrap_mode(TextServer::AUTOWRAP_WORD_SMART); alert->get_label()->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER); diff --git a/editor/shader_create_dialog.cpp b/editor/shader_create_dialog.cpp index f70c46c8d8..28e1e9bf22 100644 --- a/editor/shader_create_dialog.cpp +++ b/editor/shader_create_dialog.cpp @@ -270,7 +270,7 @@ void ShaderCreateDialog::_built_in_toggled(bool p_enabled) { void ShaderCreateDialog::_browse_path() { file_browse->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE); file_browse->set_title(TTR("Open Shader / Choose Location")); - file_browse->get_ok_button()->set_text(TTR("Open")); + file_browse->set_ok_button_text(TTR("Open")); file_browse->set_disable_overwrite_warning(true); file_browse->clear_filters(); @@ -469,20 +469,20 @@ void ShaderCreateDialog::_update_dialog() { builtin_warning_label->set_visible(is_built_in); if (is_built_in) { - get_ok_button()->set_text(TTR("Create")); + set_ok_button_text(TTR("Create")); _msg_path_valid(true, TTR("Built-in shader (into scene file).")); } else if (is_new_shader_created) { - get_ok_button()->set_text(TTR("Create")); + set_ok_button_text(TTR("Create")); if (is_path_valid) { _msg_path_valid(true, TTR("Will create a new shader file.")); } } else if (load_enabled) { - get_ok_button()->set_text(TTR("Load")); + set_ok_button_text(TTR("Load")); if (is_path_valid) { _msg_path_valid(true, TTR("Will load an existing shader file.")); } } else { - get_ok_button()->set_text(TTR("Create")); + set_ok_button_text(TTR("Create")); _msg_path_valid(false, TTR("Shader file already exists.")); shader_ok = false; @@ -638,7 +638,7 @@ ShaderCreateDialog::ShaderCreateDialog() { alert->get_label()->set_custom_minimum_size(Size2(325, 60) * EDSCALE); add_child(alert); - get_ok_button()->set_text(TTR("Create")); + set_ok_button_text(TTR("Create")); set_hide_on_ok(false); set_title(TTR("Create Shader")); diff --git a/editor/translations/af.po b/editor/translations/af.po index ae83779422..db28610435 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -413,6 +413,11 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Aktiveer" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5556,6 +5561,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Alle Seleksie" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8009,11 +8019,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -8033,11 +8052,6 @@ msgid "Animation name already exists!" msgstr "AutoLaai '%s' bestaan reeds!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -8185,10 +8199,6 @@ msgid "Pin AnimationPlayer" msgstr "Animasie Zoem." #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18703,6 +18713,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Anim Dupliseer Sleutels" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18711,6 +18726,16 @@ msgstr "" msgid "Export Format" msgstr "Anim Verander Transform" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Afhanklikheid Bewerker" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Skrap" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18747,16 +18772,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Afhanklikheid Bewerker" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Skrap" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18994,12 +19009,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19008,17 +19023,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20645,7 +20680,7 @@ msgstr "Zoem In" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21346,34 +21381,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Wysig Seleksie Kurwe" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Konstant" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Installeer" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Aktiveer" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Aktiveer" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Aktiveer" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22513,6 +22570,13 @@ msgstr "" msgid "Transform Normals" msgstr "Skep Intekening" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -24544,6 +24608,11 @@ msgstr "Skep Vouer" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Slegs Seleksie" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Aktiveer" @@ -24928,16 +24997,17 @@ msgstr "Fokus Pad" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26640,6 +26710,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Verwyder Seleksie" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/ar.po b/editor/translations/ar.po index a3fcece225..93bc2971e8 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -64,13 +64,14 @@ # ywmaa <ywmaa.personal@gmail.com>, 2022. # Awab Najim <dev.djvan@gmail.com>, 2022. # Abderrahim <abdoudido117@gmail.com>, 2022. +# Jhon Smith <jhonsmaith3@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-19 11:52+0000\n" -"Last-Translator: Awab Najim <dev.djvan@gmail.com>\n" +"PO-Revision-Date: 2022-07-05 07:17+0000\n" +"Last-Translator: Jhon Smith <jhonsmaith3@gmail.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/" "godot/ar/>\n" "Language: ar\n" @@ -307,9 +308,8 @@ msgid "Refuse New Network Connections" msgstr "رفض اتصالات الشبكة الجديدة" #: core/io/multiplayer_api.cpp scene/main/scene_tree.cpp -#, fuzzy msgid "Network Peer" -msgstr "ملف تعريف الشبكة Network Profiler" +msgstr "نظير الشبكة" #: core/io/multiplayer_api.cpp scene/animation/animation_player.cpp msgid "Root Node" @@ -448,6 +448,11 @@ msgstr "المرجعية الذاتية (Meta)" msgid "Command" msgstr "مفتاح Command" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (فيزيائي)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -686,9 +691,8 @@ msgid "Main Run Args" msgstr "معاملات المشهد الرئيس" #: core/project_settings.cpp -#, fuzzy msgid "Scene Naming" -msgstr "المسار للمشهد:" +msgstr "تسمية المشهد" #: core/project_settings.cpp msgid "Search In File Extensions" @@ -699,9 +703,8 @@ msgid "Script Templates Search Path" msgstr "مسار البحث في قوالب النص البرمجي" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Autoload On Startup" -msgstr "التحميل التلقائي عند بدء التشغيل" +msgstr "التحميل التلقائي للتحكم في الإصدار عند بدء التشغيل" #: core/project_settings.cpp #, fuzzy @@ -859,8 +862,9 @@ msgid "Formats" msgstr "البنية (اللاحقة)" #: core/project_settings.cpp +#, fuzzy msgid "Zstd" -msgstr "" +msgstr "Zstd" #: core/project_settings.cpp msgid "Long Distance Matching" @@ -875,12 +879,14 @@ msgid "Window Log Size" msgstr "حجم نافذة سجل" #: core/project_settings.cpp +#, fuzzy msgid "Zlib" -msgstr "" +msgstr "Zlib" #: core/project_settings.cpp +#, fuzzy msgid "Gzip" -msgstr "" +msgstr "Gzip" #: core/project_settings.cpp platform/android/export/export.cpp msgid "Android" @@ -892,7 +898,7 @@ msgstr "وحدات" #: core/register_core_types.cpp msgid "TCP" -msgstr "" +msgstr "بروتوكول التحكم بالإرسال (TCP)" #: core/register_core_types.cpp msgid "Connect Timeout Seconds" @@ -900,15 +906,15 @@ msgstr "نفذ وقت الإتصال" #: core/register_core_types.cpp msgid "Packet Peer Stream" -msgstr "" +msgstr "حزمة تيار الأقران" #: core/register_core_types.cpp msgid "Max Buffer (Power of 2)" -msgstr "" +msgstr "الحد الأقصى للمخزن المؤقت (قوة 2)" #: core/register_core_types.cpp editor/editor_settings.cpp main/main.cpp msgid "SSL" -msgstr "" +msgstr "SSL" #: core/register_core_types.cpp main/main.cpp msgid "Certificates" @@ -981,17 +987,17 @@ msgstr "إكسي بايت (EiB)" #: drivers/gles3/rasterizer_scene_gles3.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp modules/gltf/gltf_state.cpp msgid "Buffers" -msgstr "" +msgstr "المخازن المؤقته" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp msgid "Canvas Polygon Buffer Size (KB)" -msgstr "" +msgstr "حجم المخزن المؤقت للوحة المضلعات (KB)" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp msgid "Canvas Polygon Index Buffer Size (KB)" -msgstr "" +msgstr "حجم فهرس المخزن المؤقت للوحة المضلعات (KB)" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp editor/editor_settings.cpp @@ -1003,7 +1009,7 @@ msgstr "" #: servers/physics_2d/space_2d_sw.cpp servers/physics_2d_server.cpp #: servers/visual_server.cpp msgid "2D" -msgstr "" +msgstr "2D" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp @@ -1020,7 +1026,7 @@ msgstr "إستخدام كبس البكسل" #: drivers/gles2/rasterizer_scene_gles2.cpp #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Immediate Buffer Size (KB)" -msgstr "" +msgstr "حجم المخزن المؤقت الفوري (KB)" #: drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp @@ -1031,15 +1037,15 @@ msgstr "طبخ (إعداد) خرائط الضوء" #: drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp msgid "Use Bicubic Sampling" -msgstr "" +msgstr "استخدم طريقة Bicubic Sampling" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Elements" -msgstr "" +msgstr "الحد الأقصى للعناصر القابلة للعرض" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Lights" -msgstr "" +msgstr "الحجم الأقصى للأضواء القابلة للعرض" #: drivers/gles3/rasterizer_scene_gles3.cpp #, fuzzy @@ -1048,11 +1054,11 @@ msgstr "نصف المُحدد" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Lights Per Object" -msgstr "" +msgstr "الحد الأقصى للأضواء لكل كائن" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Subsurface Scattering" -msgstr "" +msgstr "التشتت تحت السطح" #: drivers/gles3/rasterizer_scene_gles3.cpp editor/animation_track_editor.cpp #: editor/import/resource_importer_texture.cpp @@ -1074,19 +1080,19 @@ msgstr "تزويد السطح" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Weight Samples" -msgstr "" +msgstr "عينات الوزن" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Voxel Cone Tracing" -msgstr "" +msgstr "تتبع مخروط فوكسل (Voxel)" #: drivers/gles3/rasterizer_scene_gles3.cpp scene/resources/environment.cpp msgid "High Quality" -msgstr "" +msgstr "جودة عالية" #: drivers/gles3/rasterizer_storage_gles3.cpp msgid "Blend Shape Max Buffer Size (KB)" -msgstr "" +msgstr "الحد الأقصى لحجم المخزن المؤقت لشكل المزج (كيلو بايت)" #. TRANSLATORS: Adjective, refers to the mode for Bezier handles (Free, Balanced, Mirror). #: editor/animation_bezier_editor.cpp @@ -1197,7 +1203,7 @@ msgstr "الكمية:" #: editor/animation_track_editor.cpp main/main.cpp #: modules/mono/mono_gd/gd_mono.cpp msgid "Args" -msgstr "" +msgstr "المعاملات (Args)" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/script_editor_debugger.cpp modules/gltf/gltf_accessor.cpp @@ -1221,7 +1227,7 @@ msgstr "حدد المعامل" #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/audio/audio_stream_player.cpp scene/gui/video_player.cpp msgid "Stream" -msgstr "" +msgstr "المجرى (Stream)" #: editor/animation_track_editor.cpp #, fuzzy @@ -1657,7 +1663,7 @@ msgstr "دوال" #: editor/animation_track_editor.cpp msgid "Bezier" -msgstr "" +msgstr "منحنى بيزر (Bezier)" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -2243,7 +2249,7 @@ msgstr "إفتح" #: editor/dependency_editor.cpp msgid "Owners of: %s (Total: %d)" -msgstr "" +msgstr "مالكو: %s (المجموع: %d)" #: editor/dependency_editor.cpp msgid "" @@ -2803,7 +2809,7 @@ msgstr "إختر" #: editor/editor_export.cpp msgid "Project export for platform:" -msgstr "" +msgstr "تصدير المشروع لمنصة:" #: editor/editor_export.cpp #, fuzzy @@ -2933,11 +2939,11 @@ msgstr "تنسيق ثنائي" #: editor/editor_export.cpp msgid "64 Bits" -msgstr "" +msgstr "64 بت" #: editor/editor_export.cpp msgid "Embed PCK" -msgstr "" +msgstr "تضمين PCK" #: editor/editor_export.cpp platform/osx/export/export.cpp #, fuzzy @@ -2946,19 +2952,19 @@ msgstr "منطقة النقش TextureRegion" #: editor/editor_export.cpp msgid "BPTC" -msgstr "" +msgstr "BPTC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "S3TC" -msgstr "" +msgstr "S3TC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "ETC" -msgstr "" +msgstr "ETC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "ETC2" -msgstr "" +msgstr "ETC2" #: editor/editor_export.cpp #, fuzzy @@ -3009,7 +3015,7 @@ msgstr "لا يمكن لمُصدرات 32-bit التي تتضمن PCK أن تك #: editor/editor_export.cpp msgid "Convert Text Resources To Binary On Export" -msgstr "" +msgstr "تحويل الموارد النصية إلى صيغة ثنائية عند التصدير" #: editor/editor_feature_profile.cpp msgid "3D Editor" @@ -3331,7 +3337,7 @@ msgstr "أظهر الملفات المخفية" #: editor/editor_file_dialog.cpp msgid "Disable Overwrite Warning" -msgstr "" +msgstr "تعطيل تحذير الإستبدال" #: editor/editor_file_dialog.cpp msgid "Go Back" @@ -3432,7 +3438,7 @@ msgstr "إعادة إستيراد الأصول" #: editor/editor_file_system.cpp msgid "Reimport Missing Imported Files" -msgstr "" +msgstr "إعادة استيراد الملفات المستوردة المفقودة" #: editor/editor_help.cpp scene/2d/camera_2d.cpp scene/gui/control.cpp #: scene/gui/nine_patch_rect.cpp scene/resources/dynamic_font.cpp @@ -3544,7 +3550,7 @@ msgstr "مساعدة" #: editor/editor_help.cpp msgid "Sort Functions Alphabetically" -msgstr "" +msgstr "ترتيب الدوال أبجديا" #: editor/editor_help_search.cpp editor/editor_node.cpp #: editor/plugins/script_editor_plugin.cpp @@ -4323,6 +4329,8 @@ msgstr "%d مزيد من الملفات" msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" +"غير قادر على الكتابة إلى الملف '% s' ، الملف قيد الاستخدام ، مؤمن أو ينقصه " +"الأذونات." #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp @@ -4342,11 +4350,11 @@ msgstr "إظهار الشبكة دوماً" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Resize If Many Tabs" -msgstr "" +msgstr "تغيير الحجم في حالة وجود العديد من علامات التبويب" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Minimum Width" -msgstr "" +msgstr "الحد الأدنى للعرض" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Output" @@ -4359,15 +4367,15 @@ msgstr "مسح المُخرجات" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Always Open Output On Play" -msgstr "" +msgstr "دائما افتح نافذة الإخراج أثناء التشغيل" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Always Close Output On Stop" -msgstr "" +msgstr "دائما أغلق نافذة الإخراج عند إيقاف التشغيل" #: editor/editor_node.cpp msgid "Save On Focus Loss" -msgstr "" +msgstr "حفظ عند فقدان التركيز" #: editor/editor_node.cpp editor/editor_settings.cpp #, fuzzy @@ -4405,7 +4413,7 @@ msgstr "عقدة التنقل الزمني" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Show Thumbnail On Hover" -msgstr "" +msgstr "إظهار الصورة المصغرة عند التمرير" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Inspector" @@ -4418,7 +4426,7 @@ msgstr "مسار المشروع:" #: editor/editor_node.cpp msgid "Default Float Step" -msgstr "" +msgstr "خطوة الfloat الافتراضية" #: editor/editor_node.cpp scene/gui/tree.cpp #, fuzzy @@ -4427,15 +4435,15 @@ msgstr "زر معطّل" #: editor/editor_node.cpp msgid "Auto Unfold Foreign Scenes" -msgstr "" +msgstr "إكشف المشاهد الأجنبية تلقائيا" #: editor/editor_node.cpp msgid "Horizontal Vector2 Editing" -msgstr "" +msgstr "تحرير Vector2 الأفقي" #: editor/editor_node.cpp msgid "Horizontal Vector Types Editing" -msgstr "" +msgstr "تحرير أنواع المتجهات الأفقية" #: editor/editor_node.cpp #, fuzzy @@ -4449,7 +4457,7 @@ msgstr "افتح في المُتصفح" #: editor/editor_node.cpp msgid "Default Color Picker Mode" -msgstr "" +msgstr "وضع منتقي الألوان الافتراضي" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Version Control" @@ -5079,6 +5087,12 @@ msgid "" "functions called by that function.\n" "Use this to find individual functions to optimize." msgstr "" +"شامل: يشمل الوقت من الدوال الأخرى التي تستدعيها هذه الدالة.\n" +"استخدم هذا لتحديد الاختناقات (bottlenecks).\n" +"\n" +"ذاتي: احسب فقط الوقت المستغرق في الدالة نفسها ، وليس في الدوال الأخرى التي " +"تستدعيها تلك الدالة.\n" +"استخدم هذا للعثور على دوال محددة لتحسينها." #: editor/editor_profiler.cpp msgid "Frame #:" @@ -5095,7 +5109,7 @@ msgstr "مُنقح الأخطاء" #: editor/editor_profiler.cpp msgid "Profiler Frame History Size" -msgstr "" +msgstr "حجم تاريخ إطار المحلل" #: editor/editor_profiler.cpp #, fuzzy @@ -5309,23 +5323,23 @@ msgstr "إظهار الكل" #: editor/editor_settings.cpp msgid "Custom Display Scale" -msgstr "" +msgstr "مقياس العرض المخصص" #: editor/editor_settings.cpp msgid "Main Font Size" -msgstr "" +msgstr "حجم الخط الرئيسي" #: editor/editor_settings.cpp msgid "Code Font Size" -msgstr "" +msgstr "حجم خط الشِفرة" #: editor/editor_settings.cpp msgid "Font Antialiased" -msgstr "" +msgstr "الخط Antialiased" #: editor/editor_settings.cpp msgid "Font Hinting" -msgstr "" +msgstr "تلميح الخط (Hinting)" #: editor/editor_settings.cpp #, fuzzy @@ -5334,7 +5348,7 @@ msgstr "المشهد الرئيس" #: editor/editor_settings.cpp msgid "Main Font Bold" -msgstr "" +msgstr "الخط الرئيسي غامق" #: editor/editor_settings.cpp #, fuzzy @@ -5343,15 +5357,15 @@ msgstr "إضافة نقطة العقدة" #: editor/editor_settings.cpp msgid "Dim Editor On Dialog Popup" -msgstr "" +msgstr "اخفت المحرر عند انبثاق نافذة الحوار" #: editor/editor_settings.cpp main/main.cpp msgid "Low Processor Mode Sleep (µsec)" -msgstr "" +msgstr "وضع السكون المنخفض للمعالج (µsec)" #: editor/editor_settings.cpp msgid "Unfocused Low Processor Mode Sleep (µsec)" -msgstr "" +msgstr "وضع السكون المنخفض للمعالج غير المركّز (µsec)" #: editor/editor_settings.cpp #, fuzzy @@ -5360,11 +5374,11 @@ msgstr "وضع خالي من الإلهاء" #: editor/editor_settings.cpp msgid "Automatically Open Screenshots" -msgstr "" +msgstr "فتح لقطات الشاشة تلقائيًا" #: editor/editor_settings.cpp msgid "Max Array Dictionary Items Per Page" -msgstr "" +msgstr "الحد الأقصى لعناصر قاموس المصفوفة في كل صفحة" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp scene/gui/control.cpp @@ -5378,7 +5392,7 @@ msgstr "إعداد مُسبق" #: editor/editor_settings.cpp msgid "Icon And Font Color" -msgstr "" +msgstr "لون الأيقونة والخط" #: editor/editor_settings.cpp #, fuzzy @@ -5392,11 +5406,11 @@ msgstr "اختر لوناً" #: editor/editor_settings.cpp scene/resources/environment.cpp msgid "Contrast" -msgstr "" +msgstr "التباين" #: editor/editor_settings.cpp msgid "Relationship Line Opacity" -msgstr "" +msgstr "عتامة خط العلاقة" #: editor/editor_settings.cpp #, fuzzy @@ -5410,7 +5424,7 @@ msgstr "البكسلات المحيطية (الحدودية)" #: editor/editor_settings.cpp msgid "Use Graph Node Headers" -msgstr "" +msgstr "استخدم رؤوس وحدات الرسم البياني" #: editor/editor_settings.cpp #, fuzzy @@ -5454,7 +5468,7 @@ msgstr "نسخ الموارد" #: editor/editor_settings.cpp msgid "Safe Save On Backup Then Rename" -msgstr "" +msgstr "حفظ آمن على النسخ الاحتياطي ثم إعادة التسمية" #: editor/editor_settings.cpp #, fuzzy @@ -5468,7 +5482,7 @@ msgstr "الصورة المصغرة..." #: editor/editor_settings.cpp msgid "Docks" -msgstr "" +msgstr "النوافذ المثبتة (Docked)" #: editor/editor_settings.cpp #, fuzzy @@ -5477,7 +5491,7 @@ msgstr "تعديل شجرة المشهد" #: editor/editor_settings.cpp msgid "Start Create Dialog Fully Expanded" -msgstr "" +msgstr "بدء نافذة حوار الإنشاء موسعة بالكامل" #: editor/editor_settings.cpp #, fuzzy @@ -5491,7 +5505,7 @@ msgstr "محرر المجموعات" #: editor/editor_settings.cpp msgid "Auto Refresh Interval" -msgstr "" +msgstr "الفاصل الزمني للتحديث التلقائي" #: editor/editor_settings.cpp #, fuzzy @@ -5506,7 +5520,7 @@ msgstr "مظهر المحرر/برنامج-جودوه" #: editor/editor_settings.cpp scene/3d/label_3d.cpp #: scene/resources/default_theme/default_theme.cpp msgid "Line Spacing" -msgstr "" +msgstr "تباعد الأسطر" #: editor/editor_settings.cpp editor/plugins/script_text_editor.cpp #: modules/gdscript/editor/gdscript_highlighter.cpp @@ -5521,15 +5535,15 @@ msgstr "مُعلّم التركيب Syntax" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "Highlight All Occurrences" -msgstr "" +msgstr "قم بتمييز جميع التكرارات" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "Highlight Current Line" -msgstr "" +msgstr "تمييز السطر الحالي" #: editor/editor_settings.cpp editor/plugins/script_text_editor.cpp msgid "Highlight Type Safe Lines" -msgstr "" +msgstr "تمييز سطور الأنواع الآمنة" #: editor/editor_settings.cpp #, fuzzy @@ -5564,11 +5578,11 @@ msgstr "تنقل" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "Smooth Scrolling" -msgstr "" +msgstr "التمرير السلس" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "V Scroll Speed" -msgstr "" +msgstr "سرعة التمرير العمودي" #: editor/editor_settings.cpp #, fuzzy @@ -5577,15 +5591,20 @@ msgstr "إظهار المركز" #: editor/editor_settings.cpp msgid "Minimap Width" -msgstr "" +msgstr "عرض الخريطة المصغرة" #: editor/editor_settings.cpp msgid "Mouse Extra Buttons Navigate History" -msgstr "" +msgstr "تنقل في سجل أزرار الماوس الإضافية" + +#: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "تحديد الملئ خريطة-الشبكة" #: editor/editor_settings.cpp msgid "Appearance" -msgstr "" +msgstr "المظهر" #: editor/editor_settings.cpp scene/gui/text_edit.cpp #, fuzzy @@ -5599,7 +5618,7 @@ msgstr "رقم الخط:" #: editor/editor_settings.cpp msgid "Show Bookmark Gutter" -msgstr "" +msgstr "إظهار مزراب الإشارة المرجعية" #: editor/editor_settings.cpp #, fuzzy @@ -5608,27 +5627,27 @@ msgstr "تخطي نقاط التكسّر" #: editor/editor_settings.cpp msgid "Show Info Gutter" -msgstr "" +msgstr "إظهار معلومات المزراب" #: editor/editor_settings.cpp msgid "Code Folding" -msgstr "" +msgstr "طي الكود" #: editor/editor_settings.cpp msgid "Word Wrap" -msgstr "" +msgstr "التفاف الكلمات" #: editor/editor_settings.cpp msgid "Show Line Length Guidelines" -msgstr "" +msgstr "إظهار إرشادات طول السطر" #: editor/editor_settings.cpp msgid "Line Length Guideline Soft Column" -msgstr "" +msgstr "عمود ناعم لتوجيه طول السطر" #: editor/editor_settings.cpp msgid "Line Length Guideline Hard Column" -msgstr "" +msgstr "عمود غامق لتوجيه طول السطر" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5637,7 +5656,7 @@ msgstr "محرر النص البرمجي" #: editor/editor_settings.cpp msgid "Show Members Overview" -msgstr "" +msgstr "عرض نظرة عامة على الأعضاء" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5651,19 +5670,19 @@ msgstr "تشذيب الفراغات البيضاء الزائدة" #: editor/editor_settings.cpp msgid "Autosave Interval Secs" -msgstr "" +msgstr "الفاصل الزمني للحفظ التلقائي بالثواني" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp msgid "Restore Scripts On Load" -msgstr "" +msgstr "استعادة البرامج النصية عند التحميل" #: editor/editor_settings.cpp msgid "Auto Reload And Parse Scripts On Save" -msgstr "" +msgstr "إعادة تحميل البرامج النصية تلقائيا وتحليلها عند الحفظ" #: editor/editor_settings.cpp msgid "Auto Reload Scripts On External Change" -msgstr "" +msgstr "إعادة تحميل البرامج النصية تلقائيا عند تغييرها من الخارج" #: editor/editor_settings.cpp #, fuzzy @@ -5672,27 +5691,27 @@ msgstr "اجبار ارتداد(احتياط) التظليل" #: editor/editor_settings.cpp msgid "Sort Members Outline Alphabetically" -msgstr "" +msgstr "فرز الخطوط العريضة للأعضاء أبجدياً" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Cursor" -msgstr "" +msgstr "المؤشر" #: editor/editor_settings.cpp msgid "Scroll Past End Of File" -msgstr "" +msgstr "التمرير إلى ما بعد نهاية الملف" #: editor/editor_settings.cpp msgid "Block Caret" -msgstr "" +msgstr "علامة الإقحام" #: editor/editor_settings.cpp msgid "Caret Blink" -msgstr "" +msgstr "وميض علامة الإقحام" #: editor/editor_settings.cpp msgid "Caret Blink Speed" -msgstr "" +msgstr "سرعة وميض علامة الإقحام" #: editor/editor_settings.cpp #, fuzzy @@ -5708,23 +5727,23 @@ msgstr "نسخ المُحدد" #: editor/editor_settings.cpp msgid "Idle Parse Delay" -msgstr "" +msgstr "تأخير التحليل الخامل" #: editor/editor_settings.cpp msgid "Auto Brace Complete" -msgstr "" +msgstr "اكمال القوس التلقائي" #: editor/editor_settings.cpp msgid "Code Complete Delay" -msgstr "" +msgstr "تأخير الإكمال التلقائي للكود" #: editor/editor_settings.cpp msgid "Put Callhint Tooltip Below Current Line" -msgstr "" +msgstr "ضع تلميح أداة Callhint أسفل السطر الحالي" #: editor/editor_settings.cpp msgid "Callhint Tooltip Offset" -msgstr "" +msgstr "إزاحة تلميح أداة Callhint" #: editor/editor_settings.cpp #, fuzzy @@ -5748,15 +5767,15 @@ msgstr "أظهر المساعدات" #: editor/editor_settings.cpp msgid "Help Font Size" -msgstr "" +msgstr "حجم خط المساعدة" #: editor/editor_settings.cpp msgid "Help Source Font Size" -msgstr "" +msgstr "حجم خط مصدر المساعدة" #: editor/editor_settings.cpp msgid "Help Title Font Size" -msgstr "" +msgstr "حجم خط عنوان المساعدة" #: editor/editor_settings.cpp modules/gridmap/grid_map_editor_plugin.cpp msgid "Grid Map" @@ -5774,11 +5793,11 @@ msgstr "عرض" #: editor/editor_settings.cpp msgid "Primary Grid Color" -msgstr "" +msgstr "لون الشبكة الأساسي" #: editor/editor_settings.cpp msgid "Secondary Grid Color" -msgstr "" +msgstr "لون الشبكة الثانوي" #: editor/editor_settings.cpp #, fuzzy @@ -5815,7 +5834,7 @@ msgstr "نقطة" #: scene/resources/particles_material.cpp servers/physics_2d_server.cpp #: servers/physics_server.cpp msgid "Shape" -msgstr "" +msgstr "شكل" #: editor/editor_settings.cpp #, fuzzy @@ -5829,15 +5848,15 @@ msgstr "خطوة الشبكة:" #: editor/editor_settings.cpp msgid "Grid Division Level Max" -msgstr "" +msgstr "الحد الأقصى لمستوى تقسيم الشبكة" #: editor/editor_settings.cpp msgid "Grid Division Level Min" -msgstr "" +msgstr "الحد الأدنى لمستوى تقسيم الشبكة" #: editor/editor_settings.cpp msgid "Grid Division Level Bias" -msgstr "" +msgstr "التحيز على مستوى تقسيم الشبكة" #: editor/editor_settings.cpp #, fuzzy @@ -5871,7 +5890,7 @@ msgstr "افتراضي" #: editor/editor_settings.cpp msgid "Lightmap Baking Number Of CPU Threads" -msgstr "" +msgstr "عدد خطوط المعالجة لحفظ خرائط الإضاءة" #: editor/editor_settings.cpp #, fuzzy @@ -5895,11 +5914,11 @@ msgstr "تصغير" #: editor/editor_settings.cpp msgid "Emulate Numpad" -msgstr "" +msgstr "محاكاة لوحة مفاتيح الأرقام" #: editor/editor_settings.cpp msgid "Emulate 3 Button Mouse" -msgstr "" +msgstr "محاكاة الماوس ذو الثلاثة أزرار" #: editor/editor_settings.cpp #, fuzzy @@ -5918,7 +5937,7 @@ msgstr "مُعدّل" #: editor/editor_settings.cpp editor/plugins/spatial_editor_plugin.cpp msgid "Warped Mouse Panning" -msgstr "" +msgstr "التفاف الحركة بالماوس" #: editor/editor_settings.cpp #, fuzzy @@ -5927,11 +5946,11 @@ msgstr "وضع التنقل" #: editor/editor_settings.cpp msgid "Orbit Sensitivity" -msgstr "" +msgstr "حساسية التدوير" #: editor/editor_settings.cpp msgid "Orbit Inertia" -msgstr "" +msgstr "القصور الذاتي المداري" #: editor/editor_settings.cpp #, fuzzy @@ -5995,7 +6014,7 @@ msgstr "المحاذاة الذكية" #: editor/editor_settings.cpp msgid "Bone Width" -msgstr "" +msgstr "عرض العظام" #: editor/editor_settings.cpp #, fuzzy @@ -6014,11 +6033,11 @@ msgstr "عدل على الحساب الحالي:" #: editor/editor_settings.cpp msgid "Bone IK Color" -msgstr "" +msgstr "لون IK العظام" #: editor/editor_settings.cpp msgid "Bone Outline Color" -msgstr "" +msgstr "لون حدود العظام" #: editor/editor_settings.cpp #, fuzzy @@ -6027,19 +6046,19 @@ msgstr "حجم الخطوط:" #: editor/editor_settings.cpp msgid "Viewport Border Color" -msgstr "" +msgstr "لون حدود إطار العرض" #: editor/editor_settings.cpp msgid "Constrain Editor View" -msgstr "" +msgstr "تقييد عرض المحرر" #: editor/editor_settings.cpp msgid "Simple Panning" -msgstr "" +msgstr "التحريك البسيط" #: editor/editor_settings.cpp msgid "Scroll To Pan" -msgstr "" +msgstr "التمرير للتحريك" #: editor/editor_settings.cpp #, fuzzy @@ -6053,7 +6072,7 @@ msgstr "مُحرر UV الخاص بالمُضلعات ثنائية البُعد" #: editor/editor_settings.cpp msgid "Point Grab Radius" -msgstr "" +msgstr "قطر نقطة الإنتزاع" #: editor/editor_settings.cpp editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy @@ -6067,7 +6086,7 @@ msgstr "إعادة تسمية الرسم المتحرك" #: editor/editor_settings.cpp msgid "Default Create Bezier Tracks" -msgstr "" +msgstr "إنشاء مسارات Bezier الإفتراضية" #: editor/editor_settings.cpp #, fuzzy @@ -6076,11 +6095,11 @@ msgstr "إنشاء مسار(ات) إعادة التعيين (RESET)" #: editor/editor_settings.cpp msgid "Onion Layers Past Color" -msgstr "" +msgstr "لون Onion Layers في الماضي" #: editor/editor_settings.cpp msgid "Onion Layers Future Color" -msgstr "" +msgstr "لون Onion Layers في المستقبل" #: editor/editor_settings.cpp #, fuzzy @@ -6089,11 +6108,11 @@ msgstr "محرر المجموعات" #: editor/editor_settings.cpp msgid "Minimap Opacity" -msgstr "" +msgstr "عتامة الخريطة المصغرة" #: editor/editor_settings.cpp msgid "Window Placement" -msgstr "" +msgstr "موضع النافذة" #: editor/editor_settings.cpp scene/2d/back_buffer_copy.cpp scene/2d/sprite.cpp #: scene/2d/visibility_notifier_2d.cpp scene/3d/sprite_3d.cpp @@ -6109,7 +6128,7 @@ msgstr "حدد موقع خروج الإنحناء" #: editor/editor_settings.cpp platform/android/export/export_plugin.cpp msgid "Screen" -msgstr "" +msgstr "شاشة" #: editor/editor_settings.cpp #, fuzzy @@ -6144,17 +6163,17 @@ msgstr "إعدادات المُعدل" #: editor/editor_settings.cpp msgid "HTTP Proxy" -msgstr "" +msgstr "وكيل (Proxy) HTTP" #: editor/editor_settings.cpp msgid "Host" -msgstr "" +msgstr "المضيف" #: editor/editor_settings.cpp editor/fileserver/editor_file_server.cpp #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp #: scene/resources/default_theme/default_theme.cpp msgid "Port" -msgstr "" +msgstr "منفذ" #. TRANSLATORS: Project Manager here refers to the tool used to create/manage Godot projects. #: editor/editor_settings.cpp @@ -6169,15 +6188,15 @@ msgstr "إعادة تسمية مجلد:" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Symbol Color" -msgstr "" +msgstr "لون الرمز" #: editor/editor_settings.cpp msgid "Keyword Color" -msgstr "" +msgstr "لون الكلمة المفتاحية" #: editor/editor_settings.cpp msgid "Control Flow Keyword Color" -msgstr "" +msgstr "لون الكلمة المفتاحية لتدفق التحكم" #: editor/editor_settings.cpp #, fuzzy @@ -6186,15 +6205,15 @@ msgstr "النوع الأساسي" #: editor/editor_settings.cpp msgid "Engine Type Color" -msgstr "" +msgstr "لون نوع المحرك" #: editor/editor_settings.cpp msgid "User Type Color" -msgstr "" +msgstr "لون نوع المستخدم" #: editor/editor_settings.cpp msgid "Comment Color" -msgstr "" +msgstr "لون التعليق" #: editor/editor_settings.cpp #, fuzzy @@ -6220,15 +6239,15 @@ msgstr "إستيراد المحدد" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Existing Color" -msgstr "" +msgstr "لون الإكمال الموجود" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Scroll Color" -msgstr "" +msgstr "لون تمرير الإكمال" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Font Color" -msgstr "" +msgstr "لون خط الإكمال" #: editor/editor_settings.cpp #, fuzzy @@ -6247,7 +6266,7 @@ msgstr "رقم الخط:" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Caret Color" -msgstr "" +msgstr "لون علامة الإقحام" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -6266,7 +6285,7 @@ msgstr "المحدد فقط" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Brace Mismatch Color" -msgstr "" +msgstr "لون عدم تطابق الأقواس" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -6275,7 +6294,7 @@ msgstr "المشهد الحالي" #: editor/editor_settings.cpp msgid "Line Length Guideline Color" -msgstr "" +msgstr "لون إرشاد طول السطر" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -6284,7 +6303,7 @@ msgstr "مُعلّم التركيب Syntax" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Number Color" -msgstr "" +msgstr "لون الرقم" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -6313,11 +6332,11 @@ msgstr "نقاط التكسّر" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Executing Line Color" -msgstr "" +msgstr "لون سطر التنفيذ" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Code Folding Color" -msgstr "" +msgstr "لون الكود القابل للطي" #: editor/editor_settings.cpp #, fuzzy @@ -6632,7 +6651,7 @@ msgstr "" #: editor/fileserver/editor_file_server.cpp msgid "File Server" -msgstr "" +msgstr "خادم الملفات" #: editor/fileserver/editor_file_server.cpp #: editor/plugins/version_control_editor_plugin.cpp @@ -6998,11 +7017,11 @@ msgstr "إدارة المجموعات" #: editor/import/editor_import_collada.cpp msgid "Collada" -msgstr "" +msgstr "كولادا (Collada)" #: editor/import/editor_import_collada.cpp msgid "Use Ambient" -msgstr "" +msgstr "استخدم Ambient" #: editor/import/resource_importer_bitmask.cpp #, fuzzy @@ -7012,7 +7031,7 @@ msgstr "أنشئ مجلد" #: editor/import/resource_importer_bitmask.cpp #: servers/audio/effects/audio_effect_compressor.cpp msgid "Threshold" -msgstr "" +msgstr "عتبة" #: editor/import/resource_importer_csv_translation.cpp #: editor/import/resource_importer_layered_texture.cpp @@ -7025,7 +7044,7 @@ msgstr "مكونات" #: editor/import/resource_importer_csv_translation.cpp msgid "Delimiter" -msgstr "" +msgstr "محدد" #: editor/import/resource_importer_layered_texture.cpp #, fuzzy @@ -7034,7 +7053,7 @@ msgstr "الوظيفة البرمجية للون." #: editor/import/resource_importer_layered_texture.cpp msgid "No BPTC If RGB" -msgstr "" +msgstr "لا BPTC إذا RGB" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/2d/cpu_particles_2d.cpp @@ -7048,7 +7067,7 @@ msgstr "أعلام" #: editor/import/resource_importer_texture.cpp scene/animation/tween.cpp #: scene/resources/texture.cpp msgid "Repeat" -msgstr "" +msgstr "كرر" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/2d/light_2d.cpp @@ -7066,12 +7085,12 @@ msgstr "الإشارات" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp msgid "Anisotropic" -msgstr "" +msgstr "تباين الخواص" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp msgid "sRGB" -msgstr "" +msgstr "sRGB (قياسي)" #: editor/import/resource_importer_layered_texture.cpp #, fuzzy @@ -7192,7 +7211,7 @@ msgstr "تخزين الملف:" #: editor/import/resource_importer_scene.cpp msgid "Use Legacy Names" -msgstr "" +msgstr "استخدم الأسماء القديمة" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp #, fuzzy @@ -7225,8 +7244,9 @@ msgid "Lightmap Texel Size" msgstr "طبخ/تجهيز-خريطة-الاضاءة" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp +#, fuzzy msgid "Skins" -msgstr "" +msgstr "سكينس (Skins)" #: editor/import/resource_importer_scene.cpp #, fuzzy @@ -7240,7 +7260,7 @@ msgstr "إفتح ملف" #: editor/import/resource_importer_scene.cpp msgid "Store In Subdir" -msgstr "" +msgstr "خزن في مجلد فرعي" #: editor/import/resource_importer_scene.cpp #, fuzzy @@ -7351,16 +7371,20 @@ 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: تم الكشف عن نقش مستخدم كخريطة نورمال (NormalMap) في 3D. تمكين ضغط نقش " +"الأحمر والأخضر لتقليل استخدام الذاكرة (يتم تجاهل القناة الزرقاء)." #: editor/import/resource_importer_texture.cpp msgid "" "%s: Texture detected as used in 3D. Enabling filter, repeat, mipmap " "generation and VRAM texture compression." msgstr "" +"%s: تم الكشف عن نقش مستخدم في 3D. تمكين المرشح والتكرار وتوليد خريطة-الرسمة-" +"بدقات-متعددة (mipmap) وضغط نقش VRAM." #: editor/import/resource_importer_texture.cpp msgid "2D, Detect 3D" -msgstr "" +msgstr "2D، والكشف عن 3D" #: editor/import/resource_importer_texture.cpp #, fuzzy @@ -7369,7 +7393,7 @@ msgstr "البكسيلات الأساسية (Solid Pixels)" #: editor/import/resource_importer_texture.cpp scene/resources/texture.cpp msgid "Lossy Quality" -msgstr "" +msgstr "جودة ضائعة (Lossy)" #: editor/import/resource_importer_texture.cpp #, fuzzy @@ -7378,14 +7402,14 @@ msgstr "تحديد الوضع" #: editor/import/resource_importer_texture.cpp msgid "BPTC LDR" -msgstr "" +msgstr "BPTC LDR" #: editor/import/resource_importer_texture.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/2d/cpu_particles_2d.cpp #: scene/2d/mesh_instance_2d.cpp scene/2d/multimesh_instance_2d.cpp #: scene/2d/particles_2d.cpp scene/2d/sprite.cpp scene/resources/style_box.cpp msgid "Normal Map" -msgstr "" +msgstr "خريطة عادية" #: editor/import/resource_importer_texture.cpp #, fuzzy @@ -7394,7 +7418,7 @@ msgstr "المعالجة-اللاحقة Post-Process" #: editor/import/resource_importer_texture.cpp msgid "Fix Alpha Border" -msgstr "" +msgstr "إصلاح حدود ألفا" #: editor/import/resource_importer_texture.cpp #, fuzzy @@ -7403,7 +7427,7 @@ msgstr "تعديل مُتعدد السطوح" #: editor/import/resource_importer_texture.cpp msgid "Hdr As Srgb" -msgstr "" +msgstr "Hdr As Srgb" #: editor/import/resource_importer_texture.cpp #, fuzzy @@ -7421,7 +7445,7 @@ msgstr "الحد الأقصى للحجم" #: editor/import/resource_importer_texture.cpp msgid "Detect 3D" -msgstr "" +msgstr "كشف 3D" #: editor/import/resource_importer_texture.cpp #, fuzzy @@ -7433,6 +7457,8 @@ msgid "" "Warning, no suitable PC VRAM compression enabled in Project Settings. This " "texture will not display correctly on PC." msgstr "" +"تحذير، لم يتم تمكين ضغط VRAM مناسب للكمبيوتر الشخصي في إعدادات المشروع. لن " +"يتم عرض هذا النقش بشكل صحيح على جهاز الكمبيوتر." #: editor/import/resource_importer_texture_atlas.cpp #, fuzzy @@ -7451,7 +7477,7 @@ msgstr "تحديد منطقة البلاط" #: editor/import/resource_importer_texture_atlas.cpp msgid "Trim Alpha Border From Region" -msgstr "" +msgstr "تقليم حدود ألفا من المنطقة" #: editor/import/resource_importer_wav.cpp scene/2d/physics_body_2d.cpp #, fuzzy @@ -7460,12 +7486,12 @@ msgstr "أنشر بإجبار" #: editor/import/resource_importer_wav.cpp msgid "8 Bit" -msgstr "" +msgstr "8 بت" #: editor/import/resource_importer_wav.cpp main/main.cpp #: modules/mono/editor/csharp_project.cpp modules/mono/mono_gd/gd_mono.cpp msgid "Mono" -msgstr "" +msgstr "احاديه" #: editor/import/resource_importer_wav.cpp #, fuzzy @@ -7479,7 +7505,7 @@ msgstr "عقدة الخلط" #: editor/import/resource_importer_wav.cpp msgid "Trim" -msgstr "" +msgstr "تقليم" #: editor/import/resource_importer_wav.cpp #, fuzzy @@ -7596,7 +7622,7 @@ msgstr "محلي" #: editor/inspector_dock.cpp msgid "Localization not available for current language." -msgstr "" +msgstr "الترجمة غير متوفرة للغة الحالية." #: editor/inspector_dock.cpp msgid "Copy Properties" @@ -8045,11 +8071,20 @@ msgid "New Anim" msgstr "رسم متحرك جديدة" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "إنشاء رسوم متحركة جديدة" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "تغيير إسم الرسم المتحرك:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "إعادة تسمية الرسم المتحرك" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "مسح الرسم المتحرك؟" @@ -8067,11 +8102,6 @@ msgid "Animation name already exists!" msgstr "إسم الرسم المتحرك موجود بالفعل!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "إعادة تسمية الرسم المتحرك" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "تكرار الرسم المتحرك" @@ -8215,10 +8245,6 @@ msgid "Pin AnimationPlayer" msgstr "تثبيت مُشغّل الرسوميات المتحركة" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "إنشاء رسوم متحركة جديدة" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "إسم الرسم المتحرك:" @@ -8473,7 +8499,7 @@ msgstr "الفلترة..." #: editor/plugins/asset_library_editor_plugin.cpp scene/main/http_request.cpp msgid "Use Threads" -msgstr "" +msgstr "استخدم خطوط المعالجة" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Contents:" @@ -8706,7 +8732,7 @@ msgstr "أختبار" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed to get repository configuration." -msgstr "" +msgstr "فشل الحصول على إعدادات الأرشيف." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Assets ZIP File" @@ -9657,7 +9683,7 @@ msgstr "الأيقونة" #: editor/plugins/item_list_editor_plugin.cpp msgid "ID" -msgstr "" +msgstr "بطاقة تعريف" #: editor/plugins/item_list_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp @@ -10733,11 +10759,11 @@ msgstr "توقف" #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp #: editor/script_editor_debugger.cpp msgid "Continue" -msgstr "استمرار" +msgstr "يكمل" #: editor/plugins/script_editor_plugin.cpp msgid "Keep Debugger Open" -msgstr "إبقاء منُقتح الأخطاء البرمجية مفتوحاً" +msgstr "إبقاء المصحح مفتوحًا" #: editor/plugins/script_editor_plugin.cpp msgid "Debug with External Editor" @@ -18829,6 +18855,11 @@ msgid "The package must have at least one '.' separator." msgstr "يجب أن تتضمن الرزمة على الأقل واحد من الفواصل '.' ." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "قص العُقد" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18837,6 +18868,16 @@ msgstr "" msgid "Export Format" msgstr "مسار التصدير" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "حجم الخطوط:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "الهدف" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18880,16 +18921,6 @@ msgstr "تفحص النمذجة السابقة" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "حجم الخطوط:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "الهدف" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19149,7 +19180,7 @@ msgstr "يجب تفعيل \"Use Custom Build\" لإستخدام الإضافات #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Hand Tracking\" تكون صالحة فقط عندما يكون وضع ال \"Xr Mode\"هو \"Oculus " @@ -19157,7 +19188,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "\"Hand Tracking\" تكون صالحة فقط عندما يكون وضع ال \"Xr Mode\"هو \"Oculus " "Mobile VR\"." @@ -19171,22 +19202,43 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "يصبح خيار \"تصدير ABB\" صالحاً فقط عندما يتم اختيار \"استعمال تصدير مخصص " "Custom Build\"." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "يصبح خيار \"تصدير ABB\" صالحاً فقط عندما يتم اختيار \"استعمال تصدير مخصص " "Custom Build\"." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "إصدار \"حزمة التطوير البرمجية المستهدفة\" يجب أن يكون أعلى من أو يساوي إصدار " "\"Min Sdk\"." @@ -20859,7 +20911,7 @@ msgstr "تكبير" msgid "Custom Viewport" msgstr "ساحة رؤية واحدة" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21631,11 +21683,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "تعديل الإتصال:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "الربط" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "اختر المسافة:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "اختر المسافة:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "إعدادات متقدمة" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "تفعيل" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21653,16 +21737,6 @@ msgstr "القلب أفقياً" msgid "Max Speed" msgstr "السرعة:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "اختر المسافة:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "تفعيل" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -22929,6 +23003,13 @@ msgstr "" msgid "Transform Normals" msgstr "أجهض التحول." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25088,6 +25169,11 @@ msgstr "مجلد:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "المحدد فقط" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "تفعيل" @@ -25491,17 +25577,6 @@ msgid "Viewport Path" msgstr "مسار التصدير" #: scene/main/viewport.cpp -msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"لم يتم تعيين منفذ العرض هذا كهدف عرض. إذا كنت تنوي عرض محتوياته مباشرة على " -"الشاشة ، اجعله تابعًا لعنصر تحكم حتى يتمكن من الحصول على الحجم. خلاف ذلك ، " -"اجعلها RenderTarget وقم بتعيين نسيجها الداخلي لبعض العقد لعرضها." - -#: scene/main/viewport.cpp #, fuzzy msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " @@ -25509,6 +25584,15 @@ msgid "" msgstr "ينبغي أن يكون حجم إطار العرض أكبر من 0 ليتم الإخراج البصري لأي شيء." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27264,6 +27348,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "توليد AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "المُعادل:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/az.po b/editor/translations/az.po index 6e8dfbf1f3..3701234f3d 100644 --- a/editor/translations/az.po +++ b/editor/translations/az.po @@ -407,6 +407,11 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Siqnalları filtirlə" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5396,6 +5401,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Ölçmə seçimi" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7731,11 +7741,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7753,11 +7772,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7900,10 +7914,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18002,6 +18012,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Funksiyalar:" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18010,6 +18025,14 @@ msgstr "" msgid "Export Format" msgstr "3D Transformasya izi" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18046,14 +18069,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -msgid "Target SDK" -msgstr "" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18279,12 +18294,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18293,17 +18308,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19848,7 +19883,7 @@ msgstr "Yaxınlaşdır" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20521,35 +20556,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Əlaqəni redaktə edin:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Target Desired Distance" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Pathfinding" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Path Desired Distance" +msgstr "Quraşdır" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Qabaqcıl" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy msgid "Avoidance Enabled" msgstr "Siqnalları filtirlə" +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Neighbors" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -21650,6 +21706,13 @@ msgstr "" msgid "Transform Normals" msgstr "3D Transformasya izi" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23617,6 +23680,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Yalnız Seçim" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Siqnalları filtirlə" @@ -23983,16 +24051,17 @@ msgstr "Yol" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25610,6 +25679,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "%s növünü dəyişdirin" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/bg.po b/editor/translations/bg.po index 9370a48a79..105aad00db 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -431,6 +431,11 @@ msgstr "Мета" msgid "Command" msgstr "Command" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Включване" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5480,6 +5485,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Настройки" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7889,11 +7899,20 @@ msgid "New Anim" msgstr "Нова анимация" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Създаване на нова анимация" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Промяна на името на анимацията:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Преименуване на анимацията" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Изтриване на анимацията?" @@ -7911,11 +7930,6 @@ msgid "Animation name already exists!" msgstr "Вече съществува анимация с това име!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Преименуване на анимацията" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Дублиране на анимацията" @@ -8060,10 +8074,6 @@ msgid "Pin AnimationPlayer" msgstr "Закачане на AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Създаване на нова анимация" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Име на анимацията:" @@ -18343,6 +18353,11 @@ msgid "The package must have at least one '.' separator." msgstr "Пакетът трябва да има поне един разделител „.“ (точка)." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Персонализиран обект" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18351,6 +18366,16 @@ msgstr "" msgid "Export Format" msgstr "Път за изнасяне" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Размер на контура:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Принудително изпращане" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18392,16 +18417,6 @@ msgstr "Предишен раздел" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Размер на контура:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Принудително изпращане" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18647,12 +18662,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18662,22 +18677,45 @@ msgstr "" "собствена компилация“." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "„Мин. версия на SDK“ може да се променя само когато „Използване на собствена " "компилация“ е включено." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "„Целева версия на SDK“ може да се променя само когато „Използване на " "собствена компилация“ е включено." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "„Целева версия на SDK“ трябва да бъде по-голяма или равна на „Мин. версия на " "SDK“." @@ -20333,7 +20371,7 @@ msgstr "Приближаване" msgid "Custom Viewport" msgstr "1 прозорец за изглед" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21072,11 +21110,42 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Редактиране на Връзката:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Отстъп" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Изберете главна сцена" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Max Distance" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Включване" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Включване" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21094,15 +21163,6 @@ msgstr "Хоризонтала:" msgid "Max Speed" msgstr "Скорост:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Включване" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -22294,6 +22354,13 @@ msgstr "" msgid "Transform Normals" msgstr "Константа за трансформация." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24372,6 +24439,11 @@ msgstr "Папка:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Само избраното" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Включване" @@ -24769,16 +24841,17 @@ msgstr "Път за изнасяне" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26510,6 +26583,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Отместване:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/bn.po b/editor/translations/bn.po index 265a7fb58a..0e99518ac1 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -12,13 +12,14 @@ # Sagen Soren <sagensoren03@gmail.com>, 2020. # Hasibul Hasan <d1hasib@yahoo.com>, 2020. # saitama <atik.wowspace@gmail.com>, 2022. +# Joysankar Majumdar <joymajumdar15828@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-12 13:19+0000\n" -"Last-Translator: saitama <atik.wowspace@gmail.com>\n" +"PO-Revision-Date: 2022-06-29 10:04+0000\n" +"Last-Translator: Joysankar Majumdar <joymajumdar15828@gmail.com>\n" "Language-Team: Bengali <https://hosted.weblate.org/projects/godot-engine/" "godot/bn/>\n" "Language: bn\n" @@ -26,7 +27,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.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -234,9 +235,8 @@ msgid "Remote FS" msgstr "অপসারণ করুন" #: core/io/file_access_network.cpp -#, fuzzy msgid "Page Size" -msgstr "পাতা: " +msgstr "পাতা" #: core/io/file_access_network.cpp msgid "Page Read Ahead" @@ -421,6 +421,11 @@ msgstr "" msgid "Command" msgstr "সম্প্রদায়" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "স্থির/বদ্ধ ফ্রেম %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5807,6 +5812,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "নির্বাচিত সমূহ অপসারণ করুন" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8404,11 +8414,20 @@ msgid "New Anim" msgstr "নতুন অ্যানিমেশন" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "নতুন অ্যানিমেশন তৈরি করুন" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "অ্যানিমেশনের নাম পরিবর্তন করুন:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "অ্যানিমেশন পুনঃনামকরণ করুন" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Delete অ্যানিমেশন?" @@ -8428,11 +8447,6 @@ msgid "Animation name already exists!" msgstr "ভুল: অ্যানিমেশনের নাম ইতিমধ্যেই বিদ্যমান!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "অ্যানিমেশন পুনঃনামকরণ করুন" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "অ্যানিমেশন প্রতিলিপি করুন" @@ -8584,10 +8598,6 @@ msgid "Pin AnimationPlayer" msgstr "অ্যানিমেশন প্রতিলেপন করুন" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "নতুন অ্যানিমেশন তৈরি করুন" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "অ্যানিমেশনের নাম:" @@ -19778,6 +19788,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "নোড-সমূহ কর্তন/কাট করুন" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -19786,6 +19801,16 @@ msgstr "" msgid "Export Format" msgstr "এক্সপোর্টের প্রিসেট:" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "প্রান্তরেখার আকার:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "টার্গেট" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -19827,16 +19852,6 @@ msgstr "পূর্ববর্তী ইন্সট্যান্স পর msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "প্রান্তরেখার আকার:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "টার্গেট" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -20083,12 +20098,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -20097,17 +20112,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -21776,7 +21811,7 @@ msgstr "সম্প্রসারিত করুন (জুম্ ইন)" msgid "Custom Viewport" msgstr "১ টি Viewport" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -22526,11 +22561,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "সংযোগসমূহ সম্পাদন করুন" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "যথেচ্ছ ঘূর্ণায়ন:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "ইন্সট্যান্স:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "ইন্সট্যান্স:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "অ্যানিমেশনের সিদ্ধান্তসমূহ" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "সক্রিয় করুন" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -22547,16 +22614,6 @@ msgstr "" msgid "Max Speed" msgstr "গতি (FPS):" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "ইন্সট্যান্স:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "সক্রিয় করুন" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -23779,6 +23836,13 @@ msgstr "" msgid "Transform Normals" msgstr "রুপান্তর নিষ্ফলা করা হয়েছে।" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25907,6 +25971,11 @@ msgstr "লাইন-এ যান" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "শুধুমাত্র নির্বাচিতসমূহ" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "সক্রিয় করুন" @@ -26308,20 +26377,17 @@ msgstr "এক্সপোর্টের প্রিসেট:" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" -"এই viewport টি render target হিসেবে নির্ধারন করা নেই। আপনি যদি এর বস্তু-সামগ্রী " -"সরাসরি পর্দায় দেখাতে চান, এটিকে যেকোনো Control এর অংশভূত করুন যেনো এটি একটি " -"আকার ধারণ করতে পারে। অন্যথায়, এটিকে একটি RenderTarget করুন এবং এর অভ্যন্তরীণ " -"দৃশ্যাবলিকে (texture) দৃশ্যমান করতে কোনো নোডে হস্তান্তর করুন।" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -28087,6 +28153,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "AABB উৎপন্ন করুন" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "অফসেট/ভারসাম্য:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/br.po b/editor/translations/br.po index 3d1ca48f3f..101a0f7581 100644 --- a/editor/translations/br.po +++ b/editor/translations/br.po @@ -397,6 +397,11 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Aktivañ ar Roudenn" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5305,6 +5310,10 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +msgid "Drag And Drop Selection" +msgstr "" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7611,11 +7620,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7633,11 +7651,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7780,10 +7793,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -17814,6 +17823,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Fonksionoù :" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -17822,6 +17836,14 @@ msgstr "" msgid "Export Format" msgstr "Roudenn Treuzfurmadur 3D" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -17858,14 +17880,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -msgid "Target SDK" -msgstr "" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18088,12 +18102,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18102,17 +18116,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19639,7 +19673,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20303,35 +20337,55 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Tro Fiñvskeudenn" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Target Desired Distance" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Pathfinding" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Path Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Aktivañ ar Roudenn" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy msgid "Avoidance Enabled" msgstr "Aktivañ ar Roudenn" +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Neighbors" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -21421,6 +21475,13 @@ msgstr "" msgid "Transform Normals" msgstr "Roudenn Treuzfurmadur 3D" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23361,6 +23422,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Aktivañ ar Roudenn" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Aktivañ ar Roudenn" @@ -23719,16 +23785,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25314,6 +25381,14 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index 380a247ac7..c9726505d3 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -22,7 +22,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-19 11:52+0000\n" +"PO-Revision-Date: 2022-06-26 16:15+0000\n" "Last-Translator: Roger VC <rogervilarasau@gmail.com>\n" "Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/" "godot/ca/>\n" @@ -409,6 +409,11 @@ msgstr "Meta" msgid "Command" msgstr "Comunitat" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fotograma de Física %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -2813,7 +2818,7 @@ msgstr "Completat amb èxit." #: editor/editor_export.cpp msgid "Failed." -msgstr "Fallit:" +msgstr "Ha fallat:" #: editor/editor_export.cpp msgid "Storing File:" @@ -5616,6 +5621,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Elimina la Selecció del GridMap" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8100,11 +8110,20 @@ msgid "New Anim" msgstr "Nova Animació" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Crea una Nova Animació" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Modifica el Nom de l'Animació:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Reanomena l'Animació" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Eliminar l'Animació?" @@ -8122,11 +8141,6 @@ msgid "Animation name already exists!" msgstr "El nom d'animació ja existeix!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Reanomena l'Animació" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplica l'Animació" @@ -8271,10 +8285,6 @@ msgid "Pin AnimationPlayer" msgstr "Fixar AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Crea una Nova Animació" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nom de l'Animació:" @@ -19209,6 +19219,11 @@ msgid "The package must have at least one '.' separator." msgstr "El paquet ha de tenir com a mínim un separador '. '." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Talla els Nodes" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -19217,6 +19232,16 @@ msgstr "" msgid "Export Format" msgstr "Camí d'exportació" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Mida del Contorn:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Objectiu" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -19259,16 +19284,6 @@ msgstr "Inspecciona la Instància anterior" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Mida del Contorn:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Objectiu" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19523,12 +19538,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19537,17 +19552,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -21234,7 +21269,7 @@ msgstr "Apropa" msgid "Custom Viewport" msgstr "1 Vista" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21992,11 +22027,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Editar Connexió:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Vinculació" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Trieu la distància:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Trieu la distància:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Avançat" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Activar" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -22014,16 +22081,6 @@ msgstr "Volteja Horitzontalment" msgid "Max Speed" msgstr "Velocitat (FPS):" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Trieu la distància:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Activar" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -23278,6 +23335,13 @@ msgstr "" msgid "Transform Normals" msgstr "S'ha interromput la Transformació ." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25432,6 +25496,11 @@ msgstr "Directori:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Selecció Només" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Activar" @@ -25839,20 +25908,17 @@ msgstr "Camí d'exportació" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" -"La Vista (Viewport) no és la Destinació de Renderització (render target). " -"Per mostrar-ne el contingut, especifiqueu-la com a filla d'un Control de " -"forma per tal d'obtenir-ne la mida. Altrament, establiu-la com a Destinació " -"de Renderització i assigneu-ne la textura interna a algun node." #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -27625,6 +27691,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Generant AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "òfset:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/cs.po b/editor/translations/cs.po index 9c3aea1d27..0c0b8b63ca 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -452,6 +452,11 @@ msgstr "" msgid "Command" msgstr "Komunita" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fyzická Klávesa" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5667,6 +5672,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "GridMap Vyplnit výběr" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8136,11 +8146,20 @@ msgid "New Anim" msgstr "Nová animace" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Vytvořit novou animaci" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Změnit název animace:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Přejmenovat animaci" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Smazat animaci?" @@ -8158,11 +8177,6 @@ msgid "Animation name already exists!" msgstr "Jméno animace už existuje!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Přejmenovat animaci" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplikovat animaci" @@ -8306,10 +8320,6 @@ msgid "Pin AnimationPlayer" msgstr "Připnout AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Vytvořit novou animaci" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Jméno animace:" @@ -18952,6 +18962,11 @@ msgid "The package must have at least one '.' separator." msgstr "Balíček musí mít alespoň jeden '.' oddělovač." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Vyjmout uzly" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18960,6 +18975,16 @@ msgstr "" msgid "Export Format" msgstr "Exportovat cestu" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Velikost obrysu:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Cíl" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -19002,16 +19027,6 @@ msgstr "Zkontrolovat předchozí instanci" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Velikost obrysu:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Cíl" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19261,7 +19276,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Hand Tracking\" je platné pouze v případě, že \"Režim Xr\" má hodnotu " @@ -19269,7 +19284,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "\"Hand Tracking\" je platné pouze v případě, že \"Režim Xr\" má hodnotu " "\"Oculus Mobile VR\"." @@ -19283,22 +19298,42 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Export AAB\" je validní pouze v případě, že je povolena možnost \"Použít " "vlastní sestavu\"." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Export AAB\" je validní pouze v případě, že je povolena možnost \"Použít " "vlastní sestavu\"." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20968,7 +21003,7 @@ msgstr "Zvětšit" msgid "Custom Viewport" msgstr "1 výřez" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21727,11 +21762,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Upravit spojení:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Vazba" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Vybrat vzdálenost:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Vybrat vzdálenost:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Pokročilé" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Povolit" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21749,16 +21816,6 @@ msgstr "Převrátit horizontálně" msgid "Max Speed" msgstr "Rychlost:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Vybrat vzdálenost:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Povolit" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -23003,6 +23060,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformace zrušena." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25161,6 +25225,11 @@ msgstr "Složka:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Pouze výběr" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Povolit" @@ -25566,18 +25635,6 @@ msgid "Viewport Path" msgstr "Exportovat cestu" #: scene/main/viewport.cpp -msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Tento viewport není nastaven jako render target. Pokud chcete jeho obsah " -"zobrazit přímo na obrazovku, musíte ho nastavit jako dítě uzlu Control, aby " -"mohl získat velikost. Jinak ho nastavte jako render target a přiřaďte jeho " -"vnitřní texturu nějakému uzlu k zobrazení." - -#: scene/main/viewport.cpp #, fuzzy msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " @@ -25586,6 +25643,15 @@ msgstr "" "Velikost pohledu musí být větší než 0, aby bylo možné cokoliv renderovat." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27355,6 +27421,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Generování AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Offset(Posun):" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/da.po b/editor/translations/da.po index a90d207941..3b19f24ec8 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -423,6 +423,11 @@ msgstr "" msgid "Command" msgstr "Fællesskab" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fysik Frame %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5720,6 +5725,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "GridMap Slet Markerede" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8233,11 +8243,20 @@ msgid "New Anim" msgstr "Ny Animation" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Opret Ny Animation" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Ændre Animation Navn:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Omdøb animation" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Slet Animation?" @@ -8257,11 +8276,6 @@ msgid "Animation name already exists!" msgstr "FEJL: Animationsnavn eksisterer allerede!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Omdøb animation" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Lav en kopi af animation" @@ -8409,10 +8423,6 @@ msgid "Pin AnimationPlayer" msgstr "Fastgør AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Opret Ny Animation" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Animations Navn:" @@ -19157,6 +19167,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Indsæt Node" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -19165,6 +19180,16 @@ msgstr "" msgid "Export Format" msgstr "Eksporter Projekt" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Skrifttype Størrelse:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Tidsskala Node" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -19203,16 +19228,6 @@ msgstr "Forrige fane" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Skrifttype Størrelse:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Tidsskala Node" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19458,12 +19473,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19472,17 +19487,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -21142,7 +21177,7 @@ msgstr "Zoom Ind" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21866,34 +21901,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Redigér Forbindelse:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Konstant" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Vælg en Main Scene" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Balanceret" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Aktivér" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Aktivér" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -23078,6 +23135,13 @@ msgstr "" msgid "Transform Normals" msgstr "Opret Poly" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25158,6 +25222,11 @@ msgstr "Opret Mappe" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Kun Valgte" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Aktivér" @@ -25553,20 +25622,17 @@ msgstr "Eksporter Projekt" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" -"Denne viewport er ikke angivet som render target. Hvis du har tænkt dig for " -"at vise dens indhold direkte til skærmen, gør det til et barn af Control, så " -"den kan opnå en størrelse. Ellers gør den til en RenderTarget og tildel dens " -"indre textur til en node så den kan vises." #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -27298,6 +27364,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Fjern Template" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/de.po b/editor/translations/de.po index 795dbd5328..f0c79cda0f 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -87,7 +87,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-03 02:51+0000\n" +"PO-Revision-Date: 2022-06-30 16:42+0000\n" "Last-Translator: So Wieso <sowieso@dukun.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" @@ -96,7 +96,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -387,9 +387,8 @@ msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Nicht genügend Bytes zur Dekodierung oder ungültiges Format." #: core/math/expression.cpp -#, fuzzy msgid "Invalid input %d (not passed) in expression" -msgstr "Ungültige Eingabe %i (nicht übergeben) im Ausdruck" +msgstr "Ungültige Eingabe %d (nicht übergeben) im Ausdruck" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -434,14 +433,12 @@ msgid "Max Size (KB)" msgstr "Maximalgröße (KB)" #: core/os/input.cpp -#, fuzzy msgid "Mouse Mode" -msgstr "Bewegungsmodus" +msgstr "Mausmodus" #: core/os/input.cpp -#, fuzzy msgid "Use Accumulated Input" -msgstr "Eingang löschen" +msgstr "Kumulierte Eingabe verwenden" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: servers/audio_server.cpp @@ -468,6 +465,11 @@ msgstr "Meta" msgid "Command" msgstr "Befehl" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (physisch)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -718,14 +720,12 @@ msgid "Script Templates Search Path" msgstr "Suchpfad für Skriptvorlagen" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Autoload On Startup" -msgstr "Autoladen beim Start" +msgstr "Automatisches Laden der Versionskontrolle beim Start" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Plugin Name" -msgstr "Versionsverwaltung" +msgstr "Name des Plugins zur Versionskontrolle" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -1358,19 +1358,16 @@ msgid "Remove this track." msgstr "Diese Spur entfernen." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Time (s):" -msgstr "Zeit (s): " +msgstr "Zeit (s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Position:" -msgstr "Position" +msgstr "Position:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rotation:" -msgstr "Rotation" +msgstr "Rotation:" #: editor/animation_track_editor.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1387,44 +1384,36 @@ msgid "Type:" msgstr "Typ:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "(Invalid, expected type: %s)" -msgstr "Ungültige Exportvorlage:" +msgstr "(Ungültig, erwarteter Typ: %s)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Easing:" -msgstr "Glätten Ein-Aus" +msgstr "Glätten:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "In-Handle:" -msgstr "Eingehender Handle" +msgstr "Eingehender Handle:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Out-Handle:" -msgstr "Ausgehender Handle" +msgstr "Ausgehender Handle:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Stream:" -msgstr "Stream" +msgstr "Stream:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Start (s):" -msgstr "Neu starten (s):" +msgstr "Start (s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "End (s):" -msgstr "Einblenden (s):" +msgstr "Ende (s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation Clip:" -msgstr "Animationen:" +msgstr "Animations-Clip:" #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" @@ -1639,9 +1628,8 @@ msgid "Add Method Track Key" msgstr "Methodenaufrufsspurschlüssel hinzufügen" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Method not found in object:" -msgstr "Methode nicht im Objekt gefunden: " +msgstr "Methode nicht in Objekt gefunden:" #: editor/animation_track_editor.cpp msgid "Anim Move Keys" @@ -2254,7 +2242,7 @@ msgstr "Öffnen" #: editor/dependency_editor.cpp msgid "Owners of: %s (Total: %d)" -msgstr "" +msgstr "Besitzer von: %s (Insgesamt: %d)" #: editor/dependency_editor.cpp msgid "" @@ -2615,9 +2603,8 @@ msgid "There is no '%s' file." msgstr "Datei ‚%s‘ existiert nicht." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Layout:" -msgstr "Layout" +msgstr "Layout:" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -2820,22 +2807,19 @@ msgstr "Wählen" #: editor/editor_export.cpp msgid "Project export for platform:" -msgstr "" +msgstr "Projektexport für Plattform:" #: editor/editor_export.cpp -#, fuzzy msgid "Completed with errors." -msgstr "Dateipfade vervollständigen" +msgstr "Fertiggestellt mit Fehlern." #: editor/editor_export.cpp -#, fuzzy msgid "Completed successfully." -msgstr "Paket wurde erfolgreich installiert!" +msgstr "Erfolgreich fertiggestellt." #: editor/editor_export.cpp -#, fuzzy msgid "Failed." -msgstr "Fehlgeschlagen:" +msgstr "Fehlgeschlagen." #: editor/editor_export.cpp msgid "Storing File:" @@ -2850,29 +2834,24 @@ msgid "Packing" msgstr "Packe" #: editor/editor_export.cpp -#, fuzzy msgid "Save PCK" -msgstr "Speichern unter" +msgstr "PCK speichern" #: editor/editor_export.cpp -#, fuzzy msgid "Cannot create file \"%s\"." -msgstr "Ordner konnte nicht erstellt werden." +msgstr "Datei „%s“ konnte nicht erstellt werden." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to export project files." -msgstr "Projektdateien konnten nicht exportiert werden" +msgstr "Projektdateien konnten nicht exportiert werden." #: editor/editor_export.cpp -#, fuzzy msgid "Can't open file to read from path \"%s\"." -msgstr "Datei kann nicht zum Schreiben geöffnet werden:" +msgstr "Datei im Pfad „%s“kann nicht zum Lesen geöffnet werden." #: editor/editor_export.cpp -#, fuzzy msgid "Save ZIP" -msgstr "Speichern unter" +msgstr "ZIP speichern" #: editor/editor_export.cpp msgid "" @@ -2993,30 +2972,25 @@ msgid "Custom release template not found." msgstr "Selbst konfigurierte Release-Exportvorlage nicht gefunden." #: editor/editor_export.cpp -#, fuzzy msgid "Prepare Template" -msgstr "Vorlagen verwalten" +msgstr "Vorlage vorbereiten" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "The given export path doesn't exist." -msgstr "Der angegebene Export-Pfad existiert nicht:" +msgstr "Der angegebene Export-Pfad existiert nicht." #: editor/editor_export.cpp platform/javascript/export/export.cpp -#, fuzzy msgid "Template file not found: \"%s\"." -msgstr "Vorlagendatei nicht gefunden:" +msgstr "Vorlagendatei nicht gefunden: „%s“." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to copy export template." -msgstr "Ungültige Exportvorlage:" +msgstr "Fehler beim Kopieren der Exportvorlage." #: editor/editor_export.cpp platform/windows/export/export.cpp #: platform/x11/export/export.cpp -#, fuzzy msgid "PCK Embedding" -msgstr "Versatz" +msgstr "PCK-Einbettung" #: editor/editor_export.cpp msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." @@ -5206,9 +5180,8 @@ msgid "Size:" msgstr "Größe:" #: editor/editor_properties_array_dict.cpp -#, fuzzy msgid "Page:" -msgstr "Seite: " +msgstr "Seite:" #: editor/editor_properties_array_dict.cpp #: editor/plugins/theme_editor_plugin.cpp @@ -5304,9 +5277,8 @@ msgstr "" "Im Exportmenü kann eine Vorlage als ausführbar erstellt oder markiert werden." #: editor/editor_run_native.cpp -#, fuzzy msgid "Project Run" -msgstr "Projekt" +msgstr "Projektdurchlauf" #: editor/editor_run_script.cpp msgid "Write your logic in the _run() method." @@ -5588,6 +5560,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "Extramaustasten blättern durch Verlauf" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "GridMap-Auswahl" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "Aussehen" @@ -7210,9 +7187,8 @@ msgid "Generating Lightmaps" msgstr "Generiere Lightmaps" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Generating for Mesh:" -msgstr "Generierung für Mesh: " +msgstr "Generierung für Mesh:" #: editor/import/resource_importer_scene.cpp msgid "Running Custom Script..." @@ -7245,12 +7221,17 @@ 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: Verwendung der Textur als Normalen-Map in 3D festgestellt. Rot-Grün-" +"Texturkompression wurde aktiviert um Speicherverbrauch zu reduzieren (der " +"blaue Kanal wird verworfen)." #: editor/import/resource_importer_texture.cpp msgid "" "%s: Texture detected as used in 3D. Enabling filter, repeat, mipmap " "generation and VRAM texture compression." msgstr "" +"%s: Verwendung der Textur in 3D festgestellt. Filter, Wiederholung, Mipmap-" +"Erzeugung und VRAM-Texturkompression wurden aktiviert." #: editor/import/resource_importer_texture.cpp msgid "2D, Detect 3D" @@ -7931,11 +7912,20 @@ msgid "New Anim" msgstr "Neue Animation" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Neue Animation erstellen" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Animationsname ändern:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Animation umbenennen" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Animation löschen?" @@ -7953,11 +7943,6 @@ msgid "Animation name already exists!" msgstr "Animationsname existiert bereits!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Animation umbenennen" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Animation duplizieren" @@ -8100,10 +8085,6 @@ msgid "Pin AnimationPlayer" msgstr "Animationsspieler anheften" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Neue Animation erstellen" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Animationsname:" @@ -8219,9 +8200,8 @@ msgid "Set the end animation. This is useful for sub-transitions." msgstr "End-Animation festlegen. Hilfreich bei Sub-Transitionen." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition:" -msgstr "Übergang: " +msgstr "Übergang:" #: editor/plugins/animation_state_machine_editor.cpp msgid "Play Mode:" @@ -9989,9 +9969,8 @@ msgid "Volume" msgstr "Volumen" #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Emission Source:" -msgstr "Emissionsquelle: " +msgstr "Emissionsquelle:" #: editor/plugins/particles_editor_plugin.cpp msgid "A processor material of type 'ParticlesMaterial' is required." @@ -11087,15 +11066,13 @@ msgstr "Verschiebung" #. TRANSLATORS: Refers to changing the scale of a node in the 3D editor. #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Scaling:" -msgstr "Skalierung: " +msgstr "Skalierung:" #. TRANSLATORS: Refers to changing the position of a node in the 3D editor. #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Translating:" -msgstr "Verschiebe: " +msgstr "Verschiebung:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." @@ -11609,9 +11586,8 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "Ungültige Geometrie, Mesh kann nicht ersetzt werden." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Convert to MeshInstance2D" -msgstr "Zu Mesh2D umwandeln" +msgstr "Zu MeshInstance2D umwandeln" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create polygon." @@ -11642,19 +11618,16 @@ msgid "Sprite" msgstr "Bild" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Simplification:" -msgstr "Vereinfachung: " +msgstr "Vereinfachung:" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Shrink (Pixels):" -msgstr "Schrumpfen (Pixel): " +msgstr "Schrumpfen (Pixel):" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Grow (Pixels):" -msgstr "Wachsen (Pixel): " +msgstr "Wachsen (Pixel):" #: editor/plugins/sprite_editor_plugin.cpp msgid "Update Preview" @@ -14250,9 +14223,8 @@ msgid "Export templates for this platform are missing:" msgstr "Export-Templates für diese Systeme fehlen:" #: editor/project_export.cpp -#, fuzzy msgid "Project Export" -msgstr "Projektgründer" +msgstr "Projektexport" #: editor/project_export.cpp msgid "Manage Export Templates" @@ -15811,9 +15783,8 @@ msgid "Attach Node Script" msgstr "Node-Skript hinzufügen" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Remote %s:" -msgstr "Fern " +msgstr "Fern %s:" #: editor/script_editor_debugger.cpp msgid "Bytes:" @@ -16788,9 +16759,8 @@ msgid "Disabled GDNative Singleton" msgstr "GDNative Singleton wurde deaktiviert" #: modules/gdnative/gdnative_library_singleton_editor.cpp -#, fuzzy msgid "Libraries:" -msgstr "Bibliotheken: " +msgstr "Bibliotheken:" #: modules/gdnative/nativescript/nativescript.cpp msgid "Class Name" @@ -17211,17 +17181,15 @@ msgid "Mask" msgstr "Maske" #: modules/gridmap/grid_map.cpp scene/2d/tile_map.cpp -#, fuzzy msgid "Bake Navigation" -msgstr "Navigation" +msgstr "Navigation backen" #: modules/gridmap/grid_map.cpp scene/2d/navigation_2d.cpp #: scene/2d/navigation_agent_2d.cpp scene/2d/navigation_polygon.cpp #: scene/2d/tile_map.cpp scene/3d/navigation.cpp scene/3d/navigation_agent.cpp #: scene/3d/navigation_mesh_instance.cpp -#, fuzzy msgid "Navigation Layers" -msgstr "Navigationsgefühl" +msgstr "Navigationsschichten" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Next Plane" @@ -17626,9 +17594,8 @@ msgstr "" "sein! Bitte entsprechendes Node anpassen." #: modules/visual_script/visual_script.cpp -#, fuzzy msgid "Node returned an invalid sequence output:" -msgstr "Node gab ungültige Sequenzausgabe zurück: " +msgstr "Node gab ungültige Sequenzausgabe zurück:" #: modules/visual_script/visual_script.cpp msgid "Found sequence bit but not the node in the stack, report bug!" @@ -17637,9 +17604,8 @@ msgstr "" "melden Sie den Bug!" #: modules/visual_script/visual_script.cpp -#, fuzzy msgid "Stack overflow with stack depth:" -msgstr "Stack-Overflow mit Stack-Tiefe: " +msgstr "Stack-Overflow mit Stack-Tiefe:" #: modules/visual_script/visual_script.cpp msgid "Visual Script" @@ -18008,18 +17974,16 @@ msgid "for (elem) in (input):" msgstr "for (Element) in (Eingabe):" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Input type not iterable:" -msgstr "Eingabetyp nicht wiederholbar: " +msgstr "Eingabetyp nicht iterierbar:" #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator became invalid" msgstr "Iterator wurde ungültig" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Iterator became invalid:" -msgstr "Iterator wurde ungültig: " +msgstr "Iterator wurde ungültig:" #: modules/visual_script/visual_script_flow_control.cpp msgid "Sequence" @@ -18170,14 +18134,12 @@ msgid "Operator" msgstr "Operator" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Invalid argument of type:" -msgstr ": Ungültiger Parameter vom Typ: " +msgstr "Ungültiges Argument vom Typ:" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Invalid arguments:" -msgstr ": Ungültige Parameter: " +msgstr "Ungültige Argumente:" #: modules/visual_script/visual_script_nodes.cpp msgid "a if cond, else b" @@ -18188,14 +18150,12 @@ msgid "Var Name" msgstr "Variablenname" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "VariableGet not found in script:" -msgstr "VariableGet nicht im Skript gefunden: " +msgstr "VariableGet nicht im Skript gefunden:" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "VariableSet not found in script:" -msgstr "VariableSet nicht im Skript gefunden: " +msgstr "VariableSet nicht im Skript gefunden:" #: modules/visual_script/visual_script_nodes.cpp msgid "Preload" @@ -18489,6 +18449,11 @@ msgid "The package must have at least one '.' separator." msgstr "Das Paket muss mindestens einen Punkt-Unterteiler ‚.‘ haben." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Einen Build verwenden" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "Einen Build verwenden" @@ -18496,6 +18461,14 @@ msgstr "Einen Build verwenden" msgid "Export Format" msgstr "Exportformat" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "Min SDK" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "Ziel SDK" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "Architekturen" @@ -18532,14 +18505,6 @@ msgstr "Vorherige Installation löschen" msgid "Code" msgstr "Code" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "Min SDK" - -#: platform/android/export/export_plugin.cpp -msgid "Target SDK" -msgstr "Ziel SDK" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "Packet" @@ -18778,15 +18743,17 @@ msgstr "" "„Use Custom Build“ muss aktiviert werden um die Plugins nutzen zu können." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "„Hand Tracking“ ist nur gültig wenn „Xr Mode“ als „Occulus Mobile VrApi“ " "oder „OpenXR“ gesetzt wurde." #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +#, fuzzy +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "„Passthrough“ ist nur gültig wenn „Xr Mode“ als „OpenXR“ gesetzt wurde." @@ -18795,40 +18762,60 @@ 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." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Das „Min Sdk“ zu ändern ist nur möglich wenn „Use Custom Build“ aktiviert " "ist." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Das „Target Sdk“ zu ändern ist nur möglich wenn „Use Custom Build“ aktiviert " "ist." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "Die Version des „Target Sdk“ muss größer gleich der des „Min Sdk“ sein." #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp #: platform/windows/export/export.cpp -#, fuzzy msgid "Code Signing" -msgstr "Codesignierendes DMG" +msgstr "Code-Signieren" #: platform/android/export/export_plugin.cpp -#, fuzzy 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 "" -"‚apksigner‘ konnte nicht gefunden werden.\n" -"Ist das Programm im Android SDK build-tools-Verzeichnis vorhanden?\n" -"Das resultierende %s ist nicht signiert." +"‚apksigner‘ konnte nicht gefunden werden. Ist die Anwendung im Android-SDK " +"build-tools-Verzeichnis vorhanden? Das resultierende %s ist nicht signiert." #: platform/android/export/export_plugin.cpp msgid "Signing debug %s..." @@ -18843,9 +18830,8 @@ msgid "Could not find keystore, unable to export." msgstr "Keystore konnte nicht gefunden werden, Export fehlgeschlagen." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not start apksigner executable." -msgstr "Unterprozess konnte nicht gestartet werden!" +msgstr "Apksigner-Anwendung konnte nicht gestartet werden." #: platform/android/export/export_plugin.cpp msgid "'apksigner' returned with error #%d" @@ -18879,9 +18865,8 @@ msgstr "" "Ungültiger Dateiname. Android APKs benötigen .apk als Dateinamenendung." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Unsupported export format!" -msgstr "Nicht unterstütztes Exportformat!\n" +msgstr "Nicht unterstütztes Exportformat!" #: platform/android/export/export_plugin.cpp msgid "" @@ -18893,28 +18878,24 @@ msgstr "" "Menü benötigt." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" -"Android-Build-Versionsinkompatibilität:\n" -" Installierte Vorlage: %s\n" -" Godot-Version: %s\n" -"Bitte Android-Build-Vorlage im ‚Projekt‘-Menü neu installieren." +"Android-Build-Versionsinkompatibilität: Installierte Vorlage: %s, Godot-" +"Version: %s. Bitte Android-Build-Vorlage über das ‚Projekt‘-Menü neu " +"installieren." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Unable to overwrite res://android/build/res/*.xml files with project name." msgstr "" -"Kann res://android/build/res/*.xml Dateien nicht mit Projektnamen " -"überschreiben" +"res://android/build/res/*.xml-Dateien können nicht mit Projektnamen " +"überschrieben werden." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files to gradle project." -msgstr "Konnte Projektdateien nicht als Gradle-Projekt exportieren\n" +msgstr "Projektdateien konnten nicht als Gradle-Projekt exportiert werden." #: platform/android/export/export_plugin.cpp msgid "Could not write expansion package file!" @@ -18925,15 +18906,13 @@ msgid "Building Android Project (gradle)" msgstr "Baue Android-Projekt (gradle)" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Building of Android project failed, check output for the error. " "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" "Bauen des Android-Projekts fehlgeschlagen, Fehlerdetails befinden ich in der " -"Textausgabe.\n" -"Alternativ befindet sich die Android-Build-Dokumentation auf docs." -"godotengine.org." +"Textausgabe. Alternativ befindet sich die Android-Build-Dokumentation auf " +"docs.godotengine.org." #: platform/android/export/export_plugin.cpp msgid "Moving output" @@ -18948,31 +18927,25 @@ msgstr "" "im Gradle Projektverzeichnis erscheinen." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Package not found: \"%s\"." -msgstr "Paket nicht gefunden: %s" +msgstr "Paket nicht gefunden: „%s“." #: platform/android/export/export_plugin.cpp msgid "Creating APK..." msgstr "Erzeuge APK…" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not find template APK to export: \"%s\"." -msgstr "" -"Konnte keine APK-Vorlage zum Exportieren finden:\n" -"%s" +msgstr "Keine APK-Vorlage zum Exportieren gefunden: „%s“." #: platform/android/export/export_plugin.cpp -#, fuzzy 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 "" "Fehlende Bibliotheken in Exportvorlage für die ausgewählten Architekturen: " -"%s.\n" -"Es muss entweder eine Exportvorlage mit den allen benötigten Bibliotheken " +"%s. Es muss entweder eine Exportvorlage mit allen benötigten Bibliotheken " "gebaut werden oder die angegebenen Architekturen müssen abgewählt werden." #: platform/android/export/export_plugin.cpp @@ -18980,9 +18953,8 @@ msgid "Adding files..." msgstr "Füge Dateien hinzu…" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files." -msgstr "Projektdateien konnten nicht exportiert werden" +msgstr "Projektdateien konnten nicht exportiert werden." #: platform/android/export/export_plugin.cpp msgid "Aligning APK..." @@ -19207,14 +19179,12 @@ msgstr "Eigene Hintergrundfarbe" #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp -#, fuzzy msgid "Prepare Templates" -msgstr "Vorlagen verwalten" +msgstr "Vorlagen vorbereiten" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Export template not found." -msgstr "Selbst konfigurierte Release-Exportvorlage nicht gefunden." +msgstr "Exportvorlage wurde nicht gefunden." #: platform/iphone/export/export.cpp msgid "App Store Team ID not specified - cannot configure the project." @@ -19238,33 +19208,28 @@ msgid "Run exported HTML in the system's default browser." msgstr "Führe exportiertes HTML im Standard-Browser des Betriebssystems aus." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not open template for export: \"%s\"." -msgstr "Konnte Vorlage nicht zum Export öffnen:" +msgstr "Vorlage zum Export konnte nicht geöffnet werden: „%s“." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Invalid export template: \"%s\"." -msgstr "Ungültige Exportvorlage:" +msgstr "Ungültige Exportvorlage: „%s“." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not write file: \"%s\"." -msgstr "Konnte Datei nicht schreiben:" +msgstr "Datei konnte nicht geschrieben werden: „%s“." #: platform/javascript/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Icon Creation" -msgstr "Symbolbildbegrenzung" +msgstr "Symbolbilderzeugung" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not read file: \"%s\"." -msgstr "Konnte Datei nicht lesen:" +msgstr "Datei konnte nicht gelesen werden: „%s“." #: platform/javascript/export/export.cpp msgid "PWA" -msgstr "" +msgstr "PWA" #: platform/javascript/export/export.cpp msgid "Variant" @@ -19335,19 +19300,16 @@ msgid "Icon 512 X 512" msgstr "Symbol 512 X 512" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not read HTML shell: \"%s\"." -msgstr "Konnte HTML-Shell nicht lesen:" +msgstr "HTML-Shell konnte nicht gelesen werden „%s“." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not create HTTP server directory: %s." -msgstr "Konnte HTTP-Server-Verzeichnis nicht erstellen:" +msgstr "HTTP-Server-Verzeichnis konnte nicht erstellt werden: %s." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Error starting HTTP server: %d." -msgstr "Fehler beim Starten des HTTP-Servers:" +msgstr "Fehler beim Starten des HTTP-Servers: %d." #: platform/javascript/export/export.cpp msgid "Web" @@ -19611,32 +19573,28 @@ msgid "Apple Team ID" msgstr "Apple-Team-ID" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open icon file \"%s\"." -msgstr "Projektdateien konnten nicht exportiert werden" +msgstr "Symbolbilddatei „%s“ konnte nicht geöffnet werden." #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start xcrun executable." -msgstr "Unterprozess konnte nicht gestartet werden!" +msgstr "Xcrun-Anwendung konnte nicht gestartet werden." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization failed." -msgstr "Beglaubigung" +msgstr "Beglaubigung fehlgeschlagen." #: platform/osx/export/export.cpp msgid "Notarization request UUID: \"%s\"" -msgstr "" +msgstr "Beglaubigungsanfrage-UUID: „%s“" #: platform/osx/export/export.cpp -#, fuzzy msgid "" "The notarization process generally takes less than an hour. When the process " "is completed, you'll receive an email." msgstr "" -"Hinweis: Der Beglaubigungsprozess dauert gewöhnlich weniger als eine Stunde. " -"Nach Ablauf wird eine Bestätigungsmail versandt." +"Der Beglaubigungsprozess dauert gewöhnlich weniger als eine Stunde. Nach " +"Ablauf wird eine Bestätigungsmail versandt." #: platform/osx/export/export.cpp msgid "" @@ -19655,81 +19613,75 @@ msgstr "" "Anwendung geheftet werden (optional):" #: platform/osx/export/export.cpp -#, fuzzy msgid "Timestamping is not compatible with ad-hoc signature, and was disabled!" msgstr "" -"Zeitstempel sind nicht mit Ad-hoc-Signaturen kompatibel, und werden " +"Zeitstempel sind nicht mit Ad-hoc-Signaturen kompatibel, und wurden " "deaktiviert!" #: platform/osx/export/export.cpp -#, fuzzy msgid "" "Hardened Runtime is not compatible with ad-hoc signature, and was disabled!" msgstr "" "Die abgehärtete Laufzeitumgebung ist nicht mit Ad-hoc-Signaturen kompatibel, " -"und wird deaktiviert!" +"und wurde deaktiviert!" #: platform/osx/export/export.cpp msgid "Built-in CodeSign failed with error \"%s\"." -msgstr "" +msgstr "Eingebettetes CodeSign fehlgeschlagen mit Fehler „%s“." #: platform/osx/export/export.cpp msgid "Built-in CodeSign require regex module." -msgstr "" +msgstr "Eingebettetes CodeSign benötigt Regex-Modul." #: platform/osx/export/export.cpp msgid "" "Could not start codesign executable, make sure Xcode command line tools are " "installed." msgstr "" +"Codesign-Anwendung konnte nicht gestartet werden. Wurden die Xcode-" +"Kommandozeilen-Hilfsprogramme installiert?" #: platform/osx/export/export.cpp platform/windows/export/export.cpp msgid "No identity found." msgstr "Keine Identität gefunden." #: platform/osx/export/export.cpp -#, fuzzy msgid "Cannot sign file %s." -msgstr "Fehler beim Speichern von Datei: %s" +msgstr "Datei %s konnte nicht signiert werden." #: platform/osx/export/export.cpp -#, fuzzy msgid "Relative symlinks are not supported, exported \"%s\" might be broken!" msgstr "" -"Relative symbolische Links werden von diesem Betriebssystem nicht " -"unterstützt, das exportierte Projekt könnte fehlerhaft sein!" +"Relative symbolische Links werden nicht unterstützt, exportiertes „%s“ " +"könnte fehlerhaft sein!" #: platform/osx/export/export.cpp -#, fuzzy msgid "DMG Creation" -msgstr "Richtung" +msgstr "DMG-Erzeugung" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start hdiutil executable." -msgstr "Unterprozess konnte nicht gestartet werden!" +msgstr "Hdiutil-Anwendung konnte nicht gestartet werden." #: platform/osx/export/export.cpp msgid "`hdiutil create` failed - file exists." -msgstr "" +msgstr "„hdiutil create“ ist fehlgeschlagen - Datei existiert bereits." #: platform/osx/export/export.cpp msgid "`hdiutil create` failed." -msgstr "" +msgstr "„hdiutil create“ ist fehlgeschlagen." #: platform/osx/export/export.cpp msgid "Creating app bundle" msgstr "Erzeuge App-Bundle" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export: \"%s\"." -msgstr "Es konnte keine Vorlagen-App zum Exportieren gefunden werden:" +msgstr "Es konnte keine Vorlagen-App zum Exportieren gefunden werden: „%s“." #: platform/osx/export/export.cpp -#, fuzzy msgid "Invalid export format." -msgstr "Ungültige Exportvorlage:" +msgstr "Ungültiges Exportformat." #: platform/osx/export/export.cpp msgid "" @@ -19740,12 +19692,11 @@ msgstr "" "unterstützt, das exportierte Projekt könnte fehlerhaft sein!" #: platform/osx/export/export.cpp -#, fuzzy msgid "" "Requested template binary \"%s\" not found. It might be missing from your " "template archive." msgstr "" -"Benötigte Vorlagen-Binary ‚%s‘ nicht gefunden. Es könnte im Vorlagen-Archiv " +"Benötigte Vorlagen-Binary „%s“ nicht gefunden. Es könnte im Vorlagen-Archiv " "fehlen." #: platform/osx/export/export.cpp @@ -19789,14 +19740,12 @@ msgid "Sending archive for notarization" msgstr "Sende Archiv zur Beglaubigung" #: platform/osx/export/export.cpp -#, fuzzy msgid "ZIP Creation" -msgstr "Projektion" +msgstr "ZIP-Erstellung" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open file to read from path \"%s\"." -msgstr "Konnte Projektdateien nicht als Gradle-Projekt exportieren\n" +msgstr "Datei im Pfad „%s“ konnte nicht zum Lesen geöffnet werden." #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -20126,9 +20075,8 @@ msgid "Debug Algorithm" msgstr "Debug-Algorithmus" #: platform/windows/export/export.cpp -#, fuzzy msgid "Failed to rename temporary file \"%s\"." -msgstr "Temporäre Datei kann nicht entfernt werden:" +msgstr "Temporäre Datei „%s“ konnte nicht umbenannt werden." #: platform/windows/export/export.cpp msgid "Identity Type" @@ -20171,76 +20119,68 @@ msgid "Trademarks" msgstr "Handelsmarken" #: platform/windows/export/export.cpp -#, fuzzy msgid "Resources Modification" -msgstr "Pushnachrichten" +msgstr "Ressourcen-Modifikationen" #: platform/windows/export/export.cpp -#, fuzzy msgid "Could not find rcedit executable at \"%s\"." -msgstr "Keystore konnte nicht gefunden werden, Export fehlgeschlagen." +msgstr "Anwendung rcedit konnte nicht gefunden werden in „%s“." #: platform/windows/export/export.cpp -#, fuzzy msgid "Could not find wine executable at \"%s\"." -msgstr "Keystore konnte nicht gefunden werden, Export fehlgeschlagen." +msgstr "Anwendung wine konnte nicht gefunden werden in „%s“." #: platform/windows/export/export.cpp -#, fuzzy msgid "" "Could not start rcedit executable, configure rcedit path in the Editor " "Settings (Export > Windows > Rcedit)." msgstr "" -"Das Rcedit-Werkzeug muss in den Editoreinstellungen (Export > Windows > " -"Rcedit) festgelegt werden um Icon- oder Anwendungsinformation festlegen zu " -"können." +"Anwendung rcedit konnte nicht gestartet werden. Bitte rcedit-Pfad in " +"Editoreinstellungen festlegen (Export > Windows > Rcedit)." #: platform/windows/export/export.cpp msgid "" "rcedit failed to modify executable:\n" "%s" msgstr "" +"Modifikation der Anwendung durch rcedit fehlgeschlagen:\n" +"%s" #: platform/windows/export/export.cpp -#, fuzzy msgid "Could not find signtool executable at \"%s\"." -msgstr "Keystore konnte nicht gefunden werden, Export fehlgeschlagen." +msgstr "Anwendung signtool konnte nicht gefunden werden in: „%s“." #: platform/windows/export/export.cpp -#, fuzzy msgid "Could not find osslsigncode executable at \"%s\"." -msgstr "Keystore konnte nicht gefunden werden, Export fehlgeschlagen." +msgstr "Anwendung osslsigncode konnte nicht gefunden werden in: „%s“." #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid identity type." -msgstr "Identitäts-Typ" +msgstr "Ungültiger Identitäts-Typ." #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid timestamp server." -msgstr "Ungültiger Name." +msgstr "Ungültiger Zeitstempelserver." #: platform/windows/export/export.cpp -#, fuzzy msgid "" "Could not start signtool executable, configure signtool path in the Editor " "Settings (Export > Windows > Signtool)." msgstr "" -"Das Rcedit-Werkzeug muss in den Editoreinstellungen (Export > Windows > " -"Rcedit) festgelegt werden um Icon- oder Anwendungsinformation festlegen zu " -"können." +"Anwendung signtool konnte nicht gestartet werden. Bitte signtool-Pfad in " +"Editoreinstellungen festlegen (Export > Windows > Signtool)." #: platform/windows/export/export.cpp msgid "" "Signtool failed to sign executable:\n" "%s" msgstr "" +"Signieren der Anwendung durch Signtool ist fehlgeschlagen:\n" +"%s" #: platform/windows/export/export.cpp -#, fuzzy msgid "Failed to remove temporary file \"%s\"." -msgstr "Temporäre Datei kann nicht entfernt werden:" +msgstr "Fehler beim entfernen temporärer Datei „%s“." #: platform/windows/export/export.cpp msgid "" @@ -20265,20 +20205,19 @@ msgstr "Ungültige Produktversion:" #: platform/windows/export/export.cpp msgid "Windows executables cannot be >= 4 GiB." -msgstr "" +msgstr "Windows-Anwendungen können nicht größer als 4 GiB sein." #: platform/windows/export/export.cpp platform/x11/export/export.cpp -#, fuzzy msgid "Failed to open executable file \"%s\"." -msgstr "Ungültige ausführbare Datei." +msgstr "Fehler beim Öffnen von ausführbarer Datei „%s“." #: platform/windows/export/export.cpp platform/x11/export/export.cpp msgid "Executable file header corrupted." -msgstr "" +msgstr "Header von ausführbarer Datei beschädigt." #: platform/windows/export/export.cpp platform/x11/export/export.cpp msgid "Executable \"pck\" section not found." -msgstr "" +msgstr "„pck“-Sektor von ausführbarer Datei nicht gefunden." #: platform/windows/export/export.cpp msgid "Windows" @@ -20299,6 +20238,8 @@ msgstr "Wine" #: platform/x11/export/export.cpp msgid "32-bit executables cannot have embedded data >= 4 GiB." msgstr "" +"32-bit-Anwendungen können keine eingebetteten Daten größer als 4 GiB " +"beinhalten." #: scene/2d/animated_sprite.cpp scene/3d/sprite_3d.cpp #: scene/resources/texture.cpp @@ -20453,7 +20394,7 @@ msgstr "Vergrößerung" msgid "Custom Viewport" msgstr "Eigenes Ansichtsfenster" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -21141,11 +21082,43 @@ msgstr "Zellen Größe" msgid "Edge Connection Margin" msgstr "Kantenverbindungsbegrenzung" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" +"‚Navigation2D‘ und ‚Navigation2D.get_simple_path()‘ sind veraltet und werden " +"in einer zukünftigen Version entfernt. Als Ersatz ist ‚Navigation2DServer." +"map_get_path()‘ zu verwenden." + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Zuordnung" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Desired Distance" +msgstr "Gewünschte Pfaddistanz" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "Gewünschte Zieldistanz" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Max Distance" +msgstr "Max Pfad-Distanz" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Erweitert" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Avoidance Enabled" +msgstr "Vermeiden aktiviert" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "Nachbardistanz" @@ -21161,14 +21134,6 @@ msgstr "Zeithorizont" msgid "Max Speed" msgstr "Max Geschw" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "Max Pfad-Distanz" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Avoidance Enabled" -msgstr "Vermeiden aktiviert" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -21200,14 +21165,12 @@ msgid "Navpoly" msgstr "Navpolygon" #: scene/2d/navigation_polygon.cpp scene/3d/navigation_mesh_instance.cpp -#, fuzzy msgid "Enter Cost" -msgstr "Mitte unten" +msgstr "Eintrittskosten" #: scene/2d/navigation_polygon.cpp scene/3d/navigation_mesh_instance.cpp -#, fuzzy msgid "Travel Cost" -msgstr "Reisen" +msgstr "Reisekosten" #: scene/2d/node_2d.cpp scene/2d/polygon_2d.cpp scene/3d/spatial.cpp #: scene/main/canvas_layer.cpp @@ -22300,6 +22263,16 @@ msgstr "Software-Skinning" msgid "Transform Normals" msgstr "Normalen transformieren" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" +"‚Navigation‘ und ‚Navigation.get_simple_path()‘ sind veraltet und werden in " +"einer zukünftigen Version entfernt. Als Ersatz ist ‚NavigationServer." +"map_get_path()‘ zu verwenden." + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "Hoch-Vektor" @@ -24240,6 +24213,11 @@ msgid "Fold Gutter" msgstr "Einklappenspalte" #: scene/gui/text_edit.cpp +#, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Textauswahl möglich" + +#: scene/gui/text_edit.cpp msgid "Hiding Enabled" msgstr "Verstecken aktiviert" @@ -24600,19 +24578,6 @@ msgstr "Ansichtsfensterpfad" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Dieser Viewport ist nicht als Render-Ziel eingestellt. Soll sein Inhalt " -"direkt auf dem Bildschirm angezeigt werden, muss er als Unterobjekt eines " -"Controls eingehängt werden um dessen Größe zu erben. Andernfalls sollte die " -"Eigenschaft ‚Render Target‘ des Viewports aktiviert und seine Textur " -"irgendeinem Node zum Anzeigen zugewiesen werden." - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -24620,6 +24585,15 @@ msgstr "" "betragen um überhaupt irgendetwas rendern zu können." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "ARVR" @@ -24756,14 +24730,12 @@ msgid "3D Physics" msgstr "3D-Physik" #: scene/register_scene_types.cpp -#, fuzzy msgid "2D Navigation" -msgstr "Navigation" +msgstr "2D-Navigation" #: scene/register_scene_types.cpp -#, fuzzy msgid "3D Navigation" -msgstr "Navigation" +msgstr "3D-Navigation" #: scene/register_scene_types.cpp msgid "Use hiDPI" @@ -26049,14 +26021,12 @@ msgid "Visible Instance Count" msgstr "Sichtbare Instanzen Anzahl" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Sampling" -msgstr "Skalierung: " +msgstr "Abtastung" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Partition Type" -msgstr "Probeneinteilunstyp" +msgstr "Einteilungstyp" #: scene/resources/navigation_mesh.cpp msgid "Parsed Geometry Type" @@ -26071,14 +26041,12 @@ msgid "Source Group Name" msgstr "Quellen-Gruppenname" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Cells" -msgstr "Zelle" +msgstr "Zellen" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Agents" -msgstr "Agent" +msgstr "Agenten" #: scene/resources/navigation_mesh.cpp msgid "Max Climb" @@ -26089,18 +26057,16 @@ msgid "Max Slope" msgstr "Maximale Neigung" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Regions" -msgstr "Bereich" +msgstr "Bereiche" #: scene/resources/navigation_mesh.cpp msgid "Merge Size" msgstr "Größe der Zusammenführung" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Edges" -msgstr "Kante" +msgstr "Kanten" #: scene/resources/navigation_mesh.cpp msgid "Max Error" @@ -26111,7 +26077,6 @@ msgid "Verts Per Poly" msgstr "Vert per Poly" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Details" msgstr "Details" @@ -26132,9 +26097,16 @@ msgid "Ledge Spans" msgstr "Vorsprünge" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Walkable Low Height Spans" -msgstr "Ablaufbare Abstände niedriger Höhe aussortiern" +msgstr "Ablaufbare Abstände niedriger Höhe" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "Backe AABB" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "Backe AABB-Versatz" #: scene/resources/occluder_shape.cpp msgid "Spheres" @@ -26493,9 +26465,8 @@ msgid "Scenario" msgstr "Szenario" #: scene/resources/world.cpp scene/resources/world_2d.cpp -#, fuzzy msgid "Navigation Map" -msgstr "Navigation" +msgstr "Navigationskarte" #: scene/resources/world.cpp scene/resources/world_2d.cpp msgid "Direct Space State" @@ -26514,24 +26485,20 @@ msgid "Default Angular Damp" msgstr "Standard Winkeldämpfung" #: scene/resources/world.cpp -#, fuzzy msgid "Default Map Up" -msgstr "Standard Gleitkommaschritte" +msgstr "Standard Kartenhoch" #: scene/resources/world.cpp scene/resources/world_2d.cpp -#, fuzzy msgid "Default Cell Size" -msgstr "Zellen Größe" +msgstr "Standardzellgröße" #: scene/resources/world.cpp scene/resources/world_2d.cpp -#, fuzzy msgid "Default Cell Height" -msgstr "Zellenhöhe" +msgstr "Standardzellhöhe" #: scene/resources/world.cpp scene/resources/world_2d.cpp -#, fuzzy msgid "Default Edge Connection Margin" -msgstr "Kantenverbindungsbegrenzung" +msgstr "Standard Kantenverbinungsabstand" #: scene/resources/world_2d.cpp msgid "Canvas" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index 169d40ebd7..5d2d5f1cbc 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -380,6 +380,10 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +msgid "Physical" +msgstr "" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5244,6 +5248,10 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +msgid "Drag And Drop Selection" +msgstr "" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7522,11 +7530,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7544,11 +7561,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7691,10 +7703,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -17666,6 +17674,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +msgid "Custom Build" +msgstr "" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -17673,6 +17685,14 @@ msgstr "" msgid "Export Format" msgstr "" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -17709,14 +17729,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -msgid "Target SDK" -msgstr "" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -17934,12 +17946,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -17948,17 +17960,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19460,7 +19492,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20114,32 +20146,51 @@ msgstr "" msgid "Edge Connection Margin" msgstr "" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Pathfinding" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Desired Distance" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Avoidance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Avoidance Enabled" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Avoidance Enabled" +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" msgstr "" #: scene/2d/navigation_agent_2d.cpp @@ -21204,6 +21255,13 @@ msgstr "" msgid "Transform Normals" msgstr "" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23056,6 +23114,10 @@ msgid "Fold Gutter" msgstr "" #: scene/gui/text_edit.cpp +msgid "Drag And Drop Selection Enabled" +msgstr "" + +#: scene/gui/text_edit.cpp msgid "Hiding Enabled" msgstr "" @@ -23407,16 +23469,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -24926,6 +24989,14 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/el.po b/editor/translations/el.po index a3f5e815e1..a061cc5a59 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -411,6 +411,11 @@ msgstr "Meta" msgid "Command" msgstr "Command" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (Φυσικό)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5649,6 +5654,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "GridMap Γέμισμα Επιλογής" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8154,11 +8164,20 @@ msgid "New Anim" msgstr "Νέα κίνηση" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Δημιουργία νέας κίνησης" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Αλλαγή ονόματος κίνησης:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Μετονομασία κίνησης" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Διαγραφή κίνησης;" @@ -8176,11 +8195,6 @@ msgid "Animation name already exists!" msgstr "Ήδη υπαρκτό όνομα κίνησης!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Μετονομασία κίνησης" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Αναπαραγωγή κίνησης" @@ -8324,10 +8338,6 @@ msgid "Pin AnimationPlayer" msgstr "Καρφίτσωμα AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Δημιουργία νέας κίνησης" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Όνομα κίνησης:" @@ -19116,6 +19126,11 @@ msgid "The package must have at least one '.' separator." msgstr "Το πακέτο πρέπει να έχει τουλάχιστον έναν '.' διαχωριστή." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Αποκοπή κόμβων" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -19124,6 +19139,16 @@ msgstr "" msgid "Export Format" msgstr "Διαδρομή Εξαγωγής" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Μέγεθος περιγράμματος:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Στόχος" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -19166,16 +19191,6 @@ msgstr "Επιθεώρηση του προηγούμενου στιγμιοτύ msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Μέγεθος περιγράμματος:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Στόχος" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19437,7 +19452,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "Το «Hand Tracking» είναι έγκυρο μόνο όταν το «Xr Mode» είναι «Oculus Mobile " @@ -19445,7 +19460,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "Το «Hand Tracking» είναι έγκυρο μόνο όταν το «Xr Mode» είναι «Oculus Mobile " "VR»." @@ -19456,17 +19471,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -21143,7 +21178,7 @@ msgstr "Μεγέθυνση" msgid "Custom Viewport" msgstr "1 Οπτική γωνία" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21905,11 +21940,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Επεξεργασία Σύνδεσης:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Δεσμός" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Επιλογή απόστασης:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Επιλογή απόστασης:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Για προχωρημένους" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Ενεργοποίηση" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21927,16 +21994,6 @@ msgstr "Αναστροφή Οριζόντια" msgid "Max Speed" msgstr "Ταχύτητα:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Επιλογή απόστασης:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Ενεργοποίηση" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -23195,6 +23252,13 @@ msgstr "" msgid "Transform Normals" msgstr "Ο μετασχηματισμός ματαιώθηκε." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25357,6 +25421,11 @@ msgstr "Φάκελος:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Μόνο στην επιλογή" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Ενεργοποίηση" @@ -25762,18 +25831,6 @@ msgid "Viewport Path" msgstr "Διαδρομή Εξαγωγής" #: scene/main/viewport.cpp -msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Το Viewport δεν έχει ορισθεί ως στόχος απόδοσης. Αν σκοπεύετε να δείχνει τα " -"περιεχόμενα του, κάντε το να κληρονομεί ένα Control, ώστε να αποκτήσει " -"μέγεθος. Αλλιώς, κάντε το ένα RenderTarget και ορίστε το internal texture σε " -"έναν κόμβο για απεικόνιση." - -#: scene/main/viewport.cpp #, fuzzy msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " @@ -25783,6 +25840,15 @@ msgstr "" "απόδοση." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27551,6 +27617,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Δημιουρία AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Μετατόπιση:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/en_Shaw.po b/editor/translations/en_Shaw.po index 14388e1c66..1f648844a2 100644 --- a/editor/translations/en_Shaw.po +++ b/editor/translations/en_Shaw.po @@ -391,6 +391,11 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "𐑑𐑪𐑜𐑩𐑤 𐑑𐑮𐑨𐑒 𐑦𐑯𐑱𐑚𐑩𐑤𐑛" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5271,6 +5276,10 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +msgid "Drag And Drop Selection" +msgstr "" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7568,11 +7577,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7590,11 +7608,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7737,10 +7750,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -17739,6 +17748,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "𐑓𐑳𐑙𐑒𐑖𐑩𐑯𐑟:" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -17747,6 +17761,14 @@ msgstr "" msgid "Export Format" msgstr "3-𐑛 𐑑𐑮𐑨𐑯𐑕𐑓𐑹𐑥 𐑑𐑮𐑨𐑒" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -17783,14 +17805,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -msgid "Target SDK" -msgstr "" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18012,12 +18026,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18026,17 +18040,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19556,7 +19590,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20216,35 +20250,55 @@ msgstr "" msgid "Edge Connection Margin" msgstr "𐑓𐑳𐑙𐑒𐑖𐑩𐑯𐑟:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Target Desired Distance" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Pathfinding" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Path Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "𐑑𐑪𐑜𐑩𐑤 𐑑𐑮𐑨𐑒 𐑦𐑯𐑱𐑚𐑩𐑤𐑛" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy msgid "Avoidance Enabled" msgstr "𐑑𐑪𐑜𐑩𐑤 𐑑𐑮𐑨𐑒 𐑦𐑯𐑱𐑚𐑩𐑤𐑛" +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Neighbors" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -21328,6 +21382,13 @@ msgstr "" msgid "Transform Normals" msgstr "3-𐑛 𐑑𐑮𐑨𐑯𐑕𐑓𐑹𐑥 𐑑𐑮𐑨𐑒" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23251,6 +23312,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "𐑑𐑪𐑜𐑩𐑤 𐑑𐑮𐑨𐑒 𐑦𐑯𐑱𐑚𐑩𐑤𐑛" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "𐑑𐑪𐑜𐑩𐑤 𐑑𐑮𐑨𐑒 𐑦𐑯𐑱𐑚𐑩𐑤𐑛" @@ -23608,16 +23674,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25192,6 +25259,14 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/eo.po b/editor/translations/eo.po index 46e8f898ce..2eef4fc0d0 100644 --- a/editor/translations/eo.po +++ b/editor/translations/eo.po @@ -431,6 +431,11 @@ msgstr "" msgid "Command" msgstr "Komunumo" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fiziko-kadro %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5642,6 +5647,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Enkadrigi elekton" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8126,11 +8136,21 @@ msgid "New Anim" msgstr "Nova animacio" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Krei novan animacion" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Ŝanĝi nomon de animacio:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Rename Animation" +msgstr "Renomi animaĵon" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Forigi animacion?" @@ -8148,12 +8168,6 @@ msgid "Animation name already exists!" msgstr "Nomo de animacio jam ekzistas!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy -msgid "Rename Animation" -msgstr "Renomi animaĵon" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplikati animacion" @@ -8296,10 +8310,6 @@ msgid "Pin AnimationPlayer" msgstr "Fiksi AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Krei novan animacion" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nomo de animacio:" @@ -18811,6 +18821,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Eltondi nodo(j)n" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18819,6 +18834,16 @@ msgstr "" msgid "Export Format" msgstr "Formo" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Grando de konturo:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Celo" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18858,16 +18883,6 @@ msgstr "Inspekti antaŭan ekzemplon" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Grando de konturo:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Celo" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19113,12 +19128,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19127,17 +19142,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20786,7 +20821,7 @@ msgstr "Zomi" msgid "Custom Viewport" msgstr "Montri vidujon" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21504,34 +21539,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Redakti Konekton:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Alglui animacion" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Elektu ĉefan scenon" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Altnivela" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Ŝaltita" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Ŝaltita" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22708,6 +22765,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformo" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24803,6 +24867,11 @@ msgstr "Dosierujo:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Nur Elektaro" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Ŝaltita" @@ -25205,16 +25274,17 @@ msgstr "Fokusi al dosierindiko" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26965,6 +27035,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Krada deŝovo:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/es.po b/editor/translations/es.po index d419b78e4b..febff41060 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -79,13 +79,15 @@ # losfroger <emilioranita@gmail.com>, 2022. # Ventura Pérez García <vetu@protonmail.com>, 2022. # David Martínez <goddrinksjava@gmail.com>, 2022. +# Nagamine-j <jimmy.kochi@unmsm.edu.pe>, 2022. +# Esdras Caleb Oliveira Silva <acheicaleb@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-19 11:52+0000\n" -"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n" +"PO-Revision-Date: 2022-06-29 10:04+0000\n" +"Last-Translator: Esdras Caleb Oliveira Silva <acheicaleb@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -387,9 +389,8 @@ msgstr "" "inválido." #: core/math/expression.cpp -#, fuzzy msgid "Invalid input %d (not passed) in expression" -msgstr "Entrada inválida %i (no aprobada) en la expresión" +msgstr "Entrada inválida %d (no aprobada) en la expresión" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -433,14 +434,12 @@ msgid "Max Size (KB)" msgstr "Tamaño Máximo (KB)" #: core/os/input.cpp -#, fuzzy msgid "Mouse Mode" -msgstr "Modo de Movimiento" +msgstr "Modo de Mouse" #: core/os/input.cpp -#, fuzzy msgid "Use Accumulated Input" -msgstr "Eliminar entrada" +msgstr "Usar entrada acumulada" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: servers/audio_server.cpp @@ -467,6 +466,11 @@ msgstr "Meta" msgid "Command" msgstr "Command" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (Física)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -487,7 +491,7 @@ msgstr "Unicode" #: core/os/input_event.cpp msgid "Echo" -msgstr "Echo" +msgstr "Eco" #: core/os/input_event.cpp scene/gui/base_button.cpp msgid "Button Mask" @@ -511,7 +515,7 @@ msgstr "Dobleclick" #: core/os/input_event.cpp msgid "Tilt" -msgstr "Tilt" +msgstr "Inclinar" #: core/os/input_event.cpp msgid "Pressure" @@ -590,11 +594,11 @@ msgstr "Valor del Controlador" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp #: platform/windows/export/export.cpp msgid "Application" -msgstr "Aplicación" +msgstr "Aplicação" #: core/project_settings.cpp main/main.cpp msgid "Config" -msgstr "Configurar" +msgstr "Configuração" #: core/project_settings.cpp msgid "Project Settings Override" @@ -2749,7 +2753,7 @@ msgstr "Nombre del Nodo:" #: editor/editor_autoload_settings.cpp msgid "Global Variable" -msgstr "Variable" +msgstr "Variable global" #: editor/editor_data.cpp msgid "Paste Params" @@ -2810,16 +2814,15 @@ msgstr "Elegir" #: editor/editor_export.cpp msgid "Project export for platform:" -msgstr "" +msgstr "Exportar proyecto para la plataforma:" #: editor/editor_export.cpp msgid "Completed with errors." msgstr "Completado con errores." #: editor/editor_export.cpp -#, fuzzy msgid "Completed successfully." -msgstr "Completado con éxito." +msgstr "Completado exitosamente." #: editor/editor_export.cpp msgid "Failed." @@ -2839,14 +2842,12 @@ msgid "Packing" msgstr "Empaquetando" #: editor/editor_export.cpp -#, fuzzy msgid "Save PCK" -msgstr "Guardar Como" +msgstr "Guardar como PCK" #: editor/editor_export.cpp -#, fuzzy msgid "Cannot create file \"%s\"." -msgstr "No se pudo crear la carpeta." +msgstr "No se pudo crear el archivo \"%s\"." #: editor/editor_export.cpp msgid "Failed to export project files." @@ -2857,9 +2858,8 @@ msgid "Can't open file to read from path \"%s\"." msgstr "No se puede abrir el archivo a leer de la ruta \"%s\"." #: editor/editor_export.cpp -#, fuzzy msgid "Save ZIP" -msgstr "Guardar Como" +msgstr "Guardar como ZIP" #: editor/editor_export.cpp msgid "" @@ -5566,6 +5566,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "Botones Extra del Ratón Navegar por el Historial" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Seleccionar GridMap" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "Apariencia" @@ -7968,11 +7973,20 @@ msgid "New Anim" msgstr "Nueva Animación" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Crear Animación Nueva" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Cambiar nombre de animación:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Renombrar Animación" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "¿Eliminar Animación?" @@ -7990,11 +8004,6 @@ msgid "Animation name already exists!" msgstr "¡El nombre de animación ya existe!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Renombrar Animación" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplicar Animación" @@ -8140,10 +8149,6 @@ msgid "Pin AnimationPlayer" msgstr "Fijar AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Crear Animación Nueva" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nombre de Animación:" @@ -18702,6 +18707,11 @@ msgid "The package must have at least one '.' separator." msgstr "El paquete debe tener al menos un '.' como separador." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "CustomNode" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18710,6 +18720,15 @@ msgstr "" msgid "Export Format" msgstr "Ruta de Exportación" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "SDK Mínimo" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Objetivo de FPS" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18753,15 +18772,6 @@ msgstr "Inspeccionar Instancia Anterior" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "SDK Mínimo" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Objetivo de FPS" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19018,15 +19028,17 @@ msgid "\"Use Custom Build\" must be enabled to use the plugins." msgstr "\"Use Custom Build\" debe estar activado para usar los plugins." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Hand Tracking\" solo es válido cuando \"Xr Mode\" es \"Oculus Mobile " "VrApi\" u \"OpenXR\"." #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +#, fuzzy +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "\"Passthrough\" solo es válido cuando \"Xr Mode\" es \"OpenXR\"." #: platform/android/export/export_plugin.cpp @@ -19035,22 +19047,45 @@ msgstr "" "\"Export AAB\" sólo es válido cuando \"Use Custom Build\" está activado." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Cambiar el \"Min Sdk\" solo es válido cuando \"Use Custom Build\" está " "activado." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Cambiar el \"Target Sdk\" solo es válido cuando \"Use Custom Build\" está " "activado." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "La versión de \"Target Sdk\" debe ser mayor o igual que la versión de \"Min " "Sdk\"." @@ -20760,7 +20795,7 @@ msgstr "Acercar Zoom" msgid "Custom Viewport" msgstr "1 Viewport" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21517,11 +21552,42 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Margen de Conexión de Bordes" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Vinculación" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Distancia de la Ruta U" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Max Distance" +msgstr "Distancia Máxima de Ruta" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Avanzado" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Activar" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21538,15 +21604,6 @@ msgstr "Voltear Horizontalmente" msgid "Max Speed" msgstr "Velocidad Máxima" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "Distancia Máxima de Ruta" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Activar" - #: scene/2d/navigation_agent_2d.cpp #, fuzzy msgid "" @@ -22787,6 +22844,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformar Normales" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24927,6 +24991,11 @@ msgstr "Plegar Gutter" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Sólo selección" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Activar" @@ -25328,19 +25397,6 @@ msgstr "Ruta de Exportación" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Esta ventanilla no está configurada como destino de representación. Si " -"quiere que su contenido se muestre directamente en la pantalla, hágalo un " -"elemento secundario de un control para que pueda recibir dimensiones. O " -"bien, conviértalo en un RenderTarget y asigne su textura interna a algún " -"nodo para que se muestre." - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -25348,6 +25404,15 @@ msgstr "" "dimensiones para renderizar cualquier cosa." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27073,6 +27138,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Generando AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Desplazamiento Base" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index c79bf0828f..eeea3a9922 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -25,8 +25,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-16 18:57+0000\n" -"Last-Translator: emnrx <emanuelermancia@gmail.com>\n" +"PO-Revision-Date: 2022-06-21 15:56+0000\n" +"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" "Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/" "godot-engine/godot/es_AR/>\n" "Language: es_AR\n" @@ -34,7 +34,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.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -50,7 +50,7 @@ msgstr "Escena Actual" #: core/bind/core_bind.cpp msgid "Exit Code" -msgstr "" +msgstr "Código de Salida" #: core/bind/core_bind.cpp msgid "V-Sync Enabled" @@ -116,7 +116,7 @@ msgstr "Minimizada" #: core/bind/core_bind.cpp core/project_settings.cpp scene/gui/dialogs.cpp #: scene/gui/graph_node.cpp msgid "Resizable" -msgstr "" +msgstr "Redimensionable" #: core/bind/core_bind.cpp core/os/input_event.cpp scene/2d/node_2d.cpp #: scene/2d/physics_body_2d.cpp scene/2d/remote_transform_2d.cpp @@ -143,9 +143,8 @@ msgid "Endian Swap" msgstr "" #: core/bind/core_bind.cpp -#, fuzzy msgid "Editor Hint" -msgstr "Editor" +msgstr "Sugerencia del Editor" #: core/bind/core_bind.cpp msgid "Print Error Messages" @@ -156,27 +155,24 @@ msgid "Iterations Per Second" msgstr "Iteraciones Por Segundo" #: core/bind/core_bind.cpp -#, fuzzy msgid "Target FPS" -msgstr "Objetivo" +msgstr "Objetivo de FPS" #: core/bind/core_bind.cpp msgid "Time Scale" msgstr "Escala de Tiempo" #: core/bind/core_bind.cpp main/main.cpp -#, fuzzy msgid "Physics Jitter Fix" -msgstr "Frames de Física %" +msgstr "Corrección de Fluctuaciones(Jitter) de Física" #: core/bind/core_bind.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Error" msgstr "Error" #: core/bind/core_bind.cpp -#, fuzzy msgid "Error String" -msgstr "Error al Guardar" +msgstr "String de Error" #: core/bind/core_bind.cpp msgid "Error Line" @@ -207,7 +203,7 @@ msgstr "Cola de comando" #: core/command_queue_mt.cpp msgid "Multithreading Queue Size (KB)" -msgstr "" +msgstr "Tamaño de la Cola de Multithreading (KB)" #: core/func_ref.cpp modules/visual_script/visual_script_builtin_funcs.cpp #: modules/visual_script/visual_script_func_nodes.cpp @@ -218,23 +214,20 @@ msgstr "Función" #: core/image.cpp core/packed_data_container.cpp scene/2d/polygon_2d.cpp #: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp -#, fuzzy msgid "Data" -msgstr "Con Data" +msgstr "Datos" #: core/io/file_access_network.cpp core/register_core_types.cpp #: editor/editor_file_dialog.cpp editor/editor_settings.cpp main/main.cpp #: modules/gdscript/language_server/gdscript_language_server.cpp #: modules/webrtc/webrtc_data_channel.h modules/websocket/websocket_macros.h #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Network" -msgstr "Profiler de Red" +msgstr "Red" #: core/io/file_access_network.cpp -#, fuzzy msgid "Remote FS" -msgstr "Remoto " +msgstr "FS Remoto" #: core/io/file_access_network.cpp msgid "Page Size" @@ -246,7 +239,7 @@ msgstr "" #: core/io/http_client.cpp msgid "Blocking Mode Enabled" -msgstr "" +msgstr "Modo Bloqueante Activado" #: core/io/http_client.cpp msgid "Connection" @@ -420,6 +413,11 @@ msgstr "Meta" msgid "Command" msgstr "Comunidad" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (Física)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -449,7 +447,6 @@ msgid "Button Mask" msgstr "Máscara de Botón" #: core/os/input_event.cpp scene/2d/node_2d.cpp scene/gui/control.cpp -#, fuzzy msgid "Global Position" msgstr "Posición Global" @@ -5638,6 +5635,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Selección de GridMap" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8128,11 +8130,20 @@ msgid "New Anim" msgstr "Nueva Animación" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Crear Nueva Animación" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Cambiar Nombre de Animación:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Renombrar Animación" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Eliminar Animación?" @@ -8150,11 +8161,6 @@ msgid "Animation name already exists!" msgstr "El nombre de animación ya existe!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Renombrar Animación" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplicar Animación" @@ -8300,10 +8306,6 @@ msgid "Pin AnimationPlayer" msgstr "Fijar AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Crear Nueva Animación" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nombre de Animación:" @@ -18909,6 +18911,11 @@ msgid "The package must have at least one '.' separator." msgstr "El paquete debe tener al menos un '.' como separador." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "CustomNode" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18917,6 +18924,16 @@ msgstr "" msgid "Export Format" msgstr "Ruta de Exportación" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Tamaño de Outline:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Objetivo" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18960,16 +18977,6 @@ msgstr "Inspeccionar Instancia Previa" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Tamaño de Outline:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Objetivo" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19221,15 +19228,17 @@ msgid "\"Use Custom Build\" must be enabled to use the plugins." msgstr "\"Use Custom Build\" debe estar activado para usar los plugins." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Hand Tracking\" sólo es válido cuando \"Xr Mode\" es \"Oculus Mobile " "VrApi\" o \"OpenXR\"." #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +#, fuzzy +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "\"Passthrough\" sólo es válido cuando \"Xr Mode\" es \"OpenXR\"." #: platform/android/export/export_plugin.cpp @@ -19238,22 +19247,45 @@ msgstr "" "\"Export AAB\" sólo es válido cuando \"Use Custom Build\" está activado." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Cambiar el \"Min Sdk\" sólo es válido cuando \"Use Custom Build\" está " "activado." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Cambiar el \"Target Sdk\" sólo es válido cuando \"Use Custom Build\" está " "activado." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "La versión de \"Target Sdk\" debe ser mayor o igual a la versión de \"Min " "Sdk\"." @@ -20992,7 +21024,7 @@ msgstr "Zoom In" msgid "Custom Viewport" msgstr "1 Viewport" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21761,11 +21793,43 @@ msgstr "Tamaño de Celda" msgid "Edge Connection Margin" msgstr "Editar Conexión:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Binding" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Elegir Instancia:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Elegir Instancia:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Avanzado" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Activar" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21782,16 +21846,6 @@ msgstr "Espejar Horizontalmente" msgid "Max Speed" msgstr "Velocidad Máxima" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Elegir Instancia:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Activar" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -23022,6 +23076,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformación Abortada." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25179,6 +25240,11 @@ msgstr "Carpeta:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Solo Selección" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Activar" @@ -25591,18 +25657,6 @@ msgstr "Ruta de Exportación" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Este viewport no está seteado como render target. Si tienes intención de que " -"muestre contenidos directo a la pantalla, haz un hijo de un Control para que " -"pueda obtener un tamaño. Alternativamente, haz un RenderTarget y asigna su " -"textura interna a algún otro nodo para mostrar." - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -25610,6 +25664,15 @@ msgstr "" "dimensiones para renderizar cualquier cosa." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27379,6 +27442,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Generando AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Offset:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/et.po b/editor/translations/et.po index ca2105aa20..b7ed666bb0 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -417,6 +417,11 @@ msgstr "" msgid "Command" msgstr "Kogukond" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Luba" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5473,6 +5478,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Kopeeri valik" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7854,11 +7864,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Kustuta animatsioon?" @@ -7876,11 +7895,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -8023,10 +8037,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18297,6 +18307,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Kustuta sõlm(ed)" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18305,6 +18320,16 @@ msgstr "" msgid "Export Format" msgstr "Formaat" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Suurus: " + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Ressursi tee" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18343,16 +18368,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Suurus: " - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Ressursi tee" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18591,12 +18606,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18605,17 +18620,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20238,7 +20273,7 @@ msgstr "" msgid "Custom Viewport" msgstr "1 vaateaken" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -20942,34 +20977,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Ühenda" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Kombinatsioon" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Paigalda" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Täpsem" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Luba" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Luba" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22113,6 +22170,13 @@ msgstr "" msgid "Transform Normals" msgstr "3D muundus rada" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24151,6 +24215,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Vali see kaust" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Luba" @@ -24537,14 +24606,6 @@ msgid "Viewport Path" msgstr "1 vaateaken" #: scene/main/viewport.cpp -msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" - -#: scene/main/viewport.cpp #, fuzzy msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " @@ -24552,6 +24613,15 @@ msgid "" msgstr "Vaateakne suurus peab olema suurem kui 0, et kuvada." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -26252,6 +26322,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Muuda tüüpi" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/eu.po b/editor/translations/eu.po index cfbf2945ff..ff9601ad57 100644 --- a/editor/translations/eu.po +++ b/editor/translations/eu.po @@ -394,6 +394,11 @@ msgstr "" msgid "Command" msgstr "Komunitatea" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Gaitu atxikitzea" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5380,6 +5385,10 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +msgid "Drag And Drop Selection" +msgstr "" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7749,11 +7758,20 @@ msgid "New Anim" msgstr "Animazio berria" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Aldatu animazioaren izena:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Aldatu izena animazioari" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Ezabatu animazioa?" @@ -7771,11 +7789,6 @@ msgid "Animation name already exists!" msgstr "Animazio izena existitzen da jada!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Aldatu izena animazioari" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Bikoiztu animazioa" @@ -7918,10 +7931,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18122,6 +18131,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Kendu elementu guztiak" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18130,6 +18144,15 @@ msgstr "" msgid "Export Format" msgstr "Esportatu" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Blend4 nodoa" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18167,15 +18190,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Blend4 nodoa" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18413,12 +18427,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18427,17 +18441,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20032,7 +20066,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -20720,34 +20754,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Edukiak:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Itsatsi animazioa" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Instalatu" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Gaitu atxikitzea" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Gaitu atxikitzea" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Gaitu atxikitzea" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -21877,6 +21933,13 @@ msgstr "" msgid "Transform Normals" msgstr "3D Transformazioaren pista" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23868,6 +23931,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Hautatu karpeta hau" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Gaitu atxikitzea" @@ -24247,16 +24315,17 @@ msgstr "Kopiatu bidea" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25932,6 +26001,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Kide mota" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/fa.po b/editor/translations/fa.po index 43d79c6ede..ae8a37388a 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -25,13 +25,14 @@ # Alireza Khodabande <alirezakhodabande74@gmail.com>, 2021. # Seyed Fazel Alavi <fazel8195@gmail.com>, 2022. # Giga hertz <gigahertzyt@gmail.com>, 2022. +# Aryan Azadeh <aryan@azadeh.email>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-04-03 13:13+0000\n" -"Last-Translator: Giga hertz <gigahertzyt@gmail.com>\n" +"PO-Revision-Date: 2022-06-20 06:44+0000\n" +"Last-Translator: Aryan Azadeh <aryan@azadeh.email>\n" "Language-Team: Persian <https://hosted.weblate.org/projects/godot-engine/" "godot/fa/>\n" "Language: fa\n" @@ -39,7 +40,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.12-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -440,6 +441,11 @@ msgstr "" msgid "Command" msgstr "جامعه" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "روشن" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -694,7 +700,7 @@ msgstr "طرح پیش فرض اتوبوس را بارگیری کنید." #: editor/editor_settings.cpp editor/script_create_dialog.cpp #: scene/2d/camera_2d.cpp scene/3d/light.cpp scene/main/node.cpp msgid "Editor" -msgstr "ویرایشگر" +msgstr "ویرایِشگَر" #: core/project_settings.cpp msgid "Main Run Args" @@ -4733,7 +4739,7 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" -msgstr "جامعه" +msgstr "اَنجُمَن" #: editor/editor_node.cpp #, fuzzy @@ -5534,6 +5540,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "انتخاب شده را حذف کن" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8034,11 +8045,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "تغییر نام انیمیشن" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "انیمیشن حذف شود؟" @@ -8058,11 +8078,6 @@ msgid "Animation name already exists!" msgstr "بارگذاری خودکار '%s' هم اکنون موجود است!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "تغییر نام انیمیشن" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -8211,10 +8226,6 @@ msgid "Pin AnimationPlayer" msgstr "تغییر نام انیمیشن" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -10732,7 +10743,7 @@ msgstr "زبانه قبلی" #: editor/plugins/script_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp msgid "File" -msgstr "" +msgstr "پَروَندِه" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -11360,7 +11371,7 @@ msgstr "خصوصیات" #: editor/plugins/spatial_editor_plugin.cpp msgid "FPS: %d (%s ms)" -msgstr "" +msgstr "FPS: %d (%s ms)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Top View." @@ -15207,7 +15218,7 @@ msgstr "تنظیمات پروژه (پروژه.گودات)" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "General" -msgstr "عمومی" +msgstr "هَمِگان" #: editor/project_settings_editor.cpp msgid "Override For..." @@ -19005,6 +19016,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "ساختن گره" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -19013,6 +19029,16 @@ msgstr "" msgid "Export Format" msgstr "صدور پروژه" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "باز کردن و اجرای یک اسکریپت" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "گره تغییر والد" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -19051,16 +19077,6 @@ msgstr "زبانه قبلی" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "باز کردن و اجرای یک اسکریپت" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "گره تغییر والد" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19305,12 +19321,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19319,17 +19335,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20979,7 +21015,7 @@ msgstr "بزرگنمایی" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21704,34 +21740,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "ویرایش اتصال:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "ثابت" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "نصب کردن" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "پیشرفته" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "روشن" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "روشن" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22918,6 +22976,13 @@ msgstr "" msgid "Transform Normals" msgstr "انتخاب شده را تغییر مقیاس بده" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -24992,6 +25057,11 @@ msgstr "ساختن پوشه" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "تنها در قسمت انتخاب شده" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "روشن" @@ -25388,20 +25458,17 @@ msgstr "صدور پروژه" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" -"این viewport به صورت render target تنظیم نیست. اگر قصد دارید که محتویاتش را " -"به صورت مستقیم در صفحهنمایش نمایش دهد، آن را یک فرزند یک Control قرار دهید " -"تا بتواند یک اندازه بگیرد. در غیر اینصورت، آن را یک RenderTarget قرار دهید و " -"بافت داخلی آن را برای نمایش به تعدادی گره تخصیص دهید." #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -27128,6 +27195,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "حذف قالب" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 7c69731934..7613bdfcce 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -437,6 +437,11 @@ msgstr "" msgid "Command" msgstr "Yhteisö" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (fyysinen)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5662,6 +5667,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Ruudukon valinta" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8143,11 +8153,20 @@ msgid "New Anim" msgstr "Uusi animaatio" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Luo uusi animaatio" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Vaihda animaation nimi:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Nimeä animaatio uudelleen" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Poista animaatio?" @@ -8165,11 +8184,6 @@ msgid "Animation name already exists!" msgstr "Samanniminen animaatio on jo olemassa!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Nimeä animaatio uudelleen" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Monista animaatio" @@ -8313,10 +8327,6 @@ msgid "Pin AnimationPlayer" msgstr "Kiinnitä AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Luo uusi animaatio" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Animaation nimi:" @@ -18902,6 +18912,11 @@ msgid "The package must have at least one '.' separator." msgstr "Paketilla on oltava ainakin yksi '.' erotinmerkki." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Mukautettu solmu" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18910,6 +18925,16 @@ msgstr "" msgid "Export Format" msgstr "Vientipolku" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Ääriviivojen koko:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Kohde" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18953,16 +18978,6 @@ msgstr "Tarkastele edellistä ilmentymää" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Ääriviivojen koko:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Kohde" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19216,15 +19231,17 @@ msgstr "" "käyttää." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Hand Tracking\" on käyttökelpoinen ainoastaan kun \"Xr Mode\" asetuksen " "arvo on \"Oculus Mobile VrAPI\" tai \"OpenXR\"." #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +#, fuzzy +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "\"Passthrough\" on käyttökelpoinen ainoastaan kun \"Xr Mode\" asetuksen arvo " "on \"OpenXR\"." @@ -19236,22 +19253,45 @@ msgstr "" "päällä." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Min Sdk\" vaihtaminen on mahdollista vain, kun \"Use Custom Build\" asetus " "on päällä." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Target Sdk\" vaihtaminen on mahdollista vain, kun \"Use Custom Build\" " "asetus on päällä." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "\"Target Sdk\" versionumeron on oltava suurempi tai yhtä suuri kuin \"Min " "Sdk\" versionumeron." @@ -20991,7 +21031,7 @@ msgstr "Lähennä" msgid "Custom Viewport" msgstr "1 näyttöruutu" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21757,11 +21797,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Muokkaa yhteyttä:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Sidonta" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Poimintaetäisyys:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Poimintaetäisyys:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Edistyneet" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Ota käyttöön" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21779,16 +21851,6 @@ msgstr "Käännä vaakasuorasti" msgid "Max Speed" msgstr "Nopeus:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Poimintaetäisyys:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Ota käyttöön" - #: scene/2d/navigation_agent_2d.cpp #, fuzzy msgid "" @@ -23051,6 +23113,13 @@ msgstr "" msgid "Transform Normals" msgstr "Muunnos keskeytetty." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25241,6 +25310,11 @@ msgstr "Kansio:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Pelkkä valinta" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Ota käyttöön" @@ -25653,18 +25727,6 @@ msgstr "Vientipolku" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Tätä näyttöikkunaa ei ole asetettu renderöitäväksi. Jos haluat sen näyttävän " -"sisältöä suoraan näytölle, tee sitä Control solmun alisolmu, jotta se voi " -"saada koon. Muutoin tee siitä RenderTarget ja aseta sen sisäinen tekstuuri " -"johonkin solmuun näkyväksi." - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -25672,6 +25734,15 @@ msgstr "" "kummassakin suunnassa, jotta mitään renderöidään." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27441,6 +27512,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Luodaan AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Siirtymä:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/fil.po b/editor/translations/fil.po index 19cb3febb0..24a5742ef6 100644 --- a/editor/translations/fil.po +++ b/editor/translations/fil.po @@ -392,6 +392,11 @@ msgstr "Meta" msgid "Command" msgstr "Command" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Pisika" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5297,6 +5302,10 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +msgid "Drag And Drop Selection" +msgstr "" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7616,11 +7625,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7638,11 +7656,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7785,10 +7798,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -17868,6 +17877,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Ilipat Ang Mga Bezier Points" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -17876,6 +17890,14 @@ msgstr "" msgid "Export Format" msgstr "3D Transform Track" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -17912,14 +17934,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -msgid "Target SDK" -msgstr "" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18143,12 +18157,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18157,17 +18171,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19706,7 +19740,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20375,35 +20409,55 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Ikabit" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Target Desired Distance" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Pathfinding" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Path Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Binuksan ang V-Sync" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy msgid "Avoidance Enabled" msgstr "Binuksan ang V-Sync" +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Neighbors" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -21496,6 +21550,13 @@ msgstr "" msgid "Transform Normals" msgstr "3D Transform Track" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23408,6 +23469,10 @@ msgid "Fold Gutter" msgstr "" #: scene/gui/text_edit.cpp +msgid "Drag And Drop Selection Enabled" +msgstr "" + +#: scene/gui/text_edit.cpp msgid "Hiding Enabled" msgstr "" @@ -23768,16 +23833,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25361,6 +25427,14 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 6b077ba5e4..8822d35687 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -32,7 +32,7 @@ # Przemyslaw Gasinski <gasinski.przemek@protonmail.ch>, 2017. # rafeu <duchainer@gmail.com>, 2016-2017. # rawida <rawida@tempinbox.com>, 2018. -# Rémi Verschelde <rverschelde@gmail.com>, 2016-2017. +# Rémi Verschelde <akien@godotengine.org>, 2016-2022. # Robin Arys <robinarys@hotmail.com>, 2017. # Roger BR <drai_kin@hotmail.com>, 2016. # salty64 <cedric.arrabie@univ-pau.fr>, 2018, 2020, 2021. @@ -49,7 +49,6 @@ # Brice Lobet <tempo.data@gmail.com>, 2018. # Florent Wijanto <f_wijanto@hotmail.com>, 2018. # Olivier gareau <olivier.gareau@protonmail.com>, 2018. -# Rémi Verschelde <akien@godotengine.org>, 2018, 2019, 2020, 2021. # Rémi Bintein <reminus5@hotmail.fr>, 2018, 2019. # Sylvain Corsini <sylvain.corsini@gmail.com>, 2018. # Caye Pierre <pierrecaye@laposte.net>, 2019. @@ -66,7 +65,7 @@ # Fabrice <fabricecipolla@gmail.com>, 2019. # Romain Paquet <titou.paquet@gmail.com>, 2019. # Xavier Sellier <contact@binogure-studio.com>, 2019. -# Sofiane <Sofiane-77@caramail.fr>, 2019, 2021. +# Sofiane <Sofiane-77@caramail.fr>, 2019, 2021, 2022. # Camille Mohr-Daurat <pouleyketchoup@gmail.com>, 2019. # Pierre Stempin <pierre.stempin@gmail.com>, 2019. # Pierre Caye <pierrecaye@laposte.net>, 2020, 2021, 2022. @@ -97,13 +96,16 @@ # Zachary Dionne <zachary.dionne.01@gmail.com>, 2022. # Fares Setbel <fares.setbels@gmail.com>, 2022. # Nathan Hamy <hamynathan92@gmail.com>, 2022. +# HOUA <ninjacowzx@gmail.com>, 2022. +# DinosaurHorseSword <ewenlandry@mailfence.com>, 2022. +# Arnaud Lier <arnaud@ric-rac.org>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-05-31 22:33+0000\n" -"Last-Translator: Maxime Leroy <lisacintosh@gmail.com>\n" +"PO-Revision-Date: 2022-07-03 00:44+0000\n" +"Last-Translator: Sofiane <Sofiane-77@caramail.fr>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" "Language: fr\n" @@ -111,7 +113,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -142,9 +144,8 @@ msgid "Delta Smoothing" msgstr "Lissage de Delta" #: core/bind/core_bind.cpp -#, fuzzy msgid "Low Processor Usage Mode" -msgstr "Mode d'utilisation du processeur bas en ressources" +msgstr "Mode d'Utilisation Faible du Processeur" #: core/bind/core_bind.cpp msgid "Low Processor Usage Mode Sleep (µsec)" @@ -281,9 +282,8 @@ msgid "Command Queue" msgstr "File d’Attente de Commandes" #: core/command_queue_mt.cpp -#, fuzzy msgid "Multithreading Queue Size (KB)" -msgstr "Taille de la file du Multi-tache (KB)" +msgstr "Taille de la fille d'attente Multi-Tache (KB)" #: core/func_ref.cpp modules/visual_script/visual_script_builtin_funcs.cpp #: modules/visual_script/visual_script_func_nodes.cpp @@ -319,7 +319,7 @@ msgstr "" #: core/io/http_client.cpp msgid "Blocking Mode Enabled" -msgstr "" +msgstr "Mode De Blocage Activé" #: core/io/http_client.cpp msgid "Connection" @@ -375,15 +375,15 @@ msgstr "" #: core/io/stream_peer.cpp msgid "Big Endian" -msgstr "" +msgstr "Gros-boutiste" #: core/io/stream_peer.cpp msgid "Data Array" -msgstr "" +msgstr "Tableau de données" #: core/io/stream_peer_ssl.cpp msgid "Blocking Handshake" -msgstr "" +msgstr "Blocage de la poignée de main" #: core/io/udp_server.cpp msgid "Max Pending Connections" @@ -444,21 +444,19 @@ msgstr "État" #: core/message_queue.cpp msgid "Message Queue" -msgstr "" +msgstr "File d'Attente de Message" #: core/message_queue.cpp msgid "Max Size (KB)" msgstr "Taille Maximale (KB)" #: core/os/input.cpp -#, fuzzy msgid "Mouse Mode" -msgstr "Mode déplacement" +msgstr "Mode De Déplacement Souris" #: core/os/input.cpp -#, fuzzy msgid "Use Accumulated Input" -msgstr "Supprimer l'entrée" +msgstr "Utiliser l'entrée accumulée" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: servers/audio_server.cpp @@ -479,12 +477,17 @@ msgstr "Contrôle" #: core/os/input_event.cpp msgid "Meta" -msgstr "" +msgstr "Méta" #: core/os/input_event.cpp msgid "Command" msgstr "Commande" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (physique)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -492,14 +495,12 @@ msgid "Pressed" msgstr "Pressé" #: core/os/input_event.cpp -#, fuzzy msgid "Scancode" msgstr "Scancode" #: core/os/input_event.cpp -#, fuzzy msgid "Physical Scancode" -msgstr "Touche physique" +msgstr "Code de Scan Physique" #: core/os/input_event.cpp msgid "Unicode" @@ -507,12 +508,11 @@ msgstr "Unicode" #: core/os/input_event.cpp msgid "Echo" -msgstr "" +msgstr "Écho" #: core/os/input_event.cpp scene/gui/base_button.cpp -#, fuzzy msgid "Button Mask" -msgstr "Bouton" +msgstr "Masque Bouton" #: core/os/input_event.cpp scene/2d/node_2d.cpp scene/gui/control.cpp msgid "Global Position" @@ -531,7 +531,6 @@ msgid "Doubleclick" msgstr "Double clique" #: core/os/input_event.cpp -#, fuzzy msgid "Tilt" msgstr "Inclinaison" @@ -572,7 +571,7 @@ msgstr "Action" #: core/os/input_event.cpp scene/resources/environment.cpp #: scene/resources/material.cpp msgid "Strength" -msgstr "" +msgstr "Force" #: core/os/input_event.cpp msgid "Delta" @@ -606,7 +605,7 @@ msgstr "Numéro du contrôleur" #: core/os/input_event.cpp msgid "Controller Value" -msgstr "" +msgstr "Valeur du controller" #: core/project_settings.cpp editor/editor_node.cpp main/main.cpp #: platform/iphone/export/export.cpp platform/osx/export/export.cpp @@ -619,9 +618,8 @@ msgid "Config" msgstr "Config" #: core/project_settings.cpp -#, fuzzy msgid "Project Settings Override" -msgstr "Paramètres du projet..." +msgstr "Remplacement Des Paramètres du Projet" #: core/project_settings.cpp core/resource.cpp #: editor/animation_track_editor.cpp editor/editor_autoload_settings.cpp @@ -663,9 +661,8 @@ msgid "Disable stderr" msgstr "Désactiver stderr" #: core/project_settings.cpp -#, fuzzy msgid "Use Hidden Project Data Directory" -msgstr "Utiliser un Répertoire de Données du Projet Caché" +msgstr "Utiliser un Répertoire Caché Pour Les Données du Projet" #: core/project_settings.cpp msgid "Use Custom User Dir" @@ -678,15 +675,14 @@ msgstr "Nom du Répertoire Utilisateur Personnalisé" #: core/project_settings.cpp main/main.cpp #: platform/javascript/export/export.cpp platform/osx/export/export.cpp #: platform/uwp/os_uwp.cpp -#, fuzzy msgid "Display" -msgstr "Tout afficher" +msgstr "Affichage" #: core/project_settings.cpp main/main.cpp modules/csg/csg_shape.cpp #: modules/opensimplex/noise_texture.cpp scene/2d/line_2d.cpp #: scene/3d/label_3d.cpp scene/gui/text_edit.cpp scene/resources/texture.cpp msgid "Width" -msgstr "" +msgstr "Largeur" #: core/project_settings.cpp main/main.cpp modules/csg/csg_shape.cpp #: modules/gltf/gltf_node.cpp modules/opensimplex/noise_texture.cpp @@ -694,23 +690,20 @@ msgstr "" #: scene/resources/capsule_shape_2d.cpp scene/resources/cylinder_shape.cpp #: scene/resources/font.cpp scene/resources/navigation_mesh.cpp #: scene/resources/primitive_meshes.cpp scene/resources/texture.cpp -#, fuzzy msgid "Height" -msgstr "Lumière" +msgstr "Hauteur" #: core/project_settings.cpp msgid "Always On Top" -msgstr "" +msgstr "Toujours Au Dessus" #: core/project_settings.cpp -#, fuzzy msgid "Test Width" -msgstr "Étendu à Gauche" +msgstr "Tester la Largeur" #: core/project_settings.cpp -#, fuzzy msgid "Test Height" -msgstr "En période de test" +msgstr "Tester la Hauteur" #: core/project_settings.cpp editor/animation_track_editor.cpp #: editor/editor_audio_buses.cpp main/main.cpp servers/audio_server.cpp @@ -734,9 +727,8 @@ msgid "Main Run Args" msgstr "Arguments de la scène principale :" #: core/project_settings.cpp -#, fuzzy msgid "Scene Naming" -msgstr "Chemin de la scène :" +msgstr "Noms de scènes" #: core/project_settings.cpp msgid "Search In File Extensions" @@ -747,14 +739,12 @@ msgid "Script Templates Search Path" msgstr "" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Autoload On Startup" -msgstr "Système de contrôle de version" +msgstr "Chargement automatique de la version de contrôle au démarrage" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Plugin Name" -msgstr "Contrôle de version" +msgstr "Nom de l'extension de version de contrôle" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -776,38 +766,33 @@ msgid "UI Cancel" msgstr "Annuler" #: core/project_settings.cpp -#, fuzzy msgid "UI Focus Next" -msgstr "Focaliser le chemin" +msgstr "Focus suivant" #: core/project_settings.cpp -#, fuzzy msgid "UI Focus Prev" -msgstr "Focaliser le chemin" +msgstr "Focus précédent" #: core/project_settings.cpp -#, fuzzy msgid "UI Left" -msgstr "En haut à gauche" +msgstr "Gauche" #: core/project_settings.cpp -#, fuzzy msgid "UI Right" -msgstr "En haut à droite" +msgstr "Droite" #: core/project_settings.cpp msgid "UI Up" msgstr "" #: core/project_settings.cpp -#, fuzzy msgid "UI Down" -msgstr "Descendre" +msgstr "Bas" #: core/project_settings.cpp #, fuzzy msgid "UI Page Up" -msgstr "Page :" +msgstr "Page Haut" #: core/project_settings.cpp msgid "UI Page Down" @@ -818,9 +803,8 @@ msgid "UI Home" msgstr "" #: core/project_settings.cpp -#, fuzzy msgid "UI End" -msgstr "À la fin" +msgstr "Fin" #: core/project_settings.cpp main/main.cpp modules/bullet/register_types.cpp #: modules/bullet/space_bullet.cpp scene/2d/physics_body_2d.cpp @@ -846,7 +830,7 @@ msgstr "3D" #: core/project_settings.cpp #, fuzzy msgid "Smooth Trimesh Collision" -msgstr "Créer une collision Trimesh" +msgstr "Collision Lisse Trimesh" #: core/project_settings.cpp drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles2/rasterizer_scene_gles2.cpp @@ -903,9 +887,8 @@ msgid "Profiler" msgstr "Profileur" #: core/project_settings.cpp -#, fuzzy msgid "Max Functions" -msgstr "Faire fonction" +msgstr "Nombre maximum de fonctions" #: core/project_settings.cpp scene/3d/vehicle_body.cpp msgid "Compression" @@ -952,9 +935,8 @@ msgid "TCP" msgstr "TCP" #: core/register_core_types.cpp -#, fuzzy msgid "Connect Timeout Seconds" -msgstr "Connexions à la méthode :" +msgstr "Délai d'expiration de la connexion en secondes" #: core/register_core_types.cpp msgid "Packet Peer Stream" @@ -1126,9 +1108,8 @@ msgid "Scale" msgstr "Mode mise à l'échelle" #: drivers/gles3/rasterizer_scene_gles3.cpp -#, fuzzy msgid "Follow Surface" -msgstr "Remplir la surface" +msgstr "Suivre la surface" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Weight Samples" @@ -5691,6 +5672,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Sélection de la GridMap" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8146,11 +8132,20 @@ msgid "New Anim" msgstr "Nouvelle animation" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Créer une nouvelle animation" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Modifier le nom de l'animation :" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Renommer l'animation" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Supprimer l'animation ?" @@ -8168,11 +8163,6 @@ msgid "Animation name already exists!" msgstr "Ce nom d'animation existe déjà !" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Renommer l'animation" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Dupliquer l'animation" @@ -8317,10 +8307,6 @@ msgid "Pin AnimationPlayer" msgstr "Épingler AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Créer une nouvelle animation" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nom de l'animation :" @@ -9896,7 +9882,7 @@ msgstr "Créer le contour" #: scene/resources/multimesh.cpp scene/resources/primitive_meshes.cpp #: scene/resources/texture.cpp msgid "Mesh" -msgstr "Maillages" +msgstr "Mesh" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Body" @@ -18938,6 +18924,11 @@ msgid "The package must have at least one '.' separator." msgstr "Le paquet doit comporter au moins un séparateur « . »." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Nœud Personnalisé" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18946,6 +18937,14 @@ msgstr "" msgid "Export Format" msgstr "Chemin d'exportation" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "Min SDK" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "Target SDK" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18989,15 +18988,6 @@ msgstr "Inspecter l'instance précédente" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "SDK Minimal" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Cible" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19036,14 +19026,12 @@ msgid "OpenGL Debug" msgstr "Ouvrir" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "XR Features" -msgstr "Fonctionnalités" +msgstr "Fonctionnalités XR" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "XR Mode" -msgstr "Mode navigation" +msgstr "Mode XR" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -19250,17 +19238,16 @@ msgstr "« Use Custom Build » doit être activé pour utiliser les plugins." #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" -"« Hand Tracking » est valide uniquement lorsque le « Mode Xr » est « Oculus " +"« Hand Tracking » est valide uniquement lorsque le « Mode XR » est « Oculus " "Mobile VrApi »." #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" -"« Passthrough » est valide uniquement lorsque le « Xr Mode » est « Oculus " -"Mobile VrApi »." +"« Passthrough » est valide uniquement lorsque le « Mode XR » est « OpenXR »." #: platform/android/export/export_plugin.cpp msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." @@ -19270,24 +19257,44 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" -"Changer « Min Sdk » est valide uniquement lorsque l'option « Use Custom " +"Changer « Min SDK » est valide uniquement lorsque l'option « Use Custom " "Build » est activée." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" -"Changer « Target Sdk » est valide uniquement lorsque l'option « Use Custom " +"Changer « Target SDK » est valide uniquement lorsque l'option « Use Custom " "Build » est activée." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" -"La version « Target Sdk » doit être supérieure ou égale à la version « Min " -"Sdk »." + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." +msgstr "" +"La version « Target SDK » doit être supérieure ou égale à la version « Min " +"SDK »." #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp #: platform/windows/export/export.cpp @@ -21000,7 +21007,7 @@ msgstr "Zoomer" msgid "Custom Viewport" msgstr "1 vue" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21762,11 +21769,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Modifier la connexion :" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Liaison" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Choisissez distance :" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Choisissez distance :" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Options avancées" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Activer" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21784,16 +21823,6 @@ msgstr "Retourner horizontalement" msgid "Max Speed" msgstr "Vitesse :" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Choisissez distance :" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Activer" - #: scene/2d/navigation_agent_2d.cpp #, fuzzy msgid "" @@ -22888,7 +22917,7 @@ msgstr "Aimanter au pixel" #: scene/3d/label_3d.cpp scene/3d/sprite_3d.cpp msgid "Billboard" -msgstr "" +msgstr "Billboard" #: scene/3d/label_3d.cpp scene/3d/sprite_3d.cpp #, fuzzy @@ -23056,6 +23085,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformation annulée." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25231,6 +25267,11 @@ msgstr "Dossier :" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Sélection uniquement" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Activer" @@ -25632,18 +25673,6 @@ msgstr "Chemin d'exportation" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Ce Viewport n'est pas sélectionné comme cible de rendu. Si vous avez " -"l'intention d'afficher son contenu directement à l'écran, rattachez-le à un " -"nœud de type Control afin qu'il en obtienne une taille. Sinon, faites-en une " -"RenderTarget et assignez sa texture à un nœud pouvant l'afficher." - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -25651,6 +25680,15 @@ msgstr "" "dans les deux sens pour que le rendu soit possible." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27103,14 +27141,12 @@ msgid "Point Size" msgstr "Vue de devant" #: scene/resources/material.cpp -#, fuzzy msgid "Billboard Mode" -msgstr "Mode Règle" +msgstr "Mode billboard" #: scene/resources/material.cpp -#, fuzzy msgid "Billboard Keep Scale" -msgstr "Mode Règle" +msgstr "Garder l'échelle du billboard" #: scene/resources/material.cpp msgid "Grow" @@ -27168,7 +27204,7 @@ msgstr "" #: scene/resources/material.cpp msgid "Rim" -msgstr "" +msgstr "Bordure" #: scene/resources/material.cpp #, fuzzy @@ -27400,6 +27436,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Générer AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Décalage :" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/ga.po b/editor/translations/ga.po index 884214d851..65ffebf3e5 100644 --- a/editor/translations/ga.po +++ b/editor/translations/ga.po @@ -393,6 +393,11 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Scagairí..." + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5291,6 +5296,10 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +msgid "Drag And Drop Selection" +msgstr "" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7598,11 +7607,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7620,11 +7638,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7767,10 +7780,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -17820,6 +17829,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Cruthaigh" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -17827,6 +17841,15 @@ msgstr "" msgid "Export Format" msgstr "" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Nód Cumaisc2" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -17863,15 +17886,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Nód Cumaisc2" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18093,12 +18107,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18107,17 +18121,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19656,7 +19690,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20331,35 +20365,55 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Ábhar:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Target Desired Distance" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Pathfinding" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Path Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Scagairí..." #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy msgid "Avoidance Enabled" msgstr "Scagairí..." +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Neighbors" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -21452,6 +21506,13 @@ msgstr "" msgid "Transform Normals" msgstr "" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23373,6 +23434,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Scagairí..." + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Scagairí..." @@ -23734,16 +23800,17 @@ msgstr "Cosán" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25350,6 +25417,14 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/gl.po b/editor/translations/gl.po index 398746ea6a..c8dd75ade3 100644 --- a/editor/translations/gl.po +++ b/editor/translations/gl.po @@ -425,6 +425,11 @@ msgstr "" msgid "Command" msgstr "Comunidade" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fotograma de Física %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5642,6 +5647,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Encadrar Selección" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8091,11 +8101,20 @@ msgid "New Anim" msgstr "Nova Animación" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Renomear Animación" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Eliminar Animación?" @@ -8113,11 +8132,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Renomear Animación" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplicar Animación" @@ -8261,10 +8275,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nome da Animación:" @@ -18796,6 +18806,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Cortar Nodos" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18804,6 +18819,16 @@ msgstr "" msgid "Export Format" msgstr "Formato" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Tamaño: " + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Obxectivo" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18843,16 +18868,6 @@ msgstr "Anterior Pestana" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Tamaño: " - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Obxectivo" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19102,12 +19117,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19116,17 +19131,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20782,7 +20817,7 @@ msgstr "Aumentar Zoom" msgid "Custom Viewport" msgstr "1 Ventá" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21515,11 +21550,42 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Editar Conexión:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Pegar Animación" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Elexir unha Escena Principal" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Max Distance" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Avanzado" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Activar" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21537,15 +21603,6 @@ msgstr "Horizontal:" msgid "Max Speed" msgstr "Velocidade:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Activar" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -22752,6 +22809,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformación" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24868,6 +24932,11 @@ msgstr "Cartafol:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Só a Selección" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Activar" @@ -25264,18 +25333,6 @@ msgid "Viewport Path" msgstr "1 Ventá" #: scene/main/viewport.cpp -msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Esta Mini-Ventá (Viewport) no está configurada como obxectivo de " -"renderizado. Se quere que o seu contido se mostre directamente na pantalla, " -"convértao nun nodo fillo dun nodo Control para que poida recibir dimensións. " -"Ou ben, fágao un RenderTarget e asigne a súa textura a algún nodo." - -#: scene/main/viewport.cpp #, fuzzy msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " @@ -25285,6 +25342,15 @@ msgstr "" "renderizar nada." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27026,6 +27092,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Offset:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/he.po b/editor/translations/he.po index 78c74fd01b..d37f806bb7 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -423,6 +423,11 @@ msgstr "" msgid "Command" msgstr "פיקוד" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "פיזיקה" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5557,6 +5562,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "GridMap מילוי הבחירה" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8059,11 +8069,20 @@ msgid "New Anim" msgstr "הנפשה חדשה" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "יצירת הנפשה חדשה" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "שינוי שם הנפשה:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "שינוי שם הנפשה" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "מחיקת אנימציה?" @@ -8081,11 +8100,6 @@ msgid "Animation name already exists!" msgstr "שם ההנפשה כבר קיים!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "שינוי שם הנפשה" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "שכפול הנפשה" @@ -8229,10 +8243,6 @@ msgid "Pin AnimationPlayer" msgstr "הצמדת AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "יצירת הנפשה חדשה" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "שם הנפשה:" @@ -18932,6 +18942,11 @@ msgid "The package must have at least one '.' separator." msgstr "החבילה חייבת לכלול לפחות מפריד '.' אחד." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "גזירת מפרקים" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18940,6 +18955,16 @@ msgstr "" msgid "Export Format" msgstr "ייצוא מיזם" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "מבט קדמי" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "נתיב המשאב" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18980,16 +19005,6 @@ msgstr "בדיקת המופע הקודם" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "מבט קדמי" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "נתיב המשאב" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19244,13 +19259,13 @@ msgstr "חובה לאפשר ״שימוש בבניה מותאמת אישית״ כ #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "\"Hand Tracking\" תקף רק כאשר \"מצב Xr\" הוא \"Oculus Mobile VR\"." #: platform/android/export/export_plugin.cpp #, fuzzy -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "\"Hand Tracking\" תקף רק כאשר \"מצב Xr\" הוא \"Oculus Mobile VR\"." #: platform/android/export/export_plugin.cpp @@ -19259,17 +19274,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20942,7 +20977,7 @@ msgstr "התקרבות" msgid "Custom Viewport" msgstr "מבט תחתי" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21676,11 +21711,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "עריכת חיבור:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "קישור" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "בחירת מרחק:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "בחירת מרחק:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "מתקדם" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "הפעלה" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21697,16 +21764,6 @@ msgstr "" msgid "Max Speed" msgstr "מהירות (FPS):" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "בחירת מרחק:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "הפעלה" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -22927,6 +22984,13 @@ msgstr "" msgid "Transform Normals" msgstr "התמרה" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25055,6 +25119,11 @@ msgstr "יצירת תיקייה" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "בחירה בלבד" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "הפעלה" @@ -25457,17 +25526,6 @@ msgid "Viewport Path" msgstr "ייצוא מיזם" #: scene/main/viewport.cpp -msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"חלון תצוגה זה אינו מוגדר כיעד עיבוד. להצגת התוכן ישירות למסך, יש להפוך אותו " -"לצאצא של בקר כדי שיקבל גודל. או להפוך אותו ל-RenderTarget ולשייך את המרקם " -"הפנימי שלו למפרק כלשהו לתצוגה." - -#: scene/main/viewport.cpp #, fuzzy msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " @@ -25475,6 +25533,15 @@ msgid "" msgstr "גודל חלון התצוגה חייב להיות גדול מ-0 על מנת להציג משהו." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27220,6 +27287,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "היסט רשת:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/hi.po b/editor/translations/hi.po index 2486887cac..0e6bb551e4 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -406,6 +406,11 @@ msgstr "" msgid "Command" msgstr "समुदाय" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "फिजिक्स फ्रेम %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5562,6 +5567,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "सभी खंड" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7982,11 +7992,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -8004,11 +8023,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -8151,10 +8165,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18576,6 +18586,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "प्रतिलिपि" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18584,6 +18599,16 @@ msgstr "" msgid "Export Format" msgstr "एनीमेशन परिवर्तन परिणत" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "आकार: " + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "नोड हटाएं" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18622,16 +18647,6 @@ msgstr "पिछला टैब" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "आकार: " - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "नोड हटाएं" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18872,12 +18887,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18886,17 +18901,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20534,7 +20569,7 @@ msgstr "बड़ा करो" msgid "Custom Viewport" msgstr "व्यूपोर्ट चुनें" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21238,34 +21273,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "कनेक्शन संपादित करें:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "कोन्स्टन्ट" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "एक मुख्य दृश्य चुनें" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "अग्रवर्ती" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "सक्रिय करे" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "सक्रिय करे" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22410,6 +22467,13 @@ msgstr "" msgid "Transform Normals" msgstr "सदस्यता बनाएं" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24452,6 +24516,11 @@ msgstr "फ़ोल्डर:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "सिर्फ चयन किये हुए" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "सक्रिय करे" @@ -24846,16 +24915,17 @@ msgstr "फ़ोकस पाथ" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26567,6 +26637,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "मिटाना" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/hr.po b/editor/translations/hr.po index c9a87722f5..c1a9a444cc 100644 --- a/editor/translations/hr.po +++ b/editor/translations/hr.po @@ -408,6 +408,11 @@ msgstr "" msgid "Command" msgstr "Zajednica" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Omogući" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5381,6 +5386,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Izbriši Odabir" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7754,11 +7764,20 @@ msgid "New Anim" msgstr "Nova Animacija" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Kreiraj Novu Animaciju" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Promijeni Ime Animacije:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Preimenuj animaciju" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Obrisati Animaciju?" @@ -7776,11 +7795,6 @@ msgid "Animation name already exists!" msgstr "Animacija sa ovim imenom već postoji!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Preimenuj animaciju" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Dupliciraj Animaciju" @@ -7923,10 +7937,6 @@ msgid "Pin AnimationPlayer" msgstr "Pinuj AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Kreiraj Novu Animaciju" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Ime Animacije:" @@ -18135,6 +18145,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Pomakni Bezier Točke" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18143,6 +18158,16 @@ msgstr "" msgid "Export Format" msgstr "Izvoz" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Glavna skripta:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Premjesti čvor(node)" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18179,16 +18204,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Glavna skripta:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Premjesti čvor(node)" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18419,12 +18434,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18433,17 +18448,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20025,7 +20060,7 @@ msgstr "Zumiraj" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20719,34 +20754,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Uredi vezu:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Zalijepi Animaciju" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Instaliraj" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Napredno" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Omogući" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Omogući" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -21869,6 +21926,13 @@ msgstr "" msgid "Transform Normals" msgstr "Način Ravnala" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23864,6 +23928,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Samo odabir" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Omogući" @@ -24241,16 +24310,17 @@ msgstr "Put" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25931,6 +26001,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Promijeni vrstu baze:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/hu.po b/editor/translations/hu.po index 5ee85051da..5bfd5b0995 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -445,6 +445,11 @@ msgstr "" msgid "Command" msgstr "Közösség" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fizika Keret %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5670,6 +5675,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Kijelölés Keretezése" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8130,11 +8140,20 @@ msgid "New Anim" msgstr "Új Animáció" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Új Animáció Létrehozása" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Animáció Nevének Megváltoztatása:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Animáció Átnevezése" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Animáció Törlése?" @@ -8152,11 +8171,6 @@ msgid "Animation name already exists!" msgstr "Az animáció név már létezik!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Animáció Átnevezése" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Animáció Megkettőzése" @@ -8301,10 +8315,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Új Animáció Létrehozása" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Animáció Neve:" @@ -18763,6 +18773,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Node-ok kivágása" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18771,6 +18786,16 @@ msgstr "" msgid "Export Format" msgstr "Exportálási Útvonal" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Körvonal Mérete:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Cél Felület:" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18810,16 +18835,6 @@ msgstr "Előző lap" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Körvonal Mérete:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Cél Felület:" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19065,12 +19080,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19079,17 +19094,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20740,7 +20775,7 @@ msgstr "Nagyítás" msgid "Custom Viewport" msgstr "Nézet Megjelenítése" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21467,34 +21502,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Kapcsolat szerkesztése:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Véletlenszerű Forgatás:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Válasszon egy Fő Jelenetet" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Speciális" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Engedélyezés" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Engedélyezés" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22682,6 +22739,13 @@ msgstr "" msgid "Transform Normals" msgstr "Átalakítás Megszakítva." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24778,6 +24842,11 @@ msgstr "Mappa:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Csak kijelölés" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Engedélyezés" @@ -25180,20 +25249,17 @@ msgstr "Exportálási Útvonal" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" -"Ez a nézetablak nincs beállítva leképezési célnak. Ha azt szeretné, hogy a " -"tartalma közvetlenül a képernyőn jelenjen meg, tegye azt egy Control " -"gyermekévé, hogy így kapjon méretet. Ellenkező esetben tegye RenderTarget-" -"té, és állítsa hozzá a belső textúráját valamilyen node-hoz kirajzolásra." #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26941,6 +27007,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "AABB Generálása" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Rács Eltolás:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/id.po b/editor/translations/id.po index 4788d2a7c2..57c1a69e92 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -425,6 +425,11 @@ msgstr "Meta" msgid "Command" msgstr "Perintah" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (Secara fisik)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5601,6 +5606,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "Tombol Ekstra Mouse Navigasi Riwayat" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Isi Seleksi GridMap" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "Penampilan" @@ -8036,11 +8046,20 @@ msgid "New Anim" msgstr "Animasi Baru" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Buat Animasi Baru" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Ubah Nama Animasi:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Ubah Nama Animasi" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Hapus Animasi?" @@ -8058,11 +8077,6 @@ msgid "Animation name already exists!" msgstr "Nama animasi sudah ada!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Ubah Nama Animasi" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Gandakan Animasi" @@ -8206,10 +8220,6 @@ msgid "Pin AnimationPlayer" msgstr "Sematkan AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Buat Animasi Baru" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nama Animasi:" @@ -18874,6 +18884,11 @@ msgstr "Package setidaknya harus memiliki sebuah pemisah '.'." #: platform/android/export/export_plugin.cpp #, fuzzy +msgid "Custom Build" +msgstr "Gunakan Direktori Pengguna Kustom" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "Use Custom Build" msgstr "Gunakan Direktori Pengguna Kustom" @@ -18882,6 +18897,16 @@ msgstr "Gunakan Direktori Pengguna Kustom" msgid "Export Format" msgstr "Lokasi Ekspor" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Ukuran Garis Tepi:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "FPS Sasaran" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18924,16 +18949,6 @@ msgstr "Inspeksi Instance Sebelumnya" msgid "Code" msgstr "Kode" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Ukuran Garis Tepi:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "FPS Sasaran" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19174,7 +19189,7 @@ msgstr "\"Gunakan Build Custom\" harus diaktifkan untuk menggunakan plugin." #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Pelacakan Tangan\" hanya valid ketika \"Mode Xr\" bernilai \"Oculus Mobile " @@ -19182,7 +19197,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "\"Pelacakan Tangan\" hanya valid ketika \"Mode Xr\" bernilai \"Oculus Mobile " "VR\"." @@ -19195,20 +19210,41 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Expor AAB\" hanya bisa valid ketika \"Gunakan Build Custom\" diaktifkan." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Expor AAB\" hanya bisa valid ketika \"Gunakan Build Custom\" diaktifkan." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "Versi \"Target SDK\" harus lebih tinggi atau sama dengan versi \"Min SDK\"." @@ -20881,7 +20917,7 @@ msgstr "Perbesar Pandangan" msgid "Custom Viewport" msgstr "Penampil Kustom" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21618,11 +21654,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Sunting Koneksi:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Mengikat" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Target Jarak yang Diinginkan" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "Target Jarak yang Diinginkan" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Pilih Jarak:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Lanjut" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Aktifkan" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21639,16 +21707,6 @@ msgstr "Balik secara Horizontal" msgid "Max Speed" msgstr "Kecepatan Maks" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Pilih Jarak:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Aktifkan" - #: scene/2d/navigation_agent_2d.cpp #, fuzzy msgid "" @@ -22849,6 +22907,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformasi Dibatalkan." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "Vektor Atas" @@ -25018,6 +25083,11 @@ msgstr "Direktori:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Hanya yang Dipilih" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Aktifkan" @@ -25424,19 +25494,6 @@ msgid "Viewport Path" msgstr "Lokasi Ekspor" #: scene/main/viewport.cpp -msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Viewport ini tidak diatur sebagai target render. Jika anda berniat untuk " -"menampilkan konten-kontennya secara langsung ke layar, jadikan viewport ini " -"sebagai child dari sebuah Control agar ia bisa memperoleh ukuran. Jika " -"tidak, jadikan sebagai RenderTarget dan tetapkan tekstur internal nya ke " -"beberapa node untuk ditampilkan." - -#: scene/main/viewport.cpp #, fuzzy msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " @@ -25444,6 +25501,15 @@ msgid "" msgstr "Ukuran viewport harus lebih besar dari 0 untuk me-render apa pun." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27214,6 +27280,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Membuat AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Pengimbangan:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/is.po b/editor/translations/is.po index ea3301ce7f..d5353421d4 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -401,6 +401,10 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +msgid "Physical" +msgstr "" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5368,6 +5372,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Allt úrvalið" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7707,11 +7716,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7729,11 +7747,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7877,10 +7890,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18081,6 +18090,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Tvíteknir lyklar" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18089,6 +18103,15 @@ msgstr "" msgid "Export Format" msgstr "Breyta umbreytingu" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Anim DELETE-lyklar" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18125,15 +18148,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Anim DELETE-lyklar" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18361,12 +18375,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18375,17 +18389,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19932,7 +19966,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20617,35 +20651,55 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Breyta Tengingu: " -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Target Desired Distance" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Pathfinding" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Path Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Fjarlægja val" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy msgid "Avoidance Enabled" msgstr "Fjarlægja val" +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Neighbors" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -21755,6 +21809,13 @@ msgstr "" msgid "Transform Normals" msgstr "" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23688,6 +23749,11 @@ msgid "Fold Gutter" msgstr "" #: scene/gui/text_edit.cpp +#, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Afrita val" + +#: scene/gui/text_edit.cpp msgid "Hiding Enabled" msgstr "" @@ -24059,16 +24125,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25715,6 +25782,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Fjarlægja val" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/it.po b/editor/translations/it.po index c529c06241..e693139e21 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -68,13 +68,14 @@ # Alfonso Scarpino <alfonso.scarpino@gmail.com>, 2022. # Federico Caprini <caprinifede@gmail.com>, 2022. # Alessandro Casalino <alessandro.casalino93@gmail.com>, 2022. +# conecat <ilgrandemax190@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-19 11:52+0000\n" -"Last-Translator: Mirko <miknsop@gmail.com>\n" +"PO-Revision-Date: 2022-07-04 05:16+0000\n" +"Last-Translator: conecat <ilgrandemax190@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" "Language: it\n" @@ -419,14 +420,12 @@ msgid "Max Size (KB)" msgstr "Dimensione Massima (KB)" #: core/os/input.cpp -#, fuzzy msgid "Mouse Mode" -msgstr "Modalità spostamento" +msgstr "Modalità Mouse" #: core/os/input.cpp -#, fuzzy msgid "Use Accumulated Input" -msgstr "Elimina Input" +msgstr "Usa Input Accumulato" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: servers/audio_server.cpp @@ -453,6 +452,11 @@ msgstr "Meta" msgid "Command" msgstr "Comando" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (Fisico)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -1237,9 +1241,8 @@ msgid "Animation" msgstr "Animazione" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Easing" -msgstr "Easing" +msgstr "Allentamento" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Keyframe Time" @@ -1353,14 +1356,12 @@ msgid "Time (s):" msgstr "Tempo (s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Position:" -msgstr "Posizione" +msgstr "Posizione:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rotation:" -msgstr "Rotazione" +msgstr "Rotazione:" #: editor/animation_track_editor.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1382,9 +1383,8 @@ msgid "(Invalid, expected type: %s)" msgstr "Template di esportazione non valido:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Easing:" -msgstr "Easing" +msgstr "Allentamento:" #: editor/animation_track_editor.cpp #, fuzzy @@ -5573,6 +5573,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "Uso dei tasti aggiuntivi del mouse per navigare la cronologia" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Selezione GridMap" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "Aspetto" @@ -7930,11 +7935,20 @@ msgid "New Anim" msgstr "Nuova Animazione" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Crea Nuova Animazione" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Cambia Nome Animazione:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Rinomina Animazione" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Eliminare Animazione?" @@ -7952,11 +7966,6 @@ msgid "Animation name already exists!" msgstr "Nome animazione già esistente!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Rinomina Animazione" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplica Animazione" @@ -8100,10 +8109,6 @@ msgid "Pin AnimationPlayer" msgstr "Fissa AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Crea Nuova Animazione" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nome Animazione:" @@ -16241,8 +16246,9 @@ msgid "Flush stdout On Print" msgstr "Svuota stdout Alla Stampa" #: main/main.cpp servers/visual_server.cpp +#, fuzzy msgid "Logging" -msgstr "" +msgstr "Logging" #: main/main.cpp msgid "File Logging" @@ -18562,6 +18568,11 @@ msgid "The package must have at least one '.' separator." msgstr "Il pacchetto deve avere almeno un \".\" separatore." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Utilizza Build Personalizzata" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "Utilizza Build Personalizzata" @@ -18569,6 +18580,14 @@ msgstr "Utilizza Build Personalizzata" msgid "Export Format" msgstr "Formato Esportazione" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "SDK Min" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "Target SDK" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18607,14 +18626,6 @@ msgstr "Elimina Installazione Precedente" msgid "Code" msgstr "Codice" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "SDK Min" - -#: platform/android/export/export_plugin.cpp -msgid "Target SDK" -msgstr "Target SDK" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "Pacchetto" @@ -18856,7 +18867,7 @@ msgstr "Per utilizzare i plugin \"Use Custom Build\" deve essere abilitato." #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Hand Tracking\" è valido solo quando \"Xr Mode\" è impostato su \"Oculus " @@ -18864,7 +18875,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "\"Hand Tracking\" è valido solo quando \"Xr Mode\" è impostato su \"Oculus " "Mobile VR\"." @@ -18877,20 +18888,40 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Export AAB\" è valido soltanto quanto \"Use Custom Build\" è abilitato." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Export AAB\" è valido soltanto quanto \"Use Custom Build\" è abilitato." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -18905,10 +18936,8 @@ 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 "" -"Non è stato possibile trovare \"apksigner\".\n" -"Verificare che il comando sia disponibile nella directory degli strumenti di " -"compilazione Android SDK.\n" -"Il %s risultato non è firmato." +"'apksigner' non è stato trovato. Verificare che il comando sia disponibile " +"nella directory build-tools di Android SDK. Il risultato %s non è firmato." #: platform/android/export/export_plugin.cpp msgid "Signing debug %s..." @@ -19008,9 +19037,8 @@ msgid "" "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" "Compilazione del progetto Android fallita, controlla l'output per vedere gli " -"errori.\n" -"In alternativa, visita docs.godotengine.org per la documentazione della " -"build Android." +"errori. In alternativa, visita docs.godotengine.org per la documentazione " +"della build Android." #: platform/android/export/export_plugin.cpp msgid "Moving output" @@ -19045,10 +19073,9 @@ msgid "" "Please build a template with all required libraries, or uncheck the missing " "architectures in the export preset." msgstr "" -"Mancano librerie nel template di esportazione per le architetture " -"selezionate: %s.\n" -"Si prega di costruire un template con tutte le librerie richieste, o " -"deselezionare le architetture mancanti nel preset di esportazione." +"Librerie mancanti nel modello di esportazione per le architetture " +"selezionate: %s. Creare un modello con tutte le librerie richieste o " +"deselezionare le architetture mancanti nella preimpostazione di esportazione." #: platform/android/export/export_plugin.cpp msgid "Adding files..." @@ -20588,7 +20615,7 @@ msgstr "Ingrandisci" msgid "Custom Viewport" msgstr "1 Vista" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -20645,13 +20672,14 @@ msgid "Smoothing" msgstr "Graduale" #: scene/2d/camera_2d.cpp +#, fuzzy msgid "H" -msgstr "" +msgstr "H" #: scene/2d/camera_2d.cpp #, fuzzy msgid "V" -msgstr "UV" +msgstr "V" #: scene/2d/camera_2d.cpp #, fuzzy @@ -20962,7 +20990,7 @@ msgstr "Propagazione" #: scene/resources/particles_material.cpp #, fuzzy msgid "Initial Velocity" -msgstr "Inizializza" +msgstr "Velocità iniziale" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -20973,8 +21001,9 @@ msgstr "Velocità" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp servers/physics_2d_server.cpp #: servers/physics_server.cpp +#, fuzzy msgid "Angular Velocity" -msgstr "" +msgstr "Velocità angolare" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -20986,13 +21015,13 @@ msgstr "Velocità" #: scene/resources/particles_material.cpp #, fuzzy msgid "Orbit Velocity" -msgstr "Orbita la visuale a destra" +msgstr "Velocità orbitale" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp #, fuzzy msgid "Linear Accel" -msgstr "Lineare" +msgstr "Accelerazione lineare" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21013,13 +21042,15 @@ msgstr "Dividi Curva" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp +#, fuzzy msgid "Radial Accel" -msgstr "" +msgstr "Accelerazione radiale" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp +#, fuzzy msgid "Tangential Accel" -msgstr "" +msgstr "Accelerazione tangenziale" #: scene/2d/cpu_particles_2d.cpp scene/2d/joints_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/physics_body.cpp @@ -21363,11 +21394,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Modifica una connessione:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Associazione" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Scegli la Distanza:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Scegli la Distanza:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Opzioni avanzate" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Abilita" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21385,16 +21448,6 @@ msgstr "Ribalta orizzontalmente" msgid "Max Speed" msgstr "Velocità:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Scegli la Distanza:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Abilita" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -21858,12 +21911,14 @@ msgstr "" "Skeleton2D e impostane una." #: scene/2d/sprite.cpp scene/3d/sprite_3d.cpp +#, fuzzy msgid "Hframes" -msgstr "" +msgstr "Hframes" #: scene/2d/sprite.cpp scene/3d/sprite_3d.cpp +#, fuzzy msgid "Vframes" -msgstr "" +msgstr "Vframes" #: scene/2d/sprite.cpp scene/3d/sprite_3d.cpp #, fuzzy @@ -22121,8 +22176,9 @@ msgstr "Impacchettando" #: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp #: scene/3d/reflection_probe.cpp +#, fuzzy msgid "Interior" -msgstr "" +msgstr "Interno" #: scene/3d/baked_lightmap.cpp msgid "Finding meshes and lights" @@ -22262,8 +22318,9 @@ msgid "Projection" msgstr "Proiezione" #: scene/3d/camera.cpp +#, fuzzy msgid "FOV" -msgstr "" +msgstr "FOV" #: scene/3d/camera.cpp #, fuzzy @@ -22276,8 +22333,9 @@ msgid "Near" msgstr "Vicino" #: scene/3d/camera.cpp +#, fuzzy msgid "Far" -msgstr "" +msgstr "Lontano" #: scene/3d/camera.cpp scene/3d/collision_polygon.cpp scene/3d/spring_arm.cpp #: scene/gui/control.cpp scene/resources/default_theme/default_theme.cpp @@ -22462,8 +22520,9 @@ msgstr "" "Per rimuovere questo avviso, disattiva la proprietà Compress di GIProbe." #: scene/3d/gi_probe.cpp +#, fuzzy msgid "Subdiv" -msgstr "" +msgstr "Subdiv" #: scene/3d/gi_probe.cpp #, fuzzy @@ -22614,8 +22673,9 @@ msgid "Depth Range" msgstr "Profondità" #: scene/3d/light.cpp +#, fuzzy msgid "Omni" -msgstr "" +msgstr "Omni" #: scene/3d/light.cpp #, fuzzy @@ -22649,6 +22709,13 @@ msgstr "" msgid "Transform Normals" msgstr "Trasforma Normals" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -23348,8 +23415,9 @@ msgid "There should only be one RoomManager in the SceneTree." msgstr "Ci dovrebbe essere un solo RoomManager nello SceneTree." #: scene/3d/room_manager.cpp +#, fuzzy msgid "Main" -msgstr "" +msgstr "Principale" #: scene/3d/room_manager.cpp scene/animation/animation_blend_tree.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp @@ -23592,8 +23660,9 @@ msgid "Spring Length" msgstr "" #: scene/3d/sprite_3d.cpp scene/gui/graph_edit.cpp +#, fuzzy msgid "Opacity" -msgstr "" +msgstr "Opacità" #: scene/3d/sprite_3d.cpp scene/resources/material.cpp #, fuzzy @@ -23714,8 +23783,9 @@ msgid "Lightmap Scale" msgstr "" #: scene/3d/visual_instance.cpp +#, fuzzy msgid "LOD" -msgstr "" +msgstr "LOD" #: scene/3d/visual_instance.cpp scene/animation/skeleton_ik.cpp #: scene/resources/material.cpp @@ -24026,8 +24096,9 @@ msgid "Stretch Mode" msgstr "Modalità di Selezione" #: scene/gui/aspect_ratio_container.cpp scene/gui/box_container.cpp +#, fuzzy msgid "Alignment" -msgstr "" +msgstr "Allineamento" #: scene/gui/base_button.cpp #, fuzzy @@ -24812,6 +24883,11 @@ msgstr "Cartella:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Solo nella selezione" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Abilita" @@ -25219,19 +25295,6 @@ msgstr "Percorso di Esportazione" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Questo viewport non è impostato come target di render. Se si vuole che il " -"suo contenuto venga direttamente visualizzato sullo schermo, renderlo figlio " -"di un Control, in modo che possa ottenere una dimensione. Altrimenti, " -"renderlo un RenderTarget e assegnare la sua texture interna a qualche nodo " -"per la visualizzazione." - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -25239,6 +25302,15 @@ msgstr "" "entrambi i lati per visualizzare qualcosa." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27008,6 +27080,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Generando AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Scostamento:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/ja.po b/editor/translations/ja.po index 1ae3c9cf8c..3abcd5529f 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -430,6 +430,11 @@ msgstr "Meta" msgid "Command" msgstr "Command" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (物理的)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5567,6 +5572,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "GridMap の選択" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "外観" @@ -7983,11 +7993,20 @@ msgid "New Anim" msgstr "新規アニメーション" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "アニメーションを新規作成" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "アニメーション名を変更:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "アニメーションの名前を変更" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "アニメーションを削除しますか?" @@ -8005,11 +8024,6 @@ msgid "Animation name already exists!" msgstr "アニメーション名はすでに存在します!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "アニメーションの名前を変更" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "アニメーションを複製" @@ -8153,10 +8167,6 @@ msgid "Pin AnimationPlayer" msgstr "アニメーションプレーヤーを固定" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "アニメーションを新規作成" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "アニメーション名:" @@ -18661,6 +18671,11 @@ msgid "The package must have at least one '.' separator." msgstr "パッケージには一つ以上の区切り文字 '.' が必要です。" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "ノードを切り取る" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18669,6 +18684,15 @@ msgstr "" msgid "Export Format" msgstr "エクスポート先のパス" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "アウトラインのサイズ:" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "ターゲットSDK" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18712,15 +18736,6 @@ msgstr "前のインスタンスを調べる" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "アウトラインのサイズ:" - -#: platform/android/export/export_plugin.cpp -msgid "Target SDK" -msgstr "ターゲットSDK" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18968,15 +18983,17 @@ msgstr "" "になっている必要があります。" #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Hand Tracking\" は \"Xr Mode\" が \"Oculus Mobile VrApi\" または " "\"OpenXR\" の場合にのみ有効です。" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +#, fuzzy +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "\"Passthrough\" は \"Xr Mode\" が \"OpenXR\" の場合にのみ有効です。" #: platform/android/export/export_plugin.cpp @@ -18985,20 +19002,43 @@ msgstr "" "\"Export AAB\" は \"Use Custom Build\" が有効である場合にのみ有効になります。" #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Min Sdk\" の変更は \"Use Custom Build\" が有効である場合にのみ有効です。" #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Target Sdk\" の変更は \"Use Custom Build\" が有効である場合にのみ有効です。" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "\"Target Sdk\" バージョンは \"Min Sdk\" バージョン以上でなければなりません。" @@ -20681,7 +20721,7 @@ msgstr "ズーム" msgid "Custom Viewport" msgstr "1 ビューポート" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -21432,11 +21472,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "接続を編集:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "バインド" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "距離を取得:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "距離を取得:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "高度な設定" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "有効" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21454,16 +21526,6 @@ msgstr "左右反転" msgid "Max Speed" msgstr "速度:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "距離を取得:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "有効" - #: scene/2d/navigation_agent_2d.cpp #, fuzzy msgid "" @@ -22718,6 +22780,13 @@ msgstr "ソフトウェアスキニング" msgid "Transform Normals" msgstr "トランスフォームは中止されました。" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24900,6 +24969,11 @@ msgstr "フォルダー:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "選択範囲のみ" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "有効" @@ -25308,22 +25382,19 @@ msgstr "エクスポート先のパス" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" -"このビューポートはレンダー ターゲットとして設定されていません。コンテンツを画" -"面に直接表示する場合は、サイズを取得できるようにコントロールの子にします。そ" -"れ以外の場合は、RenderTarget にして、その内部テクスチャを表示するノードに割り" -"当てます。" +"レンダーするにはViewportの縦横それぞれが2ピクセル以上である必要があります。" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" -"レンダーするにはViewportの縦横それぞれが2ピクセル以上である必要があります。" #: scene/main/viewport.cpp msgid "ARVR" @@ -27095,6 +27166,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "AABBを生成中" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "オフセット:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/ka.po b/editor/translations/ka.po index 34914a67b6..14599ca68e 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -407,6 +407,11 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "დამაკავშირებელი სიგნალი:" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5496,6 +5501,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "ყველა მონიშნვა" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7909,11 +7919,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7931,11 +7950,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -8079,10 +8093,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18503,6 +18513,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "ანიმაციის გასაღებების ასლის შექმნა" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18511,6 +18526,16 @@ msgstr "" msgid "Export Format" msgstr "ანიმაციის გარდაქმნის ცვლილება" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "დამოკიდებულებების შემსწორებელი" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "წაშლა" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18547,16 +18572,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "დამოკიდებულებების შემსწორებელი" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "წაშლა" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18791,12 +18806,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18805,17 +18820,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20411,7 +20446,7 @@ msgstr "ზუმის გაზრდა" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21110,34 +21145,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "მონიშვნის მრუდის ცვლილება" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "მუდმივი" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "დაყენება" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "დაბალანსებული" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "დამაკავშირებელი სიგნალი:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "დამაკავშირებელი სიგნალი:" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22273,6 +22330,13 @@ msgstr "" msgid "Transform Normals" msgstr "შექმნა" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -24286,6 +24350,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "მონიშნული მხოლოდ" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "დამაკავშირებელი სიგნალი:" @@ -24668,16 +24737,17 @@ msgstr "გზა" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26366,6 +26436,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "მონიშვნის მოშორება" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/km.po b/editor/translations/km.po index 700f4f483c..32175987ef 100644 --- a/editor/translations/km.po +++ b/editor/translations/km.po @@ -385,6 +385,10 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +msgid "Physical" +msgstr "" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5257,6 +5261,10 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +msgid "Drag And Drop Selection" +msgstr "" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7545,11 +7553,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7567,11 +7584,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7714,10 +7726,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -17719,6 +17727,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Anim ផ្លាស់ប្តូរ Transform" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -17726,6 +17739,14 @@ msgstr "" msgid "Export Format" msgstr "" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -17762,14 +17783,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -msgid "Target SDK" -msgstr "" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -17988,12 +18001,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18002,17 +18015,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19520,7 +19553,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20176,32 +20209,51 @@ msgstr "" msgid "Edge Connection Margin" msgstr "" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Pathfinding" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Desired Distance" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Avoidance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Avoidance Enabled" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Avoidance Enabled" +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" msgstr "" #: scene/2d/navigation_agent_2d.cpp @@ -21270,6 +21322,13 @@ msgstr "" msgid "Transform Normals" msgstr "" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23134,6 +23193,10 @@ msgid "Fold Gutter" msgstr "" #: scene/gui/text_edit.cpp +msgid "Drag And Drop Selection Enabled" +msgstr "" + +#: scene/gui/text_edit.cpp msgid "Hiding Enabled" msgstr "" @@ -23486,16 +23549,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25032,6 +25096,14 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index b4a91e0076..8800745e09 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -34,13 +34,15 @@ # Taehun Yun <yooontehoon@naver.com>, 2022. # vrSono <global.sonogong@gmail.com>, 2022. # Seonghyeon Cho <seonghyeoncho96@gmail.com>, 2022. +# Haoyu Qiu <timothyqiu32@gmail.com>, 2022. +# 김태우 <ogosengi3@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-12 13:19+0000\n" -"Last-Translator: Seonghyeon Cho <seonghyeoncho96@gmail.com>\n" +"PO-Revision-Date: 2022-06-26 16:16+0000\n" +"Last-Translator: 김태우 <ogosengi3@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" "Language: ko\n" @@ -48,7 +50,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.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -419,6 +421,11 @@ msgstr "메타" msgid "Command" msgstr "명령" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (물리)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -4200,7 +4207,7 @@ msgstr "레이아웃 삭제" #: editor/editor_node.cpp editor/import_dock.cpp #: editor/script_create_dialog.cpp msgid "Default" -msgstr "디폴트" +msgstr "기본값" #: editor/editor_node.cpp editor/editor_resource_picker.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp @@ -5466,6 +5473,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "마우스 부가 버튼으로 히스토리 둘러보기" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "그리드맵 선택" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "모습" @@ -7887,11 +7899,20 @@ msgid "New Anim" msgstr "새 애니메이션" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "새 애니메이션 만들기" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "애니메이션 이름 바꾸기:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "애니메이션 이름 바꾸기" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "애니메이션을 삭제할까요?" @@ -7909,11 +7930,6 @@ msgid "Animation name already exists!" msgstr "애니메이션 이름이 이미 있습니다!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "애니메이션 이름 바꾸기" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "애니메이션 복제" @@ -8057,10 +8073,6 @@ msgid "Pin AnimationPlayer" msgstr "AnimationPlayer 고정" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "새 애니메이션 만들기" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "애니메이션 이름:" @@ -15562,8 +15574,8 @@ msgid "" "Node is in %s group(s).\n" "Click to show groups dock." msgstr "" -"노드가 그룹 안에 있습니다.\n" -"클릭하면 그룹 독을 보여줘요." +"노드가 %s 그룹 안에 있습니다.\n" +"클릭하여 그룹 독을 봅니다." #: editor/scene_tree_editor.cpp msgid "Open Script:" @@ -18632,6 +18644,11 @@ msgid "The package must have at least one '.' separator." msgstr "패키지는 적어도 하나의 '.' 분리 기호가 있어야 합니다." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "노드 잘라내기" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18640,6 +18657,16 @@ msgstr "" msgid "Export Format" msgstr "경로 내보내기" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "윤곽선 크기:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Target(대상)" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18682,16 +18709,6 @@ msgstr "이전 인스턴스 검사" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "윤곽선 크기:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Target(대상)" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18938,14 +18955,14 @@ msgstr "플러그인을 사용하려면 \"Use Custom Build\"가 활성화되어 #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"손 추적\" 은 \"Xr 모드\" 가 \"Oculus Mobile VR\"일 때만 사용 가능합니다." #: platform/android/export/export_plugin.cpp #, fuzzy -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "\"손 추적\" 은 \"Xr 모드\" 가 \"Oculus Mobile VR\"일 때만 사용 가능합니다." @@ -18956,18 +18973,38 @@ msgstr "\"Export AAB\"는 \"Use Custom Build\"가 활성화된 경우에만 유 #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "\"Export AAB\"는 \"Use Custom Build\"가 활성화된 경우에만 유효합니다." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "\"Export AAB\"는 \"Use Custom Build\"가 활성화된 경우에만 유효합니다." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20651,7 +20688,7 @@ msgstr "줌 인" msgid "Custom Viewport" msgstr "뷰포트 1개" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21407,11 +21444,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "연결 변경:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "바인딩" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "거리 선택:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "거리 선택:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "고급" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "활성화" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21429,16 +21498,6 @@ msgstr "수평으로 뒤집기" msgid "Max Speed" msgstr "속도:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "거리 선택:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "활성화" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -22684,6 +22743,13 @@ msgstr "" msgid "Transform Normals" msgstr "변형 중단됨." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24854,6 +24920,11 @@ msgstr "폴더:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "선택 영역만" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "활성화" @@ -25264,22 +25335,19 @@ msgstr "경로 내보내기" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" -"뷰포트를 렌더 대상으로 설정하지 않았습니다. 뷰포트의 내용을 화면에 직접 표시" -"하려면, Control의 자식 노드로 만들어서 크기를 얻어야 합니다. 그렇지 않을 경" -"우, 화면에 표시하기 위해서는 뷰포트를 RenderTarget으로 만들고 내부적인 텍스처" -"를 다른 노드에 지정해야 합니다." +"무엇이든 렌더링하려면 뷰포트 크기가 양쪽 차원에서 2픽셀 이상이어야 합니다." #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" -"무엇이든 렌더링하려면 뷰포트 크기가 양쪽 차원에서 2픽셀 이상이어야 합니다." #: scene/main/viewport.cpp msgid "ARVR" @@ -27050,6 +27118,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "AABB 만드는 중" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "오프셋:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 5f0e9b24ad..51428b68f4 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -417,6 +417,11 @@ msgstr "" msgid "Command" msgstr "Bendruomenė" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fizikos Kadro %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5473,6 +5478,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Visas Pasirinkimas" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7894,11 +7904,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7916,11 +7935,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -8066,10 +8080,6 @@ msgid "Pin AnimationPlayer" msgstr "Animacija" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18503,6 +18513,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Transition Nodas" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18511,6 +18526,16 @@ msgstr "" msgid "Export Format" msgstr "Importuoti iš Nodo:" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Atidaryti Skriptų Editorių" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "TimeScale Nodas" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18547,16 +18572,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Atidaryti Skriptų Editorių" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "TimeScale Nodas" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18793,12 +18808,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18807,17 +18822,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20436,7 +20471,7 @@ msgstr "Priartinti" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21134,34 +21169,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Prijungti" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Konstanta" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Diegti" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Įgalinti" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Įgalinti" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Įgalinti" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22303,6 +22360,13 @@ msgstr "" msgid "Transform Normals" msgstr "Keisti Poligono Skalę" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -24320,6 +24384,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Pasirinkite Nodus, kuriuos norite importuoti" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Įgalinti" @@ -24703,16 +24772,17 @@ msgstr "Importuoti iš Nodo:" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26410,6 +26480,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Panaikinti pasirinkimą" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/lv.po b/editor/translations/lv.po index 7397c083fa..0d2e4afec9 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -419,6 +419,11 @@ msgstr "" msgid "Command" msgstr "Komūns" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fizikas kadrs %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5544,6 +5549,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Režģkartes izvēle" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7930,11 +7940,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7952,11 +7971,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -8099,10 +8113,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18309,6 +18319,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Izgriezt mezglu(s)" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18317,6 +18332,16 @@ msgstr "" msgid "Export Format" msgstr "Eksportēt bibliotēku" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Galvenais Skripts:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Izdzēst Mezglu" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18356,16 +18381,6 @@ msgstr "Iepriekšējā cilne" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Galvenais Skripts:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Izdzēst Mezglu" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18599,12 +18614,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18613,17 +18628,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20249,7 +20284,7 @@ msgstr "Palielināt" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -20958,34 +20993,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Izmainīt Savienojumu:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Konstante" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Izvēlēties galveno ainu" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Papildus" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Iespējot" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Iespējot" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22135,6 +22192,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformēt vienmērīgo." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24187,6 +24251,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Tikai izvēlētais" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Iespējot" @@ -24580,16 +24649,17 @@ msgstr "Fokusa ceļš" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26302,6 +26372,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Noņemt tekstūru" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/mk.po b/editor/translations/mk.po index e37eadfeaf..b35fce0168 100644 --- a/editor/translations/mk.po +++ b/editor/translations/mk.po @@ -3,21 +3,21 @@ # Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). # This file is distributed under the same license as the Godot source code. # -# Kristijan Fremen Velkovski <me@krisfremen.com>, 2021. +# Kristijan Fremen Velkovski <me@krisfremen.com>, 2021, 2022. # Denis <densisman@gmail.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2021-11-18 13:37+0000\n" -"Last-Translator: Denis <densisman@gmail.com>\n" +"PO-Revision-Date: 2022-06-29 10:04+0000\n" +"Last-Translator: Kristijan Fremen Velkovski <me@krisfremen.com>\n" "Language-Team: Macedonian <https://hosted.weblate.org/projects/godot-engine/" "godot/mk/>\n" "Language: mk\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=n==1 || n%10==1 ? 0 : 1;\n" -"X-Generator: Weblate 4.9.1-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -25,28 +25,27 @@ msgstr "" #: core/bind/core_bind.cpp msgid "Clipboard" -msgstr "" +msgstr "Табла со исечоци" #: core/bind/core_bind.cpp -#, fuzzy msgid "Current Screen" -msgstr "Својства на анимацијата." +msgstr "Тековен Екран" #: core/bind/core_bind.cpp msgid "Exit Code" -msgstr "" +msgstr "Излезен код" #: core/bind/core_bind.cpp msgid "V-Sync Enabled" -msgstr "" +msgstr "Вертикална Синхронизација е вклучена" #: core/bind/core_bind.cpp main/main.cpp msgid "V-Sync Via Compositor" -msgstr "" +msgstr "Вертикална Синхронизација преку композитор" #: core/bind/core_bind.cpp main/main.cpp msgid "Delta Smoothing" -msgstr "" +msgstr "Делта Измазнување" #: core/bind/core_bind.cpp msgid "Low Processor Usage Mode" @@ -58,49 +57,49 @@ msgstr "" #: core/bind/core_bind.cpp main/main.cpp platform/uwp/os_uwp.cpp msgid "Keep Screen On" -msgstr "" +msgstr "Чувај го екранот уклучен" #: core/bind/core_bind.cpp msgid "Min Window Size" -msgstr "" +msgstr "Минимална Големина на Прозорецот" #: core/bind/core_bind.cpp msgid "Max Window Size" -msgstr "" +msgstr "Максимална Големина на Прозорецот" #: core/bind/core_bind.cpp msgid "Screen Orientation" -msgstr "" +msgstr "Ориентација на Екран" #: core/bind/core_bind.cpp core/project_settings.cpp main/main.cpp #: platform/uwp/os_uwp.cpp msgid "Window" -msgstr "" +msgstr "Прозорец" #: core/bind/core_bind.cpp core/project_settings.cpp msgid "Borderless" -msgstr "" +msgstr "Без граници" #: core/bind/core_bind.cpp msgid "Per Pixel Transparency Enabled" -msgstr "" +msgstr "Уклучена е Транспарентоста По Пиксел" #: core/bind/core_bind.cpp core/project_settings.cpp msgid "Fullscreen" -msgstr "" +msgstr "Цел екран" #: core/bind/core_bind.cpp msgid "Maximized" -msgstr "" +msgstr "Максимизирано" #: core/bind/core_bind.cpp msgid "Minimized" -msgstr "" +msgstr "Минимизирано" #: core/bind/core_bind.cpp core/project_settings.cpp scene/gui/dialogs.cpp #: scene/gui/graph_node.cpp msgid "Resizable" -msgstr "" +msgstr "Променлива големина" #: core/bind/core_bind.cpp core/os/input_event.cpp scene/2d/node_2d.cpp #: scene/2d/physics_body_2d.cpp scene/2d/remote_transform_2d.cpp @@ -108,7 +107,7 @@ msgstr "" #: scene/gui/control.cpp scene/gui/line_edit.cpp #: scene/resources/default_theme/default_theme.cpp msgid "Position" -msgstr "" +msgstr "Позиција" #: core/bind/core_bind.cpp core/project_settings.cpp editor/editor_settings.cpp #: main/main.cpp modules/gridmap/grid_map.cpp @@ -120,32 +119,31 @@ msgstr "" #: scene/resources/style_box.cpp scene/resources/texture.cpp #: scene/resources/visual_shader.cpp servers/visual_server.cpp msgid "Size" -msgstr "" +msgstr "Големина" #: core/bind/core_bind.cpp msgid "Endian Swap" -msgstr "" +msgstr "Ендијанска размена" #: core/bind/core_bind.cpp -#, fuzzy msgid "Editor Hint" -msgstr "Уреди" +msgstr "Совет за уредник" #: core/bind/core_bind.cpp msgid "Print Error Messages" -msgstr "" +msgstr "Печати грешни пораки" #: core/bind/core_bind.cpp msgid "Iterations Per Second" -msgstr "" +msgstr "Итерации во секунда" #: core/bind/core_bind.cpp msgid "Target FPS" -msgstr "" +msgstr "Цел на FPS" #: core/bind/core_bind.cpp msgid "Time Scale" -msgstr "" +msgstr "Временска скала" #: core/bind/core_bind.cpp main/main.cpp msgid "Physics Jitter Fix" @@ -153,23 +151,23 @@ msgstr "" #: core/bind/core_bind.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Error" -msgstr "" +msgstr "Грешка" #: core/bind/core_bind.cpp msgid "Error String" -msgstr "" +msgstr "Текст на Грешка" #: core/bind/core_bind.cpp msgid "Error Line" -msgstr "" +msgstr "Линија за грешка" #: core/bind/core_bind.cpp msgid "Result" -msgstr "" +msgstr "Резултат" #: core/command_queue_mt.cpp core/message_queue.cpp main/main.cpp msgid "Memory" -msgstr "" +msgstr "Меморија" #: core/command_queue_mt.cpp core/message_queue.cpp #: core/register_core_types.cpp drivers/gles2/rasterizer_canvas_base_gles2.cpp @@ -180,11 +178,11 @@ msgstr "" #: modules/webrtc/webrtc_data_channel.h modules/websocket/websocket_macros.h #: servers/visual_server.cpp msgid "Limits" -msgstr "" +msgstr "Граници" #: core/command_queue_mt.cpp msgid "Command Queue" -msgstr "" +msgstr "Ред за наредби" #: core/command_queue_mt.cpp msgid "Multithreading Queue Size (KB)" @@ -391,6 +389,10 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +msgid "Physical" +msgstr "" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5276,6 +5278,10 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +msgid "Drag And Drop Selection" +msgstr "" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7577,11 +7583,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7599,11 +7614,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7746,10 +7756,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -17761,6 +17767,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +msgid "Custom Build" +msgstr "" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -17768,6 +17778,15 @@ msgstr "" msgid "Export Format" msgstr "" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Јазол" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -17804,15 +17823,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Јазол" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18033,12 +18043,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18047,17 +18057,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19570,7 +19600,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20230,32 +20260,51 @@ msgstr "" msgid "Edge Connection Margin" msgstr "" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Pathfinding" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Desired Distance" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Avoidance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Avoidance Enabled" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Avoidance Enabled" +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" msgstr "" #: scene/2d/navigation_agent_2d.cpp @@ -21328,6 +21377,13 @@ msgstr "" msgid "Transform Normals" msgstr "" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23201,6 +23257,10 @@ msgid "Fold Gutter" msgstr "" #: scene/gui/text_edit.cpp +msgid "Drag And Drop Selection Enabled" +msgstr "" + +#: scene/gui/text_edit.cpp msgid "Hiding Enabled" msgstr "" @@ -23555,16 +23615,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25098,6 +25159,14 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/ml.po b/editor/translations/ml.po index 74ea6168e4..b2f6c17059 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -394,6 +394,10 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +msgid "Physical" +msgstr "" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5290,6 +5294,10 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +msgid "Drag And Drop Selection" +msgstr "" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7593,11 +7601,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7615,11 +7632,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7762,10 +7774,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -17788,6 +17796,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "പ്രവൃത്തികൾ:" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -17796,6 +17809,14 @@ msgstr "" msgid "Export Format" msgstr "ത്രിമാന പരിവർത്തനം നോക്കുക" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -17832,14 +17853,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -msgid "Target SDK" -msgstr "" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18060,12 +18073,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18074,17 +18087,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19608,7 +19641,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20271,32 +20304,51 @@ msgstr "" msgid "Edge Connection Margin" msgstr "ചലനം ചുറ്റൽ" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Pathfinding" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Desired Distance" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Avoidance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Avoidance Enabled" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Avoidance Enabled" +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" msgstr "" #: scene/2d/navigation_agent_2d.cpp @@ -21380,6 +21432,13 @@ msgstr "" msgid "Transform Normals" msgstr "ത്രിമാന പരിവർത്തനം നോക്കുക" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23277,6 +23336,10 @@ msgid "Fold Gutter" msgstr "" #: scene/gui/text_edit.cpp +msgid "Drag And Drop Selection Enabled" +msgstr "" + +#: scene/gui/text_edit.cpp msgid "Hiding Enabled" msgstr "" @@ -23632,16 +23695,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25214,6 +25278,14 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/mr.po b/editor/translations/mr.po index 005f8a3177..d9943d0a5e 100644 --- a/editor/translations/mr.po +++ b/editor/translations/mr.po @@ -394,6 +394,10 @@ msgstr "" msgid "Command" msgstr "समुदाय" +#: core/os/input_event.cpp +msgid "Physical" +msgstr "" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5280,6 +5284,10 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +msgid "Drag And Drop Selection" +msgstr "" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7584,11 +7592,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "नवीन अॅनिमेशन तयार करा" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7606,11 +7623,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7753,10 +7765,6 @@ msgid "Pin AnimationPlayer" msgstr "अॅनिमेशनप्लेअर पिन करा" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "नवीन अॅनिमेशन तयार करा" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "अॅनिमेशन नाव:" @@ -17787,6 +17795,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "अॅनिमेशन ट्री" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -17794,6 +17807,15 @@ msgstr "" msgid "Export Format" msgstr "" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "नोड हलवा" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -17830,15 +17852,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "नोड हलवा" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18061,12 +18074,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18075,17 +18088,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19609,7 +19642,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20284,35 +20317,55 @@ msgstr "" msgid "Edge Connection Margin" msgstr "अॅनिमेशन ट्री" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Target Desired Distance" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Pathfinding" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Path Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "समक्रमित करा" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy msgid "Avoidance Enabled" msgstr "समक्रमित करा" +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Neighbors" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -21398,6 +21451,13 @@ msgstr "" msgid "Transform Normals" msgstr "" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23304,6 +23364,10 @@ msgid "Fold Gutter" msgstr "" #: scene/gui/text_edit.cpp +msgid "Drag And Drop Selection Enabled" +msgstr "" + +#: scene/gui/text_edit.cpp msgid "Hiding Enabled" msgstr "" @@ -23660,16 +23724,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25239,6 +25304,14 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/ms.po b/editor/translations/ms.po index 3ef25ef863..a1955bb027 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -395,6 +395,11 @@ msgstr "Meta" msgid "Command" msgstr "Perintah" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fizik" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5537,6 +5542,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Semua Pilihan" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7971,11 +7981,20 @@ msgid "New Anim" msgstr "Anim Baru" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Cipta Animasi Baru" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Tukar Nama Animasi:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Namakan Semula Animasi" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Padam Animasi?" @@ -7993,11 +8012,6 @@ msgid "Animation name already exists!" msgstr "Nama animasi sudah wujud!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Namakan Semula Animasi" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Gandakan Animasi" @@ -8140,10 +8154,6 @@ msgid "Pin AnimationPlayer" msgstr "Pin AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Cipta Animasi Baru" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nama Animasi:" @@ -18502,6 +18512,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Potong Nod" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18510,6 +18525,16 @@ msgstr "" msgid "Export Format" msgstr "Warna seragam." +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Saiz:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Cipta Nod" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18548,16 +18573,6 @@ msgstr "Tab sebelumnya" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Saiz:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Cipta Nod" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18800,12 +18815,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18814,17 +18829,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20453,7 +20488,7 @@ msgstr "Zum Masuk" msgid "Custom Viewport" msgstr "Tunjukkan Viewport" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21167,34 +21202,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Edit Sambungan:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Tampal Animasi" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Pilih Adegan Utama" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Lanjutan" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Aktifkan" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Aktifkan" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22362,6 +22419,13 @@ msgstr "" msgid "Transform Normals" msgstr "Trek Transformasi 3D" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24431,6 +24495,11 @@ msgstr "Folder:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Pilihan Sahaja" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Aktifkan" @@ -24828,16 +24897,17 @@ msgstr "Laluan Fokus" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26577,6 +26647,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Grid Offset:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/nb.po b/editor/translations/nb.po index e5b0dcc26f..11bf857f4b 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -412,6 +412,11 @@ msgstr "Meta" msgid "Command" msgstr "Kommando" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fysikk" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5721,6 +5726,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Slett Valgte" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8259,11 +8269,20 @@ msgid "New Anim" msgstr "Ny Anim" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Lag Ny Animasjon" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Endre Animasjonsnavn:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Endre navn på Animasjon" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Fjern Animasjon?" @@ -8281,11 +8300,6 @@ msgid "Animation name already exists!" msgstr "Animasjonsnavnet finnes allerede!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Endre navn på Animasjon" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Dupliser Animasjon" @@ -8435,10 +8449,6 @@ msgid "Pin AnimationPlayer" msgstr "Lim inn Animasjon" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Lag Ny Animasjon" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Animasjonsnavn:" @@ -19287,6 +19297,11 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy +msgid "Custom Build" +msgstr "Bruk Tilpasset Brukerkatalog" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "Use Custom Build" msgstr "Bruk Tilpasset Brukerkatalog" @@ -19295,6 +19310,16 @@ msgstr "Bruk Tilpasset Brukerkatalog" msgid "Export Format" msgstr "Eksporter Prosjekt" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Størrelse:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Mål FPS" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -19336,16 +19361,6 @@ msgstr "Forrige fane" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Størrelse:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Mål FPS" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19591,12 +19606,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19605,17 +19620,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -21283,7 +21318,7 @@ msgstr "Forstørr" msgid "Custom Viewport" msgstr "Vis hjelpere" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -22015,11 +22050,42 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Tilkoblingsfeil" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Fyll" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Velg en HovedScene" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Max Distance" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Avansert" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Aktiver" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -22037,15 +22103,6 @@ msgstr "Vend horisontalt" msgid "Max Speed" msgstr "Hastighet (FPS):" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Aktiver" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -23243,6 +23300,13 @@ msgstr "" msgid "Transform Normals" msgstr "Lag Poly" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25347,6 +25411,11 @@ msgstr "Mappe:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Kun Valgte" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Aktiver" @@ -25750,16 +25819,17 @@ msgstr "Eksporter Prosjekt" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -27516,6 +27586,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Avstand:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/nl.po b/editor/translations/nl.po index 6d43002a17..def707ac8b 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -484,6 +484,11 @@ msgstr "" msgid "Command" msgstr "Gemeenschap" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Physics Frame %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5714,6 +5719,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "GridMap-selectie vullen" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8207,11 +8217,20 @@ msgid "New Anim" msgstr "Nieuwe Anim" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Nieuwe Animatie Opstellen" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Verander Animatie Naam:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Animatie Hernoemen" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Animatie wissen?" @@ -8229,11 +8248,6 @@ msgid "Animation name already exists!" msgstr "Animatienaam bestaat al!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Animatie Hernoemen" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Dupliceer Animatie" @@ -8377,10 +8391,6 @@ msgid "Pin AnimationPlayer" msgstr "Animatiespeler vastzetten" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Nieuwe Animatie Opstellen" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Animatienaam:" @@ -19143,6 +19153,11 @@ msgid "The package must have at least one '.' separator." msgstr "De pakketnaam moet ten minste een '.' bevatten." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Knopen knippen" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -19151,6 +19166,16 @@ msgstr "" msgid "Export Format" msgstr "Export Pad" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Omlijningsgrootte:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Doel" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -19194,16 +19219,6 @@ msgstr "Inspecteer vorige instantie" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Omlijningsgrootte:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Doel" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19453,7 +19468,7 @@ msgstr "\"Use Custom Build\" moet geactiveerd zijn om plugins te gebruiken." #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Hand Tracking\" is alleen geldig als \"Xr Mode\" op \"Oculus Mobile VR\" " @@ -19461,7 +19476,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "\"Hand Tracking\" is alleen geldig als \"Xr Mode\" op \"Oculus Mobile VR\" " "staat." @@ -19473,18 +19488,38 @@ msgstr "\"Export AAB\" is alleen geldig als \"Use Custom Build\" aan staat." #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "\"Export AAB\" is alleen geldig als \"Use Custom Build\" aan staat." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "\"Export AAB\" is alleen geldig als \"Use Custom Build\" aan staat." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -21172,7 +21207,7 @@ msgstr "Inzoomen" msgid "Custom Viewport" msgstr "1 beeldvenster" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21935,11 +21970,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Verbinding bewerken:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Binding" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Selecteerafstand:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Selecteerafstand:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Geavanceerd" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Inschakelen" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21957,16 +22024,6 @@ msgstr "Horizontaal omdraaien" msgid "Max Speed" msgstr "Snelheid:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Selecteerafstand:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Inschakelen" - #: scene/2d/navigation_agent_2d.cpp #, fuzzy msgid "" @@ -23214,6 +23271,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformatie Afgebroken." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25376,6 +25440,11 @@ msgstr "Map:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Alleen selectie" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Inschakelen" @@ -25782,18 +25851,6 @@ msgid "Viewport Path" msgstr "Export Pad" #: scene/main/viewport.cpp -msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Dit beeldvenster is niet ingesteld als renderdoelwit. Als de inhoud op het " -"scherm getoond moet worden, moet je het een kind van een Control knoop " -"maken, zodat het een grootte kan ontvangen. Anders, maak er een RenderTarget " -"van en wijs zijn interne textuur toe aan een knoop om te tonen." - -#: scene/main/viewport.cpp #, fuzzy msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " @@ -25802,6 +25859,15 @@ msgstr "" "De grootte van een Viewport moet groter zijn dan 0 om iets weer te geven." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27571,6 +27637,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "AABB Genereren" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Afstand:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index 5960c6933e..9fdaafae3e 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -61,13 +61,14 @@ # Konrad <kobe-interactive@protonmail.com>, 2022. # Pixel Zone - Godot Engine Tutorials <karoltomaszewskimusic@gmail.com>, 2022. # DK0492 <doriankaczmarek28@gmail.com>, 2022. +# Dawid Skubij <davidsd@tlen.pl>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-05-30 16:17+0000\n" -"Last-Translator: DK0492 <doriankaczmarek28@gmail.com>\n" +"PO-Revision-Date: 2022-07-05 23:51+0000\n" +"Last-Translator: Dawid Skubij <davidsd@tlen.pl>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" "Language: pl\n" @@ -76,7 +77,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -448,6 +449,11 @@ msgstr "Meta" msgid "Command" msgstr "Command" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (fizyczny)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -714,9 +720,8 @@ msgstr "Kontrola wersji" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp -#, fuzzy msgid "Input" -msgstr "Input" +msgstr "Wejście" #: core/project_settings.cpp msgid "UI Accept" @@ -5616,6 +5621,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Wybór GridMap" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "Wygląd" @@ -8095,11 +8105,20 @@ msgid "New Anim" msgstr "Nowa animacja" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Utwórz nową animację" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Zmień nazwę animacji:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Zmień nazwę animacji" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Usunąć animację?" @@ -8117,11 +8136,6 @@ msgid "Animation name already exists!" msgstr "Nazwa animacji już istnieje!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Zmień nazwę animacji" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplikuj animację" @@ -8265,10 +8279,6 @@ msgid "Pin AnimationPlayer" msgstr "Przypnij AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Utwórz nową animację" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nazwa animacji:" @@ -18857,6 +18867,11 @@ msgstr "Paczka musi mieć co najmniej jedną kropkę jako separator." #: platform/android/export/export_plugin.cpp #, fuzzy +msgid "Custom Build" +msgstr "Użyj niestandardowego katalogu użytkownika" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "Use Custom Build" msgstr "Użyj niestandardowego katalogu użytkownika" @@ -18865,6 +18880,16 @@ msgstr "Użyj niestandardowego katalogu użytkownika" msgid "Export Format" msgstr "Ścieżka eksportu" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Rozmiar zarysu:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Docelowa liczba klatek na sekundę (FPS)" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18908,16 +18933,6 @@ msgstr "Sprawdź poprzednią instancję" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Rozmiar zarysu:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Docelowa liczba klatek na sekundę (FPS)" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19166,15 +19181,17 @@ msgid "\"Use Custom Build\" must be enabled to use the plugins." msgstr "\"Use Custom Build\" musi być włączone, by używać wtyczek." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Hand Tracking\" jest poprawne tylko, gdy \"Xr Mode\" jest \"Oculus Mobile " "VrApi\" lub \"OpenXR\"." #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +#, fuzzy +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "\"Passthrough\" jest poprawne tylko, gdy \"Xr Mode\" jest \"OpenXR\"." #: platform/android/export/export_plugin.cpp @@ -19183,22 +19200,45 @@ msgstr "" "\"Eksportuj AAB\" jest ważne tylko gdy \"Use Custom Build\" jest włączone." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Zmiana \"Min Sdk\" jest poprawna tylko, gdy \"Use Custom Build\" jest " "włączone." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Zmiana \"Target Sdk\" jest poprawna tylko, gdy \"Use Custom Build\" jest " "włączone." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "Wersja \"Target Sdk\" musi być większa lub równa wersji \"Min Sdk\"." #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20938,7 +20978,7 @@ msgstr "Przybliż" msgid "Custom Viewport" msgstr "1 widok" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21708,11 +21748,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Edytuj połączenie:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Wiązanie" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Wybierz odległość:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Wybierz odległość:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Zaawansowane" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Włącz" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21730,16 +21802,6 @@ msgstr "Odbij poziomo" msgid "Max Speed" msgstr "Szybkość:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Wybierz odległość:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Włącz" - #: scene/2d/navigation_agent_2d.cpp #, fuzzy msgid "" @@ -23002,6 +23064,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformacja Zaniechana." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -23563,9 +23632,8 @@ msgid "A RoomGroup should not be a child or grandchild of a Portal." msgstr "RoomGroup nie powinien być potomkiem Portalu." #: scene/3d/portal.cpp -#, fuzzy msgid "Portal Active" -msgstr " [portale aktywne]" +msgstr "Portal Aktywny" #: scene/3d/portal.cpp scene/resources/occluder_shape_polygon.cpp msgid "Two Way" @@ -25190,6 +25258,11 @@ msgstr "Folder:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Tylko zaznaczenie" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Włącz" @@ -25526,9 +25599,8 @@ msgid "Draw 2D Outlines" msgstr "Utwórz obrys" #: scene/main/scene_tree.cpp servers/visual_server.cpp -#, fuzzy msgid "Reflections" -msgstr "Kierunki" +msgstr "Odbicia" #: scene/main/scene_tree.cpp #, fuzzy @@ -25601,18 +25673,6 @@ msgstr "Ścieżka eksportu" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Ten Viewport nie jest ustawiony jako Render Target. Jeśli chcesz wyświetlić " -"jego zawartość na ekranie dodaj go jako dziecko węzła typu Control, aby " -"otrzymał jakiś rozmiar. W przeciwnym wypadku ustawi opcję RenderTarget i " -"przyporządkuj jego teksturę dla któregoś węzła." - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -25620,6 +25680,15 @@ msgstr "" "cokolwiek renderować." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -26711,7 +26780,7 @@ msgstr "Warunek" #: scene/resources/environment.cpp msgid "Fog" -msgstr "" +msgstr "Mgła" #: scene/resources/environment.cpp #, fuzzy @@ -26893,9 +26962,8 @@ msgstr "" #: scene/resources/environment.cpp #: servers/audio/effects/audio_effect_chorus.cpp -#, fuzzy msgid "2" -msgstr "2D" +msgstr "2" #: scene/resources/environment.cpp #: servers/audio/effects/audio_effect_chorus.cpp @@ -27392,6 +27460,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Generowanie AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Przesunięcie:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/pr.po b/editor/translations/pr.po index 139d252495..d0e041aba9 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -413,6 +413,11 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Paste yer Node" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5460,6 +5465,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Yar, Blow th' Selected Down!" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7885,11 +7895,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7908,11 +7927,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -8056,10 +8070,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18559,6 +18569,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Slit th' Node" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18567,6 +18582,16 @@ msgstr "" msgid "Export Format" msgstr "Change yer Anim Transform" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Edit" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Slit th' Node" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18606,16 +18631,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Edit" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Slit th' Node" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18849,12 +18864,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18863,17 +18878,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20478,7 +20513,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21175,34 +21210,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Slit th' Node" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Slit th' Node" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Edit" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Paste yer Node" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Paste yer Node" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Paste yer Node" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22334,6 +22391,13 @@ msgstr "" msgid "Transform Normals" msgstr "Slit th' Node" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -24330,6 +24394,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Slit th' Node" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Paste yer Node" @@ -24712,16 +24781,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26410,6 +26480,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Discharge ye' Variable" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/pt.po b/editor/translations/pt.po index c0af7140fc..edbc6971fb 100644 --- a/editor/translations/pt.po +++ b/editor/translations/pt.po @@ -16,20 +16,21 @@ # ssantos <ssantos@web.de>, 2018, 2019, 2020, 2021. # Gonçalo Dinis Guerreiro João <goncalojoao205@gmail.com>, 2019. # Manuela Silva <mmsrs@sky.com>, 2020. -# Murilo Gama <murilovsky2030@gmail.com>, 2020. +# Murilo Gama <murilovsky2030@gmail.com>, 2020, 2022. # Ricardo Subtil <ricasubtil@gmail.com>, 2020. # André Silva <andre.olivais@gmail.com>, 2021. # Danilo Conceição Rosa <danilorosa@protonmail.com>, 2022. # Kaycke <kaycke@ymail.com>, 2022. # Renu <ifpilucas@gmail.com>, 2022. # El_ExpertPlayer <xpertnathan37@gmail.com>, 2022. +# Esdras Caleb Oliveira Silva <acheicaleb@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-13 03:39+0000\n" -"Last-Translator: El_ExpertPlayer <xpertnathan37@gmail.com>\n" +"PO-Revision-Date: 2022-06-29 10:04+0000\n" +"Last-Translator: Esdras Caleb Oliveira Silva <acheicaleb@gmail.com>\n" "Language-Team: Portuguese <https://hosted.weblate.org/projects/godot-engine/" "godot/pt/>\n" "Language: pt\n" @@ -37,7 +38,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.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -61,7 +62,7 @@ msgstr "V-Sync ativado" #: core/bind/core_bind.cpp main/main.cpp msgid "V-Sync Via Compositor" -msgstr "V-Sync Via Compositor" +msgstr "V-Sync via Compositor" #: core/bind/core_bind.cpp main/main.cpp msgid "Delta Smoothing" @@ -143,7 +144,7 @@ msgstr "Tamanho" #: core/bind/core_bind.cpp msgid "Endian Swap" -msgstr "Troca Endiana" +msgstr "Troca Endian" #: core/bind/core_bind.cpp msgid "Editor Hint" @@ -230,7 +231,7 @@ msgstr "Rede" #: core/io/file_access_network.cpp msgid "Remote FS" -msgstr "SF Remoto" +msgstr "FS Remoto" #: core/io/file_access_network.cpp msgid "Page Size" @@ -238,11 +239,11 @@ msgstr "Tamanho da Página" #: core/io/file_access_network.cpp msgid "Page Read Ahead" -msgstr "Leitura de página em frente" +msgstr "Página Lida Adiante" #: core/io/http_client.cpp msgid "Blocking Mode Enabled" -msgstr "Modo de blocagem ativado" +msgstr "Modo de Bloqueio Ativado" #: core/io/http_client.cpp msgid "Connection" @@ -294,11 +295,11 @@ msgstr "Tamanho Máximo do Amortecedor de OutPut" #: core/io/packet_peer.cpp msgid "Stream Peer" -msgstr "" +msgstr "Fluxo de pares" #: core/io/stream_peer.cpp msgid "Big Endian" -msgstr "" +msgstr "Grande Endian" #: core/io/stream_peer.cpp msgid "Data Array" @@ -306,7 +307,7 @@ msgstr "Lista de dados" #: core/io/stream_peer_ssl.cpp msgid "Blocking Handshake" -msgstr "" +msgstr "Bloquear Handshake" #: core/io/udp_server.cpp msgid "Max Pending Connections" @@ -329,9 +330,8 @@ msgstr "" "Número de \"bytes\" insuficientes para descodificar, ou o formato é inválido." #: core/math/expression.cpp -#, fuzzy msgid "Invalid input %d (not passed) in expression" -msgstr "Entrada inválida %i (não passada) na expressão" +msgstr "Entrada inválida %d (não passada) na expressão" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -368,21 +368,19 @@ msgstr "Estado" #: core/message_queue.cpp msgid "Message Queue" -msgstr "" +msgstr "Fila de Mensagens" #: core/message_queue.cpp msgid "Max Size (KB)" msgstr "Tamanho Máximo (KB)" #: core/os/input.cpp -#, fuzzy msgid "Mouse Mode" -msgstr "Modo Mover" +msgstr "Modo Mouse" #: core/os/input.cpp -#, fuzzy msgid "Use Accumulated Input" -msgstr "Apagar entrada" +msgstr "Usar Entrada Acumulada" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: servers/audio_server.cpp @@ -395,60 +393,58 @@ msgstr "Alt" #: core/os/input_event.cpp msgid "Shift" -msgstr "" +msgstr "Shift" #: core/os/input_event.cpp -#, fuzzy msgid "Control" -msgstr "Controle de Versões" +msgstr "Controle" #: core/os/input_event.cpp msgid "Meta" -msgstr "" +msgstr "Meta" #: core/os/input_event.cpp -#, fuzzy msgid "Command" -msgstr "Comunidade" +msgstr "Comando" + +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (Físico)" #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Pressed" -msgstr "Predefinições" +msgstr "Pressionado" #: core/os/input_event.cpp -#, fuzzy msgid "Scancode" -msgstr "Pequisar" +msgstr "Código de Digitalização" #: core/os/input_event.cpp -#, fuzzy msgid "Physical Scancode" -msgstr "Chave Física" +msgstr "Código de Digitalização Físico" #: core/os/input_event.cpp msgid "Unicode" -msgstr "" +msgstr "Unicode" #: core/os/input_event.cpp msgid "Echo" -msgstr "" +msgstr "Eco" #: core/os/input_event.cpp scene/gui/base_button.cpp -#, fuzzy msgid "Button Mask" -msgstr "Botão" +msgstr "Mascara de Botão" #: core/os/input_event.cpp scene/2d/node_2d.cpp scene/gui/control.cpp msgid "Global Position" msgstr "Posição Global" #: core/os/input_event.cpp -#, fuzzy msgid "Factor" -msgstr "Vetor" +msgstr "Fator" #: core/os/input_event.cpp msgid "Button Index" @@ -460,12 +456,11 @@ msgstr "Clique duplo" #: core/os/input_event.cpp msgid "Tilt" -msgstr "" +msgstr "Inclinar" #: core/os/input_event.cpp -#, fuzzy msgid "Pressure" -msgstr "Predefinições" +msgstr "Pressione" #: core/os/input_event.cpp msgid "Relative" @@ -500,7 +495,7 @@ msgstr "Ação" #: core/os/input_event.cpp scene/resources/environment.cpp #: scene/resources/material.cpp msgid "Strength" -msgstr "" +msgstr "Força" #: core/os/input_event.cpp msgid "Delta" @@ -539,14 +534,12 @@ msgstr "Valor do Controlador" #: core/project_settings.cpp editor/editor_node.cpp main/main.cpp #: platform/iphone/export/export.cpp platform/osx/export/export.cpp #: platform/windows/export/export.cpp -#, fuzzy msgid "Application" -msgstr "Ação" +msgstr "Aplicação" #: core/project_settings.cpp main/main.cpp -#, fuzzy msgid "Config" -msgstr "Configurar Ajuste" +msgstr "Configurações" #: core/project_settings.cpp msgid "Project Settings Override" @@ -584,39 +577,36 @@ msgid "Main Scene" msgstr "Cena Principal" #: core/project_settings.cpp -#, fuzzy msgid "Disable stdout" -msgstr "Desativar Autotile" +msgstr "Desativar stdout" #: core/project_settings.cpp -#, fuzzy msgid "Disable stderr" -msgstr "Item Desativado" +msgstr "Desativar stderr" #: core/project_settings.cpp msgid "Use Hidden Project Data Directory" -msgstr "" +msgstr "Use o diretório de dados ocultos do projeto" #: core/project_settings.cpp msgid "Use Custom User Dir" -msgstr "" +msgstr "Usar Diretório de Usuário Personalizado" #: core/project_settings.cpp msgid "Custom User Dir Name" -msgstr "" +msgstr "Nome de Diretório de Usuário Personalizado" #: core/project_settings.cpp main/main.cpp #: platform/javascript/export/export.cpp platform/osx/export/export.cpp #: platform/uwp/os_uwp.cpp -#, fuzzy msgid "Display" -msgstr "Mostrar Tudo" +msgstr "Exibição" #: core/project_settings.cpp main/main.cpp modules/csg/csg_shape.cpp #: modules/opensimplex/noise_texture.cpp scene/2d/line_2d.cpp #: scene/3d/label_3d.cpp scene/gui/text_edit.cpp scene/resources/texture.cpp msgid "Width" -msgstr "" +msgstr "Largura" #: core/project_settings.cpp main/main.cpp modules/csg/csg_shape.cpp #: modules/gltf/gltf_node.cpp modules/opensimplex/noise_texture.cpp @@ -624,23 +614,20 @@ msgstr "" #: scene/resources/capsule_shape_2d.cpp scene/resources/cylinder_shape.cpp #: scene/resources/font.cpp scene/resources/navigation_mesh.cpp #: scene/resources/primitive_meshes.cpp scene/resources/texture.cpp -#, fuzzy msgid "Height" -msgstr "Luz" +msgstr "Altura" #: core/project_settings.cpp msgid "Always On Top" -msgstr "" +msgstr "Sempre no topo" #: core/project_settings.cpp -#, fuzzy msgid "Test Width" -msgstr "Esquerda Wide" +msgstr "Largura de Teste" #: core/project_settings.cpp -#, fuzzy msgid "Test Height" -msgstr "Em teste" +msgstr "Altura de Teste" #: core/project_settings.cpp editor/animation_track_editor.cpp #: editor/editor_audio_buses.cpp main/main.cpp servers/audio_server.cpp @@ -668,70 +655,60 @@ msgstr "Nomear a Cena" #: core/project_settings.cpp msgid "Search In File Extensions" -msgstr "" +msgstr "Pesquisar em Extensões de Arquivo" #: core/project_settings.cpp msgid "Script Templates Search Path" -msgstr "" +msgstr "Caminho de Pesquisa para Modelos de Script" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Autoload On Startup" -msgstr "Sistema de Controlo de Versões" +msgstr "Carregamento Automático de Controle de Versão na inicialização" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Plugin Name" -msgstr "Controle de Versões" +msgstr "Nome do Plug-in de Controle de Versão" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp -#, fuzzy msgid "Input" -msgstr "Adicionar entrada" +msgstr "Entrada" #: core/project_settings.cpp msgid "UI Accept" -msgstr "" +msgstr "Aceitar UI" #: core/project_settings.cpp -#, fuzzy msgid "UI Select" -msgstr "Selecionar" +msgstr "Selecionar IU" #: core/project_settings.cpp -#, fuzzy msgid "UI Cancel" -msgstr "Cancelar" +msgstr "Cancelar IU" #: core/project_settings.cpp -#, fuzzy msgid "UI Focus Next" -msgstr "Caminho de Foco" +msgstr "Foco da IU em Seguida" #: core/project_settings.cpp -#, fuzzy msgid "UI Focus Prev" -msgstr "Caminho de Foco" +msgstr "Foco da IU Anterior" #: core/project_settings.cpp -#, fuzzy msgid "UI Left" -msgstr "Topo Esquerda" +msgstr "IU Esquerda" #: core/project_settings.cpp -#, fuzzy msgid "UI Right" -msgstr "Topo Direita" +msgstr "IU Direita" #: core/project_settings.cpp msgid "UI Up" -msgstr "" +msgstr "UI Acima" #: core/project_settings.cpp -#, fuzzy msgid "UI Down" -msgstr "Para baixo" +msgstr "IU Baixo" #: core/project_settings.cpp msgid "UI Page Up" @@ -739,16 +716,15 @@ msgstr "UI Página Acima" #: core/project_settings.cpp msgid "UI Page Down" -msgstr "" +msgstr "UI Página Inferior" #: core/project_settings.cpp msgid "UI Home" -msgstr "" +msgstr "UI Inicio" #: core/project_settings.cpp -#, fuzzy msgid "UI End" -msgstr "No Fim" +msgstr "IU Final" #: core/project_settings.cpp main/main.cpp modules/bullet/register_types.cpp #: modules/bullet/space_bullet.cpp scene/2d/physics_body_2d.cpp @@ -769,12 +745,11 @@ msgstr "Física" #: scene/3d/physics_body.cpp scene/resources/world.cpp #: servers/physics/space_sw.cpp servers/physics_server.cpp msgid "3D" -msgstr "" +msgstr "3D" #: core/project_settings.cpp -#, fuzzy msgid "Smooth Trimesh Collision" -msgstr "Criar Irmão de Colisão Trimesh" +msgstr "Colisão Trimesh Suave" #: core/project_settings.cpp drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles2/rasterizer_scene_gles2.cpp @@ -796,7 +771,7 @@ msgstr "Renderizar" #: scene/resources/multimesh.cpp servers/visual/visual_server_scene.cpp #: servers/visual_server.cpp msgid "Quality" -msgstr "" +msgstr "Qualidade" #: core/project_settings.cpp scene/gui/file_dialog.cpp #: scene/main/scene_tree.cpp scene/resources/navigation_mesh.cpp @@ -806,7 +781,7 @@ msgstr "Filtros" #: core/project_settings.cpp scene/main/viewport.cpp msgid "Sharpen Intensity" -msgstr "" +msgstr "Intensidade da Nitidez" #: core/project_settings.cpp editor/editor_export.cpp editor/editor_node.cpp #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp @@ -831,55 +806,52 @@ msgid "Profiler" msgstr "Analisador" #: core/project_settings.cpp -#, fuzzy msgid "Max Functions" -msgstr "Criar Função" +msgstr "Funções Máximas" #: core/project_settings.cpp scene/3d/vehicle_body.cpp -#, fuzzy msgid "Compression" -msgstr "Expressão" +msgstr "Compressão" #: core/project_settings.cpp -#, fuzzy msgid "Formats" -msgstr "Formato" +msgstr "Formatos" #: core/project_settings.cpp msgid "Zstd" -msgstr "" +msgstr "Zstd" #: core/project_settings.cpp msgid "Long Distance Matching" -msgstr "" +msgstr "Correspondência de Longa Distância" #: core/project_settings.cpp msgid "Compression Level" -msgstr "" +msgstr "Nível de Compressão" #: core/project_settings.cpp msgid "Window Log Size" -msgstr "" +msgstr "Tamanho da Janela de Registro" #: core/project_settings.cpp msgid "Zlib" -msgstr "" +msgstr "Zlib" #: core/project_settings.cpp msgid "Gzip" -msgstr "" +msgstr "Gzip" #: core/project_settings.cpp platform/android/export/export.cpp msgid "Android" -msgstr "" +msgstr "Android" #: core/project_settings.cpp msgid "Modules" -msgstr "" +msgstr "Módulos" #: core/register_core_types.cpp msgid "TCP" -msgstr "" +msgstr "TCP" #: core/register_core_types.cpp msgid "Connect Timeout Seconds" @@ -887,15 +859,15 @@ msgstr "Segundos de Timeout da Conexão" #: core/register_core_types.cpp msgid "Packet Peer Stream" -msgstr "" +msgstr "Fluxo de Pacotes de Pares" #: core/register_core_types.cpp msgid "Max Buffer (Power of 2)" -msgstr "" +msgstr "Buffer máximo (Potência de 2)" #: core/register_core_types.cpp editor/editor_settings.cpp main/main.cpp msgid "SSL" -msgstr "" +msgstr "SSL" #: core/register_core_types.cpp main/main.cpp msgid "Certificates" @@ -908,9 +880,8 @@ msgid "Resource" msgstr "Recurso" #: core/resource.cpp -#, fuzzy msgid "Local To Scene" -msgstr "Fechar Cena" +msgstr "Local para Cena" #: core/resource.cpp editor/dependency_editor.cpp #: editor/editor_autoload_settings.cpp editor/plugins/path_editor_plugin.cpp @@ -920,22 +891,20 @@ msgid "Path" msgstr "Caminho" #: core/script_language.cpp -#, fuzzy msgid "Source Code" -msgstr "Fonte" +msgstr "Código Fonte" #: core/translation.cpp editor/project_settings_editor.cpp msgid "Locale" msgstr "Localização" #: core/translation.cpp -#, fuzzy msgid "Test" -msgstr "Em teste" +msgstr "Testar" #: core/translation.cpp scene/resources/font.cpp msgid "Fallback" -msgstr "" +msgstr "Alternativa" #: core/ustring.cpp scene/resources/segment_shape_2d.cpp msgid "B" @@ -971,17 +940,17 @@ msgstr "EiB" #: drivers/gles3/rasterizer_scene_gles3.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp modules/gltf/gltf_state.cpp msgid "Buffers" -msgstr "" +msgstr "Buffers" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp msgid "Canvas Polygon Buffer Size (KB)" -msgstr "" +msgstr "Tamanho do Buffer do Polígono da Tela (KB)" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp msgid "Canvas Polygon Index Buffer Size (KB)" -msgstr "" +msgstr "Tamanho do buffer do índice do polígono da tela (KB)" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp editor/editor_settings.cpp @@ -993,56 +962,52 @@ msgstr "" #: servers/physics_2d/space_2d_sw.cpp servers/physics_2d_server.cpp #: servers/visual_server.cpp msgid "2D" -msgstr "" +msgstr "2D" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp -#, fuzzy msgid "Snapping" -msgstr "Ajuste Inteligente" +msgstr "Encaixe" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp -#, fuzzy msgid "Use GPU Pixel Snap" -msgstr "Usar Ajuste de Pixel" +msgstr "Usar o Encaixe Pixel da GPU" #: drivers/gles2/rasterizer_scene_gles2.cpp #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Immediate Buffer Size (KB)" -msgstr "" +msgstr "Tamanho de Buffer Imediato (KB)" #: drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp -#, fuzzy msgid "Lightmapping" -msgstr "Consolidar Lightmaps" +msgstr "Mapeamento de Luz" #: drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp msgid "Use Bicubic Sampling" -msgstr "" +msgstr "Usar amostragem Bicúbica" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Elements" -msgstr "" +msgstr "Máximo de Elementos Renderizáveis" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Lights" -msgstr "" +msgstr "Máximo de Luzes Renderizáveis" #: drivers/gles3/rasterizer_scene_gles3.cpp -#, fuzzy msgid "Max Renderable Reflections" -msgstr "Centrar Seleção" +msgstr "Máximo de Reflexões Renderizáveis" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Lights Per Object" -msgstr "" +msgstr "Máximo de Luzes por Objeto" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Subsurface Scattering" -msgstr "" +msgstr "Dispersão de Subsuperfície" #: drivers/gles3/rasterizer_scene_gles3.cpp editor/animation_track_editor.cpp #: editor/import/resource_importer_texture.cpp @@ -1058,25 +1023,24 @@ msgid "Scale" msgstr "Escala" #: drivers/gles3/rasterizer_scene_gles3.cpp -#, fuzzy msgid "Follow Surface" -msgstr "Povoar superfície" +msgstr "Seguir a Superfície" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Weight Samples" -msgstr "" +msgstr "Amostras de Peso" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Voxel Cone Tracing" -msgstr "" +msgstr "Rastreamento de Cone de Voxel" #: drivers/gles3/rasterizer_scene_gles3.cpp scene/resources/environment.cpp msgid "High Quality" -msgstr "" +msgstr "Alta Qualidade" #: drivers/gles3/rasterizer_storage_gles3.cpp msgid "Blend Shape Max Buffer Size (KB)" -msgstr "" +msgstr "Tamanho Máximo do Buffer da Blend Shape (KB)" #. TRANSLATORS: Adjective, refers to the mode for Bezier handles (Free, Balanced, Mirror). #: editor/animation_bezier_editor.cpp @@ -1150,9 +1114,8 @@ msgstr "Anim Mudar Chamada" #: editor/animation_track_editor.cpp scene/2d/animated_sprite.cpp #: scene/2d/sprite.cpp scene/3d/sprite_3d.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Frame" -msgstr "Frame %" +msgstr "Quadro" #: editor/animation_track_editor.cpp editor/editor_profiler.cpp #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp @@ -1163,16 +1126,14 @@ msgstr "Tempo" #: editor/animation_track_editor.cpp editor/import/resource_importer_scene.cpp #: platform/osx/export/export.cpp -#, fuzzy msgid "Location" msgstr "Localização" #: editor/animation_track_editor.cpp modules/gltf/gltf_node.cpp #: scene/2d/polygon_2d.cpp scene/2d/remote_transform_2d.cpp #: scene/3d/remote_transform.cpp scene/3d/spatial.cpp scene/gui/control.cpp -#, fuzzy msgid "Rotation" -msgstr "Passo da rotação:" +msgstr "Rotação" #: editor/animation_track_editor.cpp editor/script_editor_debugger.cpp #: modules/visual_script/visual_script_nodes.cpp scene/gui/range.cpp @@ -1180,14 +1141,13 @@ msgid "Value" msgstr "Valor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Arg Count" -msgstr "Valor:" +msgstr "Contagem de Argumentos" #: editor/animation_track_editor.cpp main/main.cpp #: modules/mono/mono_gd/gd_mono.cpp msgid "Args" -msgstr "" +msgstr "Argumentos" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/script_editor_debugger.cpp modules/gltf/gltf_accessor.cpp @@ -1197,31 +1157,27 @@ msgid "Type" msgstr "Tipo" #: editor/animation_track_editor.cpp -#, fuzzy msgid "In Handle" -msgstr "Definir Manipulador" +msgstr "Dentro do Controle" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Out Handle" -msgstr "Definir Manipulador" +msgstr "Fora do Controle" #: editor/animation_track_editor.cpp #: editor/import/resource_importer_texture.cpp #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/audio/audio_stream_player.cpp scene/gui/video_player.cpp msgid "Stream" -msgstr "" +msgstr "Fluxo" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Start Offset" -msgstr "Compensação da grelha:" +msgstr "Deslocamento Inicial" #: editor/animation_track_editor.cpp -#, fuzzy msgid "End Offset" -msgstr "Compensação:" +msgstr "Deslocamento Final" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/import/resource_importer_scene.cpp @@ -1234,9 +1190,8 @@ msgid "Animation" msgstr "Animação" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Easing" -msgstr "Easing In-Out" +msgstr "Flexibilização" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Keyframe Time" @@ -1345,19 +1300,16 @@ msgid "Remove this track." msgstr "Remover esta Pista." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Time (s):" -msgstr "Tempo (s): " +msgstr "Tempo (s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Position:" -msgstr "Posição" +msgstr "Posição:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rotation:" -msgstr "Passo da rotação:" +msgstr "Rotação:" #: editor/animation_track_editor.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1374,44 +1326,36 @@ msgid "Type:" msgstr "Tipo:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "(Invalid, expected type: %s)" -msgstr "Modelo de exportação inválido:" +msgstr "(Inválido, tipo esperado: %s)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Easing:" -msgstr "Easing In-Out" +msgstr "Flexibilização:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "In-Handle:" -msgstr "Definir Manipulador" +msgstr "Em manuseio:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Out-Handle:" -msgstr "Definir Manipulador" +msgstr "Fora de controle:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Stream:" -msgstr "Item Rádio" +msgstr "Fluxo:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Start (s):" -msgstr "Reinício (s):" +msgstr "Início (s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "End (s):" -msgstr "Aparecer (s):" +msgstr "Fim (s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation Clip:" -msgstr "Animações:" +msgstr "Clipe de Animação:" #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" @@ -1495,14 +1439,12 @@ msgstr "Remover Pista de Animação" #: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Editors" -msgstr "Editor" +msgstr "Editores" #: editor/animation_track_editor.cpp editor/editor_settings.cpp -#, fuzzy msgid "Confirm Insert Track" -msgstr "Anim Inserir Pista & Chave" +msgstr "Confirmar Inserir Faixa" #. TRANSLATORS: %s will be replaced by a phrase describing the target of track. #: editor/animation_track_editor.cpp @@ -1628,9 +1570,8 @@ msgid "Add Method Track Key" msgstr "Adicionar Chave da Pista Método" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Method not found in object:" -msgstr "Método não encontrado no objeto: " +msgstr "Método não encontrado no objeto:" #: editor/animation_track_editor.cpp msgid "Anim Move Keys" @@ -1650,7 +1591,7 @@ msgstr "Métodos" #: editor/animation_track_editor.cpp msgid "Bezier" -msgstr "" +msgstr "Bezier" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -2240,7 +2181,7 @@ msgstr "Abrir" #: editor/dependency_editor.cpp msgid "Owners of: %s (Total: %d)" -msgstr "" +msgstr "Proprietários de: %s (Total: %d)" #: editor/dependency_editor.cpp msgid "" @@ -2806,7 +2747,7 @@ msgstr "Escolha" #: editor/editor_export.cpp msgid "Project export for platform:" -msgstr "" +msgstr "Exportação do projeto para plataforma:" #: editor/editor_export.cpp #, fuzzy @@ -2814,9 +2755,8 @@ msgid "Completed with errors." msgstr "Copiar Caminho do Nó" #: editor/editor_export.cpp -#, fuzzy msgid "Completed successfully." -msgstr "Pacote Instalado com sucesso!" +msgstr "Completado com sucesso." #: editor/editor_export.cpp #, fuzzy @@ -2936,11 +2876,11 @@ msgstr "Formato Binário" #: editor/editor_export.cpp msgid "64 Bits" -msgstr "" +msgstr "64 Bits" #: editor/editor_export.cpp msgid "Embed PCK" -msgstr "" +msgstr "Incorporar PCK" #: editor/editor_export.cpp platform/osx/export/export.cpp #, fuzzy @@ -2949,19 +2889,19 @@ msgstr "TextureRegion" #: editor/editor_export.cpp msgid "BPTC" -msgstr "" +msgstr "BPTC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "S3TC" -msgstr "" +msgstr "S3TC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "ETC" -msgstr "" +msgstr "ETC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "ETC2" -msgstr "" +msgstr "ETC2" #: editor/editor_export.cpp #, fuzzy @@ -3013,7 +2953,7 @@ msgstr "" #: editor/editor_export.cpp msgid "Convert Text Resources To Binary On Export" -msgstr "" +msgstr "Converter Recursos de Texto em Binário na Exportação" #: editor/editor_feature_profile.cpp msgid "3D Editor" @@ -3334,7 +3274,7 @@ msgstr "Alternar Ficheiros Escondidos" #: editor/editor_file_dialog.cpp msgid "Disable Overwrite Warning" -msgstr "" +msgstr "Desativar Aviso de Sobrescrita" #: editor/editor_file_dialog.cpp msgid "Go Back" @@ -3437,7 +3377,7 @@ msgstr "A (Re)Importar Recursos" #: editor/editor_file_system.cpp msgid "Reimport Missing Imported Files" -msgstr "" +msgstr "Reimportar Arquivos Importados Ausentes" #: editor/editor_help.cpp scene/2d/camera_2d.cpp scene/gui/control.cpp #: scene/gui/nine_patch_rect.cpp scene/resources/dynamic_font.cpp @@ -3548,7 +3488,7 @@ msgstr "Ajuda" #: editor/editor_help.cpp msgid "Sort Functions Alphabetically" -msgstr "" +msgstr "Classificar Funções em Ordem Alfabética" #: editor/editor_help_search.cpp editor/editor_node.cpp #: editor/plugins/script_editor_plugin.cpp @@ -4336,6 +4276,8 @@ msgstr "%d mais Ficheiros" msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" +"Não foi possível gravar no arquivo '%s', arquivo em uso, bloqueado ou sem " +"permissões." #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp @@ -4355,11 +4297,11 @@ msgstr "Mostrar Grelha Sempre" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Resize If Many Tabs" -msgstr "" +msgstr "Redimensionar se Houver Muitas Guias" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Minimum Width" -msgstr "" +msgstr "Largura Mínima" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Output" @@ -4372,15 +4314,15 @@ msgstr "Limpar Saída" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Always Open Output On Play" -msgstr "" +msgstr "Sempre Abra a Saída na Reprodução" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Always Close Output On Stop" -msgstr "" +msgstr "Sempre Feche a Saída na Parada" #: editor/editor_node.cpp msgid "Save On Focus Loss" -msgstr "" +msgstr "Salvar ao Perder o Foco" #: editor/editor_node.cpp editor/editor_settings.cpp #, fuzzy @@ -4417,7 +4359,7 @@ msgstr "Obter Nó da Cena" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Show Thumbnail On Hover" -msgstr "" +msgstr "Mostrar Miniatura ao Passar o Mouse Por Cima" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Inspector" @@ -4429,7 +4371,7 @@ msgstr "Estilo de Nome da Propriedade Predefinida" #: editor/editor_node.cpp msgid "Default Float Step" -msgstr "" +msgstr "FloatStep Padrão" #: editor/editor_node.cpp scene/gui/tree.cpp #, fuzzy @@ -4438,15 +4380,15 @@ msgstr "Desativar Botão" #: editor/editor_node.cpp msgid "Auto Unfold Foreign Scenes" -msgstr "" +msgstr "Desdobramento Automático de Cenas Estrangeiras" #: editor/editor_node.cpp msgid "Horizontal Vector2 Editing" -msgstr "" +msgstr "Edição Horizontal do Vector2" #: editor/editor_node.cpp msgid "Horizontal Vector Types Editing" -msgstr "" +msgstr "Edição de Tipo de Vetor Horizontal" #: editor/editor_node.cpp #, fuzzy @@ -4460,7 +4402,7 @@ msgstr "Abrir no Inspetor" #: editor/editor_node.cpp msgid "Default Color Picker Mode" -msgstr "" +msgstr "Modo Seletor de Cores Padrão" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Version Control" @@ -4627,12 +4569,12 @@ msgid "" "mobile device).\n" "You don't need to enable it to use the GDScript debugger locally." msgstr "" -"Quando esta opção é ativada, ao usar distribuição por um clique o executável " -"irá tentar ligar-se ao endereço IP deste computador, para que o projeto " -"possa ser depurado.\n" -"Esta opção foi criada para ser usada pela depuração remota (tipicamente com " -"um aparelho móvel).\n" -"Não é necessário ativá-la para usar o depurador de GDScript localmente." +"Quando esta opção está habilitada, Distribuição por um clique que fará o " +"executável tentar se conectar ao IP deste computador e então o projeto atual " +"pode ser depurado.\n" +"Essa opção foi pensada para ser usada em depuração remota (normalmente com " +"dispositivos móveis).\n" +"Você não precisa habilitá-la para usar o depurador do GDScript localmente." #: editor/editor_node.cpp msgid "Small Deploy with Network Filesystem" @@ -4649,9 +4591,9 @@ msgid "" msgstr "" "Quando esta opção é ativada, a distribuição por um clique para Android vai " "exportar um executável sem os dados do projeto.\n" -"O Sistema de Ficheiros será fornecido ao Projeto pelo Editor sobre a rede.\n" -"Em Android, a distribuição irá usar a ligação USB para melhor performance. " -"Esta opção acelera o teste de jogos pesados." +"O sistema de arquivos será fornecido ao projeto pelo editor sobre a rede.\n" +"Em Android, a distribuição irá usar o cabo USB para melhor performance. Esta " +"opção acelera o teste para projetos com assets grandes ." #: editor/editor_node.cpp msgid "Visible Collision Shapes" @@ -4662,8 +4604,8 @@ msgid "" "When this option is enabled, collision shapes and raycast nodes (for 2D and " "3D) will be visible in the running project." msgstr "" -"Quando esta opção está ativada, as formas de colisões e nós raycast (para 2D " -"e 3D) serão visíveis no projeto em execução." +"Quando esta opção está ativada, as formas de colisões e nós de raycast (para " +"2D e 3D) serão visíveis no projeto em execução." #: editor/editor_node.cpp msgid "Visible Navigation" @@ -5115,7 +5057,7 @@ msgstr "Depurador" #: editor/editor_profiler.cpp msgid "Profiler Frame History Size" -msgstr "" +msgstr "Tamanho do Histórico do Perfilador de Quadro" #: editor/editor_profiler.cpp #, fuzzy @@ -5332,23 +5274,23 @@ msgstr "Mostrar Tudo" #: editor/editor_settings.cpp msgid "Custom Display Scale" -msgstr "" +msgstr "Escala de Exibição Personalizada" #: editor/editor_settings.cpp msgid "Main Font Size" -msgstr "" +msgstr "Tamanho da Fonte Principal" #: editor/editor_settings.cpp msgid "Code Font Size" -msgstr "" +msgstr "Tamanho da Fonte do Código" #: editor/editor_settings.cpp msgid "Font Antialiased" -msgstr "" +msgstr "Fonte Suave" #: editor/editor_settings.cpp msgid "Font Hinting" -msgstr "" +msgstr "Alinhar Fonte" #: editor/editor_settings.cpp #, fuzzy @@ -5357,7 +5299,7 @@ msgstr "Cena Principal" #: editor/editor_settings.cpp msgid "Main Font Bold" -msgstr "" +msgstr "Fonte Principal em Negrito" #: editor/editor_settings.cpp #, fuzzy @@ -5366,15 +5308,15 @@ msgstr "Adicionar Ponto Nó" #: editor/editor_settings.cpp msgid "Dim Editor On Dialog Popup" -msgstr "" +msgstr "Atenuar Editor na Caixa de Diálogo de Popup" #: editor/editor_settings.cpp main/main.cpp msgid "Low Processor Mode Sleep (µsec)" -msgstr "" +msgstr "Duração do Modo de Baixo Consumo do Processador (µsec)" #: editor/editor_settings.cpp msgid "Unfocused Low Processor Mode Sleep (µsec)" -msgstr "" +msgstr "Duração do Modo de Baixo Consumo do Processador Fora de Foco (µsec)" #: editor/editor_settings.cpp #, fuzzy @@ -5383,11 +5325,11 @@ msgstr "Modo Livre de Distrações" #: editor/editor_settings.cpp msgid "Automatically Open Screenshots" -msgstr "" +msgstr "Abrir Capturas de Tela Automaticamente" #: editor/editor_settings.cpp msgid "Max Array Dictionary Items Per Page" -msgstr "" +msgstr "Máximo de Itens de Dicionário de Array por Página" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp scene/gui/control.cpp @@ -5401,81 +5343,71 @@ msgstr "Predefinições" #: editor/editor_settings.cpp msgid "Icon And Font Color" -msgstr "" +msgstr "Ícone e Cor da Fonte" #: editor/editor_settings.cpp -#, fuzzy msgid "Base Color" -msgstr "Cores" +msgstr "Cor Base" #: editor/editor_settings.cpp -#, fuzzy msgid "Accent Color" -msgstr "Escolher cor" +msgstr "Cor de Destaque" #: editor/editor_settings.cpp scene/resources/environment.cpp msgid "Contrast" -msgstr "" +msgstr "Contraste" #: editor/editor_settings.cpp msgid "Relationship Line Opacity" -msgstr "" +msgstr "Opacidade da Linha de Relacionamento" #: editor/editor_settings.cpp -#, fuzzy msgid "Highlight Tabs" -msgstr "A guardar lightmaps" +msgstr "Destacar Guias" #: editor/editor_settings.cpp -#, fuzzy msgid "Border Size" -msgstr "Pixeis da Margem" +msgstr "Tamanho da Borda" #: editor/editor_settings.cpp msgid "Use Graph Node Headers" -msgstr "" +msgstr "Usar Cabeçalhos de Nós de Gráficos" #: editor/editor_settings.cpp -#, fuzzy msgid "Additional Spacing" -msgstr "Loop da Animação" +msgstr "Espaçamento Adicional" #: editor/editor_settings.cpp -#, fuzzy msgid "Custom Theme" -msgstr "Editor de Tema" +msgstr "Tema Personalizado" #: editor/editor_settings.cpp -#, fuzzy msgid "Show Script Button" -msgstr "Roda Botão Direito" +msgstr "Mostrar Botão de Script" #: editor/editor_settings.cpp -#, fuzzy msgid "Directories" -msgstr "Direções" +msgstr "Diretórios" #: editor/editor_settings.cpp msgid "Autoscan Project Path" -msgstr "Autoscan Caminho do Projeto" +msgstr "Verificação Automática do Caminho do Projeto" #: editor/editor_settings.cpp msgid "Default Project Path" -msgstr "Caminho do Projeto Predefinido" +msgstr "Caminho Padrão do Projeto" #: editor/editor_settings.cpp -#, fuzzy msgid "On Save" -msgstr "Guardar" +msgstr "Ao Salvar" #: editor/editor_settings.cpp -#, fuzzy msgid "Compress Binary Resources" -msgstr "Copiar Recurso" +msgstr "Comprimir Recursos Binários" #: editor/editor_settings.cpp msgid "Safe Save On Backup Then Rename" -msgstr "" +msgstr "Salvar com Segurança no Backup e Renomear" #: editor/editor_settings.cpp #, fuzzy @@ -5488,7 +5420,7 @@ msgstr "Tamanho da Miniatura" #: editor/editor_settings.cpp msgid "Docks" -msgstr "" +msgstr "Painéis" #: editor/editor_settings.cpp #, fuzzy @@ -5497,7 +5429,7 @@ msgstr "Obter Árvore da Cena" #: editor/editor_settings.cpp msgid "Start Create Dialog Fully Expanded" -msgstr "" +msgstr "Iniciar Diálogo de Criação Totalmente Expandido" #: editor/editor_settings.cpp #, fuzzy @@ -5511,7 +5443,7 @@ msgstr "Editor de Grupo" #: editor/editor_settings.cpp msgid "Auto Refresh Interval" -msgstr "" +msgstr "Intervalo de Atualização Automática" #: editor/editor_settings.cpp #, fuzzy @@ -5526,13 +5458,12 @@ msgstr "Editor de Tema" #: editor/editor_settings.cpp scene/3d/label_3d.cpp #: scene/resources/default_theme/default_theme.cpp msgid "Line Spacing" -msgstr "" +msgstr "Espaçamento de Linha" #: editor/editor_settings.cpp editor/plugins/script_text_editor.cpp #: modules/gdscript/editor/gdscript_highlighter.cpp -#, fuzzy msgid "Highlighting" -msgstr "Iluminação direta" +msgstr "Destaque" #: editor/editor_settings.cpp scene/gui/text_edit.cpp #, fuzzy @@ -5541,15 +5472,15 @@ msgstr "Destaque de Sintaxe" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "Highlight All Occurrences" -msgstr "" +msgstr "Destacar Todas as Ocorrências" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "Highlight Current Line" -msgstr "" +msgstr "Destacar Linha Atual" #: editor/editor_settings.cpp editor/plugins/script_text_editor.cpp msgid "Highlight Type Safe Lines" -msgstr "" +msgstr "Destacar Linhas com Tipo Seguro" #: editor/editor_settings.cpp #, fuzzy @@ -5582,11 +5513,11 @@ msgstr "Navegação" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "Smooth Scrolling" -msgstr "" +msgstr "Rolagem Suave" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "V Scroll Speed" -msgstr "" +msgstr "Velocidade de Rolagem V" #: editor/editor_settings.cpp #, fuzzy @@ -5595,15 +5526,20 @@ msgstr "Mostrar Origem" #: editor/editor_settings.cpp msgid "Minimap Width" -msgstr "" +msgstr "Largura do Minimapa" #: editor/editor_settings.cpp msgid "Mouse Extra Buttons Navigate History" -msgstr "" +msgstr "Botões extra do Mouse para Navegar no Histórico" + +#: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Seleção de GridMap" #: editor/editor_settings.cpp msgid "Appearance" -msgstr "" +msgstr "Aparência" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "Show Line Numbers" @@ -5615,7 +5551,7 @@ msgstr "Números da Linha Preenchidos com Zeros" #: editor/editor_settings.cpp msgid "Show Bookmark Gutter" -msgstr "" +msgstr "Mostrar Barra de Favoritos" #: editor/editor_settings.cpp #, fuzzy @@ -5624,27 +5560,27 @@ msgstr "Saltar Pontos de Paragem" #: editor/editor_settings.cpp msgid "Show Info Gutter" -msgstr "" +msgstr "Mostrar Barra de Informações" #: editor/editor_settings.cpp msgid "Code Folding" -msgstr "" +msgstr "Agrupamento de Código" #: editor/editor_settings.cpp msgid "Word Wrap" -msgstr "" +msgstr "Quebra de Palavras" #: editor/editor_settings.cpp msgid "Show Line Length Guidelines" -msgstr "" +msgstr "Exibir Guias de Comprimento de Linha" #: editor/editor_settings.cpp msgid "Line Length Guideline Soft Column" -msgstr "" +msgstr "Diretriz de Comprimento de Linha de Coluna Flexível" #: editor/editor_settings.cpp msgid "Line Length Guideline Hard Column" -msgstr "" +msgstr "Diretriz de Comprimento de Linha de Coluna Rígida" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5653,7 +5589,7 @@ msgstr "Editor de Script" #: editor/editor_settings.cpp msgid "Show Members Overview" -msgstr "" +msgstr "Mostrar Visão Geral dos Membros" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5667,19 +5603,19 @@ msgstr "Apagar Espaços nos Limites" #: editor/editor_settings.cpp msgid "Autosave Interval Secs" -msgstr "" +msgstr "Segundos de Intervalo de Salvamento Automático" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp msgid "Restore Scripts On Load" -msgstr "" +msgstr "Restaurar Scripts ao Carregar" #: editor/editor_settings.cpp msgid "Auto Reload And Parse Scripts On Save" -msgstr "" +msgstr "Auto Recarrega e Analisa de Scripts ao Salvar" #: editor/editor_settings.cpp msgid "Auto Reload Scripts On External Change" -msgstr "" +msgstr "Recarregamento Automático de Scripts em Caso de Mudança Externa" #: editor/editor_settings.cpp #, fuzzy @@ -5688,27 +5624,27 @@ msgstr "Forçar Shader de Reserva" #: editor/editor_settings.cpp msgid "Sort Members Outline Alphabetically" -msgstr "" +msgstr "Ordenar Esquema de Membros em Ordem Alfabética" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Cursor" -msgstr "" +msgstr "Cursor" #: editor/editor_settings.cpp msgid "Scroll Past End Of File" -msgstr "" +msgstr "Rolar Além do Final do Arquivo" #: editor/editor_settings.cpp msgid "Block Caret" -msgstr "" +msgstr "Cursor em Bloco" #: editor/editor_settings.cpp msgid "Caret Blink" -msgstr "" +msgstr "Cursor Piscando" #: editor/editor_settings.cpp msgid "Caret Blink Speed" -msgstr "" +msgstr "Velocidade do Piscamento do Cursor" #: editor/editor_settings.cpp #, fuzzy @@ -5723,23 +5659,23 @@ msgstr "Conclusão" #: editor/editor_settings.cpp msgid "Idle Parse Delay" -msgstr "" +msgstr "Atraso de Análise de Inatividade" #: editor/editor_settings.cpp msgid "Auto Brace Complete" -msgstr "" +msgstr "Autocompletar Parênteses" #: editor/editor_settings.cpp msgid "Code Complete Delay" -msgstr "" +msgstr "Atraso no Auto Completar do Código" #: editor/editor_settings.cpp msgid "Put Callhint Tooltip Below Current Line" -msgstr "" +msgstr "Mostrar Sugestão de Chamada Abaixo da Linha Atual" #: editor/editor_settings.cpp msgid "Callhint Tooltip Offset" -msgstr "" +msgstr "Deslocamento da Sugestão de Chamada" #: editor/editor_settings.cpp #, fuzzy @@ -5762,15 +5698,15 @@ msgstr "Mostrar Ajudantes" #: editor/editor_settings.cpp msgid "Help Font Size" -msgstr "" +msgstr "Tamanho da Fonte de Ajuda" #: editor/editor_settings.cpp msgid "Help Source Font Size" -msgstr "" +msgstr "Tamanho da Fonte de Código de Ajuda" #: editor/editor_settings.cpp msgid "Help Title Font Size" -msgstr "" +msgstr "Tamanho da Fonte do Título da Ajuda" #: editor/editor_settings.cpp modules/gridmap/grid_map_editor_plugin.cpp msgid "Grid Map" @@ -5787,11 +5723,11 @@ msgstr "Pré-visualização" #: editor/editor_settings.cpp msgid "Primary Grid Color" -msgstr "" +msgstr "Cor da Grade Primária" #: editor/editor_settings.cpp msgid "Secondary Grid Color" -msgstr "" +msgstr "Cor da Grade Secundária" #: editor/editor_settings.cpp #, fuzzy @@ -5828,7 +5764,7 @@ msgstr "Ponto" #: scene/resources/particles_material.cpp servers/physics_2d_server.cpp #: servers/physics_server.cpp msgid "Shape" -msgstr "" +msgstr "Forma" #: editor/editor_settings.cpp msgid "Primary Grid Steps" @@ -5840,15 +5776,15 @@ msgstr "Tamanho da Grelha" #: editor/editor_settings.cpp msgid "Grid Division Level Max" -msgstr "" +msgstr "Nível Máximo de Divisão de Grade" #: editor/editor_settings.cpp msgid "Grid Division Level Min" -msgstr "" +msgstr "Nível Mínimo de Divisão de Grade" #: editor/editor_settings.cpp msgid "Grid Division Level Bias" -msgstr "" +msgstr "Viés de Nível de Divisão de Grade" #: editor/editor_settings.cpp #, fuzzy @@ -5882,7 +5818,7 @@ msgstr "Predefinição" #: editor/editor_settings.cpp msgid "Lightmap Baking Number Of CPU Threads" -msgstr "" +msgstr "Número de threads da CPU para Baking do Mapa de luz" #: editor/editor_settings.cpp #, fuzzy @@ -5906,11 +5842,11 @@ msgstr "Diminuir Zoom" #: editor/editor_settings.cpp msgid "Emulate Numpad" -msgstr "" +msgstr "Emular Teclado Numérico" #: editor/editor_settings.cpp msgid "Emulate 3 Button Mouse" -msgstr "" +msgstr "Emular Mouse de 3 Botões" #: editor/editor_settings.cpp #, fuzzy @@ -5929,7 +5865,7 @@ msgstr "Modificado" #: editor/editor_settings.cpp editor/plugins/spatial_editor_plugin.cpp msgid "Warped Mouse Panning" -msgstr "" +msgstr "Panorama do Mouse Distorcido" #: editor/editor_settings.cpp #, fuzzy @@ -5938,11 +5874,11 @@ msgstr "Modo Navegação" #: editor/editor_settings.cpp msgid "Orbit Sensitivity" -msgstr "" +msgstr "Sensibilidade da Órbita" #: editor/editor_settings.cpp msgid "Orbit Inertia" -msgstr "" +msgstr "Inércia da Órbita" #: editor/editor_settings.cpp #, fuzzy @@ -6006,7 +5942,7 @@ msgstr "Ajuste Inteligente" #: editor/editor_settings.cpp msgid "Bone Width" -msgstr "" +msgstr "Largura do Osso" #: editor/editor_settings.cpp #, fuzzy @@ -6024,11 +5960,11 @@ msgstr "Cor dos Ossos Selecionados" #: editor/editor_settings.cpp msgid "Bone IK Color" -msgstr "" +msgstr "Cor do Osso IK" #: editor/editor_settings.cpp msgid "Bone Outline Color" -msgstr "" +msgstr "Color do Contorno do Osso" #: editor/editor_settings.cpp msgid "Bone Outline Size" @@ -6036,19 +5972,19 @@ msgstr "Tamanho do Contorno dos Ossos" #: editor/editor_settings.cpp msgid "Viewport Border Color" -msgstr "" +msgstr "Cor da borda do Viewport" #: editor/editor_settings.cpp msgid "Constrain Editor View" -msgstr "" +msgstr "Restringir a Visualização do Editor" #: editor/editor_settings.cpp msgid "Simple Panning" -msgstr "" +msgstr "Panorâmica Simples" #: editor/editor_settings.cpp msgid "Scroll To Pan" -msgstr "" +msgstr "Rolar para Arrastar" #: editor/editor_settings.cpp msgid "Pan Speed" @@ -6061,7 +5997,7 @@ msgstr "Editor UV de Polígono 2D" #: editor/editor_settings.cpp msgid "Point Grab Radius" -msgstr "" +msgstr "Raio do Ponto de Captura" #: editor/editor_settings.cpp editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy @@ -6075,7 +6011,7 @@ msgstr "Renomear Animação" #: editor/editor_settings.cpp msgid "Default Create Bezier Tracks" -msgstr "" +msgstr "Criar Faixas de Bézier Padrão" #: editor/editor_settings.cpp #, fuzzy @@ -6084,84 +6020,77 @@ msgstr "Criar Pista(s) RESET" #: editor/editor_settings.cpp msgid "Onion Layers Past Color" -msgstr "" +msgstr "Camadas de Cebola Cor Passada" #: editor/editor_settings.cpp msgid "Onion Layers Future Color" -msgstr "" +msgstr "Camadas de Cebola Cor Futura" #: editor/editor_settings.cpp -#, fuzzy msgid "Visual Editors" -msgstr "Editor de Grupo" +msgstr "Editor Visual" #: editor/editor_settings.cpp msgid "Minimap Opacity" -msgstr "" +msgstr "Opacidade do Minimapa" #: editor/editor_settings.cpp msgid "Window Placement" -msgstr "" +msgstr "Posicionamento da Janela" #: editor/editor_settings.cpp scene/2d/back_buffer_copy.cpp scene/2d/sprite.cpp #: scene/2d/visibility_notifier_2d.cpp scene/3d/sprite_3d.cpp #: scene/gui/control.cpp -#, fuzzy msgid "Rect" -msgstr "Rect Completo" +msgstr "Retângulo" #: editor/editor_settings.cpp -#, fuzzy msgid "Rect Custom Position" -msgstr "Definir posição Curve Out" +msgstr "Posição Personalizada do Retângulo" #: editor/editor_settings.cpp platform/android/export/export_plugin.cpp msgid "Screen" -msgstr "" +msgstr "Tela" #: editor/editor_settings.cpp -#, fuzzy msgid "Auto Save" -msgstr "Corte automático" +msgstr "Salvamento Automático" #: editor/editor_settings.cpp msgid "Save Before Running" -msgstr "Guardar Antes de Executar" +msgstr "Salvar Antes de Executar" #: editor/editor_settings.cpp -#, fuzzy msgid "Font Size" -msgstr "Vista de Frente" +msgstr "Tamanho da Fonte" #: editor/editor_settings.cpp #: modules/gdscript/language_server/gdscript_language_server.cpp msgid "Remote Host" -msgstr "Hospedeiro Remoto" +msgstr "Host Remoto" #: editor/editor_settings.cpp #: modules/gdscript/language_server/gdscript_language_server.cpp -#, fuzzy msgid "Remote Port" -msgstr "Remover Ponto" +msgstr "Porta Remota" #: editor/editor_settings.cpp -#, fuzzy msgid "Editor SSL Certificates" -msgstr "Configurações do Editor" +msgstr "Editor de Certificados SSL" #: editor/editor_settings.cpp msgid "HTTP Proxy" -msgstr "" +msgstr "Proxy HTTP" #: editor/editor_settings.cpp msgid "Host" -msgstr "" +msgstr "Host" #: editor/editor_settings.cpp editor/fileserver/editor_file_server.cpp #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp #: scene/resources/default_theme/default_theme.cpp msgid "Port" -msgstr "" +msgstr "Porta" #. TRANSLATORS: Project Manager here refers to the tool used to create/manage Godot projects. #: editor/editor_settings.cpp @@ -6175,36 +6104,35 @@ msgstr "Ordem de Classificação" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Symbol Color" -msgstr "" +msgstr "Cor do Símbolo" #: editor/editor_settings.cpp msgid "Keyword Color" -msgstr "" +msgstr "Cor da Palavra-Chave" #: editor/editor_settings.cpp msgid "Control Flow Keyword Color" -msgstr "" +msgstr "Cor da Palavra-Chave do Fluxo de Controle" #: editor/editor_settings.cpp -#, fuzzy msgid "Base Type Color" -msgstr "Mudar tipo base" +msgstr "Cor do Tipo Base" #: editor/editor_settings.cpp msgid "Engine Type Color" -msgstr "" +msgstr "Cor do Tipo de Motor" #: editor/editor_settings.cpp msgid "User Type Color" -msgstr "" +msgstr "Cor do Tipo de Usuário" #: editor/editor_settings.cpp msgid "Comment Color" -msgstr "" +msgstr "Cor do Comentário" #: editor/editor_settings.cpp msgid "String Color" -msgstr "Cor da Cadeia" +msgstr "Cor da String" #: editor/editor_settings.cpp platform/javascript/export/export.cpp #: platform/uwp/export/export.cpp @@ -6214,29 +6142,27 @@ msgstr "Cor de Fundo" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Background Color" -msgstr "Conclusão da Cor de Fundo" +msgstr "Cor de Preenchimento de Fundo" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Completion Selected Color" -msgstr "Importar Selecionado" +msgstr "Cor de Preenchimento Selecionada" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Existing Color" -msgstr "" +msgstr "Cor de Preenchimento Existente" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Scroll Color" -msgstr "" +msgstr "Cor de Preenchimento de Rolagem" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Font Color" -msgstr "" +msgstr "Cor de Preenchimento de Fonte" #: editor/editor_settings.cpp -#, fuzzy msgid "Text Color" -msgstr "Próximo Piso" +msgstr "Cor do Texto" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Line Number Color" @@ -6248,86 +6174,75 @@ msgstr "Cor do Número da Linha Segura" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Caret Color" -msgstr "" +msgstr "Cor do Cursor" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Caret Background Color" msgstr "Cor de Fundo do Cursor" #: editor/editor_settings.cpp -#, fuzzy msgid "Text Selected Color" -msgstr "Apagar Selecionado" +msgstr "Cor do Texto Selecionado" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Selection Color" -msgstr "Apenas seleção" +msgstr "Cor da Seleção" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Brace Mismatch Color" -msgstr "" +msgstr "Cor da Incompatibilidade de Fechamento de Chaves" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Current Line Color" -msgstr "Cena Atual" +msgstr "Cor da Linha Atual" #: editor/editor_settings.cpp msgid "Line Length Guideline Color" -msgstr "" +msgstr "Cor da Diretriz do Comprimento da Linha" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Word Highlighted Color" -msgstr "Destaque de Sintaxe" +msgstr "Cor da Palavra Destacada" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Number Color" -msgstr "" +msgstr "Cor do Número" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Function Color" -msgstr "Função" +msgstr "Cor da Função" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Member Variable Color" -msgstr "Mudar nome da Variável" +msgstr "Cor da Variável de Membro" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Mark Color" -msgstr "Escolher cor" +msgstr "Cor da Marca" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Bookmark Color" -msgstr "Marcadores" +msgstr "Cor dos Favoritos" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Breakpoint Color" -msgstr "Pontos de paragem" +msgstr "Color do Breakpoint" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Executing Line Color" -msgstr "" +msgstr "Cor da Linha em Execução" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Code Folding Color" -msgstr "" +msgstr "Cor do Agrupamento de Código" #: editor/editor_settings.cpp -#, fuzzy msgid "Search Result Color" -msgstr "Resultados da Pesquisa" +msgstr "Color dos Resultados da Pesquisa" #: editor/editor_settings.cpp -#, fuzzy msgid "Search Result Border Color" -msgstr "Resultados da Pesquisa" +msgstr "Cor da Borda dos Resultados da Pesquisa" #: editor/editor_spin_slider.cpp msgid "Hold %s to round to integers. Hold Shift for more precise changes." @@ -6336,14 +6251,12 @@ msgstr "" "mais precisas." #: editor/editor_spin_slider.cpp scene/gui/button.cpp -#, fuzzy msgid "Flat" -msgstr "Plano 0" +msgstr "Flat" #: editor/editor_spin_slider.cpp -#, fuzzy msgid "Hide Slider" -msgstr "Modo Colisão" +msgstr "Ocultar Slider" #: editor/editor_sub_scene.cpp msgid "Select Node(s) to Import" @@ -6639,7 +6552,7 @@ msgstr "" #: editor/fileserver/editor_file_server.cpp msgid "File Server" -msgstr "" +msgstr "Servidor de Arquivos" #: editor/fileserver/editor_file_server.cpp #: editor/plugins/version_control_editor_plugin.cpp @@ -6707,6 +6620,11 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"Esta extensão de arquivo não é reconhecida pelo editor.\n" +"Se você de qualquer maneira quiser renomeá-lo, use o gerenciador de arquivos " +"do seu sistema operacional.\n" +"Após renomear para uma extensão desconhecida, o arquivo não será mais " +"exibido no editor." #: editor/filesystem_dock.cpp msgid "" @@ -7007,11 +6925,11 @@ msgstr "Gerir Grupos" #: editor/import/editor_import_collada.cpp msgid "Collada" -msgstr "" +msgstr "Collada" #: editor/import/editor_import_collada.cpp msgid "Use Ambient" -msgstr "" +msgstr "Usar Ambiente" #: editor/import/resource_importer_bitmask.cpp #, fuzzy @@ -7021,7 +6939,7 @@ msgstr "Criar Pasta" #: editor/import/resource_importer_bitmask.cpp #: servers/audio/effects/audio_effect_compressor.cpp msgid "Threshold" -msgstr "" +msgstr "Limite" #: editor/import/resource_importer_csv_translation.cpp #: editor/import/resource_importer_layered_texture.cpp @@ -7034,7 +6952,7 @@ msgstr "Componentes" #: editor/import/resource_importer_csv_translation.cpp msgid "Delimiter" -msgstr "" +msgstr "Delimitador" #: editor/import/resource_importer_layered_texture.cpp #, fuzzy @@ -7043,7 +6961,7 @@ msgstr "Função Cor." #: editor/import/resource_importer_layered_texture.cpp msgid "No BPTC If RGB" -msgstr "" +msgstr "Sem BPTC Se RGB" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/2d/cpu_particles_2d.cpp @@ -7051,13 +6969,13 @@ msgstr "" #: scene/resources/material.cpp scene/resources/particles_material.cpp #: scene/resources/texture.cpp scene/resources/visual_shader.cpp msgid "Flags" -msgstr "" +msgstr "Flags" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/animation/tween.cpp #: scene/resources/texture.cpp msgid "Repeat" -msgstr "" +msgstr "Repetir" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/2d/light_2d.cpp @@ -7074,12 +6992,12 @@ msgstr "Sinais" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp msgid "Anisotropic" -msgstr "" +msgstr "Anisotrópico" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp msgid "sRGB" -msgstr "" +msgstr "sRGB" #: editor/import/resource_importer_layered_texture.cpp #, fuzzy @@ -7106,23 +7024,21 @@ msgid "Generate Tangents" msgstr "Gerar Pontos" #: editor/import/resource_importer_obj.cpp -#, fuzzy msgid "Scale Mesh" -msgstr "Modo Escalar" +msgstr "Escalar Forma" #: editor/import/resource_importer_obj.cpp msgid "Offset Mesh" -msgstr "Malha de Compensação" +msgstr "Forma de Compensação" #: editor/import/resource_importer_obj.cpp #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Octahedral Compression" -msgstr "Expressão" +msgstr "Compressão Octaédrica" #: editor/import/resource_importer_obj.cpp msgid "Optimize Mesh Flags" -msgstr "Otimizar Flags da Malha" +msgstr "Otimizar Flags da Forma" #: editor/import/resource_importer_scene.cpp msgid "Import as Single Scene" @@ -7166,29 +7082,24 @@ msgstr "Importar como Cenas Múltiplas + Materiais" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp #: scene/3d/physics_joint.cpp -#, fuzzy msgid "Nodes" -msgstr "Nó" +msgstr "Nós" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Root Type" -msgstr "Voltar" +msgstr "Tipo da Raiz" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Root Name" -msgstr "Nome do Remoto" +msgstr "Nome da Raiz" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Root Scale" -msgstr "Escala" +msgstr "Escala da Raiz" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Custom Script" -msgstr "CustomNode" +msgstr "Script Personalizado" #: editor/import/resource_importer_scene.cpp scene/resources/texture.cpp msgid "Storage" @@ -7196,54 +7107,47 @@ msgstr "Armazenamento" #: editor/import/resource_importer_scene.cpp msgid "Use Legacy Names" -msgstr "" +msgstr "Usar Nomes Legados" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp msgid "Materials" msgstr "Materiais" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Keep On Reimport" -msgstr "Reimportar" +msgstr "Manter ao Reimportar" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp -#, fuzzy msgid "Meshes" -msgstr "Malha" +msgstr "Malhas" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Ensure Tangents" -msgstr "Modificar tangente da curva" +msgstr "Assegurar Tangentes" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Light Baking" -msgstr "Consolidar Lightmaps" +msgstr "Baking de Luz" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Lightmap Texel Size" -msgstr "Consolidar Lightmaps" +msgstr "Tamanho do Texel do Mapa de Luz" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp msgid "Skins" -msgstr "" +msgstr "Skins" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Use Named Skins" -msgstr "Usar Ajuste de Escala" +msgstr "Usar Skins com Nome" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "External Files" -msgstr "Abrir um Ficheiro" +msgstr "Arquivos Externos" #: editor/import/resource_importer_scene.cpp msgid "Store In Subdir" -msgstr "" +msgstr "Armazenar no Subdiretório" #: editor/import/resource_importer_scene.cpp #, fuzzy @@ -7319,13 +7223,12 @@ msgid "Generating Lightmaps" msgstr "A gerar Lightmaps" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Generating for Mesh:" -msgstr "A gerar para Malha: " +msgstr "Gerar para Forma:" #: editor/import/resource_importer_scene.cpp msgid "Running Custom Script..." -msgstr "A executar Script Customizado..." +msgstr "A executar Script Personalizado..." #: editor/import/resource_importer_scene.cpp msgid "Couldn't load post-import script:" @@ -7352,155 +7255,148 @@ 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: Textura detectada como usada como mapa normal em 3D. Ativando a " +"compactação de textura vermelho-verde para reduzir o uso de memória (o canal " +"azul é descartado)." #: editor/import/resource_importer_texture.cpp msgid "" "%s: Texture detected as used in 3D. Enabling filter, repeat, mipmap " "generation and VRAM texture compression." msgstr "" +"%s: Textura detectada como usada em 3D. Ativando filtro, repetição, geração " +"de mapa MIP e compressão de textura VRAM." #: editor/import/resource_importer_texture.cpp msgid "2D, Detect 3D" -msgstr "" +msgstr "2D, Detectar 3D" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "2D Pixel" -msgstr "Pixeis Sólidos" +msgstr "Pixel 2D" #: editor/import/resource_importer_texture.cpp scene/resources/texture.cpp msgid "Lossy Quality" -msgstr "" +msgstr "Qualidade com Perdas" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "HDR Mode" -msgstr "Modo Seleção" +msgstr "Modo HDR" #: editor/import/resource_importer_texture.cpp msgid "BPTC LDR" -msgstr "" +msgstr "BPTC LDR" #: editor/import/resource_importer_texture.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/2d/cpu_particles_2d.cpp #: scene/2d/mesh_instance_2d.cpp scene/2d/multimesh_instance_2d.cpp #: scene/2d/particles_2d.cpp scene/2d/sprite.cpp scene/resources/style_box.cpp msgid "Normal Map" -msgstr "" +msgstr "Mapa Normal" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Process" -msgstr "Pós-processamento" +msgstr "Processo" #: editor/import/resource_importer_texture.cpp msgid "Fix Alpha Border" -msgstr "" +msgstr "Corrigir Borda Alfa" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Premult Alpha" -msgstr "Editar Polígono" +msgstr "Pré-multiplicar Alfa" #: editor/import/resource_importer_texture.cpp msgid "Hdr As Srgb" -msgstr "" +msgstr "Hdr como Srgb" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Invert Color" -msgstr "Vértice" +msgstr "Inverter Cor" #: editor/import/resource_importer_texture.cpp msgid "Normal Map Invert Y" -msgstr "Mapa Normal Inverter Y" +msgstr "Inverter Y no Mapa Normal" #: editor/import/resource_importer_texture.cpp msgid "Size Limit" -msgstr "Limite do Tamanho" +msgstr "Tamanho Limite" #: editor/import/resource_importer_texture.cpp msgid "Detect 3D" -msgstr "" +msgstr "Detectar 3D" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "SVG" -msgstr "HSV" +msgstr "SVG" #: editor/import/resource_importer_texture.cpp msgid "" "Warning, no suitable PC VRAM compression enabled in Project Settings. This " "texture will not display correctly on PC." msgstr "" +"Aviso, nenhuma compactação de VRAM de PC adequada ativada nas configurações " +"do projeto. Esta textura não será exibida corretamente no PC." #: editor/import/resource_importer_texture_atlas.cpp msgid "Atlas File" -msgstr "Ficheiro Atlas" +msgstr "Arquivo de Atlas" #: editor/import/resource_importer_texture_atlas.cpp msgid "Import Mode" msgstr "Modo de Importação" #: editor/import/resource_importer_texture_atlas.cpp -#, fuzzy msgid "Crop To Region" -msgstr "Definir Região Tile" +msgstr "Cortar Para Região" #: editor/import/resource_importer_texture_atlas.cpp msgid "Trim Alpha Border From Region" -msgstr "" +msgstr "Aparar Borda Alfa da Região" #: editor/import/resource_importer_wav.cpp scene/2d/physics_body_2d.cpp -#, fuzzy msgid "Force" -msgstr "Forçar Impulso" +msgstr "Força" #: editor/import/resource_importer_wav.cpp msgid "8 Bit" -msgstr "" +msgstr "8 Bits" #: editor/import/resource_importer_wav.cpp main/main.cpp #: modules/mono/editor/csharp_project.cpp modules/mono/mono_gd/gd_mono.cpp msgid "Mono" -msgstr "" +msgstr "Mono" #: editor/import/resource_importer_wav.cpp -#, fuzzy msgid "Max Rate" -msgstr "Nó Mix" +msgstr "Taxa Máxima" #: editor/import/resource_importer_wav.cpp -#, fuzzy msgid "Max Rate Hz" -msgstr "Nó Mix" +msgstr "Taxa Máxima Hz" #: editor/import/resource_importer_wav.cpp msgid "Trim" -msgstr "" +msgstr "Aparar" #: editor/import/resource_importer_wav.cpp -#, fuzzy msgid "Normalize" -msgstr "Formato" +msgstr "Normalizar" #: editor/import/resource_importer_wav.cpp #: scene/resources/audio_stream_sample.cpp -#, fuzzy msgid "Loop Mode" -msgstr "Modo Mover" +msgstr "Modo de Loop" #: editor/import/resource_importer_wav.cpp #: scene/resources/audio_stream_sample.cpp -#, fuzzy msgid "Loop Begin" -msgstr "Modo Mover" +msgstr "Inicio do Loop" #: editor/import/resource_importer_wav.cpp #: scene/resources/audio_stream_sample.cpp -#, fuzzy msgid "Loop End" -msgstr "Modo Mover" +msgstr "Fim do Loop" #: editor/import_defaults_editor.cpp msgid "Select Importer" @@ -7597,7 +7493,7 @@ msgstr "Localização" #: editor/inspector_dock.cpp msgid "Localization not available for current language." -msgstr "" +msgstr "Localização não disponível para o idioma atual." #: editor/inspector_dock.cpp msgid "Copy Properties" @@ -8045,11 +7941,20 @@ msgid "New Anim" msgstr "Nova Animação" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Criar Nova Animação" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Mudar o Nome da Animação:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Renomear Animação" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Apagar Animação?" @@ -8067,11 +7972,6 @@ msgid "Animation name already exists!" msgstr "Já existe o nome da Animação!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Renomear Animação" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplicar Animação" @@ -8216,10 +8116,6 @@ msgid "Pin AnimationPlayer" msgstr "Pregar AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Criar Nova Animação" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nome da Animação:" @@ -8473,7 +8369,7 @@ msgstr "Filtros..." #: editor/plugins/asset_library_editor_plugin.cpp scene/main/http_request.cpp msgid "Use Threads" -msgstr "" +msgstr "Usar Threads" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Contents:" @@ -8705,7 +8601,7 @@ msgstr "Em teste" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed to get repository configuration." -msgstr "" +msgstr "Falha ao obter a configuração do repositório." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Assets ZIP File" @@ -8762,7 +8658,7 @@ msgstr "Consolidar Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "LightMap Bake" -msgstr "" +msgstr "Bake de Mapa de Luz" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" @@ -9279,7 +9175,7 @@ msgstr "Ajuste Inteligente" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Hide" -msgstr "" +msgstr "Esconder" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -9636,11 +9532,11 @@ msgstr "Gradiente Editado" #: editor/plugins/gradient_texture_2d_editor_plugin.cpp msgid "Swap GradientTexture2D Fill Points" -msgstr "" +msgstr "Trocar pontos de preenchimento do Gradiente de Textura 2D" #: editor/plugins/gradient_texture_2d_editor_plugin.cpp msgid "Swap Gradient Fill Points" -msgstr "" +msgstr "Trocar Pontos de Preenchimento de Gradiente" #: editor/plugins/gradient_texture_2d_editor_plugin.cpp #, fuzzy @@ -9664,7 +9560,7 @@ msgstr "Ícone" #: editor/plugins/item_list_editor_plugin.cpp msgid "ID" -msgstr "" +msgstr "ID" #: editor/plugins/item_list_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp @@ -10461,7 +10357,7 @@ msgstr "Sincronizar Ossos com Polígono" #: editor/plugins/ray_cast_2d_editor_plugin.cpp msgid "Set cast_to" -msgstr "" +msgstr "Definir cast_to" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "ERROR: Couldn't load resource!" @@ -10792,11 +10688,11 @@ msgstr "Resultados da Pesquisa" #: editor/plugins/script_editor_plugin.cpp msgid "Open Dominant Script On Scene Change" -msgstr "" +msgstr "Abrir Script Dominante na Mudança de Cena" #: editor/plugins/script_editor_plugin.cpp msgid "External" -msgstr "" +msgstr "Externo" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -10815,11 +10711,11 @@ msgstr "Selecionar Ficheiro de Modelo" #: editor/plugins/script_editor_plugin.cpp msgid "Highlight Current Script" -msgstr "" +msgstr "Destacar Script Atual" #: editor/plugins/script_editor_plugin.cpp msgid "Script Temperature History Size" -msgstr "" +msgstr "Tamanho do Histórico de Temperatura do Script" #: editor/plugins/script_editor_plugin.cpp msgid "Current Script Background Color" @@ -10842,7 +10738,7 @@ msgstr "Nome do Script:" #: editor/plugins/script_editor_plugin.cpp msgid "Exec Flags" -msgstr "" +msgstr "Flags de Execução" #: editor/plugins/script_editor_plugin.cpp msgid "Clear Recent Scripts" @@ -11356,7 +11252,7 @@ msgstr "Pré-visualização Cinemática" #: editor/plugins/spatial_editor_plugin.cpp msgid "(Not in GLES2)" -msgstr "" +msgstr "(Não em GLES2)" #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy @@ -11657,11 +11553,11 @@ msgstr "Pós" #: editor/plugins/spatial_editor_plugin.cpp msgid "Manipulator Gizmo Size" -msgstr "" +msgstr "Tamanho do Gizmo do Manipulador" #: editor/plugins/spatial_editor_plugin.cpp msgid "Manipulator Gizmo Opacity" -msgstr "" +msgstr "Opacidade do Gizmo do Manipulador" #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy @@ -12347,41 +12243,41 @@ msgid "Add Item Type" msgstr "Adicionar Tipo de Item" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Set Variation Base Type" -msgstr "Definir tipo de variável" +msgstr "Definir Tipo Base da Variação" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Set Base Type" -msgstr "Mudar tipo base" +msgstr "Definir Tipo Base" #: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" -msgstr "Mostrar Predefinição" +msgstr "Mostrar Padrão" #: editor/plugins/theme_editor_plugin.cpp msgid "Show default type items alongside items that have been overridden." -msgstr "" -"Mostrar itens do tipo predefinido ao lado de itens que foram sobrepostos." +msgstr "Mostrar itens do tipo padrão ao lado de itens que foram sobrepostos." #: editor/plugins/theme_editor_plugin.cpp msgid "Override All" -msgstr "Sobrepor Tudo" +msgstr "Substituir Tudo" #: editor/plugins/theme_editor_plugin.cpp msgid "Override all default type items." -msgstr "Sobrepõe todos os itens de tipo predefinido." +msgstr "Substituir todos os itens de tipo padrão." #: editor/plugins/theme_editor_plugin.cpp msgid "Select the variation base type from a list of available types." msgstr "" +"Selecione o tipo de base de variação em uma lista de tipos disponíveis." #: editor/plugins/theme_editor_plugin.cpp msgid "" "A type associated with a built-in class cannot be marked as a variation of " "another type." msgstr "" +"Um tipo associado a uma classe integrada não pode ser marcado como uma " +"variação de outro tipo." #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -12626,7 +12522,7 @@ msgstr "Pintar TileMap" #: editor/plugins/tile_map_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Palette Min Width" -msgstr "" +msgstr "Largura Mínima da Paleta" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy @@ -14219,11 +14115,13 @@ msgstr "Executável" #: editor/project_export.cpp msgid "Export the project for all the presets defined." -msgstr "" +msgstr "Exporte o projeto para todas as predefinições definidas." #: editor/project_export.cpp msgid "All presets must have an export path defined for Export All to work." msgstr "" +"Todas as predefinições devem ter um caminho de exportação definido para que " +"Exportar Tudo funcione." #: editor/project_export.cpp msgid "Delete preset '%s'?" @@ -14335,6 +14233,8 @@ msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." msgstr "" +"Nota: A chave de criptografia precisa ser armazenada no binário,\n" +"você precisa construir os modelos de exportação da fonte." #: editor/project_export.cpp #, fuzzy @@ -15493,7 +15393,7 @@ msgstr "Tornar Local" #: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp msgid "Another node already uses this unique name in the scene." -msgstr "" +msgstr "Outro nó já usa esse nome exclusivo na cena." #: editor/scene_tree_dock.cpp #, fuzzy @@ -15579,7 +15479,7 @@ msgstr "Sub-recursos" #: editor/scene_tree_dock.cpp msgid "Access as Scene Unique Name" -msgstr "" +msgstr "Acesso como Nome Exclusivo da Cena" #: editor/scene_tree_dock.cpp msgid "Clear Inheritance" @@ -15684,7 +15584,7 @@ msgstr "Centrar Seleção" #: editor/scene_tree_dock.cpp msgid "Derive Script Globals By Name" -msgstr "" +msgstr "Derivar Globais de Script Por Nome" #: editor/scene_tree_dock.cpp #, fuzzy @@ -15717,6 +15617,9 @@ msgid "" "with the '%s' prefix in a node path.\n" "Click to disable this." msgstr "" +"Este nó pode ser acessado de qualquer lugar na cena, precedendo-o com o " +"prefixo '%s' em um caminho de nó.\n" +"Clique para desabilitar isso." #: editor/scene_tree_editor.cpp msgid "" @@ -16010,15 +15913,15 @@ msgstr "Filtrar Tiles" #: editor/script_editor_debugger.cpp msgid "Auto Switch To Remote Scene Tree" -msgstr "" +msgstr "Mudar Automático para Árvore de Cena Remota" #: editor/script_editor_debugger.cpp msgid "Remote Scene Tree Refresh Interval" -msgstr "" +msgstr "Intervalo de Atualização da Árvore de Cena Remota" #: editor/script_editor_debugger.cpp msgid "Remote Inspect Refresh Interval" -msgstr "" +msgstr "Intervalo de Atualização de Inspeção Remota" #: editor/script_editor_debugger.cpp msgid "Network Profiler" @@ -16116,7 +16019,7 @@ msgstr "Mudar raio da luz" #: editor/spatial_editor_gizmos.cpp msgid "Stream Player 3D" -msgstr "" +msgstr "Reprodutor de Fluxo 3D" #: editor/spatial_editor_gizmos.cpp msgid "Change AudioStreamPlayer3D Emission Angle" @@ -16126,7 +16029,7 @@ msgstr "Mudar ângulo de emissão de AudioStreamPlayer3D" #: platform/osx/export/export.cpp #: scene/resources/default_theme/default_theme.cpp msgid "Camera" -msgstr "" +msgstr "Câmera" #: editor/spatial_editor_gizmos.cpp msgid "Change Camera FOV" @@ -16138,7 +16041,7 @@ msgstr "Mudar tamanho da Câmara" #: editor/spatial_editor_gizmos.cpp msgid "Visibility Notifier" -msgstr "" +msgstr "Notificador de Visibilidade" #: editor/spatial_editor_gizmos.cpp msgid "Change Notifier AABB" @@ -16149,23 +16052,20 @@ msgid "Change Particles AABB" msgstr "Mudar partículas AABB" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Reflection Probe" -msgstr "Selecionar Propriedade" +msgstr "Sonda de Reflexão" #: editor/spatial_editor_gizmos.cpp msgid "Change Probe Extents" msgstr "Mudar Extensões de Sonda" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "GI Probe" -msgstr "Consolidar Sonda GI" +msgstr "Sonda GI" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Baked Indirect Light" -msgstr "Iluminação indireta" +msgstr "Iluminação Indireta Pré-feita" #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp msgid "Change Sphere Shape Radius" @@ -16196,57 +16096,52 @@ msgid "Change Ray Shape Length" msgstr "Mudar comprimento da forma raio" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Navigation Edge" -msgstr "Modo Navegação" +msgstr "Borda de Navegação" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Navigation Edge Disabled" -msgstr "Modo Navegação" +msgstr "Borda de Navegação Desabilitada" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Navigation Solid" -msgstr "Modo Navegação" +msgstr "Sólido de Navegação" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Navigation Solid Disabled" -msgstr "Modo Navegação" +msgstr "Sólido de Navegação Desativado" #: editor/spatial_editor_gizmos.cpp msgid "Joint Body A" -msgstr "" +msgstr "Corpo de Articulação A" #: editor/spatial_editor_gizmos.cpp msgid "Joint Body B" -msgstr "" +msgstr "Corpo de Articulação B" #: editor/spatial_editor_gizmos.cpp msgid "Room Edge" -msgstr "" +msgstr "Borda da Sala" #: editor/spatial_editor_gizmos.cpp msgid "Room Overlap" -msgstr "" +msgstr "Sobreposição de Sala" #: editor/spatial_editor_gizmos.cpp msgid "Set Room Point Position" msgstr "Definir Posição do Ponto do Room" #: editor/spatial_editor_gizmos.cpp scene/3d/portal.cpp -#, fuzzy msgid "Portal Margin" -msgstr "Definir Margem" +msgstr "Margem do Portal" #: editor/spatial_editor_gizmos.cpp msgid "Portal Edge" -msgstr "" +msgstr "Borda do Portal" #: editor/spatial_editor_gizmos.cpp msgid "Portal Arrow" -msgstr "" +msgstr "Seta do Portal" #: editor/spatial_editor_gizmos.cpp msgid "Set Portal Point Position" @@ -16254,18 +16149,16 @@ msgstr "Definir Posição do Ponto do Portal" #: editor/spatial_editor_gizmos.cpp msgid "Portal Front" -msgstr "" +msgstr "Portal Frente" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Portal Back" -msgstr "Voltar" +msgstr "Portal Atras" #: editor/spatial_editor_gizmos.cpp scene/2d/light_occluder_2d.cpp #: scene/2d/tile_map.cpp -#, fuzzy msgid "Occluder" -msgstr "Modo Oclusão" +msgstr "Oclusor" #: editor/spatial_editor_gizmos.cpp msgid "Set Occluder Sphere Radius" @@ -16276,440 +16169,397 @@ msgid "Set Occluder Sphere Position" msgstr "Definir Posição da Esfera do Oclusor" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Polygon Point Position" -msgstr "Definir Posição do Ponto do Portal" +msgstr "Definir a Posição do Ponto do Polígono Oclusor" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Hole Point Position" -msgstr "Definir posição do Ponto da curva" +msgstr "Definir a Posição do Ponto do Orifício do Oclusor" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Occluder Polygon Front" -msgstr "Criar Polígono Oclusor" +msgstr "Frente do Polígono Oclusor" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Occluder Polygon Back" -msgstr "Criar Polígono Oclusor" +msgstr "Parte de Trás do Polígono Oclusor" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Occluder Hole" -msgstr "Criar Polígono Oclusor" +msgstr "Buraco Oclusor" #: main/main.cpp msgid "Godot Physics" -msgstr "" +msgstr "Física do Godot" #: main/main.cpp servers/physics_2d/physics_2d_server_sw.cpp #: servers/visual/visual_server_scene.cpp msgid "Use BVH" -msgstr "" +msgstr "Usar BVH" #: main/main.cpp servers/physics_2d/physics_2d_server_sw.cpp #: servers/visual/visual_server_scene.cpp -#, fuzzy msgid "BVH Collision Margin" -msgstr "Modo Colisão" +msgstr "Margem de Colisão BVH" #: main/main.cpp -#, fuzzy msgid "Crash Handler" -msgstr "Definir Manipulador" +msgstr "Gerenciador de Falhas" #: main/main.cpp -#, fuzzy msgid "Multithreaded Server" -msgstr "Conjunto MultiNó" +msgstr "Servidor com Multi-Thread" #: main/main.cpp msgid "RID Pool Prealloc" -msgstr "" +msgstr "Pré-alocação de pool RID" #: main/main.cpp -#, fuzzy msgid "Debugger stdout" -msgstr "Depurador" +msgstr "Depurador stdout" #: main/main.cpp msgid "Max Chars Per Second" -msgstr "" +msgstr "Máximo de Caracteres Por Segundo" #: main/main.cpp msgid "Max Messages Per Frame" -msgstr "" +msgstr "Máximo de Mensagens Por Quadro" #: main/main.cpp msgid "Max Errors Per Second" -msgstr "" +msgstr "Máximo de Erros Por Segundo" #: main/main.cpp msgid "Max Warnings Per Second" -msgstr "" +msgstr "Máximo de Avisos Por Segundo" #: main/main.cpp msgid "Flush stdout On Print" -msgstr "" +msgstr "Esvaziar stdout Na Impressão" #: main/main.cpp servers/visual_server.cpp msgid "Logging" -msgstr "" +msgstr "Registro de Log" #: main/main.cpp msgid "File Logging" -msgstr "" +msgstr "Log de Arquivo" #: main/main.cpp -#, fuzzy msgid "Enable File Logging" -msgstr "Ativar Filtragem" +msgstr "Ativar Log de Arquivos" #: main/main.cpp -#, fuzzy msgid "Log Path" -msgstr "Copiar Caminho" +msgstr "Caminho de Log" #: main/main.cpp msgid "Max Log Files" -msgstr "" +msgstr "Máximo de Arquivos de Log" #: main/main.cpp msgid "Driver" -msgstr "" +msgstr "Driver" #: main/main.cpp -#, fuzzy msgid "Driver Name" -msgstr "Nome do Script:" +msgstr "Nome do Driver" #: main/main.cpp msgid "Fallback To GLES2" -msgstr "" +msgstr "Alternar para GLES2" #: main/main.cpp msgid "Use Nvidia Rect Flicker Workaround" -msgstr "" +msgstr "Use a Solução Alternativa do Nvidia Rect Flicker" #: main/main.cpp msgid "DPI" -msgstr "" +msgstr "DPI" #: main/main.cpp msgid "Allow hiDPI" -msgstr "" +msgstr "Permitir hiDPI" #: main/main.cpp -#, fuzzy msgid "V-Sync" -msgstr "Sinc" +msgstr "Sincronização Vertical" #: main/main.cpp -#, fuzzy msgid "Use V-Sync" -msgstr "Usar Ajuste" +msgstr "Usar Sincronização Vertical" #: main/main.cpp msgid "Per Pixel Transparency" -msgstr "" +msgstr "Transparência Por Pixel" #: main/main.cpp msgid "Allowed" -msgstr "" +msgstr "Permitido" #: main/main.cpp msgid "Intended Usage" -msgstr "" +msgstr "Uso Pretendido" #: main/main.cpp -#, fuzzy msgid "Framebuffer Allocation" -msgstr "Seleção de Frame" +msgstr "Alocação de Framebuffer" #: main/main.cpp platform/uwp/os_uwp.cpp -#, fuzzy msgid "Energy Saving" -msgstr "Erro Ao Gravar" +msgstr "Economia de Energia" #: main/main.cpp msgid "Threads" -msgstr "" +msgstr "Threads" #: main/main.cpp servers/physics_2d/physics_2d_server_wrap_mt.h -#, fuzzy msgid "Thread Model" -msgstr "Alternar Modo" +msgstr "Modelo de Thread" #: main/main.cpp msgid "Thread Safe BVH" -msgstr "" +msgstr "Thread Segura BVH" #: main/main.cpp msgid "Handheld" -msgstr "" +msgstr "Portátil" #: main/main.cpp platform/javascript/export/export.cpp #: platform/uwp/export/export.cpp -#, fuzzy msgid "Orientation" -msgstr "Documentação Online" +msgstr "Orientação" #: main/main.cpp scene/gui/scroll_container.cpp scene/gui/text_edit.cpp #: scene/main/scene_tree.cpp scene/register_scene_types.cpp -#, fuzzy msgid "Common" -msgstr "Comunidade" +msgstr "Comum" #: main/main.cpp -#, fuzzy msgid "Physics FPS" -msgstr "Frame de Física %" +msgstr "Física FPS" #: main/main.cpp -#, fuzzy msgid "Force FPS" -msgstr "Forçar Impulso" +msgstr "Forçar FPS" #: main/main.cpp msgid "Enable Pause Aware Picking" -msgstr "" +msgstr "Ativar a Seleção Consciente de Pausa" #: main/main.cpp scene/gui/item_list.cpp scene/gui/popup_menu.cpp #: scene/gui/scroll_container.cpp scene/gui/text_edit.cpp scene/gui/tree.cpp #: scene/main/viewport.cpp scene/register_scene_types.cpp msgid "GUI" -msgstr "" +msgstr "Interface Gráfica" #: main/main.cpp msgid "Drop Mouse On GUI Input Disabled" -msgstr "" +msgstr "Desabilitar Soltar o Mouse na Entrada da Interface Gráfica" #: main/main.cpp msgid "stdout" -msgstr "" +msgstr "stdout" #: main/main.cpp msgid "Print FPS" -msgstr "" +msgstr "Imprimir FPS" #: main/main.cpp msgid "Verbose stdout" -msgstr "" +msgstr "stdout Verboso" #: main/main.cpp scene/main/scene_tree.cpp scene/resources/multimesh.cpp -#, fuzzy msgid "Physics Interpolation" -msgstr "Modo de Interpolação" +msgstr "Interpolação Física" #: main/main.cpp -#, fuzzy msgid "Enable Warnings" -msgstr "Ativar Filtragem" +msgstr "Ativar Avisos" #: main/main.cpp -#, fuzzy msgid "Frame Delay Msec" -msgstr "Seleção de Frame" +msgstr "Atraso de Quadro Msec" #: main/main.cpp msgid "Low Processor Mode" -msgstr "" +msgstr "Modo de Baixo Uso do Processador" #: main/main.cpp msgid "Delta Sync After Draw" -msgstr "" +msgstr "Sincronização Delta Após Desenhar" #: main/main.cpp msgid "iOS" -msgstr "" +msgstr "iOS" #: main/main.cpp msgid "Hide Home Indicator" -msgstr "" +msgstr "Esconder Indicador de Home" #: main/main.cpp -#, fuzzy msgid "Input Devices" -msgstr "Todos os Aparelhos" +msgstr "Dispositivos de Entrada" #: main/main.cpp -#, fuzzy msgid "Pointing" -msgstr "Ponto" +msgstr "Pontuação" #: main/main.cpp msgid "Touch Delay" -msgstr "" +msgstr "Atraso de Toque" #: main/main.cpp servers/visual_server.cpp msgid "GLES3" -msgstr "" +msgstr "GLES3" #: main/main.cpp servers/visual_server.cpp -#, fuzzy msgid "Shaders" -msgstr "Shader" +msgstr "Shaders" #: main/main.cpp -#, fuzzy msgid "Debug Shader Fallbacks" -msgstr "Forçar Shader de Reserva" +msgstr "Depurar Fallbacks do Shader" #: main/main.cpp scene/3d/baked_lightmap.cpp scene/3d/camera.cpp #: scene/3d/world_environment.cpp scene/main/scene_tree.cpp #: scene/resources/world.cpp -#, fuzzy msgid "Environment" -msgstr "Ver ambiente" +msgstr "Ambiente" #: main/main.cpp msgid "Default Clear Color" -msgstr "" +msgstr "Cor Clara Padrão" #: main/main.cpp msgid "Boot Splash" -msgstr "" +msgstr "Plano de Fundo de Inicialização" #: main/main.cpp -#, fuzzy msgid "Show Image" -msgstr "Mostrar ossos" +msgstr "Mostrar Imagem" #: main/main.cpp msgid "Image" -msgstr "" +msgstr "Imagem" #: main/main.cpp msgid "Fullsize" -msgstr "" +msgstr "Tamanho Máximo" #: main/main.cpp scene/resources/dynamic_font.cpp -#, fuzzy msgid "Use Filter" -msgstr "Filtro:" +msgstr "Usar Filtro" #: main/main.cpp scene/resources/style_box.cpp -#, fuzzy msgid "BG Color" -msgstr "Cores" +msgstr "Cor de Fundo" #: main/main.cpp -#, fuzzy msgid "macOS Native Icon" -msgstr "Definir Ícone de Tile" +msgstr "Ícone Nativo do macOS" #: main/main.cpp msgid "Windows Native Icon" -msgstr "" +msgstr "Ícone nativo do Windows" #: main/main.cpp msgid "Buffering" -msgstr "" +msgstr "Buffering" #: main/main.cpp msgid "Agile Event Flushing" -msgstr "" +msgstr "Liberação Ágil de Eventos" #: main/main.cpp msgid "Emulate Touch From Mouse" -msgstr "" +msgstr "Emular Toque do Mouse" #: main/main.cpp msgid "Emulate Mouse From Touch" -msgstr "" +msgstr "Emular o Mouse do Toque" #: main/main.cpp -#, fuzzy msgid "Mouse Cursor" -msgstr "Botão do rato" +msgstr "Cursor do Mouse" #: main/main.cpp -#, fuzzy msgid "Custom Image" -msgstr "CustomNode" +msgstr "Imagem Personalizada" #: main/main.cpp msgid "Custom Image Hotspot" -msgstr "" +msgstr "Imagem de Ponto de Acesso Personalizada" #: main/main.cpp -#, fuzzy msgid "Tooltip Position Offset" -msgstr "Compensação da rotação:" +msgstr "Deslocamento de Posição da Dica" #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp -#, fuzzy msgid "Debugger Agent" -msgstr "Depurador" +msgstr "Agente Depurador" #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp -#, fuzzy msgid "Wait For Debugger" -msgstr "Depurador" +msgstr "Esperar o Depurador" #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp msgid "Wait Timeout" -msgstr "Timeout de Espera" +msgstr "Tempo Limite de Espera" #: main/main.cpp msgid "Runtime" -msgstr "" +msgstr "Execução" #: main/main.cpp msgid "Unhandled Exception Policy" -msgstr "" +msgstr "Política de Exceção não Tratada" #: main/main.cpp -#, fuzzy msgid "Main Loop Type" -msgstr "Localizar Tipo de Nó" +msgstr "Tipo de Loop Principal" #: main/main.cpp scene/gui/texture_progress.cpp #: scene/gui/viewport_container.cpp -#, fuzzy msgid "Stretch" -msgstr "Trazer" +msgstr "Esticar" #: main/main.cpp -#, fuzzy msgid "Aspect" -msgstr "Inspetor" +msgstr "Aspecto" #: main/main.cpp msgid "Shrink" -msgstr "" +msgstr "Encolher" #: main/main.cpp scene/main/scene_tree.cpp msgid "Auto Accept Quit" -msgstr "" +msgstr "Auto Aceitar Sair" #: main/main.cpp scene/main/scene_tree.cpp -#, fuzzy msgid "Quit On Go Back" -msgstr "Voltar" +msgstr "Sair em Voltar" #: main/main.cpp scene/main/viewport.cpp -#, fuzzy msgid "Snap Controls To Pixels" -msgstr "Ajustar aos Lados do Nó" +msgstr "Ajustar Controles aos Pixels" #: main/main.cpp msgid "Dynamic Fonts" -msgstr "" +msgstr "Fontes Dinâmicas" #: main/main.cpp msgid "Use Oversampling" -msgstr "" +msgstr "Usar Sobreamostragem" #: modules/bullet/register_types.cpp modules/bullet/space_bullet.cpp msgid "Active Soft World" -msgstr "" +msgstr "Mundo Suave Ativo" #: modules/csg/csg_gizmos.cpp msgid "CSG" -msgstr "" +msgstr "CSG" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Radius" @@ -16728,13 +16578,12 @@ msgid "Change Torus Outer Radius" msgstr "Mudar Raio Externo do Toro" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Operation" -msgstr "Opções" +msgstr "Operação" #: modules/csg/csg_shape.cpp msgid "Calculate Tangents" -msgstr "" +msgstr "Calcular Tangentes" #: modules/csg/csg_shape.cpp #, fuzzy @@ -16792,7 +16641,7 @@ msgstr "Mostrar Guias" #: modules/csg/csg_shape.cpp msgid "Cone" -msgstr "" +msgstr "Cone" #: modules/csg/csg_shape.cpp #, fuzzy @@ -16806,7 +16655,7 @@ msgstr "Mudar Raio Externo do Toro" #: modules/csg/csg_shape.cpp msgid "Ring Sides" -msgstr "" +msgstr "Lados do Anel" #: modules/csg/csg_shape.cpp scene/2d/collision_polygon_2d.cpp #: scene/2d/light_occluder_2d.cpp scene/2d/polygon_2d.cpp @@ -16817,11 +16666,11 @@ msgstr "Polígonos" #: modules/csg/csg_shape.cpp msgid "Spin Degrees" -msgstr "" +msgstr "Graus de Rotação" #: modules/csg/csg_shape.cpp msgid "Spin Sides" -msgstr "" +msgstr "Girar Lados" #: modules/csg/csg_shape.cpp #, fuzzy @@ -16835,11 +16684,11 @@ msgstr "Criar vértice interno" #: modules/csg/csg_shape.cpp msgid "Path Interval" -msgstr "" +msgstr "Intervalo de Caminho" #: modules/csg/csg_shape.cpp msgid "Path Simplify Angle" -msgstr "" +msgstr "Simplifique o Ângulo do Caminho" #: modules/csg/csg_shape.cpp #, fuzzy @@ -16888,15 +16737,15 @@ msgstr "Mostrar Grelha Sempre" #: modules/enet/networked_multiplayer_enet.cpp msgid "Server Relay" -msgstr "" +msgstr "Retransmissão do Servidor" #: modules/enet/networked_multiplayer_enet.cpp msgid "DTLS Verify" -msgstr "" +msgstr "Verificar DTLS" #: modules/enet/networked_multiplayer_enet.cpp msgid "DTLS Hostname" -msgstr "" +msgstr "Nome do Host DTLS" #: modules/enet/networked_multiplayer_enet.cpp #, fuzzy @@ -16905,11 +16754,11 @@ msgstr "Usar Ajuste" #: modules/fbx/editor_scene_importer_fbx.cpp msgid "FBX" -msgstr "" +msgstr "FBX" #: modules/fbx/editor_scene_importer_fbx.cpp msgid "Use FBX" -msgstr "" +msgstr "Usar FBX" #: modules/gdnative/gdnative.cpp #, fuzzy @@ -17019,7 +16868,7 @@ msgstr "Script" #: modules/gdscript/editor/gdscript_highlighter.cpp msgid "Function Definition Color" -msgstr "" +msgstr "Função de Definição de Cor" #: modules/gdscript/editor/gdscript_highlighter.cpp #, fuzzy @@ -17028,19 +16877,19 @@ msgstr "Copiar Caminho do Nó" #: modules/gdscript/gdscript.cpp modules/visual_script/visual_script.cpp msgid "Max Call Stack" -msgstr "" +msgstr "Pilha Máxima de Chamadas" #: modules/gdscript/gdscript.cpp msgid "Treat Warnings As Errors" -msgstr "" +msgstr "Tratar Avisos como Erros" #: modules/gdscript/gdscript.cpp msgid "Exclude Addons" -msgstr "" +msgstr "Excluir Complementos" #: modules/gdscript/gdscript.cpp msgid "Autocomplete Setters And Getters" -msgstr "" +msgstr "Autocompletar Setters e Getters" #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -17095,7 +16944,7 @@ msgstr "Mostrar Símbolos Nativos No Editor" #: modules/gdscript/language_server/gdscript_language_server.cpp msgid "Use Thread" -msgstr "" +msgstr "Usar Thread" #: modules/gltf/editor_scene_exporter_gltf_plugin.cpp msgid "Export Mesh GLTF2" @@ -17147,11 +16996,11 @@ msgstr "Instância" #: modules/gltf/gltf_accessor.cpp msgid "Sparse Indices Buffer View" -msgstr "" +msgstr "Visualização de Buffer de Índices Esparsos" #: modules/gltf/gltf_accessor.cpp msgid "Sparse Indices Byte Offset" -msgstr "" +msgstr "Deslocamento de Bytes de Índices Esparsos" #: modules/gltf/gltf_accessor.cpp #, fuzzy @@ -17160,11 +17009,11 @@ msgstr "A analisar geometria..." #: modules/gltf/gltf_accessor.cpp msgid "Sparse Values Buffer View" -msgstr "" +msgstr "Visualização de Buffer de Valores Esparsos" #: modules/gltf/gltf_accessor.cpp msgid "Sparse Values Byte Offset" -msgstr "" +msgstr "Deslocamento de Bytes de Valores Esparsos" #: modules/gltf/gltf_buffer_view.cpp #, fuzzy @@ -17178,7 +17027,7 @@ msgstr "Tema Predefinido" #: modules/gltf/gltf_buffer_view.cpp msgid "Byte Stride" -msgstr "" +msgstr "Passo de Byte" #: modules/gltf/gltf_buffer_view.cpp #, fuzzy @@ -17192,7 +17041,7 @@ msgstr "Tamanho:" #: modules/gltf/gltf_camera.cpp msgid "Zfar" -msgstr "" +msgstr "Zfar" #: modules/gltf/gltf_camera.cpp #, fuzzy @@ -17214,7 +17063,7 @@ msgstr "Cores" #: modules/gltf/gltf_light.cpp scene/3d/reflection_probe.cpp #: scene/resources/environment.cpp msgid "Intensity" -msgstr "" +msgstr "Intensidade" #: modules/gltf/gltf_light.cpp scene/2d/light_2d.cpp scene/3d/light.cpp #, fuzzy @@ -17223,11 +17072,11 @@ msgstr "Mudar" #: modules/gltf/gltf_light.cpp msgid "Inner Cone Angle" -msgstr "" +msgstr "Ângulo do Cone Interno" #: modules/gltf/gltf_light.cpp msgid "Outer Cone Angle" -msgstr "" +msgstr "Ângulo do Cone Externo" #: modules/gltf/gltf_mesh.cpp #, fuzzy @@ -17251,7 +17100,7 @@ msgstr "Plataforma" #: modules/gltf/gltf_node.cpp scene/3d/mesh_instance.cpp msgid "Skin" -msgstr "" +msgstr "Skin" #: modules/gltf/gltf_node.cpp scene/3d/spatial.cpp #, fuzzy @@ -17270,11 +17119,11 @@ msgstr "Ponto" #: modules/gltf/gltf_skeleton.cpp modules/gltf/gltf_skin.cpp msgid "Roots" -msgstr "" +msgstr "Raizes" #: modules/gltf/gltf_skeleton.cpp modules/gltf/gltf_state.cpp msgid "Unique Names" -msgstr "" +msgstr "Nomes Únicos" #: modules/gltf/gltf_skeleton.cpp #, fuzzy @@ -17293,7 +17142,7 @@ msgstr "Focar na Origem" #: modules/gltf/gltf_skin.cpp msgid "Inverse Binds" -msgstr "" +msgstr "Inverter Ligações" #: modules/gltf/gltf_skin.cpp #, fuzzy @@ -17302,27 +17151,27 @@ msgstr "Mover Junta" #: modules/gltf/gltf_skin.cpp msgid "Joint I To Bone I" -msgstr "" +msgstr "Articulação I ao Osso I" #: modules/gltf/gltf_skin.cpp msgid "Joint I To Name" -msgstr "" +msgstr "Junta I A Nomear" #: modules/gltf/gltf_skin.cpp msgid "Godot Skin" -msgstr "" +msgstr "Skin Godot" #: modules/gltf/gltf_spec_gloss.cpp msgid "Diffuse Img" -msgstr "" +msgstr "Imagem Difusa" #: modules/gltf/gltf_spec_gloss.cpp msgid "Diffuse Factor" -msgstr "" +msgstr "Fator Difuso" #: modules/gltf/gltf_spec_gloss.cpp msgid "Gloss Factor" -msgstr "" +msgstr "Fator de Brilho" #: modules/gltf/gltf_spec_gloss.cpp msgid "Specular Factor" @@ -17330,11 +17179,11 @@ msgstr "Fator Especular" #: modules/gltf/gltf_spec_gloss.cpp msgid "Spec Gloss Img" -msgstr "" +msgstr "Imagem Brilhante Especular" #: modules/gltf/gltf_state.cpp msgid "Json" -msgstr "" +msgstr "Json" #: modules/gltf/gltf_state.cpp #, fuzzy @@ -17353,7 +17202,7 @@ msgstr "Com Dados" #: modules/gltf/gltf_state.cpp msgid "Use Named Skin Binds" -msgstr "" +msgstr "Usar Ligações de Skin Nomeadas" #: modules/gltf/gltf_state.cpp #, fuzzy @@ -17362,7 +17211,7 @@ msgstr "Vista de Trás" #: modules/gltf/gltf_state.cpp msgid "Accessors" -msgstr "" +msgstr "Assessores" #: modules/gltf/gltf_state.cpp #, fuzzy @@ -17382,11 +17231,11 @@ msgstr "Funcionalidades" #: modules/gltf/gltf_state.cpp platform/uwp/export/export.cpp msgid "Images" -msgstr "" +msgstr "Imagens" #: modules/gltf/gltf_state.cpp msgid "Cameras" -msgstr "" +msgstr "Câmeras" #: modules/gltf/gltf_state.cpp servers/visual_server.cpp #, fuzzy @@ -17434,7 +17283,7 @@ msgstr "Consolidar Lightmaps" #: modules/gridmap/grid_map.cpp scene/2d/tile_map.cpp msgid "Cell" -msgstr "" +msgstr "Célula" #: modules/gridmap/grid_map.cpp #, fuzzy @@ -17460,7 +17309,7 @@ msgstr "Centro" #: scene/2d/tile_map.cpp scene/3d/collision_object.cpp scene/3d/soft_body.cpp #: scene/resources/material.cpp msgid "Mask" -msgstr "" +msgstr "Máscara" #: modules/gridmap/grid_map.cpp scene/2d/tile_map.cpp #, fuzzy @@ -17638,19 +17487,19 @@ msgstr "Consolidar Lightmaps" #: modules/lightmapper_cpu/register_types.cpp msgid "Low Quality Ray Count" -msgstr "" +msgstr "Contagem de Raios de Baixa Qualidade" #: modules/lightmapper_cpu/register_types.cpp msgid "Medium Quality Ray Count" -msgstr "" +msgstr "Contagem de Raios de Média Qualidade" #: modules/lightmapper_cpu/register_types.cpp msgid "High Quality Ray Count" -msgstr "" +msgstr "Contagem de Raios de Alta Qualidade" #: modules/lightmapper_cpu/register_types.cpp msgid "Ultra Quality Ray Count" -msgstr "" +msgstr "Contagem de Raios de Ultra Qualidade" #: modules/minimp3/audio_stream_mp3.cpp #: modules/minimp3/resource_importer_mp3.cpp @@ -17662,11 +17511,11 @@ msgstr "Compensação:" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "Eye Height" -msgstr "" +msgstr "Altura do Olho" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "IOD" -msgstr "" +msgstr "IOD" #: modules/mobile_vr/mobile_vr_interface.cpp #, fuzzy @@ -17680,15 +17529,15 @@ msgstr "Vista sem sombras" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "Oversample" -msgstr "" +msgstr "Excesso de Amostra" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "K1" -msgstr "" +msgstr "K1" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "K2" -msgstr "" +msgstr "K2" #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -17776,7 +17625,7 @@ msgstr "Feito!" #: modules/opensimplex/noise_texture.cpp msgid "Seamless" -msgstr "" +msgstr "Sem Emenda" #: modules/opensimplex/noise_texture.cpp #, fuzzy @@ -17785,11 +17634,11 @@ msgstr "Escala aleatória:" #: modules/opensimplex/noise_texture.cpp msgid "Bump Strength" -msgstr "" +msgstr "Força da Colisão" #: modules/opensimplex/noise_texture.cpp msgid "Noise" -msgstr "" +msgstr "Ruido" #: modules/opensimplex/noise_texture.cpp #, fuzzy @@ -17798,11 +17647,11 @@ msgstr "Compensação da grelha:" #: modules/opensimplex/open_simplex_noise.cpp msgid "Octaves" -msgstr "" +msgstr "Oitavas" #: modules/opensimplex/open_simplex_noise.cpp msgid "Period" -msgstr "" +msgstr "Periodo" #: modules/opensimplex/open_simplex_noise.cpp #, fuzzy @@ -17811,11 +17660,11 @@ msgstr "Perspetiva" #: modules/opensimplex/open_simplex_noise.cpp msgid "Lacunarity" -msgstr "" +msgstr "Lacunaridade" #: modules/regex/regex.cpp msgid "Subject" -msgstr "" +msgstr "Sujeito" #: modules/regex/regex.cpp #, fuzzy @@ -17829,15 +17678,15 @@ msgstr "Configuração:" #: modules/upnp/upnp.cpp msgid "Discover Multicast If" -msgstr "" +msgstr "Descobrir se Multicast" #: modules/upnp/upnp.cpp msgid "Discover Local Port" -msgstr "" +msgstr "Descobrir Porta Local" #: modules/upnp/upnp.cpp msgid "Discover IPv6" -msgstr "" +msgstr "Descobrir IPv6" #: modules/upnp/upnp_device.cpp #, fuzzy @@ -17851,7 +17700,7 @@ msgstr "Definir tipo de variável" #: modules/upnp/upnp_device.cpp msgid "IGD Control URL" -msgstr "" +msgstr "URL de controle IGD" #: modules/upnp/upnp_device.cpp #, fuzzy @@ -17860,7 +17709,7 @@ msgstr "Definir tipo de variável" #: modules/upnp/upnp_device.cpp msgid "IGD Our Addr" -msgstr "" +msgstr "IGD Nosso Endereço" #: modules/upnp/upnp_device.cpp #, fuzzy @@ -18541,7 +18390,7 @@ msgstr "SubCall" #: modules/visual_script/visual_script_nodes.cpp scene/gui/graph_node.cpp msgid "Title" -msgstr "" +msgstr "Titulo" #: modules/visual_script/visual_script_nodes.cpp msgid "Construct %s" @@ -18611,19 +18460,19 @@ msgstr "Modo Prioridade" #: modules/webrtc/webrtc_data_channel.h msgid "WebRTC" -msgstr "" +msgstr "WebRTC" #: modules/webrtc/webrtc_data_channel.h msgid "Max Channel In Buffer (KB)" -msgstr "" +msgstr "Buffer máximo de canal (KB)" #: modules/websocket/websocket_client.cpp msgid "Verify SSL" -msgstr "" +msgstr "Verificar SSL" #: modules/websocket/websocket_client.cpp msgid "Trusted SSL Certificate" -msgstr "" +msgstr "Certificado SSL Confiável" #: modules/websocket/websocket_macros.h #, fuzzy @@ -18637,7 +18486,7 @@ msgstr "Tamanho Máximo (KB)" #: modules/websocket/websocket_macros.h msgid "Max In Packets" -msgstr "" +msgstr "Máximo de Pacotes de Entrada" #: modules/websocket/websocket_macros.h #, fuzzy @@ -18646,7 +18495,7 @@ msgstr "Tamanho Máximo (KB)" #: modules/websocket/websocket_macros.h msgid "Max Out Packets" -msgstr "" +msgstr "Máximo de Pacotes de Saida" #: modules/websocket/websocket_macros.h #, fuzzy @@ -18655,7 +18504,7 @@ msgstr "Analisador de Rede" #: modules/websocket/websocket_server.cpp msgid "Bind IP" -msgstr "" +msgstr "Associar IP" #: modules/websocket/websocket_server.cpp #, fuzzy @@ -18664,7 +18513,7 @@ msgstr "Caminho da Chave Privada SSH" #: modules/websocket/websocket_server.cpp platform/javascript/export/export.cpp msgid "SSL Certificate" -msgstr "" +msgstr "Certificado SSL" #: modules/websocket/websocket_server.cpp #, fuzzy @@ -18692,11 +18541,11 @@ msgstr "Funcionalidades Principais:" #: modules/webxr/webxr_interface.cpp msgid "Requested Reference Space Types" -msgstr "" +msgstr "Tipos de Espaço de Referência Solicitados" #: modules/webxr/webxr_interface.cpp msgid "Reference Space Type" -msgstr "" +msgstr "Tipo de Espaço de Referência" #: modules/webxr/webxr_interface.cpp #, fuzzy @@ -18715,7 +18564,7 @@ msgstr "Ajuste Inteligente" #: platform/android/export/export.cpp msgid "Android SDK Path" -msgstr "" +msgstr "Caminho do SDK Android" #: platform/android/export/export.cpp #, fuzzy @@ -18724,35 +18573,35 @@ msgstr "Depurador" #: platform/android/export/export.cpp msgid "Debug Keystore User" -msgstr "" +msgstr "Depuração do Usuário do Armazenamento de Chaves" #: platform/android/export/export.cpp msgid "Debug Keystore Pass" -msgstr "" +msgstr "Depurar Senha de Armazenamento de Chaves" #: platform/android/export/export.cpp msgid "Force System User" -msgstr "" +msgstr "Forçar Usuário do Sistema" #: platform/android/export/export.cpp msgid "Shutdown ADB On Exit" -msgstr "" +msgstr "Desligar o ADB na Saída" #: platform/android/export/export_plugin.cpp msgid "Launcher Icons" -msgstr "" +msgstr "Ícones do Inicializador" #: platform/android/export/export_plugin.cpp msgid "Main 192 X 192" -msgstr "" +msgstr "Principal 192 X 192" #: platform/android/export/export_plugin.cpp msgid "Adaptive Foreground 432 X 432" -msgstr "" +msgstr "Primeiro Plano Adaptável 432 X 432" #: platform/android/export/export_plugin.cpp msgid "Adaptive Background 432 X 432" -msgstr "" +msgstr "Plano de Fundo Adaptável 432 X 432" #: platform/android/export/export_plugin.cpp msgid "Package name is missing." @@ -18781,14 +18630,29 @@ msgid "The package must have at least one '.' separator." msgstr "O pacote deve ter pelo menos um separador '.'." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Usar Compilação Personalizada" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" -msgstr "" +msgstr "Usar Compilação Personalizada" #: platform/android/export/export_plugin.cpp #, fuzzy msgid "Export Format" msgstr "Exportar Caminho" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Tamanho do contorno:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Alvo" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18821,7 +18685,7 @@ msgstr "Senha" #: platform/android/export/export_plugin.cpp msgid "One Click Deploy" -msgstr "" +msgstr "Implantação com Um Clique" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -18830,17 +18694,7 @@ msgstr "Inspecionar instância anterior" #: platform/android/export/export_plugin.cpp msgid "Code" -msgstr "" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Tamanho do contorno:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Alvo" +msgstr "Código" #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy @@ -18864,7 +18718,7 @@ msgstr "Nome de Classe:" #: platform/android/export/export_plugin.cpp msgid "Retain Data On Uninstall" -msgstr "" +msgstr "Reter Dados na Desinstalação" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -18898,11 +18752,11 @@ msgstr "Empacotamento" #: platform/android/export/export_plugin.cpp msgid "Hand Tracking Frequency" -msgstr "" +msgstr "Frequência de Rastreamento Manual" #: platform/android/export/export_plugin.cpp msgid "Passthrough" -msgstr "" +msgstr "Atravessar" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -18936,7 +18790,7 @@ msgstr "Interface do Utilizador" #: platform/android/export/export_plugin.cpp msgid "Allow" -msgstr "" +msgstr "Permitir" #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy @@ -18955,7 +18809,7 @@ msgstr "Expressão" #: platform/android/export/export_plugin.cpp msgid "Salt" -msgstr "" +msgstr "Sal" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -19086,21 +18940,28 @@ msgid "" "Note that the singleton was also renamed from \"GodotPayments\" to " "\"GodotGooglePlayBilling\"." msgstr "" +"Módulo \"GodotPaymentV3\" inválido incluído na configuração do projeto " +"\"android/modules\" (alterado no Godot 3.2.2).\n" +"Substitua-o pelo plug-in primário \"GodotGooglePlayBilling\".\n" +"Observe que o singleton também foi renomeado de \"GodotPayments\" para " +"\"GodotGooglePlayBilling\"." #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." msgstr "\"Use Custom Build\" têm de estar ativa para usar os plugins." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Rastreamento de Mão\" só é válido quando \"Modo Xr\" é \"Oculus Mobile " "VrApi\" ou \"OpenXR\"." #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +#, fuzzy +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "\"Passthrough\" só é válido quando \"Modo Xr\" é \"OpenXR\"." #: platform/android/export/export_plugin.cpp @@ -19108,20 +18969,43 @@ msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." msgstr "\"Exportar AAB\" só é válido quando \"Use Custom Build\" está ativa." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Mudança de \"Min Sdk\" só é válida quando \"Use Custom Build\" está ativa." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Mudança de \"Target Sdk\" só é válida quando \"Use Custom Build\" está ativa." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "Versão de \"Target Sdk\" tem de ser maior ou igual à versão de \"Min Sdk\"." @@ -19132,15 +19016,12 @@ msgid "Code Signing" msgstr "Sinal" #: platform/android/export/export_plugin.cpp -#, fuzzy 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 "" -"'apksigner' não foi encontrado.\n" -"Verifique se o comando está disponível na diretoria Android SDK build-" -"tools.\n" -"O % resultante não está assinado." +"'apksigner' não foi encontrado. Verifique se o comando está disponível no " +"diretório do Android SDK build-tools. O %s resultante não está assinado." #: platform/android/export/export_plugin.cpp msgid "Signing debug %s..." @@ -19155,9 +19036,8 @@ msgid "Could not find keystore, unable to export." msgstr "Incapaz de encontrar keystore e exportar." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not start apksigner executable." -msgstr "Não consegui iniciar o subprocesso!" +msgstr "Não foi possível iniciar o executável apksigner." #: platform/android/export/export_plugin.cpp msgid "'apksigner' returned with error #%d" @@ -19189,9 +19069,8 @@ msgid "Invalid filename! Android APK requires the *.apk extension." msgstr "Nome de ficheiro inválido! APK Android exige a extensão *.apk." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Unsupported export format!" -msgstr "Formato de exportação não suportado!\n" +msgstr "Formato de exportação não suportado!" #: platform/android/export/export_plugin.cpp msgid "" @@ -19202,15 +19081,13 @@ msgstr "" "versão. Reinstale no menu 'Projeto'." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" -"Incompatibilidade da versão Android:\n" -" Modelo instalado: %s\n" -" Versão Godot: %s\n" -"Reinstale o modelo de compilação Android no menu 'Projeto'." +"Incompatibilidade de versão de compilação do Android: Modelo instalado: %s, " +"versão Godot: %s. Por favor, reinstale o modelo de compilação do Android no " +"menu 'Projeto'." #: platform/android/export/export_plugin.cpp #, fuzzy @@ -19221,9 +19098,8 @@ msgstr "" "do projeto" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files to gradle project." -msgstr "Incapaz de exportar ficheiros do projeto para projeto gradle\n" +msgstr "Incapaz de exportar ficheiros do projeto para projeto gradle." #: platform/android/export/export_plugin.cpp msgid "Could not write expansion package file!" @@ -19234,14 +19110,13 @@ msgid "Building Android Project (gradle)" msgstr "A compilar Projeto Android (gradle)" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Building of Android project failed, check output for the error. " "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" -"Falhou a compilação do projeto Android, verifique o erro na saída.\n" -"Em alternativa visite docs.godotengine.org para a documentação sobre " -"compilação Android." +"Falhou a compilação do projeto Android, verifique o erro na saída. Em " +"alternativa visite docs.godotengine.org para a documentação sobre compilação " +"Android." #: platform/android/export/export_plugin.cpp msgid "Moving output" @@ -19265,23 +19140,18 @@ msgid "Creating APK..." msgstr "A criar APK..." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not find template APK to export: \"%s\"." -msgstr "" -"Incapaz de encontrar modelo APK para exportar:\n" -"%s" +msgstr "Incapaz de encontrar modelo APK para exportar: \"%s\"." #: platform/android/export/export_plugin.cpp -#, fuzzy 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 "" "Bibliotecas em falta no modelo de exportação para as arquiteturas " -"selecionadas: %s.\n" -"Construa um modelo com todas as bibliotecas necessárias, ou desmarque as " -"arquiteturas em falta na predefinição de exportação." +"selecionadas: %s. Construa um modelo com todas as bibliotecas necessárias, " +"ou desmarque as arquiteturas em falta no preset de exportação." #: platform/android/export/export_plugin.cpp msgid "Adding files..." @@ -19310,67 +19180,67 @@ msgstr "O carácter \"%s\" não é permitido no Identificador." #: platform/iphone/export/export.cpp msgid "Landscape Launch Screens" -msgstr "" +msgstr "Telas de Inicialização de Paisagem" #: platform/iphone/export/export.cpp msgid "iPhone 2436 X 1125" -msgstr "" +msgstr "iPhone 2436 X 1125" #: platform/iphone/export/export.cpp msgid "iPhone 2208 X 1242" -msgstr "" +msgstr "iPhone 2208 X 1242" #: platform/iphone/export/export.cpp msgid "iPad 1024 X 768" -msgstr "" +msgstr "iPad 1024 X 768" #: platform/iphone/export/export.cpp msgid "iPad 2048 X 1536" -msgstr "" +msgstr "iPad 2048 X 1536" #: platform/iphone/export/export.cpp msgid "Portrait Launch Screens" -msgstr "" +msgstr "Telas de Lançamento de Retrato" #: platform/iphone/export/export.cpp msgid "iPhone 640 X 960" -msgstr "" +msgstr "iPhone 640 X 960" #: platform/iphone/export/export.cpp msgid "iPhone 640 X 1136" -msgstr "" +msgstr "iPhone 640 X 1136" #: platform/iphone/export/export.cpp msgid "iPhone 750 X 1334" -msgstr "" +msgstr "iPhone 750 X 1334" #: platform/iphone/export/export.cpp msgid "iPhone 1125 X 2436" -msgstr "" +msgstr "iPhone 1125 X 2436" #: platform/iphone/export/export.cpp msgid "iPad 768 X 1024" -msgstr "" +msgstr "iPad 768 X 1024" #: platform/iphone/export/export.cpp msgid "iPad 1536 X 2048" -msgstr "" +msgstr "iPad 1536 X 2048" #: platform/iphone/export/export.cpp msgid "iPhone 1242 X 2208" -msgstr "" +msgstr "iPhone 1242 X 2208" #: platform/iphone/export/export.cpp msgid "App Store Team ID" -msgstr "" +msgstr "ID da Equipe na App Store" #: platform/iphone/export/export.cpp msgid "Provisioning Profile UUID Debug" -msgstr "" +msgstr "Depuração de UUID do Perfil de Provisionamento" #: platform/iphone/export/export.cpp msgid "Code Sign Identity Debug" -msgstr "" +msgstr "Depuração de Identidade de Sinal de Código" #: platform/iphone/export/export.cpp #, fuzzy @@ -19379,11 +19249,11 @@ msgstr "Exportar com Depuração" #: platform/iphone/export/export.cpp msgid "Provisioning Profile UUID Release" -msgstr "" +msgstr "Liberação de UUID do Perfil de Provisionamento" #: platform/iphone/export/export.cpp msgid "Code Sign Identity Release" -msgstr "" +msgstr "Liberação de Identidade de Sinal de Código" #: platform/iphone/export/export.cpp #, fuzzy @@ -19392,11 +19262,11 @@ msgstr "Modo exportação:" #: platform/iphone/export/export.cpp msgid "Targeted Device Family" -msgstr "" +msgstr "Família de Dispositivos Visados" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp msgid "Info" -msgstr "" +msgstr "Informações" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp #, fuzzy @@ -19440,11 +19310,11 @@ msgstr "Interface do Utilizador" #: platform/iphone/export/export.cpp msgid "Accessible From Files App" -msgstr "" +msgstr "Acessível a partir do Aplicativo de Arquivos" #: platform/iphone/export/export.cpp msgid "Accessible From iTunes Sharing" -msgstr "" +msgstr "Acessível a partir do Compartilhamento do iTunes" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp #, fuzzy @@ -19468,43 +19338,43 @@ msgstr "Descrições da Propriedade" #: platform/iphone/export/export.cpp msgid "iPhone 120 X 120" -msgstr "" +msgstr "iPhone 120 X 120" #: platform/iphone/export/export.cpp msgid "iPhone 180 X 180" -msgstr "" +msgstr "iPhone 180 X 180" #: platform/iphone/export/export.cpp msgid "iPad 76 X 76" -msgstr "" +msgstr "iPad 76 X 76" #: platform/iphone/export/export.cpp msgid "iPad 152 X 152" -msgstr "" +msgstr "iPad 152 X 152" #: platform/iphone/export/export.cpp msgid "iPad 167 X 167" -msgstr "" +msgstr "iPad 167 X 167" #: platform/iphone/export/export.cpp msgid "App Store 1024 X 1024" -msgstr "" +msgstr "App Store 1024 X 1024" #: platform/iphone/export/export.cpp msgid "Spotlight 40 X 40" -msgstr "" +msgstr "Destaque 40 X 40" #: platform/iphone/export/export.cpp msgid "Spotlight 80 X 80" -msgstr "" +msgstr "Destaque 80 X 80" #: platform/iphone/export/export.cpp msgid "Storyboard" -msgstr "" +msgstr "Storyboard" #: platform/iphone/export/export.cpp msgid "Use Launch Screen Storyboard" -msgstr "" +msgstr "Use o Storyboard da Tela de Inicialização" #: platform/iphone/export/export.cpp #, fuzzy @@ -19590,7 +19460,7 @@ msgstr "Incapaz de ler ficheiro:" #: platform/javascript/export/export.cpp msgid "PWA" -msgstr "" +msgstr "PWA" #: platform/javascript/export/export.cpp #, fuzzy @@ -19609,15 +19479,15 @@ msgstr "Expressão" #: platform/javascript/export/export.cpp msgid "For Desktop" -msgstr "" +msgstr "Para Desktop" #: platform/javascript/export/export.cpp msgid "For Mobile" -msgstr "" +msgstr "Para Mobile" #: platform/javascript/export/export.cpp msgid "HTML" -msgstr "" +msgstr "HTML" #: platform/javascript/export/export.cpp #, fuzzy @@ -19631,15 +19501,15 @@ msgstr "CustomNode" #: platform/javascript/export/export.cpp msgid "Head Include" -msgstr "" +msgstr "Incluir Cabeçalho" #: platform/javascript/export/export.cpp msgid "Canvas Resize Policy" -msgstr "" +msgstr "Política de Redimensionamento da Tela" #: platform/javascript/export/export.cpp msgid "Focus Canvas On Start" -msgstr "" +msgstr "Focar Tela ao Iniciar" #: platform/javascript/export/export.cpp #, fuzzy @@ -19648,23 +19518,23 @@ msgstr "Filtrar sinais" #: platform/javascript/export/export.cpp msgid "Progressive Web App" -msgstr "" +msgstr "Aplicativo da Web Progressivo" #: platform/javascript/export/export.cpp msgid "Offline Page" -msgstr "" +msgstr "Pagina Offline" #: platform/javascript/export/export.cpp msgid "Icon 144 X 144" -msgstr "" +msgstr "Ícone 144 X 144" #: platform/javascript/export/export.cpp msgid "Icon 180 X 180" -msgstr "" +msgstr "Ícone 180 X 180" #: platform/javascript/export/export.cpp msgid "Icon 512 X 512" -msgstr "" +msgstr "Ícone 512 X 512" #: platform/javascript/export/export.cpp #, fuzzy @@ -19683,15 +19553,15 @@ msgstr "Erro ao iniciar servidor HTTP:" #: platform/javascript/export/export.cpp msgid "Web" -msgstr "" +msgstr "Web" #: platform/javascript/export/export.cpp msgid "HTTP Host" -msgstr "" +msgstr "Host HTTP" #: platform/javascript/export/export.cpp msgid "HTTP Port" -msgstr "" +msgstr "Porta HTTP" #: platform/javascript/export/export.cpp #, fuzzy @@ -19700,15 +19570,15 @@ msgstr "Usar Ajuste" #: platform/javascript/export/export.cpp msgid "SSL Key" -msgstr "" +msgstr "Chave SSL" #: platform/osx/export/codesign.cpp msgid "Can't get filesystem access." -msgstr "" +msgstr "Não é possível obter acesso ao sistema de arquivos." #: platform/osx/export/codesign.cpp msgid "Failed to get Info.plist hash." -msgstr "" +msgstr "Falha ao obter o hash de Info.plist." #: platform/osx/export/codesign.cpp #, fuzzy @@ -19717,7 +19587,7 @@ msgstr "Nome do projeto inválido." #: platform/osx/export/codesign.cpp msgid "Invalid Info.plist, no bundle id." -msgstr "" +msgstr "Info.plist inválido, sem ID de pacote." #: platform/osx/export/codesign.cpp #, fuzzy @@ -19731,7 +19601,7 @@ msgstr "Não consegui criar pasta." #: platform/osx/export/codesign.cpp msgid "Failed to extract thin binary." -msgstr "" +msgstr "Falha ao extrair o binário fino." #: platform/osx/export/codesign.cpp #, fuzzy @@ -19740,7 +19610,7 @@ msgstr "Caminho base inválido." #: platform/osx/export/codesign.cpp msgid "Already signed!" -msgstr "" +msgstr "Já assinado!" #: platform/osx/export/codesign.cpp #, fuzzy @@ -19749,7 +19619,7 @@ msgstr "Falha ao carregar recurso." #: platform/osx/export/codesign.cpp msgid "Failed to create _CodeSignature subfolder." -msgstr "" +msgstr "Falha ao criar a subpasta _CodeSignature." #: platform/osx/export/codesign.cpp #, fuzzy @@ -19768,19 +19638,19 @@ msgstr "Extensão inválida." #: platform/osx/export/codesign.cpp msgid "Can't resize signature load command." -msgstr "" +msgstr "Não é possível redimensionar o comando de carregamento de assinatura." #: platform/osx/export/codesign.cpp msgid "Failed to create fat binary." -msgstr "" +msgstr "Falha ao criar binário gordo." #: platform/osx/export/codesign.cpp msgid "Unknown bundle type." -msgstr "" +msgstr "Tipo de pacote desconhecido." #: platform/osx/export/codesign.cpp msgid "Unknown object type." -msgstr "" +msgstr "Tipo de objeto desconhecido." #: platform/osx/export/export.cpp #, fuzzy @@ -19789,7 +19659,7 @@ msgstr "Categoria:" #: platform/osx/export/export.cpp msgid "High Res" -msgstr "" +msgstr "Alta resolução" #: platform/osx/export/export.cpp #, fuzzy @@ -19798,7 +19668,7 @@ msgstr "Descrição" #: platform/osx/export/export.cpp msgid "Address Book Usage Description" -msgstr "" +msgstr "Descrição de Uso do Catálogo de Endereços" #: platform/osx/export/export.cpp #, fuzzy @@ -19822,15 +19692,15 @@ msgstr "Descrições do Método" #: platform/osx/export/export.cpp msgid "Downloads Folder Usage Description" -msgstr "" +msgstr "Descrição do Uso da Pasta de Downloads" #: platform/osx/export/export.cpp msgid "Network Volumes Usage Description" -msgstr "" +msgstr "Descrição do Uso de Volumes de Rede" #: platform/osx/export/export.cpp msgid "Removable Volumes Usage Description" -msgstr "" +msgstr "Descrição de Uso de Volumes Removíveis" #: platform/osx/export/export.cpp platform/windows/export/export.cpp #, fuzzy @@ -19850,7 +19720,7 @@ msgstr "Tempo" #: platform/osx/export/export.cpp msgid "Hardened Runtime" -msgstr "" +msgstr "Tempo de Execução Reforçado" #: platform/osx/export/export.cpp #, fuzzy @@ -19984,9 +19854,8 @@ msgid "Could not open icon file \"%s\"." msgstr "Incapaz de exportar ficheiros do projeto" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start xcrun executable." -msgstr "Não consegui iniciar o subprocesso!" +msgstr "Não foi possível iniciar o executável xcrun." #: platform/osx/export/export.cpp #, fuzzy @@ -20058,9 +19927,8 @@ msgid "DMG Creation" msgstr "Direções" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start hdiutil executable." -msgstr "Não consegui iniciar o subprocesso!" +msgstr "Não foi possível iniciar o executável hdiutil." #: platform/osx/export/export.cpp msgid "`hdiutil create` failed - file exists." @@ -20139,9 +20007,8 @@ msgid "ZIP Creation" msgstr "Projeto" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open file to read from path \"%s\"." -msgstr "Incapaz de exportar ficheiros do projeto para projeto gradle\n" +msgstr "Não foi possível abrir o arquivo para ler do caminho \"%s\"." #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -20813,7 +20680,7 @@ msgstr "Aumentar Zoom" msgid "Custom Viewport" msgstr "1 Viewport" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21576,11 +21443,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Editar Conexão:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Ligação" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Distância de escolha:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Distância de escolha:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Avançado" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Ativar" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21598,16 +21497,6 @@ msgstr "Inverter na Horizontal" msgid "Max Speed" msgstr "Velocidade:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Distância de escolha:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Ativar" - #: scene/2d/navigation_agent_2d.cpp #, fuzzy msgid "" @@ -22858,6 +22747,13 @@ msgstr "" msgid "Transform Normals" msgstr "Normais da Transformação" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25040,6 +24936,11 @@ msgstr "Pasta:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Apenas seleção" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Ativar" @@ -25452,18 +25353,6 @@ msgstr "Exportar Caminho" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Este viewport não está definida como alvo de Renderização. Se pretende " -"apresentar o seu conteúdo diretamente no ecrã, torne-a um filho de um " -"Control de modo a que obtenha um tamanho. Caso contrário, torne-a um " -"RenderTarget e atribua a sua textura interna a outro nó para visualizar." - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -25471,6 +25360,15 @@ msgstr "" "dimensões para renderizar." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27238,6 +27136,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "A gerar AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Compensação:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index df7e56059b..41301db983 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -140,13 +140,14 @@ # blue wemes <bluewemes@gmail.com>, 2022. # José Miranda Neto <dodimi95@gmail.com>, 2022. # lucas rossy brasil coelho <lucasrossy270@gmail.com>, 2022. +# Kaycke <kaycke@ymail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2022-06-19 11:52+0000\n" -"Last-Translator: lucas rossy brasil coelho <lucasrossy270@gmail.com>\n" +"PO-Revision-Date: 2022-06-29 10:04+0000\n" +"Last-Translator: Douglas Leão <djlsplays@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -490,14 +491,12 @@ msgid "Max Size (KB)" msgstr "Tamanho Máximo (KB)" #: core/os/input.cpp -#, fuzzy msgid "Mouse Mode" -msgstr "Modo de Movimentação" +msgstr "Modo do cursor" #: core/os/input.cpp -#, fuzzy msgid "Use Accumulated Input" -msgstr "Deletar Entrada" +msgstr "Usar entrada acumulada" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: servers/audio_server.cpp @@ -524,6 +523,11 @@ msgstr "Meta" msgid "Command" msgstr "Comando" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (Físico)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -713,7 +717,7 @@ msgstr "Nome do Diretório de Usuário Personalizado" #: platform/uwp/os_uwp.cpp #, fuzzy msgid "Display" -msgstr "Exibir Tudo" +msgstr "Exibição" #: core/project_settings.cpp main/main.cpp modules/csg/csg_shape.cpp #: modules/opensimplex/noise_texture.cpp scene/2d/line_2d.cpp @@ -727,9 +731,8 @@ msgstr "Largura" #: scene/resources/capsule_shape_2d.cpp scene/resources/cylinder_shape.cpp #: scene/resources/font.cpp scene/resources/navigation_mesh.cpp #: scene/resources/primitive_meshes.cpp scene/resources/texture.cpp -#, fuzzy msgid "Height" -msgstr "Luz" +msgstr "Altura" #: core/project_settings.cpp msgid "Always On Top" @@ -738,12 +741,12 @@ msgstr "Sempre no topo" #: core/project_settings.cpp #, fuzzy msgid "Test Width" -msgstr "Largura Esquerda" +msgstr "Largura de teste" #: core/project_settings.cpp #, fuzzy msgid "Test Height" -msgstr "Testando" +msgstr "Teste de altura" #: core/project_settings.cpp editor/animation_track_editor.cpp #: editor/editor_audio_buses.cpp main/main.cpp servers/audio_server.cpp @@ -783,9 +786,8 @@ msgid "Version Control Autoload On Startup" msgstr "Carregamento Automático na Inicialização" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Plugin Name" -msgstr "Controle de Versão" +msgstr "Nome do plugin de controle de Versão" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -1084,7 +1086,6 @@ msgstr "2D" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp -#, fuzzy msgid "Snapping" msgstr "Encaixe inteligente" @@ -1118,9 +1119,8 @@ msgid "Max Renderable Lights" msgstr "Máximo de luzes renderizáveis" #: drivers/gles3/rasterizer_scene_gles3.cpp -#, fuzzy msgid "Max Renderable Reflections" -msgstr "Seleção Central" +msgstr "Reflexões máximas renderizáveis" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Lights Per Object" @@ -1128,7 +1128,7 @@ msgstr "Máximo de luzes por objeto" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Subsurface Scattering" -msgstr "" +msgstr "Dispersão Subsuperficial" #: drivers/gles3/rasterizer_scene_gles3.cpp editor/animation_track_editor.cpp #: editor/import/resource_importer_texture.cpp @@ -1149,11 +1149,11 @@ msgstr "Seguir Superfície" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Weight Samples" -msgstr "" +msgstr "Amostras de Peso" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Voxel Cone Tracing" -msgstr "" +msgstr "Rastreamento de Cone Voxel" #: drivers/gles3/rasterizer_scene_gles3.cpp scene/resources/environment.cpp msgid "High Quality" @@ -1235,9 +1235,8 @@ msgstr "Alterar Chamada da Animação" #: editor/animation_track_editor.cpp scene/2d/animated_sprite.cpp #: scene/2d/sprite.cpp scene/3d/sprite_3d.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Frame" -msgstr "Frame %" +msgstr "Quadro" #: editor/animation_track_editor.cpp editor/editor_profiler.cpp #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp @@ -1248,7 +1247,6 @@ msgstr "Tempo" #: editor/animation_track_editor.cpp editor/import/resource_importer_scene.cpp #: platform/osx/export/export.cpp -#, fuzzy msgid "Location" msgstr "Localização" @@ -1264,14 +1262,13 @@ msgid "Value" msgstr "Valor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Arg Count" -msgstr "Quantidade" +msgstr "Quantia de argumentos" #: editor/animation_track_editor.cpp main/main.cpp #: modules/mono/mono_gd/gd_mono.cpp msgid "Args" -msgstr "" +msgstr "Argumentos" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/script_editor_debugger.cpp modules/gltf/gltf_accessor.cpp @@ -1295,17 +1292,15 @@ msgstr "Definir Manipulador" #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/audio/audio_stream_player.cpp scene/gui/video_player.cpp msgid "Stream" -msgstr "" +msgstr "Fluxo" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Start Offset" -msgstr "Deslocamento da Grade:" +msgstr "Iniciar deslocamento" #: editor/animation_track_editor.cpp -#, fuzzy msgid "End Offset" -msgstr "Deslocamento H" +msgstr "Terminar deslocamento" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/import/resource_importer_scene.cpp @@ -1433,14 +1428,12 @@ msgid "Time (s):" msgstr "Tempo (s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Position:" -msgstr "Posição" +msgstr "Posição:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rotation:" -msgstr "Rotação" +msgstr "Rotação:" #: editor/animation_track_editor.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1467,32 +1460,28 @@ msgid "Easing:" msgstr "Facilitar Entrada-Saída" #: editor/animation_track_editor.cpp -#, fuzzy msgid "In-Handle:" -msgstr "Definir Manipulador" +msgstr "Definir Manipulador:" #: editor/animation_track_editor.cpp #, fuzzy msgid "Out-Handle:" -msgstr "Definir Manipulador" +msgstr "Definir Manipulador:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Stream:" -msgstr "Par de stream" +msgstr "Transmissão:" #: editor/animation_track_editor.cpp #, fuzzy msgid "Start (s):" -msgstr "Reinício(s):" +msgstr "Início(s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "End (s):" -msgstr "[i]Fade In[/i](s):" +msgstr "Final (is):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation Clip:" msgstr "Animações:" @@ -1731,7 +1720,7 @@ msgstr "Métodos" #: editor/animation_track_editor.cpp msgid "Bezier" -msgstr "" +msgstr "Bézier" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -2321,7 +2310,7 @@ msgstr "Abrir" #: editor/dependency_editor.cpp msgid "Owners of: %s (Total: %d)" -msgstr "" +msgstr "Proprietários de: %s (Total: %d)" #: editor/dependency_editor.cpp msgid "" @@ -2884,22 +2873,19 @@ msgstr "Escolher" #: editor/editor_export.cpp msgid "Project export for platform:" -msgstr "" +msgstr "Exportação do projeto para plataforma:" #: editor/editor_export.cpp -#, fuzzy msgid "Completed with errors." -msgstr "Copiar Caminho do Nó" +msgstr "Concluído com erros." #: editor/editor_export.cpp -#, fuzzy msgid "Completed successfully." -msgstr "Pacote instalado com sucesso!" +msgstr "Concluído com sucesso." #: editor/editor_export.cpp -#, fuzzy msgid "Failed." -msgstr "Falhou:" +msgstr "Falhou." #: editor/editor_export.cpp msgid "Storing File:" @@ -2924,14 +2910,12 @@ msgid "Cannot create file \"%s\"." msgstr "Não foi possível criar a pasta." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to export project files." -msgstr "Não foi possível exportar os arquivos do projeto" +msgstr "Falha ao exportar arquivos do projeto." #: editor/editor_export.cpp -#, fuzzy msgid "Can't open file to read from path \"%s\"." -msgstr "Não é possível abrir arquivo para escrita:" +msgstr "Não é possível abrir arquivo para leitura a partir do caminho \"%s\"." #: editor/editor_export.cpp #, fuzzy @@ -3014,11 +2998,11 @@ msgstr "Formato Binário" #: editor/editor_export.cpp msgid "64 Bits" -msgstr "" +msgstr "64 Bits" #: editor/editor_export.cpp msgid "Embed PCK" -msgstr "" +msgstr "Incorporar PCK" #: editor/editor_export.cpp platform/osx/export/export.cpp #, fuzzy @@ -3027,19 +3011,19 @@ msgstr "Região da Textura" #: editor/editor_export.cpp msgid "BPTC" -msgstr "" +msgstr "BPTC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "S3TC" -msgstr "" +msgstr "S3TC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "ETC" -msgstr "" +msgstr "ETC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "ETC2" -msgstr "" +msgstr "ETC2" #: editor/editor_export.cpp #, fuzzy @@ -3064,19 +3048,16 @@ msgid "Prepare Template" msgstr "Gerenciar Templates" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "The given export path doesn't exist." -msgstr "O caminho de exportação informado não existe:" +msgstr "O caminho de exportação informado não existe." #: editor/editor_export.cpp platform/javascript/export/export.cpp -#, fuzzy msgid "Template file not found: \"%s\"." -msgstr "Arquivo de modelo não encontrado:" +msgstr "Arquivo de modelo não encontrado: \"%s\"." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to copy export template." -msgstr "Template de exportação inválido:" +msgstr "Falha ao copiar o modelo de exportação." #: editor/editor_export.cpp platform/windows/export/export.cpp #: platform/x11/export/export.cpp @@ -3090,7 +3071,7 @@ msgstr "Em exportações de 32 bits, o PCK embutido não pode ser maior que 4GB. #: editor/editor_export.cpp msgid "Convert Text Resources To Binary On Export" -msgstr "" +msgstr "Converter Recursos de Texto para Binário na Exportação" #: editor/editor_feature_profile.cpp msgid "3D Editor" @@ -3411,7 +3392,7 @@ msgstr "Mostrar Arquivos Ocultos" #: editor/editor_file_dialog.cpp msgid "Disable Overwrite Warning" -msgstr "" +msgstr "Desativar Aviso de Substituição" #: editor/editor_file_dialog.cpp msgid "Go Back" @@ -3514,7 +3495,7 @@ msgstr "(Re)Importando Assets" #: editor/editor_file_system.cpp msgid "Reimport Missing Imported Files" -msgstr "" +msgstr "Reimportar Arquivos Importados Ausentes" #: editor/editor_help.cpp scene/2d/camera_2d.cpp scene/gui/control.cpp #: scene/gui/nine_patch_rect.cpp scene/resources/dynamic_font.cpp @@ -3625,7 +3606,7 @@ msgstr "Ajuda" #: editor/editor_help.cpp msgid "Sort Functions Alphabetically" -msgstr "" +msgstr "Classificar Funções em Ordem Alfabética" #: editor/editor_help_search.cpp editor/editor_node.cpp #: editor/plugins/script_editor_plugin.cpp @@ -4412,6 +4393,8 @@ msgstr "%d mais arquivo(s)" msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" +"Não foi possível gravar no arquivo '%s', arquivo em uso, bloqueado ou sem " +"permissões." #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp @@ -4429,11 +4412,11 @@ msgstr "Sempre Mostrar Grade" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Resize If Many Tabs" -msgstr "" +msgstr "Redimensionar se houver muitas guias" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Minimum Width" -msgstr "" +msgstr "Largura Mínima" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Output" @@ -4446,15 +4429,15 @@ msgstr "Limpar Saída" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Always Open Output On Play" -msgstr "" +msgstr "Sempre abrir a saída ao jogar" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Always Close Output On Stop" -msgstr "" +msgstr "Sempre fechar a saída ao parar" #: editor/editor_node.cpp msgid "Save On Focus Loss" -msgstr "" +msgstr "Salvar em caso de perda de foco" #: editor/editor_node.cpp editor/editor_settings.cpp #, fuzzy @@ -4489,7 +4472,7 @@ msgstr "Restaurar Cenas ao Carregar" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Show Thumbnail On Hover" -msgstr "" +msgstr "Mostrar miniatura ao passar o mouse" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Inspector" @@ -4502,7 +4485,7 @@ msgstr "Caminho Padrão do Projeto" #: editor/editor_node.cpp msgid "Default Float Step" -msgstr "" +msgstr "Passo de ponto flutuante padrão" #: editor/editor_node.cpp scene/gui/tree.cpp #, fuzzy @@ -4511,11 +4494,11 @@ msgstr "Botão Desativado" #: editor/editor_node.cpp msgid "Auto Unfold Foreign Scenes" -msgstr "" +msgstr "Desdobrar cenas estrangeiras automaticamente" #: editor/editor_node.cpp msgid "Horizontal Vector2 Editing" -msgstr "" +msgstr "Edição Horizontal do Vector2" #: editor/editor_node.cpp msgid "Horizontal Vector Types Editing" @@ -4689,7 +4672,7 @@ msgstr "Sair para a Lista de Projetos" #: editor/editor_node.cpp msgid "Deploy with Remote Debug" -msgstr "Distribuir com Depuragem Remota" +msgstr "Implantar com Depuração Remota" #: editor/editor_node.cpp msgid "" @@ -5676,6 +5659,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Seleção Do GridMap" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8130,11 +8118,20 @@ msgid "New Anim" msgstr "Nova Animação" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Criar Nova Animação" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Alterar Nome da Animação:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Renomear Animação" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Excluir Animação?" @@ -8152,11 +8149,6 @@ msgid "Animation name already exists!" msgstr "O nome da animação já existe!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Renomear Animação" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplicar Animação" @@ -8303,10 +8295,6 @@ msgid "Pin AnimationPlayer" msgstr "Fixar AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Criar Nova Animação" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nome da Animação:" @@ -10882,7 +10870,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Search Results" -msgstr "Pesquisar resultados" +msgstr "Resultados de Pesquisa" #: editor/plugins/script_editor_plugin.cpp msgid "Open Dominant Script On Scene Change" @@ -13246,15 +13234,15 @@ msgstr "Nenhuma mensagem de commit foi fornecida." #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit" -msgstr "Confirmação" +msgstr "Commit" #: editor/plugins/version_control_editor_plugin.cpp msgid "Staged Changes" -msgstr "Mudanças em fases" +msgstr "Alterações Preparadas" #: editor/plugins/version_control_editor_plugin.cpp msgid "Unstaged Changes" -msgstr "Mudanças Não Fásicas" +msgstr "Alterações não Preparadas" #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit:" @@ -13318,7 +13306,7 @@ msgstr "Preparar todas as alterações" #: editor/plugins/version_control_editor_plugin.cpp msgid "Unstage all changes" -msgstr "Desfaça todas as alterações" +msgstr "Desfazer todas as alterações" #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit Message" @@ -13326,15 +13314,15 @@ msgstr "Mensagem de Commit" #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit Changes" -msgstr "Confirmar Mudanças" +msgstr "Criar Commit" #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit List" -msgstr "Lista de compromissos" +msgstr "Lista de Commit" #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit list size" -msgstr "Confirmar tamanho da lista" +msgstr "Tamanho da lista de commit" #: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" @@ -14439,7 +14427,6 @@ msgid "Export PCK/Zip..." msgstr "Exportar PCK/Zip..." #: editor/project_export.cpp -#, fuzzy msgid "Export Project..." msgstr "Exportar Projeto…" @@ -14452,7 +14439,6 @@ msgid "Choose an export mode:" msgstr "Escolha um modo de exportação:" #: editor/project_export.cpp -#, fuzzy msgid "Export All..." msgstr "Exportar tudo…" @@ -15192,7 +15178,7 @@ msgstr "Plugins" #: editor/project_settings_editor.cpp msgid "Import Defaults" -msgstr "Importar padrões" +msgstr "Padrões de Importação" #: editor/property_editor.cpp msgid "Preset..." @@ -16019,9 +16005,8 @@ msgid "Attach Node Script" msgstr "Adicionar Script ao Nó" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Remote %s:" -msgstr "Remoto %s:" +msgstr "%s remoto:" #: editor/script_editor_debugger.cpp msgid "Bytes:" @@ -18510,9 +18495,8 @@ msgstr "Redimensionar Vetor" #: modules/visual_script/visual_script_nodes.cpp scene/resources/material.cpp #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Operator" -msgstr "Iterador" +msgstr "Operador" #: modules/visual_script/visual_script_nodes.cpp msgid "Invalid argument of type:" @@ -18870,6 +18854,11 @@ msgstr "O pacote deve ter pelo menos um separador '.'." #: platform/android/export/export_plugin.cpp #, fuzzy +msgid "Custom Build" +msgstr "Usar Diretório de Usuário Personalizado" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "Use Custom Build" msgstr "Usar Diretório de Usuário Personalizado" @@ -18878,6 +18867,15 @@ msgstr "Usar Diretório de Usuário Personalizado" msgid "Export Format" msgstr "Caminho de Exportação" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "SDK Mínimo" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "FPS alvo" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18921,15 +18919,6 @@ msgstr "Inspecionar a Instância Anterior" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "SDK Mínimo" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "FPS alvo" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19181,14 +19170,16 @@ msgstr "" "utilizar plugins." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Hand Tracking\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile VR\"." #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +#, fuzzy +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "\"Passthrough\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile VR\"." @@ -19199,22 +19190,45 @@ msgstr "" "habilitado." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Exportar AAB\" só é válido quando \"Usar Compilação Customizada\" está " "habilitado." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Exportar AAB\" só é válido quando \"Usar Compilação Customizada\" está " "habilitado." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "Versão do \"Target Sdk\" precisa ser igual ou maior que a versão do \"Min " "Sdk\"." @@ -19247,9 +19261,8 @@ msgid "Could not find keystore, unable to export." msgstr "O keystore não foi encontrado, não foi possível exportar." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not start apksigner executable." -msgstr "Não se pôde iniciar sub-processo!" +msgstr "Não foi possível iniciar o executável apksigner." #: platform/android/export/export_plugin.cpp msgid "'apksigner' returned with error #%d" @@ -19293,15 +19306,13 @@ msgstr "" "'Projeto'." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" -"Diferença na versão da build do Android:\n" -" Modelo instalado: %s\n" -" Versão do Godot: %s\n" -"Por favor reinstale o modelo de compilação do Android pelo menu 'Projeto'." +"Diferença na versão da build do Android: Modelo instalado: %s, Versão do " +"Godot: %s. Por favor reinstale o modelo de compilação do Android pelo menu " +"'Projeto'." #: platform/android/export/export_plugin.cpp #, fuzzy @@ -19326,14 +19337,13 @@ msgid "Building Android Project (gradle)" msgstr "Construindo Projeto Android (gradle)" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Building of Android project failed, check output for the error. " "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" -"A construção do projeto Android falhou, verifique a saída para detalhes.\n" -"Alternativamente, visite docs.godotengine.org para ver a documentação de " -"compilação do Android." +"A compilação do projeto Android falhou, verifique a saída para detalhes. Ou " +"então visite docs.godotengine.org para ver a documentação de compilação do " +"Android." #: platform/android/export/export_plugin.cpp msgid "Moving output" @@ -19348,41 +19358,35 @@ msgstr "" "diretório do projeto gradle por saídas." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Package not found: \"%s\"." -msgstr "Pacote não encontrado: '%s'" +msgstr "Pacote não encontrado: \"%s\"." #: platform/android/export/export_plugin.cpp msgid "Creating APK..." msgstr "Criando APK..." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not find template APK to export: \"%s\"." -msgstr "" -"Não foi possível encontrar o modelo de APK para exportar:\n" -"%s" +msgstr "Não foi possível encontrar o modelo de APK para exportação: %s." #: platform/android/export/export_plugin.cpp -#, fuzzy 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 "" "Faltam bibliotecas no modelo de exportação para as arquiteturas " -"selecionadas: %s.\n" -"Crie um modelo com todas as bibliotecas necessárias ou desmarque as " -"arquiteturas ausentes na predefinição de exportação." +"selecionadas: %s. Por favor, crie um modelo com todas as bibliotecas " +"necessárias ou desmarque as arquiteturas ausentes na predefinição de " +"exportação." #: platform/android/export/export_plugin.cpp msgid "Adding files..." msgstr "Adicionando arquivos..." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files." -msgstr "Não foi possível exportar os arquivos do projeto" +msgstr "Não foi possível exportar os arquivos do projeto." #: platform/android/export/export_plugin.cpp msgid "Aligning APK..." @@ -19653,9 +19657,8 @@ msgid "Run exported HTML in the system's default browser." msgstr "Rodar HTML exportado no navegador padrão do sistema." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not open template for export: \"%s\"." -msgstr "Não foi possível abrir o modelo para exportar:" +msgstr "Não foi possível abrir o modelo para exportação: \"%s\"." #: platform/javascript/export/export.cpp #, fuzzy @@ -19673,9 +19676,8 @@ msgid "Icon Creation" msgstr "Definir Margem" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not read file: \"%s\"." -msgstr "Não foi possível ler o arquivo:" +msgstr "Não foi possível ler o arquivo: \"%s\"." #: platform/javascript/export/export.cpp msgid "PWA" @@ -19755,9 +19757,8 @@ msgid "Icon 512 X 512" msgstr "" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not read HTML shell: \"%s\"." -msgstr "Não foi possível ler o shell HTML:" +msgstr "Não foi possível ler o shell HTML: \"%s\"." #: platform/javascript/export/export.cpp #, fuzzy @@ -19765,9 +19766,8 @@ msgid "Could not create HTTP server directory: %s." msgstr "Não foi possível criar o diretório do servidor HTTP:" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Error starting HTTP server: %d." -msgstr "Erro ao iniciar servidor HTTP:" +msgstr "Erro ao iniciar o servidor HTTP: %d." #: platform/javascript/export/export.cpp msgid "Web" @@ -20066,19 +20066,16 @@ msgid "Apple Team ID" msgstr "" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open icon file \"%s\"." -msgstr "Não foi possível exportar os arquivos do projeto" +msgstr "Não foi possível abrir o arquivo de ícone \"%s\"." #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start xcrun executable." -msgstr "Não se pôde iniciar sub-processo!" +msgstr "Não foi possível iniciar o executável xcrun." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization failed." -msgstr "Localização" +msgstr "Falha na notarização." #: platform/osx/export/export.cpp msgid "Notarization request UUID: \"%s\"" @@ -20145,9 +20142,8 @@ msgid "DMG Creation" msgstr "Direções" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start hdiutil executable." -msgstr "Não se pôde iniciar sub-processo!" +msgstr "Não foi possível iniciar o executável hdiutil." #: platform/osx/export/export.cpp msgid "`hdiutil create` failed - file exists." @@ -20163,14 +20159,13 @@ msgid "Creating app bundle" msgstr "Criando Miniatura" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export: \"%s\"." -msgstr "Não foi possível encontrar o aplicativo de modelo para exportar:" +msgstr "" +"Não foi possível encontrar o aplicativo de modelo para exportar: \"%s\"." #: platform/osx/export/export.cpp -#, fuzzy msgid "Invalid export format." -msgstr "Template de exportação inválido:" +msgstr "Formato de exportação inválido." #: platform/osx/export/export.cpp msgid "" @@ -20226,10 +20221,9 @@ msgid "ZIP Creation" msgstr "Projeção" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open file to read from path \"%s\"." msgstr "" -"Não foi possível exportar os arquivos do projeto ao projeto do gradle\n" +"Não foi possível abrir o arquivo para leitura a partir do caminho \"%s\"." #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -20638,9 +20632,8 @@ msgid "Could not find osslsigncode executable at \"%s\"." msgstr "O keystore não foi encontrado, não foi possível exportar." #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid identity type." -msgstr "O nome não é um identificador válido:" +msgstr "Tipo de identidade inválido." #: platform/windows/export/export.cpp #, fuzzy @@ -20660,9 +20653,8 @@ msgid "" msgstr "" #: platform/windows/export/export.cpp -#, fuzzy msgid "Failed to remove temporary file \"%s\"." -msgstr "Não é possível remover o arquivo temporário:" +msgstr "Falha ao remover o arquivo temporário \"%s\"." #: platform/windows/export/export.cpp msgid "" @@ -20896,7 +20888,7 @@ msgstr "Ampliar" msgid "Custom Viewport" msgstr "1 Viewport" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21644,11 +21636,42 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Margem de Ligação da Borda" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "VInculamento" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Distância do Caminho U" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Max Distance" +msgstr "Distância Máxima do Caminho" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Avançado" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Habilitar" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21665,15 +21688,6 @@ msgstr "Inverter Horizontalmente" msgid "Max Speed" msgstr "Velocidade Máxima" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "Distância Máxima do Caminho" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Habilitar" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -22882,6 +22896,13 @@ msgstr "" msgid "Transform Normals" msgstr "Normais de Transformação" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25040,6 +25061,11 @@ msgstr "Pasta:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Selecionar Apenas" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Habilitar" @@ -25449,19 +25475,6 @@ msgstr "Caminho de Exportação" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Este viewport não está definido como destino de renderização. Se você " -"pretende que ele mostre seu conteúdo diretamente na tela, faça-o filho de um " -"nó de Controle para que ele possa ter um tamanho. Caso contrário, defina-o " -"como destino de renderização e atribua sua textura interna a algum nó para " -"exibir." - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -25469,6 +25482,15 @@ msgstr "" "dimensões para renderizar algo." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27155,9 +27177,8 @@ msgid "Source Geometry Mode" msgstr "" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Source Group Name" -msgstr "Origem" +msgstr "Origem do Nome do Grupo" #: scene/resources/navigation_mesh.cpp msgid "Cells" @@ -27226,6 +27247,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Gerando AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Deslocamento Base" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/ro.po b/editor/translations/ro.po index b6b92325e4..cdd11f3980 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -418,6 +418,11 @@ msgstr "" msgid "Command" msgstr "Comunitate" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Cadru Fizic %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5619,6 +5624,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Toată selecția" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8086,11 +8096,20 @@ msgid "New Anim" msgstr "Anim Nouă" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Creează Animație Nouă" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Schimbă Numele Animației:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Redenumește Animația" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Ștergi Animația?" @@ -8110,11 +8129,6 @@ msgid "Animation name already exists!" msgstr "EROARE: Numele animației există deja!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Redenumește Animația" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplicare Animație" @@ -8262,10 +8276,6 @@ msgid "Pin AnimationPlayer" msgstr "Lipește Animație" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Creează Animație Nouă" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Nume Animație:" @@ -18991,6 +19001,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Creează Nod" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18999,6 +19014,16 @@ msgstr "" msgid "Export Format" msgstr "Exportă Proiectul" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Dimensiunea Conturului:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Suprafață Țintă:" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -19037,16 +19062,6 @@ msgstr "Fila anterioară" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Dimensiunea Conturului:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Suprafață Țintă:" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19292,12 +19307,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19306,17 +19321,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20968,7 +21003,7 @@ msgstr "Apropiere" msgid "Custom Viewport" msgstr "Arată Fereastra de Lucru" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21688,34 +21723,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Modifică Conexiunea:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Rotație aleatorie:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Alege o Scenă Principală" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Avansate" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Activați" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Activați" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22899,6 +22956,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformare uniformă." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24985,6 +25049,11 @@ msgstr "Folderul:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Numai Selecția" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Activați" @@ -25387,16 +25456,17 @@ msgstr "Exportă Proiectul" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -27139,6 +27209,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Generare AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Compensare Grilă:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/ru.po b/editor/translations/ru.po index b920136351..84762459c8 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -115,13 +115,15 @@ # Deleted User <noreply+44465@weblate.org>, 2022. # Bozhko Artyom Dmitrievich <jek_sun@mail.ru>, 2022. # FuzzMix <fmwolfiechad@gmail.com>, 2022. +# Jasuse <jasusemaele@gmail.com>, 2022. +# Vadim Mitroshkin <Vadim7540@yandex.ru>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-12 13:19+0000\n" -"Last-Translator: FuzzMix <fmwolfiechad@gmail.com>\n" +"PO-Revision-Date: 2022-07-03 00:44+0000\n" +"Last-Translator: Vadim Mitroshkin <Vadim7540@yandex.ru>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" "Language: ru\n" @@ -130,7 +132,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -469,14 +471,12 @@ msgid "Max Size (KB)" msgstr "Максимальный размер (КБ)" #: core/os/input.cpp -#, fuzzy msgid "Mouse Mode" -msgstr "Режим перемещения" +msgstr "Режим мыши" #: core/os/input.cpp -#, fuzzy msgid "Use Accumulated Input" -msgstr "Удалить вход" +msgstr "Использовать накопленный ввод" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: servers/audio_server.cpp @@ -503,6 +503,11 @@ msgstr "Meta" msgid "Command" msgstr "Command" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (Физическая)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -2332,8 +2337,9 @@ msgid "Fix Dependencies" msgstr "Исправить зависимости" #: editor/dependency_editor.cpp +#, fuzzy msgid "Errors loading!" -msgstr "Ошибки загрузки!" +msgstr "Ошибки загружаются!" #: editor/dependency_editor.cpp msgid "Permanently delete %d item(s)? (No undo!)" @@ -5588,6 +5594,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "Навигация по истории дополнительными кнопками мыши" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Выделение сетки" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "Внешний вид" @@ -7919,11 +7930,20 @@ msgid "New Anim" msgstr "Новая анимация" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Создать новую анимацию" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Изменить имя анимации:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Переименовать анимацию" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Удалить анимацию?" @@ -7941,11 +7961,6 @@ msgid "Animation name already exists!" msgstr "Такое название анимации уже существует!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Переименовать анимацию" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Дублировать анимацию" @@ -8091,10 +8106,6 @@ msgid "Pin AnimationPlayer" msgstr "Закрепить анимацию игрока" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Создать новую анимацию" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Название анимации:" @@ -9530,7 +9541,7 @@ msgstr "Иконка" #: editor/plugins/item_list_editor_plugin.cpp msgid "ID" -msgstr "" +msgstr "Идентификатор" #: editor/plugins/item_list_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp @@ -17055,7 +17066,7 @@ msgstr "Скин Godot" #: modules/gltf/gltf_spec_gloss.cpp msgid "Diffuse Img" -msgstr "" +msgstr "Рассеянное изображение" #: modules/gltf/gltf_spec_gloss.cpp msgid "Diffuse Factor" @@ -18486,6 +18497,11 @@ msgstr "Пакет должен иметь хотя бы один раздели #: platform/android/export/export_plugin.cpp #, fuzzy +msgid "Custom Build" +msgstr "Использовать собственную директорию данных пользователя" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "Use Custom Build" msgstr "Использовать собственную директорию данных пользователя" @@ -18494,6 +18510,16 @@ msgstr "Использовать собственную директорию д msgid "Export Format" msgstr "Путь экспорта" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Минимальный размер" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Целевой FPS" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18537,16 +18563,6 @@ msgstr "Осмотреть предыдущий экземпляр" msgid "Code" msgstr "Код" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Минимальный размер" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Целевой FPS" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18800,15 +18816,17 @@ msgid "\"Use Custom Build\" must be enabled to use the plugins." msgstr "«Use Custom Build» должен быть включен для использования плагинов." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "«Hand Tracking» действителен только тогда, когда «Xr Mode» установлен в " "«Oculus Mobile VrApi» или «OpenXR»." #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +#, fuzzy +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "«Passthrough» действителен только тогда, когда «Xr Mode» установлен в " "«OpenXR»." @@ -18820,22 +18838,45 @@ msgstr "" "пользовательскую сборку»." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Изменение «Min Sdk» действительно только если включён параметр «Использовать " "пользовательскую сборку»." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Изменение «Target Sdk» действительно только если включён параметр " "«Использовать пользовательскую сборку»." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "Версия «Target Sdk» должна быть больше или равна версии «Min Sdk»." #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20543,7 +20584,7 @@ msgstr "Приблизить" msgid "Custom Viewport" msgstr "1 Окно" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21284,11 +21325,43 @@ msgstr "Размер ячейки" msgid "Edge Connection Margin" msgstr "Пограничное соединение" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Привязка" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Расстояние пути U" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Максимальное расстояние пути" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Дополнительно" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Включить" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21305,16 +21378,6 @@ msgstr "Перевернуть по горизонтали" msgid "Max Speed" msgstr "Макс скорость" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Максимальное расстояние пути" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Включить" - #: scene/2d/navigation_agent_2d.cpp #, fuzzy msgid "" @@ -22527,6 +22590,13 @@ msgstr "" msgid "Transform Normals" msgstr "Преобразование нормалей" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24685,6 +24755,11 @@ msgstr "Полоса сворачивания" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Только выделенное" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Включить" @@ -25086,19 +25161,6 @@ msgstr "Путь экспорта" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Этот viewport не установлен в качестве цели рендеринга. Если вы собираетесь " -"использовать его для отображения содержимого прямо на экран, то сделайте её " -"потомком Control'а, чтобы он мог получить размер. В противном случае, " -"сделайте его целью рендеринга и назначьте его внутреннюю текстуру какому-" -"либо узлу для отображения." - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -25106,6 +25168,15 @@ msgstr "" "измерениях, чтобы отобразить что-либо." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -26845,6 +26916,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Генерация AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Базовое смещение" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "Сферы" @@ -26865,7 +26946,7 @@ msgstr "Передвинуть точки" #: scene/resources/packed_scene.cpp msgid "Bundled" -msgstr "" +msgstr "Вложенный" #: scene/resources/particles_material.cpp msgid "Trail" @@ -27918,12 +27999,12 @@ msgstr "Совместимость" #: servers/visual_server.cpp msgid "Disable Half Float" -msgstr "" +msgstr "Выключить вещественные числа половинной точности" #: servers/visual_server.cpp #, fuzzy msgid "Enable High Float" -msgstr "Включить приоритет" +msgstr "Включить вещественные числа повышенной точности" #: servers/visual_server.cpp msgid "Precision" @@ -27938,13 +28019,12 @@ msgid "UV Contract Amount" msgstr "" #: servers/visual_server.cpp -#, fuzzy msgid "Use Simple PVS" -msgstr "Использовать привязку масштабирования" +msgstr "Использовать простой PVS" #: servers/visual_server.cpp msgid "PVS Logging" -msgstr "" +msgstr "Вести запись PVS" #: servers/visual_server.cpp msgid "Use Signals" @@ -27974,17 +28054,17 @@ msgid "Max Active Polygons" msgstr "Максимальное количество активных полигонов" #: servers/visual_server.cpp -#, fuzzy msgid "Shader Compilation Mode" -msgstr "Режим интерполяции" +msgstr "Режим компиляции шейдеров" #: servers/visual_server.cpp msgid "Max Simultaneous Compiles" -msgstr "" +msgstr "Максимальное количество одновременных компиляций" #: servers/visual_server.cpp +#, fuzzy msgid "Log Active Async Compiles Count" -msgstr "" +msgstr "Регистрировать количество активных асинхронных компиляций" #: servers/visual_server.cpp msgid "Shader Cache Size (MB)" diff --git a/editor/translations/si.po b/editor/translations/si.po index d28d0a4f81..ae1abeaa5a 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -398,6 +398,10 @@ msgstr "" msgid "Command" msgstr "" +#: core/os/input_event.cpp +msgid "Physical" +msgstr "" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5333,6 +5337,10 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +msgid "Drag And Drop Selection" +msgstr "" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7672,11 +7680,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7694,11 +7711,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7841,10 +7853,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -17988,6 +17996,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "යතුරු පිටපත් කරන්න" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -17996,6 +18009,15 @@ msgstr "" msgid "Export Format" msgstr "Anim පරිවර්තනය වෙනස් කරන්න" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "යතුරු මකා දමන්න" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18032,15 +18054,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "යතුරු මකා දමන්න" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18266,12 +18279,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18280,17 +18293,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19828,7 +19861,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20507,35 +20540,55 @@ msgstr "" msgid "Edge Connection Margin" msgstr "ශ්රිත:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Target Desired Distance" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Pathfinding" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Path Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "සමතුලිතයි" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy msgid "Avoidance Enabled" msgstr "මෙම ලුහුබදින්නා ඉවත් කරන්න." +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Neighbors" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -21638,6 +21691,13 @@ msgstr "" msgid "Transform Normals" msgstr "3D රූපාන්තරණය ලුහුබදින්න" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23593,6 +23653,10 @@ msgid "Fold Gutter" msgstr "" #: scene/gui/text_edit.cpp +msgid "Drag And Drop Selection Enabled" +msgstr "" + +#: scene/gui/text_edit.cpp msgid "Hiding Enabled" msgstr "" @@ -23963,16 +24027,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25606,6 +25671,14 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index 6615ae93a0..6e20ee48da 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -431,6 +431,11 @@ msgstr "" msgid "Command" msgstr "Komunita" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fyzická Snímka %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5644,6 +5649,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Všetky vybrané" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8107,11 +8117,20 @@ msgid "New Anim" msgstr "Nová Animácia" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Vytvoriť Novú Animáciu" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Zmeniť Meno Animácie:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Premenovať Animáciu" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Naozaj chcete vymazať Animáciu?" @@ -8129,11 +8148,6 @@ msgid "Animation name already exists!" msgstr "Toto meno Animácie už existuje!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Premenovať Animáciu" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplikovať Animáciu" @@ -8276,10 +8290,6 @@ msgid "Pin AnimationPlayer" msgstr "Pripnúť Prehrávač Animácie" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Vytvoriť Novú Animáciu" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Meno Animácie:" @@ -18915,6 +18925,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Vložiť" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18923,6 +18938,16 @@ msgstr "" msgid "Export Format" msgstr "Konštanty:" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Veľkosť: " + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Vytvoriť Node" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18961,16 +18986,6 @@ msgstr "Minulá karta" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Veľkosť: " - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Vytvoriť Node" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19216,12 +19231,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19230,17 +19245,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20891,7 +20926,7 @@ msgstr "Priblížiť" msgid "Custom Viewport" msgstr "Zobraziť Výrez" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21618,34 +21653,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Upraviť Pripojenie:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Prilepiť Animáciu" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Vyberte hlavnú scénu" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Pokročilé" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Povoliť" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Povoliť" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22830,6 +22887,13 @@ msgstr "" msgid "Transform Normals" msgstr "Vytvoriť adresár" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24912,6 +24976,11 @@ msgstr "Priečinok:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Iba Výber" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Povoliť" @@ -25312,16 +25381,17 @@ msgstr "Zamerať Cestu" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -27063,6 +27133,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Odchýlka Mriežky:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/sl.po b/editor/translations/sl.po index acb24489bd..43eb784a39 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -13,13 +13,14 @@ # Alex <alexrixhardson@gmail.com>, 2019. # Andrew Poženel <andrej.pozenel@outlook.com>, 2020, 2022. # Jakob Tadej Vrtačnik <minecraftalka2@gmail.com>, 2021. +# Andrew Poženel <andrew.pozenel@protonmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-04 10:56+0000\n" -"Last-Translator: Andrew Poženel <andrej.pozenel@outlook.com>\n" +"PO-Revision-Date: 2022-06-23 16:41+0000\n" +"Last-Translator: Andrew Poženel <andrew.pozenel@protonmail.com>\n" "Language-Team: Slovenian <https://hosted.weblate.org/projects/godot-engine/" "godot/sl/>\n" "Language: sl\n" @@ -28,7 +29,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " "n%100==4 ? 2 : 3;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -403,6 +404,11 @@ msgstr "" msgid "Command" msgstr "Skupnost" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fizikalni Okvir %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -411,9 +417,8 @@ msgid "Pressed" msgstr "Prednastavitev..." #: core/os/input_event.cpp -#, fuzzy msgid "Scancode" -msgstr "Preglej" +msgstr "Skenirna koda" #: core/os/input_event.cpp msgid "Physical Scancode" @@ -421,7 +426,7 @@ msgstr "" #: core/os/input_event.cpp msgid "Unicode" -msgstr "" +msgstr "Unicode" #: core/os/input_event.cpp msgid "Echo" @@ -884,7 +889,7 @@ msgstr "" #: core/register_core_types.cpp msgid "TCP" -msgstr "" +msgstr "TCP" #: core/register_core_types.cpp #, fuzzy @@ -3868,7 +3873,7 @@ msgstr "" #: editor/editor_network_profiler.cpp editor/editor_node.cpp #: scene/main/node.cpp scene/resources/default_theme/default_theme.cpp msgid "Node" -msgstr "Gradnik" +msgstr "Vozlišče" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" @@ -5715,6 +5720,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "GridMap Izbriši Izbor" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7220,7 +7230,7 @@ msgstr "" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp msgid "sRGB" -msgstr "" +msgstr "sRGB" #: editor/import/resource_importer_layered_texture.cpp msgid "Slices" @@ -8232,11 +8242,20 @@ msgid "New Anim" msgstr "Nova Animacija" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Ustvari Novo Animacijo" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Spremeni Ime Animacije:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Preimenuj Animacijo" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Izbrišem animacijo?" @@ -8256,11 +8275,6 @@ msgid "Animation name already exists!" msgstr "NAPAKA: Animacija s tem imenom že obstaja!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Preimenuj Animacijo" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Podvoji Animacijo" @@ -8409,10 +8423,6 @@ msgid "Pin AnimationPlayer" msgstr "Prilepi animacijo" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Ustvari Novo Animacijo" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Ime Animacije:" @@ -9834,7 +9844,7 @@ msgstr "" #: editor/plugins/curve_editor_plugin.cpp msgid "Flat 1" -msgstr "" +msgstr "Raven 1" #: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp msgid "Ease In" @@ -10062,7 +10072,7 @@ msgstr "" #: scene/resources/multimesh.cpp scene/resources/primitive_meshes.cpp #: scene/resources/texture.cpp msgid "Mesh" -msgstr "" +msgstr "Geometrijski objekt" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Body" @@ -10965,7 +10975,7 @@ msgstr "Prejšnji zavihek" #: editor/plugins/script_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp msgid "File" -msgstr "" +msgstr "Datoteka" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -11421,7 +11431,7 @@ msgstr "Zaženi" #: editor/plugins/spatial_editor_plugin.cpp msgid "Orthogonal" -msgstr "" +msgstr "Ortogonalno" #: editor/plugins/spatial_editor_plugin.cpp modules/gltf/gltf_camera.cpp msgid "Perspective" @@ -11587,7 +11597,7 @@ msgstr "Lastnosti" #: editor/plugins/spatial_editor_plugin.cpp msgid "FPS: %d (%s ms)" -msgstr "" +msgstr "FPS: %d (%s ms)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Top View." @@ -13649,7 +13659,7 @@ msgstr "" #: editor/plugins/version_control_editor_plugin.cpp msgid "SSH Passphrase" -msgstr "" +msgstr "geslo SSH" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -18664,7 +18674,7 @@ msgstr "" #: modules/visual_script/visual_script_flow_control.cpp msgid "While" -msgstr "" +msgstr "Medtem ko" #: modules/visual_script/visual_script_flow_control.cpp msgid "while (cond):" @@ -18995,7 +19005,7 @@ msgstr "Odstrani Gradnik VizualnaSkripta" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Yield" -msgstr "" +msgstr "Donos" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Wait" @@ -19206,6 +19216,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Gradnik Prehod" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -19214,6 +19229,16 @@ msgstr "" msgid "Export Format" msgstr "Izvozi Projekt" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Zaženi Skripto" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Gradnik ČasovnoMerilo" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -19253,16 +19278,6 @@ msgstr "Prejšnji zavihek" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Zaženi Skripto" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Gradnik ČasovnoMerilo" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19509,12 +19524,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19523,17 +19538,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -21190,7 +21225,7 @@ msgstr "Približaj" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21913,34 +21948,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Napaka Pri Povezavi" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Prilepi animacijo" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Izberi Glavno Sceno" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Možnosti pripenjanja" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Omogoči" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Omogoči" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -23122,6 +23179,13 @@ msgstr "" msgid "Transform Normals" msgstr "Preoblikovanje Dialoga..." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25209,6 +25273,11 @@ msgstr "Ustvarite Mapo" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Samo Izbira" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Omogoči" @@ -25605,16 +25674,17 @@ msgstr "Izvozi Projekt" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26893,7 +26963,7 @@ msgstr "" #: scene/resources/environment.cpp msgid "Bloom" -msgstr "" +msgstr "Učinek žarenja" #: scene/resources/environment.cpp msgid "HDR Threshold" @@ -27353,6 +27423,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Mrežni Zamik:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/sq.po b/editor/translations/sq.po index c97aac239a..b11dc2f46f 100644 --- a/editor/translations/sq.po +++ b/editor/translations/sq.po @@ -415,6 +415,11 @@ msgstr "" msgid "Command" msgstr "Komuniteti" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Hapi i Fizikës %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5651,6 +5656,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Fshi të Selektuarat" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8093,11 +8103,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -8115,11 +8134,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -8262,10 +8276,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18698,6 +18708,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Dyfisho Nyjet" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18706,6 +18721,16 @@ msgstr "" msgid "Export Format" msgstr "Konstantet" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Madhësia: " + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Fshi Nyjen" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18744,16 +18769,6 @@ msgstr "Tabi i mëparshëm" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Madhësia: " - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Fshi Nyjen" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18998,12 +19013,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19012,17 +19027,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20654,7 +20689,7 @@ msgstr "" msgid "Custom Viewport" msgstr "Zgjidh një 'Viewport'" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21350,34 +21385,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Modifiko Lidhjen: " +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Konstantet" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Zgjidh një Skenë Kryesore" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "I Balancuar" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Lejo" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Lejo" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22513,6 +22570,13 @@ msgstr "" msgid "Transform Normals" msgstr "Binari i Transformimeve 3D" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24531,6 +24595,11 @@ msgstr "Folderi:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Zgjidh Këtë Folder" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Lejo" @@ -24922,16 +24991,17 @@ msgstr "Fokuso Rrugën" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26636,6 +26706,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Ndrysho Tipin e %s" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index 55387743e7..e4a0475e3f 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -431,6 +431,11 @@ msgstr "" msgid "Command" msgstr "Заједница" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Слика физике %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5964,6 +5969,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "МапаМреже Испуни Одабрано" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8584,11 +8594,20 @@ msgid "New Anim" msgstr "Нова анимација" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Направи нову анимацију" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Измени име анимације:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Преименуј анимацију" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Обриши анимацију?" @@ -8608,11 +8627,6 @@ msgid "Animation name already exists!" msgstr "Грешка: име анимације већ постоји!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Преименуј анимацију" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Дуплирај анимацију" @@ -8762,10 +8776,6 @@ msgid "Pin AnimationPlayer" msgstr "Налепи анимацију" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Направи нову анимацију" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Име анимације:" @@ -20554,6 +20564,11 @@ msgid "The package must have at least one '.' separator." msgstr "Паковање мора имати бар један '.' раздвојник." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Направи чвор" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -20562,6 +20577,16 @@ msgstr "" msgid "Export Format" msgstr "Извези пројекат" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Величина ивице:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Мета" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -20604,16 +20629,6 @@ msgstr "Истражи Претходну Инстанцу" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Величина ивице:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Мета" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -20876,12 +20891,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -20890,17 +20905,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -22599,7 +22634,7 @@ msgstr "Увеличај" msgid "Custom Viewport" msgstr "1 прозор" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -23365,11 +23400,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Повезивање не успешно" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Спојеви" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Одабери Одстојање:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Одабери Одстојање:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Поставке залепљавања" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Укључи" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -23387,16 +23454,6 @@ msgstr "Обрни Хоризонтално" msgid "Max Speed" msgstr "Брзина (FPS):" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Одабери Одстојање:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Укључи" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -24678,6 +24735,13 @@ msgstr "" msgid "Transform Normals" msgstr "Трансформација прекинута." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -26865,6 +26929,11 @@ msgstr "Пресавији линију" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Само одабрано" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Укључи" @@ -27275,24 +27344,20 @@ msgstr "Извези пројекат" #: scene/main/viewport.cpp #, fuzzy msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Овај viewport није постављен као мета за исцртавање. Ако намераваш да " -"прикаже садржај директно на екран, учини га дететом Контроле да може да " -"добави величину. У супротном, учини га МетомИсцртавања и додели његову " -"унутрашњу текстуру неком чвору за приказ." - -#: scene/main/viewport.cpp -#, fuzzy -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "Величина Viewport-а мора бити већа од 0 да би се нешто исцртало." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -29061,6 +29126,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Генерисање осног поравнаног граничниог оквира (AABB)" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Офсет:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index 21d94999a2..9bbc31e19a 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -406,6 +406,11 @@ msgstr "" msgid "Command" msgstr "Zajednica" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Filtriraj signale" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5350,6 +5355,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Sve sekcije" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7695,11 +7705,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7717,11 +7736,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7864,10 +7878,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18053,6 +18063,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Animacija Uduplaj Ključeve" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18061,6 +18076,15 @@ msgstr "" msgid "Export Format" msgstr "Homogenost Boje." +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Ukloni Čvor" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18097,15 +18121,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Ukloni Čvor" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -18336,12 +18351,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18350,17 +18365,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19919,7 +19954,7 @@ msgstr "Uveličaj" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20611,35 +20646,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Izmeni Konekciju:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Target Desired Distance" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" -msgstr "" +#, fuzzy +msgid "Pathfinding" +msgstr "Kontanta" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Path Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Napredno" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy msgid "Avoidance Enabled" msgstr "Filtriraj signale" +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Neighbors" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -21765,6 +21821,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformacija homogenosti." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23753,6 +23816,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Samo Obeleženo" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Filtriraj signale" @@ -24129,16 +24197,17 @@ msgstr "Putanja" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25807,6 +25876,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Obriši Selekciju" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/sv.po b/editor/translations/sv.po index 54655bcecf..010299e2cf 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -442,6 +442,11 @@ msgstr "" msgid "Command" msgstr "Gemenskap" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Fysik Bildruta %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5660,6 +5665,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Alla urval" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8159,11 +8169,20 @@ msgid "New Anim" msgstr "Ny Anim" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Skapa Ny Animation" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Ändra Animationsnamn:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Byt namn på Animation" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Ta bort Animation?" @@ -8183,11 +8202,6 @@ msgid "Animation name already exists!" msgstr "ERROR: Animationsnamn finns redan!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Byt namn på Animation" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Duplicera Animation" @@ -8335,10 +8349,6 @@ msgid "Pin AnimationPlayer" msgstr "Klistra in Animation" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Skapa Ny Animation" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18984,6 +18994,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Klipp ut Noder" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18992,6 +19007,16 @@ msgstr "" msgid "Export Format" msgstr "Exportera Projekt" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Storlek:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Byt Förälder-Node" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -19030,16 +19055,6 @@ msgstr "Föregående flik" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Storlek:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Byt Förälder-Node" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19284,12 +19299,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19298,17 +19313,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20964,7 +20999,7 @@ msgstr "Zooma In" msgid "Custom Viewport" msgstr "Vy underifrån" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21687,34 +21722,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Redigera Koppling:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Slumpmässig Rotation:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Välj en Huvudscen" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "Avancerad" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Aktivera" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Aktivera" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22906,6 +22963,13 @@ msgstr "" msgid "Transform Normals" msgstr "Transformera uniform." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24989,6 +25053,11 @@ msgstr "Mapp:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Endast Urval" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Aktivera" @@ -25386,16 +25455,17 @@ msgstr "Exportera Projekt" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -27128,6 +27198,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Ta Bort Mall" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/te.po b/editor/translations/te.po index 7e39aed20c..9e49f9dcc5 100644 --- a/editor/translations/te.po +++ b/editor/translations/te.po @@ -388,6 +388,10 @@ msgstr "" msgid "Command" msgstr "సంఘం" +#: core/os/input_event.cpp +msgid "Physical" +msgstr "" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5259,6 +5263,10 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +msgid "Drag And Drop Selection" +msgstr "" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7546,11 +7554,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7568,11 +7585,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7715,10 +7727,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -17717,6 +17725,10 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +msgid "Custom Build" +msgstr "" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -17724,6 +17736,15 @@ msgstr "" msgid "Export Format" msgstr "" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "నోడ్" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -17760,15 +17781,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "నోడ్" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "" @@ -17988,12 +18000,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18002,17 +18014,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19527,7 +19559,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20188,32 +20220,52 @@ msgstr "" msgid "Edge Connection Margin" msgstr "" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "స్థిరాంకాలు" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Desired Distance" +msgstr "" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" +msgid "Avoidance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +msgid "Avoidance Enabled" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Avoidance Enabled" +msgid "Time Horizon" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Max Speed" msgstr "" #: scene/2d/navigation_agent_2d.cpp @@ -21284,6 +21336,13 @@ msgstr "" msgid "Transform Normals" msgstr "" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -23166,6 +23225,10 @@ msgid "Fold Gutter" msgstr "" #: scene/gui/text_edit.cpp +msgid "Drag And Drop Selection Enabled" +msgstr "" + +#: scene/gui/text_edit.cpp msgid "Hiding Enabled" msgstr "" @@ -23522,16 +23585,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -25064,6 +25128,14 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/th.po b/editor/translations/th.po index cf482896d4..1a6a4b71be 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -438,6 +438,11 @@ msgstr "" msgid "Command" msgstr "ชุมชน" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "% ของเฟรมฟิสิกส์" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5639,6 +5644,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "เติมที่เลือกใน GridMap" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8119,11 +8129,20 @@ msgid "New Anim" msgstr "แอนิเมชันใหม่" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "สร้างแอนิเมชันใหม่" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "เปลี่ยนชื่อแอนิเมชัน:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "เปลี่ยนชื่อแอนิเมชัน" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "ลบแอนิเมชัน?" @@ -8141,11 +8160,6 @@ msgid "Animation name already exists!" msgstr "ชื่อแอนิเมชันนี้ มีอยู่แล้ว!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "เปลี่ยนชื่อแอนิเมชัน" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "ทำซ้ำแอนิเมชัน" @@ -8289,10 +8303,6 @@ msgid "Pin AnimationPlayer" msgstr "ปักหมุด AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "สร้างแอนิเมชันใหม่" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "ชื่อแอนิเมชัน:" @@ -18936,6 +18946,11 @@ msgid "The package must have at least one '.' separator." msgstr "แพ็คเกจจำเป็นต้องมี '.' อย่างน้อยหนึ่งตัว" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "ตัดโหนด" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18944,6 +18959,16 @@ msgstr "" msgid "Export Format" msgstr "ไดเรกทอรีส่งออก" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "ขนาดเส้นรอบรูป:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "เป้าหมาย" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18986,16 +19011,6 @@ msgstr "ตรวจสอบอินสแตนซ์ก่อนหน้า msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "ขนาดเส้นรอบรูป:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "เป้าหมาย" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19242,13 +19257,13 @@ msgstr "\"Use Custom Build\" จำเป็นต้องเปิดการ #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "\"Hand Tracking\" จะสามารถใช้ได้เมื่อ \"Xr Mode\" เป็น \"Oculus Mobile VR\"" #: platform/android/export/export_plugin.cpp #, fuzzy -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "\"Hand Tracking\" จะสามารถใช้ได้เมื่อ \"Xr Mode\" เป็น \"Oculus Mobile VR\"" #: platform/android/export/export_plugin.cpp @@ -19258,18 +19273,38 @@ msgstr "\"Export AAB\" จะใช้ได้เฉพาะเมื่อเ #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "\"Export AAB\" จะใช้ได้เฉพาะเมื่อเปิดใช้งาน \"Use Custom Build\"" #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "\"Export AAB\" จะใช้ได้เฉพาะเมื่อเปิดใช้งาน \"Use Custom Build\"" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20946,7 +20981,7 @@ msgstr "ขยาย" msgid "Custom Viewport" msgstr "1 วิวพอร์ต" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21698,11 +21733,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "แก้ไขการเชื่อมต่อ:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "ปุ่มลัด" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "ระยะการเลือก:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "ระยะการเลือก:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "ขั้นสูง" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "เปิด" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21720,16 +21787,6 @@ msgstr "พลิกแนวนอน" msgid "Max Speed" msgstr "ความเร็ว:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "ระยะการเลือก:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "เปิด" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -22953,6 +23010,13 @@ msgstr "" msgid "Transform Normals" msgstr "ยกเลิกการเคลื่อนย้าย" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25098,6 +25162,11 @@ msgstr "โฟลเดอร์:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "เฉพาะที่กำลังเลือก" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "เปิด" @@ -25504,17 +25573,6 @@ msgid "Viewport Path" msgstr "ไดเรกทอรีส่งออก" #: scene/main/viewport.cpp -msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Viewport นี้ไม่ได้เป็น render target ถ้าท่านต้องการแสดงผลบนหน้าจอโดยตรง " -"ให้แก้ไขโหนดนี้ให้เป็นโหนดลูกของ Control แต่ถ้าไม่ ให้ปรับเป็น render target และนำไปใช้เป็น " -"texture ของโหนดอื่น" - -#: scene/main/viewport.cpp #, fuzzy msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " @@ -25522,6 +25580,15 @@ msgid "" msgstr "ขนาดวิวพอร์ตจะต้องมากกว่า 0 เพื่อที่จะเรนเดอร์ได้" #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27291,6 +27358,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "กำลังสร้าง AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "เลื่อน:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/tl.po b/editor/translations/tl.po index 963d542e6d..d5a5d52332 100644 --- a/editor/translations/tl.po +++ b/editor/translations/tl.po @@ -415,6 +415,11 @@ msgstr "" msgid "Command" msgstr "Pamayanan" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Paganahin" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5453,6 +5458,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Kopyahin Ang Pinagpipilian" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7848,11 +7858,20 @@ msgid "New Anim" msgstr "Bagong Anim" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Gumawa ng Bagong Animasyon" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Baguhin ang Pangalan ng Animasyon:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Palitan ang Pangalan ng Animation" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Alisin ang Animation?" @@ -7870,11 +7889,6 @@ msgid "Animation name already exists!" msgstr "May nakapangalan na parehas sa Animation na ito!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Palitan ang Pangalan ng Animation" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -8017,10 +8031,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Gumawa ng Bagong Animasyon" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Pangalan ng Animasyon:" @@ -18258,6 +18268,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Kopyahin ang mga Node" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18266,6 +18281,16 @@ msgstr "" msgid "Export Format" msgstr "Iluwas ang Library" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Pangunahing Skrip:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Pinagtututukan" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18304,16 +18329,6 @@ msgstr "Nakaraang tab" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Pangunahing Skrip:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Pinagtututukan" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18552,12 +18567,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18566,17 +18581,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20201,7 +20236,7 @@ msgstr "Palakihin Ang Tanaw" msgid "Custom Viewport" msgstr "1 Tinginan" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -20909,11 +20944,42 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Ayusin Ang Pagkakabit:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Constant" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Pumili ng Pangunahing Eksena" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Max Distance" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Paganahin" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Paganahin" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -20930,15 +20996,6 @@ msgstr "" msgid "Max Speed" msgstr "Bilis:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Paganahin" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -22099,6 +22156,13 @@ msgstr "" msgid "Transform Normals" msgstr "Track na Pang-3D Transform" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24160,6 +24224,11 @@ msgstr "Folder:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Napili lang" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Paganahin" @@ -24551,14 +24620,6 @@ msgstr "1 Tinginan" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -24566,6 +24627,15 @@ msgstr "" "alinman." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -26291,6 +26361,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Usog:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index ea437aaf30..1e4ab521bf 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -72,13 +72,15 @@ # Emir Tunahan Alim <emrtnhalim@gmail.com>, 2022. # inci <incialien@gmail.com>, 2022. # Ramazan Aslan <legendraslan@gmail.com>, 2022. +# paledega <paledega@yandex.ru>, 2022. +# Yekez <yasintonge@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-12 13:19+0000\n" -"Last-Translator: Ramazan Aslan <legendraslan@gmail.com>\n" +"PO-Revision-Date: 2022-07-03 00:44+0000\n" +"Last-Translator: Yekez <yasintonge@gmail.com>\n" "Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/" "godot/tr/>\n" "Language: tr\n" @@ -86,11 +88,11 @@ 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.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" -msgstr "Tablet Sürücüsü" +msgstr "Tablet Sürücü" #: core/bind/core_bind.cpp msgid "Clipboard" @@ -98,7 +100,7 @@ msgstr "Pano" #: core/bind/core_bind.cpp msgid "Current Screen" -msgstr "Şu anki ekran" +msgstr "Şu anki Ekran" #: core/bind/core_bind.cpp msgid "Exit Code" @@ -106,11 +108,11 @@ msgstr "Çıkış Kodu" #: core/bind/core_bind.cpp msgid "V-Sync Enabled" -msgstr "V-Sync Etkinleştirildi" +msgstr "V-Sync Etkin" #: core/bind/core_bind.cpp main/main.cpp msgid "V-Sync Via Compositor" -msgstr "" +msgstr "Compositor Üzerinden V-Sync" #: core/bind/core_bind.cpp main/main.cpp msgid "Delta Smoothing" @@ -460,6 +462,11 @@ msgstr "Meta" msgid "Command" msgstr "Komut" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (Fiziksel)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -467,8 +474,9 @@ msgid "Pressed" msgstr "Basılmış" #: core/os/input_event.cpp +#, fuzzy msgid "Scancode" -msgstr "Tuş Kodu" +msgstr "Tarama kodu" #: core/os/input_event.cpp msgid "Physical Scancode" @@ -909,6 +917,7 @@ msgid "Modules" msgstr "Modüller" #: core/register_core_types.cpp +#, fuzzy msgid "TCP" msgstr "TCP" @@ -1109,7 +1118,7 @@ msgstr "" #. TRANSLATORS: Adjective, refers to the mode for Bezier handles (Free, Balanced, Mirror). #: editor/animation_bezier_editor.cpp msgid "Free" -msgstr "Ücretsiz" +msgstr "Özgür" #: editor/animation_bezier_editor.cpp msgid "Balanced" @@ -5640,6 +5649,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "GridMap Seçimi" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8115,11 +8129,20 @@ msgid "New Anim" msgstr "Yeni Animasyon" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Yeni Animasyon Oluştur" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Animasyon İsmini Değiştir:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Animasyonu Yeniden Adlandır" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Animasyon Silinsin mi?" @@ -8137,11 +8160,6 @@ msgid "Animation name already exists!" msgstr "Animasyon ismi zaten var!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Animasyonu Yeniden Adlandır" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Animasyonu Çoğalt" @@ -8285,10 +8303,6 @@ msgid "Pin AnimationPlayer" msgstr "Animasyon Oynatıcıyı Sabitle" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Yeni Animasyon Oluştur" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Animasyon Adı:" @@ -13290,6 +13304,7 @@ msgid "Select SSH private key path" msgstr "SSH özel anahtar yolu seç" #: editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "SSH Passphrase" msgstr "SSH Parolası" @@ -18856,6 +18871,11 @@ msgid "The package must have at least one '.' separator." msgstr "Paket en azından bir tane '.' ayıracına sahip olmalıdır." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "ÖzelSınıf" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18864,6 +18884,16 @@ msgstr "" msgid "Export Format" msgstr "Dışa aktarım Yolu" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Kontur Boyutu:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Hedef" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18907,16 +18937,6 @@ msgstr "Önceki Örneği İncele" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Kontur Boyutu:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Hedef" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19166,15 +19186,17 @@ msgstr "" "Eklentileri kullanabilmek için \"Özel Derleme Kullan\" seçeneği aktif olmalı." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"El Takibi (Hand Tracking)\" sadece \"Xr Modu\" \"Oculus Mobile VR\" ya da " "\"OpenXR\" olduğunda geçerlidir." #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +#, fuzzy +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "\"İçinden Geçme\" sadece \"Xr Mod\" \"OpenXR\" ise geçerlidir." #: platform/android/export/export_plugin.cpp @@ -19184,22 +19206,45 @@ msgstr "" "geçerlidir." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Min Sdk\" değiştirilmesi sadece \"Özel Yapı\" etkinleştirildiğinde " "geçerlidir." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "\"Target Sdk\" değiştirilmesi sadece \"Özel Yapı\" etkinleştirildiğinde " "geçerlidir." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "\"Target Sdk\" sürümü \"Min Sdk\" sürümünden daha büyük veya eşit olmalıdır." @@ -20890,7 +20935,7 @@ msgstr "Yaklaştır" msgid "Custom Viewport" msgstr "1 Görüntü Kapısı" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21654,11 +21699,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Bağlantıyı Düzenle:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Bağlayıcı" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Uzaklık Seç:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "Uzaklık Seç:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Gelişmiş" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Etkin" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21676,16 +21753,6 @@ msgstr "Yatay Yansıt" msgid "Max Speed" msgstr "Hız:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "Uzaklık Seç:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Etkin" - #: scene/2d/navigation_agent_2d.cpp #, fuzzy msgid "" @@ -22941,6 +23008,13 @@ msgstr "" msgid "Transform Normals" msgstr "Dönüşüm Durduruldu." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25125,6 +25199,11 @@ msgstr "Dosya:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Yalnızca Seçim" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Etkin" @@ -25536,18 +25615,6 @@ msgstr "Dışa aktarım Yolu" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Bu görüntükapısı bir işleyici hedefi olarak ayarlanmamış. Eğer bunu doğrudan " -"ekran içeriğini görüntülemek için düşünüyorsanız, bir Control'ün çocuğu " -"yapın böylece bir boyut elde edebilir. Aksi takdirde, Görüntüleme için bunu " -"bir RenderTarget yap ve dahili dokusunu herhangi bir düğüme ata." - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -25555,6 +25622,15 @@ msgstr "" "pikselden büyük ya da buna eşit olmalıdır." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27324,6 +27400,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "AABB Üretimi" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Kaydırma:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/uk.po b/editor/translations/uk.po index 6d96ccc30b..4d22a47dea 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -23,13 +23,14 @@ # Wald Sin <naaveranos@gmail.com>, 2022. # Гліб Соколов <ramithes@i.ua>, 2022. # Max Donchenko <maxx.donchenko@gmail.com>, 2022. +# Artem <artem@molotov.work>, 2022. msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-12 13:19+0000\n" -"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" +"PO-Revision-Date: 2022-07-03 00:44+0000\n" +"Last-Translator: Artem <artem@molotov.work>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" "Language: uk\n" @@ -38,7 +39,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -378,14 +379,12 @@ msgid "Max Size (KB)" msgstr "Макс. розмір (кБ)" #: core/os/input.cpp -#, fuzzy msgid "Mouse Mode" -msgstr "Режим переміщення" +msgstr "Режим миші" #: core/os/input.cpp -#, fuzzy msgid "Use Accumulated Input" -msgstr "Видалити введення" +msgstr "Використати накопичувальне введення" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: servers/audio_server.cpp @@ -412,6 +411,11 @@ msgstr "Meta" msgid "Command" msgstr "Команда" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (фізичний)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -662,14 +666,12 @@ msgid "Script Templates Search Path" msgstr "Шлях пошуку для шаблонів скриптів" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Autoload On Startup" -msgstr "Автоматично завантажувати під час запуску" +msgstr "Автоматичне завантаження керування версіями під час запуску" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Plugin Name" -msgstr "Керування версіями" +msgstr "Назва додатка керування версіями" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2186,7 +2188,7 @@ msgstr "Відкрити" #: editor/dependency_editor.cpp msgid "Owners of: %s (Total: %d)" -msgstr "" +msgstr "Власник: %s (Загалом: %d)" #: editor/dependency_editor.cpp msgid "" @@ -2746,22 +2748,19 @@ msgstr "Оберіть" #: editor/editor_export.cpp msgid "Project export for platform:" -msgstr "" +msgstr "Експортування проєкту для платформи:" #: editor/editor_export.cpp -#, fuzzy msgid "Completed with errors." -msgstr "Повні шляхи до файлів" +msgstr "Завершено з помилками." #: editor/editor_export.cpp -#, fuzzy msgid "Completed successfully." -msgstr "Пакунок успішно встановлено!" +msgstr "Завершено успішно." #: editor/editor_export.cpp -#, fuzzy msgid "Failed." -msgstr "Не вдалося:" +msgstr "Помилка." #: editor/editor_export.cpp msgid "Storing File:" @@ -2776,29 +2775,24 @@ msgid "Packing" msgstr "Пакування" #: editor/editor_export.cpp -#, fuzzy msgid "Save PCK" -msgstr "Зберегти як" +msgstr "Зберегти PCK" #: editor/editor_export.cpp -#, fuzzy msgid "Cannot create file \"%s\"." -msgstr "Неможливо створити теку." +msgstr "Не вдалося створити файл «%s»." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to export project files." -msgstr "Не вдалося експортувати файли проєкту" +msgstr "Не вдалося експортувати файли проєкту." #: editor/editor_export.cpp -#, fuzzy msgid "Can't open file to read from path \"%s\"." -msgstr "Неможливо відкрити файл для запису:" +msgstr "Не вдалося відкрити файл для читання зі шляху «%s»." #: editor/editor_export.cpp -#, fuzzy msgid "Save ZIP" -msgstr "Зберегти як" +msgstr "Зберегти ZIP" #: editor/editor_export.cpp msgid "" @@ -2918,30 +2912,25 @@ msgid "Custom release template not found." msgstr "Нетипового шаблону випуску не знайдено." #: editor/editor_export.cpp -#, fuzzy msgid "Prepare Template" -msgstr "Керування шаблонами" +msgstr "Приготувати шаблон" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "The given export path doesn't exist." -msgstr "Вказаного шляху для експортування не існує:" +msgstr "Вказаного шляху для експортування не існує." #: editor/editor_export.cpp platform/javascript/export/export.cpp -#, fuzzy msgid "Template file not found: \"%s\"." -msgstr "Файл шаблону не знайдено:" +msgstr "Не знайдено файла шаблона: «%s»." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to copy export template." -msgstr "Неправильний шаблон експорту:" +msgstr "Не вдалося скопіювати шаблон експортування." #: editor/editor_export.cpp platform/windows/export/export.cpp #: platform/x11/export/export.cpp -#, fuzzy msgid "PCK Embedding" -msgstr "Фаска" +msgstr "Вбудовування PCK" #: editor/editor_export.cpp msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." @@ -5216,9 +5205,8 @@ msgstr "" "меню «Експорт» або визначне наявний набір як придатний до використання." #: editor/editor_run_native.cpp -#, fuzzy msgid "Project Run" -msgstr "Проєкт" +msgstr "Запуск проєкту" #: editor/editor_run_script.cpp msgid "Write your logic in the _run() method." @@ -5502,6 +5490,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "Додаткові кнопки миші для навігації журналом" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Вибір GridMap" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "Вигляд" @@ -7156,12 +7149,18 @@ 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: виявлено текстуру, як використано як нормальну карту у просторовій " +"формі. Вмикаємо стискання червоно-зеленої текстури для зменшення споживання " +"пам'яті (канал синього відкинуто)." #: editor/import/resource_importer_texture.cpp msgid "" "%s: Texture detected as used in 3D. Enabling filter, repeat, mipmap " "generation and VRAM texture compression." msgstr "" +"%s: виявлено, що текстуру використано у просторовій формі. Вмикаємо " +"фільтрування, повторення, створення множинного відтворення та стискання " +"текстур у відеопам'яті." #: editor/import/resource_importer_texture.cpp msgid "2D, Detect 3D" @@ -7841,11 +7840,20 @@ msgid "New Anim" msgstr "Нова анімація" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Створити нову анімацію" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Змінити ім'я анімації:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Перейменувати анімацію" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Видалити анімацію?" @@ -7863,11 +7871,6 @@ msgid "Animation name already exists!" msgstr "Анімація із такою назвою вже існує!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Перейменувати анімацію" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Дублювати анімацію" @@ -8011,10 +8014,6 @@ msgid "Pin AnimationPlayer" msgstr "Пришпилити AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Створити нову анімацію" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Назва анімації:" @@ -11504,9 +11503,8 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "Некоректна геометрія, неможливо замінити сіткою." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Convert to MeshInstance2D" -msgstr "Перетворити на Mesh2D" +msgstr "Перетворити на MeshInstance2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create polygon." @@ -12875,14 +12873,12 @@ msgid "Selected Collision" msgstr "Позначене зіткнення" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Selected Collision One Way" -msgstr "Тільки виділити" +msgstr "Позначене односпрямоване зіткнення" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Selected Collision One Way Margin" -msgstr "Поле зіткнення BVH" +msgstr "Поле позначеного односпрямованого зіткнення" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Selected Navigation" @@ -14142,9 +14138,8 @@ msgid "Export templates for this platform are missing:" msgstr "Немає шаблонів експортування для цієї платформи:" #: editor/project_export.cpp -#, fuzzy msgid "Project Export" -msgstr "Засновники проєкту" +msgstr "Експортування проєкту" #: editor/project_export.cpp msgid "Manage Export Templates" @@ -16705,7 +16700,7 @@ msgstr "Копіювати вузол шляху" #: modules/gdscript/gdscript.cpp modules/visual_script/visual_script.cpp msgid "Max Call Stack" -msgstr "" +msgstr "Максимум стеку викликів" #: modules/gdscript/gdscript.cpp msgid "Treat Warnings As Errors" @@ -16815,11 +16810,11 @@ msgstr "Кількість розсіювання" #: modules/gltf/gltf_accessor.cpp msgid "Sparse Indices Buffer View" -msgstr "" +msgstr "Перегляд буфера розріджених індексів" #: modules/gltf/gltf_accessor.cpp msgid "Sparse Indices Byte Offset" -msgstr "" +msgstr "Байтовий зсув розріджених індексів" #: modules/gltf/gltf_accessor.cpp msgid "Sparse Indices Component Type" @@ -18362,6 +18357,11 @@ msgid "The package must have at least one '.' separator." msgstr "У назві пакунка має бути принаймні один роздільник «.»." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Нетипова збірка" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "Нетипова збірка" @@ -18369,6 +18369,14 @@ msgstr "Нетипова збірка" msgid "Export Format" msgstr "Формат експортування" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "Мін. SDK" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "SDK призначення" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18406,14 +18414,6 @@ msgstr "Вилучити попередньо встановлене" msgid "Code" msgstr "Код" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "Мін. SDK" - -#: platform/android/export/export_plugin.cpp -msgid "Target SDK" -msgstr "SDK призначення" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "Пакунок" @@ -18651,15 +18651,17 @@ msgstr "" "«Використовувати нетипову збірку»." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "«Стеженням за руками» можна скористатися, лише якщо «Режим Xr» дорівнює " "«Oculus Mobile VR» або «OpenXR»." #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +#, fuzzy +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "«Стеженням за руками» можна скористатися, лише якщо «Режим Xr» дорівнює " "«OpenXR»." @@ -18671,22 +18673,45 @@ msgstr "" "нетипове збирання»." #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Пункт «Мін. SDK» є чинним, лише якщо увімкнено «Використовувати нетипове " "збирання»." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "" "Пункт «SDK цілі» є чинним, лише якщо увімкнено «Використовувати нетипове " "збирання»." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "Версія «SDK цілі» має бути більшою або рівною за версію «Мін. SDK»." #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -19029,7 +19054,7 @@ msgstr "Опис використання мікрофона" #: platform/iphone/export/export.cpp msgid "Photolibrary Usage Description" -msgstr "Опис використання бібліотеки фотографій" +msgstr "Опис використання бібліотеки світлин" #: platform/iphone/export/export.cpp msgid "iPhone 120 X 120" @@ -19349,7 +19374,7 @@ msgstr "Опис використання календаря" #: platform/osx/export/export.cpp msgid "Photos Library Usage Description" -msgstr "Опис використання бібліотеки фотографій" +msgstr "Опис використання бібліотеки світлин" #: platform/osx/export/export.cpp msgid "Desktop Folder Usage Description" @@ -19430,7 +19455,7 @@ msgstr "Календарі" #: platform/osx/export/export.cpp msgid "Photos Library" -msgstr "Бібліотека фотографій" +msgstr "Бібліотека світлин" #: platform/osx/export/export.cpp msgid "Apple Events" @@ -19815,7 +19840,7 @@ msgid "" "Privacy: Photo library access is enabled, but usage description is not " "specified." msgstr "" -"Конфіденційність: увімкнено доступ до бібліотеки фотографій, але опис " +"Конфіденційність: увімкнено доступ до бібліотеки світлин, але опис " "використання не вказано." #: platform/osx/export/export.cpp @@ -20348,7 +20373,7 @@ msgstr "Масштаб" msgid "Custom Viewport" msgstr "1 панель перегляду" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -21027,11 +21052,42 @@ msgstr "Розмір комірки" msgid "Edge Connection Margin" msgstr "Поле з'єднання ребер" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Палітурка" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "U-відстань контуру" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Max Distance" +msgstr "Макс. відстань контуру" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Додатково" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Приховування увімкнено" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21047,15 +21103,6 @@ msgstr "Віддзеркалити горизонтально" msgid "Max Speed" msgstr "Макс. швидкість" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "Макс. відстань контуру" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Приховування увімкнено" - #: scene/2d/navigation_agent_2d.cpp #, fuzzy msgid "" @@ -22187,6 +22234,13 @@ msgstr "" msgid "Transform Normals" msgstr "Перетворити нормалі" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "Вектор" @@ -24161,6 +24215,11 @@ msgid "Fold Gutter" msgstr "Міжстовпцевий проміжок згортання" #: scene/gui/text_edit.cpp +#, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Увімкнено позначення" + +#: scene/gui/text_edit.cpp msgid "Hiding Enabled" msgstr "Приховування увімкнено" @@ -24519,18 +24578,6 @@ msgstr "Шлях до панелі перегляду" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"Ця панель показу не є ціллю обробки зображення. Якщо ви хочете, щоб її вміст " -"було безпосередньо показано на екрані, зробіть її дочірньою для вузла " -"Control, щоб у неї був розмір. Крім того, можна зробити її RenderTarget і " -"пов'язати її внутрішню текстуру з одним із вузлів для показу." - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "" @@ -24538,6 +24585,15 @@ msgstr "" "або рівним 2 пікселям в обох вимірах." #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "ARVR" @@ -26093,6 +26149,16 @@ msgstr "Розміри планки" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Створення AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Базове зміщення" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index 79cb7b84e2..e1bae41d6b 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -408,6 +408,11 @@ msgstr "" msgid "Command" msgstr "کمیونٹی" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "سب سکریپشن بنائیں" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5407,6 +5412,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr ".تمام کا انتخاب" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -7799,11 +7809,20 @@ msgid "New Anim" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "" @@ -7821,11 +7840,6 @@ msgid "Animation name already exists!" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -7969,10 +7983,6 @@ msgid "Pin AnimationPlayer" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -18373,6 +18383,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "ایکشن منتقل کریں" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18381,6 +18396,16 @@ msgstr "" msgid "Export Format" msgstr "سب سکریپشن بنائیں" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "سب سکریپشن بنائیں" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr ".اینیمیشن کی کیز کو ڈیلیٹ کرو" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -18417,16 +18442,6 @@ msgstr "" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "سب سکریپشن بنائیں" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr ".اینیمیشن کی کیز کو ڈیلیٹ کرو" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18663,12 +18678,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -18677,17 +18692,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20272,7 +20307,7 @@ msgstr "" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -20963,34 +20998,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr ".تمام کا انتخاب" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "مستقل" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "ایک مینو منظر چنیں" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "سب سکریپشن بنائیں" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "سب سکریپشن بنائیں" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "سب سکریپشن بنائیں" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22114,6 +22171,13 @@ msgstr "" msgid "Transform Normals" msgstr "سب سکریپشن بنائیں" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "" @@ -24083,6 +24147,11 @@ msgstr "" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr ".تمام کا انتخاب" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "سب سکریپشن بنائیں" @@ -24462,16 +24531,17 @@ msgstr "" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -26143,6 +26213,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr ".تمام کا انتخاب" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/vi.po b/editor/translations/vi.po index a16d75a4bc..c8eae36ad6 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -412,6 +412,11 @@ msgstr "Meta" msgid "Command" msgstr "Command" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "Vật lí" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5492,6 +5497,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "Chọn tất cả" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "Ngoại hình" @@ -7953,11 +7963,20 @@ msgid "New Anim" msgstr "Hoạt ảnh mới" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "Tạo Hoạt ảnh mới" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "Đổi tên Hoạt ảnh:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "Đổi tên hoạt hình" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "Xoá hoạt hình?" @@ -7975,11 +7994,6 @@ msgid "Animation name already exists!" msgstr "Tên Hoạt ảnh đã tồn tại!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "Đổi tên hoạt hình" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "Nhân đôi hoạt hình" @@ -8124,10 +8138,6 @@ msgid "Pin AnimationPlayer" msgstr "Ghim AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "Tạo Hoạt ảnh mới" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "Tên hoạt hình:" @@ -18786,6 +18796,11 @@ msgid "The package must have at least one '.' separator." msgstr "Kí tự phân cách '.' phải xuất hiện ít nhất một lần trong tên gói." #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "Cắt các nút" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18794,6 +18809,16 @@ msgstr "" msgid "Export Format" msgstr "Đường dẫn xuất" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "Kích cỡ viền:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "Bề mặt mục tiêu:" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18836,16 +18861,6 @@ msgstr "Cửa sổ trước" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "Kích cỡ viền:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "Bề mặt mục tiêu:" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19092,7 +19107,7 @@ msgstr "\"Sử dụng Bản dựng tùy chỉnh\" phải được bật để s #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "\"Theo dõi chuyển động tay\" chỉ dùng được khi \"Xr Mode\" là \"Oculus " @@ -19100,7 +19115,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" "\"Theo dõi chuyển động tay\" chỉ dùng được khi \"Xr Mode\" là \"Oculus " "Mobile VR\"." @@ -19113,20 +19128,40 @@ msgstr "" #: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden 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." #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp #, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden 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." #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20810,7 +20845,7 @@ msgstr "Phóng to" msgid "Custom Viewport" msgstr "1 Cổng xem" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21559,11 +21594,42 @@ msgstr "" msgid "Edge Connection Margin" msgstr "Chỉnh sửa kết nối:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Đệm" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "Chọn ô" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Max Distance" +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "Nâng cao" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "Mở" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21581,15 +21647,6 @@ msgstr "Lật Ngang" msgid "Max Speed" msgstr "Tốc độ:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "Mở" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -22819,6 +22876,13 @@ msgstr "" msgid "Transform Normals" msgstr "Hủy Biến đổi." +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24935,6 +24999,11 @@ msgstr "Thư mục:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "Chỉ chọn" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "Mở" @@ -25339,16 +25408,17 @@ msgstr "Đường dẫn xuất" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." msgstr "" #: scene/main/viewport.cpp msgid "" -"The Viewport size must be greater than or equal to 2 pixels on both " -"dimensions to render anything." +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." msgstr "" #: scene/main/viewport.cpp @@ -27106,6 +27176,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "Đang sinh AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "Độ dời:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index ea23349421..976fe38138 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -89,7 +89,7 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2022-06-19 11:52+0000\n" +"PO-Revision-Date: 2022-06-30 16:42+0000\n" "Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" @@ -466,6 +466,11 @@ msgstr "Meta" msgid "Command" msgstr "Command" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (物理)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -716,14 +721,12 @@ msgid "Script Templates Search Path" msgstr "脚本模板搜索路径" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Autoload On Startup" -msgstr "启动时自动加载" +msgstr "启动时自动加载版本控制" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Plugin Name" -msgstr "版本控制" +msgstr "版本控制插件名" #: core/project_settings.cpp scene/2d/collision_object_2d.cpp #: scene/3d/collision_object.cpp scene/gui/control.cpp @@ -2788,7 +2791,6 @@ msgid "Completed with errors." msgstr "已完成,存在错误。" #: editor/editor_export.cpp -#, fuzzy msgid "Completed successfully." msgstr "成功完成。" @@ -5434,6 +5436,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "使用专门鼠标按键查看历史" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "GridMap 选择" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "外观" @@ -7738,11 +7745,20 @@ msgid "New Anim" msgstr "新建动画" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "创建新动画" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "修改动画名称:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "重命名动画" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "是否删除动画?" @@ -7760,11 +7776,6 @@ msgid "Animation name already exists!" msgstr "动画名称已存在!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "重命名动画" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "复制动画" @@ -7907,10 +7918,6 @@ msgid "Pin AnimationPlayer" msgstr "固定 AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "创建新动画" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "动画名称:" @@ -18068,6 +18075,11 @@ msgid "The package must have at least one '.' separator." msgstr "包必须至少有一个 “.” 分隔符。" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "使用自定义构建" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "使用自定义构建" @@ -18075,6 +18087,14 @@ msgstr "使用自定义构建" msgid "Export Format" msgstr "导出格式" +#: platform/android/export/export_plugin.cpp +msgid "Min SDK" +msgstr "最小 SDK" + +#: platform/android/export/export_plugin.cpp +msgid "Target SDK" +msgstr "目标 SDK" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "架构" @@ -18111,14 +18131,6 @@ msgstr "清除上次安装" msgid "Code" msgstr "代码" -#: platform/android/export/export_plugin.cpp -msgid "Min SDK" -msgstr "最小 SDK" - -#: platform/android/export/export_plugin.cpp -msgid "Target SDK" -msgstr "目标 SDK" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Package" msgstr "包" @@ -18340,14 +18352,14 @@ msgstr "必须启用 “使用自定义构建” 才能使用插件。" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" -"“Hand Tracking”只有在当“Xr Mode”是“Oculus Mobile VrApi”或“OpenXR”时才有效。" +"“Hand Tracking”只有在当“XR Mode”是“Oculus Mobile VrApi”或“OpenXR”时才有效。" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." -msgstr "“Passthrough”只有在当“Xr Mode”是“OpenXR”时才有效。" +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." +msgstr "“Passthrough”只有在当“XR Mode”是“OpenXR”时才有效。" #: platform/android/export/export_plugin.cpp msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." @@ -18355,18 +18367,38 @@ msgstr "“Export AAB”只有在当启用“Use Custom Build”时才有效。" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." -msgstr "修改“Min Sdk”只有在当启用“Use Custom Build”时才有效。" +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "修改“Min SDK”只有在当启用“Use Custom Build”时才有效。" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "修改“Target SDK”只有在当启用“Use Custom Build”时才有效。" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." -msgstr "修改“Target Sdk”只有在当启用“Use Custom Build”时才有效。" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." -msgstr "“Target Sdk”版本必须大于等于“Min Sdk”版本。" +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." +msgstr "“Target SDK”版本必须大于等于“Min SDK”版本。" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp #: platform/windows/export/export.cpp @@ -19897,7 +19929,7 @@ msgstr "缩放" msgid "Custom Viewport" msgstr "自定义视区" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp msgid "Process Mode" @@ -20564,11 +20596,42 @@ msgstr "单元格大小" msgid "Edge Connection Margin" msgstr "边界连接边距" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" +"“Navigation2D”节点和“Navigation2D.get_simple_path()”已废弃,会在将来的版本中" +"移除。请用“Navigation2DServer.map_get_path()”替代。" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "绑定" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Desired Distance" +msgstr "路径期望距离" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "目标期望距离" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Path Max Distance" +msgstr "路径最大距离" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "高级" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Avoidance Enabled" +msgstr "启用避障" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "邻接距离" @@ -20584,14 +20647,6 @@ msgstr "时间下限" msgid "Max Speed" msgstr "最大速度" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" -msgstr "路径最大距离" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Avoidance Enabled" -msgstr "启用避障" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -21684,6 +21739,15 @@ msgstr "软件蒙皮" msgid "Transform Normals" msgstr "变换法线" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" +"“Navigation”节点和“Navigation.get_simple_path()”已废弃,会在将来的版本中移" +"除。请用“NavigationServer.map_get_path()”替代。" + #: scene/3d/navigation.cpp scene/resources/curve.cpp msgid "Up Vector" msgstr "上向量" @@ -23587,6 +23651,11 @@ msgid "Fold Gutter" msgstr "折叠栏" #: scene/gui/text_edit.cpp +#, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "启用选择" + +#: scene/gui/text_edit.cpp msgid "Hiding Enabled" msgstr "启用隐藏" @@ -23943,22 +24012,20 @@ msgstr "Viewport 路径" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"这个视窗未被设置为渲染目标。如果你想让其直接在屏幕上显示内容,请使其成为 " -"Control 的子节点,这样一来该 Viewport 才会有大小。否则请为其设置 " -"RenderTarget 并分配其内部纹理来显示。" - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "Viewport 的宽高都大于等于 2 像素时才能进行渲染。" #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "ARVR" @@ -25465,6 +25532,14 @@ msgstr "凸台范围" msgid "Walkable Low Height Spans" msgstr "可行走低高度范围" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "烘焙 AABB" + +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB Offset" +msgstr "烘焙 AABB 偏移" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "球体" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 01c72c6ee1..201811d543 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -417,6 +417,11 @@ msgstr "" msgid "Command" msgstr "社群" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr "物理幀 %" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5663,6 +5668,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "刪除選中檔案" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "" @@ -8183,11 +8193,20 @@ msgid "New Anim" msgstr "新增動畫" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "更改動畫名稱:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "重新命名動畫" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "刪除動畫?" @@ -8207,11 +8226,6 @@ msgid "Animation name already exists!" msgstr "錯誤:動畫名稱已存在!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "重新命名動畫" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "" @@ -8363,10 +8377,6 @@ msgid "Pin AnimationPlayer" msgstr "貼上動畫" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "" @@ -19119,6 +19129,11 @@ msgid "The package must have at least one '.' separator." msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "貼上" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -19127,6 +19142,16 @@ msgstr "" msgid "Export Format" msgstr "匯出" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "下一個腳本" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "目標" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp msgid "Architectures" msgstr "" @@ -19165,16 +19190,6 @@ msgstr "上一個tab" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "下一個腳本" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "目標" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19419,12 +19434,12 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -19433,17 +19448,37 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" #: platform/android/export/export_plugin.cpp msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." msgstr "" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -21095,7 +21130,7 @@ msgstr "放大" msgid "Custom Viewport" msgstr "" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21801,34 +21836,56 @@ msgstr "" msgid "Edge Connection Margin" msgstr "編輯連接" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "貼上動畫" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "選擇主場景" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Neighbor Dist" +msgid "Path Max Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Neighbors" -msgstr "" +#, fuzzy +msgid "Avoidance" +msgstr "進階" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, fuzzy +msgid "Avoidance Enabled" +msgstr "啟用" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +msgid "Neighbor Dist" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Max Speed" +msgid "Max Neighbors" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Path Max Distance" +msgid "Time Horizon" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "啟用" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -22988,6 +23045,13 @@ msgstr "" msgid "Transform Normals" msgstr "縮放selection" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -25042,6 +25106,11 @@ msgstr "資料夾:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "只限選中" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "啟用" @@ -25435,14 +25504,6 @@ msgid "Viewport Path" msgstr "匯出" #: scene/main/viewport.cpp -msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" - -#: scene/main/viewport.cpp #, fuzzy msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " @@ -25450,6 +25511,15 @@ msgid "" msgstr "viewport大小必須大於0以渲染任何東西。" #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27170,6 +27240,15 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +msgid "Baking AABB" +msgstr "" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "移除選項" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index be888529cc..9021c16fc8 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -434,6 +434,11 @@ msgstr "Meta" msgid "Command" msgstr "Command" +#: core/os/input_event.cpp +#, fuzzy +msgid "Physical" +msgstr " (物理)" + #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5585,6 +5590,11 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "滑鼠額外按鍵操作歷史紀錄" #: editor/editor_settings.cpp +#, fuzzy +msgid "Drag And Drop Selection" +msgstr "選擇網格地圖" + +#: editor/editor_settings.cpp msgid "Appearance" msgstr "外觀" @@ -8040,11 +8050,20 @@ msgid "New Anim" msgstr "新增動畫" #: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "建立新動畫" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" msgstr "更改動畫名稱:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "重新命名動畫" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" msgstr "是否刪除動畫?" @@ -8062,11 +8081,6 @@ msgid "Animation name already exists!" msgstr "動畫名稱已存在!" #: editor/plugins/animation_player_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Rename Animation" -msgstr "重新命名動畫" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" msgstr "重複動畫" @@ -8210,10 +8224,6 @@ msgid "Pin AnimationPlayer" msgstr "固定 AnimationPlayer" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Create New Animation" -msgstr "建立新動畫" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" msgstr "動畫名稱:" @@ -18704,6 +18714,11 @@ msgid "The package must have at least one '.' separator." msgstr "套件必須至少有一個「.」分隔字元。" #: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Custom Build" +msgstr "剪下節點" + +#: platform/android/export/export_plugin.cpp msgid "Use Custom Build" msgstr "" @@ -18712,6 +18727,16 @@ msgstr "" msgid "Export Format" msgstr "匯出路徑" +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Min SDK" +msgstr "輪廓尺寸:" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "Target SDK" +msgstr "目標" + #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp #, fuzzy msgid "Architectures" @@ -18754,16 +18779,6 @@ msgstr "偵查前一個實體" msgid "Code" msgstr "" -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Min SDK" -msgstr "輪廓尺寸:" - -#: platform/android/export/export_plugin.cpp -#, fuzzy -msgid "Target SDK" -msgstr "目標" - #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -19003,15 +19018,17 @@ msgid "\"Use Custom Build\" must be enabled to use the plugins." msgstr "「使用自定建置」必須啟用以使用本外掛。" #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." msgstr "" "「Hand Tracking」(手部追蹤)僅可在「Xr Mode」(XR 模式)設為「Oculus Mobile " "VR」或「OpenXR」時可用。" #: platform/android/export/export_plugin.cpp -msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +#, fuzzy +msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "「Passthrough」僅可在「Xr Mode」(XR 模式)設為「OpenXR」時可用。" #: platform/android/export/export_plugin.cpp @@ -19019,18 +19036,41 @@ msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." msgstr "「Export AAB」僅於「Use Custom Build」啟用時可用。" #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +"\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "對「Min Sdk」的修改僅在「Use Custom Build」啟用時有效。" #: platform/android/export/export_plugin.cpp +msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Min SDK\" cannot be lower than %d, which is the version needed by the " +"Godot library." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy msgid "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." msgstr "對「Target Sdk」的修改僅於「Use Custom Build」啟用時有效。" #: platform/android/export/export_plugin.cpp -msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgid "" +"\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" %d is higher than the default version %d. This may work, but " +"wasn't tested and may be unstable." +msgstr "" + +#: platform/android/export/export_plugin.cpp +#, fuzzy +msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "「Target Sdk」版本必須高於或于「Min Sdk」版本一致。" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp @@ -20711,7 +20751,7 @@ msgstr "放大" msgid "Custom Viewport" msgstr "1 個檢視區" -#: scene/2d/camera_2d.cpp scene/3d/camera.cpp +#: scene/2d/camera_2d.cpp scene/3d/camera.cpp scene/3d/interpolated_camera.cpp #: scene/animation/animation_player.cpp scene/animation/animation_tree.cpp #: scene/animation/animation_tree_player.cpp scene/main/timer.cpp #, fuzzy @@ -21463,11 +21503,43 @@ msgstr "" msgid "Edge Connection Margin" msgstr "編輯連接內容:" +#: scene/2d/navigation_2d.cpp +msgid "" +"'Navigation2D' node and 'Navigation2D.get_simple_path()' are deprecated and " +"will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " +"instead." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "綁定" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Desired Distance" +msgstr "選擇距離:" + #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Path Max Distance" +msgstr "選擇距離:" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance" +msgstr "進階" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Avoidance Enabled" +msgstr "啟用" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" msgstr "" @@ -21485,16 +21557,6 @@ msgstr "水平翻轉" msgid "Max Speed" msgstr "速度:" -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Path Max Distance" -msgstr "選擇距離:" - -#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy -msgid "Avoidance Enabled" -msgstr "啟用" - #: scene/2d/navigation_agent_2d.cpp msgid "" "The NavigationAgent2D can be used only under a Node2D inheriting parent node." @@ -22720,6 +22782,13 @@ msgstr "" msgid "Transform Normals" msgstr "已中止變換。" +#: scene/3d/navigation.cpp +msgid "" +"'Navigation' node and 'Navigation.get_simple_path()' are deprecated and will " +"be removed in a future version. Use 'NavigationServer.map_get_path()' " +"instead." +msgstr "" + #: scene/3d/navigation.cpp scene/resources/curve.cpp #, fuzzy msgid "Up Vector" @@ -24884,6 +24953,11 @@ msgstr "資料夾:" #: scene/gui/text_edit.cpp #, fuzzy +msgid "Drag And Drop Selection Enabled" +msgstr "僅搜尋所選區域" + +#: scene/gui/text_edit.cpp +#, fuzzy msgid "Hiding Enabled" msgstr "啟用" @@ -25294,22 +25368,20 @@ msgstr "匯出路徑" #: scene/main/viewport.cpp msgid "" -"This viewport is not set as render target. If you intend for it to display " -"its contents directly to the screen, make it a child of a Control so it can " -"obtain a size. Otherwise, make it a RenderTarget and assign its internal " -"texture to some node for display." -msgstr "" -"該 Viewport 尚未被設定為算繪目標。若你想直接將其內容顯示於畫面上,請將其設為 " -"Control 的子節點以讓其取得大小。否則請將其設為 RenderTarget 並指派其內部紋理" -"為其他節點以顯示。" - -#: scene/main/viewport.cpp -msgid "" "The Viewport size must be greater than or equal to 2 pixels on both " "dimensions to render anything." msgstr "Viewport長與寬必須皆大於或等於2像素才可進行算繪。" #: scene/main/viewport.cpp +msgid "" +"This Viewport has HDR enabled, but its Usage is set to 2D or 2D No-" +"Sampling.\n" +"HDR is only supported in Viewports that have their Usage set to 3D or 3D No-" +"Effects.\n" +"HDR will be disabled for this Viewport." +msgstr "" + +#: scene/main/viewport.cpp msgid "ARVR" msgstr "" @@ -27081,6 +27153,16 @@ msgstr "" msgid "Walkable Low Height Spans" msgstr "" +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB" +msgstr "正在產生 AABB" + +#: scene/resources/navigation_mesh.cpp +#, fuzzy +msgid "Baking AABB Offset" +msgstr "偏移:" + #: scene/resources/occluder_shape.cpp msgid "Spheres" msgstr "" |