diff options
Diffstat (limited to 'editor')
182 files changed, 8256 insertions, 5523 deletions
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 272de725c8..50abe8bc36 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -1636,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")); @@ -1862,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 31c169a0fb..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(); 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 408d6af022..f8b82ecc51 100644 --- a/editor/debugger/script_editor_debugger.cpp +++ b/editor/debugger/script_editor_debugger.cpp @@ -1422,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()); @@ -1430,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 9a1b2b5ff5..aa03b7e252 100644 --- a/editor/dependency_editor.cpp +++ b/editor/dependency_editor.cpp @@ -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 af1345b205..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: @@ -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_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 32bcdd35d8..086a3ad028 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -125,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; @@ -183,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; @@ -274,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); } @@ -282,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 } @@ -412,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; } @@ -611,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); @@ -625,7 +628,7 @@ 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); @@ -692,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; @@ -718,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 @@ -743,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; } @@ -856,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]); @@ -976,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); @@ -1018,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); @@ -1048,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); @@ -1079,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]); @@ -1105,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)) { @@ -1151,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); @@ -1236,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)); @@ -1255,6 +1262,112 @@ 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)); @@ -1501,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 7f91a8102d..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; 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 2bf0cd2f20..1711b23547 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -39,6 +39,7 @@ #include "editor/editor_property_name_processor.h" #include "editor/editor_scale.h" #include "editor/editor_settings.h" +#include "editor/plugins/script_editor_plugin.h" #include "multi_node_edit.h" #include "scene/gui/center_container.h" #include "scene/property_utils.h" @@ -322,7 +323,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); @@ -410,6 +411,10 @@ StringName EditorProperty::get_edited_property() const { return property; } +void EditorProperty::set_doc_path(const String &p_doc_path) { + doc_path = p_doc_path; +} + void EditorProperty::update_property() { GDVIRTUAL_CALL(_update_property); } @@ -906,6 +911,10 @@ void EditorProperty::menu_option(int p_option) { emit_signal(SNAME("property_pinned"), property, !pinned); update(); } break; + case MENU_OPEN_DOCUMENTATION: { + ScriptEditor::get_singleton()->goto_help(doc_path); + EditorNode::get_singleton()->set_visible_editor(EditorNode::EDITOR_SCRIPT); + } break; } } @@ -985,20 +994,25 @@ void EditorProperty::_update_popup() { add_child(menu); menu->connect("id_pressed", callable_mp(this, &EditorProperty::menu_option)); } - menu->add_shortcut(ED_GET_SHORTCUT("property_editor/copy_property"), MENU_COPY_PROPERTY); - menu->add_shortcut(ED_GET_SHORTCUT("property_editor/paste_property"), MENU_PASTE_PROPERTY); - menu->add_shortcut(ED_GET_SHORTCUT("property_editor/copy_property_path"), MENU_COPY_PROPERTY_PATH); + menu->add_icon_shortcut(get_theme_icon(SNAME("ActionCopy"), SNAME("EditorIcons")), ED_GET_SHORTCUT("property_editor/copy_property"), MENU_COPY_PROPERTY); + menu->add_icon_shortcut(get_theme_icon(SNAME("ActionPaste"), SNAME("EditorIcons")), ED_GET_SHORTCUT("property_editor/paste_property"), MENU_PASTE_PROPERTY); + menu->add_icon_shortcut(get_theme_icon(SNAME("CopyNodePath"), SNAME("EditorIcons")), ED_GET_SHORTCUT("property_editor/copy_property_path"), MENU_COPY_PROPERTY_PATH); menu->set_item_disabled(MENU_PASTE_PROPERTY, is_read_only()); if (!pin_hidden) { menu->add_separator(); if (can_pin) { - menu->add_check_item(TTR("Pin value"), MENU_PIN_VALUE); + menu->add_icon_check_item(get_theme_icon(SNAME("Pin"), SNAME("EditorIcons")), TTR("Pin Value"), MENU_PIN_VALUE); menu->set_item_checked(menu->get_item_index(MENU_PIN_VALUE), pinned); - menu->set_item_tooltip(menu->get_item_index(MENU_PIN_VALUE), TTR("Pinning a value forces it to be saved even if it's equal to the default.")); } else { - menu->add_check_item(vformat(TTR("Pin value [Disabled because '%s' is editor-only]"), property), MENU_PIN_VALUE); + menu->add_icon_check_item(get_theme_icon(SNAME("Pin"), SNAME("EditorIcons")), vformat(TTR("Pin Value [Disabled because '%s' is editor-only]"), property), MENU_PIN_VALUE); menu->set_item_disabled(menu->get_item_index(MENU_PIN_VALUE), true); } + menu->set_item_tooltip(menu->get_item_index(MENU_PIN_VALUE), TTR("Pinning a value forces it to be saved even if it's equal to the default.")); + } + + if (!doc_path.is_empty()) { + menu->add_separator(); + menu->add_icon_item(get_theme_icon(SNAME("Help"), SNAME("EditorIcons")), TTR("Open Documentation"), MENU_OPEN_DOCUMENTATION); } } @@ -1087,7 +1101,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(); } @@ -2844,7 +2858,7 @@ void EditorInspector::update_tree() { restart_request_props.insert(p.name); } - String doc_hint; + PropertyDocInfo doc_info; if (use_doc_hints) { // Build the doc hint, to use as tooltip. @@ -2856,16 +2870,15 @@ void EditorInspector::update_tree() { } StringName propname = property_prefix + p.name; - String descr; bool found = false; // Search for the property description in the cache. - HashMap<StringName, HashMap<StringName, String>>::Iterator E = descr_cache.find(classname); + HashMap<StringName, HashMap<StringName, PropertyDocInfo>>::Iterator E = doc_info_cache.find(classname); if (E) { - HashMap<StringName, String>::Iterator F = E->value.find(propname); + HashMap<StringName, PropertyDocInfo>::Iterator F = E->value.find(propname); if (F) { found = true; - descr = F->value; + doc_info = F->value; } } @@ -2873,10 +2886,11 @@ void EditorInspector::update_tree() { // Build the property description String and add it to the cache. DocTools *dd = EditorHelp::get_doc_data(); HashMap<String, DocData::ClassDoc>::Iterator F = dd->class_list.find(classname); - while (F && descr.is_empty()) { + while (F && doc_info.description.is_empty()) { for (int i = 0; i < F->value.properties.size(); i++) { if (F->value.properties[i].name == propname.operator String()) { - descr = DTR(F->value.properties[i].description); + doc_info.description = DTR(F->value.properties[i].description); + doc_info.path = "class_property:" + F->value.name + ":" + F->value.properties[i].name; break; } } @@ -2885,7 +2899,8 @@ void EditorInspector::update_tree() { if (slices.size() == 2 && slices[0].begins_with("theme_override_")) { for (int i = 0; i < F->value.theme_properties.size(); i++) { if (F->value.theme_properties[i].name == slices[1]) { - descr = DTR(F->value.theme_properties[i].description); + doc_info.description = DTR(F->value.theme_properties[i].description); + doc_info.path = "class_theme_item:" + F->value.name + ":" + F->value.theme_properties[i].name; break; } } @@ -2897,10 +2912,9 @@ void EditorInspector::update_tree() { break; } } - descr_cache[classname][propname] = descr; - } - doc_hint = descr; + doc_info_cache[classname][propname] = doc_info; + } } Vector<EditorInspectorPlugin::AddedEditor> editors; @@ -2983,11 +2997,12 @@ void EditorInspector::update_tree() { ep->connect("multiple_properties_changed", callable_mp(this, &EditorInspector::_multiple_properties_changed)); ep->connect("resource_selected", callable_mp(this, &EditorInspector::_resource_selected), varray(), CONNECT_DEFERRED); ep->connect("object_id_selected", callable_mp(this, &EditorInspector::_object_id_selected), varray(), CONNECT_DEFERRED); - if (!doc_hint.is_empty()) { - ep->set_tooltip(property_prefix + p.name + "::" + doc_hint); + if (!doc_info.description.is_empty()) { + ep->set_tooltip(property_prefix + p.name + "::" + doc_info.description); } else { ep->set_tooltip(property_prefix + p.name); } + ep->set_doc_path(doc_info.path); ep->update_property(); ep->_update_pin_flags(); ep->update_revert_and_pin_status(); @@ -3429,6 +3444,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(); @@ -3472,7 +3488,7 @@ void EditorInspector::_property_pinned(const String &p_path, bool p_pinned) { void EditorInspector::_property_selected(const String &p_path, int p_focusable) { property_selected = p_path; property_focusable = p_focusable; - //deselect the others + // Deselect the others. for (const KeyValue<StringName, List<EditorProperty *>> &F : editor_property_map) { if (F.key == property_selected) { continue; @@ -3780,7 +3796,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 d70d06c48b..9542f102cb 100644 --- a/editor/editor_inspector.h +++ b/editor/editor_inspector.h @@ -62,6 +62,7 @@ public: MENU_PASTE_PROPERTY, MENU_COPY_PROPERTY_PATH, MENU_PIN_VALUE, + MENU_OPEN_DOCUMENTATION, }; private: @@ -71,6 +72,7 @@ private: Object *object = nullptr; StringName property; String property_path; + String doc_path; int property_usage; @@ -148,6 +150,8 @@ public: Object *get_edited_object(); StringName get_edited_property() const; + void set_doc_path(const String &p_doc_path); + virtual void update_property(); void update_revert_and_pin_status(); @@ -439,7 +443,7 @@ class EditorInspector : public ScrollContainer { VBoxContainer *main_vbox = nullptr; - //map use to cache the instantiated editors + // Map used to cache the instantiated editors. HashMap<StringName, List<EditorProperty *>> editor_property_map; List<EditorInspectorSection *> sections; HashSet<StringName> pending; @@ -473,7 +477,12 @@ class EditorInspector : public ScrollContainer { int property_focusable; int update_scroll_request; - HashMap<StringName, HashMap<StringName, String>> descr_cache; + struct PropertyDocInfo { + String description; + String path; + }; + + HashMap<StringName, HashMap<StringName, PropertyDocInfo>> doc_info_cache; HashMap<StringName, String> class_descr_cache; HashSet<StringName> restart_request_props; 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_node.cpp b/editor/editor_node.cpp index 7697bbfdf4..abe431221c 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -146,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" @@ -165,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" @@ -187,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" @@ -1261,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. @@ -2334,6 +2332,13 @@ void EditorNode::_run(bool p_current, const String &p_custom) { return; } + play_button->set_pressed(false); + play_button->set_icon(gui_base->get_theme_icon(SNAME("MainPlay"), SNAME("EditorIcons"))); + play_scene_button->set_pressed(false); + play_scene_button->set_icon(gui_base->get_theme_icon(SNAME("PlayScene"), SNAME("EditorIcons"))); + 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")) { @@ -2348,13 +2353,6 @@ void EditorNode::_run(bool p_current, const String &p_custom) { } } - play_button->set_pressed(false); - play_button->set_icon(gui_base->get_theme_icon(SNAME("MainPlay"), SNAME("EditorIcons"))); - play_scene_button->set_pressed(false); - play_scene_button->set_icon(gui_base->get_theme_icon(SNAME("PlayScene"), SNAME("EditorIcons"))); - play_custom_scene_button->set_pressed(false); - play_custom_scene_button->set_icon(gui_base->get_theme_icon(SNAME("PlayCustom"), SNAME("EditorIcons"))); - 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())) { @@ -2473,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(); @@ -2543,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(); @@ -2619,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()) { @@ -2662,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; @@ -2718,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(); @@ -2794,9 +2792,6 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { case RUN_SETTINGS: { project_settings_editor->popup_project_settings(); } break; - case RUN_WRITE_MOVIE: { - _update_write_movie_icon(); - } break; case FILE_INSTALL_ANDROID_SOURCE: { if (p_confirmed) { export_template_manager->install_android_template(); @@ -2843,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(); @@ -2908,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(); @@ -4048,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; @@ -4279,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(); } @@ -4958,22 +4951,14 @@ String EditorNode::get_run_playing_scene() const { return run_filename; } -void EditorNode::_update_write_movie_icon() { - if (write_movie_button->is_pressed()) { - write_movie_button->set_icon(gui_base->get_theme_icon(SNAME("MainMovieWriteEnabled"), SNAME("EditorIcons"))); - } else { - write_movie_button->set_icon(gui_base->get_theme_icon(SNAME("MainMovieWrite"), SNAME("EditorIcons"))); - } -} - void EditorNode::_immediate_dialog_confirmed() { immediate_dialog_confirmed = true; } 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); @@ -5035,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; @@ -5084,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 { @@ -5406,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); @@ -6138,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)); @@ -6734,15 +6717,12 @@ EditorNode::EditorNode() { 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->connect("pressed", callable_mp(this, &EditorNode::_menu_option), make_binds(RUN_WRITE_MOVIE)); 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.")); - // Restore these values to something more useful so it ignores the theme - write_movie_button->add_theme_color_override("icon_normal_color", Color(1, 1, 1, 0.4)); - write_movie_button->add_theme_color_override("icon_pressed_color", Color(1, 1, 1, 1)); - write_movie_button->add_theme_color_override("icon_hover_color", Color(1.2, 1.2, 1.2, 0.4)); - write_movie_button->add_theme_color_override("icon_hover_pressed_color", Color(1.2, 1.2, 1.2, 1)); - write_movie_button->add_theme_color_override("icon_focus_color", Color(1, 1, 1, 1)); - write_movie_button->add_theme_color_override("icon_disabled_color", Color(1, 1, 1, 0.4)); + + // 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); @@ -6789,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); @@ -6958,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); @@ -6973,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); @@ -6990,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); @@ -7054,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)); @@ -7072,12 +7052,10 @@ 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. 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)."); } // Add interface before adding plugins. @@ -7125,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)); @@ -7140,7 +7117,6 @@ 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)); @@ -7232,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)); @@ -7273,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 c327a73ce9..07d565314d 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -173,7 +173,6 @@ private: RUN_PLAY_CUSTOM_SCENE, RUN_SETTINGS, RUN_USER_DATA_FOLDER, - RUN_WRITE_MOVIE, RELOAD_CURRENT_PROJECT, RUN_PROJECT_MANAGER, RUN_VCS_METADATA, @@ -669,7 +668,6 @@ private: void _pick_main_scene_custom_action(const String &p_custom_action_name); void _immediate_dialog_confirmed(); - void _update_write_movie_icon(); 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 6a035225e5..aaa518362c 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -836,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)); @@ -3010,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); } diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp index f1a3fe0c57..0b9004bbc4 100644 --- a/editor/editor_properties_array_dict.cpp +++ b/editor/editor_properties_array_dict.cpp @@ -211,7 +211,14 @@ void EditorPropertyArray::update_property() { String array_type_name = Variant::get_type_name(array_type); if (array_type == Variant::ARRAY && subtype != Variant::NIL) { - array_type_name = vformat("%s[%s]", array_type_name, Variant::get_type_name(subtype)); + String type_name; + if (subtype == Variant::OBJECT && subtype_hint == PROPERTY_HINT_RESOURCE_TYPE) { + type_name = subtype_hint_string; + } else { + type_name = Variant::get_type_name(subtype); + } + + array_type_name = vformat("%s[%s]", array_type_name, type_name); } if (array.get_type() == Variant::NIL) { 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_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 fbdc1c0a0c..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") 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 f23f0cf758..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); diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index 82c1d278b7..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 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 2d6ec0c63a..fe6e6044a4 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -3145,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)); @@ -3155,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)); @@ -3171,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)); 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/CopyNodePath.svg b/editor/icons/CopyNodePath.svg index 1adec4ade3..12d03843e0 100644 --- a/editor/icons/CopyNodePath.svg +++ b/editor/icons/CopyNodePath.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)"><circle cx="3" cy="1048.4"/><path d="m2 1c-.55226.0001-.99994.4477-1 1v12c.0000552.5523.44774.9999 1 1h12c.55226-.0001.99994-.4477 1-1v-8l-5-5zm1 2h6v3c0 .554.44599 1 1 1h3v6h-10zm3 5-2 4h2l2-4zm4 0-2 4h2l2-4z" fill-opacity=".78431" transform="translate(0 1036.4)"/></g></svg> +<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)"><circle cx="3" cy="1048.4"/><path d="m2 1c-.55226.0001-.99994.4477-1 1v12c.0000552.5523.44774.9999 1 1h12c.55226-.0001.99994-.4477 1-1v-8l-5-5zm1 2h6v3c0 .554.44599 1 1 1h3v6h-10zm3 5-2 4h2l2-4zm4 0-2 4h2l2-4z" transform="translate(0 1036.4)"/></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/MainMovieWriteEnabled.svg b/editor/icons/MainMovieWriteEnabled.svg deleted file mode 100644 index b12ea38bed..0000000000 --- a/editor/icons/MainMovieWriteEnabled.svg +++ /dev/null @@ -1 +0,0 @@ -<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" style="fill:#ee5353;fill-opacity:1"/></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/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 a9c43e573f..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(); } @@ -1972,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(); @@ -1997,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 c143e86bd4..b77c1dccb4 100644 --- a/editor/import/resource_importer_scene.h +++ b/editor/import/resource_importer_scene.h @@ -281,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 e5fe99890e..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; } @@ -308,9 +302,7 @@ Error ResourceImporterTextureAtlas::import_group_file(const String &p_group_file Ref<Texture2D> cache; cache = ResourceCache::get_ref(p_group_file); if (!cache.is_valid()) { - Ref<ImageTexture> res_cache; - res_cache.instantiate(); - res_cache->create_from_image(new_atlas); + 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/scene_import_settings.cpp b/editor/import/scene_import_settings.cpp index 8ae05f046e..0e2967dc42 100644 --- a/editor/import/scene_import_settings.cpp +++ b/editor/import/scene_import_settings.cpp @@ -542,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); @@ -593,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(); @@ -1059,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) { @@ -1112,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) { @@ -1158,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; } @@ -1347,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); @@ -1382,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_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 e5ca5d66e8..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"))); @@ -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 00cc5a6ca0..05d7a5f973 100644 --- a/editor/plugins/animation_state_machine_editor.cpp +++ b/editor/plugins/animation_state_machine_editor.cpp @@ -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 57c7f34018..bc95624dd5 100644 --- a/editor/plugins/asset_library_editor_plugin.cpp +++ b/editor/plugins/asset_library_editor_plugin.cpp @@ -165,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 { @@ -312,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")); } /////////////////////////////////////////////////////////////////////////////////// @@ -790,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; @@ -1300,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); } @@ -1591,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)); 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/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index 22788913d4..7e525a4698 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -2677,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); @@ -2749,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)); } } @@ -2970,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)); @@ -2994,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); @@ -3020,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; @@ -3055,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 { @@ -3611,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); 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 654c92c532..66e58339ed 100644 --- a/editor/plugins/curve_editor_plugin.cpp +++ b/editor/plugins/curve_editor_plugin.cpp @@ -841,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/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/font_editor_plugin.h b/editor/plugins/font_editor_plugin.h deleted file mode 100644 index 3f0700d880..0000000000 --- a/editor/plugins/font_editor_plugin.h +++ /dev/null @@ -1,77 +0,0 @@ -/*************************************************************************/ -/* font_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 FONT_EDITOR_PLUGIN_H -#define FONT_EDITOR_PLUGIN_H - -#include "editor/editor_plugin.h" -#include "scene/resources/font.h" -#include "scene/resources/text_line.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); - -public: - FontEditorPlugin(); - - virtual String get_name() const override { return "Font"; } -}; - -#endif // FONT_EDITOR_PLUGIN_H 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/gradient_texture_2d_editor_plugin.cpp b/editor/plugins/gradient_texture_2d_editor_plugin.cpp index e97c611e96..df45d6c290 100644 --- a/editor/plugins/gradient_texture_2d_editor_plugin.cpp +++ b/editor/plugins/gradient_texture_2d_editor_plugin.cpp @@ -117,17 +117,15 @@ void GradientTexture2DEditorRect::_notification(int p_what) { const Ref<Texture2D> fill_to_icon = get_theme_icon(SNAME("EditorPathSharpHandle"), SNAME("EditorIcons")); handle_size = fill_from_icon->get_size(); - const int MAX_HEIGHT = 250 * EDSCALE; Size2 rect_size = get_size(); // Get the size and position to draw the texture and handles at. - size = Size2(texture->get_width() * MAX_HEIGHT / texture->get_height(), MAX_HEIGHT); + size = Size2(texture->get_width() * rect_size.height / texture->get_height(), rect_size.height); if (size.width > rect_size.width) { size.width = rect_size.width; - size.height = texture->get_height() * rect_size.width / texture->get_width(); + size.height = texture->get_height() * size.width / texture->get_width(); } - offset = Point2(Math::round((rect_size.width - size.width) / 2), 0) + handle_size / 2; - set_custom_minimum_size(Size2(0, size.height)); + offset = ((rect_size - size + handle_size) / 2).round(); size -= handle_size; checkerboard->set_rect(Rect2(offset, size)); @@ -183,6 +181,8 @@ GradientTexture2DEditorRect::GradientTexture2DEditorRect() { checkerboard->set_stretch_mode(TextureRect::STRETCH_TILE); checkerboard->set_draw_behind_parent(true); add_child(checkerboard); + + set_custom_minimum_size(Size2(0, 250 * EDSCALE)); } /////////////////////// 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_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 8d62d0a20d..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() { @@ -4702,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); 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/ot_features_plugin.h b/editor/plugins/ot_features_plugin.h deleted file mode 100644 index 6639148080..0000000000 --- a/editor/plugins/ot_features_plugin.h +++ /dev/null @@ -1,102 +0,0 @@ -/*************************************************************************/ -/* ot_features_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 "editor/editor_plugin.h" -#include "editor/editor_properties.h" - -/*************************************************************************/ - -class OpenTypeFeaturesEditor : public EditorProperty { - GDCLASS(OpenTypeFeaturesEditor, EditorProperty); - EditorSpinSlider *spin = nullptr; - bool setting = true; - void _value_changed(double p_val); - Button *button = nullptr; - - void _remove_feature(); - -protected: - void _notification(int p_what); - static void _bind_methods(); - -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(); - -protected: - void _notification(int p_what); - static void _bind_methods(); - -public: - void setup(Object *p_object); - - OpenTypeFeaturesAdd(); -}; - -/*************************************************************************/ - -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(); - - virtual String get_name() const override { return "OpenTypeFeatures"; } -}; - -#endif // OT_FEATURES_PLUGIN_H 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 7d4ffd1a25..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; @@ -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_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 468681c967..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); } } @@ -1727,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); } } } @@ -1918,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); } } } diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp index 37ccc6ad45..deffa48615 100644 --- a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp +++ b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp @@ -2405,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 9ed3b72587..654ebf4573 100644 --- a/editor/project_converter_3_to_4.cpp +++ b/editor/project_converter_3_to_4.cpp @@ -1253,7 +1253,7 @@ static const char *class_renames[][2] = { { "AudioStreamRandomPitch", "AudioStreamRandomizer" }, { "BakedLightmap", "LightmapGI" }, { "BakedLightmapData", "LightmapGIData" }, - { "BitmapFont", "Font" }, + { "BitmapFont", "FontFile" }, { "BoneAttachment", "BoneAttachment3D" }, { "BoxShape", "BoxShape3D" }, { "CPUParticles", "CPUParticles3D" }, @@ -1279,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" }, 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 49a3cbe185..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()) { @@ -2797,15 +2795,15 @@ ProjectManager::ProjectManager() { 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)."); } { // 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); @@ -2818,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); @@ -2838,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); @@ -2870,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 1524993bd0..49707355a0 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -685,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); diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp index d936e821df..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(); 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 4938699fc4..4f7f9fc78c 100644 --- a/editor/quick_open.cpp +++ b/editor/quick_open.cpp @@ -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 index 64aea54c5f..6a35b22210 100644 --- a/editor/scene_create_dialog.cpp +++ b/editor/scene_create_dialog.cpp @@ -76,7 +76,7 @@ void SceneCreateDialog::accept_create() { void SceneCreateDialog::browse_types() { select_node_dialog->popup_create(true); select_node_dialog->set_title(TTR("Pick Root Node Type")); - select_node_dialog->get_ok_button()->set_text(TTR("Pick")); + select_node_dialog->set_ok_button_text(TTR("Pick")); } void SceneCreateDialog::on_type_picked() { diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index 2e1090e6c0..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; @@ -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/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 00c05287a1..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21355,6 +21390,11 @@ 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" @@ -21363,29 +21403,34 @@ 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 "" @@ -24563,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" @@ -24947,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 diff --git a/editor/translations/ar.po b/editor/translations/ar.po index f449036b53..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-29 10:04+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" @@ -447,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 @@ -5592,6 +5598,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 "المظهر" @@ -9672,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 @@ -10748,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" @@ -18844,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 "" @@ -18852,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" @@ -18895,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" @@ -19164,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 " @@ -19172,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\"." @@ -19186,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\"." @@ -20874,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 @@ -21655,6 +21692,11 @@ 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 "اختر المسافة:" @@ -21663,6 +21705,21 @@ 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 "" @@ -21680,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." @@ -25122,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 "تفعيل" @@ -25525,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 " @@ -25543,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 "" diff --git a/editor/translations/az.po b/editor/translations/az.po index f8d5d96a7e..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 "" @@ -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 "" +"\"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 @@ -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" @@ -20529,6 +20564,10 @@ msgid "" 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 #, fuzzy msgid "Path Desired Distance" msgstr "Quraşdır" @@ -20538,29 +20577,34 @@ 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 "Qabaqcıl" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, 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 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 "Siqnalları filtirlə" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -23636,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ə" @@ -24002,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 diff --git a/editor/translations/bg.po b/editor/translations/bg.po index aa0fac6038..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 "" @@ -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 "" +"\"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“." @@ -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 @@ -21081,6 +21119,11 @@ 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 "Изберете главна сцена" @@ -21089,6 +21132,20 @@ 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 "" @@ -21106,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." @@ -24391,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 "Включване" @@ -24788,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 diff --git a/editor/translations/bn.po b/editor/translations/bn.po index b3c338168c..0e99518ac1 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -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 "" @@ -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 "" -"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 @@ -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 @@ -22535,6 +22570,11 @@ 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 "ইন্সট্যান্স:" @@ -22543,6 +22583,21 @@ 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 "" @@ -22559,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." @@ -25926,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 "সক্রিয় করুন" @@ -26327,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 diff --git a/editor/translations/br.po b/editor/translations/br.po index c5d979fe2f..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 "" @@ -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" @@ -20311,6 +20345,10 @@ msgid "" 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 "" @@ -20319,29 +20357,34 @@ 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 "Aktivañ ar Roudenn" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, 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 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 "Aktivañ ar Roudenn" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -23379,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" @@ -23737,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 diff --git a/editor/translations/ca.po b/editor/translations/ca.po index 1e1ec84901..c9726505d3 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -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 @@ -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 "" @@ -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 "" +"\"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 @@ -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 @@ -22001,6 +22036,11 @@ 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:" @@ -22009,6 +22049,21 @@ 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 "" @@ -22026,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." @@ -25451,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" @@ -25858,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 diff --git a/editor/translations/cs.po b/editor/translations/cs.po index ade3299077..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 "" @@ -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 @@ -21736,6 +21771,11 @@ 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:" @@ -21744,6 +21784,21 @@ 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 "" @@ -21761,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." @@ -25180,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" @@ -25585,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 " @@ -25605,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 "" diff --git a/editor/translations/da.po b/editor/translations/da.po index 168f98fbf1..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21875,6 +21910,11 @@ 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" @@ -21883,29 +21923,34 @@ 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 "" @@ -25177,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" @@ -25572,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 diff --git a/editor/translations/de.po b/editor/translations/de.po index 61cfb48184..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-26 16:16+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" @@ -465,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 @@ -5555,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" @@ -18439,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" @@ -18446,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" @@ -18482,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" @@ -18728,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." @@ -18745,22 +18762,45 @@ 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." @@ -20354,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" @@ -21048,17 +21088,37 @@ msgid "" "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 Zieldistanz" +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" @@ -21074,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." @@ -22217,6 +22269,9 @@ msgid "" "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" @@ -24158,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" @@ -24518,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 "" @@ -24538,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" @@ -26045,14 +26101,12 @@ msgid "Walkable Low Height Spans" msgstr "Ablaufbare Abstände niedriger Höhe" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Baking AABB" -msgstr "Erzeuge AABB" +msgstr "Backe AABB" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Baking AABB Offset" -msgstr "Grundversatz" +msgstr "Backe AABB-Versatz" #: scene/resources/occluder_shape.cpp msgid "Spheres" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index 2682db8c4b..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 "" @@ -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" @@ -20122,6 +20154,10 @@ msgid "" 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 "" @@ -20130,27 +20166,31 @@ 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 @@ -23074,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 "" @@ -23425,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 diff --git a/editor/translations/el.po b/editor/translations/el.po index 21f118d442..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 "" @@ -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 "" -"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 @@ -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 @@ -21914,6 +21949,11 @@ 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 "Επιλογή απόστασης:" @@ -21922,6 +21962,21 @@ 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 "" @@ -21939,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." @@ -25376,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 "Ενεργοποίηση" @@ -25781,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 " @@ -25802,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 "" diff --git a/editor/translations/en_Shaw.po b/editor/translations/en_Shaw.po index bf2aa9d387..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 "" @@ -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" @@ -20224,6 +20258,10 @@ msgid "" 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 "" @@ -20232,29 +20270,34 @@ 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 "" @@ -23269,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 "𐑑𐑪𐑜𐑩𐑤 𐑑𐑮𐑨𐑒 𐑦𐑯𐑱𐑚𐑩𐑤𐑛" @@ -23626,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 diff --git a/editor/translations/eo.po b/editor/translations/eo.po index 27aeb13ce0..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21513,6 +21548,11 @@ 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" @@ -21521,29 +21561,34 @@ 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 "" @@ -24822,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" @@ -25224,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 diff --git a/editor/translations/es.po b/editor/translations/es.po index 41b1e32779..febff41060 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -466,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 @@ -5561,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" @@ -18697,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 "" @@ -18705,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" @@ -18748,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" @@ -19013,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 @@ -19030,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\"." @@ -20755,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 @@ -21521,6 +21561,11 @@ 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" @@ -21529,6 +21574,20 @@ 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 "" @@ -21545,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 "" @@ -24941,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" @@ -25342,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 "" @@ -25362,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 "" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index aa0a7c6258..eeea3a9922 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -413,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 @@ -5630,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 "" @@ -18901,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 "" @@ -18909,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" @@ -18952,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" @@ -19213,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 @@ -19230,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\"." @@ -20984,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 @@ -21762,6 +21802,11 @@ 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:" @@ -21770,6 +21815,21 @@ 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 "" @@ -21786,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." @@ -25190,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" @@ -25602,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 "" @@ -25621,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 "" diff --git a/editor/translations/et.po b/editor/translations/et.po index f90543b559..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 "" @@ -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 "" +"\"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 @@ -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 @@ -20951,6 +20986,11 @@ 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" @@ -20959,29 +20999,34 @@ 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 "" @@ -24170,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" @@ -24556,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 " @@ -24571,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 "" diff --git a/editor/translations/eu.po b/editor/translations/eu.po index 9ffd16f336..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 "" @@ -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 "" +"\"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 @@ -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 @@ -20729,6 +20763,11 @@ 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" @@ -20737,29 +20776,34 @@ 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 "" @@ -23887,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" @@ -24266,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 diff --git a/editor/translations/fa.po b/editor/translations/fa.po index 0b7bd8cdb1..ae8a37388a 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -441,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 @@ -5535,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 "" @@ -19006,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 "" @@ -19014,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 "" @@ -19052,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" @@ -19306,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 @@ -19320,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 @@ -20980,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 @@ -21714,6 +21749,11 @@ 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 "نصب کردن" @@ -21722,29 +21762,34 @@ 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 "" @@ -25012,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 "روشن" @@ -25408,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 diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 24d8fd66ab..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 "" @@ -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 "" -"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\" 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 @@ -21766,6 +21806,11 @@ 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:" @@ -21774,6 +21819,21 @@ 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 "" @@ -21791,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 "" @@ -25260,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" @@ -25672,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 "" @@ -25691,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 "" diff --git a/editor/translations/fil.po b/editor/translations/fil.po index 822a23a9b9..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 "" @@ -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 "" +"\"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 @@ -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" @@ -20383,6 +20417,10 @@ msgid "" 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 "" @@ -20391,29 +20429,34 @@ 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 "Binuksan ang V-Sync" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, 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 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 "Binuksan ang V-Sync" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -23426,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 "" @@ -23786,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 diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 5711d32f52..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. @@ -99,13 +98,14 @@ # 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-06-29 10:04+0000\n" -"Last-Translator: DinosaurHorseSword <ewenlandry@mailfence.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" @@ -375,7 +375,7 @@ msgstr "" #: core/io/stream_peer.cpp msgid "Big Endian" -msgstr "" +msgstr "Gros-boutiste" #: core/io/stream_peer.cpp msgid "Data Array" @@ -483,6 +483,11 @@ msgstr "Méta" 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 @@ -927,7 +932,7 @@ msgstr "" #: core/register_core_types.cpp msgid "TCP" -msgstr "PCT (Protocole de Contrôle de Transmissions)" +msgstr "TCP" #: core/register_core_types.cpp msgid "Connect Timeout Seconds" @@ -5667,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 "" @@ -18914,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 "" @@ -18922,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" @@ -18965,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" @@ -19012,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 @@ -19226,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." @@ -19246,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 "" -"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 "" -"Changer « Target Sdk » est valide uniquement lorsque l'option « Use Custom " + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." +msgstr "" +"Changer « Target SDK » est valide uniquement lorsque l'option « Use Custom " "Build » est activée." #: 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 "" -"La version « Target Sdk » doit être supérieure ou égale à la version « Min " -"Sdk »." +"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 @@ -20976,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 @@ -21747,6 +21778,11 @@ 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 :" @@ -21755,6 +21791,21 @@ 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 "" @@ -21772,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 "" @@ -22876,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 @@ -25226,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" @@ -25627,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 "" @@ -25646,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 "" @@ -27098,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" diff --git a/editor/translations/ga.po b/editor/translations/ga.po index 04e014ed77..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 "" @@ -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 "" -"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 @@ -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" @@ -20339,6 +20373,10 @@ msgid "" 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 "" @@ -20347,29 +20385,34 @@ 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 "Scagairí..." #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, 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 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 "Scagairí..." +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -23391,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í..." @@ -23752,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 diff --git a/editor/translations/gl.po b/editor/translations/gl.po index 27b15829fa..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21524,6 +21559,11 @@ 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" @@ -21532,6 +21572,20 @@ 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 "" @@ -21549,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." @@ -24887,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" @@ -25283,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 " @@ -25304,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 "" diff --git a/editor/translations/he.po b/editor/translations/he.po index 22cf33ba52..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21685,6 +21720,11 @@ 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 "בחירת מרחק:" @@ -21693,6 +21733,21 @@ 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 "" @@ -21709,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." @@ -25074,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 "הפעלה" @@ -25476,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 " @@ -25494,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 "" diff --git a/editor/translations/hi.po b/editor/translations/hi.po index a14fd36f4a..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21247,6 +21282,11 @@ 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 "एक मुख्य दृश्य चुनें" @@ -21255,29 +21295,34 @@ 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 "" @@ -24471,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 "सक्रिय करे" @@ -24865,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 diff --git a/editor/translations/hr.po b/editor/translations/hr.po index 9a3dabefb3..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 "" @@ -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 "" +"\"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 @@ -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" @@ -20728,6 +20763,11 @@ 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" @@ -20736,29 +20776,34 @@ 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 "" @@ -23883,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" @@ -24260,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 diff --git a/editor/translations/hu.po b/editor/translations/hu.po index 62f30698a3..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 "" @@ -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 "" -"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 @@ -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 @@ -21476,6 +21511,11 @@ 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" @@ -21484,29 +21524,34 @@ 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 "" @@ -24797,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" @@ -25199,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 diff --git a/editor/translations/id.po b/editor/translations/id.po index 4d71521032..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" @@ -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 @@ -21627,6 +21663,11 @@ 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" @@ -21635,6 +21676,21 @@ 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 "" @@ -21651,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 "" @@ -25037,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" @@ -25443,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 " @@ -25463,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 "" diff --git a/editor/translations/is.po b/editor/translations/is.po index 105220c71e..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 "" @@ -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 "" -"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 @@ -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" @@ -20625,6 +20659,10 @@ msgid "" 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 "" @@ -20633,29 +20671,34 @@ 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 "Fjarlægja val" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -msgid "Time Horizon" +#, 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 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 "Fjarlægja val" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -23706,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 "" @@ -24077,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 diff --git a/editor/translations/it.po b/editor/translations/it.po index 074bb4259d..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-26 16:16+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" @@ -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 @@ -20584,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 @@ -20641,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 @@ -20958,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 @@ -20969,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 @@ -20982,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 @@ -21009,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 @@ -21368,6 +21403,11 @@ 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:" @@ -21376,6 +21416,21 @@ 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 "" @@ -21393,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." @@ -21866,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 @@ -22129,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" @@ -22270,8 +22318,9 @@ msgid "Projection" msgstr "Proiezione" #: scene/3d/camera.cpp +#, fuzzy msgid "FOV" -msgstr "" +msgstr "FOV" #: scene/3d/camera.cpp #, fuzzy @@ -22284,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 @@ -22470,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 @@ -22622,8 +22673,9 @@ msgid "Depth Range" msgstr "Profondità" #: scene/3d/light.cpp +#, fuzzy msgid "Omni" -msgstr "" +msgstr "Omni" #: scene/3d/light.cpp #, fuzzy @@ -23363,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 @@ -23607,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 @@ -23729,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 @@ -24041,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 @@ -24827,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" @@ -25234,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 "" @@ -25254,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 "" diff --git a/editor/translations/ja.po b/editor/translations/ja.po index a699aeb597..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 "外観" @@ -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 "" -"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\" の変更は \"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" @@ -21441,6 +21481,11 @@ 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 "距離を取得:" @@ -21449,6 +21494,21 @@ 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 "" @@ -21466,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 "" @@ -24919,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 "有効" @@ -25327,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" diff --git a/editor/translations/ka.po b/editor/translations/ka.po index caf07e1063..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21119,6 +21154,11 @@ 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 "დაყენება" @@ -21127,29 +21167,34 @@ 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 "" @@ -24305,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 "დამაკავშირებელი სიგნალი:" @@ -24687,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 diff --git a/editor/translations/km.po b/editor/translations/km.po index b58578c50d..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 "" @@ -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" @@ -20184,6 +20217,10 @@ msgid "" 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 "" @@ -20192,27 +20229,31 @@ 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 @@ -23152,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 "" @@ -23504,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 diff --git a/editor/translations/ko.po b/editor/translations/ko.po index fb4bf92e30..8800745e09 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -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 @@ -5468,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 "모습" @@ -18634,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 "" @@ -18642,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" @@ -18684,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" @@ -18940,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\"일 때만 사용 가능합니다." @@ -18958,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 @@ -20653,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 @@ -21418,6 +21453,11 @@ 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 "거리 선택:" @@ -21426,6 +21466,21 @@ 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 "" @@ -21443,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." @@ -24875,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 "활성화" @@ -25285,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" diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 350bcb0352..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21143,6 +21178,11 @@ 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" @@ -21151,29 +21191,34 @@ 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 "" @@ -24339,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" @@ -24722,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 diff --git a/editor/translations/lv.po b/editor/translations/lv.po index c80bd29122..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 "" @@ -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 "" +"\"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 @@ -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 @@ -20967,6 +21002,11 @@ 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" @@ -20975,29 +21015,34 @@ 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 "" @@ -24206,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" @@ -24599,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 diff --git a/editor/translations/mk.po b/editor/translations/mk.po index 5c3bfc87ff..b35fce0168 100644 --- a/editor/translations/mk.po +++ b/editor/translations/mk.po @@ -389,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 @@ -5274,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 "" @@ -17759,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 "" @@ -17766,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 "" @@ -17802,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 "" @@ -18031,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 @@ -18045,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 "" -"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 @@ -19568,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" @@ -20236,6 +20268,10 @@ msgid "" 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 "" @@ -20244,27 +20280,31 @@ 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 @@ -23217,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 "" @@ -23571,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 diff --git a/editor/translations/ml.po b/editor/translations/ml.po index 7b247d8f78..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 "" @@ -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" @@ -20279,6 +20312,10 @@ msgid "" 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 "" @@ -20287,27 +20324,31 @@ 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 @@ -23295,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 "" @@ -23650,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 diff --git a/editor/translations/mr.po b/editor/translations/mr.po index d7aa4bd1aa..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 "" @@ -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" @@ -20292,6 +20325,10 @@ msgid "" 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 "" @@ -20300,29 +20337,34 @@ 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 "" @@ -23322,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 "" @@ -23678,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 diff --git a/editor/translations/ms.po b/editor/translations/ms.po index b297eb52a3..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21176,6 +21211,11 @@ 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" @@ -21184,29 +21224,34 @@ 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 "" @@ -24450,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" @@ -24847,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 diff --git a/editor/translations/nb.po b/editor/translations/nb.po index a545e4fc83..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 "" @@ -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 "" +"\"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 @@ -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 @@ -22024,6 +22059,11 @@ 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" @@ -22032,6 +22072,20 @@ 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 "" @@ -22049,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." @@ -25366,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" @@ -25769,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 diff --git a/editor/translations/nl.po b/editor/translations/nl.po index 32d57b08b9..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 "" @@ -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 @@ -21944,6 +21979,11 @@ 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:" @@ -21952,6 +21992,21 @@ 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 "" @@ -21969,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 "" @@ -25395,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" @@ -25801,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 " @@ -25821,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 "" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index e174b8a673..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" @@ -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 @@ -21717,6 +21757,11 @@ 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ść:" @@ -21725,6 +21770,21 @@ 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 "" @@ -21742,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 "" @@ -23582,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" @@ -25209,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" @@ -25545,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 @@ -25620,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 "" @@ -25639,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 "" @@ -26730,7 +26780,7 @@ msgstr "Warunek" #: scene/resources/environment.cpp msgid "Fog" -msgstr "" +msgstr "Mgła" #: scene/resources/environment.cpp #, fuzzy @@ -26912,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 diff --git a/editor/translations/pr.po b/editor/translations/pr.po index f60daf2f7b..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21184,6 +21219,11 @@ 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" @@ -21192,29 +21232,34 @@ 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 "" @@ -24349,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" @@ -24731,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 diff --git a/editor/translations/pt.po b/editor/translations/pt.po index 7db8765ae3..edbc6971fb 100644 --- a/editor/translations/pt.po +++ b/editor/translations/pt.po @@ -407,6 +407,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 @@ -5528,6 +5533,11 @@ msgid "Mouse Extra Buttons Navigate History" 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 "Aparência" @@ -18620,6 +18630,11 @@ 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 "Usar Compilação Personalizada" @@ -18628,6 +18643,16 @@ msgstr "Usar Compilação Personalizada" 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" @@ -18671,16 +18696,6 @@ msgstr "Inspecionar instância anterior" msgid "Code" msgstr "Código" -#: 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/uwp/export/export.cpp #, fuzzy msgid "Package" @@ -18936,15 +18951,17 @@ 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 @@ -18952,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 "" -"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 "" "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\"." @@ -20640,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 @@ -21412,6 +21452,11 @@ 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:" @@ -21420,6 +21465,21 @@ 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 "" @@ -21437,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 "" @@ -24886,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" @@ -25298,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 "" @@ -25317,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 "" diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index 230c927086..41301db983 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -523,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 @@ -5654,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 "" @@ -18844,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" @@ -18852,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" @@ -18895,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" @@ -19155,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\"." @@ -19173,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\"." @@ -20848,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 @@ -21605,6 +21645,11 @@ 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" @@ -21613,6 +21658,20 @@ 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 "" @@ -21629,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." @@ -25011,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" @@ -25420,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 "" @@ -25440,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 "" diff --git a/editor/translations/ro.po b/editor/translations/ro.po index ddc340697c..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 "" @@ -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 "" -"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 @@ -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 @@ -21697,6 +21732,11 @@ 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ă" @@ -21705,29 +21745,34 @@ 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 "" @@ -25004,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" @@ -25406,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 diff --git a/editor/translations/ru.po b/editor/translations/ru.po index 755683fdf0..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 "Внешний вид" @@ -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 "" -"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» действительно только если включён параметр " "«Использовать пользовательскую сборку»." #: 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 @@ -21293,6 +21334,11 @@ 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" @@ -21301,6 +21347,21 @@ 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 "" @@ -21317,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 "" @@ -24704,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 "Включить" @@ -25105,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 "" @@ -25125,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 "" @@ -26894,7 +26946,7 @@ msgstr "Передвинуть точки" #: scene/resources/packed_scene.cpp msgid "Bundled" -msgstr "" +msgstr "Вложенный" #: scene/resources/particles_material.cpp msgid "Trail" @@ -27947,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" @@ -27967,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" @@ -28003,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 2e5042392f..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 "" @@ -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" @@ -20515,6 +20548,10 @@ msgid "" 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 "" @@ -20523,29 +20560,34 @@ 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 "" @@ -23611,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 "" @@ -23981,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 diff --git a/editor/translations/sk.po b/editor/translations/sk.po index 9e18f67b73..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21627,6 +21662,11 @@ 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" @@ -21635,29 +21675,34 @@ 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 "" @@ -24931,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ť" @@ -25331,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 diff --git a/editor/translations/sl.po b/editor/translations/sl.po index b796c872f7..43eb784a39 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -404,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 @@ -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 "" @@ -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 @@ -21922,6 +21957,11 @@ 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" @@ -21930,29 +21970,34 @@ 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 "" @@ -25228,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" @@ -25624,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 diff --git a/editor/translations/sq.po b/editor/translations/sq.po index ae64fa2e6f..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21359,6 +21394,11 @@ 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" @@ -21367,29 +21407,34 @@ 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 "" @@ -24550,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" @@ -24941,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 diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index 89a0067fe9..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 "" @@ -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 "" +"\"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 @@ -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 @@ -23374,6 +23409,11 @@ 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 "Одабери Одстојање:" @@ -23382,6 +23422,21 @@ 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 "" @@ -23399,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." @@ -26884,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 "Укључи" @@ -27294,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 "" diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index 844e918f2d..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 "" @@ -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 "" -"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 @@ -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" @@ -20619,6 +20654,11 @@ msgid "" msgstr "" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp +#, fuzzy +msgid "Pathfinding" +msgstr "Kontanta" + +#: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Path Desired Distance" msgstr "" @@ -20627,29 +20667,34 @@ 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 "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 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 "Filtriraj signale" +msgid "Max Speed" +msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -23771,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" @@ -24147,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 diff --git a/editor/translations/sv.po b/editor/translations/sv.po index 61e607d63d..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21696,6 +21731,11 @@ 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" @@ -21704,29 +21744,34 @@ 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 "" @@ -25008,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" @@ -25405,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 diff --git a/editor/translations/te.po b/editor/translations/te.po index 431febd63c..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 "" @@ -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" @@ -20196,6 +20228,11 @@ msgid "" 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 "" @@ -20204,27 +20241,31 @@ 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 @@ -23184,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 "" @@ -23540,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 diff --git a/editor/translations/th.po b/editor/translations/th.po index df7f3a8c04..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 "" @@ -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 @@ -21707,6 +21742,11 @@ 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 "ระยะการเลือก:" @@ -21715,6 +21755,21 @@ 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 "" @@ -21732,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." @@ -25117,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 "เปิด" @@ -25523,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 " @@ -25541,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 "" diff --git a/editor/translations/tl.po b/editor/translations/tl.po index f67f19ad11..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 "" @@ -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 "" +"\"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 @@ -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 @@ -20918,6 +20953,11 @@ 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" @@ -20926,6 +20966,20 @@ 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 "" @@ -20942,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." @@ -24179,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" @@ -24570,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 "" @@ -24585,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 "" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index 89854afb02..1e4ab521bf 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -73,13 +73,14 @@ # 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-26 16:16+0000\n" -"Last-Translator: paledega <paledega@yandex.ru>\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" @@ -91,7 +92,7 @@ msgstr "" #: 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" @@ -99,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" @@ -107,7 +108,7 @@ 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" @@ -461,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 @@ -5643,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 "" @@ -18860,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 "" @@ -18868,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" @@ -18911,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" @@ -19170,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 @@ -19188,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." @@ -20894,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 @@ -21667,6 +21708,11 @@ 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ç:" @@ -21675,6 +21721,21 @@ 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 "" @@ -21692,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 "" @@ -25148,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" @@ -25559,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 "" @@ -25578,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 "" diff --git a/editor/translations/uk.po b/editor/translations/uk.po index 719dc29d7a..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" @@ -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 "" -"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»." #: 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" @@ -21036,6 +21061,11 @@ 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-відстань контуру" @@ -21044,6 +21074,20 @@ 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 "" @@ -21059,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 "" @@ -24180,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 "Приховування увімкнено" @@ -24538,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 "" @@ -24557,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" diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index 76cd6b6495..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 "" @@ -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 "" +"\"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 @@ -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 @@ -20972,6 +21007,11 @@ 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 "ایک مینو منظر چنیں" @@ -20980,29 +21020,34 @@ 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 "" @@ -24102,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 "سب سکریپشن بنائیں" @@ -24481,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 diff --git a/editor/translations/vi.po b/editor/translations/vi.po index 2b4093cc17..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" @@ -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 @@ -21568,6 +21603,11 @@ 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 ô" @@ -21576,6 +21616,20 @@ 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 "" @@ -21593,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." @@ -24954,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ở" @@ -25358,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 diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index 4a15f6acf3..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-20 06:44+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 @@ -5431,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 "外观" @@ -18065,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 "使用自定义构建" @@ -18072,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 "架构" @@ -18108,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 "包" @@ -18337,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." @@ -18352,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 "" -"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " -"enabled." -msgstr "修改“Target Sdk”只有在当启用“Use Custom Build”时才有效。" +"\"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." -msgstr "“Target Sdk”版本必须大于等于“Min Sdk”版本。" +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 "" +"\"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”版本。" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp #: platform/windows/export/export.cpp @@ -19894,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" @@ -20567,17 +20602,36 @@ msgid "" "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 "目标期望距离" +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 "邻接距离" @@ -20593,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." @@ -21699,6 +21745,8 @@ msgid "" "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" @@ -23603,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 "启用隐藏" @@ -23959,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" @@ -25482,14 +25533,12 @@ msgid "Walkable Low Height Spans" msgstr "可行走低高度范围" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Baking AABB" -msgstr "正在生成 AABB" +msgstr "烘焙 AABB" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Baking AABB Offset" -msgstr "基础偏移" +msgstr "烘焙 AABB 偏移" #: scene/resources/occluder_shape.cpp msgid "Spheres" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 114f6b0a45..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 "" @@ -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 "" +"\"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 @@ -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 @@ -21810,6 +21845,11 @@ 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 "選擇主場景" @@ -21818,29 +21858,34 @@ 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 "" @@ -25061,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 "啟用" @@ -25454,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 " @@ -25469,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 "" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index bcf6650997..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 "外觀" @@ -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 "" -"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」的修改僅於「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 @@ -21472,6 +21512,11 @@ 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 "選擇距離:" @@ -21480,6 +21525,21 @@ 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 "" @@ -21497,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." @@ -24903,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 "啟用" @@ -25313,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 "" |