diff options
Diffstat (limited to 'editor')
165 files changed, 3600 insertions, 3172 deletions
diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index 500a3df127..c5fd393746 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -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")); @@ -3725,11 +3725,11 @@ void AnimationTrackEditor::_query_insert(const InsertData &p_id) { } } -void AnimationTrackEditor::_insert_track(bool p_create_reset, bool p_create_beziers) { +void AnimationTrackEditor::_insert_track(bool p_reset_wanted, bool p_create_beziers) { undo_redo->create_action(TTR("Anim Insert")); Ref<Animation> reset_anim; - if (p_create_reset) { + if (p_reset_wanted) { reset_anim = _create_and_get_reset_animation(); } @@ -3739,7 +3739,7 @@ void AnimationTrackEditor::_insert_track(bool p_create_reset, bool p_create_bezi if (insert_data.front()->get().advance) { advance = true; } - next_tracks = _confirm_insert(insert_data.front()->get(), next_tracks, p_create_reset, reset_anim, p_create_beziers); + next_tracks = _confirm_insert(insert_data.front()->get(), next_tracks, p_reset_wanted, reset_anim, p_create_beziers); insert_data.pop_front(); } @@ -4207,9 +4207,42 @@ static Vector<String> _get_bezier_subindices_for_type(Variant::Type p_type, bool return subindices; } -AnimationTrackEditor::TrackIndices AnimationTrackEditor::_confirm_insert(InsertData p_id, TrackIndices p_next_tracks, bool p_create_reset, Ref<Animation> p_reset_anim, bool p_create_beziers) { +AnimationTrackEditor::TrackIndices AnimationTrackEditor::_confirm_insert(InsertData p_id, TrackIndices p_next_tracks, bool p_reset_wanted, Ref<Animation> p_reset_anim, bool p_create_beziers) { bool created = false; - if (p_id.track_idx < 0) { + + bool create_normal_track = p_id.track_idx < 0; + bool create_reset_track = p_reset_wanted && track_type_is_resettable(p_id.type); + + Animation::UpdateMode update_mode = Animation::UPDATE_DISCRETE; + if (create_normal_track || create_reset_track) { + if (p_id.type == Animation::TYPE_VALUE || p_id.type == Animation::TYPE_BEZIER) { + // Hack. + NodePath np; + animation->add_track(p_id.type); + animation->track_set_path(animation->get_track_count() - 1, p_id.path); + PropertyInfo h = _find_hint_for_track(animation->get_track_count() - 1, np); + animation->remove_track(animation->get_track_count() - 1); // Hack. + + if (h.type == Variant::FLOAT || + h.type == Variant::VECTOR2 || + h.type == Variant::RECT2 || + h.type == Variant::VECTOR3 || + h.type == Variant::AABB || + h.type == Variant::QUATERNION || + h.type == Variant::COLOR || + h.type == Variant::PLANE || + h.type == Variant::TRANSFORM2D || + h.type == Variant::TRANSFORM3D) { + update_mode = Animation::UPDATE_CONTINUOUS; + } + + if (h.usage & PROPERTY_USAGE_ANIMATE_AS_TRIGGER) { + update_mode = Animation::UPDATE_TRIGGER; + } + } + } + + if (create_normal_track) { if (p_create_beziers) { bool valid; Vector<String> subindices = _get_bezier_subindices_for_type(p_id.value.get_type(), &valid); @@ -4219,7 +4252,7 @@ AnimationTrackEditor::TrackIndices AnimationTrackEditor::_confirm_insert(InsertD id.type = Animation::TYPE_BEZIER; id.value = p_id.value.get(subindices[i].substr(1, subindices[i].length())); id.path = String(p_id.path) + subindices[i]; - p_next_tracks = _confirm_insert(id, p_next_tracks, p_create_reset, p_reset_anim, false); + p_next_tracks = _confirm_insert(id, p_next_tracks, p_reset_wanted, p_reset_anim, false); } return p_next_tracks; @@ -4227,37 +4260,6 @@ AnimationTrackEditor::TrackIndices AnimationTrackEditor::_confirm_insert(InsertD } created = true; undo_redo->create_action(TTR("Anim Insert Track & Key")); - Animation::UpdateMode update_mode = Animation::UPDATE_DISCRETE; - - if (p_id.type == Animation::TYPE_VALUE || p_id.type == Animation::TYPE_BEZIER) { - // Wants a new track. - - { - // Hack. - NodePath np; - animation->add_track(p_id.type); - animation->track_set_path(animation->get_track_count() - 1, p_id.path); - PropertyInfo h = _find_hint_for_track(animation->get_track_count() - 1, np); - animation->remove_track(animation->get_track_count() - 1); // Hack. - - if (h.type == Variant::FLOAT || - h.type == Variant::VECTOR2 || - h.type == Variant::RECT2 || - h.type == Variant::VECTOR3 || - h.type == Variant::AABB || - h.type == Variant::QUATERNION || - h.type == Variant::COLOR || - h.type == Variant::PLANE || - h.type == Variant::TRANSFORM2D || - h.type == Variant::TRANSFORM3D) { - update_mode = Animation::UPDATE_CONTINUOUS; - } - - if (h.usage & PROPERTY_USAGE_ANIMATE_AS_TRIGGER) { - update_mode = Animation::UPDATE_TRIGGER; - } - } - } p_id.track_idx = p_next_tracks.normal; @@ -4320,8 +4322,7 @@ AnimationTrackEditor::TrackIndices AnimationTrackEditor::_confirm_insert(InsertD } } - if (p_create_reset && track_type_is_resettable(p_id.type)) { - bool create_reset_track = true; + if (create_reset_track) { Animation *reset_anim = p_reset_anim.ptr(); for (int i = 0; i < reset_anim->get_track_count(); i++) { if (reset_anim->track_get_path(i) == p_id.path) { @@ -4332,6 +4333,9 @@ AnimationTrackEditor::TrackIndices AnimationTrackEditor::_confirm_insert(InsertD if (create_reset_track) { undo_redo->add_do_method(reset_anim, "add_track", p_id.type); undo_redo->add_do_method(reset_anim, "track_set_path", p_next_tracks.reset, p_id.path); + if (p_id.type == Animation::TYPE_VALUE) { + undo_redo->add_do_method(reset_anim, "value_track_set_update_mode", p_next_tracks.reset, update_mode); + } undo_redo->add_do_method(reset_anim, "track_insert_key", p_next_tracks.reset, 0.0f, value); undo_redo->add_undo_method(reset_anim, "remove_track", reset_anim->get_track_count()); p_next_tracks.reset++; @@ -6473,7 +6477,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 +6502,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 +6522,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/animation_track_editor.h b/editor/animation_track_editor.h index 55c3bd922a..dede2e9bbe 100644 --- a/editor/animation_track_editor.h +++ b/editor/animation_track_editor.h @@ -375,8 +375,8 @@ class AnimationTrackEditor : public VBoxContainer { reset = p_reset_anim ? p_reset_anim->get_track_count() : 0; } }; - TrackIndices _confirm_insert(InsertData p_id, TrackIndices p_next_tracks, bool p_create_reset, Ref<Animation> p_reset_anim, bool p_create_beziers); - void _insert_track(bool p_create_reset, bool p_create_beziers); + TrackIndices _confirm_insert(InsertData p_id, TrackIndices p_next_tracks, bool p_reset_wanted, Ref<Animation> p_reset_anim, bool p_create_beziers); + void _insert_track(bool p_reset_wanted, bool p_create_beziers); void _root_removed(); diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index 50abe8bc36..3a0edf301d 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -332,7 +332,7 @@ void FindReplaceBar::_update_results_count() { if (results_count_to_current > results_count) { results_count_to_current = results_count_to_current - results_count; - } else if (results_count_to_current == 0) { + } else if (results_count_to_current <= 0) { results_count_to_current = results_count; } 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_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 59482db674..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); 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/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 fd121e73ab..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)); 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_help.cpp b/editor/editor_help.cpp index a674451d1e..68141dd4a3 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -1718,6 +1718,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { List<String> tag_stack; bool code_tag = false; + bool codeblock_tag = false; int pos = 0; while (pos < bbcode.length()) { @@ -1729,7 +1730,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { if (brk_pos > pos) { String text = bbcode.substr(pos, brk_pos - pos); - if (!code_tag) { + if (!code_tag && !codeblock_tag) { text = text.replace("\n", "\n\n"); } p_rt->add_text(text); @@ -1743,7 +1744,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { if (brk_end == -1) { String text = bbcode.substr(brk_pos, bbcode.length() - brk_pos); - if (!code_tag) { + if (!code_tag && !codeblock_tag) { text = text.replace("\n", "\n\n"); } p_rt->add_text(text); @@ -1767,12 +1768,20 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { if (tag != "/img") { p_rt->pop(); if (code_tag) { + // Pop both color and background color. + p_rt->pop(); + p_rt->pop(); + } else if (codeblock_tag) { + // Pop color, cell and table. + p_rt->pop(); + p_rt->pop(); p_rt->pop(); } } code_tag = false; + codeblock_tag = false; - } else if (code_tag) { + } else if (code_tag || codeblock_tag) { p_rt->add_text("["); pos = brk_pos + 1; @@ -1781,24 +1790,32 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { const String link_tag = tag.substr(0, tag_end); const String link_target = tag.substr(tag_end + 1, tag.length()).lstrip(" "); + // Use monospace font with translucent colored background color to make clickable references + // easier to distinguish from inline code and other text. p_rt->push_font(doc_code_font); p_rt->push_color(link_color); + p_rt->push_bgcolor(code_color * Color(1, 1, 1, 0.15)); p_rt->push_meta("@" + link_tag + " " + link_target); p_rt->add_text(link_target + (tag.begins_with("method ") ? "()" : "")); p_rt->pop(); p_rt->pop(); p_rt->pop(); + p_rt->pop(); pos = brk_end + 1; } else if (doc->class_list.has(tag)) { // Class reference tag such as [Node2D] or [SceneTree]. + // Use monospace font with translucent colored background color to make clickable references + // easier to distinguish from inline code and other text. p_rt->push_font(doc_code_font); p_rt->push_color(link_color); + p_rt->push_bgcolor(code_color * Color(1, 1, 1, 0.15)); p_rt->push_meta("#" + tag); p_rt->add_text(tag); p_rt->pop(); p_rt->pop(); p_rt->pop(); + p_rt->pop(); pos = brk_end + 1; } else if (tag == "b") { @@ -1811,16 +1828,31 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { p_rt->push_font(doc_italic_font); pos = brk_end + 1; tag_stack.push_front(tag); - } else if (tag == "code" || tag == "codeblock") { - // Use monospace font. + } else if (tag == "code") { + // Use monospace font with translucent background color to make code easier to distinguish from other text. p_rt->push_font(doc_code_font); + p_rt->push_bgcolor(Color(0.5, 0.5, 0.5, 0.15)); p_rt->push_color(code_color); code_tag = true; pos = brk_end + 1; tag_stack.push_front(tag); + } else if (tag == "codeblock") { + // Use monospace font with translucent background color to make code easier to distinguish from other text. + // Use a single-column table with cell row background color instead of `[bgcolor]`. + // This makes the background color highlight cover the entire block, rather than individual lines. + p_rt->push_font(doc_code_font); + p_rt->push_table(1); + p_rt->push_cell(); + p_rt->set_cell_row_background_color(Color(0.5, 0.5, 0.5, 0.15), Color(0.5, 0.5, 0.5, 0.15)); + p_rt->set_cell_padding(Rect2(10 * EDSCALE, 10 * EDSCALE, 10 * EDSCALE, 10 * EDSCALE)); + p_rt->push_color(code_color); + codeblock_tag = true; + pos = brk_end + 1; + tag_stack.push_front(tag); } else if (tag == "kbd") { - // Use keyboard font with custom color. + // Use keyboard font with custom color and background color. p_rt->push_font(doc_kbd_font); + p_rt->push_bgcolor(Color(0.5, 0.5, 0.5, 0.15)); p_rt->push_color(kbd_color); code_tag = true; // Though not strictly a code tag, logic is similar. pos = brk_end + 1; 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 dc47719f0a..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" @@ -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); } } @@ -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(); @@ -3473,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; @@ -3781,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 6243ebc852..d9cdefbca7 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -512,10 +512,10 @@ void EditorNode::_update_from_settings() { uint32_t directional_shadow_16_bits = GLOBAL_GET("rendering/shadows/directional_shadow/16_bits"); RS::get_singleton()->directional_shadow_atlas_set_size(directional_shadow_size, directional_shadow_16_bits); - RS::ShadowQuality shadows_quality = RS::ShadowQuality(int(GLOBAL_GET("rendering/shadows/shadows/soft_shadow_quality"))); - RS::get_singleton()->shadows_quality_set(shadows_quality); - RS::ShadowQuality directional_shadow_quality = RS::ShadowQuality(int(GLOBAL_GET("rendering/shadows/directional_shadow/soft_shadow_quality"))); - RS::get_singleton()->directional_shadow_quality_set(directional_shadow_quality); + RS::ShadowQuality shadows_quality = RS::ShadowQuality(int(GLOBAL_GET("rendering/shadows/positional_shadow/soft_shadow_filter_quality"))); + RS::get_singleton()->positional_soft_shadow_filter_set_quality(shadows_quality); + RS::ShadowQuality directional_shadow_quality = RS::ShadowQuality(int(GLOBAL_GET("rendering/shadows/directional_shadow/soft_shadow_filter_quality"))); + RS::get_singleton()->directional_soft_shadow_filter_set_quality(directional_shadow_quality); float probe_update_speed = GLOBAL_GET("rendering/lightmapping/probe_capture/update_speed"); RS::get_singleton()->lightmap_set_probe_capture_update_speed(probe_update_speed); RS::EnvironmentSDFGIFramesToConverge frames_to_converge = RS::EnvironmentSDFGIFramesToConverge(int(GLOBAL_GET("rendering/global_illumination/sdfgi/frames_to_converge"))); @@ -1259,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. @@ -2332,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")) { @@ -2346,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())) { @@ -2471,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(); @@ -2541,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(); @@ -2617,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()) { @@ -2660,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; @@ -2716,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(); @@ -2792,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(); @@ -2841,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(); @@ -2906,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(); @@ -4046,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; @@ -4277,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(); } @@ -4594,8 +4589,14 @@ void EditorNode::_save_docks_to_config(Ref<ConfigFile> p_layout, const String &p names += name; } + String config_key = "dock_" + itos(i + 1); + + if (p_layout->has_section_key(p_section, config_key)) { + p_layout->erase_section_key(p_section, config_key); + } + if (!names.is_empty()) { - p_layout->set_value(p_section, "dock_" + itos(i + 1), names); + p_layout->set_value(p_section, config_key, names); } } @@ -4956,22 +4957,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); @@ -5033,14 +5026,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; @@ -5082,7 +5075,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 { @@ -5404,9 +5397,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); @@ -6128,7 +6119,9 @@ EditorNode::EditorNode() { EDITOR_DEF_RST("interface/inspector/default_property_name_style", EditorPropertyNameProcessor::STYLE_CAPITALIZED); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "interface/inspector/default_property_name_style", PROPERTY_HINT_ENUM, "Raw,Capitalized,Localized")); EDITOR_DEF_RST("interface/inspector/default_float_step", 0.001); - EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::FLOAT, "interface/inspector/default_float_step", PROPERTY_HINT_RANGE, "0,1,0")); + // The lowest value is equal to the minimum float step for 32-bit floats. + // The step must be set manually, as changing this setting should not change the step here. + EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::FLOAT, "interface/inspector/default_float_step", PROPERTY_HINT_RANGE, "0.0000001,1,0.0000001")); EDITOR_DEF_RST("interface/inspector/disable_folding", false); EDITOR_DEF_RST("interface/inspector/auto_unfold_foreign_scenes", true); EDITOR_DEF("interface/inspector/horizontal_vector2_editing", false); @@ -6732,15 +6725,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); @@ -6787,7 +6777,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); @@ -6956,7 +6946,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); @@ -6971,13 +6961,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); @@ -6988,7 +6978,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); @@ -7052,7 +7042,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)); @@ -7070,12 +7060,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. @@ -7085,63 +7073,66 @@ EditorNode::EditorNode() { // More visually meaningful to have this later. raise_bottom_panel_item(AnimationPlayerEditor::get_singleton()); - add_editor_plugin(memnew(ReplicationEditorPlugin)); add_editor_plugin(VersionControlEditorPlugin::get_singleton()); - add_editor_plugin(memnew(ShaderEditorPlugin)); - add_editor_plugin(memnew(ShaderFileEditorPlugin)); + // This list is alphabetized, and plugins that depend on Node2D are in their own section below. + add_editor_plugin(memnew(AnimationTreeEditorPlugin)); + add_editor_plugin(memnew(AudioBusesEditorPlugin(audio_bus_editor))); + add_editor_plugin(memnew(AudioStreamEditorPlugin)); + add_editor_plugin(memnew(AudioStreamRandomizerEditorPlugin)); + add_editor_plugin(memnew(BitMapEditorPlugin)); + add_editor_plugin(memnew(BoneMapEditorPlugin)); add_editor_plugin(memnew(Camera3DEditorPlugin)); - add_editor_plugin(memnew(ThemeEditorPlugin)); - add_editor_plugin(memnew(MultiMeshEditorPlugin)); + add_editor_plugin(memnew(ControlEditorPlugin)); + add_editor_plugin(memnew(CPUParticles3DEditorPlugin)); + add_editor_plugin(memnew(CurveEditorPlugin)); + add_editor_plugin(memnew(FontEditorPlugin)); + add_editor_plugin(memnew(GPUParticles3DEditorPlugin)); + add_editor_plugin(memnew(GPUParticlesCollisionSDF3DEditorPlugin)); + add_editor_plugin(memnew(GradientEditorPlugin)); + add_editor_plugin(memnew(GradientTexture2DEditorPlugin)); + add_editor_plugin(memnew(InputEventEditorPlugin)); + add_editor_plugin(memnew(LightmapGIEditorPlugin)); + add_editor_plugin(memnew(MaterialEditorPlugin)); + add_editor_plugin(memnew(MeshEditorPlugin)); add_editor_plugin(memnew(MeshInstance3DEditorPlugin)); - add_editor_plugin(memnew(AnimationTreeEditorPlugin)); add_editor_plugin(memnew(MeshLibraryEditorPlugin)); - add_editor_plugin(memnew(StyleBoxEditorPlugin)); - add_editor_plugin(memnew(Sprite2DEditorPlugin)); - add_editor_plugin(memnew(Skeleton2DEditorPlugin)); - add_editor_plugin(memnew(GPUParticles2DEditorPlugin)); - add_editor_plugin(memnew(GPUParticles3DEditorPlugin)); - add_editor_plugin(memnew(CPUParticles2DEditorPlugin)); - add_editor_plugin(memnew(CPUParticles3DEditorPlugin)); - add_editor_plugin(memnew(ResourcePreloaderEditorPlugin)); + add_editor_plugin(memnew(MultiMeshEditorPlugin)); + add_editor_plugin(memnew(OccluderInstance3DEditorPlugin)); + add_editor_plugin(memnew(Path3DEditorPlugin)); + add_editor_plugin(memnew(PhysicalBone3DEditorPlugin)); add_editor_plugin(memnew(Polygon3DEditorPlugin)); - add_editor_plugin(memnew(CollisionPolygon2DEditorPlugin)); - add_editor_plugin(memnew(TilesEditorPlugin)); + add_editor_plugin(memnew(ReplicationEditorPlugin)); + add_editor_plugin(memnew(ResourcePreloaderEditorPlugin)); + add_editor_plugin(memnew(ShaderEditorPlugin)); + add_editor_plugin(memnew(ShaderFileEditorPlugin)); + add_editor_plugin(memnew(Skeleton3DEditorPlugin)); + add_editor_plugin(memnew(SkeletonIK3DEditorPlugin)); add_editor_plugin(memnew(SpriteFramesEditorPlugin)); + add_editor_plugin(memnew(StyleBoxEditorPlugin)); + add_editor_plugin(memnew(SubViewportPreviewEditorPlugin)); + add_editor_plugin(memnew(Texture3DEditorPlugin)); + add_editor_plugin(memnew(TextureEditorPlugin)); + add_editor_plugin(memnew(TextureLayeredEditorPlugin)); add_editor_plugin(memnew(TextureRegionEditorPlugin)); + add_editor_plugin(memnew(ThemeEditorPlugin)); add_editor_plugin(memnew(VoxelGIEditorPlugin)); - add_editor_plugin(memnew(LightmapGIEditorPlugin)); - add_editor_plugin(memnew(OccluderInstance3DEditorPlugin)); - add_editor_plugin(memnew(Path2DEditorPlugin)); - add_editor_plugin(memnew(Path3DEditorPlugin)); - add_editor_plugin(memnew(Line2DEditorPlugin)); - add_editor_plugin(memnew(Polygon2DEditorPlugin)); + + // 2D + add_editor_plugin(memnew(CollisionPolygon2DEditorPlugin)); + add_editor_plugin(memnew(CollisionShape2DEditorPlugin)); + add_editor_plugin(memnew(CPUParticles2DEditorPlugin)); + add_editor_plugin(memnew(GPUParticles2DEditorPlugin)); add_editor_plugin(memnew(LightOccluder2DEditorPlugin)); + add_editor_plugin(memnew(Line2DEditorPlugin)); add_editor_plugin(memnew(NavigationPolygonEditorPlugin)); - add_editor_plugin(memnew(GradientEditorPlugin)); - add_editor_plugin(memnew(CollisionShape2DEditorPlugin)); - add_editor_plugin(memnew(CurveEditorPlugin)); - add_editor_plugin(memnew(FontEditorPlugin)); - add_editor_plugin(memnew(TextureEditorPlugin)); - add_editor_plugin(memnew(TextureLayeredEditorPlugin)); - add_editor_plugin(memnew(Texture3DEditorPlugin)); - add_editor_plugin(memnew(AudioStreamEditorPlugin)); - add_editor_plugin(memnew(AudioStreamRandomizerEditorPlugin)); - add_editor_plugin(memnew(AudioBusesEditorPlugin(audio_bus_editor))); - add_editor_plugin(memnew(Skeleton3DEditorPlugin)); - add_editor_plugin(memnew(SkeletonIK3DEditorPlugin)); - add_editor_plugin(memnew(PhysicalBone3DEditorPlugin)); - add_editor_plugin(memnew(MeshEditorPlugin)); - add_editor_plugin(memnew(MaterialEditorPlugin)); - add_editor_plugin(memnew(GPUParticlesCollisionSDF3DEditorPlugin)); - add_editor_plugin(memnew(InputEventEditorPlugin)); - add_editor_plugin(memnew(SubViewportPreviewEditorPlugin)); - add_editor_plugin(memnew(ControlEditorPlugin)); - add_editor_plugin(memnew(GradientTexture2DEditorPlugin)); - add_editor_plugin(memnew(BitMapEditorPlugin)); + add_editor_plugin(memnew(Path2DEditorPlugin)); + add_editor_plugin(memnew(Polygon2DEditorPlugin)); add_editor_plugin(memnew(RayCast2DEditorPlugin)); - add_editor_plugin(memnew(BoneMapEditorPlugin)); + add_editor_plugin(memnew(Skeleton2DEditorPlugin)); + add_editor_plugin(memnew(Sprite2DEditorPlugin)); + add_editor_plugin(memnew(TilesEditorPlugin)); for (int i = 0; i < EditorPlugins::get_plugin_count(); i++) { add_editor_plugin(EditorPlugins::create(i)); @@ -7228,7 +7219,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)); @@ -7269,7 +7260,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 d06d22ae5b..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)); 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 77d627ab9c..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(); @@ -678,7 +678,7 @@ void EditorResourcePicker::drop_data_fw(const Point2 &p_point, const Variant &p_ 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_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_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/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/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 fa261496f0..ee13a1a9c1 100644 --- a/editor/import/dynamic_font_import_settings.cpp +++ b/editor/import/dynamic_font_import_settings.cpp @@ -1363,6 +1363,6 @@ DynamicFontImportSettings::DynamicFontImportSettings() { 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/post_import_plugin_skeleton_renamer.cpp b/editor/import/post_import_plugin_skeleton_renamer.cpp index b0c4bc8c30..bf84348ac3 100644 --- a/editor/import/post_import_plugin_skeleton_renamer.cpp +++ b/editor/import/post_import_plugin_skeleton_renamer.cpp @@ -39,6 +39,8 @@ void PostImportPluginSkeletonRenamer::get_internal_import_options(InternalImportCategory p_category, List<ResourceImporter::ImportOption> *r_options) { if (p_category == INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE) { r_options->push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "retarget/bone_renamer/rename_bones"), true)); + r_options->push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "retarget/bone_renamer/unique_node/make_unique"), true)); + r_options->push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::STRING, "retarget/bone_renamer/unique_node/skeleton_name"), "GeneralSkeleton")); } } @@ -137,6 +139,38 @@ void PostImportPluginSkeletonRenamer::internal_process(InternalImportCategory p_ nd->callp("_notify_skeleton_bones_renamed", argptrs, argcount, ce); } } + + // Make unique skeleton. + if (bool(p_options["retarget/bone_renamer/unique_node/make_unique"])) { + String unique_name = String(p_options["retarget/bone_renamer/unique_node/skeleton_name"]); + ERR_FAIL_COND_MSG(unique_name == String(), "Skeleton unique name cannot be empty."); + + TypedArray<Node> nodes = p_base_scene->find_children("*", "AnimationPlayer"); + while (nodes.size()) { + AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(nodes.pop_back()); + List<StringName> anims; + ap->get_animation_list(&anims); + for (const StringName &name : anims) { + Ref<Animation> anim = ap->get_animation(name); + int track_len = anim->get_track_count(); + for (int i = 0; i < track_len; i++) { + if (anim->track_get_path(i).get_subname_count() != 1 || !(anim->track_get_type(i) == Animation::TYPE_POSITION_3D || anim->track_get_type(i) == Animation::TYPE_ROTATION_3D || anim->track_get_type(i) == Animation::TYPE_SCALE_3D)) { + continue; + } + String track_path = String(anim->track_get_path(i).get_concatenated_names()); + Node *node = (ap->get_node(ap->get_root()))->get_node(NodePath(track_path)); + if (node) { + Skeleton3D *track_skeleton = Object::cast_to<Skeleton3D>(node); + if (track_skeleton && track_skeleton == skeleton) { + anim->track_set_path(i, String("%") + unique_name + String(":") + anim->track_get_path(i).get_concatenated_subnames()); + } + } + } + } + } + skeleton->set_name(unique_name); + skeleton->set_unique_name_in_owner(true); + } } } diff --git a/editor/import/post_import_plugin_skeleton_rest_fixer.cpp b/editor/import/post_import_plugin_skeleton_rest_fixer.cpp new file mode 100644 index 0000000000..8b0d8c8729 --- /dev/null +++ b/editor/import/post_import_plugin_skeleton_rest_fixer.cpp @@ -0,0 +1,418 @@ +/*************************************************************************/ +/* post_import_plugin_skeleton_rest_fixer.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#include "post_import_plugin_skeleton_rest_fixer.h" + +#include "editor/import/scene_import_settings.h" +#include "scene/3d/importer_mesh_instance_3d.h" +#include "scene/3d/skeleton_3d.h" +#include "scene/animation/animation_player.h" +#include "scene/resources/animation.h" +#include "scene/resources/bone_map.h" + +void PostImportPluginSkeletonRestFixer::get_internal_import_options(InternalImportCategory p_category, List<ResourceImporter::ImportOption> *r_options) { + if (p_category == INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE) { + r_options->push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "retarget/rest_fixer/overwrite_axis"), true)); + + r_options->push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "retarget/rest_fixer/fix_silhouette/enable"), false)); + r_options->push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::FLOAT, "retarget/rest_fixer/fix_silhouette/threshold"), 15)); + + // TODO: PostImportPlugin need to be implemented such as validate_option(PropertyInfo &property, const Dictionary &p_options). + // get_internal_option_visibility() is not sufficient because it can only retrieve options implemented in the core and can only read option values. + // r_options->push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::ARRAY, "retarget/rest_fixer/filter", PROPERTY_HINT_ARRAY_TYPE, vformat("%s/%s:%s", Variant::STRING_NAME, PROPERTY_HINT_ENUM, "Hips,Spine,Chest")), Array())); + r_options->push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::ARRAY, "retarget/rest_fixer/fix_silhouette/filter", PROPERTY_HINT_ARRAY_TYPE, "StringName"), Array())); + } +} + +void PostImportPluginSkeletonRestFixer::internal_process(InternalImportCategory p_category, Node *p_base_scene, Node *p_node, Ref<Resource> p_resource, const Dictionary &p_options) { + if (p_category == INTERNAL_IMPORT_CATEGORY_SKELETON_3D_NODE) { + // Prepare objects. + Object *map = p_options["retarget/bone_map"].get_validated_object(); + if (!map) { + return; + } + BoneMap *bone_map = Object::cast_to<BoneMap>(map); + Ref<SkeletonProfile> profile = bone_map->get_profile(); + if (!profile.is_valid()) { + return; + } + Skeleton3D *src_skeleton = Object::cast_to<Skeleton3D>(p_node); + if (!src_skeleton) { + return; + } + bool is_renamed = bool(p_options["retarget/bone_renamer/rename_bones"]); + Array filter = p_options["retarget/rest_fixer/fix_silhouette/filter"]; + bool is_rest_changed = false; + + // Build profile skeleton. + Skeleton3D *prof_skeleton = memnew(Skeleton3D); + { + int prof_bone_len = profile->get_bone_size(); + // Add single bones. + for (int i = 0; i < prof_bone_len; i++) { + prof_skeleton->add_bone(profile->get_bone_name(i)); + prof_skeleton->set_bone_rest(i, profile->get_reference_pose(i)); + } + // Set parents. + for (int i = 0; i < prof_bone_len; i++) { + int parent = profile->find_bone(profile->get_bone_parent(i)); + if (parent >= 0) { + prof_skeleton->set_bone_parent(i, parent); + } + } + } + + // Complement Rotation track for compatibility between defference rests. + { + TypedArray<Node> nodes = p_base_scene->find_children("*", "AnimationPlayer"); + while (nodes.size()) { + AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(nodes.pop_back()); + List<StringName> anims; + ap->get_animation_list(&anims); + for (const StringName &name : anims) { + Ref<Animation> anim = ap->get_animation(name); + int track_len = anim->get_track_count(); + + // Detect does the animetion have skeleton's TRS track. + String track_path; + bool found_skeleton = false; + for (int i = 0; i < track_len; i++) { + if (anim->track_get_path(i).get_subname_count() != 1 || !(anim->track_get_type(i) == Animation::TYPE_POSITION_3D || anim->track_get_type(i) == Animation::TYPE_ROTATION_3D || anim->track_get_type(i) == Animation::TYPE_SCALE_3D)) { + continue; + } + track_path = String(anim->track_get_path(i).get_concatenated_names()); + Node *node = (ap->get_node(ap->get_root()))->get_node(NodePath(track_path)); + if (node) { + Skeleton3D *track_skeleton = Object::cast_to<Skeleton3D>(node); + if (track_skeleton && track_skeleton == src_skeleton) { + found_skeleton = true; + break; + } + } + } + + if (found_skeleton) { + // Search and insert rot track if it doesn't exist. + for (int prof_idx = 0; prof_idx < prof_skeleton->get_bone_count(); prof_idx++) { + String bone_name = is_renamed ? prof_skeleton->get_bone_name(prof_idx) : String(bone_map->get_skeleton_bone_name(prof_skeleton->get_bone_name(prof_idx))); + if (bone_name == String()) { + continue; + } + int src_idx = src_skeleton->find_bone(bone_name); + if (src_idx == -1) { + continue; + } + String insert_path = track_path + ":" + bone_name; + int rot_track = anim->find_track(insert_path, Animation::TYPE_ROTATION_3D); + if (rot_track == -1) { + int track = anim->add_track(Animation::TYPE_ROTATION_3D); + anim->track_set_path(track, insert_path); + anim->rotation_track_insert_key(track, 0, src_skeleton->get_bone_rest(src_idx).basis.get_rotation_quaternion()); + } + } + } + } + } + } + + // Fix silhouette. + Vector<Transform3D> silhouette_diff; // Transform values to be ignored when overwrite axis. + silhouette_diff.resize(src_skeleton->get_bone_count()); + Transform3D *silhouette_diff_w = silhouette_diff.ptrw(); + if (bool(p_options["retarget/rest_fixer/fix_silhouette/enable"])) { + LocalVector<Transform3D> old_skeleton_global_rest; + for (int i = 0; i < src_skeleton->get_bone_count(); i++) { + old_skeleton_global_rest.push_back(src_skeleton->get_bone_global_rest(i)); + } + + Vector<int> bones_to_process = prof_skeleton->get_parentless_bones(); + while (bones_to_process.size() > 0) { + int prof_idx = bones_to_process[0]; + bones_to_process.erase(prof_idx); + Vector<int> prof_children = prof_skeleton->get_bone_children(prof_idx); + for (int i = 0; i < prof_children.size(); i++) { + bones_to_process.push_back(prof_children[i]); + } + + // Calc virtual/looking direction with origins. + bool is_filtered = false; + for (int i = 0; i < filter.size(); i++) { + if (String(filter[i]) == prof_skeleton->get_bone_name(prof_idx)) { + is_filtered = true; + break; + } + } + if (is_filtered) { + continue; + } + + int src_idx = src_skeleton->find_bone(is_renamed ? prof_skeleton->get_bone_name(prof_idx) : String(bone_map->get_skeleton_bone_name(prof_skeleton->get_bone_name(prof_idx)))); + if (src_idx < 0 || profile->get_tail_direction(prof_idx) == SkeletonProfile::TAIL_DIRECTION_END) { + continue; + } + Vector3 prof_tail; + Vector3 src_tail; + if (profile->get_tail_direction(prof_idx) == SkeletonProfile::TAIL_DIRECTION_AVERAGE_CHILDREN) { + PackedInt32Array prof_bone_children = prof_skeleton->get_bone_children(prof_idx); + int children_size = prof_bone_children.size(); + if (children_size == 0) { + continue; + } + bool exist_all_children = true; + for (int i = 0; i < children_size; i++) { + int prof_child_idx = prof_bone_children[i]; + int src_child_idx = src_skeleton->find_bone(is_renamed ? prof_skeleton->get_bone_name(prof_child_idx) : String(bone_map->get_skeleton_bone_name(prof_skeleton->get_bone_name(prof_child_idx)))); + if (src_child_idx < 0) { + exist_all_children = false; + break; + } + prof_tail = prof_tail + prof_skeleton->get_bone_global_rest(prof_child_idx).origin; + src_tail = src_tail + src_skeleton->get_bone_global_rest(src_child_idx).origin; + } + if (!exist_all_children) { + continue; + } + prof_tail = prof_tail / children_size; + src_tail = src_tail / children_size; + } + if (profile->get_tail_direction(prof_idx) == SkeletonProfile::TAIL_DIRECTION_SPECIFIC_CHILD) { + int prof_tail_idx = prof_skeleton->find_bone(profile->get_bone_tail(prof_idx)); + if (prof_tail_idx < 0) { + continue; + } + int src_tail_idx = src_skeleton->find_bone(is_renamed ? prof_skeleton->get_bone_name(prof_tail_idx) : String(bone_map->get_skeleton_bone_name(prof_skeleton->get_bone_name(prof_tail_idx)))); + if (src_tail_idx < 0) { + continue; + } + prof_tail = prof_skeleton->get_bone_global_rest(prof_tail_idx).origin; + src_tail = src_skeleton->get_bone_global_rest(src_tail_idx).origin; + } + + Vector3 prof_head = prof_skeleton->get_bone_global_rest(prof_idx).origin; + Vector3 src_head = src_skeleton->get_bone_global_rest(src_idx).origin; + + Vector3 prof_dir = prof_tail - prof_head; + Vector3 src_dir = src_tail - src_head; + + // Rotate rest. + if (Math::abs(Math::rad2deg(src_dir.angle_to(prof_dir))) > float(p_options["retarget/rest_fixer/fix_silhouette/threshold"])) { + // Get rotation difference. + Vector3 up_vec; // Need to rotate other than roll axis. + switch (Vector3(abs(src_dir.x), abs(src_dir.y), abs(src_dir.z)).min_axis_index()) { + case Vector3::AXIS_X: { + up_vec = Vector3(1, 0, 0); + } break; + case Vector3::AXIS_Y: { + up_vec = Vector3(0, 1, 0); + } break; + case Vector3::AXIS_Z: { + up_vec = Vector3(0, 0, 1); + } break; + } + Basis src_b; + src_b = src_b.looking_at(src_dir, up_vec); + Basis prof_b; + prof_b = src_b.looking_at(prof_dir, up_vec); + if (prof_b.is_equal_approx(Basis())) { + continue; // May not need to rotate. + } + Basis diff_b = prof_b * src_b.inverse(); + + // Apply rotation difference as global transform to skeleton. + Basis src_pg; + int src_parent = src_skeleton->get_bone_parent(src_idx); + if (src_parent >= 0) { + src_pg = src_skeleton->get_bone_global_rest(src_parent).basis; + } + Transform3D fixed_rest = Transform3D(src_pg.inverse() * diff_b * src_pg * src_skeleton->get_bone_rest(src_idx).basis, src_skeleton->get_bone_rest(src_idx).origin); + src_skeleton->set_bone_rest(src_idx, fixed_rest); + } + } + + // For skin modification in overwrite rest. + for (int i = 0; i < src_skeleton->get_bone_count(); i++) { + silhouette_diff_w[i] = old_skeleton_global_rest[i] * src_skeleton->get_bone_global_rest(i).inverse(); + } + + is_rest_changed = true; + } + + // Overwrite axis. + if (bool(p_options["retarget/rest_fixer/overwrite_axis"])) { + LocalVector<Transform3D> old_skeleton_rest; + LocalVector<Transform3D> old_skeleton_global_rest; + for (int i = 0; i < src_skeleton->get_bone_count(); i++) { + old_skeleton_rest.push_back(src_skeleton->get_bone_rest(i)); + old_skeleton_global_rest.push_back(src_skeleton->get_bone_global_rest(i)); + } + + Vector<Basis> diffs; + diffs.resize(src_skeleton->get_bone_count()); + Basis *diffs_w = diffs.ptrw(); + + Vector<int> bones_to_process = src_skeleton->get_parentless_bones(); + while (bones_to_process.size() > 0) { + int src_idx = bones_to_process[0]; + bones_to_process.erase(src_idx); + Vector<int> src_children = src_skeleton->get_bone_children(src_idx); + for (int i = 0; i < src_children.size(); i++) { + bones_to_process.push_back(src_children[i]); + } + + Basis tgt_rot; + StringName src_bone_name = is_renamed ? StringName(src_skeleton->get_bone_name(src_idx)) : bone_map->find_profile_bone_name(src_skeleton->get_bone_name(src_idx)); + if (src_bone_name != StringName()) { + Basis src_pg; + int src_parent_idx = src_skeleton->get_bone_parent(src_idx); + if (src_parent_idx >= 0) { + src_pg = src_skeleton->get_bone_global_rest(src_parent_idx).basis; + } + + int prof_idx = profile->find_bone(src_bone_name); + if (prof_idx >= 0) { + tgt_rot = src_pg.inverse() * prof_skeleton->get_bone_global_rest(prof_idx).basis; // Mapped bone uses reference pose. + } + /* + // If there is rest-relative animation, this logic may be work fine, but currently not so... + } else { + // tgt_rot = src_pg.inverse() * old_skeleton_global_rest[src_idx].basis; // Non-Mapped bone keeps global rest. + } + */ + } + + if (src_skeleton->get_bone_parent(src_idx) >= 0) { + diffs_w[src_idx] = tgt_rot.inverse() * diffs[src_skeleton->get_bone_parent(src_idx)] * src_skeleton->get_bone_rest(src_idx).basis; + } else { + diffs_w[src_idx] = tgt_rot.inverse() * src_skeleton->get_bone_rest(src_idx).basis; + } + + Basis diff; + if (src_skeleton->get_bone_parent(src_idx) >= 0) { + diff = diffs[src_skeleton->get_bone_parent(src_idx)]; + } + src_skeleton->set_bone_rest(src_idx, Transform3D(tgt_rot, diff.xform(src_skeleton->get_bone_rest(src_idx).origin))); + } + + // Fix skin. + { + TypedArray<Node> nodes = p_base_scene->find_children("*", "ImporterMeshInstance3D"); + while (nodes.size()) { + ImporterMeshInstance3D *mi = Object::cast_to<ImporterMeshInstance3D>(nodes.pop_back()); + Ref<Skin> skin = mi->get_skin(); + if (skin.is_valid()) { + Node *node = mi->get_node(mi->get_skeleton_path()); + if (node) { + Skeleton3D *mesh_skeleton = Object::cast_to<Skeleton3D>(node); + if (mesh_skeleton && node == src_skeleton) { + int skin_len = skin->get_bind_count(); + for (int i = 0; i < skin_len; i++) { + StringName bn = skin->get_bind_name(i); + int bone_idx = src_skeleton->find_bone(bn); + if (bone_idx >= 0) { + Transform3D new_rest = silhouette_diff[i] * src_skeleton->get_bone_global_rest(bone_idx); + skin->set_bind_pose(i, new_rest.inverse()); + } + } + } + } + } + } + } + + // Fix animation. + { + TypedArray<Node> nodes = p_base_scene->find_children("*", "AnimationPlayer"); + while (nodes.size()) { + AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(nodes.pop_back()); + List<StringName> anims; + ap->get_animation_list(&anims); + for (const StringName &name : anims) { + Ref<Animation> anim = ap->get_animation(name); + int track_len = anim->get_track_count(); + for (int i = 0; i < track_len; i++) { + if (anim->track_get_path(i).get_subname_count() != 1 || anim->track_get_type(i) != Animation::TYPE_ROTATION_3D) { + continue; + } + + if (anim->track_is_compressed(i)) { + continue; // TODO: Adopt to compressed track. + } + + String track_path = String(anim->track_get_path(i).get_concatenated_names()); + Node *node = (ap->get_node(ap->get_root()))->get_node(NodePath(track_path)); + if (node) { + Skeleton3D *track_skeleton = Object::cast_to<Skeleton3D>(node); + if (track_skeleton && track_skeleton == src_skeleton) { + StringName bn = anim->track_get_path(i).get_subname(0); + if (bn) { + int bone_idx = src_skeleton->find_bone(bn); + + Quaternion old_rest = old_skeleton_rest[bone_idx].basis.get_rotation_quaternion(); + Quaternion new_rest = src_skeleton->get_bone_rest(bone_idx).basis.get_rotation_quaternion(); + Quaternion old_pg; + Quaternion new_pg; + int parent_idx = src_skeleton->get_bone_parent(bone_idx); + if (parent_idx >= 0) { + old_pg = old_skeleton_global_rest[parent_idx].basis.get_rotation_quaternion(); + new_pg = src_skeleton->get_bone_global_rest(parent_idx).basis.get_rotation_quaternion(); + } + + int key_len = anim->track_get_key_count(i); + for (int j = 0; j < key_len; j++) { + Quaternion qt = static_cast<Quaternion>(anim->track_get_key_value(i, j)); + anim->track_set_key_value(i, j, new_pg.inverse() * old_pg * qt * old_rest.inverse() * old_pg.inverse() * new_pg * new_rest); + } + } + } + } + } + } + } + } + + is_rest_changed = true; + } + + // Init skeleton pose to new rest. + if (is_rest_changed) { + for (int i = 0; i < src_skeleton->get_bone_count(); i++) { + Transform3D fixed_rest = src_skeleton->get_bone_rest(i); + src_skeleton->set_bone_pose_position(i, fixed_rest.origin); + src_skeleton->set_bone_pose_rotation(i, fixed_rest.basis.get_rotation_quaternion()); + src_skeleton->set_bone_pose_scale(i, fixed_rest.basis.get_scale()); + } + } + + memdelete(prof_skeleton); + } +} + +PostImportPluginSkeletonRestFixer::PostImportPluginSkeletonRestFixer() { +} diff --git a/editor/import/post_import_plugin_skeleton_rest_fixer.h b/editor/import/post_import_plugin_skeleton_rest_fixer.h new file mode 100644 index 0000000000..11e9d08e88 --- /dev/null +++ b/editor/import/post_import_plugin_skeleton_rest_fixer.h @@ -0,0 +1,46 @@ +/*************************************************************************/ +/* post_import_plugin_skeleton_rest_fixer.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 POST_IMPORT_PLUGIN_SKELETON_REST_FIXER_H +#define POST_IMPORT_PLUGIN_SKELETON_REST_FIXER_H + +#include "resource_importer_scene.h" + +class PostImportPluginSkeletonRestFixer : public EditorScenePostImportPlugin { + GDCLASS(PostImportPluginSkeletonRestFixer, EditorScenePostImportPlugin); + +public: + virtual void get_internal_import_options(InternalImportCategory p_category, List<ResourceImporter::ImportOption> *r_options) override; + virtual void internal_process(InternalImportCategory p_category, Node *p_base_scene, Node *p_node, Ref<Resource> p_resource, const Dictionary &p_options) override; + + PostImportPluginSkeletonRestFixer(); +}; + +#endif // POST_IMPORT_PLUGIN_SKELETON_REST_FIXER_H 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 b682407307..0e2967dc42 100644 --- a/editor/import/scene_import_settings.cpp +++ b/editor/import/scene_import_settings.cpp @@ -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 affe46aaae..a5ca55f6df 100644 --- a/editor/plugins/abstract_polygon_2d_editor.cpp +++ b/editor/plugins/abstract_polygon_2d_editor.cpp @@ -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 248ba021ce..d397c6da67 100644 --- a/editor/plugins/animation_blend_space_1d_editor.cpp +++ b/editor/plugins/animation_blend_space_1d_editor.cpp @@ -314,6 +314,8 @@ void AnimationNodeBlendSpace1DEditor::_update_space() { max_value->set_value(blend_space->get_max_space()); min_value->set_value(blend_space->get_min_space()); + sync->set_pressed(blend_space->is_using_sync()); + label_value->set_text(blend_space->get_value_label()); snap_value->set_value(blend_space->get_snap()); @@ -329,13 +331,15 @@ void AnimationNodeBlendSpace1DEditor::_config_changed(double) { } updating = true; - undo_redo->create_action(TTR("Change BlendSpace1D Limits")); + undo_redo->create_action(TTR("Change BlendSpace1D Config")); undo_redo->add_do_method(blend_space.ptr(), "set_max_space", max_value->get_value()); undo_redo->add_undo_method(blend_space.ptr(), "set_max_space", blend_space->get_max_space()); undo_redo->add_do_method(blend_space.ptr(), "set_min_space", min_value->get_value()); undo_redo->add_undo_method(blend_space.ptr(), "set_min_space", blend_space->get_min_space()); undo_redo->add_do_method(blend_space.ptr(), "set_snap", snap_value->get_value()); undo_redo->add_undo_method(blend_space.ptr(), "set_snap", blend_space->get_snap()); + undo_redo->add_do_method(blend_space.ptr(), "set_use_sync", sync->is_pressed()); + undo_redo->add_undo_method(blend_space.ptr(), "set_use_sync", blend_space->is_using_sync()); undo_redo->add_do_method(this, "_update_space"); undo_redo->add_undo_method(this, "_update_space"); undo_redo->commit_action(); @@ -650,6 +654,12 @@ AnimationNodeBlendSpace1DEditor::AnimationNodeBlendSpace1DEditor() { snap_value->set_step(0.01); snap_value->set_max(1000); + top_hb->add_child(memnew(VSeparator)); + top_hb->add_child(memnew(Label(TTR("Sync:")))); + sync = memnew(CheckBox); + top_hb->add_child(sync); + sync->connect("toggled", callable_mp(this, &AnimationNodeBlendSpace1DEditor::_config_changed)); + edit_hb = memnew(HBoxContainer); top_hb->add_child(edit_hb); edit_hb->add_child(memnew(VSeparator)); diff --git a/editor/plugins/animation_blend_space_1d_editor.h b/editor/plugins/animation_blend_space_1d_editor.h index 2f7dee65fc..3488b4bf30 100644 --- a/editor/plugins/animation_blend_space_1d_editor.h +++ b/editor/plugins/animation_blend_space_1d_editor.h @@ -61,6 +61,8 @@ class AnimationNodeBlendSpace1DEditor : public AnimationTreeNodeEditorPlugin { SpinBox *max_value = nullptr; SpinBox *min_value = nullptr; + CheckBox *sync = nullptr; + HBoxContainer *edit_hb = nullptr; SpinBox *edit_value = nullptr; Button *open_editor = nullptr; diff --git a/editor/plugins/animation_blend_space_2d_editor.cpp b/editor/plugins/animation_blend_space_2d_editor.cpp index dfde63ecb6..51aaa4f010 100644 --- a/editor/plugins/animation_blend_space_2d_editor.cpp +++ b/editor/plugins/animation_blend_space_2d_editor.cpp @@ -595,6 +595,7 @@ void AnimationNodeBlendSpace2DEditor::_update_space() { auto_triangles->set_pressed(blend_space->get_auto_triangles()); + sync->set_pressed(blend_space->is_using_sync()); interpolation->select(blend_space->get_blend_mode()); max_x_value->set_value(blend_space->get_max_space().x); @@ -620,13 +621,15 @@ void AnimationNodeBlendSpace2DEditor::_config_changed(double) { } updating = true; - undo_redo->create_action(TTR("Change BlendSpace2D Limits")); + undo_redo->create_action(TTR("Change BlendSpace2D Config")); undo_redo->add_do_method(blend_space.ptr(), "set_max_space", Vector2(max_x_value->get_value(), max_y_value->get_value())); undo_redo->add_undo_method(blend_space.ptr(), "set_max_space", blend_space->get_max_space()); undo_redo->add_do_method(blend_space.ptr(), "set_min_space", Vector2(min_x_value->get_value(), min_y_value->get_value())); undo_redo->add_undo_method(blend_space.ptr(), "set_min_space", blend_space->get_min_space()); undo_redo->add_do_method(blend_space.ptr(), "set_snap", Vector2(snap_x->get_value(), snap_y->get_value())); undo_redo->add_undo_method(blend_space.ptr(), "set_snap", blend_space->get_snap()); + undo_redo->add_do_method(blend_space.ptr(), "set_use_sync", sync->is_pressed()); + undo_redo->add_undo_method(blend_space.ptr(), "set_use_sync", blend_space->is_using_sync()); undo_redo->add_do_method(blend_space.ptr(), "set_blend_mode", interpolation->get_selected()); undo_redo->add_undo_method(blend_space.ptr(), "set_blend_mode", blend_space->get_blend_mode()); undo_redo->add_do_method(this, "_update_space"); @@ -899,6 +902,13 @@ AnimationNodeBlendSpace2DEditor::AnimationNodeBlendSpace2DEditor() { top_hb->add_child(memnew(VSeparator)); + top_hb->add_child(memnew(Label(TTR("Sync:")))); + sync = memnew(CheckBox); + top_hb->add_child(sync); + sync->connect("toggled", callable_mp(this, &AnimationNodeBlendSpace2DEditor::_config_changed)); + + top_hb->add_child(memnew(VSeparator)); + top_hb->add_child(memnew(Label(TTR("Blend:")))); interpolation = memnew(OptionButton); top_hb->add_child(interpolation); diff --git a/editor/plugins/animation_blend_space_2d_editor.h b/editor/plugins/animation_blend_space_2d_editor.h index db54e84254..88b9072599 100644 --- a/editor/plugins/animation_blend_space_2d_editor.h +++ b/editor/plugins/animation_blend_space_2d_editor.h @@ -55,6 +55,7 @@ class AnimationNodeBlendSpace2DEditor : public AnimationTreeNodeEditorPlugin { Button *snap = nullptr; SpinBox *snap_x = nullptr; SpinBox *snap_y = nullptr; + CheckBox *sync = nullptr; OptionButton *interpolation = nullptr; Button *auto_triangles = nullptr; 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/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/bone_map_editor_plugin.cpp b/editor/plugins/bone_map_editor_plugin.cpp index fffadae3eb..967a95be9d 100644 --- a/editor/plugins/bone_map_editor_plugin.cpp +++ b/editor/plugins/bone_map_editor_plugin.cpp @@ -32,6 +32,7 @@ #include "editor/editor_scale.h" #include "editor/import/post_import_plugin_skeleton_renamer.h" +#include "editor/import/post_import_plugin_skeleton_rest_fixer.h" #include "editor/import/scene_import_settings.h" void BoneMapperButton::fetch_textures() { @@ -71,6 +72,10 @@ void BoneMapperButton::set_state(BoneMapState p_state) { } } +bool BoneMapperButton::is_require() const { + return require; +} + void BoneMapperButton::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { @@ -79,8 +84,9 @@ void BoneMapperButton::_notification(int p_what) { } } -BoneMapperButton::BoneMapperButton(const StringName p_profile_bone_name, bool p_selected) { +BoneMapperButton::BoneMapperButton(const StringName p_profile_bone_name, bool p_require, bool p_selected) { profile_bone_name = p_profile_bone_name; + require = p_require; selected = p_selected; } @@ -89,7 +95,7 @@ BoneMapperButton::~BoneMapperButton() { void BoneMapperItem::create_editor() { skeleton_bone_selector = memnew(EditorPropertyTextEnum); - skeleton_bone_selector->setup(skeleton_bone_names); + skeleton_bone_selector->setup(skeleton_bone_names, false, true); skeleton_bone_selector->set_label(profile_bone_name); skeleton_bone_selector->set_selectable(false); skeleton_bone_selector->set_object_and_property(bone_map.ptr(), "bone_map/" + String(profile_bone_name)); @@ -251,7 +257,7 @@ void BoneMapper::recreate_editor() { for (int i = 0; i < len; i++) { if (profile->get_group(i) == profile->get_group_name(current_group_idx)) { - BoneMapperButton *mb = memnew(BoneMapperButton(profile->get_bone_name(i), current_bone_idx == i)); + BoneMapperButton *mb = memnew(BoneMapperButton(profile->get_bone_name(i), profile->is_require(i), current_bone_idx == i)); mb->connect("pressed", callable_mp(this, &BoneMapper::set_current_bone_idx), varray(i), CONNECT_DEFERRED); mb->set_h_grow_direction(GROW_DIRECTION_BOTH); mb->set_v_grow_direction(GROW_DIRECTION_BOTH); @@ -284,8 +290,6 @@ void BoneMapper::recreate_items() { Ref<SkeletonProfile> profile = bone_map->get_profile(); if (profile.is_valid()) { PackedStringArray skeleton_bone_names; - skeleton_bone_names.push_back(String()); - int len = skeleton->get_bone_count(); for (int i = 0; i < len; i++) { skeleton_bone_names.push_back(skeleton->get_bone_name(i)); @@ -314,7 +318,11 @@ void BoneMapper::_update_state() { bone_mapper_buttons[i]->set_state(BoneMapperButton::BONE_MAP_STATE_ERROR); } } else { - bone_mapper_buttons[i]->set_state(BoneMapperButton::BONE_MAP_STATE_UNSET); + if (bone_mapper_buttons[i]->is_require()) { + bone_mapper_buttons[i]->set_state(BoneMapperButton::BONE_MAP_STATE_ERROR); + } else { + bone_mapper_buttons[i]->set_state(BoneMapperButton::BONE_MAP_STATE_UNSET); + } } } } @@ -396,9 +404,12 @@ void BoneMapEditor::_notification(int p_what) { create_editors(); } break; case NOTIFICATION_EXIT_TREE: { + if (!bone_mapper) { + return; + } remove_child(bone_mapper); bone_mapper->queue_delete(); - } + } break; } } @@ -436,4 +447,8 @@ BoneMapEditorPlugin::BoneMapEditorPlugin() { Ref<PostImportPluginSkeletonRenamer> post_import_plugin_renamer; post_import_plugin_renamer.instantiate(); add_scene_post_import_plugin(post_import_plugin_renamer); + + Ref<PostImportPluginSkeletonRestFixer> post_import_plugin_rest_fixer; + post_import_plugin_rest_fixer.instantiate(); + add_scene_post_import_plugin(post_import_plugin_rest_fixer); } diff --git a/editor/plugins/bone_map_editor_plugin.h b/editor/plugins/bone_map_editor_plugin.h index 0ec9f74373..e1ea6b4060 100644 --- a/editor/plugins/bone_map_editor_plugin.h +++ b/editor/plugins/bone_map_editor_plugin.h @@ -53,6 +53,7 @@ public: private: StringName profile_bone_name; bool selected = false; + bool require = false; TextureRect *circle; @@ -65,7 +66,9 @@ public: StringName get_profile_bone_name() const; void set_state(BoneMapState p_state); - BoneMapperButton(const StringName p_profile_bone_name, bool p_selected); + bool is_require() const; + + BoneMapperButton(const StringName p_profile_bone_name, bool p_require, bool p_selected); ~BoneMapperButton(); }; diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index 7e525a4698..9723fece5e 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -1201,7 +1201,7 @@ bool CanvasItemEditor::_gui_input_rulers_and_guides(const Ref<InputEvent> &p_eve } snap_target[0] = SNAP_TARGET_NONE; snap_target[1] = SNAP_TARGET_NONE; - drag_type = DRAG_NONE; + _reset_drag(); viewport->update(); return true; } @@ -1369,14 +1369,14 @@ bool CanvasItemEditor::_gui_input_pivot(const Ref<InputEvent> &p_event) { drag_selection[0]->get_name(), drag_selection[0]->_edit_get_pivot().x, drag_selection[0]->_edit_get_pivot().y)); - drag_type = DRAG_NONE; + _reset_drag(); return true; } // Cancel a drag if (b.is_valid() && b->get_button_index() == MouseButton::RIGHT && b->is_pressed()) { _restore_canvas_item_state(drag_selection); - drag_type = DRAG_NONE; + _reset_drag(); viewport->update(); return true; } @@ -1452,14 +1452,14 @@ bool CanvasItemEditor::_gui_input_rotate(const Ref<InputEvent> &p_event) { _insert_animation_keys(false, true, false, true); } - drag_type = DRAG_NONE; + _reset_drag(); return true; } // Cancel a drag if (b.is_valid() && b->get_button_index() == MouseButton::RIGHT && b->is_pressed()) { _restore_canvas_item_state(drag_selection); - drag_type = DRAG_NONE; + _reset_drag(); viewport->update(); return true; } @@ -1614,14 +1614,14 @@ bool CanvasItemEditor::_gui_input_anchors(const Ref<InputEvent> &p_event) { _commit_canvas_item_state( drag_selection, vformat(TTR("Move CanvasItem \"%s\" Anchor"), drag_selection[0]->get_name())); - drag_type = DRAG_NONE; + _reset_drag(); return true; } // Cancel a drag if (b.is_valid() && b->get_button_index() == MouseButton::RIGHT && b->is_pressed()) { _restore_canvas_item_state(drag_selection); - drag_type = DRAG_NONE; + _reset_drag(); viewport->update(); return true; } @@ -1820,7 +1820,7 @@ bool CanvasItemEditor::_gui_input_resize(const Ref<InputEvent> &p_event) { snap_target[0] = SNAP_TARGET_NONE; snap_target[1] = SNAP_TARGET_NONE; - drag_type = DRAG_NONE; + _reset_drag(); viewport->update(); return true; } @@ -1830,7 +1830,7 @@ bool CanvasItemEditor::_gui_input_resize(const Ref<InputEvent> &p_event) { _restore_canvas_item_state(drag_selection); snap_target[0] = SNAP_TARGET_NONE; snap_target[1] = SNAP_TARGET_NONE; - drag_type = DRAG_NONE; + _reset_drag(); viewport->update(); return true; } @@ -1959,7 +1959,7 @@ bool CanvasItemEditor::_gui_input_scale(const Ref<InputEvent> &p_event) { _insert_animation_keys(false, false, true, true); } - drag_type = DRAG_NONE; + _reset_drag(); viewport->update(); return true; } @@ -1967,7 +1967,7 @@ bool CanvasItemEditor::_gui_input_scale(const Ref<InputEvent> &p_event) { // Cancel a drag if (b.is_valid() && b->get_button_index() == MouseButton::RIGHT && b->is_pressed()) { _restore_canvas_item_state(drag_selection); - drag_type = DRAG_NONE; + _reset_drag(); viewport->update(); return true; } @@ -2092,7 +2092,7 @@ bool CanvasItemEditor::_gui_input_move(const Ref<InputEvent> &p_event) { snap_target[0] = SNAP_TARGET_NONE; snap_target[1] = SNAP_TARGET_NONE; - drag_type = DRAG_NONE; + _reset_drag(); viewport->update(); return true; } @@ -2102,7 +2102,7 @@ bool CanvasItemEditor::_gui_input_move(const Ref<InputEvent> &p_event) { _restore_canvas_item_state(drag_selection, true); snap_target[0] = SNAP_TARGET_NONE; snap_target[1] = SNAP_TARGET_NONE; - drag_type = DRAG_NONE; + _reset_drag(); viewport->update(); return true; } @@ -2209,7 +2209,7 @@ bool CanvasItemEditor::_gui_input_move(const Ref<InputEvent> &p_event) { drag_selection[0]->_edit_get_position().y), true); } - drag_type = DRAG_NONE; + _reset_drag(); } viewport->update(); return true; @@ -2360,7 +2360,7 @@ bool CanvasItemEditor::_gui_input_select(const Ref<InputEvent> &p_event) { if (drag_type == DRAG_QUEUED) { if (b.is_valid() && !b->is_pressed()) { - drag_type = DRAG_NONE; + _reset_drag(); return true; } if (m.is_valid()) { @@ -2411,14 +2411,14 @@ bool CanvasItemEditor::_gui_input_select(const Ref<InputEvent> &p_event) { } } - drag_type = DRAG_NONE; + _reset_drag(); viewport->update(); return true; } if (b.is_valid() && b->is_pressed() && b->get_button_index() == MouseButton::RIGHT) { // Cancel box selection - drag_type = DRAG_NONE; + _reset_drag(); viewport->update(); return true; } @@ -3645,7 +3645,7 @@ void CanvasItemEditor::_draw_hover() { } void CanvasItemEditor::_draw_transform_message() { - if (drag_selection.is_empty() || !drag_selection.front()->get()) { + if (drag_type == DRAG_NONE || drag_selection.is_empty() || !drag_selection.front()->get()) { return; } String transform_message; @@ -3981,7 +3981,7 @@ void CanvasItemEditor::_notification(int p_what) { void CanvasItemEditor::_selection_changed() { if (!selected_from_canvas) { - drag_type = DRAG_NONE; + _reset_drag(); } selected_from_canvas = false; } @@ -3989,7 +3989,7 @@ void CanvasItemEditor::_selection_changed() { void CanvasItemEditor::edit(CanvasItem *p_canvas_item) { Array selection = editor_selection->get_selected_nodes(); if (selection.size() != 1 || Object::cast_to<Node>(selection[0]) != p_canvas_item) { - drag_type = DRAG_NONE; + _reset_drag(); // Clear the selection editor_selection->clear(); //_clear_canvas_items(); @@ -4701,6 +4701,11 @@ void CanvasItemEditor::_focus_selection(int p_op) { } } +void CanvasItemEditor::_reset_drag() { + drag_type = DRAG_NONE; + drag_selection.clear(); +} + void CanvasItemEditor::_bind_methods() { ClassDB::bind_method(D_METHOD("_update_override_camera_button", "game_running"), &CanvasItemEditor::_update_override_camera_button); ClassDB::bind_method("_get_editor_data", &CanvasItemEditor::_get_editor_data); diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h index 5f50882dba..83685baf7a 100644 --- a/editor/plugins/canvas_item_editor_plugin.h +++ b/editor/plugins/canvas_item_editor_plugin.h @@ -455,8 +455,8 @@ private: void _update_cursor(); void _selection_changed(); - void _focus_selection(int p_op); + void _reset_drag(); SnapTarget snap_target[2]; Transform2D snap_transform; 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 a00ed1e49a..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() { @@ -859,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 { @@ -915,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/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 99c492379d..7530f88fef 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -2379,19 +2379,19 @@ void Node3DEditorPlugin::edited_scene_changed() { void Node3DEditorViewport::_project_settings_changed() { //update shadow atlas if changed - int shadowmap_size = ProjectSettings::get_singleton()->get("rendering/shadows/shadow_atlas/size"); - bool shadowmap_16_bits = ProjectSettings::get_singleton()->get("rendering/shadows/shadow_atlas/16_bits"); - int atlas_q0 = ProjectSettings::get_singleton()->get("rendering/shadows/shadow_atlas/quadrant_0_subdiv"); - int atlas_q1 = ProjectSettings::get_singleton()->get("rendering/shadows/shadow_atlas/quadrant_1_subdiv"); - int atlas_q2 = ProjectSettings::get_singleton()->get("rendering/shadows/shadow_atlas/quadrant_2_subdiv"); - int atlas_q3 = ProjectSettings::get_singleton()->get("rendering/shadows/shadow_atlas/quadrant_3_subdiv"); - - viewport->set_shadow_atlas_size(shadowmap_size); - viewport->set_shadow_atlas_16_bits(shadowmap_16_bits); - viewport->set_shadow_atlas_quadrant_subdiv(0, Viewport::ShadowAtlasQuadrantSubdiv(atlas_q0)); - viewport->set_shadow_atlas_quadrant_subdiv(1, Viewport::ShadowAtlasQuadrantSubdiv(atlas_q1)); - viewport->set_shadow_atlas_quadrant_subdiv(2, Viewport::ShadowAtlasQuadrantSubdiv(atlas_q2)); - viewport->set_shadow_atlas_quadrant_subdiv(3, Viewport::ShadowAtlasQuadrantSubdiv(atlas_q3)); + int shadowmap_size = ProjectSettings::get_singleton()->get("rendering/shadows/positional_shadow/atlas_size"); + bool shadowmap_16_bits = ProjectSettings::get_singleton()->get("rendering/shadows/positional_shadow/atlas_16_bits"); + int atlas_q0 = ProjectSettings::get_singleton()->get("rendering/shadows/positional_shadow/atlas_quadrant_0_subdiv"); + int atlas_q1 = ProjectSettings::get_singleton()->get("rendering/shadows/positional_shadow/atlas_quadrant_1_subdiv"); + int atlas_q2 = ProjectSettings::get_singleton()->get("rendering/shadows/positional_shadow/atlas_quadrant_2_subdiv"); + int atlas_q3 = ProjectSettings::get_singleton()->get("rendering/shadows/positional_shadow/atlas_quadrant_3_subdiv"); + + viewport->set_positional_shadow_atlas_size(shadowmap_size); + viewport->set_positional_shadow_atlas_16_bits(shadowmap_16_bits); + viewport->set_positional_shadow_atlas_quadrant_subdiv(0, Viewport::PositionalShadowAtlasQuadrantSubdiv(atlas_q0)); + viewport->set_positional_shadow_atlas_quadrant_subdiv(1, Viewport::PositionalShadowAtlasQuadrantSubdiv(atlas_q1)); + viewport->set_positional_shadow_atlas_quadrant_subdiv(2, Viewport::PositionalShadowAtlasQuadrantSubdiv(atlas_q2)); + viewport->set_positional_shadow_atlas_quadrant_subdiv(3, Viewport::PositionalShadowAtlasQuadrantSubdiv(atlas_q3)); _update_shrink(); 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/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/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp index 04b407ce65..d79d2e9012 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)); @@ -923,6 +923,15 @@ ShaderEditor *ShaderEditorPlugin::get_shader_editor(const Ref<Shader> &p_for_sha return nullptr; } +VisualShaderEditor *ShaderEditorPlugin::get_visual_shader_editor(const Ref<Shader> &p_for_shader) { + for (uint32_t i = 0; i < edited_shaders.size(); i++) { + if (edited_shaders[i].shader == p_for_shader) { + return edited_shaders[i].visual_shader_editor; + } + } + return nullptr; +} + void ShaderEditorPlugin::save_external_data() { for (uint32_t i = 0; i < edited_shaders.size(); i++) { if (edited_shaders[i].shader_editor) { @@ -950,6 +959,7 @@ void ShaderEditorPlugin::_close_shader(int p_index) { memdelete(c); edited_shaders.remove_at(index); _update_shader_list(); + EditorNode::get_singleton()->get_undo_redo()->clear_history(); // To prevent undo on deleted graphs. } void ShaderEditorPlugin::_resource_saved(Object *obj) { diff --git a/editor/plugins/shader_editor_plugin.h b/editor/plugins/shader_editor_plugin.h index e1e815f939..2e0dbe0d60 100644 --- a/editor/plugins/shader_editor_plugin.h +++ b/editor/plugins/shader_editor_plugin.h @@ -209,6 +209,7 @@ public: virtual void selected_notify() override; ShaderEditor *get_shader_editor(const Ref<Shader> &p_for_shader); + VisualShaderEditor *get_visual_shader_editor(const Ref<Shader> &p_for_shader); virtual void save_external_data() override; virtual void apply_changes() override; diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp index 8845fe9eca..93e44c8ca0 100644 --- a/editor/plugins/skeleton_3d_editor_plugin.cpp +++ b/editor/plugins/skeleton_3d_editor_plugin.cpp @@ -42,6 +42,7 @@ #include "scene/3d/mesh_instance_3d.h" #include "scene/3d/physics_body_3d.h" #include "scene/resources/capsule_shape_3d.h" +#include "scene/resources/skeleton_profile.h" #include "scene/resources/sphere_shape_3d.h" #include "scene/resources/surface_tool.h" @@ -250,6 +251,10 @@ void Skeleton3DEditor::_on_click_skeleton_option(int p_skeleton_option) { create_physical_skeleton(); break; } + case SKELETON_OPTION_EXPORT_SKELETON_PROFILE: { + export_skeleton_profile(); + break; + } } } @@ -451,6 +456,73 @@ PhysicalBone3D *Skeleton3DEditor::create_physical_bone(int bone_id, int bone_chi return physical_bone; } +void Skeleton3DEditor::export_skeleton_profile() { + file_dialog->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE); + file_dialog->set_title(TTR("Export Skeleton Profile As...")); + + List<String> exts; + ResourceLoader::get_recognized_extensions_for_type("SkeletonProfile", &exts); + file_dialog->clear_filters(); + for (const String &K : exts) { + file_dialog->add_filter("*." + K); + } + + file_dialog->popup_file_dialog(); +} + +void Skeleton3DEditor::_file_selected(const String &p_file) { + // Export SkeletonProfile. + Ref<SkeletonProfile> sp(memnew(SkeletonProfile)); + + // Build SkeletonProfile. + sp->set_group_size(1); + + Vector<Vector2> handle_positions; + Vector2 position_max; + Vector2 position_min; + + int len = skeleton->get_bone_count(); + sp->set_bone_size(len); + for (int i = 0; i < len; i++) { + sp->set_bone_name(i, skeleton->get_bone_name(i)); + int parent = skeleton->get_bone_parent(i); + if (parent >= 0) { + sp->set_bone_parent(i, skeleton->get_bone_name(parent)); + } + sp->set_reference_pose(i, skeleton->get_bone_rest(i)); + + Transform3D grest = skeleton->get_bone_global_rest(i); + handle_positions.append(Vector2(grest.origin.x, grest.origin.y)); + if (i == 0) { + position_max = Vector2(grest.origin.x, grest.origin.y); + position_min = Vector2(grest.origin.x, grest.origin.y); + } else { + position_max.x = MAX(grest.origin.x, position_max.x); + position_max.y = MAX(grest.origin.y, position_max.y); + position_min.x = MIN(grest.origin.x, position_min.x); + position_min.y = MIN(grest.origin.y, position_min.y); + } + } + + // Layout handles provisionaly. + Vector2 bound = Vector2(position_max.x - position_min.x, position_max.y - position_min.y); + Vector2 center = Vector2((position_max.x + position_min.x) * 0.5, (position_max.y + position_min.y) * 0.5); + float nrm = MAX(bound.x, bound.y); + if (nrm > 0) { + for (int i = 0; i < len; i++) { + handle_positions.write[i] = (handle_positions[i] - center) / nrm * 0.9; + sp->set_handle_offset(i, Vector2(0.5 + handle_positions[i].x, 0.5 - handle_positions[i].y)); + } + } + + Error err = ResourceSaver::save(p_file, sp); + + if (err != OK) { + EditorNode::get_singleton()->show_warning(vformat(TTR("Error saving file: %s"), p_file)); + return; + } +} + Variant Skeleton3DEditor::get_drag_data_fw(const Point2 &p_point, Control *p_from) { TreeItem *selected = joint_tree->get_selected(); @@ -631,6 +703,11 @@ void Skeleton3DEditor::create_editors() { Node3DEditor *ne = Node3DEditor::get_singleton(); AnimationTrackEditor *te = AnimationPlayerEditor::get_singleton()->get_track_editor(); + // Create File dialog. + file_dialog = memnew(EditorFileDialog); + file_dialog->connect("file_selected", callable_mp(this, &Skeleton3DEditor::_file_selected)); + add_child(file_dialog); + // Create Top Menu Bar. separator = memnew(VSeparator); ne->add_control_to_menu_panel(separator); @@ -649,6 +726,7 @@ void Skeleton3DEditor::create_editors() { p->add_shortcut(ED_SHORTCUT("skeleton_3d_editor/all_poses_to_rests", TTR("Apply all poses to rests")), SKELETON_OPTION_ALL_POSES_TO_RESTS); p->add_shortcut(ED_SHORTCUT("skeleton_3d_editor/selected_poses_to_rests", TTR("Apply selected poses to rests")), SKELETON_OPTION_SELECTED_POSES_TO_RESTS); p->add_item(TTR("Create physical skeleton"), SKELETON_OPTION_CREATE_PHYSICAL_SKELETON); + p->add_item(TTR("Export skeleton profile"), SKELETON_OPTION_EXPORT_SKELETON_PROFILE); p->connect("id_pressed", callable_mp(this, &Skeleton3DEditor::_on_click_skeleton_option)); set_bone_options_enabled(false); diff --git a/editor/plugins/skeleton_3d_editor_plugin.h b/editor/plugins/skeleton_3d_editor_plugin.h index 8f03e7c8db..975b54fa77 100644 --- a/editor/plugins/skeleton_3d_editor_plugin.h +++ b/editor/plugins/skeleton_3d_editor_plugin.h @@ -101,6 +101,7 @@ class Skeleton3DEditor : public VBoxContainer { SKELETON_OPTION_ALL_POSES_TO_RESTS, SKELETON_OPTION_SELECTED_POSES_TO_RESTS, SKELETON_OPTION_CREATE_PHYSICAL_SKELETON, + SKELETON_OPTION_EXPORT_SKELETON_PROFILE, }; struct BoneInfo { @@ -155,6 +156,8 @@ class Skeleton3DEditor : public VBoxContainer { void create_physical_skeleton(); PhysicalBone3D *create_physical_bone(int bone_id, int bone_child_id, const Vector<BoneInfo> &bones_infos); + void export_skeleton_profile(); + Variant get_drag_data_fw(const Point2 &p_point, Control *p_from); bool can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) const; void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from); 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..e7c2e455e6 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) { @@ -423,6 +423,7 @@ void SpriteFramesEditor::_notification(int p_what) { zoom_in->set_icon(get_theme_icon(SNAME("ZoomMore"), SNAME("EditorIcons"))); new_anim->set_icon(get_theme_icon(SNAME("New"), SNAME("EditorIcons"))); remove_anim->set_icon(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons"))); + anim_search_box->set_right_icon(get_theme_icon(SNAME("Search"), SNAME("EditorIcons"))); split_sheet_zoom_out->set_icon(get_theme_icon(SNAME("ZoomLess"), SNAME("EditorIcons"))); split_sheet_zoom_reset->set_icon(get_theme_icon(SNAME("ZoomReset"), SNAME("EditorIcons"))); split_sheet_zoom_in->set_icon(get_theme_icon(SNAME("ZoomMore"), SNAME("EditorIcons"))); @@ -449,7 +450,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 +517,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 } @@ -750,7 +751,7 @@ void SpriteFramesEditor::_animation_name_edited() { undo_redo->add_do_method(this, "_update_library"); undo_redo->add_undo_method(this, "_update_library"); - edited_anim = new_name; + edited_anim = name; undo_redo->commit_action(); } @@ -816,6 +817,10 @@ void SpriteFramesEditor::_animation_remove_confirmed() { undo_redo->commit_action(); } +void SpriteFramesEditor::_animation_search_text_changed(const String &p_text) { + _update_library(); +} + void SpriteFramesEditor::_animation_loop_changed() { if (updating) { return; @@ -900,14 +905,19 @@ void SpriteFramesEditor::_update_library(bool p_skip_selector) { TreeItem *anim_root = animations->create_item(); List<StringName> anim_names; - frames->get_animation_list(&anim_names); - anim_names.sort_custom<StringName::AlphCompare>(); + bool searching = anim_search_box->get_text().size(); + String searched_string = searching ? anim_search_box->get_text().to_lower() : String(); + for (const StringName &E : anim_names) { String name = E; + if (searching && name.to_lower().find(searched_string) < 0) { + continue; + } + TreeItem *it = animations->create_item(anim_root); it->set_metadata(0, name); @@ -970,7 +980,6 @@ void SpriteFramesEditor::_update_library(bool p_skip_selector) { anim_loop->set_pressed(frames->get_animation_loop(edited_anim)); updating = false; - //player->add_resource("default",resource); } void SpriteFramesEditor::edit(SpriteFrames *p_frames) { @@ -1157,6 +1166,13 @@ SpriteFramesEditor::SpriteFramesEditor() { hbc_animlist->add_child(remove_anim); remove_anim->connect("pressed", callable_mp(this, &SpriteFramesEditor::_animation_remove)); + anim_search_box = memnew(LineEdit); + hbc_animlist->add_child(anim_search_box); + anim_search_box->set_h_size_flags(SIZE_EXPAND_FILL); + anim_search_box->set_placeholder(TTR("Filter animations")); + anim_search_box->set_clear_button_enabled(true); + anim_search_box->connect("text_changed", callable_mp(this, &SpriteFramesEditor::_animation_search_text_changed)); + animations = memnew(Tree); sub_vb->add_child(animations); animations->set_v_size_flags(SIZE_EXPAND_FILL); @@ -1448,6 +1464,10 @@ SpriteFramesEditor::SpriteFramesEditor() { max_sheet_zoom = 16.0f * MAX(1.0f, EDSCALE); min_sheet_zoom = 0.01f * MAX(1.0f, EDSCALE); _zoom_reset(); + + // Ensure the anim search box is wide enough by default. + // Not by setting its minimum size so it can still be shrinked if desired. + set_split_offset(56 * EDSCALE); } void SpriteFramesEditorPlugin::edit(Object *p_object) { diff --git a/editor/plugins/sprite_frames_editor_plugin.h b/editor/plugins/sprite_frames_editor_plugin.h index 3c8c5ef19d..6352259b73 100644 --- a/editor/plugins/sprite_frames_editor_plugin.h +++ b/editor/plugins/sprite_frames_editor_plugin.h @@ -37,6 +37,7 @@ #include "scene/gui/check_button.h" #include "scene/gui/dialogs.h" #include "scene/gui/item_list.h" +#include "scene/gui/line_edit.h" #include "scene/gui/scroll_container.h" #include "scene/gui/spin_box.h" #include "scene/gui/split_container.h" @@ -73,6 +74,7 @@ class SpriteFramesEditor : public HSplitContainer { Button *new_anim = nullptr; Button *remove_anim = nullptr; + LineEdit *anim_search_box = nullptr; Tree *animations = nullptr; SpinBox *anim_speed = nullptr; @@ -137,6 +139,7 @@ class SpriteFramesEditor : public HSplitContainer { void _animation_add(); void _animation_remove(); void _animation_remove_confirmed(); + void _animation_search_text_changed(const String &p_text); void _animation_loop_changed(); void _animation_fps_changed(double p_value); 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 b01b90cd08..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); } @@ -3269,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); } @@ -3663,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)); 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_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..69a125a029 100644 --- a/editor/plugins/visual_shader_editor_plugin.cpp +++ b/editor/plugins/visual_shader_editor_plugin.cpp @@ -40,6 +40,7 @@ #include "editor/editor_node.h" #include "editor/editor_properties.h" #include "editor/editor_scale.h" +#include "editor/plugins/shader_editor_plugin.h" #include "scene/animation/animation_player.h" #include "scene/gui/menu_button.h" #include "scene/gui/panel.h" @@ -72,6 +73,10 @@ const int MAX_FLOAT_CONST_DEFS = sizeof(float_constant_defs) / sizeof(FloatConst /////////////////// +void VisualShaderNodePlugin::set_editor(VisualShaderEditor *p_editor) { + vseditor = p_editor; +} + Control *VisualShaderNodePlugin::create_editor(const Ref<Resource> &p_parent_resource, const Ref<VisualShaderNode> &p_node) { Object *ret; if (GDVIRTUAL_CALL(_create_editor, p_parent_resource, p_node, ret)) { @@ -115,6 +120,10 @@ void VisualShaderGraphPlugin::_bind_methods() { ClassDB::bind_method("update_curve_xyz", &VisualShaderGraphPlugin::update_curve_xyz); } +void VisualShaderGraphPlugin::set_editor(VisualShaderEditor *p_editor) { + editor = p_editor; +} + void VisualShaderGraphPlugin::register_shader(VisualShader *p_shader) { visual_shader = Ref<VisualShader>(p_shader); } @@ -186,10 +195,6 @@ void VisualShaderGraphPlugin::set_input_port_default_value(VisualShader::Type p_ switch (p_value.get_type()) { case Variant::COLOR: { - VisualShaderEditor *editor = VisualShaderEditor::get_singleton(); - if (!editor) { - break; - } button->set_custom_minimum_size(Size2(30, 0) * EDSCALE); Callable ce = callable_mp(editor, &VisualShaderEditor::_draw_color_over_button); @@ -337,10 +342,6 @@ void VisualShaderGraphPlugin::register_uniform_name(int p_node_id, LineEdit *p_u } void VisualShaderGraphPlugin::update_theme() { - VisualShaderEditor *editor = VisualShaderEditor::get_singleton(); - if (!editor) { - return; - } vector_expanded_color[0] = editor->get_theme_color(SNAME("axis_x_color"), SNAME("Editor")); // red vector_expanded_color[1] = editor->get_theme_color(SNAME("axis_y_color"), SNAME("Editor")); // green vector_expanded_color[2] = editor->get_theme_color(SNAME("axis_z_color"), SNAME("Editor")); // blue @@ -351,10 +352,6 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) { if (!visual_shader.is_valid() || p_type != visual_shader->get_shader_type()) { return; } - VisualShaderEditor *editor = VisualShaderEditor::get_singleton(); - if (!editor) { - return; - } GraphEdit *graph = editor->graph; if (!graph) { return; @@ -474,6 +471,12 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) { node->set_custom_minimum_size(Size2(200 * EDSCALE, 0)); } + Ref<VisualShaderNodeUniformRef> uniform_ref = vsnode; + if (uniform_ref.is_valid()) { + uniform_ref->set_shader_rid(visual_shader->get_rid()); + uniform_ref->update_uniform_type(); + } + Ref<VisualShaderNodeUniform> uniform = vsnode; HBoxContainer *hb = nullptr; @@ -1035,10 +1038,6 @@ void VisualShaderGraphPlugin::remove_node(VisualShader::Type p_type, int p_id) { } void VisualShaderGraphPlugin::connect_nodes(VisualShader::Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) { - VisualShaderEditor *editor = VisualShaderEditor::get_singleton(); - if (!editor) { - return; - } GraphEdit *graph = editor->graph; if (!graph) { return; @@ -1055,10 +1054,6 @@ void VisualShaderGraphPlugin::connect_nodes(VisualShader::Type p_type, int p_fro } void VisualShaderGraphPlugin::disconnect_nodes(VisualShader::Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) { - VisualShaderEditor *editor = VisualShaderEditor::get_singleton(); - if (!editor) { - return; - } GraphEdit *graph = editor->graph; if (!graph) { return; @@ -1085,6 +1080,10 @@ VisualShaderGraphPlugin::~VisualShaderGraphPlugin() { ///////////////// +Vector2 VisualShaderEditor::selection_center; +List<VisualShaderEditor::CopyItem> VisualShaderEditor::copy_items_buffer; +List<VisualShader::Connection> VisualShaderEditor::copy_connections_buffer; + void VisualShaderEditor::edit(VisualShader *p_visual_shader) { bool changed = false; if (p_visual_shader) { @@ -1602,7 +1601,7 @@ void VisualShaderEditor::_update_created_node(GraphNode *node) { } void VisualShaderEditor::_update_uniforms(bool p_update_refs) { - VisualShaderNodeUniformRef::clear_uniforms(); + VisualShaderNodeUniformRef::clear_uniforms(visual_shader->get_rid()); for (int t = 0; t < VisualShader::TYPE_MAX; t++) { Vector<int> tnodes = visual_shader->get_node_list((VisualShader::Type)t); @@ -1640,7 +1639,7 @@ void VisualShaderEditor::_update_uniforms(bool p_update_refs) { } else { uniform_type = VisualShaderNodeUniformRef::UniformType::UNIFORM_TYPE_SAMPLER; } - VisualShaderNodeUniformRef::add_uniform(uniform->get_uniform_name(), uniform_type); + VisualShaderNodeUniformRef::add_uniform(visual_shader->get_rid(), uniform->get_uniform_name(), uniform_type); } } } @@ -2645,7 +2644,6 @@ void VisualShaderEditor::_add_node(int p_idx, const Vector<Variant> &p_ops, Stri _setup_node(vsn, p_ops); } VisualShaderNodeUniformRef *uniform_ref = Object::cast_to<VisualShaderNodeUniformRef>(vsn); - if (uniform_ref && to_node != -1 && to_slot != -1) { VisualShaderNode::PortType input_port_type = visual_shader->get_node(type, to_node)->get_input_port_type(to_slot); bool success = false; @@ -4644,10 +4642,7 @@ void VisualShaderEditor::_bind_methods() { ClassDB::bind_method("_is_available", &VisualShaderEditor::_is_available); } -VisualShaderEditor *VisualShaderEditor::singleton = nullptr; - VisualShaderEditor::VisualShaderEditor() { - singleton = this; ShaderLanguage::get_keyword_list(&keyword_list); graph = memnew(GraphEdit); @@ -4911,7 +4906,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 +4917,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 +4961,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); @@ -5635,9 +5630,11 @@ VisualShaderEditor::VisualShaderEditor() { Ref<VisualShaderNodePluginDefault> default_plugin; default_plugin.instantiate(); + default_plugin->set_editor(this); add_plugin(default_plugin); graph_plugin.instantiate(); + graph_plugin->set_editor(this); property_editor = memnew(CustomPropertyEditor); add_child(property_editor); @@ -5648,6 +5645,7 @@ VisualShaderEditor::VisualShaderEditor() { class VisualShaderNodePluginInputEditor : public OptionButton { GDCLASS(VisualShaderNodePluginInputEditor, OptionButton); + VisualShaderEditor *editor = nullptr; Ref<VisualShaderNodeInput> input; public: @@ -5660,13 +5658,11 @@ public: } void _item_selected(int p_item) { - VisualShaderEditor *editor = VisualShaderEditor::get_singleton(); - if (editor) { - editor->call_deferred(SNAME("_input_select_item"), input, get_item_text(p_item)); - } + editor->call_deferred(SNAME("_input_select_item"), input, get_item_text(p_item)); } - void setup(const Ref<VisualShaderNodeInput> &p_input) { + void setup(VisualShaderEditor *p_editor, const Ref<VisualShaderNodeInput> &p_input) { + editor = p_editor; input = p_input; Ref<Texture2D> type_icon[] = { EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("float"), SNAME("EditorIcons")), @@ -5699,6 +5695,7 @@ public: class VisualShaderNodePluginVaryingEditor : public OptionButton { GDCLASS(VisualShaderNodePluginVaryingEditor, OptionButton); + VisualShaderEditor *editor = nullptr; Ref<VisualShaderNodeVarying> varying; public: @@ -5709,13 +5706,11 @@ public: } void _item_selected(int p_item) { - VisualShaderEditor *editor = VisualShaderEditor::get_singleton(); - if (editor) { - editor->call_deferred(SNAME("_varying_select_item"), varying, get_item_text(p_item)); - } + editor->call_deferred(SNAME("_varying_select_item"), varying, get_item_text(p_item)); } - void setup(const Ref<VisualShaderNodeVarying> &p_varying, VisualShader::Type p_type) { + void setup(VisualShaderEditor *p_editor, const Ref<VisualShaderNodeVarying> &p_varying, VisualShader::Type p_type) { + editor = p_editor; varying = p_varying; Ref<Texture2D> type_icon[] = { @@ -5776,6 +5771,7 @@ public: class VisualShaderNodePluginUniformRefEditor : public OptionButton { GDCLASS(VisualShaderNodePluginUniformRefEditor, OptionButton); + VisualShaderEditor *editor = nullptr; Ref<VisualShaderNodeUniformRef> uniform_ref; public: @@ -5788,13 +5784,11 @@ public: } void _item_selected(int p_item) { - VisualShaderEditor *editor = VisualShaderEditor::get_singleton(); - if (editor) { - editor->call_deferred(SNAME("_uniform_select_item"), uniform_ref, get_item_text(p_item)); - } + editor->call_deferred(SNAME("_uniform_select_item"), uniform_ref, get_item_text(p_item)); } - void setup(const Ref<VisualShaderNodeUniformRef> &p_uniform_ref) { + void setup(VisualShaderEditor *p_editor, const Ref<VisualShaderNodeUniformRef> &p_uniform_ref) { + editor = p_editor; uniform_ref = p_uniform_ref; Ref<Texture2D> type_icon[] = { @@ -5828,6 +5822,7 @@ public: class VisualShaderNodePluginDefaultEditor : public VBoxContainer { GDCLASS(VisualShaderNodePluginDefaultEditor, VBoxContainer); + VisualShaderEditor *editor = nullptr; Ref<Resource> parent_resource; int node_id = 0; VisualShader::Type shader_type; @@ -5861,13 +5856,10 @@ public: } } if (p_property != "constant") { - VisualShaderEditor *editor = VisualShaderEditor::get_singleton(); - if (editor) { - VisualShaderGraphPlugin *graph_plugin = editor->get_graph_plugin(); - if (graph_plugin) { - undo_redo->add_do_method(graph_plugin, "update_node_deferred", shader_type, node_id); - undo_redo->add_undo_method(graph_plugin, "update_node_deferred", shader_type, node_id); - } + VisualShaderGraphPlugin *graph_plugin = editor->get_graph_plugin(); + if (graph_plugin) { + undo_redo->add_do_method(graph_plugin, "update_node_deferred", shader_type, node_id); + undo_redo->add_undo_method(graph_plugin, "update_node_deferred", shader_type, node_id); } } undo_redo->commit_action(); @@ -5903,7 +5895,8 @@ public: } } - void setup(Ref<Resource> p_parent_resource, Vector<EditorProperty *> p_properties, const Vector<StringName> &p_names, const HashMap<StringName, String> &p_overrided_names, Ref<VisualShaderNode> p_node) { + void setup(VisualShaderEditor *p_editor, Ref<Resource> p_parent_resource, Vector<EditorProperty *> p_properties, const Vector<StringName> &p_names, const HashMap<StringName, String> &p_overrided_names, Ref<VisualShaderNode> p_node) { + editor = p_editor; parent_resource = p_parent_resource; updating = false; node = p_node; @@ -5956,19 +5949,19 @@ Control *VisualShaderNodePluginDefault::create_editor(const Ref<Resource> &p_par if (p_shader.is_valid() && (p_node->is_class("VisualShaderNodeVaryingGetter") || p_node->is_class("VisualShaderNodeVaryingSetter"))) { VisualShaderNodePluginVaryingEditor *editor = memnew(VisualShaderNodePluginVaryingEditor); - editor->setup(p_node, p_shader->get_shader_type()); + editor->setup(vseditor, p_node, p_shader->get_shader_type()); return editor; } if (p_node->is_class("VisualShaderNodeUniformRef")) { VisualShaderNodePluginUniformRefEditor *editor = memnew(VisualShaderNodePluginUniformRefEditor); - editor->setup(p_node); + editor->setup(vseditor, p_node); return editor; } if (p_node->is_class("VisualShaderNodeInput")) { VisualShaderNodePluginInputEditor *editor = memnew(VisualShaderNodePluginInputEditor); - editor->setup(p_node); + editor->setup(vseditor, p_node); return editor; } @@ -6023,22 +6016,22 @@ Control *VisualShaderNodePluginDefault::create_editor(const Ref<Resource> &p_par properties.push_back(pinfo[i].name); } VisualShaderNodePluginDefaultEditor *editor = memnew(VisualShaderNodePluginDefaultEditor); - editor->setup(p_parent_resource, editors, properties, p_node->get_editable_properties_names(), p_node); + editor->setup(vseditor, p_parent_resource, editors, properties, p_node->get_editable_properties_names(), p_node); return editor; } void EditorPropertyShaderMode::_option_selected(int p_which) { - VisualShaderEditor *editor = VisualShaderEditor::get_singleton(); - if (!editor) { + Ref<VisualShader> visual_shader(Object::cast_to<VisualShader>(get_edited_object())); + if (visual_shader->get_mode() == p_which) { return; } - //will not use this, instead will do all the logic setting manually - //emit_signal(SNAME("property_changed"), get_edited_property(), p_which); - - Ref<VisualShader> visual_shader(Object::cast_to<VisualShader>(get_edited_object())); - - if (visual_shader->get_mode() == p_which) { + ShaderEditorPlugin *shader_editor = Object::cast_to<ShaderEditorPlugin>(EditorNode::get_singleton()->get_editor_data().get_editor("Shader")); + if (!shader_editor) { + return; + } + VisualShaderEditor *editor = shader_editor->get_visual_shader_editor(visual_shader); + if (!editor) { return; } @@ -6145,10 +6138,10 @@ bool EditorInspectorShaderModePlugin::can_handle(Object *p_object) { bool EditorInspectorShaderModePlugin::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 == "mode" && p_object->is_class("VisualShader") && p_type == Variant::INT) { - EditorPropertyShaderMode *editor = memnew(EditorPropertyShaderMode); + EditorPropertyShaderMode *mode_editor = memnew(EditorPropertyShaderMode); Vector<String> options = p_hint_text.split(","); - editor->setup(options); - add_property_editor(p_path, editor); + mode_editor->setup(options); + add_property_editor(p_path, mode_editor); return true; } diff --git a/editor/plugins/visual_shader_editor_plugin.h b/editor/plugins/visual_shader_editor_plugin.h index b8da266ed7..2feed6108a 100644 --- a/editor/plugins/visual_shader_editor_plugin.h +++ b/editor/plugins/visual_shader_editor_plugin.h @@ -42,15 +42,21 @@ #include "scene/gui/tree.h" #include "scene/resources/visual_shader.h" +class VisualShaderEditor; + class VisualShaderNodePlugin : public RefCounted { GDCLASS(VisualShaderNodePlugin, RefCounted); protected: + VisualShaderEditor *vseditor = nullptr; + +protected: static void _bind_methods(); GDVIRTUAL2RC(Object *, _create_editor, Ref<Resource>, Ref<VisualShaderNode>) public: + void set_editor(VisualShaderEditor *p_editor); virtual Control *create_editor(const Ref<Resource> &p_parent_resource, const Ref<VisualShaderNode> &p_node); }; @@ -58,6 +64,8 @@ class VisualShaderGraphPlugin : public RefCounted { GDCLASS(VisualShaderGraphPlugin, RefCounted); private: + VisualShaderEditor *editor = nullptr; + struct InputPort { Button *default_input_button = nullptr; }; @@ -91,6 +99,7 @@ protected: static void _bind_methods(); public: + void set_editor(VisualShaderEditor *p_editor); void register_shader(VisualShader *p_visual_shader); void set_connections(const List<VisualShader::Connection> &p_connections); void register_link(VisualShader::Type p_type, int p_id, VisualShaderNode *p_visual_node, GraphNode *p_graph_node); @@ -324,8 +333,6 @@ class VisualShaderEditor : public VBoxContainer { void _update_preview(); String _get_description(int p_idx); - static VisualShaderEditor *singleton; - struct DragOp { VisualShader::Type type = VisualShader::Type::TYPE_MAX; int node = 0; @@ -403,9 +410,9 @@ class VisualShaderEditor : public VBoxContainer { void _duplicate_nodes(); - Vector2 selection_center; - List<CopyItem> copy_items_buffer; - List<VisualShader::Connection> copy_connections_buffer; + static Vector2 selection_center; + static List<CopyItem> copy_items_buffer; + static List<VisualShader::Connection> copy_connections_buffer; void _clear_copy_buffer(); void _copy_nodes(bool p_cut); @@ -482,7 +489,6 @@ public: void add_plugin(const Ref<VisualShaderNodePlugin> &p_plugin); void remove_plugin(const Ref<VisualShaderNodePlugin> &p_plugin); - static VisualShaderEditor *get_singleton() { return singleton; } VisualShaderGraphPlugin *get_graph_plugin() { return graph_plugin.ptr(); } void clear_custom_types(); diff --git a/editor/project_export.cpp b/editor/project_export.cpp index ac32027219..209c997d58 100644 --- a/editor/project_export.cpp +++ b/editor/project_export.cpp @@ -892,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()) { @@ -1195,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 @@ -1222,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 9f13a9d520..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(); @@ -1223,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(); @@ -1307,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/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp index 86fa9222c0..5e1f5ab750 100644 --- a/editor/scene_tree_editor.cpp +++ b/editor/scene_tree_editor.cpp @@ -1359,6 +1359,10 @@ void SceneTreeDialog::_select() { } } +void SceneTreeDialog::_selected_changed() { + get_ok_button()->set_disabled(!tree->get_selected()); +} + void SceneTreeDialog::_filter_changed(const String &p_filter) { tree->set_filter(p_filter); } @@ -1386,6 +1390,10 @@ SceneTreeDialog::SceneTreeDialog() { tree->set_v_size_flags(Control::SIZE_EXPAND_FILL); tree->get_scene_tree()->connect("item_activated", callable_mp(this, &SceneTreeDialog::_select)); vbc->add_child(tree); + + // Disable the OK button when no node is selected. + get_ok_button()->set_disabled(!tree->get_selected()); + tree->connect("node_selected", callable_mp(this, &SceneTreeDialog::_selected_changed)); } SceneTreeDialog::~SceneTreeDialog() { diff --git a/editor/scene_tree_editor.h b/editor/scene_tree_editor.h index 5d4230059c..31a14e4667 100644 --- a/editor/scene_tree_editor.h +++ b/editor/scene_tree_editor.h @@ -176,6 +176,7 @@ class SceneTreeDialog : public ConfirmationDialog { void _select(); void _cancel(); + void _selected_changed(); void _filter_changed(const String &p_filter); void _update_theme(); 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 db28610435..78dd7f2140 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -473,6 +473,10 @@ msgid "Pressure" msgstr "Herset Zoem" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -21471,7 +21475,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konstant" @@ -23434,6 +23438,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Anim Verander Transform" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/ar.po b/editor/translations/ar.po index 93bc2971e8..87266564f8 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -65,13 +65,14 @@ # Awab Najim <dev.djvan@gmail.com>, 2022. # Abderrahim <abdoudido117@gmail.com>, 2022. # Jhon Smith <jhonsmaith3@gmail.com>, 2022. +# Oo mohab oO <mohab9225@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-07-05 07:17+0000\n" -"Last-Translator: Jhon Smith <jhonsmaith3@gmail.com>\n" +"PO-Revision-Date: 2022-07-09 21:11+0000\n" +"Last-Translator: Oo mohab oO <mohab9225@gmail.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/" "godot/ar/>\n" "Language: ar\n" @@ -504,6 +505,10 @@ msgid "Pressure" msgstr "الضغط" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "نسبي" @@ -9299,7 +9304,7 @@ msgstr "المحاذاة الذكية" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Hide" -msgstr "" +msgstr "اخفاء" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -21781,7 +21786,7 @@ msgstr "السفر" msgid "Rotation Degrees" msgstr "يُدير %s من الدرجات." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "ثابت" @@ -23913,6 +23918,11 @@ msgstr "" "قم بتغيير الحجم في أشكال تصادم الأتباع (Children) بدلاً من ذلك." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "الاحتفاظ بالتحوّل الشمولي Global" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/az.po b/editor/translations/az.po index 3701234f3d..cd3e8def9b 100644 --- a/editor/translations/az.po +++ b/editor/translations/az.po @@ -464,6 +464,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20644,7 +20648,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22555,6 +22559,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Animasiyanı Təmizləmə" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/bg.po b/editor/translations/bg.po index 105aad00db..06d16ebe96 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -492,6 +492,10 @@ msgid "Pressure" msgstr "Натиск" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -21205,7 +21209,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "Градуси на завъртане" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Глобална константа" @@ -23243,6 +23247,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Изчистване на трансформацията" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/bn.po b/editor/translations/bn.po index 0e99518ac1..c2ed1a7596 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -484,6 +484,10 @@ msgid "Pressure" msgstr "প্রিসেট..." #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "আপেক্ষিক স্ন্যাপ" @@ -22658,7 +22662,7 @@ msgstr "ভ্রমণ" msgid "Rotation Degrees" msgstr "%s ডিগ্রি ঘূর্ণিত হচ্ছে।" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "ধ্রুবক/কন্সট্যান্ট" @@ -24731,6 +24735,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "সার্বজনীন রূপান্তর রাখুন" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/br.po b/editor/translations/br.po index 101a0f7581..2d7b6fe900 100644 --- a/editor/translations/br.po +++ b/editor/translations/br.po @@ -454,6 +454,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20424,7 +20428,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22317,6 +22321,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Tro Fiñvskeudenn" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index c9726505d3..67f0296b05 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -22,7 +22,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-06-26 16:15+0000\n" +"PO-Revision-Date: 2022-07-09 21:11+0000\n" "Last-Translator: Roger VC <rogervilarasau@gmail.com>\n" "Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/" "godot/ca/>\n" @@ -67,7 +67,7 @@ msgstr "Mode de Baix Us del Processador" #: core/bind/core_bind.cpp msgid "Low Processor Usage Mode Sleep (µsec)" -msgstr "" +msgstr "Mode d'ús del processador baix en repòs (µseg)" #: core/bind/core_bind.cpp main/main.cpp platform/uwp/os_uwp.cpp msgid "Keep Screen On" @@ -136,8 +136,9 @@ msgid "Size" msgstr "Mida" #: core/bind/core_bind.cpp +#, fuzzy msgid "Endian Swap" -msgstr "" +msgstr "Intercanvi d'endian" #: core/bind/core_bind.cpp msgid "Editor Hint" @@ -161,9 +162,8 @@ msgid "Time Scale" msgstr "Escala de Temps" #: core/bind/core_bind.cpp main/main.cpp -#, fuzzy msgid "Physics Jitter Fix" -msgstr "Fotograma de Física %" +msgstr "Correcció de fluctuacions de física" #: core/bind/core_bind.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Error" @@ -246,25 +246,23 @@ msgstr "Connexió" #: core/io/http_client.cpp msgid "Read Chunk Size" -msgstr "" +msgstr "Llegeix la mida del fragment" #: core/io/marshalls.cpp msgid "Object ID" msgstr "ID de l'Objecte" #: core/io/multiplayer_api.cpp core/io/packet_peer.cpp -#, fuzzy msgid "Allow Object Decoding" -msgstr "Activa l'Efecte Paper Ceba" +msgstr "Permet la descodificació d'objectes" #: core/io/multiplayer_api.cpp scene/main/scene_tree.cpp msgid "Refuse New Network Connections" msgstr "Rebutja les noves connexions de xarxa" #: core/io/multiplayer_api.cpp scene/main/scene_tree.cpp -#, fuzzy msgid "Network Peer" -msgstr "Perfilador de Xarxa" +msgstr "Parell de xarxa" #: core/io/multiplayer_api.cpp scene/animation/animation_player.cpp msgid "Root Node" @@ -275,13 +273,12 @@ msgid "Refuse New Connections" msgstr "Rebutjar Noves Connexions" #: core/io/networked_multiplayer_peer.cpp -#, fuzzy msgid "Transfer Mode" -msgstr "Tipus de Transformació" +msgstr "Mode de transferència" #: core/io/packet_peer.cpp msgid "Encode Buffer Max Size" -msgstr "" +msgstr "Mida màxima de la memòria intermèdia de codificació" #: core/io/packet_peer.cpp msgid "Input Buffer Max Size" @@ -297,7 +294,7 @@ msgstr "" #: core/io/stream_peer.cpp msgid "Big Endian" -msgstr "" +msgstr "Endian gran" #: core/io/stream_peer.cpp msgid "Data Array" @@ -373,14 +370,12 @@ msgid "Max Size (KB)" msgstr "Mida màxima (KB)" #: core/os/input.cpp -#, fuzzy msgid "Mouse Mode" -msgstr "Mode de moviment" +msgstr "Mode ratolí" #: core/os/input.cpp -#, fuzzy msgid "Use Accumulated Input" -msgstr "Elimina l'Entrada" +msgstr "Utilitza l'entrada acumulada" #: core/os/input_event.cpp editor/project_settings_editor.cpp #: servers/audio_server.cpp @@ -388,9 +383,8 @@ msgid "Device" msgstr "Dispositiu" #: core/os/input_event.cpp -#, fuzzy msgid "Alt" -msgstr "Tot" +msgstr "Alt" #: core/os/input_event.cpp msgid "Shift" @@ -410,9 +404,8 @@ msgid "Command" msgstr "Comunitat" #: core/os/input_event.cpp -#, fuzzy msgid "Physical" -msgstr "Fotograma de Física %" +msgstr "Físic" #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp @@ -421,9 +414,8 @@ msgid "Pressed" msgstr "Premut" #: core/os/input_event.cpp -#, fuzzy msgid "Scancode" -msgstr "Explora" +msgstr "Codi d'escaneig" #: core/os/input_event.cpp msgid "Physical Scancode" @@ -468,6 +460,10 @@ msgid "Pressure" msgstr "Configuracions prestablertes" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relatiu" @@ -799,7 +795,7 @@ msgstr "Renderitzat" #: scene/resources/multimesh.cpp servers/visual/visual_server_scene.cpp #: servers/visual_server.cpp msgid "Quality" -msgstr "" +msgstr "Qualitat" #: core/project_settings.cpp scene/gui/file_dialog.cpp #: scene/main/scene_tree.cpp scene/resources/navigation_mesh.cpp @@ -808,8 +804,9 @@ msgid "Filters" msgstr "Filtres" #: core/project_settings.cpp scene/main/viewport.cpp +#, fuzzy msgid "Sharpen Intensity" -msgstr "" +msgstr "Intensitat d'agudització" #: core/project_settings.cpp editor/editor_export.cpp editor/editor_node.cpp #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp @@ -834,9 +831,8 @@ msgid "Profiler" msgstr "Perfilador" #: core/project_settings.cpp -#, fuzzy msgid "Max Functions" -msgstr "Reanomena Funció" +msgstr "Funcions màximes" #: core/project_settings.cpp scene/3d/vehicle_body.cpp msgid "Compression" @@ -848,39 +844,39 @@ msgstr "Formats" #: core/project_settings.cpp msgid "Zstd" -msgstr "" +msgstr "Zstd" #: core/project_settings.cpp msgid "Long Distance Matching" -msgstr "" +msgstr "Coincidència de llarga distància" #: core/project_settings.cpp msgid "Compression Level" -msgstr "" +msgstr "Nivell de compressió" #: core/project_settings.cpp msgid "Window Log Size" -msgstr "" +msgstr "Mida del registre de la finestra" #: core/project_settings.cpp msgid "Zlib" -msgstr "" +msgstr "Zlib" #: core/project_settings.cpp msgid "Gzip" -msgstr "" +msgstr "Gzip" #: core/project_settings.cpp platform/android/export/export.cpp msgid "Android" -msgstr "" +msgstr "Android" #: core/project_settings.cpp msgid "Modules" -msgstr "" +msgstr "Mòduls" #: core/register_core_types.cpp msgid "TCP" -msgstr "" +msgstr "TCP" #: core/register_core_types.cpp msgid "Connect Timeout Seconds" @@ -892,11 +888,11 @@ msgstr "" #: core/register_core_types.cpp msgid "Max Buffer (Power of 2)" -msgstr "" +msgstr "Memòria intermèdia màxima (potència de 2)" #: core/register_core_types.cpp editor/editor_settings.cpp main/main.cpp msgid "SSL" -msgstr "" +msgstr "SSL" #: core/register_core_types.cpp main/main.cpp msgid "Certificates" @@ -909,9 +905,8 @@ msgid "Resource" msgstr "Recurs" #: core/resource.cpp -#, fuzzy msgid "Local To Scene" -msgstr "Tanca l'Escena" +msgstr "Local a l'escena" #: core/resource.cpp editor/dependency_editor.cpp #: editor/editor_autoload_settings.cpp editor/plugins/path_editor_plugin.cpp @@ -980,7 +975,7 @@ msgstr "" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp msgid "Canvas Polygon Index Buffer Size (KB)" -msgstr "" +msgstr "Mida de la memòria intermèdia de l'índex del polígon de llenç (KB)" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp editor/editor_settings.cpp @@ -992,7 +987,7 @@ msgstr "" #: servers/physics_2d/space_2d_sw.cpp servers/physics_2d_server.cpp #: servers/visual_server.cpp msgid "2D" -msgstr "" +msgstr "2D" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp @@ -1002,14 +997,13 @@ msgstr "Ajustament Intel·ligent" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp -#, fuzzy msgid "Use GPU Pixel Snap" -msgstr "Utilitzar ajustament amb els Píxels" +msgstr "Utilitza l'ajust de píxels de la GPU" #: drivers/gles2/rasterizer_scene_gles2.cpp #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Immediate Buffer Size (KB)" -msgstr "" +msgstr "Mida de la memòria intermèdia immediata (KB)" #: drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp @@ -1020,28 +1014,27 @@ msgstr "Precalcular Lightmaps" #: drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp msgid "Use Bicubic Sampling" -msgstr "" +msgstr "Utilitza el mostreig bicúbic" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Elements" -msgstr "" +msgstr "Elements renderitzables màxims" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Lights" -msgstr "" +msgstr "Llums màximes renderitzables" #: drivers/gles3/rasterizer_scene_gles3.cpp -#, fuzzy msgid "Max Renderable Reflections" -msgstr "Centra la Selecció" +msgstr "Reflexions màximes renderitzables" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Lights Per Object" -msgstr "" +msgstr "Llums màximes per objecte" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Subsurface Scattering" -msgstr "" +msgstr "Dispersió subsuperficial" #: drivers/gles3/rasterizer_scene_gles3.cpp editor/animation_track_editor.cpp #: editor/import/resource_importer_texture.cpp @@ -1057,9 +1050,8 @@ msgid "Scale" msgstr "Escala" #: drivers/gles3/rasterizer_scene_gles3.cpp -#, fuzzy msgid "Follow Surface" -msgstr "Omple la Superfície" +msgstr "Segueix la superfície" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Weight Samples" @@ -1067,11 +1059,11 @@ msgstr "" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Voxel Cone Tracing" -msgstr "" +msgstr "Traçat del con Voxel" #: drivers/gles3/rasterizer_scene_gles3.cpp scene/resources/environment.cpp msgid "High Quality" -msgstr "" +msgstr "Alta qualitat" #: drivers/gles3/rasterizer_storage_gles3.cpp msgid "Blend Shape Max Buffer Size (KB)" @@ -1149,9 +1141,8 @@ msgstr "Canviar crida d'animació" #: editor/animation_track_editor.cpp scene/2d/animated_sprite.cpp #: scene/2d/sprite.cpp scene/3d/sprite_3d.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Frame" -msgstr "% del Fotograma" +msgstr "Fotograma" #: editor/animation_track_editor.cpp editor/editor_profiler.cpp #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp @@ -1162,9 +1153,8 @@ msgstr "Temps" #: editor/animation_track_editor.cpp editor/import/resource_importer_scene.cpp #: platform/osx/export/export.cpp -#, fuzzy msgid "Location" -msgstr "Localització" +msgstr "Ubicació" #: editor/animation_track_editor.cpp modules/gltf/gltf_node.cpp #: scene/2d/polygon_2d.cpp scene/2d/remote_transform_2d.cpp @@ -1184,7 +1174,7 @@ msgstr "Quantitat d'arguments" #: editor/animation_track_editor.cpp main/main.cpp #: modules/mono/mono_gd/gd_mono.cpp msgid "Args" -msgstr "" +msgstr "Args" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/script_editor_debugger.cpp modules/gltf/gltf_accessor.cpp @@ -1348,9 +1338,8 @@ msgid "Position:" msgstr "Posició:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rotation:" -msgstr "Pas de la Rotació:" +msgstr "Rotació:" #: editor/animation_track_editor.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1373,7 +1362,7 @@ msgstr "(No vàlid, tipus esperat: %s)" #: editor/animation_track_editor.cpp #, fuzzy msgid "Easing:" -msgstr "Esmorteeix Entrada-Sortida" +msgstr "Alleugeriment:" #: editor/animation_track_editor.cpp #, fuzzy @@ -1391,19 +1380,16 @@ msgid "Stream:" msgstr "Element de ràdio" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Start (s):" -msgstr "Reinici (s):" +msgstr "Inici (s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "End (s):" -msgstr "Fosa d'entrada (s):" +msgstr "Final (s):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation Clip:" -msgstr "Animacions:" +msgstr "Clip d'animació:" #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" @@ -1492,9 +1478,8 @@ msgid "Editors" msgstr "Editors" #: editor/animation_track_editor.cpp editor/editor_settings.cpp -#, fuzzy msgid "Confirm Insert Track" -msgstr "Insereix una Pista i una Clau" +msgstr "Confirmeu la inserció de pista" #. TRANSLATORS: %s will be replaced by a phrase describing the target of track. #: editor/animation_track_editor.cpp @@ -1773,9 +1758,8 @@ msgid "Go to Previous Step" msgstr "Anar al Pas Anterior" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Apply Reset" -msgstr "Resetejar" +msgstr "Aplica reinicialització" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -2236,7 +2220,7 @@ msgstr "Obre" #: editor/dependency_editor.cpp msgid "Owners of: %s (Total: %d)" -msgstr "" +msgstr "Propietaris de: %s (Total: %d)" #: editor/dependency_editor.cpp msgid "" @@ -2430,10 +2414,10 @@ msgid "Licenses" msgstr "Llicències" #: editor/editor_asset_installer.cpp -#, fuzzy msgid "Error opening asset file for \"%s\" (not in ZIP format)." msgstr "" -"S'ha produit un error en obrir el fitxer comprimit, no té el format ZIP." +"S'ha produït un error en obrir el fitxer de recursos per a \"%s\" (no en " +"format ZIP)." #: editor/editor_asset_installer.cpp msgid "%s (already exists)" @@ -2456,9 +2440,8 @@ msgid "Uncompressing Assets" msgstr "Descomprimint Recursos" #: editor/editor_asset_installer.cpp -#, fuzzy msgid "The following files failed extraction from asset \"%s\":" -msgstr "Ha fracassat l'extracció del paquet dels següents fitxers:" +msgstr "Els fitxers següents no s'han pogut extraure del recurs \"%s\":" #: editor/editor_asset_installer.cpp msgid "(and %s more files)" @@ -2478,9 +2461,8 @@ msgid "Install" msgstr "Instal·la" #: editor/editor_asset_installer.cpp -#, fuzzy msgid "Asset Installer" -msgstr "Instal·lador de paquets" +msgstr "Instal·lador de recursos" #: editor/editor_audio_buses.cpp msgid "Speakers" @@ -2650,9 +2632,8 @@ msgid "Create a new Bus Layout." msgstr "Crea un nou Disseny de Bus." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Audio Bus Layout" -msgstr "Obre un Disseny de Bus d'Àudio" +msgstr "Disseny del bus d'àudio" #: editor/editor_autoload_settings.cpp msgid "Invalid name." @@ -22126,7 +22107,7 @@ msgstr "Viatge" msgid "Rotation Degrees" msgstr "Rotació de %s graus." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Constant" @@ -24240,6 +24221,11 @@ msgstr "" "Modifica la mida de les Formes de Col. lisió Filles." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Manté la Transformació Global" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/cs.po b/editor/translations/cs.po index 0c0b8b63ca..a166951396 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -516,6 +516,10 @@ msgid "Pressure" msgstr "Profil" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "Přichytávat relativně" @@ -21860,7 +21864,7 @@ msgstr "Cestovat" msgid "Rotation Degrees" msgstr "Rotuji %s stupňů." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konstantní" @@ -23970,6 +23974,11 @@ msgstr "" "Změňte velikost kolizních tvarů v uzlech potomků." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Zachovat globální transformaci" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/da.po b/editor/translations/da.po index 3b19f24ec8..b4f7334278 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -486,6 +486,10 @@ msgid "Pressure" msgstr "Forudindstillet..." #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -21994,7 +21998,7 @@ msgstr "Rejse" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konstant" @@ -24018,6 +24022,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Anim Skift Transformering" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/de.po b/editor/translations/de.po index f0c79cda0f..64b8268adb 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-30 16:42+0000\n" +"PO-Revision-Date: 2022-07-09 21:11+0000\n" "Last-Translator: So Wieso <sowieso@dukun.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" @@ -466,9 +466,8 @@ msgid "Command" msgstr "Befehl" #: core/os/input_event.cpp -#, fuzzy msgid "Physical" -msgstr " (physisch)" +msgstr "Physisch" #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp @@ -521,6 +520,11 @@ msgid "Pressure" msgstr "Druck" #: core/os/input_event.cpp +#, fuzzy +msgid "Pen Inverted" +msgstr "Umkehren" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relativ" @@ -5560,9 +5564,8 @@ 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" +msgstr "Auswahl ziehen und fallen lassen" #: editor/editor_settings.cpp msgid "Appearance" @@ -18449,9 +18452,8 @@ 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" +msgstr "Eigener Build" #: platform/android/export/export_plugin.cpp msgid "Use Custom Build" @@ -18743,66 +18745,69 @@ 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\" " "or \"OpenXR\"." msgstr "" -"„Hand Tracking“ ist nur gültig wenn „Xr Mode“ als „Occulus Mobile VrApi“ " -"oder „OpenXR“ gesetzt wurde." +"„Hand Tracking“ ist nur gültig wenn „XR Mode“ als „Oculus Mobile VrApi“ oder " +"„OpenXR“ gesetzt wurde." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "\"Passthrough\" is only valid when \"XR Mode\" is \"OpenXR\"." msgstr "" -"„Passthrough“ ist nur gültig wenn „Xr Mode“ als „OpenXR“ gesetzt wurde." +"„Passthrough“ ist nur gültig wenn „XR Mode“ als „OpenXR“ gesetzt wurde." #: platform/android/export/export_plugin.cpp 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 "" "\"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." +"Das „Min SDK“ zu überschreiben 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 "" +"„Min SDK“ sollte eine gültige Ganzzahl sein, war aber „%s“, was ungültig ist." #: platform/android/export/export_plugin.cpp msgid "" "\"Min SDK\" cannot be lower than %d, which is the version needed by the " "Godot library." msgstr "" +"„Min SDK“ kann nicht niedriger als %d sein, der Version, die die Godot-" +"Bibliothek benötigt." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "\"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 " +"„Target SDK“ kann nur überschrieben werden wenn „Use Custom Build“ aktiviert " "ist." #: platform/android/export/export_plugin.cpp msgid "" "\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" +"„Taret SDK“ sollte eine gültige Ganzzahl sein, war aber „%s“, was ungültig " +"ist." #: 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 "" +"„Target SDK“ %d ist höher als die Standardversion %d. Diese Kombination " +"könnte funktionieren, wurde aber nicht getestet und könnte gegebenenfalls " +"instabil sein." #: 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." +"Die „Target SDK“-Version muss größer gleich der „Min SDK“-Version sein." #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp #: platform/windows/export/export.cpp @@ -21093,9 +21098,8 @@ msgstr "" "map_get_path()‘ zu verwenden." #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy msgid "Pathfinding" -msgstr "Zuordnung" +msgstr "Pfadfinden" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Path Desired Distance" @@ -21110,9 +21114,8 @@ msgid "Path Max Distance" msgstr "Max Pfad-Distanz" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy msgid "Avoidance" -msgstr "Erweitert" +msgstr "Vermeiden" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Avoidance Enabled" @@ -21177,7 +21180,7 @@ msgstr "Reisekosten" msgid "Rotation Degrees" msgstr "Rotationswinkel" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "Globale Rotation" @@ -23106,6 +23109,11 @@ msgstr "" "geändert werden." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Globales Transform" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "Matrix" @@ -24213,9 +24221,8 @@ msgid "Fold Gutter" msgstr "Einklappenspalte" #: scene/gui/text_edit.cpp -#, fuzzy msgid "Drag And Drop Selection Enabled" -msgstr "Textauswahl möglich" +msgstr "Ziehen-und-Fallenlassen-Auswahl aktiviert" #: scene/gui/text_edit.cpp msgid "Hiding Enabled" @@ -24592,6 +24599,11 @@ msgid "" "Effects.\n" "HDR will be disabled for this Viewport." msgstr "" +"In diesem Ansichtsfenster ist HDR aktiv, jedoch wurde dessen Nutzung auf 2D " +"oder 2D-No-Sampling eingestellt.\n" +"HDR wird nur in Ansichtsfenstern deren Nutzung auf 3D oder 3D-No-Effects " +"eingestellt sind unterstützt.\n" +"HDR wird für dieses Ansichtsfenster deaktiviert." #: scene/main/viewport.cpp msgid "ARVR" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index 5d2d5f1cbc..231863615b 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -435,6 +435,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20231,7 +20235,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22046,6 +22050,10 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +msgid "Global Translation" +msgstr "" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/el.po b/editor/translations/el.po index a061cc5a59..8511b4fdd2 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -469,6 +469,10 @@ msgid "Pressure" msgstr "Πίεση" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "Σχετικό" @@ -22038,7 +22042,7 @@ msgstr "Ταξίδι" msgid "Rotation Degrees" msgstr "Περιστροφή %s μοίρες." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Σταθερή" @@ -24163,6 +24167,11 @@ msgstr "" "Αλλάξτε μέγεθος στα σχήματα σύγκρουσης των παιδιών." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Διατήρηση παγκόσμιου μετασχηματισμού" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/en_Shaw.po b/editor/translations/en_Shaw.po index 1f648844a2..d69ca8d97f 100644 --- a/editor/translations/en_Shaw.po +++ b/editor/translations/en_Shaw.po @@ -447,6 +447,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20337,7 +20341,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22218,6 +22222,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "𐑓𐑳𐑙𐑒𐑖𐑩𐑯𐑟:" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/eo.po b/editor/translations/eo.po index 2eef4fc0d0..3b651b3e97 100644 --- a/editor/translations/eo.po +++ b/editor/translations/eo.po @@ -493,6 +493,10 @@ msgid "Pressure" msgstr "Antaŭagordo" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "Kapti relative" @@ -21632,7 +21636,7 @@ msgstr "Vojaĝa" msgid "Rotation Degrees" msgstr "Rotacia paŝo:" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konstanto" @@ -23654,6 +23658,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Transformo" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/es.po b/editor/translations/es.po index febff41060..3c21955a46 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -522,6 +522,10 @@ msgid "Pressure" msgstr "Presionado" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relativo" @@ -21650,7 +21654,7 @@ msgstr "Viaje" msgid "Rotation Degrees" msgstr "Grados de Rotación" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Constante Global" @@ -23770,6 +23774,11 @@ msgstr "" "En su lugar, cambia el tamaño en las formas de colisión de los hijos." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Mantener transformación global" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index eeea3a9922..de1187f08f 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -473,6 +473,11 @@ msgstr "Preset" #: core/os/input_event.cpp #, fuzzy +msgid "Pen Inverted" +msgstr "Invertir" + +#: core/os/input_event.cpp +#, fuzzy msgid "Relative" msgstr "Ajuste Relativo" @@ -21890,7 +21895,7 @@ msgstr "Viaje" msgid "Rotation Degrees" msgstr "Rotando %s grados." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Constante Global" @@ -23995,6 +24000,11 @@ msgstr "" "En su lugar, cambiá el tamaño de los collision shapes hijos." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Mantener Transformación Global" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "Matriz" diff --git a/editor/translations/et.po b/editor/translations/et.po index b7ed666bb0..b355c9c343 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -477,6 +477,10 @@ msgid "Pressure" msgstr "Eelseadistus" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -21068,7 +21072,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konstant" @@ -23041,6 +23045,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Tõlked" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/eu.po b/editor/translations/eu.po index ff9601ad57..fc753e6cb9 100644 --- a/editor/translations/eu.po +++ b/editor/translations/eu.po @@ -451,6 +451,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "Atxikitze erlatiboa" @@ -20844,7 +20848,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konstantea" @@ -22790,6 +22794,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Translazio atzikitzea:" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/fa.po b/editor/translations/fa.po index ae8a37388a..f43848b065 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -503,6 +503,10 @@ msgid "Pressure" msgstr "بازنشانی بزرگنمایی" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "GDNative" @@ -21832,7 +21836,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "ثابت" @@ -23857,6 +23861,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "انتقال را در انیمیشن تغییر بده" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 7613bdfcce..b83c7d11fa 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -501,6 +501,10 @@ msgid "Pressure" msgstr "Esiasetukset" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "Suhteellinen tarttuminen" @@ -21899,7 +21903,7 @@ msgstr "Matkaa" msgid "Rotation Degrees" msgstr "Kierto %s astetta." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Globaali vakio" @@ -24049,6 +24053,11 @@ msgstr "" "Muuta kokoa sen sijaan alisolmujen törmäysmuodoissa." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Pidä globaali muunnos" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/fil.po b/editor/translations/fil.po index 24a5742ef6..c4e02900d7 100644 --- a/editor/translations/fil.po +++ b/editor/translations/fil.po @@ -448,6 +448,10 @@ msgid "Pressure" msgstr "Presyur" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relatibo" @@ -20496,7 +20500,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22368,6 +22372,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "3D Transform Track" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 8822d35687..e4f5a2feff 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -99,13 +99,15 @@ # HOUA <ninjacowzx@gmail.com>, 2022. # DinosaurHorseSword <ewenlandry@mailfence.com>, 2022. # Arnaud Lier <arnaud@ric-rac.org>, 2022. +# Jérémie Guegain <mirejai@orange.fr>, 2022. +# cwulveryck <cwulveryck@online.fr>, 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-07-03 00:44+0000\n" -"Last-Translator: Sofiane <Sofiane-77@caramail.fr>\n" +"PO-Revision-Date: 2022-07-16 06:20+0000\n" +"Last-Translator: cwulveryck <cwulveryck@online.fr>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" "Language: fr\n" @@ -113,7 +115,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.13.1-dev\n" +"X-Generator: Weblate 4.14-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -314,8 +316,9 @@ msgid "Page Size" msgstr "Taille de page" #: core/io/file_access_network.cpp +#, fuzzy msgid "Page Read Ahead" -msgstr "" +msgstr "Page lue devant" #: core/io/http_client.cpp msgid "Blocking Mode Enabled" @@ -326,8 +329,9 @@ msgid "Connection" msgstr "Connexion" #: core/io/http_client.cpp +#, fuzzy msgid "Read Chunk Size" -msgstr "" +msgstr "Lire la taille du tronçon" #: core/io/marshalls.cpp msgid "Object ID" @@ -359,15 +363,15 @@ msgstr "Mode de Transfert" #: core/io/packet_peer.cpp msgid "Encode Buffer Max Size" -msgstr "" +msgstr "Taille maximale du tampon d'encodage" #: core/io/packet_peer.cpp msgid "Input Buffer Max Size" -msgstr "" +msgstr "Taille maximale du tampon d'entrée" #: core/io/packet_peer.cpp msgid "Output Buffer Max Size" -msgstr "" +msgstr "Taille maximale du tampon de sortie" #: core/io/packet_peer.cpp msgid "Stream Peer" @@ -539,6 +543,11 @@ msgid "Pressure" msgstr "Pression" #: core/os/input_event.cpp +#, fuzzy +msgid "Pen Inverted" +msgstr "Inverser" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relatif" @@ -732,11 +741,11 @@ msgstr "Noms de scènes" #: core/project_settings.cpp msgid "Search In File Extensions" -msgstr "" +msgstr "Rechercher dans les extensions de fichiers" #: core/project_settings.cpp msgid "Script Templates Search Path" -msgstr "" +msgstr "Chemin où chercher les modèles de scripts" #: core/project_settings.cpp msgid "Version Control Autoload On Startup" @@ -753,15 +762,13 @@ msgstr "Entrée" #: core/project_settings.cpp msgid "UI Accept" -msgstr "" +msgstr "Accepter" #: core/project_settings.cpp -#, fuzzy msgid "UI Select" msgstr "Sélectionner" #: core/project_settings.cpp -#, fuzzy msgid "UI Cancel" msgstr "Annuler" @@ -783,7 +790,7 @@ msgstr "Droite" #: core/project_settings.cpp msgid "UI Up" -msgstr "" +msgstr "Haut" #: core/project_settings.cpp msgid "UI Down" @@ -796,11 +803,11 @@ msgstr "Page Haut" #: core/project_settings.cpp msgid "UI Page Down" -msgstr "" +msgstr "Page Bas" #: core/project_settings.cpp msgid "UI Home" -msgstr "" +msgstr "Accueil Interface Utilisateur" #: core/project_settings.cpp msgid "UI End" @@ -862,7 +869,7 @@ msgstr "Filtres" #: core/project_settings.cpp scene/main/viewport.cpp msgid "Sharpen Intensity" -msgstr "" +msgstr "Augmenter l'intensité" #: core/project_settings.cpp editor/editor_export.cpp editor/editor_node.cpp #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp @@ -900,19 +907,20 @@ msgstr "Formats" #: core/project_settings.cpp msgid "Zstd" -msgstr "" +msgstr "Zstd" #: core/project_settings.cpp msgid "Long Distance Matching" -msgstr "" +msgstr "Appairement longue distance" #: core/project_settings.cpp msgid "Compression Level" msgstr "Niveau de Compression" #: core/project_settings.cpp +#, fuzzy msgid "Window Log Size" -msgstr "" +msgstr "Taille de la fenêtre du journal" #: core/project_settings.cpp msgid "Zlib" @@ -928,7 +936,7 @@ msgstr "Android" #: core/project_settings.cpp msgid "Modules" -msgstr "" +msgstr "Modules" #: core/register_core_types.cpp msgid "TCP" @@ -943,8 +951,9 @@ msgid "Packet Peer Stream" msgstr "" #: core/register_core_types.cpp +#, fuzzy msgid "Max Buffer (Power of 2)" -msgstr "" +msgstr "Tampon Max (puissance de 2)" #: core/register_core_types.cpp editor/editor_settings.cpp main/main.cpp msgid "SSL" @@ -984,8 +993,9 @@ msgid "Test" msgstr "Test" #: core/translation.cpp scene/resources/font.cpp +#, fuzzy msgid "Fallback" -msgstr "" +msgstr "Repli" #: core/ustring.cpp scene/resources/segment_shape_2d.cpp msgid "B" @@ -1021,7 +1031,7 @@ msgstr "Eio" #: drivers/gles3/rasterizer_scene_gles3.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp modules/gltf/gltf_state.cpp msgid "Buffers" -msgstr "" +msgstr "Tampons" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp @@ -1043,7 +1053,7 @@ msgstr "" #: servers/physics_2d/space_2d_sw.cpp servers/physics_2d_server.cpp #: servers/visual_server.cpp msgid "2D" -msgstr "" +msgstr "2D" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp @@ -1060,7 +1070,7 @@ msgstr "Aligner au pixel près" #: drivers/gles2/rasterizer_scene_gles2.cpp #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Immediate Buffer Size (KB)" -msgstr "" +msgstr "Taille du tampon immédiat (Ko)" #: drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp @@ -1071,28 +1081,28 @@ msgstr "Précalculer les lightmaps" #: drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp msgid "Use Bicubic Sampling" -msgstr "" +msgstr "Utiliser l’échantillonnage bicubique" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Elements" -msgstr "" +msgstr "Maximum d'éléments pouvant être rendus" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Renderable Lights" -msgstr "" +msgstr "Maximum de lumières pouvant être rendues" #: drivers/gles3/rasterizer_scene_gles3.cpp -#, fuzzy msgid "Max Renderable Reflections" -msgstr "Centrer sur la sélection" +msgstr "Nombre maximum de reflets pouvant être rendus" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Max Lights Per Object" -msgstr "" +msgstr "Maximum de lumières par objet" #: drivers/gles3/rasterizer_scene_gles3.cpp +#, fuzzy msgid "Subsurface Scattering" -msgstr "" +msgstr "Transluminescence" #: drivers/gles3/rasterizer_scene_gles3.cpp editor/animation_track_editor.cpp #: editor/import/resource_importer_texture.cpp @@ -1112,8 +1122,9 @@ msgid "Follow Surface" msgstr "Suivre la surface" #: drivers/gles3/rasterizer_scene_gles3.cpp +#, fuzzy msgid "Weight Samples" -msgstr "" +msgstr "Échantillons de poids" #: drivers/gles3/rasterizer_scene_gles3.cpp msgid "Voxel Cone Tracing" @@ -1199,9 +1210,8 @@ msgstr "Changer l’appel de l’animation" #: editor/animation_track_editor.cpp scene/2d/animated_sprite.cpp #: scene/2d/sprite.cpp scene/3d/sprite_3d.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Frame" -msgstr "Image %" +msgstr "Trame" #: editor/animation_track_editor.cpp editor/editor_profiler.cpp #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp @@ -1227,14 +1237,13 @@ msgid "Value" msgstr "Valeur" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Arg Count" -msgstr "Compte" +msgstr "Nombre d'arguments" #: editor/animation_track_editor.cpp main/main.cpp #: modules/mono/mono_gd/gd_mono.cpp msgid "Args" -msgstr "" +msgstr "Args" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/script_editor_debugger.cpp modules/gltf/gltf_accessor.cpp @@ -1258,17 +1267,16 @@ msgstr "Définir la poignée" #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/audio/audio_stream_player.cpp scene/gui/video_player.cpp msgid "Stream" -msgstr "" +msgstr "Flux" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Start Offset" -msgstr "Décalage du Pivot" +msgstr "Décalage du Départ" #: editor/animation_track_editor.cpp #, fuzzy msgid "End Offset" -msgstr "Décalage :" +msgstr "Décalage à la fin" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/import/resource_importer_scene.cpp @@ -1418,9 +1426,8 @@ msgid "Type:" msgstr "Type :" #: editor/animation_track_editor.cpp -#, fuzzy msgid "(Invalid, expected type: %s)" -msgstr "Modèle d'exportation non valide :" +msgstr "(Invalide, type attendu : %s)" #: editor/animation_track_editor.cpp #, fuzzy @@ -1438,9 +1445,8 @@ msgid "Out-Handle:" msgstr "Définir la poignée" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Stream:" -msgstr "Item radio" +msgstr "Flux :" #: editor/animation_track_editor.cpp #, fuzzy @@ -1695,7 +1701,7 @@ msgstr "Méthodes" #: editor/animation_track_editor.cpp msgid "Bezier" -msgstr "" +msgstr "Bezier" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -2289,7 +2295,7 @@ msgstr "Ouvrir" #: editor/dependency_editor.cpp msgid "Owners of: %s (Total: %d)" -msgstr "" +msgstr "Possesseur de : %s (Total : %d)" #: editor/dependency_editor.cpp msgid "" @@ -2857,22 +2863,19 @@ msgstr "Choisir" #: editor/editor_export.cpp msgid "Project export for platform:" -msgstr "" +msgstr "Exportation du projet pour la plateforme :" #: editor/editor_export.cpp -#, fuzzy msgid "Completed with errors." -msgstr "Copier le chemin du nœud" +msgstr "Terminé avec des erreurs." #: editor/editor_export.cpp -#, fuzzy msgid "Completed successfully." -msgstr "Paquetage installé avec succès !" +msgstr "Terminé avec succès." #: editor/editor_export.cpp -#, fuzzy msgid "Failed." -msgstr "Échec :" +msgstr "Échec." #: editor/editor_export.cpp msgid "Storing File:" @@ -2887,29 +2890,24 @@ msgid "Packing" msgstr "Empaquetage" #: editor/editor_export.cpp -#, fuzzy msgid "Save PCK" -msgstr "Enregistrer sous" +msgstr "Enregistrer PCK" #: editor/editor_export.cpp -#, fuzzy msgid "Cannot create file \"%s\"." -msgstr "Impossible de créer le dossier." +msgstr "Impossible de créer le fichier \"%s\"." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to export project files." -msgstr "Impossible d'exporter les fichiers du projet" +msgstr "Impossible d'exporter les fichiers du projet." #: editor/editor_export.cpp -#, fuzzy msgid "Can't open file to read from path \"%s\"." -msgstr "Impossible d'ouvrir le fichier pour écriture :" +msgstr "Impossible d'ouvrir le fichier en lecture depuis le chemin \"%s\"." #: editor/editor_export.cpp -#, fuzzy msgid "Save ZIP" -msgstr "Enregistrer sous" +msgstr "Enregistrer le ZIP" #: editor/editor_export.cpp msgid "" @@ -2989,29 +2987,29 @@ msgid "64 Bits" msgstr "64 Bits" #: editor/editor_export.cpp +#, fuzzy msgid "Embed PCK" -msgstr "" +msgstr "PCK Intégré" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Texture Format" -msgstr "RegionDeTexture" +msgstr "Format de la texture" #: editor/editor_export.cpp msgid "BPTC" -msgstr "" +msgstr "BPTC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "S3TC" -msgstr "" +msgstr "S3TC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "ETC" -msgstr "" +msgstr "ETC" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "ETC2" -msgstr "" +msgstr "ETC2" #: editor/editor_export.cpp msgid "No BPTC Fallbacks" @@ -3035,25 +3033,22 @@ msgid "Prepare Template" msgstr "Gérer les modèles" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "The given export path doesn't exist." -msgstr "Le chemin de l'exportation donné n'existe pas :" +msgstr "Le chemin de l'exportation donné n'existe pas." #: editor/editor_export.cpp platform/javascript/export/export.cpp -#, fuzzy msgid "Template file not found: \"%s\"." -msgstr "Fichier modèle introuvable :" +msgstr "Fichier modèle introuvable : \"%s\"." #: editor/editor_export.cpp -#, fuzzy msgid "Failed to copy export template." -msgstr "Modèle d'exportation non valide :" +msgstr "La copie du modèle d'exportation a échoué." #: editor/editor_export.cpp platform/windows/export/export.cpp #: platform/x11/export/export.cpp #, fuzzy msgid "PCK Embedding" -msgstr "Remplissage(Padding)" +msgstr "Intégration du PCK" #: editor/editor_export.cpp msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." @@ -3061,7 +3056,7 @@ msgstr "Le PCK inclus dans un export 32-bits ne peut dépasser 4 Go." #: editor/editor_export.cpp msgid "Convert Text Resources To Binary On Export" -msgstr "" +msgstr "Convertir les ressources textuelles en binaire lors de l'exportation" #: editor/editor_feature_profile.cpp msgid "3D Editor" @@ -3387,8 +3382,9 @@ msgid "Show Hidden Files" msgstr "Afficher les fichiers cachés" #: editor/editor_file_dialog.cpp +#, fuzzy msgid "Disable Overwrite Warning" -msgstr "" +msgstr "Désactiver l'avertissement de réécriture" #: editor/editor_file_dialog.cpp msgid "Go Back" @@ -3491,7 +3487,7 @@ msgstr "Ré-importation des assets" #: editor/editor_file_system.cpp msgid "Reimport Missing Imported Files" -msgstr "" +msgstr "Réimporter les fichiers importés manquants" #: editor/editor_help.cpp scene/2d/camera_2d.cpp scene/gui/control.cpp #: scene/gui/nine_patch_rect.cpp scene/resources/dynamic_font.cpp @@ -3602,7 +3598,7 @@ msgstr "Aide" #: editor/editor_help.cpp msgid "Sort Functions Alphabetically" -msgstr "" +msgstr "Trier les fonctions par ordre alphabétique" #: editor/editor_help_search.cpp editor/editor_node.cpp #: editor/plugins/script_editor_plugin.cpp @@ -4085,7 +4081,8 @@ msgstr "Sauvegarder & Recharger" #: editor/editor_node.cpp #, fuzzy msgid "Save changes to '%s' before reloading?" -msgstr "Sauvegarder les modifications effectuées à « %s » avant de quitter ?" +msgstr "" +"Sauvegarder les modifications effectuées dans « %s » avant de recharger ?" #: editor/editor_node.cpp msgid "Save & Close" @@ -4404,6 +4401,8 @@ msgstr "%d fichiers supplémentaires" msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" +"Impossible d'écrire dans le fichier '%s', le fichier est peut être utilisé, " +"verrouillé ou vous n'avez pas les permissions pour écrire dessus." #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp @@ -4416,53 +4415,49 @@ msgid "Scene Tabs" msgstr "Basculer entre onglets de scène" #: editor/editor_node.cpp -#, fuzzy msgid "Always Show Close Button" -msgstr "Toujours afficher la grille" +msgstr "Toujours afficher le bouton fermer" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Resize If Many Tabs" -msgstr "" +msgstr "Redimensionner si plusieurs onglets" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Minimum Width" -msgstr "" +msgstr "Largeur Minimum" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Output" msgstr "Sortie" #: editor/editor_node.cpp editor/editor_settings.cpp -#, fuzzy msgid "Always Clear Output On Play" -msgstr "Effacer la sortie" +msgstr "Toujours nettoyer la sortie lors du lancement" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Always Open Output On Play" -msgstr "" +msgstr "Toujours afficher la sortie lors du lancement" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Always Close Output On Stop" -msgstr "" +msgstr "Toujours fermer la sortie à l'arrêt" #: editor/editor_node.cpp msgid "Save On Focus Loss" -msgstr "" +msgstr "Enregistrer lorsque le focus est perdu" #: editor/editor_node.cpp editor/editor_settings.cpp #, fuzzy msgid "Save Each Scene On Quit" -msgstr "Sauvegarder la branche comme scène" +msgstr "Enregistrer toutes les scènes à la fermeture" #: editor/editor_node.cpp editor/editor_settings.cpp -#, fuzzy msgid "Quit Confirmation" -msgstr "Voir information" +msgstr "Confirmer avant de quitter" #: editor/editor_node.cpp -#, fuzzy msgid "Show Update Spinner" -msgstr "Cacher l'indicateur d'activité" +msgstr "Afficher l'indicateur d'activité" #: editor/editor_node.cpp msgid "Update Continuously" @@ -4481,11 +4476,11 @@ msgstr "Localisation" #: editor/editor_node.cpp #, fuzzy msgid "Restore Scenes On Load" -msgstr "Le nœud de la scène" +msgstr "Restaurer les scènes au chargement" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Show Thumbnail On Hover" -msgstr "" +msgstr "Afficher l’aperçu au survol" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Inspector" @@ -4494,11 +4489,11 @@ msgstr "Inspecteur" #: editor/editor_node.cpp #, fuzzy msgid "Default Property Name Style" -msgstr "Chemin du projet :" +msgstr "Style par défaut des noms de propriétés" #: editor/editor_node.cpp msgid "Default Float Step" -msgstr "" +msgstr "Pas par défaut des flottant" #: editor/editor_node.cpp scene/gui/tree.cpp #, fuzzy @@ -4506,30 +4501,32 @@ msgid "Disable Folding" msgstr "Bouton désactivé" #: editor/editor_node.cpp +#, fuzzy msgid "Auto Unfold Foreign Scenes" -msgstr "" +msgstr "Déplier automatiquement les scènes étrangères" #: editor/editor_node.cpp msgid "Horizontal Vector2 Editing" -msgstr "" +msgstr "Édition horizontale de Vector2" #: editor/editor_node.cpp +#, fuzzy msgid "Horizontal Vector Types Editing" -msgstr "" +msgstr "Édition de Types de Vecteur Horizontal" #: editor/editor_node.cpp -#, fuzzy msgid "Open Resources In Current Inspector" -msgstr "Ouvrir dans l'Inspecteur" +msgstr "Ouvrir les ressources dans l'inspecteur actuel" #: editor/editor_node.cpp #, fuzzy msgid "Resources To Open In New Inspector" -msgstr "Ouvrir dans l'Inspecteur" +msgstr "Ressources à ouvrir dans un nouvel inspecteur" #: editor/editor_node.cpp +#, fuzzy msgid "Default Color Picker Mode" -msgstr "" +msgstr "Mode par défaut du sélectionneur de couleur" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Version Control" @@ -5189,8 +5186,9 @@ msgid "Debugger" msgstr "Débogueur" #: editor/editor_profiler.cpp +#, fuzzy msgid "Profiler Frame History Size" -msgstr "" +msgstr "Taille de l'historique de la trame du profileur" #: editor/editor_profiler.cpp #, fuzzy @@ -5328,20 +5326,17 @@ msgstr "Nouveau %s" #: modules/visual_script/visual_script_func_nodes.cpp #: modules/visual_script/visual_script_nodes.cpp #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "Base Type" -msgstr "Changer le type de base" +msgstr "Type de base" #: editor/editor_resource_picker.cpp -#, fuzzy msgid "Edited Resource" -msgstr "Ajouter une ressource" +msgstr "Ressource modifiée" #: editor/editor_resource_picker.cpp scene/gui/line_edit.cpp #: scene/gui/slider.cpp scene/gui/spin_box.cpp -#, fuzzy msgid "Editable" -msgstr "Élément modifiable" +msgstr "Modifiable" #: editor/editor_resource_picker.cpp editor/property_editor.cpp msgid "New Script" @@ -5365,9 +5360,8 @@ msgstr "" "Ajoutez un préréglage exécutable dans le menu d'exportation." #: editor/editor_run_native.cpp -#, fuzzy msgid "Project Run" -msgstr "Projet" +msgstr "Exécution du projet" #: editor/editor_run_script.cpp msgid "Write your logic in the _run() method." @@ -5394,34 +5388,34 @@ msgid "Did you forget the '_run' method?" msgstr "Avez-vous oublié la méthode « _run » ?" #: editor/editor_settings.cpp -#, fuzzy msgid "Editor Language" -msgstr "Disposition de l'éditeur" +msgstr "Langue de l'Éditeur" #: editor/editor_settings.cpp -#, fuzzy msgid "Display Scale" -msgstr "Tout afficher" +msgstr "Échelle de l'affichage" #: editor/editor_settings.cpp msgid "Custom Display Scale" -msgstr "" +msgstr "Échelle personnalisé de l'affichage" #: editor/editor_settings.cpp msgid "Main Font Size" -msgstr "" +msgstr "Taille de la police principale" #: editor/editor_settings.cpp msgid "Code Font Size" -msgstr "" +msgstr "Taille de la police du code" #: editor/editor_settings.cpp +#, fuzzy msgid "Font Antialiased" -msgstr "" +msgstr "Anticrénelage appliqué sur la police" #: editor/editor_settings.cpp +#, fuzzy msgid "Font Hinting" -msgstr "" +msgstr "Indication de police" #: editor/editor_settings.cpp msgid "Main Font" @@ -5429,7 +5423,7 @@ msgstr "Police Principale" #: editor/editor_settings.cpp msgid "Main Font Bold" -msgstr "" +msgstr "Principale police grasse" #: editor/editor_settings.cpp msgid "Code Font" @@ -5437,11 +5431,12 @@ msgstr "Police du Code" #: editor/editor_settings.cpp msgid "Dim Editor On Dialog Popup" -msgstr "" +msgstr "Assombrir l'éditeur à l'ouverture d'un dialogue" #: editor/editor_settings.cpp main/main.cpp +#, fuzzy msgid "Low Processor Mode Sleep (µsec)" -msgstr "" +msgstr "Mode de faible latence Processeur" #: editor/editor_settings.cpp msgid "Unfocused Low Processor Mode Sleep (µsec)" @@ -5454,7 +5449,7 @@ msgstr "Mode Sans Distraction" #: editor/editor_settings.cpp msgid "Automatically Open Screenshots" -msgstr "" +msgstr "Ouvrir automatiquement les captures d'écran" #: editor/editor_settings.cpp msgid "Max Array Dictionary Items Per Page" @@ -5472,7 +5467,7 @@ msgstr "Préréglage" #: editor/editor_settings.cpp msgid "Icon And Font Color" -msgstr "" +msgstr "Couleur de police et d'icône" #: editor/editor_settings.cpp msgid "Base Color" @@ -5485,7 +5480,7 @@ msgstr "Prélever une couleur" #: editor/editor_settings.cpp scene/resources/environment.cpp msgid "Contrast" -msgstr "" +msgstr "Contraste" #: editor/editor_settings.cpp msgid "Relationship Line Opacity" @@ -5502,8 +5497,9 @@ msgid "Border Size" msgstr "Pixels de bordure" #: editor/editor_settings.cpp +#, fuzzy msgid "Use Graph Node Headers" -msgstr "" +msgstr "Utiliser les en-tête de noeud Graph" #: editor/editor_settings.cpp #, fuzzy @@ -5539,13 +5535,13 @@ msgid "On Save" msgstr "Enregistrer" #: editor/editor_settings.cpp -#, fuzzy msgid "Compress Binary Resources" -msgstr "Copier la ressource" +msgstr "Compresser les ressources binaires" #: editor/editor_settings.cpp +#, fuzzy msgid "Safe Save On Backup Then Rename" -msgstr "" +msgstr "Sauvegarde sécurisée lors de l'archivage puis renommer" #: editor/editor_settings.cpp #, fuzzy @@ -5565,8 +5561,9 @@ msgid "Scene Tree" msgstr "une arborescence, arbre des scènes" #: editor/editor_settings.cpp +#, fuzzy msgid "Start Create Dialog Fully Expanded" -msgstr "" +msgstr "Lancer le dialogue de Création totalement expandu" #: editor/editor_settings.cpp #, fuzzy @@ -5579,7 +5576,7 @@ msgstr "Éditeur de Propriétés" #: editor/editor_settings.cpp msgid "Auto Refresh Interval" -msgstr "" +msgstr "Intervalle d’autorafraîchissement" #: editor/editor_settings.cpp #, fuzzy @@ -5593,8 +5590,9 @@ msgstr "Thème de l'éditeur" #: editor/editor_settings.cpp scene/3d/label_3d.cpp #: scene/resources/default_theme/default_theme.cpp +#, fuzzy msgid "Line Spacing" -msgstr "" +msgstr "Espace entre les lignes" #: editor/editor_settings.cpp editor/plugins/script_text_editor.cpp #: modules/gdscript/editor/gdscript_highlighter.cpp @@ -5609,15 +5607,16 @@ msgstr "Coloration syntaxique" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "Highlight All Occurrences" -msgstr "" +msgstr "Mettre en évidence toutes les occurrences" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "Highlight Current Line" -msgstr "" +msgstr "Mettre en évidence la ligne actuelle" #: editor/editor_settings.cpp editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Highlight Type Safe Lines" -msgstr "" +msgstr "Surligner les lignes Typées" #: editor/editor_settings.cpp #, fuzzy @@ -5634,9 +5633,8 @@ msgid "Convert Indent On Save" msgstr "Convertir indentations en espaces" #: editor/editor_settings.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Draw Tabs" -msgstr "Appels de dessin :" +msgstr "Montrer les tabulations" #: editor/editor_settings.cpp scene/gui/text_edit.cpp #, fuzzy @@ -5652,11 +5650,11 @@ msgstr "Navigation" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "Smooth Scrolling" -msgstr "" +msgstr "Défilement Doux" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "V Scroll Speed" -msgstr "" +msgstr "Vitesse du défilement vertical" #: editor/editor_settings.cpp #, fuzzy @@ -5665,7 +5663,7 @@ msgstr "Afficher l'origine" #: editor/editor_settings.cpp msgid "Minimap Width" -msgstr "" +msgstr "Largeur de la mini-carte" #: editor/editor_settings.cpp msgid "Mouse Extra Buttons Navigate History" @@ -5678,7 +5676,7 @@ msgstr "Sélection de la GridMap" #: editor/editor_settings.cpp msgid "Appearance" -msgstr "" +msgstr "Apparence" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "Show Line Numbers" @@ -5691,7 +5689,7 @@ msgstr "Numéro de ligne :" #: editor/editor_settings.cpp msgid "Show Bookmark Gutter" -msgstr "" +msgstr "Montrer le bandeau de marque-page" #: editor/editor_settings.cpp #, fuzzy @@ -5699,12 +5697,13 @@ msgid "Show Breakpoint Gutter" msgstr "Passer les points d'arrêt" #: editor/editor_settings.cpp +#, fuzzy msgid "Show Info Gutter" -msgstr "" +msgstr "Montrer le bandeau d'information" #: editor/editor_settings.cpp msgid "Code Folding" -msgstr "" +msgstr "Rétrécir le code" #: editor/editor_settings.cpp msgid "Word Wrap" @@ -5727,8 +5726,9 @@ msgid "Script List" msgstr "Liste des Scripts" #: editor/editor_settings.cpp +#, fuzzy msgid "Show Members Overview" -msgstr "" +msgstr "Montrer l'ensemble des Membres" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp msgid "Files" @@ -5740,16 +5740,19 @@ msgid "Trim Trailing Whitespace On Save" msgstr "Supprimer les espaces de fin de ligne" #: editor/editor_settings.cpp +#, fuzzy msgid "Autosave Interval Secs" -msgstr "" +msgstr "Intervalle entre les auto-sauvegarde (en secondes)" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp +#, fuzzy msgid "Restore Scripts On Load" -msgstr "" +msgstr "Restaurer les scripts lors du chargement" #: editor/editor_settings.cpp msgid "Auto Reload And Parse Scripts On Save" msgstr "" +"Recharger et parcourir les scripts automatiquement lors de la sauvegarde" #: editor/editor_settings.cpp msgid "Auto Reload Scripts On External Change" @@ -5766,23 +5769,23 @@ msgstr "" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Cursor" -msgstr "" +msgstr "Curseur" #: editor/editor_settings.cpp msgid "Scroll Past End Of File" -msgstr "" +msgstr "Défiler au-delà de la fin du fichier" #: editor/editor_settings.cpp msgid "Block Caret" -msgstr "" +msgstr "Caret bloc" #: editor/editor_settings.cpp msgid "Caret Blink" -msgstr "" +msgstr "Clignotement du caret" #: editor/editor_settings.cpp msgid "Caret Blink Speed" -msgstr "" +msgstr "Vitesse du clignotement du caret" #: editor/editor_settings.cpp #, fuzzy @@ -5801,11 +5804,11 @@ msgstr "" #: editor/editor_settings.cpp msgid "Auto Brace Complete" -msgstr "" +msgstr "Complétion automatique des accolades" #: editor/editor_settings.cpp msgid "Code Complete Delay" -msgstr "" +msgstr "Délai d'auto-complétion du code" #: editor/editor_settings.cpp msgid "Put Callhint Tooltip Below Current Line" @@ -5844,8 +5847,9 @@ msgid "Help Source Font Size" msgstr "Taille de la police de l'aide de la source" #: editor/editor_settings.cpp +#, fuzzy msgid "Help Title Font Size" -msgstr "" +msgstr "Taille de la police du titre Aide" #: editor/editor_settings.cpp modules/gridmap/grid_map_editor_plugin.cpp msgid "Grid Map" @@ -5862,11 +5866,11 @@ msgstr "Aperçu de la taille" #: editor/editor_settings.cpp msgid "Primary Grid Color" -msgstr "" +msgstr "Couleur de la grille principale" #: editor/editor_settings.cpp msgid "Secondary Grid Color" -msgstr "" +msgstr "Couleur de la grille secondaire" #: editor/editor_settings.cpp #, fuzzy @@ -5903,7 +5907,7 @@ msgstr "Point" #: scene/resources/particles_material.cpp servers/physics_2d_server.cpp #: servers/physics_server.cpp msgid "Shape" -msgstr "" +msgstr "Forme" #: editor/editor_settings.cpp #, fuzzy @@ -5916,11 +5920,11 @@ msgstr "Taille de la Grille" #: editor/editor_settings.cpp msgid "Grid Division Level Max" -msgstr "" +msgstr "Niveau maximal de division de la grille" #: editor/editor_settings.cpp msgid "Grid Division Level Min" -msgstr "" +msgstr "Niveau minimal de division de la grille" #: editor/editor_settings.cpp msgid "Grid Division Level Bias" @@ -5957,7 +5961,7 @@ msgstr "Défaut" #: editor/editor_settings.cpp msgid "Lightmap Baking Number Of CPU Threads" -msgstr "" +msgstr "Nombre de fils CPU pour calculer les cartes de lumières" #: editor/editor_settings.cpp #, fuzzy @@ -5980,11 +5984,11 @@ msgstr "Style de Zoom" #: editor/editor_settings.cpp msgid "Emulate Numpad" -msgstr "" +msgstr "Émuler un pavé numérique" #: editor/editor_settings.cpp msgid "Emulate 3 Button Mouse" -msgstr "" +msgstr "Émuler souris à 3 boutons" #: editor/editor_settings.cpp #, fuzzy @@ -5997,9 +6001,8 @@ msgid "Pan Modifier" msgstr "Mode navigation" #: editor/editor_settings.cpp -#, fuzzy msgid "Zoom Modifier" -msgstr "Modifié" +msgstr "Multiplicateur de Zoom" #: editor/editor_settings.cpp editor/plugins/spatial_editor_plugin.cpp msgid "Warped Mouse Panning" @@ -6077,7 +6080,7 @@ msgstr "Magnétisme intelligent" #: editor/editor_settings.cpp msgid "Bone Width" -msgstr "" +msgstr "Largeur des os" #: editor/editor_settings.cpp #, fuzzy @@ -6099,8 +6102,9 @@ msgid "Bone IK Color" msgstr "" #: editor/editor_settings.cpp +#, fuzzy msgid "Bone Outline Color" -msgstr "" +msgstr "Couleur de bordure de l'Os" #: editor/editor_settings.cpp #, fuzzy @@ -6108,12 +6112,14 @@ msgid "Bone Outline Size" msgstr "Taille du contour :" #: editor/editor_settings.cpp +#, fuzzy msgid "Viewport Border Color" -msgstr "" +msgstr "Couleur de bordure de la fenêtre d'affichage" #: editor/editor_settings.cpp +#, fuzzy msgid "Constrain Editor View" -msgstr "" +msgstr "Restreindre la fenêtre d'Éditeur" #: editor/editor_settings.cpp msgid "Simple Panning" @@ -6157,12 +6163,14 @@ msgid "Default Create Reset Tracks" msgstr "Créer des pistes RESET" #: editor/editor_settings.cpp +#, fuzzy msgid "Onion Layers Past Color" -msgstr "" +msgstr "Couleur de couche Oignon précedente" #: editor/editor_settings.cpp +#, fuzzy msgid "Onion Layers Future Color" -msgstr "" +msgstr "Couleur de la couche d'Oignon suivante" #: editor/editor_settings.cpp #, fuzzy @@ -6171,11 +6179,11 @@ msgstr "Editeur de groupe" #: editor/editor_settings.cpp msgid "Minimap Opacity" -msgstr "" +msgstr "Opacité de la mini-carte" #: editor/editor_settings.cpp msgid "Window Placement" -msgstr "" +msgstr "Placement de la fenêtre" #: editor/editor_settings.cpp scene/2d/back_buffer_copy.cpp scene/2d/sprite.cpp #: scene/2d/visibility_notifier_2d.cpp scene/3d/sprite_3d.cpp @@ -6190,7 +6198,7 @@ msgstr "Définir la position de sortie de la courbe" #: editor/editor_settings.cpp platform/android/export/export_plugin.cpp msgid "Screen" -msgstr "" +msgstr "Écran" #: editor/editor_settings.cpp #, fuzzy @@ -6223,17 +6231,17 @@ msgstr "Paramètres de l'éditeur" #: editor/editor_settings.cpp msgid "HTTP Proxy" -msgstr "" +msgstr "Proxy HTTP" #: editor/editor_settings.cpp msgid "Host" -msgstr "" +msgstr "Hôte" #: editor/editor_settings.cpp editor/fileserver/editor_file_server.cpp #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp #: scene/resources/default_theme/default_theme.cpp msgid "Port" -msgstr "" +msgstr "Port" #. TRANSLATORS: Project Manager here refers to the tool used to create/manage Godot projects. #: editor/editor_settings.cpp @@ -6251,7 +6259,7 @@ msgstr "" #: editor/editor_settings.cpp msgid "Keyword Color" -msgstr "" +msgstr "Couleur des mots-clés" #: editor/editor_settings.cpp msgid "Control Flow Keyword Color" @@ -6272,7 +6280,7 @@ msgstr "" #: editor/editor_settings.cpp msgid "Comment Color" -msgstr "" +msgstr "Couleur des commentaires" #: editor/editor_settings.cpp #, fuzzy @@ -6322,7 +6330,7 @@ msgstr "Numéro de ligne :" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Caret Color" -msgstr "" +msgstr "Couleur du caret" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -6357,7 +6365,7 @@ msgstr "Coloration syntaxique" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Number Color" -msgstr "" +msgstr "Couleur des nombres" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -6385,8 +6393,9 @@ msgid "Breakpoint Color" msgstr "Point d'arrêts" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp +#, fuzzy msgid "Executing Line Color" -msgstr "" +msgstr "Couleur de la ligne d’exécution" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Code Folding Color" @@ -6713,8 +6722,9 @@ msgstr "" "téléchargement est terminé." #: editor/fileserver/editor_file_server.cpp +#, fuzzy msgid "File Server" -msgstr "" +msgstr "Serveur de fichiers" #: editor/fileserver/editor_file_server.cpp #: editor/plugins/version_control_editor_plugin.cpp @@ -7087,7 +7097,7 @@ msgstr "Gérer les groupes" #: editor/import/editor_import_collada.cpp msgid "Collada" -msgstr "" +msgstr "Collada" #: editor/import/editor_import_collada.cpp msgid "Use Ambient" @@ -7121,7 +7131,7 @@ msgstr "Correction de Couleur" #: editor/import/resource_importer_layered_texture.cpp msgid "No BPTC If RGB" -msgstr "" +msgstr "Pas de BPTC si RVB" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/2d/cpu_particles_2d.cpp @@ -7129,13 +7139,13 @@ msgstr "" #: scene/resources/material.cpp scene/resources/particles_material.cpp #: scene/resources/texture.cpp scene/resources/visual_shader.cpp msgid "Flags" -msgstr "" +msgstr "Paramètres" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/animation/tween.cpp #: scene/resources/texture.cpp msgid "Repeat" -msgstr "" +msgstr "Répéter" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/2d/light_2d.cpp @@ -7145,24 +7155,24 @@ msgstr "Filtre" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Mipmaps" -msgstr "Signaux" +msgstr "Mipmaps" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp +#, fuzzy msgid "Anisotropic" -msgstr "" +msgstr "Anisotropie" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp msgid "sRGB" -msgstr "" +msgstr "sRGB" #: editor/import/resource_importer_layered_texture.cpp #, fuzzy msgid "Slices" -msgstr "Coupe automatique" +msgstr "Coupures" #: editor/import/resource_importer_layered_texture.cpp #: scene/gui/aspect_ratio_container.cpp scene/gui/control.cpp @@ -7179,30 +7189,26 @@ msgid "Vertical" msgstr "Vertical" #: editor/import/resource_importer_obj.cpp -#, fuzzy msgid "Generate Tangents" -msgstr "Générer des points" +msgstr "Générer les tangentes" #: editor/import/resource_importer_obj.cpp -#, fuzzy msgid "Scale Mesh" -msgstr "Mode mise à l'échelle" +msgstr "Échelle du maillage" #: editor/import/resource_importer_obj.cpp -#, fuzzy msgid "Offset Mesh" -msgstr "Décalage :" +msgstr "Décalage du maillage" #: editor/import/resource_importer_obj.cpp #: editor/import/resource_importer_scene.cpp #, fuzzy msgid "Octahedral Compression" -msgstr "Expression" +msgstr "Compression Octaédrique" #: editor/import/resource_importer_obj.cpp -#, fuzzy msgid "Optimize Mesh Flags" -msgstr "Optimiser les drapeaux de Mesh" +msgstr "Optimiser les paramètres du maillage" #: editor/import/resource_importer_scene.cpp msgid "Import as Single Scene" @@ -7258,9 +7264,8 @@ msgid "Root Name" msgstr "Nom de la Racine" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Root Scale" -msgstr "Mode mise à l'échelle" +msgstr "Échelle de la racine" #: editor/import/resource_importer_scene.cpp msgid "Custom Script" @@ -7271,17 +7276,17 @@ msgid "Storage" msgstr "Stockage" #: editor/import/resource_importer_scene.cpp +#, fuzzy msgid "Use Legacy Names" -msgstr "" +msgstr "Utiliser des noms classiques" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp msgid "Materials" msgstr "Matériaux" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Keep On Reimport" -msgstr "Réimporter" +msgstr "Conserver à la réimportation" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp msgid "Meshes" @@ -7295,12 +7300,11 @@ msgstr "Modifier la tangente de courbes" #: editor/import/resource_importer_scene.cpp #, fuzzy msgid "Light Baking" -msgstr "Précalculer les lightmaps" +msgstr "Pré-calculer les cartes de lumières" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Lightmap Texel Size" -msgstr "LightMap Bake" +msgstr "Taille des Texels dans la carte de lumières" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp msgid "Skins" @@ -7312,13 +7316,13 @@ msgid "Use Named Skins" msgstr "Utiliser le magnétisme d'échelle" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "External Files" -msgstr "Ouvrir un fichier" +msgstr "Fichiers externes" #: editor/import/resource_importer_scene.cpp +#, fuzzy msgid "Store In Subdir" -msgstr "" +msgstr "Stocker dans un sous-dossier" #: editor/import/resource_importer_scene.cpp #, fuzzy @@ -7326,14 +7330,12 @@ msgid "Filter Script" msgstr "Filtrer les scripts" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Keep Custom Tracks" -msgstr "Transformation" +msgstr "Conserver les pistes personnalisées" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Optimizer" -msgstr "Optimiser" +msgstr "Optimiseur" #: editor/import/resource_importer_scene.cpp #: editor/plugins/item_list_editor_plugin.cpp main/main.cpp @@ -7347,9 +7349,8 @@ msgstr "Optimiser" #: scene/3d/sprite_3d.cpp scene/gui/graph_edit.cpp #: scene/gui/rich_text_label.cpp scene/resources/curve.cpp #: scene/resources/environment.cpp scene/resources/material.cpp -#, fuzzy msgid "Enabled" -msgstr "Activer" +msgstr "Activé" #: editor/import/resource_importer_scene.cpp msgid "Max Linear Error" @@ -7427,30 +7428,34 @@ 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 : La texture a été utilisé comme carte de normales dans la 3D. Activation " +"de la compression rouge-verte pour réduire l'utilisation de la mémoire (le " +"canal bleu est désactivé)." #: 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 : La texture a été détecter comme étant utilisé dans la 3D. Activation du " +"filtrage, de la répétition, de la génération de mipmap et de la compression " +"de la texture dans la mémoire vidéo." #: editor/import/resource_importer_texture.cpp msgid "2D, Detect 3D" -msgstr "" +msgstr "2D, Détecter la 3D" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "2D Pixel" -msgstr "Pixels pleins" +msgstr "Pixel 2D" #: editor/import/resource_importer_texture.cpp scene/resources/texture.cpp msgid "Lossy Quality" -msgstr "" +msgstr "Mauvaise qualité" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "HDR Mode" -msgstr "Mode sélection" +msgstr "Mode HDR" #: editor/import/resource_importer_texture.cpp msgid "BPTC LDR" @@ -7461,16 +7466,15 @@ msgstr "" #: scene/2d/mesh_instance_2d.cpp scene/2d/multimesh_instance_2d.cpp #: scene/2d/particles_2d.cpp scene/2d/sprite.cpp scene/resources/style_box.cpp msgid "Normal Map" -msgstr "" +msgstr "Carte de normales" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Process" -msgstr "Post-traitement" +msgstr "Processus" #: editor/import/resource_importer_texture.cpp msgid "Fix Alpha Border" -msgstr "" +msgstr "Corriger la bordure alpha" #: editor/import/resource_importer_texture.cpp #, fuzzy @@ -7479,37 +7483,36 @@ msgstr "Modifier le polygone" #: editor/import/resource_importer_texture.cpp msgid "Hdr As Srgb" -msgstr "" +msgstr "Hdr en tant que Srgb" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Invert Color" -msgstr "Vertex" +msgstr "Inverser la couleur" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Normal Map Invert Y" -msgstr "Échelle aléatoire :" +msgstr "Inverser l'axe Y de la carte de normales" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Size Limit" -msgstr "Limites" +msgstr "Limite de taille" #: editor/import/resource_importer_texture.cpp msgid "Detect 3D" -msgstr "" +msgstr "Détecter la 3D" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "SVG" -msgstr "HSV" +msgstr "SVG" #: editor/import/resource_importer_texture.cpp msgid "" "Warning, no suitable PC VRAM compression enabled in Project Settings. This " "texture will not display correctly on PC." msgstr "" +"Attention, aucune compression de la mémoire vidéo qui aille sur PC n'est " +"activé dans les paramètres du projet. Cette texture ne s'affichera pas " +"correctement sur PC." #: editor/import/resource_importer_texture_atlas.cpp msgid "Atlas File" @@ -7529,55 +7532,48 @@ msgid "Trim Alpha Border From Region" msgstr "" #: editor/import/resource_importer_wav.cpp scene/2d/physics_body_2d.cpp -#, fuzzy msgid "Force" -msgstr "Force-pousser" +msgstr "Force" #: editor/import/resource_importer_wav.cpp msgid "8 Bit" -msgstr "" +msgstr "8 Bit" #: editor/import/resource_importer_wav.cpp main/main.cpp #: modules/mono/editor/csharp_project.cpp modules/mono/mono_gd/gd_mono.cpp msgid "Mono" -msgstr "" +msgstr "Mono" #: editor/import/resource_importer_wav.cpp -#, fuzzy msgid "Max Rate" -msgstr "Mélanger le nœud" +msgstr "Taux maximal" #: editor/import/resource_importer_wav.cpp -#, fuzzy msgid "Max Rate Hz" -msgstr "Mélanger le nœud" +msgstr "Taux maximal en Hz" #: editor/import/resource_importer_wav.cpp msgid "Trim" msgstr "" #: editor/import/resource_importer_wav.cpp -#, fuzzy msgid "Normalize" -msgstr "Format" +msgstr "Normaliser" #: editor/import/resource_importer_wav.cpp #: scene/resources/audio_stream_sample.cpp -#, fuzzy msgid "Loop Mode" -msgstr "Mode déplacement" +msgstr "Mode de bouclage" #: editor/import/resource_importer_wav.cpp #: scene/resources/audio_stream_sample.cpp -#, fuzzy msgid "Loop Begin" -msgstr "Mode déplacement" +msgstr "Début de la boucle" #: editor/import/resource_importer_wav.cpp #: scene/resources/audio_stream_sample.cpp -#, fuzzy msgid "Loop End" -msgstr "Mode déplacement" +msgstr "Fin de la boucle" #: editor/import_defaults_editor.cpp msgid "Select Importer" @@ -7658,9 +7654,8 @@ msgid "Failed to load resource." msgstr "Impossible de charger la ressource." #: editor/inspector_dock.cpp -#, fuzzy msgid "Property Name Style" -msgstr "Nom du projet :" +msgstr "Style des noms de propriétés" #: editor/inspector_dock.cpp scene/gui/color_picker.cpp msgid "Raw" @@ -7672,13 +7667,12 @@ msgid "Capitalized" msgstr "Majuscule à chaque mot" #: editor/inspector_dock.cpp -#, fuzzy msgid "Localized" -msgstr "Localisation" +msgstr "Traduit" #: editor/inspector_dock.cpp msgid "Localization not available for current language." -msgstr "" +msgstr "La traduction n'est pas disponible pour la langue actuel." #: editor/inspector_dock.cpp msgid "Copy Properties" @@ -8229,9 +8223,8 @@ msgid "New" msgstr "Nouveau" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Paste As Reference" -msgstr "Référence de classe %s" +msgstr "Collé en tant que référence" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." @@ -8561,7 +8554,7 @@ msgstr "Filtres…" #: editor/plugins/asset_library_editor_plugin.cpp scene/main/http_request.cpp msgid "Use Threads" -msgstr "" +msgstr "Utiliser le multitâche" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Contents:" @@ -8724,25 +8717,21 @@ msgid "Loading..." msgstr "Chargement..." #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgctxt "Pagination" msgid "First" msgstr "Premier" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgctxt "Pagination" msgid "Previous" msgstr "Précédent" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgctxt "Pagination" msgid "Next" msgstr "Suivant" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgctxt "Pagination" msgid "Last" msgstr "Dernier" @@ -8793,7 +8782,7 @@ msgstr "En période de test" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed to get repository configuration." -msgstr "" +msgstr "N'a pas réussi à récupérer la configuration du dépôt." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Assets ZIP File" @@ -9360,23 +9349,20 @@ msgid "View" msgstr "Affichage" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show" -msgstr "Afficher la grille" +msgstr "Afficher" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show When Snapping" -msgstr "Magnétisme intelligent" +msgstr "Afficher lors de la magnétisation" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Hide" -msgstr "" +msgstr "Cacher" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Toggle Grid" -msgstr "Basculer le mode" +msgstr "Activer/Désactiver la grille" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -9728,16 +9714,16 @@ msgstr "Dégradé édité" #: editor/plugins/gradient_texture_2d_editor_plugin.cpp msgid "Swap GradientTexture2D Fill Points" -msgstr "" +msgstr "Échanger les points de remplissage du GradientTexture2D" #: editor/plugins/gradient_texture_2d_editor_plugin.cpp +#, fuzzy msgid "Swap Gradient Fill Points" -msgstr "" +msgstr "Échanger les points de remplissage du dégradé" #: editor/plugins/gradient_texture_2d_editor_plugin.cpp -#, fuzzy msgid "Toggle Grid Snap" -msgstr "Basculer le mode" +msgstr "Activer/Désactiver le magnétisme de la grille" #: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp #: scene/3d/label_3d.cpp scene/gui/button.cpp scene/gui/dialogs.cpp @@ -9756,13 +9742,12 @@ msgstr "Icône" #: editor/plugins/item_list_editor_plugin.cpp msgid "ID" -msgstr "" +msgstr "ID" #: editor/plugins/item_list_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Separator" -msgstr "Séparation :" +msgstr "Séparateur" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" @@ -10006,7 +9991,6 @@ msgstr "" "%s" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "MeshLibrary" msgstr "Librairie de maillages" @@ -10569,7 +10553,7 @@ msgstr "Synchroniser les os avec le polygone" #: editor/plugins/ray_cast_2d_editor_plugin.cpp msgid "Set cast_to" -msgstr "" +msgstr "Définir cast_to" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "ERROR: Couldn't load resource!" @@ -10900,21 +10884,19 @@ msgstr "Résultats de recherche" #: editor/plugins/script_editor_plugin.cpp msgid "Open Dominant Script On Scene Change" -msgstr "" +msgstr "Ouvrir le script principal lors du changement de scène" #: editor/plugins/script_editor_plugin.cpp msgid "External" -msgstr "" +msgstr "Externe" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Use External Editor" -msgstr "Déboguer avec un éditeur externe" +msgstr "Utiliser un éditeur externe" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Exec Path" -msgstr "Chemin d'exportation" +msgstr "Chemin d'exécution" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -10923,7 +10905,7 @@ msgstr "Sélectionner le fichier de modèles" #: editor/plugins/script_editor_plugin.cpp msgid "Highlight Current Script" -msgstr "" +msgstr "Mettre en évidence le script actuel" #: editor/plugins/script_editor_plugin.cpp msgid "Script Temperature History Size" @@ -10939,18 +10921,16 @@ msgid "Group Help Pages" msgstr "Groupe sélectionné" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Sort Scripts By" -msgstr "Créer un script" +msgstr "Trier les scripts par" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "List Script Names As" -msgstr "Nom du script :" +msgstr "Lister les noms de scripts en tant que" #: editor/plugins/script_editor_plugin.cpp msgid "Exec Flags" -msgstr "" +msgstr "Paramètres d'exécution" #: editor/plugins/script_editor_plugin.cpp msgid "Clear Recent Scripts" @@ -11471,10 +11451,11 @@ msgid "(Not in GLES2)" msgstr "(Non disponible dans GLES2)" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "" "Debug draw modes are only available when using the GLES3 renderer, not GLES2." -msgstr "Non disponible quand le moteur de rendu GLES2 est utilisé." +msgstr "" +"Les modes de rendu de débogage ne sont disponibles qu'avec le moteur GLES3, " +"et pas GLES2." #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Left" @@ -11777,9 +11758,8 @@ msgid "Manipulator Gizmo Opacity" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Show Viewport Rotation Gizmo" -msgstr "Verrouiller la rotation de la vue" +msgstr "Afficher le manipulateur de rotation dans le viewport" #: editor/plugins/spatial_editor_plugin.cpp msgid "Unnamed Gizmo" @@ -11832,9 +11812,8 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "Géométrie invalide, impossible de remplacer par un maillage." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Convert to MeshInstance2D" -msgstr "Convertir en Mesh2D" +msgstr "Convertir en MeshInstance2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create polygon." @@ -12238,9 +12217,8 @@ msgstr "" "Fermer tout de même ?" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Remove Type" -msgstr "Supprimer la tuile" +msgstr "Supprimer le type" #: editor/plugins/theme_editor_plugin.cpp msgid "" @@ -12285,14 +12263,12 @@ msgstr "" "thème." #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Add Theme Type" -msgstr "Ajouter un item de type" +msgstr "Ajouter un type de thème" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Remove Theme Type" -msgstr "Retirer le dépôt distant" +msgstr "Supprimer un type de thème" #: editor/plugins/theme_editor_plugin.cpp msgid "Add Color Item" @@ -12411,7 +12387,7 @@ msgstr "Sélectionnez une autre ressource Theme :" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Theme Resource" -msgstr "Renommer une ressource" +msgstr "Ressource de Thème" #: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" @@ -12472,7 +12448,6 @@ msgid "Set Variation Base Type" msgstr "Définir type de variable" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Set Base Type" msgstr "Changer le type de base" @@ -12498,10 +12473,13 @@ msgid "Select the variation base type from a list of available types." msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "" "A type associated with a built-in class cannot be marked as a variation of " "another type." msgstr "" +"Un type affilié à une classe intégré ne peut pas être marqué comme une " +"variante d'un autre type." #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -12742,14 +12720,13 @@ msgid "Clear Transform" msgstr "Supprimer la transformation" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Tile Map" -msgstr "Peindre sur la TileMap" +msgstr "Carte de Tuiles" #: editor/plugins/tile_map_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Palette Min Width" -msgstr "" +msgstr "Largeur minimale de la palette" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy @@ -12757,19 +12734,16 @@ msgid "Palette Item H Separation" msgstr "Séparateur nommé" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Show Tile Names" -msgstr "Afficher toutes les langues" +msgstr "Afficher les noms des tuiles" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Show Tile Ids" -msgstr "Afficher les règles" +msgstr "Afficher les IDs des tuiles" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Sort Tiles By Name" -msgstr "Trier les fichiers" +msgstr "Trier les tuiles par nom" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy @@ -12778,19 +12752,16 @@ msgstr "Remplissage du seau" #: editor/plugins/tile_map_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Editor Side" -msgstr "Éditeur" +msgstr "Coté Éditeur" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Display Grid" -msgstr "Affichage des surimpressions" +msgstr "Afficher la grille" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Axis Color" -msgstr "Prélever une couleur" +msgstr "Couleur des axes" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Add Texture(s) to TileSet." @@ -13129,7 +13100,6 @@ msgid "This property can't be changed." msgstr "Cette propriété ne peut être changée." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Snap Options" msgstr "Options de magnétisme" @@ -13154,14 +13124,12 @@ msgstr "Pas" #: editor/plugins/tile_set_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Separation" -msgstr "Séparation :" +msgstr "Séparation" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Selected Tile" -msgstr "Sélectionner" +msgstr "Tuile sélectionné" #: editor/plugins/tile_set_editor_plugin.cpp scene/2d/cpu_particles_2d.cpp #: scene/2d/light_2d.cpp scene/2d/line_2d.cpp scene/2d/mesh_instance_2d.cpp @@ -13170,9 +13138,8 @@ msgstr "Sélectionner" #: scene/gui/nine_patch_rect.cpp scene/gui/texture_rect.cpp #: scene/resources/material.cpp scene/resources/sky.cpp #: scene/resources/style_box.cpp scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Texture" -msgstr "Texte" +msgstr "Texture" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -13187,9 +13154,8 @@ msgstr "Matériau" #: editor/plugins/tile_set_editor_plugin.cpp scene/2d/canvas_item.cpp #: scene/3d/label_3d.cpp scene/3d/sprite_3d.cpp scene/resources/style_box.cpp -#, fuzzy msgid "Modulate" -msgstr "Peupler" +msgstr "Moduler" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -13202,39 +13168,32 @@ msgid "Autotile Bitmask Mode" msgstr "Mode Bitmask" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Subtile Size" -msgstr "Taille de Contour" +msgstr "Taille des sous-tuiles" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Subtile Spacing" -msgstr "Bouclage de l’animation" +msgstr "Espacement des sous-tuiles" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Occluder Offset" -msgstr "Créer un polygone occulteur" +msgstr "Décalage de l’occulteur" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Navigation Offset" -msgstr "Mode Navigation" +msgstr "Décalage de la navigation" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Shape Offset" -msgstr "Décalage :" +msgstr "Décalage de la forme" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Shape Transform" -msgstr "Transformation" +msgstr "Transformation de la forme" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Selected Collision" -msgstr "Collision" +msgstr "Collision sélectionné" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -13247,9 +13206,8 @@ msgid "Selected Collision One Way Margin" msgstr "Mode collision" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Selected Navigation" -msgstr "Navigation visible" +msgstr "Navigation sélectionnée" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -14354,11 +14312,13 @@ msgstr "Exécutable" #: editor/project_export.cpp msgid "Export the project for all the presets defined." -msgstr "" +msgstr "Exporter le projet pour tous les préréglages définis." #: editor/project_export.cpp msgid "All presets must have an export path defined for Export All to work." msgstr "" +"Tous les préréglages doivent avoir un chemin d'exportation défini pour " +"pouvoir tous les exportés." #: editor/project_export.cpp msgid "Delete preset '%s'?" @@ -14471,53 +14431,48 @@ msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." msgstr "" +"Note : La clé de cryptage doit être stocké dans le binaire,\n" +"vous devez compiler les modèles d'exportation depuis les sources." #: editor/project_export.cpp -#, fuzzy msgid "More Info..." -msgstr "Déplacer vers…" +msgstr "Plus d'informations..." #: editor/project_export.cpp -#, fuzzy msgid "Export PCK/Zip..." msgstr "Exporter le PCK/ZIP" #: editor/project_export.cpp -#, fuzzy msgid "Export Project..." -msgstr "Exporter le projet" +msgstr "Exporter le projet..." #: editor/project_export.cpp msgid "Export All" msgstr "Tout exporter" #: editor/project_export.cpp -#, fuzzy msgid "Choose an export mode:" -msgstr "Veuillez choisir un dossier vide." +msgstr "Choisissez un mode d'exportation :" #: editor/project_export.cpp -#, fuzzy msgid "Export All..." -msgstr "Tout exporter" +msgstr "Tout exporter..." #: editor/project_export.cpp editor/project_manager.cpp msgid "ZIP File" msgstr "Fichier ZIP" #: editor/project_export.cpp -#, fuzzy msgid "Godot Project Pack" -msgstr "Archive Godot" +msgstr "Pack de Projet Godot" #: editor/project_export.cpp msgid "Export templates for this platform are missing:" msgstr "Modèles d'exportation manquants pour cette plateforme :" #: editor/project_export.cpp -#, fuzzy msgid "Project Export" -msgstr "Fondateurs du projet" +msgstr "Exportation du projet" #: editor/project_export.cpp msgid "Manage Export Templates" @@ -14835,7 +14790,6 @@ msgstr "" #. TRANSLATORS: This refers to the application where users manage their Godot projects. #: editor/project_manager.cpp -#, fuzzy msgctxt "Application" msgid "Project Manager" msgstr "Gestionnaire de projets" @@ -15644,17 +15598,15 @@ msgstr "Rendre local" #: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp msgid "Another node already uses this unique name in the scene." -msgstr "" +msgstr "Un autre Nœud utilise ce nom unique dans la scène." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Enable Scene Unique Name" -msgstr "Nom unique" +msgstr "Activer le nom unique de la scène" #: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp -#, fuzzy msgid "Disable Scene Unique Name" -msgstr "Nom unique" +msgstr "Désactiver le nom unique de la scène" #: editor/scene_tree_dock.cpp msgid "New Scene Root" @@ -15833,7 +15785,7 @@ msgstr "Effacer l'héritage ? (Pas de retour en arrière !)" #: editor/scene_tree_dock.cpp #, fuzzy msgid "Show Scene Tree Root Selection" -msgstr "Centrer sur la sélection" +msgstr "Afficher la sélection de la racine de l'arborescence" #: editor/scene_tree_dock.cpp msgid "Derive Script Globals By Name" @@ -15870,6 +15822,9 @@ msgid "" "with the '%s' prefix in a node path.\n" "Click to disable this." msgstr "" +"Ce Nœud est accessible de n'importe où dans la scène en le préfixant de '%s' " +"dans un chemin de Nœud.\n" +"Cliquer pour désactiver cela." #: editor/scene_tree_editor.cpp msgid "" @@ -16156,9 +16111,8 @@ msgid "Stack Frames" msgstr "Pile des appels" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Filter stack variables" -msgstr "Filtrer les tuiles" +msgstr "Filtrer les variables de la pile" #: editor/script_editor_debugger.cpp msgid "Auto Switch To Remote Scene Tree" @@ -16166,7 +16120,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Remote Scene Tree Refresh Interval" -msgstr "" +msgstr "Intervalle de rafraîchissement de l'arborescence distante" #: editor/script_editor_debugger.cpp msgid "Remote Inspect Refresh Interval" @@ -16268,8 +16222,9 @@ msgid "Change Light Radius" msgstr "Changer le rayon d'une lumière" #: editor/spatial_editor_gizmos.cpp +#, fuzzy msgid "Stream Player 3D" -msgstr "" +msgstr "Émetteur de flux sonore 3D" #: editor/spatial_editor_gizmos.cpp msgid "Change AudioStreamPlayer3D Emission Angle" @@ -16279,7 +16234,7 @@ msgstr "Changer l'angle d'émission AudioStreamPlayer3D" #: platform/osx/export/export.cpp #: scene/resources/default_theme/default_theme.cpp msgid "Camera" -msgstr "" +msgstr "Caméra" #: editor/spatial_editor_gizmos.cpp msgid "Change Camera FOV" @@ -16291,7 +16246,7 @@ msgstr "Changer la taille d'une caméra" #: editor/spatial_editor_gizmos.cpp msgid "Visibility Notifier" -msgstr "" +msgstr "Notifiant de visibilité" #: editor/spatial_editor_gizmos.cpp msgid "Change Notifier AABB" @@ -16302,18 +16257,16 @@ msgid "Change Particles AABB" msgstr "Changer particules AABB" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Reflection Probe" -msgstr "Sélectionnez une propriété" +msgstr "Sonde de Réflexion" #: editor/spatial_editor_gizmos.cpp msgid "Change Probe Extents" msgstr "Changer les ampleurs de la sonde" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "GI Probe" -msgstr "Créer sonde IG (Illumination Globale)" +msgstr "Sonde GI" #: editor/spatial_editor_gizmos.cpp #, fuzzy @@ -16349,14 +16302,12 @@ msgid "Change Ray Shape Length" msgstr "Changer la longueur d'une forme en rayon" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Navigation Edge" -msgstr "Mode Navigation" +msgstr "Bord de la Navigation" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Navigation Edge Disabled" -msgstr "Mode Navigation" +msgstr "Bord de la Navigation Désactivé" #: editor/spatial_editor_gizmos.cpp #, fuzzy @@ -16378,7 +16329,7 @@ msgstr "" #: editor/spatial_editor_gizmos.cpp msgid "Room Edge" -msgstr "" +msgstr "Bord de la pièce" #: editor/spatial_editor_gizmos.cpp msgid "Room Overlap" @@ -16389,13 +16340,12 @@ msgid "Set Room Point Position" msgstr "Définir la position du point de la pièce" #: editor/spatial_editor_gizmos.cpp scene/3d/portal.cpp -#, fuzzy msgid "Portal Margin" -msgstr "Définir la marge" +msgstr "Marge du portail" #: editor/spatial_editor_gizmos.cpp msgid "Portal Edge" -msgstr "" +msgstr "Bords du portail" #: editor/spatial_editor_gizmos.cpp msgid "Portal Arrow" @@ -16407,18 +16357,16 @@ msgstr "Définir la position du point du Portal" #: editor/spatial_editor_gizmos.cpp msgid "Portal Front" -msgstr "" +msgstr "Avant du Portail" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Portal Back" -msgstr "Retourner" +msgstr "Arrière du Portail" #: editor/spatial_editor_gizmos.cpp scene/2d/light_occluder_2d.cpp #: scene/2d/tile_map.cpp -#, fuzzy msgid "Occluder" -msgstr "Mode Occlusion" +msgstr "Occulteur" #: editor/spatial_editor_gizmos.cpp msgid "Set Occluder Sphere Radius" @@ -16469,39 +16417,36 @@ msgid "BVH Collision Margin" msgstr "Mode collision" #: main/main.cpp -#, fuzzy msgid "Crash Handler" -msgstr "Définir la poignée" +msgstr "Gestionnaire de Crash" #: main/main.cpp -#, fuzzy msgid "Multithreaded Server" -msgstr "Ensemble multi-nœud" +msgstr "Serveur à tâches parallèles" #: main/main.cpp msgid "RID Pool Prealloc" msgstr "" #: main/main.cpp -#, fuzzy msgid "Debugger stdout" -msgstr "Débogueur" +msgstr "Sortie standard du débogueur" #: main/main.cpp msgid "Max Chars Per Second" -msgstr "" +msgstr "Maximum de Caractères par seconde" #: main/main.cpp msgid "Max Messages Per Frame" -msgstr "" +msgstr "Maximum de messages par image" #: main/main.cpp msgid "Max Errors Per Second" -msgstr "" +msgstr "Maximum d'erreurs par seconde" #: main/main.cpp msgid "Max Warnings Per Second" -msgstr "" +msgstr "Maximum d'avertissements par secondes" #: main/main.cpp msgid "Flush stdout On Print" @@ -16509,38 +16454,35 @@ msgstr "" #: main/main.cpp servers/visual_server.cpp msgid "Logging" -msgstr "" +msgstr "Journalisation" #: main/main.cpp msgid "File Logging" -msgstr "" +msgstr "Journalisation dans un fichier" #: main/main.cpp -#, fuzzy msgid "Enable File Logging" -msgstr "Activer le filtrage" +msgstr "Activer la journalisation dans un fichier" #: main/main.cpp -#, fuzzy msgid "Log Path" -msgstr "Copier le chemin" +msgstr "Chemin du Journal" #: main/main.cpp msgid "Max Log Files" -msgstr "" +msgstr "Maximum de fichiers journaux" #: main/main.cpp msgid "Driver" -msgstr "" +msgstr "Pilote" #: main/main.cpp -#, fuzzy msgid "Driver Name" -msgstr "Nom du script :" +msgstr "Nom du Pilote" #: main/main.cpp msgid "Fallback To GLES2" -msgstr "" +msgstr "Se replier sur GLES2" #: main/main.cpp msgid "Use Nvidia Rect Flicker Workaround" @@ -16555,45 +16497,40 @@ msgid "Allow hiDPI" msgstr "" #: main/main.cpp -#, fuzzy msgid "V-Sync" -msgstr "Synchroniser" +msgstr "Synchronisation Vertical" #: main/main.cpp -#, fuzzy msgid "Use V-Sync" -msgstr "Utiliser l’aimantation" +msgstr "Utiliser la Synchronisation Vertical" #: main/main.cpp msgid "Per Pixel Transparency" -msgstr "" +msgstr "Transparence par pixel" #: main/main.cpp msgid "Allowed" -msgstr "" +msgstr "Autorisé" #: main/main.cpp msgid "Intended Usage" -msgstr "" +msgstr "Usage prévu" #: main/main.cpp -#, fuzzy msgid "Framebuffer Allocation" -msgstr "Encadrer la sélection" +msgstr "Allocation du tampon d'image (Framebuffer)" #: main/main.cpp platform/uwp/os_uwp.cpp -#, fuzzy msgid "Energy Saving" -msgstr "Erreur d'enregistrement" +msgstr "Économie d'Énergie" #: main/main.cpp msgid "Threads" -msgstr "" +msgstr "Tâches Parallèles" #: main/main.cpp servers/physics_2d/physics_2d_server_wrap_mt.h -#, fuzzy msgid "Thread Model" -msgstr "Basculer le mode" +msgstr "Modèle de Parallélisme" #: main/main.cpp msgid "Thread Safe BVH" @@ -16605,25 +16542,21 @@ msgstr "" #: main/main.cpp platform/javascript/export/export.cpp #: platform/uwp/export/export.cpp -#, fuzzy msgid "Orientation" -msgstr "Documentation en ligne" +msgstr "Orientation" #: main/main.cpp scene/gui/scroll_container.cpp scene/gui/text_edit.cpp #: scene/main/scene_tree.cpp scene/register_scene_types.cpp -#, fuzzy msgid "Common" -msgstr "Communauté" +msgstr "Commun" #: main/main.cpp -#, fuzzy msgid "Physics FPS" -msgstr "Image physique %" +msgstr "TPS de la physique" #: main/main.cpp -#, fuzzy msgid "Force FPS" -msgstr "Force-pousser" +msgstr "Forces les trames par seconde" #: main/main.cpp msgid "Enable Pause Aware Picking" @@ -16641,7 +16574,7 @@ msgstr "" #: main/main.cpp msgid "stdout" -msgstr "" +msgstr "Sortie Standard" #: main/main.cpp msgid "Print FPS" @@ -16649,26 +16582,23 @@ msgstr "" #: main/main.cpp msgid "Verbose stdout" -msgstr "" +msgstr "Détailler La Sortie Standard" #: main/main.cpp scene/main/scene_tree.cpp scene/resources/multimesh.cpp -#, fuzzy msgid "Physics Interpolation" -msgstr "Mode d’interpolation" +msgstr "Interpolation de la physique" #: main/main.cpp -#, fuzzy msgid "Enable Warnings" -msgstr "Activer le filtrage" +msgstr "Activer les avertissements" #: main/main.cpp -#, fuzzy msgid "Frame Delay Msec" -msgstr "Encadrer la sélection" +msgstr "Délai des trames en millisecondes" #: main/main.cpp msgid "Low Processor Mode" -msgstr "" +msgstr "Mode Processeur Faible" #: main/main.cpp msgid "Delta Sync After Draw" @@ -16676,21 +16606,19 @@ msgstr "" #: main/main.cpp msgid "iOS" -msgstr "" +msgstr "iOS" #: main/main.cpp msgid "Hide Home Indicator" -msgstr "" +msgstr "Masquer l'indicateur d’accueil" #: main/main.cpp -#, fuzzy msgid "Input Devices" -msgstr "Tous les périphérique" +msgstr "Périphériques d'entrée" #: main/main.cpp -#, fuzzy msgid "Pointing" -msgstr "Point" +msgstr "Pointage" #: main/main.cpp msgid "Touch Delay" @@ -16698,12 +16626,11 @@ msgstr "" #: main/main.cpp servers/visual_server.cpp msgid "GLES3" -msgstr "" +msgstr "GLES3" #: main/main.cpp servers/visual_server.cpp -#, fuzzy msgid "Shaders" -msgstr "Ombrage" +msgstr "Shaders" #: main/main.cpp #, fuzzy @@ -16713,49 +16640,44 @@ msgstr "Forcer les replis du shader" #: main/main.cpp scene/3d/baked_lightmap.cpp scene/3d/camera.cpp #: scene/3d/world_environment.cpp scene/main/scene_tree.cpp #: scene/resources/world.cpp -#, fuzzy msgid "Environment" -msgstr "Voir environnement" +msgstr "Environnement" #: main/main.cpp msgid "Default Clear Color" -msgstr "" +msgstr "Couleur d'effacement par défaut" #: main/main.cpp msgid "Boot Splash" -msgstr "" +msgstr "Écran de démarrage" #: main/main.cpp -#, fuzzy msgid "Show Image" -msgstr "Afficher les os" +msgstr "Afficher l'image" #: main/main.cpp msgid "Image" -msgstr "" +msgstr "Image" #: main/main.cpp msgid "Fullsize" -msgstr "" +msgstr "Pleine taille" #: main/main.cpp scene/resources/dynamic_font.cpp -#, fuzzy msgid "Use Filter" -msgstr "Filtre :" +msgstr "Utiliser le filtrage" #: main/main.cpp scene/resources/style_box.cpp -#, fuzzy msgid "BG Color" -msgstr "Couleurs" +msgstr "Couleur d'arrière-plan" #: main/main.cpp -#, fuzzy msgid "macOS Native Icon" -msgstr "Définir l'icône de la tuile" +msgstr "Icône native de macOS" #: main/main.cpp msgid "Windows Native Icon" -msgstr "" +msgstr "Icône native de Windows" #: main/main.cpp msgid "Buffering" @@ -16767,30 +16689,27 @@ msgstr "" #: main/main.cpp msgid "Emulate Touch From Mouse" -msgstr "" +msgstr "Émuler le toucher tactile avec la souris" #: main/main.cpp msgid "Emulate Mouse From Touch" -msgstr "" +msgstr "Émuler la souris avec le toucher tactile" #: main/main.cpp -#, fuzzy msgid "Mouse Cursor" -msgstr "Bouton de souris" +msgstr "Curseur de la souris" #: main/main.cpp -#, fuzzy msgid "Custom Image" -msgstr "Nœud Personnalisé" +msgstr "Image personnalisée" #: main/main.cpp msgid "Custom Image Hotspot" msgstr "" #: main/main.cpp -#, fuzzy msgid "Tooltip Position Offset" -msgstr "Décalage de la rotation :" +msgstr "Décalage de la position des info-bulles" #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp #, fuzzy @@ -16798,9 +16717,8 @@ msgid "Debugger Agent" msgstr "Débogueur" #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp -#, fuzzy msgid "Wait For Debugger" -msgstr "Débogueur" +msgstr "Attendre le débogueur" #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp msgid "Wait Timeout" @@ -16815,28 +16733,25 @@ msgid "Unhandled Exception Policy" msgstr "" #: main/main.cpp -#, fuzzy msgid "Main Loop Type" -msgstr "Rechercher le type de nœud" +msgstr "Type de boucle principale" #: main/main.cpp scene/gui/texture_progress.cpp #: scene/gui/viewport_container.cpp -#, fuzzy msgid "Stretch" -msgstr "Actualiser" +msgstr "Étirement" #: main/main.cpp -#, fuzzy msgid "Aspect" -msgstr "Inspecteur" +msgstr "Aspect" #: main/main.cpp msgid "Shrink" -msgstr "" +msgstr "Rétrécissement" #: main/main.cpp scene/main/scene_tree.cpp msgid "Auto Accept Quit" -msgstr "" +msgstr "Accepter automatiquement la fermeture" #: main/main.cpp scene/main/scene_tree.cpp #, fuzzy @@ -16850,7 +16765,7 @@ msgstr "Aimanter aux flancs du nœud" #: main/main.cpp msgid "Dynamic Fonts" -msgstr "" +msgstr "Polices Dynamiques" #: main/main.cpp msgid "Use Oversampling" @@ -16887,7 +16802,7 @@ msgstr "Options" #: modules/csg/csg_shape.cpp msgid "Calculate Tangents" -msgstr "" +msgstr "Calculer les Tangentes" #: modules/csg/csg_shape.cpp #, fuzzy @@ -16993,9 +16908,8 @@ msgid "Path Simplify Angle" msgstr "" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Path Rotation" -msgstr "Rotation aléatoire :" +msgstr "Rotation du chemin" #: modules/csg/csg_shape.cpp #, fuzzy @@ -17018,24 +16932,20 @@ msgid "Path Joined" msgstr "Rotation aléatoire :" #: modules/enet/networked_multiplayer_enet.cpp -#, fuzzy msgid "Compression Mode" -msgstr "Mode collision" +msgstr "Mode de compression" #: modules/enet/networked_multiplayer_enet.cpp -#, fuzzy msgid "Transfer Channel" -msgstr "Modification de la transformation" +msgstr "Canal de transfert" #: modules/enet/networked_multiplayer_enet.cpp -#, fuzzy msgid "Channel Count" -msgstr "Instance" +msgstr "Nombre de canaux" #: modules/enet/networked_multiplayer_enet.cpp -#, fuzzy msgid "Always Ordered" -msgstr "Toujours afficher la grille" +msgstr "Toujours ordonnée" #: modules/enet/networked_multiplayer_enet.cpp msgid "Server Relay" @@ -17043,24 +16953,23 @@ msgstr "" #: modules/enet/networked_multiplayer_enet.cpp msgid "DTLS Verify" -msgstr "" +msgstr "Vérification DTLS" #: modules/enet/networked_multiplayer_enet.cpp msgid "DTLS Hostname" -msgstr "" +msgstr "Nom de l'hôte DTLS" #: modules/enet/networked_multiplayer_enet.cpp -#, fuzzy msgid "Use DTLS" -msgstr "Utiliser l’aimantation" +msgstr "Utiliser DTLS" #: modules/fbx/editor_scene_importer_fbx.cpp msgid "FBX" -msgstr "" +msgstr "FBX" #: modules/fbx/editor_scene_importer_fbx.cpp msgid "Use FBX" -msgstr "" +msgstr "Utiliser FBX" #: modules/gdnative/gdnative.cpp msgid "Config File" @@ -17073,19 +16982,16 @@ msgstr "Charger une ressource" #: modules/gdnative/gdnative.cpp #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Singleton" -msgstr "Squelette" +msgstr "Singleton" #: modules/gdnative/gdnative.cpp -#, fuzzy msgid "Symbol Prefix" -msgstr "Préfixe :" +msgstr "Préfixe du symbole" #: modules/gdnative/gdnative.cpp -#, fuzzy msgid "Reloadable" -msgstr "Recharger" +msgstr "Rechargeable" #: modules/gdnative/gdnative.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -17146,14 +17052,12 @@ msgid "Class Name" msgstr "Nom de la Classe" #: modules/gdnative/nativescript/nativescript.cpp -#, fuzzy msgid "Script Class" -msgstr "Nom du script :" +msgstr "Classe de Script" #: modules/gdnative/nativescript/nativescript.cpp -#, fuzzy msgid "Icon Path" -msgstr "Focaliser le chemin" +msgstr "Chemin de l'icône" #: modules/gdnative/register_types.cpp msgid "GDNative" @@ -17161,34 +17065,32 @@ msgstr "GDNative" #: modules/gdscript/editor/gdscript_highlighter.cpp #: modules/gdscript/gdscript.cpp -#, fuzzy msgid "GDScript" -msgstr "Script" +msgstr "GDScript" #: modules/gdscript/editor/gdscript_highlighter.cpp msgid "Function Definition Color" -msgstr "" +msgstr "Couleur de définition de fonction" #: modules/gdscript/editor/gdscript_highlighter.cpp -#, fuzzy msgid "Node Path Color" -msgstr "Copier le chemin du nœud" +msgstr "Couleur des chemins de nœud" #: modules/gdscript/gdscript.cpp modules/visual_script/visual_script.cpp msgid "Max Call Stack" -msgstr "" +msgstr "Maximum de la pile d'appel" #: modules/gdscript/gdscript.cpp msgid "Treat Warnings As Errors" -msgstr "" +msgstr "Traiter les avertissements comme des erreurs" #: modules/gdscript/gdscript.cpp msgid "Exclude Addons" -msgstr "" +msgstr "Exclure les extensions" #: modules/gdscript/gdscript.cpp msgid "Autocomplete Setters And Getters" -msgstr "" +msgstr "Auto-compléter les setters et les getters" #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -17235,17 +17137,16 @@ msgid "Language Server" msgstr "Serveur de Langues" #: modules/gdscript/language_server/gdscript_language_server.cpp -#, fuzzy msgid "Enable Smart Resolve" -msgstr "Impossible à résoudre" +msgstr "Activer la résolution intelligente" #: modules/gdscript/language_server/gdscript_language_server.cpp msgid "Show Native Symbols In Editor" -msgstr "" +msgstr "Afficher les symboles natifs dans l'éditeur" #: modules/gdscript/language_server/gdscript_language_server.cpp msgid "Use Thread" -msgstr "" +msgstr "Utiliser le parallélisme" #: modules/gltf/editor_scene_exporter_gltf_plugin.cpp msgid "Export Mesh GLTF2" @@ -17256,37 +17157,32 @@ msgid "Export GLTF..." msgstr "Exporter en GLTF..." #: modules/gltf/gltf_accessor.cpp -#, fuzzy msgid "Buffer View" -msgstr "Vue de derrière" +msgstr "Vue du tampon" #: modules/gltf/gltf_accessor.cpp modules/gltf/gltf_buffer_view.cpp msgid "Byte Offset" msgstr "Décalage d’Octet" #: modules/gltf/gltf_accessor.cpp -#, fuzzy msgid "Component Type" -msgstr "Composants" +msgstr "Type de composant" #: modules/gltf/gltf_accessor.cpp -#, fuzzy msgid "Normalized" -msgstr "Format" +msgstr "Normalisé" #: modules/gltf/gltf_accessor.cpp msgid "Count" msgstr "Compte" #: modules/gltf/gltf_accessor.cpp scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Min" -msgstr "Mio" +msgstr "Min" #: modules/gltf/gltf_accessor.cpp scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Max" -msgstr "Mixer" +msgstr "Max" #: modules/gltf/gltf_accessor.cpp #, fuzzy @@ -17315,14 +17211,12 @@ msgid "Sparse Values Byte Offset" msgstr "" #: modules/gltf/gltf_buffer_view.cpp -#, fuzzy msgid "Buffer" -msgstr "Vue de derrière" +msgstr "Tampon" #: modules/gltf/gltf_buffer_view.cpp -#, fuzzy msgid "Byte Length" -msgstr "Thème par défaut" +msgstr "Longueur de byte" #: modules/gltf/gltf_buffer_view.cpp msgid "Byte Stride" @@ -17354,19 +17248,17 @@ msgstr "Linéaire" #: scene/resources/environment.cpp scene/resources/material.cpp #: scene/resources/particles_material.cpp scene/resources/sky.cpp #: scene/resources/style_box.cpp -#, fuzzy msgid "Color" -msgstr "Couleurs" +msgstr "Couleur" #: modules/gltf/gltf_light.cpp scene/3d/reflection_probe.cpp #: scene/resources/environment.cpp msgid "Intensity" -msgstr "" +msgstr "Intensité" #: modules/gltf/gltf_light.cpp scene/2d/light_2d.cpp scene/3d/light.cpp -#, fuzzy msgid "Range" -msgstr "Changer" +msgstr "Plage" #: modules/gltf/gltf_light.cpp msgid "Inner Cone Angle" @@ -17387,9 +17279,8 @@ msgid "Instance Materials" msgstr "Changements de matériau :" #: modules/gltf/gltf_node.cpp scene/3d/skeleton.cpp -#, fuzzy msgid "Parent" -msgstr "Re-parenter" +msgstr "Parent" #: modules/gltf/gltf_node.cpp #, fuzzy @@ -17416,12 +17307,13 @@ msgid "Joints" msgstr "Point" #: modules/gltf/gltf_skeleton.cpp modules/gltf/gltf_skin.cpp +#, fuzzy msgid "Roots" -msgstr "" +msgstr "Racines" #: modules/gltf/gltf_skeleton.cpp modules/gltf/gltf_state.cpp msgid "Unique Names" -msgstr "" +msgstr "Noms Uniques" #: modules/gltf/gltf_skeleton.cpp #, fuzzy @@ -17460,16 +17352,18 @@ msgid "Godot Skin" msgstr "" #: modules/gltf/gltf_spec_gloss.cpp +#, fuzzy msgid "Diffuse Img" -msgstr "" +msgstr "Image Diffuse" #: modules/gltf/gltf_spec_gloss.cpp +#, fuzzy msgid "Diffuse Factor" -msgstr "" +msgstr "Facteur de diffusion" #: modules/gltf/gltf_spec_gloss.cpp msgid "Gloss Factor" -msgstr "" +msgstr "Facteur de brillance" #: modules/gltf/gltf_spec_gloss.cpp msgid "Specular Factor" @@ -17528,11 +17422,11 @@ msgstr "Fonctionnalités" #: modules/gltf/gltf_state.cpp platform/uwp/export/export.cpp msgid "Images" -msgstr "" +msgstr "Images" #: modules/gltf/gltf_state.cpp msgid "Cameras" -msgstr "" +msgstr "Caméras" #: modules/gltf/gltf_state.cpp servers/visual_server.cpp #, fuzzy @@ -17579,7 +17473,7 @@ msgstr "Précalculer les lightmaps" #: modules/gridmap/grid_map.cpp scene/2d/tile_map.cpp msgid "Cell" -msgstr "" +msgstr "Cellule" #: modules/gridmap/grid_map.cpp #, fuzzy @@ -17605,7 +17499,7 @@ msgstr "Centre" #: scene/2d/tile_map.cpp scene/3d/collision_object.cpp scene/3d/soft_body.cpp #: scene/resources/material.cpp msgid "Mask" -msgstr "" +msgstr "Masque" #: modules/gridmap/grid_map.cpp scene/2d/tile_map.cpp #, fuzzy @@ -17784,19 +17678,19 @@ msgstr "Précalculer les lightmaps" #: modules/lightmapper_cpu/register_types.cpp msgid "Low Quality Ray Count" -msgstr "" +msgstr "Nombre de rayons de basse qualité" #: modules/lightmapper_cpu/register_types.cpp msgid "Medium Quality Ray Count" -msgstr "" +msgstr "Nombre de rayons de qualité moyenne" #: modules/lightmapper_cpu/register_types.cpp msgid "High Quality Ray Count" -msgstr "" +msgstr "Nombre de rayons de haute qualité" #: modules/lightmapper_cpu/register_types.cpp msgid "Ultra Quality Ray Count" -msgstr "" +msgstr "Nombre de rayons de qualité extrême" #: modules/minimp3/audio_stream_mp3.cpp #: modules/minimp3/resource_importer_mp3.cpp @@ -17806,17 +17700,17 @@ msgid "Loop Offset" msgstr "Décalage de Boucle" #: modules/mobile_vr/mobile_vr_interface.cpp +#, fuzzy msgid "Eye Height" -msgstr "" +msgstr "Hauteur de l’œil" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "IOD" msgstr "" #: modules/mobile_vr/mobile_vr_interface.cpp -#, fuzzy msgid "Display Width" -msgstr "Affichage en fil de fer" +msgstr "Afficher la largeur" #: modules/mobile_vr/mobile_vr_interface.cpp #, fuzzy @@ -17844,9 +17738,8 @@ msgid "Build Solution" msgstr "Compiler la solution" #: modules/mono/editor/csharp_project.cpp -#, fuzzy msgid "Auto Update Project" -msgstr "Projet sans titre" +msgstr "Mettre à jour le projet automatiquement" #: modules/mono/mono_gd/gd_mono_utils.cpp msgid "End of inner exception stack trace" @@ -17924,17 +17817,17 @@ msgid "Seamless" msgstr "" #: modules/opensimplex/noise_texture.cpp -#, fuzzy msgid "As Normal Map" -msgstr "Échelle aléatoire :" +msgstr "En tant que carte de normales" #: modules/opensimplex/noise_texture.cpp +#, fuzzy msgid "Bump Strength" -msgstr "" +msgstr "Force du bossage" #: modules/opensimplex/noise_texture.cpp msgid "Noise" -msgstr "" +msgstr "Bruit" #: modules/opensimplex/noise_texture.cpp #, fuzzy @@ -17942,12 +17835,13 @@ msgid "Noise Offset" msgstr "Décalage de la grille :" #: modules/opensimplex/open_simplex_noise.cpp +#, fuzzy msgid "Octaves" -msgstr "" +msgstr "Octaves" #: modules/opensimplex/open_simplex_noise.cpp msgid "Period" -msgstr "" +msgstr "Période" #: modules/opensimplex/open_simplex_noise.cpp #, fuzzy @@ -17959,8 +17853,9 @@ msgid "Lacunarity" msgstr "" #: modules/regex/regex.cpp +#, fuzzy msgid "Subject" -msgstr "" +msgstr "Sujet" #: modules/regex/regex.cpp #, fuzzy @@ -17982,7 +17877,7 @@ msgstr "" #: modules/upnp/upnp.cpp msgid "Discover IPv6" -msgstr "" +msgstr "Découvrir IPv6" #: modules/upnp/upnp_device.cpp #, fuzzy @@ -18682,7 +18577,7 @@ msgstr "Sous-appel" #: modules/visual_script/visual_script_nodes.cpp scene/gui/graph_node.cpp msgid "Title" -msgstr "" +msgstr "Titre" #: modules/visual_script/visual_script_nodes.cpp msgid "Construct %s" @@ -18752,19 +18647,20 @@ msgstr "Mode prioritaire" #: modules/webrtc/webrtc_data_channel.h msgid "WebRTC" -msgstr "" +msgstr "WebRTC" #: modules/webrtc/webrtc_data_channel.h +#, fuzzy msgid "Max Channel In Buffer (KB)" -msgstr "" +msgstr "Maximum de canal dans le tampon (Ko)" #: modules/websocket/websocket_client.cpp msgid "Verify SSL" -msgstr "" +msgstr "Vérifier la SSL" #: modules/websocket/websocket_client.cpp msgid "Trusted SSL Certificate" -msgstr "" +msgstr "Certificat SSL Fiable" #: modules/websocket/websocket_macros.h #, fuzzy @@ -18777,8 +18673,9 @@ msgid "Max In Buffer (KB)" msgstr "Taille Maximale (KB)" #: modules/websocket/websocket_macros.h +#, fuzzy msgid "Max In Packets" -msgstr "" +msgstr "Maximum par paquet" #: modules/websocket/websocket_macros.h #, fuzzy @@ -18805,7 +18702,7 @@ msgstr "Chemin de la clé privée SSH" #: modules/websocket/websocket_server.cpp platform/javascript/export/export.cpp msgid "SSL Certificate" -msgstr "" +msgstr "Certificat SSL" #: modules/websocket/websocket_server.cpp #, fuzzy @@ -18855,7 +18752,7 @@ msgstr "Magnétisme intelligent" #: platform/android/export/export.cpp msgid "Android SDK Path" -msgstr "" +msgstr "Chemin du SDK Android" #: platform/android/export/export.cpp #, fuzzy @@ -18879,20 +18776,21 @@ msgid "Shutdown ADB On Exit" msgstr "" #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "Launcher Icons" -msgstr "" +msgstr "Icônes du lanceur" #: platform/android/export/export_plugin.cpp msgid "Main 192 X 192" -msgstr "" +msgstr "Principal 192 X 192" #: platform/android/export/export_plugin.cpp msgid "Adaptive Foreground 432 X 432" -msgstr "" +msgstr "Avant-Plan Adaptatif 432 X 432" #: platform/android/export/export_plugin.cpp msgid "Adaptive Background 432 X 432" -msgstr "" +msgstr "Arrière-Plan Adaptatif 432 X 432" #: platform/android/export/export_plugin.cpp msgid "Package name is missing." @@ -18924,18 +18822,16 @@ 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é" +msgstr "Construction personnalisé" #: platform/android/export/export_plugin.cpp msgid "Use Custom Build" -msgstr "" +msgstr "Utiliser une construction personnalisé" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Export Format" -msgstr "Chemin d'exportation" +msgstr "Format d'exportation" #: platform/android/export/export_plugin.cpp msgid "Min SDK" @@ -18943,12 +18839,11 @@ msgstr "Min SDK" #: platform/android/export/export_plugin.cpp msgid "Target SDK" -msgstr "Target SDK" +msgstr "SDK Cible" #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp -#, fuzzy msgid "Architectures" -msgstr "Ajouter une entrée architecture" +msgstr "Architectures" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -18976,17 +18871,17 @@ msgid "Release Password" msgstr "Mot de passe" #: platform/android/export/export_plugin.cpp +#, fuzzy msgid "One Click Deploy" -msgstr "" +msgstr "Déploiement en un clic" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Clear Previous Install" -msgstr "Inspecter l'instance précédente" +msgstr "Nettoyer l'installation précédente" #: platform/android/export/export_plugin.cpp msgid "Code" -msgstr "" +msgstr "Code" #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp #, fuzzy @@ -19008,7 +18903,7 @@ msgstr "Classer En Tant Que Jeu" #: platform/android/export/export_plugin.cpp msgid "Retain Data On Uninstall" -msgstr "" +msgstr "Conserver les données lors de la désinstallation" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -19016,14 +18911,12 @@ msgid "Exclude From Recents" msgstr "Supprimer des nœuds" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Graphics" -msgstr "Décalage de la grille :" +msgstr "Graphismes" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "OpenGL Debug" -msgstr "Ouvrir" +msgstr "Débogage OpenGL" #: platform/android/export/export_plugin.cpp msgid "XR Features" @@ -19047,9 +18940,8 @@ msgid "Passthrough" msgstr "" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Immersive Mode" -msgstr "Mode prioritaire" +msgstr "Mode immersif" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -19078,12 +18970,11 @@ msgstr "Interface utilisateur" #: platform/android/export/export_plugin.cpp msgid "Allow" -msgstr "" +msgstr "Autoriser" #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp -#, fuzzy msgid "Command Line" -msgstr "Communauté" +msgstr "Ligne de commande" #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp msgid "Extra Args" @@ -19096,22 +18987,19 @@ msgstr "Expression" #: platform/android/export/export_plugin.cpp msgid "Salt" -msgstr "" +msgstr "Sel" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Public Key" -msgstr "Chemin de la clé publique SSH" +msgstr "Clé Publique" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Permissions" -msgstr "Masque d'émission" +msgstr "Permissions" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Custom Permissions" -msgstr "Jouer une scène personnalisée" +msgstr "Permissions Personnalisées" #: platform/android/export/export_plugin.cpp msgid "Select device from the list" @@ -19231,6 +19119,11 @@ msgid "" "Note that the singleton was also renamed from \"GodotPayments\" to " "\"GodotGooglePlayBilling\"." msgstr "" +"Le module \"GodotPaymentV3\" inclus dans les paramètres du projet à " +"\"android/modules\" est invalide (Changé dans Godot 3.2.2).\n" +"Remplacez-le avec le plugin tiers \"GodotGooglePlayBilling\".\n" +"Notez que ce singleton a aussi été renommé de \"GodotPayments\" en " +"\"GodotGooglePlayBilling\"." #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." @@ -19265,12 +19158,16 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" +"\"Min SDK\" devrait être un nombre entier valide, mais \"%s\" n'est pas " +"valide." #: platform/android/export/export_plugin.cpp msgid "" "\"Min SDK\" cannot be lower than %d, which is the version needed by the " "Godot library." msgstr "" +"« Min SDK » ne peut être inférieur à %d, la version requise par la libraire " +"de Godot." #: platform/android/export/export_plugin.cpp msgid "" @@ -19283,12 +19180,16 @@ msgstr "" msgid "" "\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." msgstr "" +"« SDK Cible » devrait être un nombre entier valide, mais « %s » n'en est pas " +"un." #: 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 "" +"« SDK Cible » %d est plus grande que la version par défaut %d. Cela pourrait " +"fonctionner, mais ça n'a pas été testé. Le résultat pourrait être instable." #: platform/android/export/export_plugin.cpp msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." @@ -19492,19 +19393,19 @@ msgstr "" #: platform/iphone/export/export.cpp msgid "iPhone 2436 X 1125" -msgstr "" +msgstr "iPhone 2436 X 1125" #: platform/iphone/export/export.cpp msgid "iPhone 2208 X 1242" -msgstr "" +msgstr "iPhone 2208 X 1242" #: platform/iphone/export/export.cpp msgid "iPad 1024 X 768" -msgstr "" +msgstr "iPad 1024 X 768" #: platform/iphone/export/export.cpp msgid "iPad 2048 X 1536" -msgstr "" +msgstr "iPad 2048 X 1536" #: platform/iphone/export/export.cpp msgid "Portrait Launch Screens" @@ -19512,31 +19413,31 @@ msgstr "" #: platform/iphone/export/export.cpp msgid "iPhone 640 X 960" -msgstr "" +msgstr "iPhone 640 X 960" #: platform/iphone/export/export.cpp msgid "iPhone 640 X 1136" -msgstr "" +msgstr "iPhone 640 X 1136" #: platform/iphone/export/export.cpp msgid "iPhone 750 X 1334" -msgstr "" +msgstr "iPhone 750 X 1334" #: platform/iphone/export/export.cpp msgid "iPhone 1125 X 2436" -msgstr "" +msgstr "iPhone 1125 X 2436" #: platform/iphone/export/export.cpp msgid "iPad 768 X 1024" -msgstr "" +msgstr "iPad 768 X 1024" #: platform/iphone/export/export.cpp msgid "iPad 1536 X 2048" -msgstr "" +msgstr "iPad 1536 X 2048" #: platform/iphone/export/export.cpp msgid "iPhone 1242 X 2208" -msgstr "" +msgstr "iPhone 1242 X 2208" #: platform/iphone/export/export.cpp msgid "App Store Team ID" @@ -19569,37 +19470,34 @@ msgid "Export Method Release" msgstr "Mode d'exportation :" #: platform/iphone/export/export.cpp +#, fuzzy msgid "Targeted Device Family" -msgstr "" +msgstr "Famille de système cible" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp msgid "Info" -msgstr "" +msgstr "Info" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp msgid "Identifier" msgstr "Identifiant" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Signature" -msgstr "Signaux" +msgstr "Signature" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Short Version" -msgstr "Version" +msgstr "Version courte" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp #: platform/windows/export/export.cpp -#, fuzzy msgid "Copyright" -msgstr "En haut à droite" +msgstr "Copyright" #: platform/iphone/export/export.cpp -#, fuzzy msgid "Capabilities" -msgstr "Coller les propriétés" +msgstr "Capacités" #: platform/iphone/export/export.cpp msgid "Access Wi-Fi" @@ -19611,9 +19509,8 @@ msgid "Push Notifications" msgstr "Rotation aléatoire :" #: platform/iphone/export/export.cpp -#, fuzzy msgid "User Data" -msgstr "Interface utilisateur" +msgstr "Données Utilisateur" #: platform/iphone/export/export.cpp msgid "Accessible From Files App" @@ -19624,9 +19521,8 @@ msgid "Accessible From iTunes Sharing" msgstr "" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Privacy" -msgstr "Chemin de la clé privée SSH" +msgstr "Confidentialité" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp #, fuzzy @@ -19644,20 +19540,21 @@ msgid "Photolibrary Usage Description" msgstr "Description des propriétés" #: platform/iphone/export/export.cpp +#, fuzzy msgid "iPhone 120 X 120" -msgstr "" +msgstr "iPhone 120 X 120" #: platform/iphone/export/export.cpp msgid "iPhone 180 X 180" -msgstr "" +msgstr "iPhone 180 X 180" #: platform/iphone/export/export.cpp msgid "iPad 76 X 76" -msgstr "" +msgstr "iPad 76 X 76" #: platform/iphone/export/export.cpp msgid "iPad 152 X 152" -msgstr "" +msgstr "iPad 152 X 152" #: platform/iphone/export/export.cpp msgid "iPad 167 X 167" @@ -19699,25 +19596,21 @@ msgid "Custom Image @3x" msgstr "Nœud Personnalisé" #: platform/iphone/export/export.cpp -#, fuzzy msgid "Use Custom BG Color" -msgstr "Nœud Personnalisé" +msgstr "Utiliser la couleur d'arrière-plan personnalisée" #: platform/iphone/export/export.cpp -#, fuzzy msgid "Custom BG Color" -msgstr "Nœud Personnalisé" +msgstr "Couleur d'arrière-plan personnalisée" #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp -#, fuzzy msgid "Prepare Templates" -msgstr "Gérer les modèles" +msgstr "Préparer les modèles" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Export template not found." -msgstr "Modèle de version personnalisée introuvable." +msgstr "Modèle d'exportation introuvable." #: platform/iphone/export/export.cpp msgid "App Store Team ID not specified - cannot configure the project." @@ -19740,29 +19633,24 @@ msgid "Run exported HTML in the system's default browser." msgstr "Exécutez le HTML exporté dans le navigateur par défaut du système." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not open template for export: \"%s\"." -msgstr "Impossible d'ouvrir le modèle pour exportation :" +msgstr "Impossible d'ouvrir le modèle pour exportation : « %s »." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Invalid export template: \"%s\"." -msgstr "Modèle d'exportation non valide :" +msgstr "Modèle d'exportation invalide : « %s »." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not write file: \"%s\"." -msgstr "Impossible d'écrire le fichier :" +msgstr "Impossible d'écrire le fichier : « %s »." #: platform/javascript/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Icon Creation" -msgstr "Définir la marge" +msgstr "Création de l'icône" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not read file: \"%s\"." -msgstr "Impossible de lire le fichier :" +msgstr "Impossible de lire le fichier : «%s »." #: platform/javascript/export/export.cpp msgid "PWA" @@ -19773,36 +19661,32 @@ msgid "Variant" msgstr "Variant" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Export Type" -msgstr "Exporter" +msgstr "Type d'exportation" #: platform/javascript/export/export.cpp -#, fuzzy msgid "VRAM Texture Compression" -msgstr "Expression" +msgstr "Compression des textures dans la mémoire vidéo" #: platform/javascript/export/export.cpp msgid "For Desktop" -msgstr "" +msgstr "Pour PC" #: platform/javascript/export/export.cpp msgid "For Mobile" -msgstr "" +msgstr "Pour Mobile" #: platform/javascript/export/export.cpp msgid "HTML" -msgstr "" +msgstr "HTML" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Export Icon" -msgstr "Développer tout" +msgstr "Icône d'exportation" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Custom HTML Shell" -msgstr "Nœud Personnalisé" +msgstr "Shell HTML personnalisé" #: platform/javascript/export/export.cpp msgid "Head Include" @@ -19817,65 +19701,60 @@ msgid "Focus Canvas On Start" msgstr "" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Experimental Virtual Keyboard" -msgstr "Filtrer les signaux" +msgstr "Clavier virtuel expérimental" #: platform/javascript/export/export.cpp msgid "Progressive Web App" -msgstr "" +msgstr "Application web progressive" #: platform/javascript/export/export.cpp msgid "Offline Page" -msgstr "" +msgstr "Page hors ligne" #: platform/javascript/export/export.cpp msgid "Icon 144 X 144" -msgstr "" +msgstr "Icône 144 X 144" #: platform/javascript/export/export.cpp msgid "Icon 180 X 180" -msgstr "" +msgstr "Icône 180 X 180" #: platform/javascript/export/export.cpp msgid "Icon 512 X 512" -msgstr "" +msgstr "Icône 512 X 512" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not read HTML shell: \"%s\"." -msgstr "Impossible de lire le shell HTML :" +msgstr "Impossible de lire le shell HTML : « %s »." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not create HTTP server directory: %s." -msgstr "Impossible de créer le répertoire du serveur HTTP :" +msgstr "Impossible de créer le répertoire du serveur HTTP : %s." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Error starting HTTP server: %d." -msgstr "Erreur de démarrage du serveur HTTP :" +msgstr "Erreur de démarrage du serveur HTTP : %d." #: platform/javascript/export/export.cpp msgid "Web" -msgstr "" +msgstr "Web" #: platform/javascript/export/export.cpp msgid "HTTP Host" -msgstr "" +msgstr "Hôte HTTP" #: platform/javascript/export/export.cpp msgid "HTTP Port" -msgstr "" +msgstr "Port HTTP" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Use SSL" -msgstr "Utiliser l’aimantation" +msgstr "Utiliser SSL" #: platform/javascript/export/export.cpp msgid "SSL Key" -msgstr "" +msgstr "Clé SSL" #: platform/osx/export/codesign.cpp msgid "Can't get filesystem access." @@ -19903,7 +19782,7 @@ msgstr "Échec de création du sous-dossier « %s »." #: platform/osx/export/codesign.cpp msgid "Failed to extract thin binary." -msgstr "" +msgstr "Échec lors de l'extraction du binaire." #: platform/osx/export/codesign.cpp msgid "Invalid binary format." @@ -19920,7 +19799,7 @@ msgstr "Impossible de charger la ressource." #: platform/osx/export/codesign.cpp msgid "Failed to create _CodeSignature subfolder." -msgstr "" +msgstr "Échec lors de la création du sous-dossier _CodeSignature." #: platform/osx/export/codesign.cpp #, fuzzy @@ -19937,29 +19816,30 @@ msgid "Invalid executable file." msgstr "Fichier exécutable invalide." #: platform/osx/export/codesign.cpp +#, fuzzy msgid "Can't resize signature load command." -msgstr "" +msgstr "Impossible de redimensionner la commande de chargement des signatures." #: platform/osx/export/codesign.cpp msgid "Failed to create fat binary." -msgstr "" +msgstr "Échec lors de la création du binaire." #: platform/osx/export/codesign.cpp msgid "Unknown bundle type." -msgstr "" +msgstr "Type de paquet inconnu." #: platform/osx/export/codesign.cpp msgid "Unknown object type." msgstr "Type d'objet inconnu." #: platform/osx/export/export.cpp -#, fuzzy msgid "App Category" -msgstr "Catégorie :" +msgstr "Catégorie de l'application" #: platform/osx/export/export.cpp +#, fuzzy msgid "High Res" -msgstr "" +msgstr "Haute Résolution" #: platform/osx/export/export.cpp #, fuzzy @@ -20039,7 +19919,7 @@ msgstr "Nœud Personnalisé" #: platform/osx/export/export.cpp msgid "Allow JIT Code Execution" -msgstr "" +msgstr "Autoriser l'exécution du code JIT" #: platform/osx/export/export.cpp msgid "Allow Unsigned Executable Memory" @@ -20050,27 +19930,24 @@ msgid "Allow Dyld Environment Variables" msgstr "" #: platform/osx/export/export.cpp -#, fuzzy msgid "Disable Library Validation" -msgstr "Bouton désactivé" +msgstr "Désactiver la validation des librairies" #: platform/osx/export/export.cpp -#, fuzzy msgid "Audio Input" -msgstr "Ajouter une entrée" +msgstr "Entrée Audio" #: platform/osx/export/export.cpp msgid "Address Book" -msgstr "" +msgstr "Carnet d'Adresses" #: platform/osx/export/export.cpp msgid "Calendars" -msgstr "" +msgstr "Calendrier" #: platform/osx/export/export.cpp -#, fuzzy msgid "Photos Library" -msgstr "Bibliothèque d'exportation" +msgstr "Bibliothèque de photos" #: platform/osx/export/export.cpp #, fuzzy @@ -20083,8 +19960,9 @@ msgid "Debugging" msgstr "Débogage" #: platform/osx/export/export.cpp +#, fuzzy msgid "App Sandbox" -msgstr "" +msgstr "Bac à sable de l'application" #: platform/osx/export/export.cpp #, fuzzy @@ -20172,18 +20050,24 @@ msgid "" "The notarization process generally takes less than an hour. When the process " "is completed, you'll receive an email." msgstr "" +"Le processus de certification prend généralement moins d'une heure. Quand le " +"processus sera achevé, vous recevrez un e-mail." #: platform/osx/export/export.cpp msgid "" "You can check progress manually by opening a Terminal and running the " "following command:" msgstr "" +"Vous pouvez contrôler la progression manuellement en ouvrant un Terminal et " +"en exécutant la commande suivante :" #: platform/osx/export/export.cpp msgid "" "Run the following command to staple the notarization ticket to the exported " "application (optional):" msgstr "" +"Exécutez la commande suivante pour lier le ticket de certification avec " +"l'application exporté (optionnel) :" #: platform/osx/export/export.cpp msgid "Timestamping is not compatible with ad-hoc signature, and was disabled!" @@ -20207,6 +20091,8 @@ msgid "" "Could not start codesign executable, make sure Xcode command line tools are " "installed." msgstr "" +"Ne peut lancer l'exécutable codesign, vérifiez que les outils en ligne de " +"commande de Xcode sont installés." #: platform/osx/export/export.cpp platform/windows/export/export.cpp msgid "No identity found." @@ -20220,6 +20106,8 @@ msgstr "Erreur lors de l'enregistrement du fichier : %s" #: platform/osx/export/export.cpp msgid "Relative symlinks are not supported, exported \"%s\" might be broken!" msgstr "" +"Les liens symboliques relatifs ne sont pas supportés, « %s » pourrait être " +"cassé !" #: platform/osx/export/export.cpp #, fuzzy @@ -20232,12 +20120,13 @@ msgid "Could not start hdiutil executable." msgstr "Impossible de démarrer le sous-processus !" #: platform/osx/export/export.cpp +#, fuzzy msgid "`hdiutil create` failed - file exists." -msgstr "" +msgstr "`hdiutil create` a échoué - le fichier existe." #: platform/osx/export/export.cpp msgid "`hdiutil create` failed." -msgstr "" +msgstr "`hdiutil create` a échoué." #: platform/osx/export/export.cpp #, fuzzy @@ -20259,12 +20148,16 @@ msgid "" "Relative symlinks are not supported on this OS, the exported project might " "be broken!" msgstr "" +"Les liens symboliques relatifs ne sont pas supportés sur ce système " +"d'exploitation, le projet exporté pourrait être cassé !" #: platform/osx/export/export.cpp msgid "" "Requested template binary \"%s\" not found. It might be missing from your " "template archive." msgstr "" +"Le binaire modèle requis « %s » n'a pas été trouvé. Il doit être absent de " +"votre archive de modèles." #: platform/osx/export/export.cpp msgid "Making PKG" @@ -20297,10 +20190,12 @@ msgid "" "Notarization requires the app to be archived first, select the DMG or ZIP " "export format instead." msgstr "" +"La certification nécessite que l'application soit préalablement archivé. " +"Sélectionnez le format d'exportation DMG ou ZIP à la place." #: platform/osx/export/export.cpp msgid "Sending archive for notarization" -msgstr "" +msgstr "Envoi de l'archive pour la certification" #: platform/osx/export/export.cpp #, fuzzy @@ -20321,16 +20216,23 @@ msgid "" "Warning: Built-in \"codesign\" is selected in the Editor Settings. Code " "signing is limited to ad-hoc signature only." msgstr "" +"Attention : Le « codesign » embarqué est sélectionné dans les paramètres de " +"l'éditeur. La signature du code se limite à la signature ad-hoc seulement." #: platform/osx/export/export.cpp msgid "" "Warning: Xcode command line tools are not installed, using built-in " "\"codesign\". Code signing is limited to ad-hoc signature only." msgstr "" +"Attention : Les outils en ligne de commande de Xcode ne sont pas installés, " +"utilisation du « codesign » embarqué. La signature du code se limite à la " +"signature ad-hoc seulement." #: platform/osx/export/export.cpp msgid "Notarization: Notarization with an ad-hoc signature is not supported." msgstr "" +"Certification : La certification avec une signature ad-hoc n'est pas " +"supporté." #: platform/osx/export/export.cpp #, fuzzy @@ -20360,12 +20262,17 @@ msgid "" "Warning: Notarization is disabled. The exported project will be blocked by " "Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Attention : La certification est désactivé. Le projet exporté sera bloqué " +"par Gatekeeper si il est téléchargé depuis une source inconnue." #: platform/osx/export/export.cpp msgid "" "Code signing is disabled. The exported project will not run on Macs with " "enabled Gatekeeper and Apple Silicon powered Macs." msgstr "" +"La signature du code est désactivé. Le projet exporté ne fonctionnera pas " +"sur les Macs avec Gatekeeper activé et sous les Macs fonctionnant sous Apple " +"Silicon." #: platform/osx/export/export.cpp msgid "" @@ -20383,6 +20290,9 @@ msgid "" "Warning: Notarization is not supported from this OS. The exported project " "will be blocked by Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Attention : La certification n'est pas compatible avec ce système " +"d'exploitation. Le projet exporté sera bloqué par Gatekeeper si il est " +"téléchargé depuis une source inconnue." #: platform/osx/export/export.cpp msgid "" @@ -20432,7 +20342,7 @@ msgstr "" #: platform/osx/export/export.cpp msgid "macOS" -msgstr "" +msgstr "macOS" #: platform/osx/export/export.cpp msgid "Force Builtin Codesign" @@ -20487,11 +20397,11 @@ msgstr "Débogueur" #: platform/uwp/export/export.cpp msgid "Major" -msgstr "" +msgstr "Majeur" #: platform/uwp/export/export.cpp msgid "Minor" -msgstr "" +msgstr "Mineur" #: platform/uwp/export/export.cpp #, fuzzy @@ -20505,7 +20415,7 @@ msgstr "Expression" #: platform/uwp/export/export.cpp msgid "Landscape" -msgstr "" +msgstr "Paysage" #: platform/uwp/export/export.cpp #, fuzzy @@ -20514,11 +20424,11 @@ msgstr "Retourner les Portals" #: platform/uwp/export/export.cpp msgid "Landscape Flipped" -msgstr "" +msgstr "Paysage Inversé" #: platform/uwp/export/export.cpp msgid "Portrait Flipped" -msgstr "" +msgstr "Portrait Inversé" #: platform/uwp/export/export.cpp #, fuzzy @@ -20527,23 +20437,23 @@ msgstr "Mode mise à l'échelle" #: platform/uwp/export/export.cpp msgid "Square 44 X 44 Logo" -msgstr "" +msgstr "Logo 44 X 44 Carré" #: platform/uwp/export/export.cpp msgid "Square 71 X 71 Logo" -msgstr "" +msgstr "Logo 71 X 71 Carré" #: platform/uwp/export/export.cpp msgid "Square 150 X 150 Logo" -msgstr "" +msgstr "Logo 150 X 150 Carré" #: platform/uwp/export/export.cpp msgid "Square 310 X 310 Logo" -msgstr "" +msgstr "Logo 310 X 310 Carré" #: platform/uwp/export/export.cpp msgid "Wide 310 X 150 Logo" -msgstr "" +msgstr "Logo 310 X 150 Large" #: platform/uwp/export/export.cpp #, fuzzy @@ -20557,15 +20467,15 @@ msgstr "Fichier" #: platform/uwp/export/export.cpp msgid "Show Name On Square 150 X 150" -msgstr "" +msgstr "Afficher le nom sur le carré 150 X 150" #: platform/uwp/export/export.cpp msgid "Show Name On Wide 310 X 150" -msgstr "" +msgstr "Afficher le nom sur le large 310 X 150" #: platform/uwp/export/export.cpp msgid "Show Name On Square 310 X 310" -msgstr "" +msgstr "Afficher le nom sur le carré 310 X 310" #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -20634,7 +20544,7 @@ msgstr "" #: platform/uwp/export/export.cpp msgid "UWP" -msgstr "" +msgstr "UWP" #: platform/uwp/export/export.cpp platform/windows/export/export.cpp #, fuzzy @@ -20643,7 +20553,7 @@ msgstr "Signaux" #: platform/uwp/export/export.cpp msgid "Debug Certificate" -msgstr "" +msgstr "Certificat de Débogage" #: platform/uwp/export/export.cpp #, fuzzy @@ -20656,8 +20566,9 @@ msgid "Failed to rename temporary file \"%s\"." msgstr "Impossible de supprimer le fichier temporaire :" #: platform/windows/export/export.cpp +#, fuzzy msgid "Identity Type" -msgstr "" +msgstr "Type d'identité" #: platform/windows/export/export.cpp msgid "Timestamp Server URL" @@ -20697,7 +20608,7 @@ msgstr "Description" #: platform/windows/export/export.cpp msgid "Trademarks" -msgstr "" +msgstr "Marques Déposées" #: platform/windows/export/export.cpp #, fuzzy @@ -20729,6 +20640,8 @@ msgid "" "rcedit failed to modify executable:\n" "%s" msgstr "" +"rcedit n'a pas réussi à modifier l'exécutable :\n" +"%s" #: platform/windows/export/export.cpp #, fuzzy @@ -21582,12 +21495,12 @@ msgstr "Bouton désactivé" #: scene/2d/joints_2d.cpp scene/3d/physics_body.cpp scene/3d/physics_joint.cpp msgid "Softness" -msgstr "" +msgstr "Douceur" #: scene/2d/joints_2d.cpp scene/resources/animation.cpp #: scene/resources/ray_shape.cpp scene/resources/segment_shape_2d.cpp msgid "Length" -msgstr "" +msgstr "Longueur" #: scene/2d/joints_2d.cpp #, fuzzy @@ -21600,7 +21513,7 @@ msgstr "" #: scene/2d/joints_2d.cpp scene/3d/physics_joint.cpp scene/3d/vehicle_body.cpp msgid "Stiffness" -msgstr "" +msgstr "Rigidité" #: scene/2d/light_2d.cpp msgid "" @@ -21624,15 +21537,15 @@ msgstr "RegionDeTexture" #: scene/3d/light.cpp scene/resources/environment.cpp #: scene/resources/material.cpp scene/resources/sky.cpp msgid "Energy" -msgstr "" +msgstr "Énergie" #: scene/2d/light_2d.cpp msgid "Z Min" -msgstr "" +msgstr "Minimum Z" #: scene/2d/light_2d.cpp msgid "Z Max" -msgstr "" +msgstr "Maximum Z" #: scene/2d/light_2d.cpp #, fuzzy @@ -21703,7 +21616,7 @@ msgstr "Défaut" #: scene/2d/line_2d.cpp scene/resources/texture.cpp msgid "Fill" -msgstr "" +msgstr "Remplissage" #: scene/2d/line_2d.cpp scene/resources/texture.cpp #, fuzzy @@ -21716,8 +21629,9 @@ msgid "Texture Mode" msgstr "RegionDeTexture" #: scene/2d/line_2d.cpp +#, fuzzy msgid "Capping" -msgstr "" +msgstr "Recouvrement" #: scene/2d/line_2d.cpp #, fuzzy @@ -21745,7 +21659,7 @@ msgstr "" #: scene/2d/line_2d.cpp msgid "Round Precision" -msgstr "" +msgstr "Précision de l’arrondissement" #: scene/2d/line_2d.cpp scene/2d/polygon_2d.cpp #: scene/resources/dynamic_font.cpp @@ -21762,7 +21676,7 @@ msgstr "Multiplier %s" #: scene/3d/navigation.cpp scene/animation/root_motion_view.cpp #: scene/resources/world_2d.cpp servers/physics_2d/physics_2d_server_sw.cpp msgid "Cell Size" -msgstr "" +msgstr "Taille des Cellules" #: scene/2d/navigation_2d.cpp scene/3d/navigation.cpp #, fuzzy @@ -21775,6 +21689,9 @@ msgid "" "will be removed in a future version. Use 'Navigation2DServer.map_get_path()' " "instead." msgstr "" +"Le nœud « Navigation2D » et « Navigation2D.get_simple_path() » sont " +"obsolètes et seront supprimés dans une future version. Utilisez « " +"Navigation2DServer.map_get_path() » à la place." #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy @@ -21788,7 +21705,7 @@ msgstr "Choisissez distance :" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Target Desired Distance" -msgstr "" +msgstr "Distance Désirée de la Cible" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy @@ -21807,11 +21724,11 @@ msgstr "Activer" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Neighbor Dist" -msgstr "" +msgstr "Distance des voisins" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Max Neighbors" -msgstr "" +msgstr "Maximum de voisins" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy @@ -21819,9 +21736,8 @@ msgid "Time Horizon" msgstr "Retourner horizontalement" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy msgid "Max Speed" -msgstr "Vitesse :" +msgstr "Vitesse Max" #: scene/2d/navigation_agent_2d.cpp #, fuzzy @@ -21830,9 +21746,8 @@ msgid "" msgstr "Le NavigationAgent2D ne peut être utilisé que sous un nœud Node2D." #: scene/2d/navigation_obstacle_2d.cpp scene/3d/navigation_obstacle.cpp -#, fuzzy msgid "Estimate Radius" -msgstr "Changer le rayon extérieur de la tour" +msgstr "Estimer le rayon" #: scene/2d/navigation_obstacle_2d.cpp msgid "" @@ -21870,57 +21785,50 @@ msgstr "Se déplacer" msgid "Rotation Degrees" msgstr "Degrés de Rotation" -#: scene/2d/node_2d.cpp -#, fuzzy +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" -msgstr "Constante globale" +msgstr "Rotation Globale" #: scene/2d/node_2d.cpp msgid "Global Rotation Degrees" msgstr "Degrés de Rotation Globale" #: scene/2d/node_2d.cpp -#, fuzzy msgid "Global Scale" -msgstr "Échelle aléatoire :" +msgstr "Échelle Globale" #: scene/2d/node_2d.cpp scene/3d/spatial.cpp -#, fuzzy msgid "Global Transform" -msgstr "Conserver la transformation globale" +msgstr "Transformation Globale" #: scene/2d/node_2d.cpp -#, fuzzy msgid "Z As Relative" -msgstr "Alignement relatif" +msgstr "Z En tant que relatif" #: scene/2d/parallax_background.cpp scene/gui/scroll_container.cpp #: scene/resources/default_theme/default_theme.cpp msgid "Scroll" -msgstr "" +msgstr "Défilement" #: scene/2d/parallax_background.cpp -#, fuzzy msgid "Base Offset" -msgstr "Décalage :" +msgstr "Décalage de Base" #: scene/2d/parallax_background.cpp -#, fuzzy msgid "Base Scale" -msgstr "Utiliser le magnétisme d'échelle" +msgstr "Échelle de Base" #: scene/2d/parallax_background.cpp msgid "Limit Begin" -msgstr "" +msgstr "Début de la limite" #: scene/2d/parallax_background.cpp -#, fuzzy msgid "Limit End" -msgstr "À la fin" +msgstr "Fin de la limite" #: scene/2d/parallax_background.cpp msgid "Ignore Camera Zoom" -msgstr "" +msgstr "Ignorer le zoom de la Caméra" #: scene/2d/parallax_layer.cpp msgid "" @@ -21932,9 +21840,8 @@ msgstr "" #: scene/2d/parallax_layer.cpp scene/2d/physics_body_2d.cpp #: scene/3d/physics_body.cpp scene/3d/vehicle_body.cpp #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Motion" -msgstr "Action" +msgstr "Déplacement" #: scene/2d/parallax_layer.cpp #, fuzzy @@ -21983,19 +21890,17 @@ msgstr "" "Animation » activé." #: scene/2d/particles_2d.cpp -#, fuzzy msgid "Visibility Rect" -msgstr "Mode prioritaire" +msgstr "Zone de Visibilité" #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "Process Material" -msgstr "" +msgstr "Matériau" #: scene/2d/path_2d.cpp scene/3d/path.cpp scene/resources/sky.cpp #: scene/resources/texture.cpp -#, fuzzy msgid "Curve" -msgstr "Scinder la courbe" +msgstr "Courbe" #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." @@ -22009,58 +21914,51 @@ msgid "Unit Offset" msgstr "Décalage de la grille :" #: scene/2d/path_2d.cpp scene/3d/camera.cpp scene/3d/path.cpp -#, fuzzy msgid "H Offset" -msgstr "Décalage :" +msgstr "Décalage Horizontal" #: scene/2d/path_2d.cpp scene/3d/camera.cpp scene/3d/path.cpp -#, fuzzy msgid "V Offset" -msgstr "Décalage :" +msgstr "Décalage Vertical" #: scene/2d/path_2d.cpp scene/3d/path.cpp msgid "Cubic Interp" -msgstr "" +msgstr "Interpolation Cubique" #: scene/2d/path_2d.cpp msgid "Lookahead" msgstr "" #: scene/2d/physics_body_2d.cpp scene/3d/visual_instance.cpp -#, fuzzy msgid "Layers" -msgstr "Calque" +msgstr "Calques" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Constant Linear Velocity" -msgstr "Initialiser" +msgstr "Vélocité Linéaire Constante" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Constant Angular Velocity" -msgstr "Initialiser" +msgstr "Vélocité Angulaire Constante" #: scene/2d/physics_body_2d.cpp scene/2d/tile_map.cpp scene/3d/physics_body.cpp #: scene/resources/physics_material.cpp -#, fuzzy msgid "Friction" -msgstr "Fonction" +msgstr "Friction" #: scene/2d/physics_body_2d.cpp scene/2d/tile_map.cpp scene/3d/physics_body.cpp #: scene/resources/physics_material.cpp msgid "Bounce" -msgstr "" +msgstr "Rebond" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp msgid "Physics Material Override" -msgstr "" +msgstr "Surcharge du Matériau Des Physiques" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #: scene/resources/world.cpp scene/resources/world_2d.cpp -#, fuzzy msgid "Default Gravity" -msgstr "Aperçu par défaut" +msgstr "Gravité par Défaut" #: scene/2d/physics_body_2d.cpp msgid "" @@ -22074,21 +21972,19 @@ msgstr "" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp msgid "Mass" -msgstr "" +msgstr "Masse" #: scene/2d/physics_body_2d.cpp -#, fuzzy msgid "Inertia" -msgstr "Vertical :" +msgstr "Inertie" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Weight" -msgstr "Lumière" +msgstr "Poids" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp msgid "Gravity Scale" -msgstr "" +msgstr "Échelle de la Gravité" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #, fuzzy @@ -22102,44 +21998,40 @@ msgstr "Continu" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp msgid "Contacts Reported" -msgstr "" +msgstr "Contact Rapporté" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Contact Monitor" -msgstr "Prélever une couleur" +msgstr "Moniteur de Contact" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Sleeping" -msgstr "Magnétisme intelligent" +msgstr "Sommeil" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Can Sleep" -msgstr "Vitesse :" +msgstr "Peut Dormir" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp msgid "Damp" -msgstr "" +msgstr "Atténuation" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp msgid "Angular" -msgstr "" +msgstr "Angulaire" #: scene/2d/physics_body_2d.cpp msgid "Applied Forces" -msgstr "" +msgstr "Forces Appliquées" #: scene/2d/physics_body_2d.cpp msgid "Torque" msgstr "" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Safe Margin" -msgstr "Définir la marge" +msgstr "Marge de sécurité" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp msgid "Sync To Physics" @@ -22158,9 +22050,8 @@ msgstr "" #: scene/3d/physics_body.cpp scene/gui/texture_button.cpp #: scene/resources/default_theme/default_theme.cpp #: scene/resources/line_shape_2d.cpp scene/resources/material.cpp -#, fuzzy msgid "Normal" -msgstr "Format" +msgstr "Normale" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #, fuzzy @@ -22168,61 +22059,53 @@ msgid "Remainder" msgstr "Moteur de rendu :" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Local Shape" -msgstr "Localisation" +msgstr "Forme Locale" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Collider" -msgstr "Mode collision" +msgstr "Collisionneur" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #: servers/physics_2d_server.cpp servers/physics_server.cpp msgid "Collider ID" -msgstr "" +msgstr "ID Du Collisionneur" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Collider RID" -msgstr "RID invalide" +msgstr "RID Du Collisionneur" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Collider Shape" -msgstr "Mode collision" +msgstr "Forme Du Collisionneur" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Collider Shape Index" -msgstr "Mode collision" +msgstr "Index De La Forme Du Collisionneur" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Collider Velocity" -msgstr "Vue de l'orbite vers la droite" +msgstr "Vélocité Du Collisionneur" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp msgid "Collider Metadata" -msgstr "" +msgstr "Méta-Données Du Collisionneur" #: scene/2d/polygon_2d.cpp msgid "Invert" -msgstr "" +msgstr "Inverser" #: scene/2d/polygon_2d.cpp -#, fuzzy msgid "Vertex Colors" -msgstr "Vertex" +msgstr "Couleurs Des Sommets" #: scene/2d/polygon_2d.cpp -#, fuzzy msgid "Internal Vertex Count" -msgstr "Créer un vertex interne" +msgstr "Nombre de Sommet Interne" #: scene/2d/position_2d.cpp #, fuzzy @@ -22231,7 +22114,7 @@ msgstr "Gadgets" #: scene/2d/ray_cast_2d.cpp scene/3d/ray_cast.cpp msgid "Exclude Parent" -msgstr "" +msgstr "Exclure Le Parent" #: scene/2d/ray_cast_2d.cpp scene/3d/ray_cast.cpp #, fuzzy @@ -22240,7 +22123,7 @@ msgstr "Créer un nœud Shader" #: scene/2d/ray_cast_2d.cpp scene/3d/ray_cast.cpp msgid "Collide With" -msgstr "" +msgstr "Collisionne Avec" #: scene/2d/ray_cast_2d.cpp scene/3d/camera.cpp scene/3d/ray_cast.cpp msgid "Areas" @@ -22248,7 +22131,7 @@ msgstr "" #: scene/2d/ray_cast_2d.cpp scene/3d/camera.cpp scene/3d/ray_cast.cpp msgid "Bodies" -msgstr "" +msgstr "Corps" #: scene/2d/remote_transform_2d.cpp msgid "Path property must point to a valid Node2D node to work." @@ -22352,51 +22235,44 @@ msgid "Y Sort" msgstr "Trier" #: scene/2d/tile_map.cpp -#, fuzzy msgid "Show Collision" -msgstr "Collision" +msgstr "Afficher la Collision" #: scene/2d/tile_map.cpp -#, fuzzy msgid "Compatibility Mode" -msgstr "Mode prioritaire" +msgstr "Mode de Compatibilité" #: scene/2d/tile_map.cpp -#, fuzzy msgid "Centered Textures" -msgstr "Fonctionnalités principales :" +msgstr "Textures Centrées" #: scene/2d/tile_map.cpp msgid "Cell Clip UV" msgstr "" #: scene/2d/tile_map.cpp -#, fuzzy msgid "Use Parent" -msgstr "Mode collision" +msgstr "Utiliser le Parent" #: scene/2d/tile_map.cpp msgid "Use Kinematic" -msgstr "" +msgstr "Utiliser Kinematic" #: scene/2d/touch_screen_button.cpp -#, fuzzy msgid "Shape Centered" -msgstr "Aimanter au centre du nœud" +msgstr "Forme Centrée" #: scene/2d/touch_screen_button.cpp -#, fuzzy msgid "Shape Visible" -msgstr "Rendre visible" +msgstr "Forme Visible" #: scene/2d/touch_screen_button.cpp msgid "Passby Press" msgstr "" #: scene/2d/touch_screen_button.cpp -#, fuzzy msgid "Visibility Mode" -msgstr "Mode prioritaire" +msgstr "Mode de Visibilité" #: scene/2d/visibility_notifier_2d.cpp msgid "" @@ -22413,7 +22289,7 @@ msgstr "Coller l'animation" #: scene/2d/visibility_notifier_2d.cpp scene/3d/visibility_notifier.cpp msgid "Freeze Bodies" -msgstr "" +msgstr "Geler les corps" #: scene/2d/visibility_notifier_2d.cpp #, fuzzy @@ -22426,22 +22302,20 @@ msgid "Pause Animated Sprites" msgstr "Coller l'animation" #: scene/2d/visibility_notifier_2d.cpp -#, fuzzy msgid "Process Parent" -msgstr "Activer la priorité" +msgstr "Parent du Processus" #: scene/2d/visibility_notifier_2d.cpp msgid "Physics Process Parent" -msgstr "" +msgstr "Parent du Processus Physique" #: scene/3d/area.cpp msgid "Reverb Bus" msgstr "" #: scene/3d/area.cpp -#, fuzzy msgid "Uniformity" -msgstr "Définir le nom de l'uniforme" +msgstr "Uniformité" #: scene/3d/arvr_nodes.cpp msgid "ARVRCamera must have an ARVROrigin node as its parent." @@ -22449,7 +22323,7 @@ msgstr "ARVRCamera doit avoir un nœud ARVROrigin comme parent." #: scene/3d/arvr_nodes.cpp msgid "Controller ID" -msgstr "" +msgstr "ID Du Contrôleur" #: scene/3d/arvr_nodes.cpp servers/arvr/arvr_positional_tracker.cpp msgid "Rumble" @@ -22489,9 +22363,8 @@ msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin requiert un nœud enfant ARVRCamera." #: scene/3d/arvr_nodes.cpp servers/arvr_server.cpp -#, fuzzy msgid "World Scale" -msgstr "Échelle aléatoire :" +msgstr "Échelle du Monde" #: scene/3d/audio_stream_player_3d.cpp #, fuzzy @@ -24023,6 +23896,11 @@ msgstr "" "Modifiez les tailles dans les formes de collision enfants à la place." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Transformation Globale" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/ga.po b/editor/translations/ga.po index 65ffebf3e5..db42dda6ed 100644 --- a/editor/translations/ga.po +++ b/editor/translations/ga.po @@ -450,6 +450,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20453,7 +20457,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22332,6 +22336,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Athrú: " + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/gl.po b/editor/translations/gl.po index c8dd75ade3..b42b50e5a7 100644 --- a/editor/translations/gl.po +++ b/editor/translations/gl.po @@ -488,6 +488,10 @@ msgid "Pressure" msgstr "Axustes de Importación" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "Axuste Relativo" @@ -21645,7 +21649,7 @@ msgstr "Viaxe" msgid "Rotation Degrees" msgstr "Rotando % graos." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Constante" @@ -23712,6 +23716,11 @@ msgstr "" "lugar." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Transformación" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/he.po b/editor/translations/he.po index d37f806bb7..a89d117ead 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -483,6 +483,10 @@ msgid "Pressure" msgstr "לחץ" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "GDNative" @@ -21808,7 +21812,7 @@ msgstr "טיול" msgid "Rotation Degrees" msgstr "הטיה של %s מעלות." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "קבוע" @@ -23890,6 +23894,11 @@ msgstr "" "במקום זאת יש לשנות את גודל צורות ההתנגשות של הצאצאים." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "התמרה" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/hi.po b/editor/translations/hi.po index 0e6bb551e4..a598e43071 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -466,6 +466,10 @@ msgid "Pressure" msgstr "प्रीसेट" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -21363,7 +21367,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "कोन्स्टन्ट" @@ -23338,6 +23342,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "एनीमेशन परिवर्तन परिणत" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/hr.po b/editor/translations/hr.po index c1a9a444cc..61aeaeeb10 100644 --- a/editor/translations/hr.po +++ b/editor/translations/hr.po @@ -465,6 +465,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20844,7 +20848,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22783,6 +22787,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Uredi Tranzicije..." + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/hu.po b/editor/translations/hu.po index 5bfd5b0995..9f0d894b2a 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -507,6 +507,10 @@ msgid "Pressure" msgstr "Előre beállított" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "Relatív Illesztés" @@ -21595,7 +21599,7 @@ msgstr "Utazás" msgid "Rotation Degrees" msgstr "Forgatási Léptetés:" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Állandó" @@ -23628,6 +23632,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Globális Transzformáció Megtartása" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/id.po b/editor/translations/id.po index 57c1a69e92..24547a7464 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -26,7 +26,7 @@ # Ade Fikri Malihuddin <ade.fm97@gmail.com>, 2020. # zephyroths <ridho.hikaru@gmail.com>, 2020, 2021, 2022. # Richard Urban <redasuio1@gmail.com>, 2020. -# yusuf afandi <afandi.yusuf.04@gmail.com>, 2020. +# yusuf afandi <afandi.yusuf.04@gmail.com>, 2020, 2022. # Habib Rohman <revolusi147id@gmail.com>, 2020. # Hanz <hanzhaxors@gmail.com>, 2021. # Reza Almanda <rezaalmanda27@gmail.com>, 2021, 2022. @@ -44,8 +44,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-05-15 09:38+0000\n" -"Last-Translator: Tsaqib Fadhlurrahman Soka <sokatsaqib@gmail.com>\n" +"PO-Revision-Date: 2022-07-09 21:12+0000\n" +"Last-Translator: yusuf afandi <afandi.yusuf.04@gmail.com>\n" "Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/" "godot/id/>\n" "Language: id\n" @@ -53,7 +53,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.13.1-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -481,6 +481,11 @@ msgid "Pressure" msgstr "Tekanan" #: core/os/input_event.cpp +#, fuzzy +msgid "Pen Inverted" +msgstr "Balik" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relatif" @@ -21753,7 +21758,7 @@ msgstr "Menjelajah" msgid "Rotation Degrees" msgstr "Derajat Putaran" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "Rotasi Global" @@ -23822,6 +23827,11 @@ msgstr "" "Ubah ukurannya melalui \"collision shape\"-anaknya saja." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Transformasi Global" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "Matriks" @@ -24742,7 +24752,7 @@ msgstr "" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Caret" -msgstr "" +msgstr "Tanda sisipan" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Blink" diff --git a/editor/translations/is.po b/editor/translations/is.po index d5353421d4..b7eb0e4b88 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -457,6 +457,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20739,7 +20743,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22640,6 +22644,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Breyta umbreytingu" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/it.po b/editor/translations/it.po index e693139e21..36757b891d 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -508,6 +508,10 @@ msgid "Pressure" msgstr "Pressione" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relativo" @@ -21493,7 +21497,7 @@ msgstr "Spostamento" msgid "Rotation Degrees" msgstr "Rotazione in Gradi" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Costante" @@ -23642,6 +23646,11 @@ msgstr "" "Modifica invece la dimensione nelle forme di collisione figlie." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Mantieni Transform Globale" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/ja.po b/editor/translations/ja.po index 3abcd5529f..5c6358a4c4 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -487,6 +487,11 @@ msgid "Pressure" msgstr "圧力" #: core/os/input_event.cpp +#, fuzzy +msgid "Pen Inverted" +msgstr "反転" + +#: core/os/input_event.cpp msgid "Relative" msgstr "相対的" @@ -21573,7 +21578,7 @@ msgstr "トラベル" msgid "Rotation Degrees" msgstr "%s 度回転。" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "コンスタント" @@ -23711,6 +23716,11 @@ msgstr "" "代わりに、子の衝突シェイプのサイズを変更してください。" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "グローバル トランスフォームを保持" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/ka.po b/editor/translations/ka.po index 14599ca68e..f67e7c0bdd 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -466,6 +466,10 @@ msgid "Pressure" msgstr "ზუმის საწყისზე დაყენება" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -21235,7 +21239,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "მუდმივი" @@ -23190,6 +23194,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "ანიმაციის გარდაქმნის ცვლილება" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/km.po b/editor/translations/km.po index 32175987ef..2da1ccac99 100644 --- a/editor/translations/km.po +++ b/editor/translations/km.po @@ -440,6 +440,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20294,7 +20298,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22117,6 +22121,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Anim ផ្លាស់ប្តូរ Transition" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index 8800745e09..ff2f4ecb80 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -477,6 +477,10 @@ msgid "Pressure" msgstr "압력" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "상대적" @@ -21542,7 +21546,7 @@ msgstr "진행" msgid "Rotation Degrees" msgstr "%s도로 회전." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "상수" @@ -23666,6 +23670,11 @@ msgstr "" "대신 자식 콜리전 모양의 크기를 변경하세요." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "전역 변형 유지" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 51428b68f4..8daa544db9 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -476,6 +476,10 @@ msgid "Pressure" msgstr "Atstatyti Priartinimą" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -21259,7 +21263,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konstanta" @@ -23223,6 +23227,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Animacija: Pakeisti Transformaciją" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/lv.po b/editor/translations/lv.po index 0d2e4afec9..2dabcb40bf 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -479,6 +479,10 @@ msgid "Pressure" msgstr "Sagatave" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -21083,7 +21087,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konstante" @@ -23065,6 +23069,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Pāreja eksistē!" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/mk.po b/editor/translations/mk.po index b35fce0168..ef9a504af6 100644 --- a/editor/translations/mk.po +++ b/editor/translations/mk.po @@ -444,6 +444,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "GDNative(ГДДомороден)" @@ -20345,7 +20349,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22175,6 +22179,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Анимација Промени Прелаз" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/ml.po b/editor/translations/ml.po index b2f6c17059..1b5bc9e68f 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -450,6 +450,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20389,7 +20393,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22247,6 +22251,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "ചലനം ചുറ്റൽ" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/mr.po b/editor/translations/mr.po index d9943d0a5e..8dffed5d4e 100644 --- a/editor/translations/mr.po +++ b/editor/translations/mr.po @@ -450,6 +450,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20406,7 +20410,7 @@ msgstr "प्रवास" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22268,6 +22272,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "संक्रमण: " + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/ms.po b/editor/translations/ms.po index a1955bb027..caef354c6c 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -451,6 +451,10 @@ msgid "Pressure" msgstr "Tekanan" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relatif" @@ -21295,7 +21299,7 @@ msgstr "Perjalanan" msgid "Rotation Degrees" msgstr "Langkah Putaran:" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Pemalar" @@ -23297,6 +23301,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Kosongkan Transformasi" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/nb.po b/editor/translations/nb.po index 11bf857f4b..68de0259c2 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -473,6 +473,10 @@ msgid "Pressure" msgstr "Trykk" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relativ" @@ -22145,7 +22149,7 @@ msgstr "Reise" msgid "Rotation Degrees" msgstr "Roterer %s grader." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konstant" @@ -24190,6 +24194,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Nullstill Transformasjon" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/nl.po b/editor/translations/nl.po index def707ac8b..756bf78add 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -547,6 +547,10 @@ msgid "Pressure" msgstr "Voorinstellingen" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "Relatief kleven" @@ -22069,7 +22073,7 @@ msgstr "Verplaats" msgid "Rotation Degrees" msgstr "Roteren %s graden." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Constante" @@ -24184,6 +24188,11 @@ msgstr "" "Verander in plaats daarvan de grootte van de onderliggende botsingsvormen." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Houd Globale Transformatie" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index 9fdaafae3e..264d623676 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -67,7 +67,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-07-05 23:51+0000\n" +"PO-Revision-Date: 2022-07-10 14:38+0000\n" "Last-Translator: Dawid Skubij <davidsd@tlen.pl>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" @@ -270,7 +270,7 @@ msgstr "Sieć" #: core/io/file_access_network.cpp msgid "Remote FS" -msgstr "Zdalny System Plików" +msgstr "Zdalny System Plików" #: core/io/file_access_network.cpp msgid "Page Size" @@ -450,9 +450,8 @@ msgid "Command" msgstr "Command" #: core/os/input_event.cpp -#, fuzzy msgid "Physical" -msgstr " (fizyczny)" +msgstr "Fizyczny" #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp @@ -505,6 +504,10 @@ msgid "Pressure" msgstr "Ciśnienie" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relatywny" @@ -5505,7 +5508,7 @@ msgstr "Miniatura..." #: editor/editor_settings.cpp msgid "Docks" -msgstr "" +msgstr "Doki" #: editor/editor_settings.cpp #, fuzzy @@ -7123,7 +7126,7 @@ msgstr "" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp msgid "sRGB" -msgstr "" +msgstr "sRGB" #: editor/import/resource_importer_layered_texture.cpp #, fuzzy @@ -7441,7 +7444,7 @@ msgstr "" #: scene/2d/mesh_instance_2d.cpp scene/2d/multimesh_instance_2d.cpp #: scene/2d/particles_2d.cpp scene/2d/sprite.cpp scene/resources/style_box.cpp msgid "Normal Map" -msgstr "" +msgstr "Mapa normalnych" #: editor/import/resource_importer_texture.cpp #, fuzzy @@ -9851,7 +9854,7 @@ msgstr "Utwórz obrys" #: scene/resources/multimesh.cpp scene/resources/primitive_meshes.cpp #: scene/resources/texture.cpp msgid "Mesh" -msgstr "Siatka" +msgstr "Mesh" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Body" @@ -17095,9 +17098,8 @@ msgstr "GDNative" #: modules/gdscript/editor/gdscript_highlighter.cpp #: modules/gdscript/gdscript.cpp -#, fuzzy msgid "GDScript" -msgstr "Skrypt" +msgstr "GDScript" #: modules/gdscript/editor/gdscript_highlighter.cpp msgid "Function Definition Color" @@ -19304,9 +19306,8 @@ msgid "Invalid filename! Android APK requires the *.apk extension." msgstr "Nieprawidłowa nazwa pliku! APK Androida wymaga rozszerzenia *.apk." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Unsupported export format!" -msgstr "Nieobsługiwany format eksportu!\n" +msgstr "Nieobsługiwany format eksportu!" #: platform/android/export/export_plugin.cpp msgid "" @@ -19336,9 +19337,8 @@ msgstr "" "projektu" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files to gradle project." -msgstr "Nie udało się eksportować plików projektu do projektu gradle\n" +msgstr "Nie udało się eksportować plików projektu do projektu gradle." #: platform/android/export/export_plugin.cpp msgid "Could not write expansion package file!" @@ -20267,9 +20267,8 @@ msgid "ZIP Creation" msgstr "Projekt" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open file to read from path \"%s\"." -msgstr "Nie udało się eksportować plików projektu do projektu gradle\n" +msgstr "Nie udało się otworzyć pliku do odczytu ze ścieżki \"%s\"." #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -21255,26 +21254,23 @@ msgstr "" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp scene/main/timer.cpp -#, fuzzy msgid "One Shot" -msgstr "Jednorazowy Węzeł" +msgstr "Wyemituj raz" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp -#, fuzzy msgid "Preprocess" -msgstr "Przetwarzanie końcowe" +msgstr "Przetwarzanie wstępne" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp msgid "Explosiveness" -msgstr "" +msgstr "Wybuchowość" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp -#, fuzzy msgid "Randomness" -msgstr "Losowy restart (s):" +msgstr "Losowość" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21849,7 +21845,7 @@ msgstr "Przejdź" msgid "Rotation Degrees" msgstr "Obracanie o %s stopni." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Stała globalna" @@ -21963,9 +21959,8 @@ msgstr "" "\"Particles Animation\"." #: scene/2d/particles_2d.cpp -#, fuzzy msgid "Visibility Rect" -msgstr "Tryb priorytetów" +msgstr "Prostokąt widoczności" #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "Process Material" @@ -24000,6 +23995,11 @@ msgstr "" "Zamiast tego, zmień rozmiary kształtów kolizji w węzłach podrzędnych." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Zachowaj globalną transformację" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" @@ -24916,7 +24916,7 @@ msgstr "" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Caret" -msgstr "" +msgstr "Karetka" #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Blink" diff --git a/editor/translations/pr.po b/editor/translations/pr.po index d0e041aba9..5c33524652 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -470,6 +470,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -21300,7 +21304,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Rename Variable" @@ -23249,6 +23253,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Change yer Anim Transform" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/pt.po b/editor/translations/pt.po index edbc6971fb..0b2fa35ae5 100644 --- a/editor/translations/pt.po +++ b/editor/translations/pt.po @@ -24,13 +24,14 @@ # Renu <ifpilucas@gmail.com>, 2022. # El_ExpertPlayer <xpertnathan37@gmail.com>, 2022. # Esdras Caleb Oliveira Silva <acheicaleb@gmail.com>, 2022. +# Ednaldo Pereira Confia <filat51823@storypo.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: Esdras Caleb Oliveira Silva <acheicaleb@gmail.com>\n" +"PO-Revision-Date: 2022-07-11 21:32+0000\n" +"Last-Translator: Ednaldo Pereira Confia <filat51823@storypo.com>\n" "Language-Team: Portuguese <https://hosted.weblate.org/projects/godot-engine/" "godot/pt/>\n" "Language: pt\n" @@ -38,7 +39,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.13.1-dev\n" +"X-Generator: Weblate 4.14-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -463,6 +464,10 @@ msgid "Pressure" msgstr "Pressione" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relativo" @@ -2293,7 +2298,6 @@ msgstr "Desenvolvedor-chefe" #. TRANSLATORS: This refers to a job title. #: editor/editor_about.cpp -#, fuzzy msgctxt "Job Title" msgid "Project Manager" msgstr "Gestor de Projetos" @@ -2540,9 +2544,8 @@ msgid "There is no '%s' file." msgstr "Não existe ficheiro '%s'." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Layout:" -msgstr "Esquema" +msgstr "Esquema:" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -2591,9 +2594,8 @@ msgid "Create a new Bus Layout." msgstr "Criar um novo Modelo de Barramento." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Audio Bus Layout" -msgstr "Abrir Modelo de barramento de áudio" +msgstr "Modelo de barramento de áudio" #: editor/editor_autoload_settings.cpp msgid "Invalid name." @@ -2750,18 +2752,16 @@ msgid "Project export for platform:" msgstr "Exportação do projeto para plataforma:" #: editor/editor_export.cpp -#, fuzzy msgid "Completed with errors." -msgstr "Copiar Caminho do Nó" +msgstr "Concluído com erros." #: editor/editor_export.cpp msgid "Completed successfully." -msgstr "Completado com sucesso." +msgstr "Concluído com sucesso." #: editor/editor_export.cpp -#, fuzzy msgid "Failed." -msgstr "Falhou:" +msgstr "Falhou." #: editor/editor_export.cpp msgid "Storing File:" @@ -21543,7 +21543,7 @@ msgstr "Viagem" msgid "Rotation Degrees" msgstr "Graus de Rotação" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Constante Global" @@ -23681,6 +23681,11 @@ msgstr "" "Em vez disso, mude o tamanho das formas de colisão filhas." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Manter Transformação Global" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index 41301db983..a812335e4b 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -127,7 +127,7 @@ # Mário Victor Ribeiro Silva <mariovictorrs@gmail.com>, 2021. # jak3z <jose_renato06@outlook.com>, 2021. # Henrique Darko <henridark00@gmail.com>, 2021. -# Cearaj <pmoraisleal@gmail.com>, 2021. +# Cearaj <pmoraisleal@gmail.com>, 2021, 2022. # Alefy San <alefyferreiradeoliveira@outlook.com>, 2021. # Joel Gomes da Silva <joelgomes1994@hotmail.com>, 2021, 2022. # Orangotango De tanga <luizinho0045@gmail.com>, 2021. @@ -141,13 +141,14 @@ # José Miranda Neto <dodimi95@gmail.com>, 2022. # lucas rossy brasil coelho <lucasrossy270@gmail.com>, 2022. # Kaycke <kaycke@ymail.com>, 2022. +# Ednaldo Pereira Confia <filat51823@storypo.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2022-06-29 10:04+0000\n" -"Last-Translator: Douglas Leão <djlsplays@gmail.com>\n" +"PO-Revision-Date: 2022-07-16 06:20+0000\n" +"Last-Translator: Cearaj <pmoraisleal@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -155,7 +156,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.13.1-dev\n" +"X-Generator: Weblate 4.14-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -524,9 +525,8 @@ msgid "Command" msgstr "Comando" #: core/os/input_event.cpp -#, fuzzy msgid "Physical" -msgstr " (Físico)" +msgstr "Físico" #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp @@ -579,6 +579,11 @@ msgid "Pressure" msgstr "Pressão" #: core/os/input_event.cpp +#, fuzzy +msgid "Pen Inverted" +msgstr "Inverter" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relativo" @@ -715,7 +720,6 @@ msgstr "Nome do Diretório de Usuário Personalizado" #: core/project_settings.cpp main/main.cpp #: platform/javascript/export/export.cpp platform/osx/export/export.cpp #: platform/uwp/os_uwp.cpp -#, fuzzy msgid "Display" msgstr "Exibição" @@ -739,14 +743,12 @@ msgid "Always On Top" msgstr "Sempre no topo" #: core/project_settings.cpp -#, fuzzy msgid "Test Width" msgstr "Largura de teste" #: core/project_settings.cpp -#, fuzzy msgid "Test Height" -msgstr "Teste de altura" +msgstr "Altura de teste" #: core/project_settings.cpp editor/animation_track_editor.cpp #: editor/editor_audio_buses.cpp main/main.cpp servers/audio_server.cpp @@ -781,9 +783,8 @@ msgid "Script Templates Search Path" msgstr "Caminho de Pesquisa de Modelos de Script" #: core/project_settings.cpp -#, fuzzy msgid "Version Control Autoload On Startup" -msgstr "Carregamento Automático na Inicialização" +msgstr "Carregamento Automático do Controle de Versão na Inicialização" #: core/project_settings.cpp msgid "Version Control Plugin Name" @@ -1091,9 +1092,8 @@ msgstr "Encaixe inteligente" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp -#, fuzzy msgid "Use GPU Pixel Snap" -msgstr "Usar Encaixe de Pixel" +msgstr "Usar Encaixe de Pixels da GPU" #: drivers/gles2/rasterizer_scene_gles2.cpp #: drivers/gles3/rasterizer_scene_gles3.cpp @@ -1313,7 +1313,6 @@ msgid "Animation" msgstr "Animação" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Easing" msgstr "Facilitar Entrada-Saída" @@ -1450,14 +1449,13 @@ msgid "Type:" msgstr "Tipo:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "(Invalid, expected type: %s)" -msgstr "Template de exportação inválido:" +msgstr "(Inválido, tipo esperado: %s)" #: editor/animation_track_editor.cpp #, fuzzy msgid "Easing:" -msgstr "Facilitar Entrada-Saída" +msgstr "Facilitar Entrada-Saída:" #: editor/animation_track_editor.cpp msgid "In-Handle:" @@ -1473,9 +1471,8 @@ msgid "Stream:" msgstr "Transmissão:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Start (s):" -msgstr "Início(s):" +msgstr "Início (s):" #: editor/animation_track_editor.cpp msgid "End (s):" @@ -1571,9 +1568,8 @@ msgid "Editors" msgstr "Editores" #: editor/animation_track_editor.cpp editor/editor_settings.cpp -#, fuzzy msgid "Confirm Insert Track" -msgstr "Inserir Trilha e Chave na Anim" +msgstr "Confirmar Inserção de Trilha" #. TRANSLATORS: %s will be replaced by a phrase describing the target of track. #: editor/animation_track_editor.cpp @@ -2667,9 +2663,8 @@ msgid "There is no '%s' file." msgstr "Não existe o arquivo '%s'." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Layout:" -msgstr "Layout" +msgstr "Layout:" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -2718,9 +2713,8 @@ msgid "Create a new Bus Layout." msgstr "Criar um novo Layout de Canais." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Audio Bus Layout" -msgstr "Abrir Layout de Canais de Áudio" +msgstr "Layout de Canais de Áudio" #: editor/editor_autoload_settings.cpp msgid "Invalid name." @@ -2900,14 +2894,12 @@ msgid "Packing" msgstr "Empacotando" #: editor/editor_export.cpp -#, fuzzy msgid "Save PCK" -msgstr "Salvar Como" +msgstr "Salvar PCK" #: editor/editor_export.cpp -#, fuzzy msgid "Cannot create file \"%s\"." -msgstr "Não foi possível criar a pasta." +msgstr "Não foi possível criar arquivo \"%s\"." #: editor/editor_export.cpp msgid "Failed to export project files." @@ -2918,9 +2910,8 @@ msgid "Can't open file to read from path \"%s\"." msgstr "Não é possível abrir arquivo para leitura a partir do caminho \"%s\"." #: editor/editor_export.cpp -#, fuzzy msgid "Save ZIP" -msgstr "Salvar Como" +msgstr "Salvar ZIP" #: editor/editor_export.cpp msgid "" @@ -3005,9 +2996,8 @@ msgid "Embed PCK" msgstr "Incorporar PCK" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Texture Format" -msgstr "Região da Textura" +msgstr "Formato da Textura" #: editor/editor_export.cpp msgid "BPTC" @@ -3028,7 +3018,7 @@ msgstr "ETC2" #: editor/editor_export.cpp #, fuzzy msgid "No BPTC Fallbacks" -msgstr "Forçar Fallbacks do Shader" +msgstr "Sem Fallbacks do BPTC" #: editor/editor_export.cpp platform/android/export/export_plugin.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -3040,12 +3030,11 @@ msgstr "Modelo customizado de depuração não encontrado." #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp msgid "Custom release template not found." -msgstr "Template customizado de release não encontrado." +msgstr "Modelo customizado de lançamento não encontrado." #: editor/editor_export.cpp -#, fuzzy msgid "Prepare Template" -msgstr "Gerenciar Templates" +msgstr "Preparar Modelo" #: editor/editor_export.cpp platform/osx/export/export.cpp msgid "The given export path doesn't exist." @@ -3061,9 +3050,8 @@ msgstr "Falha ao copiar o modelo de exportação." #: editor/editor_export.cpp platform/windows/export/export.cpp #: platform/x11/export/export.cpp -#, fuzzy msgid "PCK Embedding" -msgstr "Preenchimento" +msgstr "Incorporação de PCK" #: editor/editor_export.cpp msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." @@ -3278,9 +3266,8 @@ msgid "Manage Editor Feature Profiles" msgstr "Gerenciar perfis de recurso do editor" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Default Feature Profile" -msgstr "Perfil de funcionalidade do Godot" +msgstr "Perfil de funcionalidade Padrão" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" @@ -3688,7 +3675,7 @@ msgstr "Propriedade:" #: editor/editor_inspector.cpp editor/editor_spin_slider.cpp #, fuzzy msgid "Label" -msgstr "Valor" +msgstr "Etiqueta" #: editor/editor_inspector.cpp editor/editor_spin_slider.cpp #: scene/resources/default_theme/default_theme.cpp @@ -4072,18 +4059,16 @@ msgid "Quick Open Script..." msgstr "Abrir Script Rapidamente..." #: editor/editor_node.cpp -#, fuzzy msgid "Save & Reload" -msgstr "Salvar e Reiniciar" +msgstr "Salvar & Recarregar" #: editor/editor_node.cpp -#, fuzzy msgid "Save changes to '%s' before reloading?" -msgstr "Salvar alterações em '%s' antes de fechar?" +msgstr "Salvar alterações em '%s' antes de recarregar?" #: editor/editor_node.cpp msgid "Save & Close" -msgstr "Salvar e Fechar" +msgstr "Salvar & Fechar" #: editor/editor_node.cpp msgid "Save changes to '%s' before closing?" @@ -4198,9 +4183,8 @@ msgid "Open Project Manager?" msgstr "Abrir Gerenciador de Projetos?" #: editor/editor_node.cpp -#, fuzzy msgid "Save changes to the following scene(s) before reloading?" -msgstr "Salvar alterações na(s) seguinte(s) cena(s) antes de sair?" +msgstr "Salvar alterações na(s) seguinte(s) cena(s) antes de recarregar?" #: editor/editor_node.cpp msgid "Save & Quit" @@ -4406,9 +4390,8 @@ msgid "Scene Tabs" msgstr "Abas de Cena" #: editor/editor_node.cpp -#, fuzzy msgid "Always Show Close Button" -msgstr "Sempre Mostrar Grade" +msgstr "Sempre mostrar o botão de fechar." #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Resize If Many Tabs" @@ -4423,9 +4406,8 @@ msgid "Output" msgstr "Saída" #: editor/editor_node.cpp editor/editor_settings.cpp -#, fuzzy msgid "Always Clear Output On Play" -msgstr "Limpar Saída" +msgstr "Sempre limpar saída ao jogar" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Always Open Output On Play" @@ -4440,19 +4422,16 @@ msgid "Save On Focus Loss" msgstr "Salvar em caso de perda de foco" #: editor/editor_node.cpp editor/editor_settings.cpp -#, fuzzy msgid "Save Each Scene On Quit" -msgstr "Salvar Ramo como Cena" +msgstr "Salvar cada cena ao sair" #: editor/editor_node.cpp editor/editor_settings.cpp -#, fuzzy msgid "Quit Confirmation" -msgstr "Visualizar Informações" +msgstr "Confirmação de saída" #: editor/editor_node.cpp -#, fuzzy msgid "Show Update Spinner" -msgstr "Ocultar Spinner de Atualização" +msgstr "Mostrar Spinner de Atualização" #: editor/editor_node.cpp msgid "Update Continuously" @@ -4479,18 +4458,16 @@ msgid "Inspector" msgstr "Inspetor" #: editor/editor_node.cpp -#, fuzzy msgid "Default Property Name Style" -msgstr "Caminho Padrão do Projeto" +msgstr "Estilo de Nome de Propriedade Padrão" #: editor/editor_node.cpp msgid "Default Float Step" msgstr "Passo de ponto flutuante padrão" #: editor/editor_node.cpp scene/gui/tree.cpp -#, fuzzy msgid "Disable Folding" -msgstr "Botão Desativado" +msgstr "Desativar Dobragem" #: editor/editor_node.cpp msgid "Auto Unfold Foreign Scenes" @@ -4502,21 +4479,19 @@ msgstr "Edição Horizontal do Vector2" #: editor/editor_node.cpp msgid "Horizontal Vector Types Editing" -msgstr "" +msgstr "Edição Horizontal de Tipos de Vetor" #: editor/editor_node.cpp -#, fuzzy msgid "Open Resources In Current Inspector" -msgstr "Abrir no inspetor" +msgstr "Abrir Recursos no Inspetor Atual" #: editor/editor_node.cpp -#, fuzzy msgid "Resources To Open In New Inspector" -msgstr "Abrir no inspetor" +msgstr "Recursos para abrir em Novo Inspetor" #: editor/editor_node.cpp msgid "Default Color Picker Mode" -msgstr "" +msgstr "Modo de Seletor de Cores Padrão" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Version Control" @@ -21730,7 +21705,7 @@ msgstr "Viagem" msgid "Rotation Degrees" msgstr "Graus de Rotação" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "Rotação Global" @@ -23808,6 +23783,11 @@ msgstr "" "Altere o tamanho em formas de colisão de crianças." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Manter Transformação Global" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/ro.po b/editor/translations/ro.po index cdd11f3980..395185bd3e 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -477,6 +477,10 @@ msgid "Pressure" msgstr "Presiune" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Relativ" @@ -21815,7 +21819,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "Pas Rotație:" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Permanent" @@ -23840,6 +23844,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Anim Schimbare transformare" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/ru.po b/editor/translations/ru.po index 84762459c8..befaceac4c 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -117,13 +117,14 @@ # FuzzMix <fmwolfiechad@gmail.com>, 2022. # Jasuse <jasusemaele@gmail.com>, 2022. # Vadim Mitroshkin <Vadim7540@yandex.ru>, 2022. +# Maksim Marchukov <mar.maksim63@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-07-03 00:44+0000\n" -"Last-Translator: Vadim Mitroshkin <Vadim7540@yandex.ru>\n" +"PO-Revision-Date: 2022-07-17 07:14+0000\n" +"Last-Translator: Maksim Marchukov <mar.maksim63@gmail.com>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" "Language: ru\n" @@ -132,7 +133,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.1-dev\n" +"X-Generator: Weblate 4.14-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -506,7 +507,7 @@ msgstr "Command" #: core/os/input_event.cpp #, fuzzy msgid "Physical" -msgstr " (Физическая)" +msgstr "(Физическая)" #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp @@ -559,6 +560,10 @@ msgid "Pressure" msgstr "Давление" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Относительный" @@ -21425,7 +21430,7 @@ msgstr "Переместится" msgid "Rotation Degrees" msgstr "Градусы вращения" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "Глобальный поворот" @@ -23531,6 +23536,11 @@ msgstr "" "shapes)." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Глобальное преобразование" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/si.po b/editor/translations/si.po index ae1abeaa5a..bfba193a6a 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -454,6 +454,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20628,7 +20632,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "" @@ -22539,6 +22543,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Anim පරිවර්තනය වෙනස් කරන්න" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index 6e20ee48da..f711be3039 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -493,6 +493,10 @@ msgid "Pressure" msgstr "Preset" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "Prichytiť Relatívne" @@ -21746,7 +21750,7 @@ msgstr "Cestovať" msgid "Rotation Degrees" msgstr "Krok Rotácie:" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konštant" @@ -23771,6 +23775,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Preložiť Preloženie:" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/sl.po b/editor/translations/sl.po index 43eb784a39..aae6c8ba68 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -466,6 +466,10 @@ msgid "Pressure" msgstr "Prednastavitev..." #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "Pripni Relativno" @@ -22040,7 +22044,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "Rotacijski Korak:" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konstanta" @@ -24060,6 +24064,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Preoblikovanje" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/sq.po b/editor/translations/sq.po index b11dc2f46f..f405b8b8a9 100644 --- a/editor/translations/sq.po +++ b/editor/translations/sq.po @@ -478,6 +478,10 @@ msgid "Pressure" msgstr "Ngarko Gabimet" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -21475,7 +21479,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konstantet" @@ -23425,6 +23429,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Binari i Transformimeve 3D" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index e4a0475e3f..9d7c4c5db8 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -494,6 +494,10 @@ msgid "Pressure" msgstr "Поставке" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "Залепи релативно" @@ -23499,7 +23503,7 @@ msgstr "Путуј" msgid "Rotation Degrees" msgstr "Ротација за %s степени." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Константан" @@ -25648,6 +25652,11 @@ msgstr "" "рада." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Сачувај Глобалну Трансформу" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index 9bbc31e19a..d3f588aca6 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -463,6 +463,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20735,7 +20739,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Kontanta" @@ -22675,6 +22679,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Animacija Promjeni Transformaciju" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/sv.po b/editor/translations/sv.po index 010299e2cf..08b57d1a25 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -505,6 +505,10 @@ msgid "Pressure" msgstr "Återställ Zoom" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "GDNative" @@ -21814,7 +21818,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "Roterar %s grader." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Konstant" @@ -23848,6 +23852,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Transformera" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/te.po b/editor/translations/te.po index 9e49f9dcc5..98eb54ce5c 100644 --- a/editor/translations/te.po +++ b/editor/translations/te.po @@ -444,6 +444,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -20306,7 +20310,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "స్థిరాంకాలు" @@ -22146,6 +22150,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "గణనలు" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/th.po b/editor/translations/th.po index 1a6a4b71be..9460318ef8 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -501,6 +501,10 @@ msgid "Pressure" msgstr "พรีเซ็ต" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "จำกัดโดยใช้ตำแหน่งปัจจุบัน" @@ -21830,7 +21834,7 @@ msgstr "การเคลื่อนที่" msgid "Rotation Degrees" msgstr "หมุน %s องศา" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "คงที่" @@ -23918,6 +23922,11 @@ msgstr "" "เปลี่ยนขนาดของขอบเขตการชนลูกแทน" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "เก็บ Global Transform" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/tl.po b/editor/translations/tl.po index d5a5d52332..a7a9bacaeb 100644 --- a/editor/translations/tl.po +++ b/editor/translations/tl.po @@ -476,6 +476,10 @@ msgid "Pressure" msgstr "Preset" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp #, fuzzy msgid "Relative" msgstr "GDNative" @@ -21035,7 +21039,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Constant" @@ -23032,6 +23036,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Transisyon: " + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index 1e4ab521bf..3cbd52b7e4 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -522,6 +522,10 @@ msgid "Pressure" msgstr "Baskı" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Göreceli" @@ -21799,7 +21803,7 @@ msgstr "Seyahat" msgid "Rotation Degrees" msgstr "%s Düzey Dönüyor." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Genel Sabit" @@ -23938,6 +23942,11 @@ msgstr "" "Bunun yerine alt düğümlerde çarpışma şekillerindeki boyutu değiştirin." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Bütünsel Dönüşümü Tut" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/uk.po b/editor/translations/uk.po index 4d22a47dea..fd20ea0a29 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -467,6 +467,11 @@ msgid "Pressure" msgstr "Тиск" #: core/os/input_event.cpp +#, fuzzy +msgid "Pen Inverted" +msgstr "Інвертувати" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Відносний" @@ -21149,7 +21154,7 @@ msgstr "Подорож" msgid "Rotation Degrees" msgstr "Грудуси обертання" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "Загальна стала" @@ -23109,6 +23114,11 @@ msgstr "" "Замість цієї зміни, вам варто змінити розміри дочірніх форм зіткнення." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Зберегти загальне перетворення" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "Матриця" diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index e1bae41d6b..46cd56a57b 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -465,6 +465,10 @@ msgid "Pressure" msgstr "" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -21088,7 +21092,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "مستقل" @@ -23012,6 +23016,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "سب سکریپشن بنائیں" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/vi.po b/editor/translations/vi.po index c8eae36ad6..32fe3c1087 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -470,6 +470,10 @@ msgid "Pressure" msgstr "Áp lực" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "Tương đối" @@ -21691,7 +21695,7 @@ msgstr "Di chuyển" msgid "Rotation Degrees" msgstr "Xoay %s độ." -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "Hằng số" @@ -23778,6 +23782,11 @@ msgstr "" "Hãy sửa kích cỡ khối va chạm của nút con ý." #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "Xóa biến đổi" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index 976fe38138..a2183dd550 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-30 16:42+0000\n" +"PO-Revision-Date: 2022-07-09 21:12+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" @@ -467,9 +467,8 @@ msgid "Command" msgstr "Command" #: core/os/input_event.cpp -#, fuzzy msgid "Physical" -msgstr " (物理)" +msgstr "物理" #: core/os/input_event.cpp scene/2d/touch_screen_button.cpp #: scene/gui/base_button.cpp scene/gui/texture_button.cpp @@ -522,6 +521,11 @@ msgid "Pressure" msgstr "压力" #: core/os/input_event.cpp +#, fuzzy +msgid "Pen Inverted" +msgstr "翻转" + +#: core/os/input_event.cpp msgid "Relative" msgstr "相对" @@ -5436,9 +5440,8 @@ msgid "Mouse Extra Buttons Navigate History" msgstr "使用专门鼠标按键查看历史" #: editor/editor_settings.cpp -#, fuzzy msgid "Drag And Drop Selection" -msgstr "GridMap 选择" +msgstr "拖放选中内容" #: editor/editor_settings.cpp msgid "Appearance" @@ -5672,7 +5675,7 @@ msgstr "网格细分级别下限" #: editor/editor_settings.cpp msgid "Grid Division Level Bias" -msgstr "网格细分级别偏倚" +msgstr "网格细分级别偏置" #: editor/editor_settings.cpp msgid "Grid XZ Plane" @@ -14180,7 +14183,7 @@ msgid "" "Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" -"无法运行项目:未定义主场景。 \n" +"无法运行项目:未定义主场景。\n" "请编辑项目并在 “项目设置” 的 “Application” 类别下设置主场景。" #: editor/project_manager.cpp @@ -18075,9 +18078,8 @@ msgid "The package must have at least one '.' separator." msgstr "包必须至少有一个 “.” 分隔符。" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Custom Build" -msgstr "使用自定义构建" +msgstr "自定义构建" #: platform/android/export/export_plugin.cpp msgid "Use Custom Build" @@ -18354,51 +18356,52 @@ msgstr "必须启用 “使用自定义构建” 才能使用插件。" msgid "" "\"Hand Tracking\" is only valid when \"XR Mode\" is \"Oculus Mobile VrApi\" " "or \"OpenXR\"." -msgstr "" -"“Hand Tracking”只有在当“XR Mode”是“Oculus Mobile VrApi”或“OpenXR”时才有效。" +msgstr "“手势跟踪”只有在当“XR 模式”是“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”时才有效。" +msgstr "“穿透”只有在当“XR Mode”是“OpenXR”时才有效。" #: platform/android/export/export_plugin.cpp msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." -msgstr "“Export AAB”只有在当启用“Use Custom Build”时才有效。" +msgstr "“Export AAB”只有在当启用“使用自定义构建”时才有效。" #: platform/android/export/export_plugin.cpp msgid "" "\"Min SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "修改“Min SDK”只有在当启用“Use Custom Build”时才有效。" +msgstr "修改“最小 SDK”只有在当启用“使用自定义构建”时才有效。" #: platform/android/export/export_plugin.cpp msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." -msgstr "" +msgstr "“最小 SDK”应当为有效的整数,但获得了无效的“%s”。" #: platform/android/export/export_plugin.cpp msgid "" "\"Min SDK\" cannot be lower than %d, which is the version needed by the " "Godot library." -msgstr "" +msgstr "“最小 SDK”不能低于 %d,这是 Godot 库所需要的版本。" #: platform/android/export/export_plugin.cpp msgid "" "\"Target SDK\" can only be overridden when \"Use Custom Build\" is enabled." -msgstr "修改“Target SDK”只有在当启用“Use Custom Build”时才有效。" +msgstr "修改“目标 SDK”只有在当启用“使用自定义构建”时才有效。" #: platform/android/export/export_plugin.cpp msgid "" "\"Target SDK\" should be a valid integer, but got \"%s\" which is invalid." -msgstr "" +msgstr "“目标 SDK”应当为有效的整数,但获得了无效的“%s”。" #: 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 "" +"“目标 SDK”%d 比默认版本 %d 要高。这样做也许可行,但并没有经过测试,可能不稳" +"定。" #: platform/android/export/export_plugin.cpp msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." -msgstr "“Target SDK”版本必须大于等于“Min SDK”版本。" +msgstr "“目标 SDK”版本必须大于等于“最小 SDK”版本。" #: platform/android/export/export_plugin.cpp platform/osx/export/export.cpp #: platform/windows/export/export.cpp @@ -19725,8 +19728,8 @@ msgid "" "The rcedit tool must be configured in the Editor Settings (Export > Windows " "> Rcedit) to change the icon or app information data." msgstr "" -"必须在编辑器设置中配置 rcedit 工具(Export > Windows > Rcedit)才能修改图标或" -"应用信息数据。" +"必须在编辑器设置中配置 rcedit 工具(导出 > Windows > Rcedit)才能修改图标或应" +"用信息数据。" #: platform/windows/export/export.cpp msgid "Invalid icon path:" @@ -20429,7 +20432,7 @@ msgstr "节点 B" #: scene/3d/light.cpp scene/3d/physics_body.cpp scene/3d/physics_joint.cpp #: scene/resources/environment.cpp msgid "Bias" -msgstr "偏倚" +msgstr "偏置" #: scene/2d/joints_2d.cpp msgid "Disable Collision" @@ -20606,9 +20609,8 @@ msgstr "" "移除。请用“Navigation2DServer.map_get_path()”替代。" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy msgid "Pathfinding" -msgstr "绑定" +msgstr "寻路" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Path Desired Distance" @@ -20623,9 +20625,8 @@ msgid "Path Max Distance" msgstr "路径最大距离" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy msgid "Avoidance" -msgstr "高级" +msgstr "避障" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp msgid "Avoidance Enabled" @@ -20686,7 +20687,7 @@ msgstr "移动消耗" msgid "Rotation Degrees" msgstr "旋转角度" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp msgid "Global Rotation" msgstr "全局旋转" @@ -21590,7 +21591,7 @@ msgstr "动态范围" #: scene/3d/gi_probe.cpp scene/3d/light.cpp msgid "Normal Bias" -msgstr "法线偏倚" +msgstr "法线偏置" #: scene/3d/label_3d.cpp scene/3d/sprite_3d.cpp #: scene/resources/primitive_meshes.cpp @@ -21701,7 +21702,7 @@ msgstr "混合拆分" #: scene/3d/light.cpp msgid "Bias Split Scale" -msgstr "偏倚拆分缩放" +msgstr "偏置拆分缩放" #: scene/3d/light.cpp msgid "Depth Range" @@ -21935,7 +21936,7 @@ msgstr "角度下限" #: scene/3d/physics_body.cpp msgid "Angular Limit Bias" -msgstr "角度限制偏倚" +msgstr "角度限制偏置" #: scene/3d/physics_body.cpp msgid "Angular Limit Softness" @@ -22561,6 +22562,11 @@ msgstr "" "建议修改子节点的碰撞体形状尺寸。" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "全局变换" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "矩阵" @@ -23651,9 +23657,8 @@ msgid "Fold Gutter" msgstr "折叠栏" #: scene/gui/text_edit.cpp -#, fuzzy msgid "Drag And Drop Selection Enabled" -msgstr "启用选择" +msgstr "启用拖放选中内容" #: scene/gui/text_edit.cpp msgid "Hiding Enabled" @@ -24024,6 +24029,9 @@ msgid "" "Effects.\n" "HDR will be disabled for this Viewport." msgstr "" +"这个 Viewport 启用了 HDR,但其 Usage 为 2D 或 2D No-Sampling。\n" +"HDR 仅在 Usage 为 3D 或 3D No-Effects 的 Viewport 中支持。\n" +"这个 Viewport 将禁用 HDR。" #: scene/main/viewport.cpp msgid "ARVR" @@ -25662,7 +25670,7 @@ msgstr "A" #: scene/resources/shape_2d.cpp msgid "Custom Solver Bias" -msgstr "自定义求解器偏倚" +msgstr "自定义求解器偏置" #: scene/resources/skin.cpp msgid "Bind Count" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 201811d543..dcd0403c6a 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -479,6 +479,10 @@ msgid "Pressure" msgstr "重設縮放比例" #: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" + +#: core/os/input_event.cpp msgid "Relative" msgstr "" @@ -21926,7 +21930,7 @@ msgstr "" msgid "Rotation Degrees" msgstr "" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "常數" @@ -23919,6 +23923,11 @@ msgid "" msgstr "" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "翻譯" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index 9021c16fc8..d56bc9ec23 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -33,13 +33,16 @@ # Haoyu Qiu <timothyqiu32@gmail.com>, 2022. # Otis Kao <momoslim@gmail.com>, 2022. # YuChiang Chang <chiang.c.tw@gmail.com>, 2022. +# 菘菘 <rrt467778@gmail.com>, 2022. +# marktwtn <marktwtn@gmail.com>, 2022. +# Shi-Xun Hong <jimmy3421@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-05-30 16:17+0000\n" -"Last-Translator: YuChiang Chang <chiang.c.tw@gmail.com>\n" +"PO-Revision-Date: 2022-07-18 08:11+0000\n" +"Last-Translator: 菘菘 <rrt467778@gmail.com>\n" "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hant/>\n" "Language: zh_TW\n" @@ -47,7 +50,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 4.14-dev\n" #: core/bind/core_bind.cpp main/main.cpp msgid "Tablet Driver" @@ -70,27 +73,22 @@ msgid "V-Sync Enabled" msgstr "啟用垂直同步" #: core/bind/core_bind.cpp main/main.cpp -#, fuzzy msgid "V-Sync Via Compositor" msgstr "透過合成器垂直同步" #: core/bind/core_bind.cpp main/main.cpp -#, fuzzy msgid "Delta Smoothing" -msgstr "變量平滑" +msgstr "差量平滑" #: core/bind/core_bind.cpp -#, fuzzy msgid "Low Processor Usage Mode" msgstr "低處理器使用率模式" #: core/bind/core_bind.cpp -#, fuzzy msgid "Low Processor Usage Mode Sleep (µsec)" msgstr "低處理器使用率模式睡眠(微秒)" #: core/bind/core_bind.cpp main/main.cpp platform/uwp/os_uwp.cpp -#, fuzzy msgid "Keep Screen On" msgstr "保持螢幕開啟" @@ -157,9 +155,8 @@ msgid "Size" msgstr "大小" #: core/bind/core_bind.cpp -#, fuzzy msgid "Endian Swap" -msgstr "切換端序" +msgstr "切換字節序" #: core/bind/core_bind.cpp msgid "Editor Hint" @@ -178,9 +175,8 @@ msgid "Target FPS" msgstr "標準FPS" #: core/bind/core_bind.cpp -#, fuzzy msgid "Time Scale" -msgstr "TimeScale 節點" +msgstr "時間縮放" #: core/bind/core_bind.cpp main/main.cpp msgid "Physics Jitter Fix" @@ -199,9 +195,8 @@ msgid "Error Line" msgstr "發生錯誤之行數" #: core/bind/core_bind.cpp -#, fuzzy msgid "Result" -msgstr "搜尋結果" +msgstr "結果" #: core/command_queue_mt.cpp core/message_queue.cpp main/main.cpp msgid "Memory" @@ -230,7 +225,6 @@ msgstr "多執行緒佇列大小(KB)" #: modules/visual_script/visual_script_func_nodes.cpp #: modules/visual_script/visual_script_nodes.cpp #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Function" msgstr "函式" @@ -260,17 +254,14 @@ msgid "Page Read Ahead" msgstr "預先讀取頁數" #: core/io/http_client.cpp -#, fuzzy msgid "Blocking Mode Enabled" -msgstr "啟用阻礙模式" +msgstr "啟用阻塞模式" #: core/io/http_client.cpp -#, fuzzy msgid "Connection" msgstr "連接" #: core/io/http_client.cpp -#, fuzzy msgid "Read Chunk Size" msgstr "讀取區塊大小" @@ -287,12 +278,10 @@ msgid "Refuse New Network Connections" msgstr "拒絕新網路連接" #: core/io/multiplayer_api.cpp scene/main/scene_tree.cpp -#, fuzzy msgid "Network Peer" -msgstr "對等網路使用者" +msgstr "對等網路" #: core/io/multiplayer_api.cpp scene/animation/animation_player.cpp -#, fuzzy msgid "Root Node" msgstr "根節點" @@ -301,9 +290,8 @@ msgid "Refuse New Connections" msgstr "拒絕新網路連接" #: core/io/networked_multiplayer_peer.cpp -#, fuzzy msgid "Transfer Mode" -msgstr "轉換類型" +msgstr "傳輸模式" #: core/io/packet_peer.cpp msgid "Encode Buffer Max Size" @@ -353,9 +341,8 @@ msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "位元組長度不足以進行解碼或或格式無效。" #: core/math/expression.cpp -#, fuzzy msgid "Invalid input %d (not passed) in expression" -msgstr "運算式中的輸入 %i 無效 (未傳遞)" +msgstr "運算式的輸入%d 無效(未傳遞)" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -387,7 +374,6 @@ msgid "Seed" msgstr "種子" #: core/math/random_number_generator.cpp -#, fuzzy msgid "State" msgstr "狀態" @@ -400,14 +386,12 @@ msgid "Max Size (KB)" msgstr "最大大小(KB)" #: 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 @@ -435,14 +419,12 @@ msgid "Command" msgstr "Command" #: core/os/input_event.cpp -#, fuzzy msgid "Physical" -msgstr " (物理)" +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 -#, fuzzy msgid "Pressed" msgstr "按下" @@ -451,21 +433,18 @@ msgid "Scancode" msgstr "鍵盤掃描碼" #: core/os/input_event.cpp -#, fuzzy msgid "Physical Scancode" -msgstr "實體鍵盤掃描碼" +msgstr "物理掃描碼" #: core/os/input_event.cpp msgid "Unicode" msgstr "Unicode" #: core/os/input_event.cpp -#, fuzzy msgid "Echo" -msgstr "Echo" +msgstr "回聲" #: core/os/input_event.cpp scene/gui/base_button.cpp -#, fuzzy msgid "Button Mask" msgstr "按鍵遮罩" @@ -474,7 +453,6 @@ msgid "Global Position" msgstr "全域位置" #: core/os/input_event.cpp -#, fuzzy msgid "Factor" msgstr "因素" @@ -491,12 +469,14 @@ msgid "Tilt" msgstr "傾斜" #: core/os/input_event.cpp -#, fuzzy msgid "Pressure" -msgstr "按壓" +msgstr "壓力" + +#: core/os/input_event.cpp +msgid "Pen Inverted" +msgstr "" #: core/os/input_event.cpp -#, fuzzy msgid "Relative" msgstr "相對" @@ -532,12 +512,10 @@ msgid "Strength" msgstr "強度" #: core/os/input_event.cpp -#, fuzzy msgid "Delta" -msgstr "變量" +msgstr "差量" #: core/os/input_event.cpp -#, fuzzy msgid "Channel" msgstr "頻道" @@ -613,14 +591,12 @@ msgid "Main Scene" msgstr "主場景" #: core/project_settings.cpp -#, fuzzy msgid "Disable stdout" -msgstr "禁用自動圖塊" +msgstr "停用標準輸出" #: core/project_settings.cpp -#, fuzzy msgid "Disable stderr" -msgstr "已停用的項目" +msgstr "停用標準錯誤輸出" #: core/project_settings.cpp msgid "Use Hidden Project Data Directory" @@ -637,15 +613,14 @@ msgstr "自訂使用者目錄名稱" #: core/project_settings.cpp main/main.cpp #: platform/javascript/export/export.cpp platform/osx/export/export.cpp #: platform/uwp/os_uwp.cpp -#, fuzzy msgid "Display" -msgstr "全部顯示" +msgstr "顯示" #: core/project_settings.cpp main/main.cpp modules/csg/csg_shape.cpp #: modules/opensimplex/noise_texture.cpp scene/2d/line_2d.cpp #: scene/3d/label_3d.cpp scene/gui/text_edit.cpp scene/resources/texture.cpp msgid "Width" -msgstr "" +msgstr "寬" #: core/project_settings.cpp main/main.cpp modules/csg/csg_shape.cpp #: modules/gltf/gltf_node.cpp modules/opensimplex/noise_texture.cpp @@ -653,23 +628,20 @@ msgstr "" #: scene/resources/capsule_shape_2d.cpp scene/resources/cylinder_shape.cpp #: scene/resources/font.cpp scene/resources/navigation_mesh.cpp #: scene/resources/primitive_meshes.cpp scene/resources/texture.cpp -#, fuzzy msgid "Height" -msgstr "燈光" +msgstr "高度" #: core/project_settings.cpp msgid "Always On Top" -msgstr "" +msgstr "置頂" #: core/project_settings.cpp -#, fuzzy msgid "Test Width" -msgstr "左延展" +msgstr "測試寬度" #: core/project_settings.cpp -#, fuzzy msgid "Test Height" -msgstr "測試" +msgstr "測試高度" #: core/project_settings.cpp editor/animation_track_editor.cpp #: editor/editor_audio_buses.cpp main/main.cpp servers/audio_server.cpp @@ -688,33 +660,28 @@ msgid "Editor" msgstr "編輯器" #: core/project_settings.cpp -#, fuzzy msgid "Main Run Args" msgstr "主執行引數" #: core/project_settings.cpp -#, fuzzy msgid "Scene Naming" -msgstr "場景路徑:" +msgstr "場景命名" #: core/project_settings.cpp -#, fuzzy msgid "Search In File Extensions" -msgstr "以副檔名搜尋" +msgstr "以檔案副檔名搜尋" #: core/project_settings.cpp 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 @@ -722,9 +689,8 @@ msgid "Input" msgstr "輸入" #: core/project_settings.cpp -#, fuzzy msgid "UI Accept" -msgstr "UI確定" +msgstr "確定 (UI)" #: core/project_settings.cpp msgid "UI Select" @@ -735,43 +701,36 @@ msgid "UI Cancel" msgstr "UI取消" #: core/project_settings.cpp -#, fuzzy msgid "UI Focus Next" -msgstr "聚焦路徑" +msgstr "聚焦下一個 (UI)" #: core/project_settings.cpp -#, fuzzy msgid "UI Focus Prev" -msgstr "聚焦路徑" +msgstr "聚焦上一個 (UI)" #: core/project_settings.cpp -#, fuzzy msgid "UI Left" -msgstr "左上" +msgstr "左 (UI)" #: core/project_settings.cpp -#, fuzzy msgid "UI Right" -msgstr "右上" +msgstr "右 (UI)" #: core/project_settings.cpp msgid "UI Up" msgstr "UI上" #: core/project_settings.cpp -#, fuzzy msgid "UI Down" -msgstr "UI下" +msgstr "下 (UI)" #: core/project_settings.cpp -#, fuzzy msgid "UI Page Up" -msgstr "UI頁面向上滾動" +msgstr "頁面上滾 (UI)" #: core/project_settings.cpp -#, fuzzy msgid "UI Page Down" -msgstr "UI頁面向下滾動" +msgstr "頁面下滾 (UI)" #: core/project_settings.cpp msgid "UI Home" @@ -803,7 +762,6 @@ msgid "3D" msgstr "3D" #: core/project_settings.cpp -#, fuzzy msgid "Smooth Trimesh Collision" msgstr "平滑三角網格碰撞" @@ -832,12 +790,10 @@ msgstr "品質" #: core/project_settings.cpp scene/gui/file_dialog.cpp #: scene/main/scene_tree.cpp scene/resources/navigation_mesh.cpp #: servers/visual_server.cpp -#, fuzzy msgid "Filters" msgstr "篩選器" #: core/project_settings.cpp scene/main/viewport.cpp -#, fuzzy msgid "Sharpen Intensity" msgstr "銳化強度" @@ -864,9 +820,8 @@ msgid "Profiler" msgstr "分析工具" #: core/project_settings.cpp -#, fuzzy msgid "Max Functions" -msgstr "最大值函式" +msgstr "最大函式數" #: core/project_settings.cpp scene/3d/vehicle_body.cpp msgid "Compression" @@ -881,18 +836,16 @@ msgid "Zstd" msgstr "Zstd" #: core/project_settings.cpp -#, fuzzy msgid "Long Distance Matching" -msgstr "長距配對" +msgstr "長距離匹配" #: core/project_settings.cpp msgid "Compression Level" msgstr "壓縮等級" #: core/project_settings.cpp -#, fuzzy msgid "Window Log Size" -msgstr "視窗日誌大小" +msgstr "視窗對數大小" #: core/project_settings.cpp msgid "Zlib" @@ -915,14 +868,12 @@ msgid "TCP" msgstr "TCP" #: core/register_core_types.cpp -#, fuzzy msgid "Connect Timeout Seconds" -msgstr "連接逾時秒數" +msgstr "連線逾時秒數" #: core/register_core_types.cpp -#, fuzzy msgid "Packet Peer Stream" -msgstr "封包對等串流" +msgstr "封包對等流" #: core/register_core_types.cpp msgid "Max Buffer (Power of 2)" @@ -933,7 +884,6 @@ msgid "SSL" msgstr "SSL" #: core/register_core_types.cpp main/main.cpp -#, fuzzy msgid "Certificates" msgstr "憑證" @@ -944,9 +894,8 @@ msgid "Resource" msgstr "資源" #: core/resource.cpp -#, fuzzy msgid "Local To Scene" -msgstr "關閉場景" +msgstr "僅限本場景" #: core/resource.cpp editor/dependency_editor.cpp #: editor/editor_autoload_settings.cpp editor/plugins/path_editor_plugin.cpp @@ -964,14 +913,12 @@ msgid "Locale" msgstr "地區" #: core/translation.cpp -#, fuzzy msgid "Test" msgstr "測試" #: core/translation.cpp scene/resources/font.cpp -#, fuzzy msgid "Fallback" -msgstr "遞補" +msgstr "後備語言" #: core/ustring.cpp scene/resources/segment_shape_2d.cpp msgid "B" @@ -1033,27 +980,23 @@ msgstr "2D" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp -#, fuzzy msgid "Snapping" msgstr "吸附" #: drivers/gles2/rasterizer_canvas_base_gles2.cpp #: drivers/gles3/rasterizer_canvas_base_gles3.cpp -#, fuzzy msgid "Use GPU Pixel Snap" -msgstr "使用GPU像素吸附" +msgstr "使用 GPU 像素吸附" #: drivers/gles2/rasterizer_scene_gles2.cpp #: drivers/gles3/rasterizer_scene_gles3.cpp -#, fuzzy msgid "Immediate Buffer Size (KB)" msgstr "即時緩衝區大小(KB)" #: drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp -#, fuzzy msgid "Lightmapping" -msgstr "烘焙光照圖" +msgstr "光照貼圖" #: drivers/gles2/rasterizer_storage_gles2.cpp #: drivers/gles3/rasterizer_storage_gles3.cpp @@ -1102,9 +1045,8 @@ msgid "Weight Samples" msgstr "權重採樣" #: drivers/gles3/rasterizer_scene_gles3.cpp -#, fuzzy msgid "Voxel Cone Tracing" -msgstr "體素椎體描摹" +msgstr "體素錐追踪" #: drivers/gles3/rasterizer_scene_gles3.cpp scene/resources/environment.cpp msgid "High Quality" @@ -1186,9 +1128,8 @@ msgstr "更改動畫呼叫" #: editor/animation_track_editor.cpp scene/2d/animated_sprite.cpp #: scene/2d/sprite.cpp scene/3d/sprite_3d.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Frame" -msgstr "影格 %" +msgstr "影格" #: editor/animation_track_editor.cpp editor/editor_profiler.cpp #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp @@ -1199,16 +1140,14 @@ msgstr "時間" #: editor/animation_track_editor.cpp editor/import/resource_importer_scene.cpp #: platform/osx/export/export.cpp -#, fuzzy msgid "Location" -msgstr "本地化" +msgstr "位置" #: editor/animation_track_editor.cpp modules/gltf/gltf_node.cpp #: scene/2d/polygon_2d.cpp scene/2d/remote_transform_2d.cpp #: scene/3d/remote_transform.cpp scene/3d/spatial.cpp scene/gui/control.cpp -#, fuzzy msgid "Rotation" -msgstr "旋轉步長:" +msgstr "旋轉" #: editor/animation_track_editor.cpp editor/script_editor_debugger.cpp #: modules/visual_script/visual_script_nodes.cpp scene/gui/range.cpp @@ -1216,14 +1155,13 @@ msgid "Value" msgstr "數值" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Arg Count" -msgstr "數量:" +msgstr "引數數量" #: editor/animation_track_editor.cpp main/main.cpp #: modules/mono/mono_gd/gd_mono.cpp msgid "Args" -msgstr "" +msgstr "參數" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/script_editor_debugger.cpp modules/gltf/gltf_accessor.cpp @@ -1235,29 +1173,27 @@ msgstr "型別" #: editor/animation_track_editor.cpp #, fuzzy msgid "In Handle" -msgstr "設定處理程式" +msgstr "輸入把手" #: editor/animation_track_editor.cpp #, fuzzy msgid "Out Handle" -msgstr "設定處理程式" +msgstr "輸出把手" #: editor/animation_track_editor.cpp #: editor/import/resource_importer_texture.cpp #: scene/2d/audio_stream_player_2d.cpp scene/3d/audio_stream_player_3d.cpp #: scene/audio/audio_stream_player.cpp scene/gui/video_player.cpp msgid "Stream" -msgstr "" +msgstr "流" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Start Offset" -msgstr "網格偏移量:" +msgstr "起點偏移" #: editor/animation_track_editor.cpp -#, fuzzy msgid "End Offset" -msgstr "偏移:" +msgstr "終點偏移" #: editor/animation_track_editor.cpp editor/editor_settings.cpp #: editor/import/resource_importer_scene.cpp @@ -1270,7 +1206,6 @@ msgid "Animation" msgstr "動畫" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Easing" msgstr "緩入緩出" @@ -1381,19 +1316,16 @@ msgid "Remove this track." msgstr "移除該動畫軌。" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Time (s):" -msgstr "時間(秒) : " +msgstr "時間(秒):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Position:" -msgstr "位置" +msgstr "位置:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rotation:" -msgstr "旋轉步長:" +msgstr "旋轉:" #: editor/animation_track_editor.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1410,14 +1342,12 @@ msgid "Type:" msgstr "型別:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "(Invalid, expected type: %s)" -msgstr "無效的輸出樣板:" +msgstr "(無效,預期型別:%s)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Easing:" -msgstr "緩入緩出" +msgstr "緩入緩出:" #: editor/animation_track_editor.cpp #, fuzzy @@ -1430,24 +1360,20 @@ msgid "Out-Handle:" msgstr "設定處理程式" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Stream:" -msgstr "串流使用者" +msgstr "流:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Start (s):" -msgstr "重新開始(秒):" +msgstr "開始(秒):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "End (s):" -msgstr "淡入(秒):" +msgstr "結束(秒):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation Clip:" -msgstr "動畫:" +msgstr "動畫片段:" #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" @@ -1501,9 +1427,8 @@ msgid "Duplicate Key(s)" msgstr "重複關鍵畫格" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add RESET Value(s)" -msgstr "新增 %d 個影格" +msgstr "新增 RESET 值" #: editor/animation_track_editor.cpp msgid "Delete Key(s)" @@ -1532,14 +1457,12 @@ msgstr "刪除動畫軌" #: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Editors" msgstr "編輯器" #: editor/animation_track_editor.cpp editor/editor_settings.cpp -#, fuzzy msgid "Confirm Insert Track" -msgstr "新增動畫軌道與關鍵畫格" +msgstr "確認插入軌道" #. TRANSLATORS: %s will be replaced by a phrase describing the target of track. #: editor/animation_track_editor.cpp @@ -1663,9 +1586,8 @@ msgid "Add Method Track Key" msgstr "新增方法軌道關鍵畫格" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Method not found in object:" -msgstr "在物件中找不到方法: " +msgstr "在物件中找不到該方法:" #: editor/animation_track_editor.cpp msgid "Anim Move Keys" @@ -1706,9 +1628,8 @@ msgid "" msgstr "該選項不適用貝茲曲線編輯,因曲線僅有單一軌道。" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Add RESET Keys" -msgstr "動畫縮放關鍵影格" +msgstr "新增動畫 RESET 鍵" #: editor/animation_track_editor.cpp msgid "" @@ -1722,7 +1643,7 @@ msgid "" "Alternatively, use an import preset that imports animations to separate " "files." msgstr "" -"該動畫屬於外部匯入之場景,套用於匯入軌道的修改將不會被保存。\n" +"該動畫屬於外部匯入之場景,套用於匯入軌道的修改將不會被儲存。\n" "\n" "若要開啟「加入客制軌」的功能,請在場景在匯入設定中將 [Animation] -> " "[Storage] 設定為\n" @@ -2268,7 +2189,7 @@ msgstr "開啟" #: editor/dependency_editor.cpp msgid "Owners of: %s (Total: %d)" -msgstr "" +msgstr "%s 的所有者(總計:%d)" #: editor/dependency_editor.cpp msgid "" @@ -2377,7 +2298,6 @@ msgstr "主要開發者" #. TRANSLATORS: This refers to a job title. #: editor/editor_about.cpp -#, fuzzy msgctxt "Job Title" msgid "Project Manager" msgstr "專案管理員" @@ -2619,9 +2539,8 @@ msgid "There is no '%s' file." msgstr "檔案「%s」不存在。" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Layout:" -msgstr "畫面配置" +msgstr "佈局:" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -2655,7 +2574,7 @@ msgstr "另存新檔" #: editor/editor_audio_buses.cpp msgid "Save this Bus Layout to a file." -msgstr "將該匯流排配置保存至檔案。" +msgstr "將該匯流排配置儲存至檔案。" #: editor/editor_audio_buses.cpp editor/import_dock.cpp msgid "Load Default" @@ -2670,9 +2589,8 @@ msgid "Create a new Bus Layout." msgstr "建立新匯流排配置。" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Audio Bus Layout" -msgstr "開啟音訊匯流排配置" +msgstr "音訊匯流排佈局" #: editor/editor_autoload_settings.cpp msgid "Invalid name." @@ -2790,7 +2708,7 @@ msgstr "[空]" #: editor/plugins/text_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "[unsaved]" -msgstr "[未保存]" +msgstr "[未儲存]" #: editor/editor_dir_dialog.cpp msgid "Please select a base directory first." @@ -2825,22 +2743,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:" @@ -2855,29 +2770,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 "" @@ -2902,7 +2812,7 @@ msgid "" "Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" -"目標平台上的 GLES2 回退驅動器功能必須使用「ETC」紋理壓縮。\n" +"目標平台上的 GLES2 後備驅動器功能必須使用「ETC」紋理壓縮。\n" "請在專案設定中啟用「Import Etc」或是禁用「Driver Fallback Enabled」。" #: editor/editor_export.cpp @@ -2928,15 +2838,14 @@ msgid "" "Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" -"目標平台上的 GLES2 回退驅動器功能必須使用「PVRTC」紋理壓縮。\n" +"目標平台上的 GLES2 後備驅動器功能必須使用「PVRTC」紋理壓縮。\n" "請在專案設定中啟用「Import Pvrtc」或是禁用「Driver Fallback Enabled」。" #: editor/editor_export.cpp platform/android/export/export_plugin.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp -#, fuzzy msgid "Custom Template" -msgstr "編輯器主題" +msgstr "自訂模板" #: editor/editor_export.cpp editor/project_export.cpp #: platform/android/export/export_plugin.cpp platform/iphone/export/export.cpp @@ -2946,9 +2855,8 @@ msgid "Release" msgstr "發行" #: editor/editor_export.cpp -#, fuzzy msgid "Binary Format" -msgstr "色彩運算子。" +msgstr "二進位格式" #: editor/editor_export.cpp msgid "64 Bits" @@ -2959,9 +2867,8 @@ msgid "Embed PCK" msgstr "內嵌PCK" #: editor/editor_export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Texture Format" -msgstr "紋理貼圖區域" +msgstr "紋理貼圖格式" #: editor/editor_export.cpp msgid "BPTC" @@ -2980,9 +2887,8 @@ msgid "ETC2" msgstr "ETC2" #: editor/editor_export.cpp -#, fuzzy msgid "No BPTC Fallbacks" -msgstr "無BPTC回落" +msgstr "無 BPTC 後備" #: editor/editor_export.cpp platform/android/export/export_plugin.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -2997,30 +2903,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." @@ -3228,9 +3129,8 @@ msgid "Manage Editor Feature Profiles" msgstr "管理編輯器功能設定檔" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Default Feature Profile" -msgstr "Godot 功能設定檔" +msgstr "預設功能設定檔" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" @@ -3295,21 +3195,19 @@ msgstr "開啟檔案或資料夾" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp scene/gui/file_dialog.cpp msgid "Save" -msgstr "保存" +msgstr "儲存" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Save a File" -msgstr "保存檔案" +msgstr "儲存檔案" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Access" -msgstr "成功!" +msgstr "存取" #: editor/editor_file_dialog.cpp editor/editor_settings.cpp -#, fuzzy msgid "Display Mode" -msgstr "播放模式:" +msgstr "顯示模式" #: editor/editor_file_dialog.cpp #: editor/import/resource_importer_layered_texture.cpp @@ -3322,30 +3220,25 @@ msgstr "播放模式:" #: scene/resources/environment.cpp scene/resources/material.cpp #: scene/resources/visual_shader.cpp #: servers/audio/effects/audio_effect_distortion.cpp -#, fuzzy msgid "Mode" -msgstr "平移模式" +msgstr "模式" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Current Dir" -msgstr "目前:" +msgstr "目前目錄" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Current File" -msgstr "目前設定檔:" +msgstr "所在檔案" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Current Path" -msgstr "目前:" +msgstr "所在目錄" #: editor/editor_file_dialog.cpp editor/editor_settings.cpp #: scene/gui/file_dialog.cpp -#, fuzzy msgid "Show Hidden Files" -msgstr "顯示/取消顯示隱藏檔案" +msgstr "顯示隱藏的檔案" #: editor/editor_file_dialog.cpp msgid "Disable Overwrite Warning" @@ -3480,9 +3373,8 @@ msgid "Properties" msgstr "屬性" #: editor/editor_help.cpp -#, fuzzy msgid "overrides %s:" -msgstr "複寫:" +msgstr "覆蓋 %s:" #: editor/editor_help.cpp msgid "default:" @@ -3640,46 +3532,39 @@ msgid "Property:" msgstr "屬性:" #: editor/editor_inspector.cpp editor/editor_spin_slider.cpp -#, fuzzy msgid "Label" -msgstr "數值" +msgstr "標籤" #: editor/editor_inspector.cpp editor/editor_spin_slider.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Read Only" -msgstr "僅顯示方法" +msgstr "只讀" #: editor/editor_inspector.cpp editor/plugins/item_list_editor_plugin.cpp -#, fuzzy msgid "Checkable" -msgstr "檢查項目" +msgstr "可勾選" #: editor/editor_inspector.cpp editor/plugins/item_list_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Checked" -msgstr "已檢查的項目" +msgstr "已勾選" #: editor/editor_inspector.cpp -#, fuzzy msgid "Draw Red" -msgstr "繪製呼叫:" +msgstr "繪製紅色" #: editor/editor_inspector.cpp -#, fuzzy msgid "Keying" -msgstr "執行" +msgstr "輸入" #: editor/editor_inspector.cpp -#, fuzzy msgid "Pin value" -msgstr "(數值)" +msgstr "固定值" #: editor/editor_inspector.cpp msgid "" "Pinning a value forces it to be saved even if it's equal to the default." -msgstr "釘選的數值將被迫保存,即使其值與預設值相同。" +msgstr "釘選的數值將被迫儲存,即使其值與預設值相同。" #: editor/editor_inspector.cpp msgid "Pin value [Disabled because '%s' is editor-only]" @@ -3707,19 +3592,16 @@ msgid "Unpinned %s" msgstr "已解除釘選%s" #: editor/editor_inspector.cpp -#, fuzzy msgid "Copy Property" msgstr "複製屬性" #: editor/editor_inspector.cpp -#, fuzzy msgid "Paste Property" msgstr "貼上屬性" #: editor/editor_inspector.cpp -#, fuzzy msgid "Copy Property Path" -msgstr "複製腳本路徑" +msgstr "複製屬性路徑" #: editor/editor_log.cpp msgid "Output:" @@ -3809,7 +3691,7 @@ msgstr "編輯器視窗重新繪製時旋轉。" #: editor/editor_node.cpp msgid "Imported resources can't be saved." -msgstr "匯入的資源無法保存。" +msgstr "匯入的資源無法儲存。" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp @@ -3825,7 +3707,7 @@ msgstr "保存資源時發生錯誤!" msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." -msgstr "由於該資源不屬於已編輯的場景,無法保存該資源。請先使其獨立化。" +msgstr "由於該資源不屬於已編輯的場景,無法儲存該資源。請先使其獨立化。" #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -3884,22 +3766,22 @@ msgid "" "This scene can't be saved because there is a cyclic instancing inclusion.\n" "Please resolve it and then attempt to save again." msgstr "" -"該場景有循環性實體化問題,無法保存。\n" +"該場景有循環性實體化問題,無法儲存。\n" "請先解決此問題後再試一次。" #: editor/editor_node.cpp msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." -msgstr "無法保存場景。可能是由於相依性(實體或繼承)無法滿足。" +msgstr "無法儲存場景。可能是由於相依性(實體或繼承)無法滿足。" #: editor/editor_node.cpp msgid "Could not save one or more scenes!" -msgstr "無法保存一或多個場景!" +msgstr "無法儲存一或多個場景!" #: editor/editor_node.cpp msgid "Save All Scenes" -msgstr "保存所有場景" +msgstr "儲存所有場景" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" @@ -3926,7 +3808,7 @@ msgid "" "An error occurred while trying to save the editor layout.\n" "Make sure the editor's user data path is writable." msgstr "" -"保存編輯器畫面配置時發生錯誤。\n" +"儲存編輯器畫面配置時發生錯誤。\n" "請確認編輯器的使用者資料路徑是否可寫入。" #: editor/editor_node.cpp @@ -3995,7 +3877,7 @@ msgstr "未定義欲執行之場景。" #: editor/editor_node.cpp msgid "Save scene before running..." -msgstr "執行前先保存場景..." +msgstr "執行前先儲存場景..." #: editor/editor_node.cpp msgid "Could not start subprocess!" @@ -4022,38 +3904,36 @@ msgid "Quick Open Script..." msgstr "快速開啟腳本…" #: editor/editor_node.cpp -#, fuzzy msgid "Save & Reload" -msgstr "保存並重新啟動" +msgstr "儲存並重新載入" #: editor/editor_node.cpp -#, fuzzy msgid "Save changes to '%s' before reloading?" -msgstr "關閉前是否保存對「%s」的更改?" +msgstr "是否在重新載入前儲存對「%s」的變更?" #: editor/editor_node.cpp msgid "Save & Close" -msgstr "保存並關閉" +msgstr "儲存並關閉" #: editor/editor_node.cpp msgid "Save changes to '%s' before closing?" -msgstr "關閉前是否保存對「%s」的更改?" +msgstr "關閉前是否儲存對「%s」的更改?" #: editor/editor_node.cpp msgid "%s no longer exists! Please specify a new save location." -msgstr "%s不存在!請指定新的保存位置。" +msgstr "%s不存在!請指定新的儲存位置。" #: editor/editor_node.cpp msgid "" "The current scene has no root node, but %d modified external resource(s) " "were saved anyway." -msgstr "目前的場景無根節點,但%d個被更改的外部資源已被保存。" +msgstr "目前的場景無根節點,但%d個被更改的外部資源已被儲存。" #: editor/editor_node.cpp msgid "" "A root node is required to save the scene. You can add a root node using the " "Scene tree dock." -msgstr "必須有根節點才可保存場景。您可使用場景停佇列以加入一個根節點。" +msgstr "必須有根節點才可儲存場景。您可使用場景停佇列以加入一個根節點。" #: editor/editor_node.cpp msgid "Save Scene As..." @@ -4081,7 +3961,7 @@ msgstr "請先選擇節點以執行該操作。" #: editor/editor_node.cpp msgid "Current scene not saved. Open anyway?" -msgstr "尚未保存目前場景。仍然要開啟嗎?" +msgstr "尚未儲存目前場景。仍然要開啟嗎?" #: editor/editor_node.cpp msgid "Can't undo while mouse buttons are pressed." @@ -4109,18 +3989,18 @@ msgstr "取消復原:%s" #: editor/editor_node.cpp msgid "Can't reload a scene that was never saved." -msgstr "無法重新載入從未保存過的場景。" +msgstr "無法重新載入從未儲存過的場景。" #: editor/editor_node.cpp msgid "Reload Saved Scene" -msgstr "重新載入已保存的場景" +msgstr "重新載入已儲存的場景" #: editor/editor_node.cpp msgid "" "The current scene has unsaved changes.\n" "Reload the saved scene anyway? This action cannot be undone." msgstr "" -"目前場景有未保存的改動。\n" +"目前場景有未儲存的改動。\n" "仍要重新載入場景嗎?此操作將無法復原。" #: editor/editor_node.cpp @@ -4144,21 +4024,20 @@ msgid "Open Project Manager?" msgstr "要開啟專案管理員嗎?" #: editor/editor_node.cpp -#, fuzzy msgid "Save changes to the following scene(s) before reloading?" -msgstr "退出前要先保存下列場景嗎?" +msgstr "重新載入前要儲存下列場景的變更嗎?" #: editor/editor_node.cpp msgid "Save & Quit" -msgstr "保存並退出" +msgstr "儲存並退出" #: editor/editor_node.cpp msgid "Save changes to the following scene(s) before quitting?" -msgstr "退出前要先保存下列場景嗎?" +msgstr "退出前要先儲存下列場景嗎?" #: editor/editor_node.cpp msgid "Save changes to the following scene(s) before opening Project Manager?" -msgstr "開啟專案管理員前要先保存以下場景嗎?" +msgstr "開啟專案管理員前要先儲存以下場景嗎?" #: editor/editor_node.cpp msgid "" @@ -4222,7 +4101,7 @@ msgid "" "open the scene, then save it inside the project path." msgstr "" "載入場景時發生錯誤,場景必須置於專案路徑內。請使用 [匯入] 來開啟該場景,並將" -"其保存於專案路徑內。" +"其儲存於專案路徑內。" #: editor/editor_node.cpp msgid "Scene '%s' has broken dependencies:" @@ -4324,19 +4203,16 @@ msgstr "無法寫入檔案'%s',該檔案正被使用、鎖定或因權限不 #: editor/editor_node.cpp editor/editor_settings.cpp editor/scene_tree_dock.cpp #: servers/arvr/arvr_interface.cpp -#, fuzzy msgid "Interface" -msgstr "使用者界面" +msgstr "界面" #: editor/editor_node.cpp editor/editor_settings.cpp -#, fuzzy msgid "Scene Tabs" -msgstr "切換場景分頁" +msgstr "場景分頁" #: editor/editor_node.cpp -#, fuzzy msgid "Always Show Close Button" -msgstr "永遠顯示網格" +msgstr "永遠顯示關閉按鈕" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Resize If Many Tabs" @@ -4351,14 +4227,12 @@ msgid "Output" msgstr "輸出" #: editor/editor_node.cpp editor/editor_settings.cpp -#, fuzzy msgid "Always Clear Output On Play" -msgstr "清除輸出" +msgstr "執行時永遠清除輸出" #: editor/editor_node.cpp editor/editor_settings.cpp -#, fuzzy msgid "Always Open Output On Play" -msgstr "播放時永遠開啟輸出" +msgstr "執行時永遠開啟輸出" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Always Close Output On Stop" @@ -4366,41 +4240,35 @@ msgstr "停止時永遠關閉輸出" #: editor/editor_node.cpp msgid "Save On Focus Loss" -msgstr "失去焦點時保存" +msgstr "失去焦點時儲存" #: editor/editor_node.cpp editor/editor_settings.cpp -#, fuzzy msgid "Save Each Scene On Quit" -msgstr "保存分支為場景" +msgstr "退出時儲存各場景" #: editor/editor_node.cpp editor/editor_settings.cpp -#, fuzzy msgid "Quit Confirmation" -msgstr "檢視資訊" +msgstr "退出確認" #: editor/editor_node.cpp -#, fuzzy msgid "Show Update Spinner" -msgstr "隱藏更新旋轉圖" +msgstr "顯示更新旋轉圖" #: editor/editor_node.cpp msgid "Update Continuously" msgstr "持續更新" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Only" -msgstr "材質變更:" +msgstr "僅更新 Vital" #: editor/editor_node.cpp -#, fuzzy msgid "Localize Settings" -msgstr "本地化" +msgstr "在地化設定" #: editor/editor_node.cpp -#, fuzzy msgid "Restore Scenes On Load" -msgstr "TimeSeek 節點" +msgstr "載入時恢復場景" #: editor/editor_node.cpp editor/editor_settings.cpp msgid "Show Thumbnail On Hover" @@ -4411,23 +4279,20 @@ msgid "Inspector" msgstr "屬性面板" #: editor/editor_node.cpp -#, fuzzy msgid "Default Property Name Style" -msgstr "專案路徑:" +msgstr "預設屬性名稱樣式" #: editor/editor_node.cpp msgid "Default Float Step" msgstr "預設浮點數間隔" #: editor/editor_node.cpp scene/gui/tree.cpp -#, fuzzy msgid "Disable Folding" -msgstr "已停用的按鈕" +msgstr "停用折疊" #: editor/editor_node.cpp -#, fuzzy msgid "Auto Unfold Foreign Scenes" -msgstr "自動展開對外場景" +msgstr "自動展開場景" #: editor/editor_node.cpp msgid "Horizontal Vector2 Editing" @@ -4438,14 +4303,12 @@ msgid "Horizontal Vector Types Editing" msgstr "水平Vector類別編輯" #: editor/editor_node.cpp -#, fuzzy msgid "Open Resources In Current Inspector" -msgstr "在屬性面板中開啟" +msgstr "在目前的屬性面板打開資源" #: editor/editor_node.cpp -#, fuzzy msgid "Resources To Open In New Inspector" -msgstr "在屬性面板中開啟" +msgstr "在新的屬性面板開啟資源" #: editor/editor_node.cpp msgid "Default Color Picker Mode" @@ -4456,9 +4319,8 @@ msgid "Version Control" msgstr "版本控制" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Username" -msgstr "重新命名" +msgstr "使用者名稱" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "SSH Public Key Path" @@ -4530,7 +4392,7 @@ msgstr "最近開啟的場景" #: editor/editor_node.cpp msgid "Save Scene" -msgstr "保存場景" +msgstr "儲存場景" #: editor/editor_node.cpp msgid "Convert To..." @@ -4584,9 +4446,8 @@ msgid "Install Android Build Template..." msgstr "安裝 Android 建置樣板..." #: editor/editor_node.cpp -#, fuzzy msgid "Open User Data Folder" -msgstr "開啟編輯器資料目錄" +msgstr "打開使用者資料資料夾" #: editor/editor_node.cpp editor/editor_settings.cpp #: editor/plugins/tile_set_editor_plugin.cpp @@ -4662,12 +4523,10 @@ msgid "" msgstr "開啟該選項後,導航網格與多邊形將在專案執行時可見。" #: editor/editor_node.cpp -#, fuzzy msgid "Force Shader Fallbacks" -msgstr "強制著色器回落" +msgstr "強制著色器後備" #: editor/editor_node.cpp -#, fuzzy msgid "" "When this option is enabled, shaders will be used in their fallback form " "(either visible via an ubershader or hidden) during all the run time.\n" @@ -4676,10 +4535,10 @@ msgid "" "Asynchronous shader compilation must be enabled in the project settings for " "this option to make a difference." msgstr "" -"當該選項啟用時,著色器將以回落的形式於執行時作用(透過Ubershader顯示或隱" +"啟用該選項時,著色器在運行時會使用其後備形式(透過 ubershader 顯示或隱" "藏)。\n" -"可用於驗證回落的外觀和效能,其在正常的情形下只會短暫地顯示。\n" -"需啟用專案設定中的非同步著色器編譯以使該選項發揮效果。" +"可用於驗證後備外觀和效能,正常情況下只會短暫顯示。\n" +"必須在專案設定中啟用非同步著色器編譯,該選項才會有效果。" #: editor/editor_node.cpp msgid "Synchronize Scene Changes" @@ -4706,7 +4565,7 @@ msgid "" "When used remotely on a device, this is more efficient when the network " "filesystem option is enabled." msgstr "" -"開啟該選項後,保存腳本時會於執行中的遊戲內重新載入腳本。\n" +"開啟該選項後,儲存腳本時會於執行中的遊戲內重新載入腳本。\n" "若在遠端裝置上使用,可使用網路檔案系統 NFS 以獲得最佳效能。" #: editor/editor_node.cpp @@ -4824,17 +4683,15 @@ msgstr "更改視訊驅動程式需要重新啟動編輯器。" #: editor/editor_node.cpp editor/project_settings_editor.cpp #: editor/settings_config_dialog.cpp msgid "Save & Restart" -msgstr "保存並重新啟動" +msgstr "儲存並重新啟動" #: editor/editor_node.cpp -#, fuzzy msgid "Update All Changes" -msgstr "更改時更新" +msgstr "更新所有變更" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "材質變更:" +msgstr "更新 Vital 更動" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -4852,7 +4709,7 @@ msgstr "展開底部面板" #: editor/editor_node.cpp msgid "Don't Save" -msgstr "不保存" +msgstr "不儲存" #: editor/editor_node.cpp msgid "Android build template is missing, please install relevant templates." @@ -4938,7 +4795,7 @@ msgstr "重新載入" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp msgid "Resave" -msgstr "重新保存" +msgstr "重新儲存" #: editor/editor_node.cpp msgid "New Inherited" @@ -5090,14 +4947,12 @@ msgid "Debugger" msgstr "除錯工具" #: editor/editor_profiler.cpp -#, fuzzy msgid "Profiler Frame History Size" -msgstr "效能分析工具幀數歷史日誌大小" +msgstr "分析工具影格歷史大小" #: editor/editor_profiler.cpp -#, fuzzy msgid "Profiler Frame Max Functions" -msgstr "重新命名函式" +msgstr "分析工具影格最大函式數" #: editor/editor_properties.cpp msgid "Edit Text:" @@ -5136,7 +4991,7 @@ msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" -"無法為欲保存成檔案之資源建立 ViewportTexture。\n" +"無法為欲儲存成檔案之資源建立 ViewportTexture。\n" "資源必須屬於一個場景。" #: editor/editor_properties.cpp @@ -5164,9 +5019,8 @@ msgid "Size:" msgstr "大小:" #: editor/editor_properties_array_dict.cpp -#, fuzzy msgid "Page:" -msgstr "頁: " +msgstr "頁:" #: editor/editor_properties_array_dict.cpp #: editor/plugins/theme_editor_plugin.cpp @@ -5226,20 +5080,17 @@ msgstr "新增 %s" #: modules/visual_script/visual_script_func_nodes.cpp #: modules/visual_script/visual_script_nodes.cpp #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "Base Type" -msgstr "更改基礎型別" +msgstr "基礎型別" #: editor/editor_resource_picker.cpp -#, fuzzy msgid "Edited Resource" -msgstr "新增資源" +msgstr "已經編輯資" #: editor/editor_resource_picker.cpp scene/gui/line_edit.cpp #: scene/gui/slider.cpp scene/gui/spin_box.cpp -#, fuzzy msgid "Editable" -msgstr "可編輯的項目" +msgstr "可編輯" #: editor/editor_resource_picker.cpp editor/property_editor.cpp msgid "New Script" @@ -5250,9 +5101,8 @@ msgid "Extend Script" msgstr "擴充腳本" #: editor/editor_resource_picker.cpp -#, fuzzy msgid "Script Owner" -msgstr "腳本名稱:" +msgstr "腳本所有者" #: editor/editor_run_native.cpp msgid "" @@ -5264,9 +5114,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." @@ -5293,21 +5142,18 @@ msgid "Did you forget the '_run' method?" msgstr "是否未新增「_run」方法?" #: editor/editor_settings.cpp -#, fuzzy msgid "Editor Language" -msgstr "編輯器配置" +msgstr "編輯器語言" #: editor/editor_settings.cpp -#, fuzzy msgid "Display Scale" -msgstr "全部顯示" +msgstr "顯示縮放" #: editor/editor_settings.cpp msgid "Custom Display Scale" msgstr "自訂顯示縮放" #: editor/editor_settings.cpp -#, fuzzy msgid "Main Font Size" msgstr "主要字體大小" @@ -5324,32 +5170,28 @@ msgid "Font Hinting" msgstr "字體微調" #: editor/editor_settings.cpp -#, fuzzy msgid "Main Font" -msgstr "主場景" +msgstr "主要字體" #: editor/editor_settings.cpp msgid "Main Font Bold" msgstr "主要字體粗體" #: editor/editor_settings.cpp -#, fuzzy msgid "Code Font" -msgstr "新增節點頂點" +msgstr "程式碼字體" #: editor/editor_settings.cpp msgid "Dim Editor On Dialog Popup" msgstr "對話框彈出時使編輯器變暗" #: editor/editor_settings.cpp main/main.cpp -#, fuzzy msgid "Low Processor Mode Sleep (µsec)" -msgstr "低處理器使用模式睡眠(微秒)" +msgstr "低處理器睡眠模式(微秒)" #: editor/editor_settings.cpp -#, fuzzy msgid "Unfocused Low Processor Mode Sleep (µsec)" -msgstr "非聚焦低處理器使用模式睡眠(微秒)" +msgstr "未聚焦低處理器睡眠模式(微秒)" #: editor/editor_settings.cpp #, fuzzy @@ -5361,9 +5203,8 @@ msgid "Automatically Open Screenshots" msgstr "自動開啟截圖" #: editor/editor_settings.cpp -#, fuzzy msgid "Max Array Dictionary Items Per Page" -msgstr "每頁最大陣列字典項目數" +msgstr "每頁最大陣列字典物品數" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp scene/gui/control.cpp @@ -5380,131 +5221,108 @@ msgid "Icon And Font Color" msgstr "圖標及字體顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Base Color" -msgstr "顏色" +msgstr "基礎顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Accent Color" -msgstr "選擇顏色" +msgstr "強調顏色" #: editor/editor_settings.cpp scene/resources/environment.cpp msgid "Contrast" msgstr "對比" #: editor/editor_settings.cpp -#, fuzzy msgid "Relationship Line Opacity" msgstr "關係線不透明度" #: editor/editor_settings.cpp -#, fuzzy msgid "Highlight Tabs" -msgstr "正在保存光照圖" +msgstr "突顯選項卡" #: editor/editor_settings.cpp -#, fuzzy msgid "Border Size" -msgstr "邊界像素" +msgstr "邊框大小" #: editor/editor_settings.cpp msgid "Use Graph Node Headers" msgstr "使用圖形節點標題" #: editor/editor_settings.cpp -#, fuzzy msgid "Additional Spacing" -msgstr "重複動畫" +msgstr "額外間距" #: editor/editor_settings.cpp -#, fuzzy msgid "Custom Theme" -msgstr "編輯器主題" +msgstr "自訂主題" #: editor/editor_settings.cpp -#, fuzzy msgid "Show Script Button" -msgstr "滾輪向右按鍵" +msgstr "顯示腳本按鈕" #: editor/editor_settings.cpp -#, fuzzy msgid "Directories" msgstr "方向" #: editor/editor_settings.cpp -#, fuzzy msgid "Autoscan Project Path" -msgstr "專案路徑:" +msgstr "自動掃描專案路徑" #: editor/editor_settings.cpp -#, fuzzy msgid "Default Project Path" -msgstr "專案路徑:" +msgstr "預設專案路徑" #: editor/editor_settings.cpp -#, fuzzy msgid "On Save" -msgstr "保存" +msgstr "儲存時" #: editor/editor_settings.cpp -#, fuzzy msgid "Compress Binary Resources" -msgstr "複製資源" +msgstr "壓縮二進位資源" #: editor/editor_settings.cpp msgid "Safe Save On Backup Then Rename" -msgstr "備份時安全保存後重新命名" +msgstr "備份時安全儲存後重新命名" #: editor/editor_settings.cpp -#, fuzzy msgid "File Dialog" -msgstr "XForm 對話框" +msgstr "檔案對話框" #: editor/editor_settings.cpp -#, fuzzy msgid "Thumbnail Size" -msgstr "縮圖…" +msgstr "縮圖大小" #: editor/editor_settings.cpp -#, fuzzy msgid "Docks" -msgstr "功能介面" +msgstr "面板" #: editor/editor_settings.cpp -#, fuzzy msgid "Scene Tree" -msgstr "正在編輯場景樹" +msgstr "場景樹" #: editor/editor_settings.cpp -#, fuzzy msgid "Start Create Dialog Fully Expanded" -msgstr "開始新建完全展開對話" +msgstr "預設完全展開建立對話框" #: editor/editor_settings.cpp -#, fuzzy msgid "Always Show Folders" -msgstr "永遠顯示網格" +msgstr "永遠顯示資料夾" #: editor/editor_settings.cpp -#, fuzzy msgid "Property Editor" -msgstr "群組編輯器" +msgstr "屬性編輯器" #: editor/editor_settings.cpp -#, fuzzy msgid "Auto Refresh Interval" -msgstr "自動刷新間隔" +msgstr "自動更新頻率" #: editor/editor_settings.cpp -#, fuzzy msgid "Subresource Hue Tint" -msgstr "子資源" +msgstr "子資源彩色顯示" #: editor/editor_settings.cpp -#, fuzzy msgid "Color Theme" -msgstr "編輯器主題" +msgstr "顏色主題" #: editor/editor_settings.cpp scene/3d/label_3d.cpp #: scene/resources/default_theme/default_theme.cpp @@ -5513,52 +5331,44 @@ msgstr "行間距" #: editor/editor_settings.cpp editor/plugins/script_text_editor.cpp #: modules/gdscript/editor/gdscript_highlighter.cpp -#, fuzzy msgid "Highlighting" -msgstr "向性光照" +msgstr "突出顯示" #: editor/editor_settings.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Syntax Highlighting" -msgstr "高亮顯示語法" +msgstr "語法突出顯示" #: editor/editor_settings.cpp scene/gui/text_edit.cpp msgid "Highlight All Occurrences" msgstr "凸顯所有符合項目" #: editor/editor_settings.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Highlight Current Line" -msgstr "凸顯目前行" +msgstr "突顯目前行" #: editor/editor_settings.cpp editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Highlight Type Safe Lines" msgstr "凸顯型別安全的行" #: editor/editor_settings.cpp -#, fuzzy msgid "Indent" -msgstr "向左縮排" +msgstr "縮排" #: editor/editor_settings.cpp editor/plugins/script_text_editor.cpp msgid "Auto Indent" msgstr "自動縮排" #: editor/editor_settings.cpp -#, fuzzy msgid "Convert Indent On Save" -msgstr "轉換縮排為空白" +msgstr "儲存時轉換縮排" #: editor/editor_settings.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Draw Tabs" -msgstr "繪製呼叫:" +msgstr "繪製分頁" #: editor/editor_settings.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Draw Spaces" -msgstr "繪製呼叫:" +msgstr "繪製空格" #: editor/editor_settings.cpp editor/plugins/spatial_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/2d/tile_map.cpp @@ -5576,42 +5386,36 @@ msgid "V Scroll Speed" msgstr "垂直滾動速度" #: editor/editor_settings.cpp -#, fuzzy msgid "Show Minimap" -msgstr "顯示原點" +msgstr "顯示迷你地圖" #: editor/editor_settings.cpp msgid "Minimap Width" msgstr "迷你地圖寬度" #: editor/editor_settings.cpp -#, fuzzy msgid "Mouse Extra Buttons Navigate History" -msgstr "滑鼠額外按鍵操作歷史紀錄" +msgstr "使用額外滑鼠按鍵查看歷史" #: editor/editor_settings.cpp -#, fuzzy msgid "Drag And Drop Selection" -msgstr "選擇網格地圖" +msgstr "拖移選擇的檔案" #: editor/editor_settings.cpp msgid "Appearance" msgstr "外觀" #: editor/editor_settings.cpp scene/gui/text_edit.cpp -#, fuzzy msgid "Show Line Numbers" -msgstr "行號:" +msgstr "顯示行號" #: editor/editor_settings.cpp -#, fuzzy msgid "Line Numbers Zero Padded" -msgstr "行號:" +msgstr "行號歸零" #: editor/editor_settings.cpp -#, fuzzy msgid "Show Bookmark Gutter" -msgstr "顯示書籤欄位" +msgstr "顯示書籤欄" #: editor/editor_settings.cpp #, fuzzy @@ -5619,44 +5423,38 @@ msgid "Show Breakpoint Gutter" msgstr "跳過中斷點" #: editor/editor_settings.cpp -#, fuzzy msgid "Show Info Gutter" -msgstr "顯示資訊欄位" +msgstr "顯示資訊欄" #: editor/editor_settings.cpp msgid "Code Folding" msgstr "程式碼折疊" #: editor/editor_settings.cpp -#, fuzzy msgid "Word Wrap" -msgstr "換行" +msgstr "自動換行" #: editor/editor_settings.cpp msgid "Show Line Length Guidelines" msgstr "顯示行長度參考線" #: editor/editor_settings.cpp -#, fuzzy msgid "Line Length Guideline Soft Column" -msgstr "行長度參考線軟列" +msgstr "行長度參考線軟列數" #: editor/editor_settings.cpp -#, fuzzy msgid "Line Length Guideline Hard Column" -msgstr "行長度參考線硬列" +msgstr "行長度參考線硬列數" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Script List" -msgstr "腳本編輯器" +msgstr "腳本列表" #: editor/editor_settings.cpp msgid "Show Members Overview" msgstr "顯示成員概要" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Files" msgstr "檔案" @@ -5667,7 +5465,7 @@ msgstr "移除後方空白字元" #: editor/editor_settings.cpp msgid "Autosave Interval Secs" -msgstr "自動保存間隔秒數" +msgstr "自動儲存間隔秒數" #: editor/editor_settings.cpp editor/plugins/script_editor_plugin.cpp msgid "Restore Scripts On Load" @@ -5675,11 +5473,11 @@ msgstr "載入時恢復腳本" #: editor/editor_settings.cpp msgid "Auto Reload And Parse Scripts On Save" -msgstr "" +msgstr "儲存時自動重新載入與解析腳本" #: editor/editor_settings.cpp msgid "Auto Reload Scripts On External Change" -msgstr "" +msgstr "從外部更改時自動重新載入腳本" #: editor/editor_settings.cpp msgid "Create Signal Callbacks" @@ -5694,14 +5492,12 @@ msgid "Cursor" msgstr "游標" #: editor/editor_settings.cpp -#, fuzzy msgid "Scroll Past End Of File" -msgstr "滾動超過檔案結尾" +msgstr "滾動超過檔案末尾" #: editor/editor_settings.cpp -#, fuzzy msgid "Block Caret" -msgstr "方形插入符" +msgstr "方形 Caret" #: editor/editor_settings.cpp msgid "Caret Blink" @@ -5719,7 +5515,6 @@ msgstr "右鍵點擊以新增控制點" #: editor/editor_settings.cpp modules/gdscript/gdscript.cpp #: modules/gdscript/gdscript_editor.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Completion" msgstr "自動完成" @@ -5728,22 +5523,20 @@ msgid "Idle Parse Delay" msgstr "閒置解析延遲" #: editor/editor_settings.cpp -#, fuzzy msgid "Auto Brace Complete" msgstr "自動補齊括號" #: editor/editor_settings.cpp -#, fuzzy msgid "Code Complete Delay" -msgstr "程式碼完成延遲" +msgstr "程式碼自動完成延遲" #: editor/editor_settings.cpp msgid "Put Callhint Tooltip Below Current Line" -msgstr "" +msgstr "將呼叫提示工具提示框置於當前行之下" #: editor/editor_settings.cpp msgid "Callhint Tooltip Offset" -msgstr "" +msgstr "呼叫提示工具提示框偏移量" #: editor/editor_settings.cpp #, fuzzy @@ -5751,80 +5544,71 @@ msgid "Complete File Paths" msgstr "複製節點路徑" #: editor/editor_settings.cpp modules/gdscript/gdscript_editor.cpp -#, fuzzy msgid "Add Type Hints" -msgstr "新增類別" +msgstr "新增類別提示" #: editor/editor_settings.cpp msgid "Use Single Quotes" msgstr "使用單引號" #: editor/editor_settings.cpp -#, fuzzy msgid "Show Help Index" -msgstr "顯示輔助資訊" +msgstr "顯示輔助索引" #: editor/editor_settings.cpp msgid "Help Font Size" -msgstr "" +msgstr "幫助字體大小" #: editor/editor_settings.cpp msgid "Help Source Font Size" -msgstr "" +msgstr "幫助源字體大小" #: editor/editor_settings.cpp msgid "Help Title Font Size" -msgstr "" +msgstr "幫助標題字體大小" #: editor/editor_settings.cpp modules/gridmap/grid_map_editor_plugin.cpp msgid "Grid Map" msgstr "網格地圖" #: editor/editor_settings.cpp modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Pick Distance" -msgstr "選擇距離:" +msgstr "拾取距離" #: editor/editor_settings.cpp editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Preview Size" -msgstr "預覽" +msgstr "預覽大小" #: editor/editor_settings.cpp msgid "Primary Grid Color" -msgstr "" +msgstr "主要網格顏色" #: editor/editor_settings.cpp msgid "Secondary Grid Color" -msgstr "" +msgstr "次要網格顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Selection Box Color" -msgstr "僅搜尋所選區域" +msgstr "所選區域顏色" #: editor/editor_settings.cpp editor/plugins/path_editor_plugin.cpp #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp -#, fuzzy msgid "3D Gizmos" -msgstr "Gizmo" +msgstr "3D 控制項" #: editor/editor_settings.cpp editor/plugins/path_editor_plugin.cpp #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Gizmo Colors" -msgstr "發射色彩" +msgstr "控制項顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Instanced" -msgstr "實體" +msgstr "已實體化" #: editor/editor_settings.cpp modules/gltf/gltf_node.cpp #: scene/3d/physics_body.cpp -#, fuzzy msgid "Joint" -msgstr "點" +msgstr "交點" #: editor/editor_settings.cpp scene/2d/collision_shape_2d.cpp #: scene/2d/cpu_particles_2d.cpp scene/2d/touch_screen_button.cpp @@ -5833,110 +5617,95 @@ msgstr "點" #: scene/resources/particles_material.cpp servers/physics_2d_server.cpp #: servers/physics_server.cpp msgid "Shape" -msgstr "" +msgstr "形狀" #: editor/editor_settings.cpp -#, fuzzy msgid "Primary Grid Steps" -msgstr "網格大小:" +msgstr "主網格步長" #: editor/editor_settings.cpp -#, fuzzy msgid "Grid Size" -msgstr "網格大小:" +msgstr "網格大小" #: editor/editor_settings.cpp msgid "Grid Division Level Max" -msgstr "" +msgstr "網格劃分級別最大值" #: editor/editor_settings.cpp msgid "Grid Division Level Min" -msgstr "" +msgstr "網格劃分級別最小值" #: editor/editor_settings.cpp msgid "Grid Division Level Bias" -msgstr "" +msgstr "網格劃分級別偏差值" #: editor/editor_settings.cpp -#, fuzzy msgid "Grid XZ Plane" -msgstr "網格地圖繪圖" +msgstr "網格XZ平面" #: editor/editor_settings.cpp -#, fuzzy msgid "Grid XY Plane" -msgstr "網格地圖繪圖" +msgstr "網格XY平面" #: editor/editor_settings.cpp -#, fuzzy msgid "Grid YZ Plane" -msgstr "網格地圖繪圖" +msgstr "網格YZ平面" #: editor/editor_settings.cpp -#, fuzzy msgid "Default FOV" -msgstr "預設" +msgstr "預設FOV" #: editor/editor_settings.cpp -#, fuzzy msgid "Default Z Near" -msgstr "預設主題" +msgstr "預設Z近處" #: editor/editor_settings.cpp -#, fuzzy msgid "Default Z Far" -msgstr "預設" +msgstr "預設Z遠處" #: editor/editor_settings.cpp msgid "Lightmap Baking Number Of CPU Threads" -msgstr "" +msgstr "光照圖烘焙中央處理器線程數" #: editor/editor_settings.cpp -#, fuzzy msgid "Navigation Scheme" -msgstr "導航模式" +msgstr "導引模式" #: editor/editor_settings.cpp -#, fuzzy msgid "Invert Y Axis" -msgstr "編輯 Y 軸" +msgstr "翻轉 Y 軸" #: editor/editor_settings.cpp -#, fuzzy msgid "Invert X Axis" -msgstr "編輯 X 軸" +msgstr "翻轉 X 軸" #: editor/editor_settings.cpp -#, fuzzy msgid "Zoom Style" -msgstr "縮小" +msgstr "縮放樣式" #: editor/editor_settings.cpp msgid "Emulate Numpad" -msgstr "" +msgstr "模擬數字鍵盤" #: editor/editor_settings.cpp msgid "Emulate 3 Button Mouse" -msgstr "" +msgstr "模擬三鍵滑鼠" #: editor/editor_settings.cpp -#, fuzzy msgid "Orbit Modifier" -msgstr "按最早修改時間排序" +msgstr "軌道修改器" #: editor/editor_settings.cpp -#, fuzzy msgid "Pan Modifier" -msgstr "平移模式" +msgstr "平移修改器" #: editor/editor_settings.cpp -#, fuzzy msgid "Zoom Modifier" -msgstr "已修改" +msgstr "縮放修改器" #: editor/editor_settings.cpp editor/plugins/spatial_editor_plugin.cpp msgid "Warped Mouse Panning" -msgstr "" +msgstr "彎曲滑鼠平移" #: editor/editor_settings.cpp #, fuzzy @@ -5945,235 +5714,205 @@ msgstr "導航模式" #: editor/editor_settings.cpp msgid "Orbit Sensitivity" -msgstr "" +msgstr "軌道靈敏度" #: editor/editor_settings.cpp msgid "Orbit Inertia" -msgstr "" +msgstr "軌道慣性" #: editor/editor_settings.cpp -#, fuzzy msgid "Translation Inertia" -msgstr "翻譯" +msgstr "平移慣性" #: editor/editor_settings.cpp -#, fuzzy msgid "Zoom Inertia" -msgstr "放大" +msgstr "變焦慣性" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook" -msgstr "自由視圖 上" +msgstr "自由觀看" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Navigation Scheme" -msgstr "建立導航網格" +msgstr "自由觀看瀏覽模式" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Sensitivity" -msgstr "自由視圖 左" +msgstr "自由觀看靈敏度" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Inertia" -msgstr "自由視圖 左" +msgstr "自由觀看慣性" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Base Speed" -msgstr "加速自由視圖速度" +msgstr "自由觀看基本速度" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Activation Modifier" -msgstr "放慢自由視圖速度" +msgstr "自由觀看啟動修飾符" #: editor/editor_settings.cpp -#, fuzzy msgid "Freelook Speed Zoom Link" -msgstr "加速自由視圖速度" +msgstr "自由觀看速度縮放連結" #: editor/editor_settings.cpp editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Grid Color" -msgstr "選擇顏色" +msgstr "網格顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Guides Color" -msgstr "選擇顏色" +msgstr "參考線顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Smart Snapping Line Color" -msgstr "智慧型吸附" +msgstr "智慧捕捉線顏色" #: editor/editor_settings.cpp msgid "Bone Width" -msgstr "" +msgstr "骨骼寬度" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Color 1" -msgstr "重新命名顏色項目" +msgstr "骨骼顏色1" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Color 2" -msgstr "重新命名顏色項目" +msgstr "骨骼顏色2" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Selected Color" -msgstr "設定所選之設定檔:" +msgstr "所選之骨骼顏色" #: editor/editor_settings.cpp msgid "Bone IK Color" -msgstr "" +msgstr "骨骼IK顏色" #: editor/editor_settings.cpp msgid "Bone Outline Color" -msgstr "" +msgstr "骨骼輪廓顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Bone Outline Size" -msgstr "輪廓尺寸:" +msgstr "骨骼輪廓大小" #: editor/editor_settings.cpp msgid "Viewport Border Color" -msgstr "" +msgstr "檢視區邊框顏色" #: editor/editor_settings.cpp msgid "Constrain Editor View" -msgstr "" +msgstr "限制編輯器視圖" #: editor/editor_settings.cpp msgid "Simple Panning" -msgstr "" +msgstr "簡易平移" #: editor/editor_settings.cpp msgid "Scroll To Pan" -msgstr "" +msgstr "滾動以平移" #: editor/editor_settings.cpp -#, fuzzy msgid "Pan Speed" -msgstr "速度:" +msgstr "平移速度" #: editor/editor_settings.cpp editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Poly Editor" -msgstr "Polygon2D UV 編輯器" +msgstr "多邊形編輯器" #: editor/editor_settings.cpp msgid "Point Grab Radius" -msgstr "" +msgstr "點抓取半徑" #: editor/editor_settings.cpp editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Show Previous Outline" -msgstr "上一個平面" +msgstr "顯示上一個大綱" #: editor/editor_settings.cpp editor/scene_tree_dock.cpp -#, fuzzy msgid "Autorename Animation Tracks" -msgstr "重新命名動畫" +msgstr "自動重新命名動畫軌道" #: editor/editor_settings.cpp msgid "Default Create Bezier Tracks" -msgstr "" +msgstr "預設建立貝茲軌道" #: editor/editor_settings.cpp -#, fuzzy msgid "Default Create Reset Tracks" -msgstr "貼上關鍵畫格" +msgstr "預設建立重置軌道" #: editor/editor_settings.cpp msgid "Onion Layers Past Color" -msgstr "" +msgstr "洋蔥層先前顏色" #: editor/editor_settings.cpp msgid "Onion Layers Future Color" -msgstr "" +msgstr "洋蔥層未來顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Visual Editors" -msgstr "群組編輯器" +msgstr "視覺化編輯器" #: editor/editor_settings.cpp msgid "Minimap Opacity" -msgstr "" +msgstr "迷你地圖不透明度" #: editor/editor_settings.cpp msgid "Window Placement" -msgstr "" +msgstr "視窗擺放" #: editor/editor_settings.cpp scene/2d/back_buffer_copy.cpp scene/2d/sprite.cpp #: scene/2d/visibility_notifier_2d.cpp scene/3d/sprite_3d.cpp #: scene/gui/control.cpp -#, fuzzy msgid "Rect" -msgstr "全矩形" +msgstr "矩形" #: editor/editor_settings.cpp -#, fuzzy msgid "Rect Custom Position" -msgstr "設定曲線外控制點位置" +msgstr "矩形自定義位置" #: editor/editor_settings.cpp platform/android/export/export_plugin.cpp msgid "Screen" -msgstr "" +msgstr "螢幕" #: editor/editor_settings.cpp -#, fuzzy msgid "Auto Save" -msgstr "自動剪裁" +msgstr "自動保存" #: editor/editor_settings.cpp -#, fuzzy msgid "Save Before Running" -msgstr "執行前先保存場景..." +msgstr "執行前儲存" #: editor/editor_settings.cpp -#, fuzzy msgid "Font Size" -msgstr "前視圖" +msgstr "字體大小" #: editor/editor_settings.cpp #: modules/gdscript/language_server/gdscript_language_server.cpp -#, fuzzy msgid "Remote Host" -msgstr "遠端 " +msgstr "遠端主機" #: editor/editor_settings.cpp #: modules/gdscript/language_server/gdscript_language_server.cpp -#, fuzzy msgid "Remote Port" -msgstr "移除控制點" +msgstr "遠端阜" #: editor/editor_settings.cpp -#, fuzzy msgid "Editor SSL Certificates" -msgstr "編輯器設定" +msgstr "編輯SSL認證" #: editor/editor_settings.cpp msgid "HTTP Proxy" -msgstr "" +msgstr "HTTP 代理程式" #: editor/editor_settings.cpp msgid "Host" -msgstr "" +msgstr "主機" #: editor/editor_settings.cpp editor/fileserver/editor_file_server.cpp #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp #: scene/resources/default_theme/default_theme.cpp msgid "Port" -msgstr "" +msgstr "連接埠" #. TRANSLATORS: Project Manager here refers to the tool used to create/manage Godot projects. #: editor/editor_settings.cpp @@ -6182,55 +5921,50 @@ msgstr "專案管理員" #. TRANSLATORS: Project Manager here refers to the tool used to create/manage Godot projects. #: editor/editor_settings.cpp -#, fuzzy msgid "Sorting Order" -msgstr "重新命名資料夾:" +msgstr "排序方式" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Symbol Color" -msgstr "" +msgstr "符號顏色" #: editor/editor_settings.cpp msgid "Keyword Color" -msgstr "" +msgstr "關鍵字顏色" #: editor/editor_settings.cpp msgid "Control Flow Keyword Color" -msgstr "" +msgstr "控制流關鍵字顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Base Type Color" -msgstr "更改基礎型別" +msgstr "基礎型別顏色" #: editor/editor_settings.cpp msgid "Engine Type Color" -msgstr "" +msgstr "引擎類別顏色" #: editor/editor_settings.cpp msgid "User Type Color" -msgstr "" +msgstr "使用者類別顏色" #: editor/editor_settings.cpp msgid "Comment Color" -msgstr "" +msgstr "註解顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "String Color" -msgstr "儲存檔案:" +msgstr "字串顏色" #: editor/editor_settings.cpp platform/javascript/export/export.cpp #: platform/uwp/export/export.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Background Color" -msgstr "無效的背景顏色。" +msgstr "背景顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Completion Background Color" -msgstr "無效的背景顏色。" +msgstr "自動補全背景顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -6239,128 +5973,111 @@ msgstr "匯入所選" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Existing Color" -msgstr "" +msgstr "完成存在中顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Scroll Color" -msgstr "" +msgstr "完成滾動顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Completion Font Color" -msgstr "" +msgstr "完成字型顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Text Color" -msgstr "下一個地板" +msgstr "文字顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Line Number Color" -msgstr "行號:" +msgstr "行號顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Safe Line Number Color" -msgstr "行號:" +msgstr "安全行號顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Caret Color" -msgstr "" +msgstr "跳脫字元顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Caret Background Color" -msgstr "無效的背景顏色。" +msgstr "跳脫字元背景顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Text Selected Color" -msgstr "刪除所選" +msgstr "所選文字顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Selection Color" -msgstr "僅搜尋所選區域" +msgstr "所選顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Brace Mismatch Color" -msgstr "" +msgstr "大括號不對稱顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Current Line Color" -msgstr "目前場景" +msgstr "目前行顏色" #: editor/editor_settings.cpp msgid "Line Length Guideline Color" -msgstr "" +msgstr "線長導引顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Word Highlighted Color" -msgstr "高亮顯示語法" +msgstr "單字醒目顯示顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Number Color" -msgstr "" +msgstr "數字顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Function Color" -msgstr "函式" +msgstr "函式顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Member Variable Color" -msgstr "重新命名變數" +msgstr "成員變數顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Mark Color" -msgstr "選擇顏色" +msgstr "標記顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Bookmark Color" -msgstr "書籤" +msgstr "書籤顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Breakpoint Color" -msgstr "中斷點" +msgstr "中斷點顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Executing Line Color" -msgstr "" +msgstr "執行列顏色" #: editor/editor_settings.cpp scene/resources/default_theme/default_theme.cpp msgid "Code Folding Color" -msgstr "" +msgstr "程式碼摺疊顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Search Result Color" -msgstr "搜尋結果" +msgstr "搜尋結果顏色" #: editor/editor_settings.cpp -#, fuzzy msgid "Search Result Border Color" -msgstr "搜尋結果" +msgstr "搜尋結果邊界顏色" #: editor/editor_spin_slider.cpp msgid "Hold %s to round to integers. Hold Shift for more precise changes." msgstr "按住 %s 以取整數。按住 Shift 以進行更精確的更動。" #: editor/editor_spin_slider.cpp scene/gui/button.cpp -#, fuzzy msgid "Flat" -msgstr "平面0" +msgstr "平面" #: editor/editor_spin_slider.cpp -#, fuzzy msgid "Hide Slider" -msgstr "碰撞模式" +msgstr "隱藏拖曳條" #: editor/editor_sub_scene.cpp msgid "Select Node(s) to Import" @@ -6380,9 +6097,8 @@ msgstr "自節點中匯入:" #. TRANSLATORS: %s refers to the name of a version control system (e.g. "Git"). #: editor/editor_vcs_interface.cpp -#, fuzzy msgid "%s Error" -msgstr "錯誤" +msgstr "%s 錯誤" #: editor/export_template_manager.cpp msgid "Open the folder containing these templates." @@ -6646,13 +6362,13 @@ msgstr "" #: editor/fileserver/editor_file_server.cpp msgid "File Server" -msgstr "" +msgstr "檔案伺服器" #: editor/fileserver/editor_file_server.cpp #: editor/plugins/version_control_editor_plugin.cpp #: platform/uwp/export/export.cpp platform/windows/export/export.cpp msgid "Password" -msgstr "" +msgstr "密碼" #: editor/filesystem_dock.cpp msgid "Favorites" @@ -6710,6 +6426,9 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"編輯器無法辨識該檔案副檔名。\n" +"如果你仍要重新命名,請使用系統的檔案管理員。\n" +"重新命名為未知副檔名後,該檔案不會在編輯器中顯示。" #: editor/filesystem_dock.cpp msgid "" @@ -6929,14 +6648,12 @@ msgid "Replace..." msgstr "取代..." #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Replace in Files" -msgstr "取代全部" +msgstr "在檔案中取代" #: editor/find_in_files.cpp -#, fuzzy msgid "Replace All (NO UNDO)" -msgstr "取代全部" +msgstr "取代全部(不可復原)" #: editor/find_in_files.cpp msgid "Searching..." @@ -7009,21 +6726,20 @@ msgstr "管理群組" #: editor/import/editor_import_collada.cpp msgid "Collada" -msgstr "" +msgstr "Collada" #: editor/import/editor_import_collada.cpp msgid "Use Ambient" -msgstr "" +msgstr "使用環境通道" #: editor/import/resource_importer_bitmask.cpp -#, fuzzy msgid "Create From" -msgstr "建立資料夾" +msgstr "從某處建立" #: editor/import/resource_importer_bitmask.cpp #: servers/audio/effects/audio_effect_compressor.cpp msgid "Threshold" -msgstr "" +msgstr "臨界值" #: editor/import/resource_importer_csv_translation.cpp #: editor/import/resource_importer_layered_texture.cpp @@ -7036,16 +6752,15 @@ msgstr "元件" #: editor/import/resource_importer_csv_translation.cpp msgid "Delimiter" -msgstr "" +msgstr "分隔符號" #: editor/import/resource_importer_layered_texture.cpp -#, fuzzy msgid "ColorCorrect" -msgstr "顏色函式。" +msgstr "顏色校正" #: editor/import/resource_importer_layered_texture.cpp msgid "No BPTC If RGB" -msgstr "" +msgstr "假設是RGB不使用BPTC" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/2d/cpu_particles_2d.cpp @@ -7053,36 +6768,34 @@ msgstr "" #: scene/resources/material.cpp scene/resources/particles_material.cpp #: scene/resources/texture.cpp scene/resources/visual_shader.cpp msgid "Flags" -msgstr "" +msgstr "旗標" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/animation/tween.cpp #: scene/resources/texture.cpp msgid "Repeat" -msgstr "" +msgstr "重覆" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp scene/2d/light_2d.cpp #: scene/gui/control.cpp -#, fuzzy msgid "Filter" -msgstr "篩選:" +msgstr "篩選" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Mipmaps" -msgstr "訊號" +msgstr "Mipmap" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp msgid "Anisotropic" -msgstr "" +msgstr "異向性" #: editor/import/resource_importer_layered_texture.cpp #: editor/import/resource_importer_texture.cpp msgid "sRGB" -msgstr "" +msgstr "sRGB" #: editor/import/resource_importer_layered_texture.cpp #, fuzzy @@ -7093,17 +6806,15 @@ msgstr "自動剪裁" #: scene/gui/aspect_ratio_container.cpp scene/gui/control.cpp #: scene/gui/nine_patch_rect.cpp scene/gui/scroll_container.cpp #: scene/resources/style_box.cpp -#, fuzzy msgid "Horizontal" -msgstr "水平:" +msgstr "水平" #: editor/import/resource_importer_layered_texture.cpp #: scene/gui/aspect_ratio_container.cpp scene/gui/control.cpp #: scene/gui/nine_patch_rect.cpp scene/gui/scroll_container.cpp #: scene/resources/style_box.cpp -#, fuzzy msgid "Vertical" -msgstr "垂直:" +msgstr "垂直" #: editor/import/resource_importer_obj.cpp #, fuzzy @@ -7111,14 +6822,12 @@ msgid "Generate Tangents" msgstr "產生點" #: editor/import/resource_importer_obj.cpp -#, fuzzy msgid "Scale Mesh" -msgstr "縮放模式" +msgstr "縮放網格" #: editor/import/resource_importer_obj.cpp -#, fuzzy msgid "Offset Mesh" -msgstr "偏移:" +msgstr "Mesh 偏移" #: editor/import/resource_importer_obj.cpp #: editor/import/resource_importer_scene.cpp @@ -7127,9 +6836,8 @@ msgid "Octahedral Compression" msgstr "設定表示式" #: editor/import/resource_importer_obj.cpp -#, fuzzy msgid "Optimize Mesh Flags" -msgstr "大小: " +msgstr "優化 Mesh 標誌" #: editor/import/resource_importer_scene.cpp msgid "Import as Single Scene" @@ -7173,51 +6881,42 @@ msgstr "匯入為多個場景 + 素材" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp #: scene/3d/physics_joint.cpp -#, fuzzy msgid "Nodes" msgstr "節點" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Root Type" -msgstr "成員型別" +msgstr "根型別" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Root Name" -msgstr "遠端 " +msgstr "根名稱" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Root Scale" -msgstr "縮放" +msgstr "根縮放" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Custom Script" -msgstr "剪下節點" +msgstr "自訂腳本" #: editor/import/resource_importer_scene.cpp scene/resources/texture.cpp -#, fuzzy msgid "Storage" -msgstr "儲存檔案:" +msgstr "儲存" #: editor/import/resource_importer_scene.cpp msgid "Use Legacy Names" -msgstr "" +msgstr "使用既有名稱" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp -#, fuzzy msgid "Materials" -msgstr "材質變更:" +msgstr "材質" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Keep On Reimport" -msgstr "重新匯入" +msgstr "保持或重新匯入" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp -#, fuzzy msgid "Meshes" msgstr "網格" @@ -7227,9 +6926,8 @@ msgid "Ensure Tangents" msgstr "修改曲線切線" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Light Baking" -msgstr "烘焙光照圖" +msgstr "光照烘焙" #: editor/import/resource_importer_scene.cpp #, fuzzy @@ -7238,7 +6936,7 @@ msgstr "烘焙光照圖" #: editor/import/resource_importer_scene.cpp modules/gltf/gltf_state.cpp msgid "Skins" -msgstr "" +msgstr "Skin" #: editor/import/resource_importer_scene.cpp #, fuzzy @@ -7246,16 +6944,14 @@ msgid "Use Named Skins" msgstr "使用縮放吸附" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "External Files" -msgstr "開啟檔案" +msgstr "額外檔案" #: editor/import/resource_importer_scene.cpp msgid "Store In Subdir" -msgstr "" +msgstr "儲存於子目錄" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Filter Script" msgstr "篩選腳本" @@ -7265,9 +6961,8 @@ msgid "Keep Custom Tracks" msgstr "變換" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Optimizer" -msgstr "最佳化" +msgstr "最佳化器" #: editor/import/resource_importer_scene.cpp #: editor/plugins/item_list_editor_plugin.cpp main/main.cpp @@ -7281,41 +6976,34 @@ msgstr "最佳化" #: scene/3d/sprite_3d.cpp scene/gui/graph_edit.cpp #: scene/gui/rich_text_label.cpp scene/resources/curve.cpp #: scene/resources/environment.cpp scene/resources/material.cpp -#, fuzzy msgid "Enabled" -msgstr "啟用" +msgstr "已啟用" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Max Linear Error" -msgstr "最大線性誤差:" +msgstr "最大線性誤差" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Max Angular Error" -msgstr "最大角度誤差:" +msgstr "最大角度誤差" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Max Angle" -msgstr "數值" +msgstr "最大角度" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Remove Unused Tracks" -msgstr "刪除動畫軌" +msgstr "移除未使用的動畫軌" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Clips" msgstr "動畫片段" #: editor/import/resource_importer_scene.cpp scene/2d/cpu_particles_2d.cpp #: scene/2d/particles_2d.cpp scene/3d/area.cpp scene/3d/cpu_particles.cpp #: scene/3d/particles.cpp scene/resources/environment.cpp -#, fuzzy msgid "Amount" -msgstr "數量:" +msgstr "數量" #: editor/import/resource_importer_scene.cpp #: editor/plugins/mesh_library_editor_plugin.cpp @@ -7331,9 +7019,8 @@ msgid "Generating Lightmaps" msgstr "正在產生光照圖" #: editor/import/resource_importer_scene.cpp -#, fuzzy msgid "Generating for Mesh:" -msgstr "正在產生網格: " +msgstr "生成 Mesh 中:" #: editor/import/resource_importer_scene.cpp msgid "Running Custom Script..." @@ -7364,159 +7051,144 @@ msgid "" "%s: Texture detected as used as a normal map in 3D. Enabling red-green " "texture compression to reduce memory usage (blue channel is discarded)." msgstr "" +"%s: 偵測到使用在3D上的法線貼圖。啟用紅-綠材質壓縮來減少記憶體用量(藍色通道已" +"被捨棄)。" #: editor/import/resource_importer_texture.cpp msgid "" "%s: Texture detected as used in 3D. Enabling filter, repeat, mipmap " "generation and VRAM texture compression." -msgstr "" +msgstr "%s: 偵測到使用在3D上的材質。啟用濾鏡、重覆、Mipmap產生和VRAM材質壓縮。" #: editor/import/resource_importer_texture.cpp msgid "2D, Detect 3D" -msgstr "" +msgstr "2D,偵測3D" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "2D Pixel" -msgstr "實體像素" +msgstr "2D像素" #: editor/import/resource_importer_texture.cpp scene/resources/texture.cpp msgid "Lossy Quality" -msgstr "" +msgstr "低品質" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "HDR Mode" -msgstr "選擇模式" +msgstr "HDR模式" #: editor/import/resource_importer_texture.cpp msgid "BPTC LDR" -msgstr "" +msgstr "BPTC LDR" #: editor/import/resource_importer_texture.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/2d/cpu_particles_2d.cpp #: scene/2d/mesh_instance_2d.cpp scene/2d/multimesh_instance_2d.cpp #: scene/2d/particles_2d.cpp scene/2d/sprite.cpp scene/resources/style_box.cpp msgid "Normal Map" -msgstr "" +msgstr "法線貼圖" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Process" -msgstr "後處理" +msgstr "處理" #: editor/import/resource_importer_texture.cpp msgid "Fix Alpha Border" -msgstr "" +msgstr "修正Alpha邊界" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Premult Alpha" -msgstr "編輯多邊形" +msgstr "預乘 Alpha" #: editor/import/resource_importer_texture.cpp msgid "Hdr As Srgb" -msgstr "" +msgstr "Hdr作為SRGB" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Invert Color" -msgstr "頂點" +msgstr "翻轉顏色" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Normal Map Invert Y" -msgstr "隨機縮放:" +msgstr "法線貼圖反轉 Y" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "Size Limit" -msgstr "大小: " +msgstr "大小限制" #: editor/import/resource_importer_texture.cpp msgid "Detect 3D" -msgstr "" +msgstr "偵測3D" #: editor/import/resource_importer_texture.cpp -#, fuzzy msgid "SVG" -msgstr "HSV" +msgstr "SVG" #: editor/import/resource_importer_texture.cpp msgid "" "Warning, no suitable PC VRAM compression enabled in Project Settings. This " "texture will not display correctly on PC." msgstr "" +"注意,專案設定內啟用了非適合的PC VRAM壓縮。此材質將無法在PC上正確顯示。" #: editor/import/resource_importer_texture_atlas.cpp -#, fuzzy msgid "Atlas File" -msgstr "輪廓尺寸:" +msgstr "合集檔案" #: editor/import/resource_importer_texture_atlas.cpp -#, fuzzy msgid "Import Mode" -msgstr "匯出模式:" +msgstr "匯入模式" #: editor/import/resource_importer_texture_atlas.cpp -#, fuzzy msgid "Crop To Region" -msgstr "選擇圖塊區域" +msgstr "裁剪至區域" #: editor/import/resource_importer_texture_atlas.cpp msgid "Trim Alpha Border From Region" -msgstr "" +msgstr "從區域簡化Alpha邊界" #: editor/import/resource_importer_wav.cpp scene/2d/physics_body_2d.cpp -#, fuzzy msgid "Force" -msgstr "來源網格:" +msgstr "強制" #: editor/import/resource_importer_wav.cpp msgid "8 Bit" -msgstr "" +msgstr "8位元組" #: editor/import/resource_importer_wav.cpp main/main.cpp #: modules/mono/editor/csharp_project.cpp modules/mono/mono_gd/gd_mono.cpp msgid "Mono" -msgstr "" +msgstr "Mono" #: editor/import/resource_importer_wav.cpp -#, fuzzy msgid "Max Rate" -msgstr "Mix 節點" +msgstr "最大頻率" #: editor/import/resource_importer_wav.cpp -#, fuzzy msgid "Max Rate Hz" -msgstr "Mix 節點" +msgstr "最大頻率Hz" #: editor/import/resource_importer_wav.cpp msgid "Trim" -msgstr "" +msgstr "簡化" #: editor/import/resource_importer_wav.cpp -#, fuzzy msgid "Normalize" -msgstr "格式" +msgstr "正規化" #: editor/import/resource_importer_wav.cpp #: scene/resources/audio_stream_sample.cpp -#, fuzzy msgid "Loop Mode" -msgstr "移動模式" +msgstr "重覆模式" #: editor/import/resource_importer_wav.cpp #: scene/resources/audio_stream_sample.cpp -#, fuzzy msgid "Loop Begin" -msgstr "移動模式" +msgstr "開始重覆" #: editor/import/resource_importer_wav.cpp #: scene/resources/audio_stream_sample.cpp -#, fuzzy msgid "Loop End" -msgstr "移動模式" +msgstr "結束重覆" #: editor/import_defaults_editor.cpp msgid "Select Importer" @@ -7567,7 +7239,7 @@ msgstr "匯入為:" #: editor/import_dock.cpp msgid "Save Scenes, Re-Import, and Restart" -msgstr "保存場景、重新匯入、並重新啟動" +msgstr "儲存場景、重新匯入、並重新啟動" #: editor/import_dock.cpp msgid "Changing the type of an imported file requires editor restart." @@ -7582,34 +7254,31 @@ msgstr "警告:有素材使用該資源,將無法正確加載。" msgid "" "Select a resource file in the filesystem or in the inspector to adjust " "import settings." -msgstr "" +msgstr "從檔案系統中選擇資源檔,或是在面板上調整匯入設定。" #: editor/inspector_dock.cpp msgid "Failed to load resource." msgstr "加載資源失敗。" #: editor/inspector_dock.cpp -#, fuzzy msgid "Property Name Style" -msgstr "專案名稱:" +msgstr "屬性名稱樣式" #: editor/inspector_dock.cpp scene/gui/color_picker.cpp msgid "Raw" msgstr "原始" #: editor/inspector_dock.cpp -#, fuzzy msgid "Capitalized" msgstr "首字母大寫" #: editor/inspector_dock.cpp -#, fuzzy msgid "Localized" -msgstr "地區" +msgstr "已本地化" #: editor/inspector_dock.cpp msgid "Localization not available for current language." -msgstr "" +msgstr "目前的語言不支援本地化。" #: editor/inspector_dock.cpp msgid "Copy Properties" @@ -7633,7 +7302,7 @@ msgstr "從磁碟中載入現有的資源並編輯。" #: editor/inspector_dock.cpp msgid "Save the currently edited resource." -msgstr "保存目前編輯的資源。" +msgstr "儲存目前編輯的資源。" #: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp @@ -8146,9 +7815,8 @@ msgid "New" msgstr "新增" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Paste As Reference" -msgstr "%s 類別參照" +msgstr "複製為參照" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." @@ -8337,9 +8005,8 @@ msgid "Set the end animation. This is useful for sub-transitions." msgstr "設定結尾動畫。適用於子轉場。" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition:" -msgstr "轉場: " +msgstr "轉場效果:" #: editor/plugins/animation_state_machine_editor.cpp msgid "Play Mode:" @@ -8476,7 +8143,7 @@ msgstr "篩選..." #: editor/plugins/asset_library_editor_plugin.cpp scene/main/http_request.cpp msgid "Use Threads" -msgstr "" +msgstr "使用執行緒" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Contents:" @@ -8524,7 +8191,7 @@ msgstr "要求失敗,回傳代碼:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Cannot save response to:" -msgstr "無法保存回覆至:" +msgstr "無法儲存回覆至:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Write error." @@ -8603,9 +8270,8 @@ msgid "Download Error" msgstr "下載錯誤" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Available URLs" -msgstr "可用設定檔:" +msgstr "可用 URL" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download for this asset is already in progress!" @@ -8640,28 +8306,24 @@ msgid "Loading..." msgstr "正在載入..." #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgctxt "Pagination" msgid "First" -msgstr "首頁" +msgstr "第一個" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgctxt "Pagination" msgid "Previous" -msgstr "上一頁" +msgstr "上一個" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgctxt "Pagination" msgid "Next" -msgstr "下一頁" +msgstr "下一個" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgctxt "Pagination" msgid "Last" -msgstr "最後" +msgstr "最後一個" #: editor/plugins/asset_library_editor_plugin.cpp msgid "All" @@ -8709,7 +8371,7 @@ msgstr "測試" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed to get repository configuration." -msgstr "" +msgstr "無法取得倉儲設定。" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Assets ZIP File" @@ -8724,8 +8386,8 @@ msgid "" "Can't determine a save path for lightmap images.\n" "Save your scene and try again." msgstr "" -"無法判斷光照圖的保存路徑。\n" -"請保存場景並重試。" +"無法判斷光照圖的儲存路徑。\n" +"請儲存場景並重試。" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "" @@ -8760,7 +8422,7 @@ msgstr "烘焙光照圖" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "LightMap Bake" -msgstr "" +msgstr "光照貼圖烘培" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" @@ -9069,9 +8731,8 @@ msgid "Alt+Drag: Move selected node." msgstr "Alt+拖移:移動所選的節點。" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Alt+Drag: Scale selected node." -msgstr "Alt+拖移:移動所選的節點。" +msgstr "Alt+拖曳:縮放所選的節點。" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "V: Set selected node's pivot position." @@ -9202,9 +8863,8 @@ msgstr "在其位置上鎖定所選物件(無法移動)。" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Lock Selected Node(s)" -msgstr "鎖定所選" +msgstr "鎖定所選的節點" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -9213,9 +8873,8 @@ msgstr "解鎖所選物件(可移動)。" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Unlock Selected Node(s)" -msgstr "取消鎖定所選" +msgstr "取消鎖定所選的節點" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -9224,9 +8883,8 @@ msgstr "確保物件的子級項目無法被選擇。" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Group Selected Node(s)" -msgstr "為所選的項目建立群組" +msgstr "為所選的節點建立群組" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -9235,9 +8893,8 @@ msgstr "恢復讓物件的子級項目可選擇。" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Ungroup Selected Node(s)" -msgstr "移除所選項目的群組" +msgstr "取消所選節點的群組" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Skeleton Options" @@ -9262,23 +8919,20 @@ msgid "View" msgstr "檢視" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show" -msgstr "顯示網格" +msgstr "顯示" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show When Snapping" -msgstr "智慧型吸附" +msgstr "當吸附時顯示" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Hide" -msgstr "" +msgstr "隱藏" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Toggle Grid" -msgstr "切換模式" +msgstr "切換網格" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -9556,7 +9210,7 @@ msgstr "平面0" #: editor/plugins/curve_editor_plugin.cpp msgid "Flat 1" -msgstr "" +msgstr "平面 1" #: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp msgid "Ease In" @@ -9635,9 +9289,8 @@ msgid "Swap Gradient Fill Points" msgstr "" #: editor/plugins/gradient_texture_2d_editor_plugin.cpp -#, fuzzy msgid "Toggle Grid Snap" -msgstr "切換模式" +msgstr "切換網格吸附" #: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp #: scene/3d/label_3d.cpp scene/gui/button.cpp scene/gui/dialogs.cpp @@ -9656,13 +9309,12 @@ msgstr "圖示" #: editor/plugins/item_list_editor_plugin.cpp msgid "ID" -msgstr "" +msgstr "ID" #: editor/plugins/item_list_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Separator" -msgstr "分隔:" +msgstr "分隔線" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" @@ -9891,9 +9543,8 @@ msgstr "" "%s" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "MeshLibrary" -msgstr "網格庫" +msgstr "網格資源庫" #: editor/plugins/mesh_library_editor_plugin.cpp msgid "Add Item" @@ -9916,14 +9567,12 @@ msgid "Update from Scene" msgstr "自場景更新" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "Apply without Transforms" -msgstr "套用MeshInstance變換" +msgstr "不包含變換的套用" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "Apply with Transforms" -msgstr "套用MeshInstance變換" +msgstr "包含變換的套用" #: editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and no MultiMesh set in node)." @@ -10089,9 +9738,8 @@ msgid "Volume" msgstr "體積" #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Emission Source:" -msgstr "發射源: " +msgstr "發射源:" #: editor/plugins/particles_editor_plugin.cpp msgid "A processor material of type 'ParticlesMaterial' is required." @@ -10522,7 +10170,7 @@ msgstr "清除最近的檔案" #: editor/plugins/script_editor_plugin.cpp msgid "Close and save changes?" -msgstr "關閉並保存修改嗎?" +msgstr "關閉並儲存修改嗎?" #: editor/plugins/script_editor_plugin.cpp msgid "Error writing TextFile:" @@ -10595,7 +10243,7 @@ msgstr "保存錯誤" #: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." -msgstr "保存主題為..." +msgstr "儲存主題為..." #: editor/plugins/script_editor_plugin.cpp msgid "%s Class Reference" @@ -10662,7 +10310,7 @@ msgstr "重新打開關閉的腳本" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" -msgstr "全部保存" +msgstr "全部儲存" #: editor/plugins/script_editor_plugin.cpp msgid "Soft Reload Script" @@ -10690,7 +10338,7 @@ msgstr "重新載入主題" #: editor/plugins/script_editor_plugin.cpp msgid "Save Theme" -msgstr "保存主題" +msgstr "儲存主題" #: editor/plugins/script_editor_plugin.cpp msgid "Close All" @@ -10776,50 +10424,43 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "External" -msgstr "" +msgstr "額外的" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Use External Editor" -msgstr "使用外部編輯器進行除錯" +msgstr "使用外部編輯器" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Exec Path" -msgstr "匯出路徑" +msgstr "執行路徑" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Script Temperature Enabled" -msgstr "選擇樣板檔案" +msgstr "啟用腳本樣式" #: editor/plugins/script_editor_plugin.cpp msgid "Highlight Current Script" -msgstr "" +msgstr "強調顯示目前的腳本" #: editor/plugins/script_editor_plugin.cpp msgid "Script Temperature History Size" msgstr "" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Current Script Background Color" -msgstr "無效的背景顏色。" +msgstr "目前腳本背景顏色" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Group Help Pages" -msgstr "為所選的項目建立群組" +msgstr "幫助頁分組" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Sort Scripts By" -msgstr "建立腳本" +msgstr "排序腳本根據" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "List Script Names As" -msgstr "腳本名稱:" +msgstr "將腳本名稱列為" #: editor/plugins/script_editor_plugin.cpp msgid "Exec Flags" @@ -10976,9 +10617,8 @@ msgid "Find in Files..." msgstr "在檔案中搜尋..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Replace in Files..." -msgstr "取代..." +msgstr "在檔案中取代..." #: editor/plugins/script_text_editor.cpp msgid "Contextual Help" @@ -11182,15 +10822,13 @@ msgstr "移動" #. TRANSLATORS: Refers to changing the scale of a node in the 3D editor. #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Scaling:" -msgstr "縮放: " +msgstr "縮放:" #. TRANSLATORS: Refers to changing the position of a node in the 3D editor. #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Translating:" -msgstr "移動: " +msgstr "移動:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." @@ -11238,7 +10876,7 @@ msgstr "頂點:" #: editor/plugins/spatial_editor_plugin.cpp msgid "FPS: %d (%s ms)" -msgstr "" +msgstr "FPS: %d (%s 毫秒)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Top View." @@ -11338,13 +10976,12 @@ msgstr "效果預覽" #: editor/plugins/spatial_editor_plugin.cpp msgid "(Not in GLES2)" -msgstr "" +msgstr "(不在GLES2中)" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "" "Debug draw modes are only available when using the GLES3 renderer, not GLES2." -msgstr "使用 GLES2 算繪引擎時無法使用。" +msgstr "除錯繪製模式僅在使用 GLES3 算繪引擎時可用,GLES2 不可用。" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Left" @@ -11507,16 +11144,15 @@ msgstr "開啟/關閉自由視圖" #: editor/plugins/spatial_editor_plugin.cpp msgid "Decrease Field of View" -msgstr "" +msgstr "減少可視範圍" #: editor/plugins/spatial_editor_plugin.cpp msgid "Increase Field of View" -msgstr "" +msgstr "增加可視範圍" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Reset Field of View to Default" -msgstr "重設為預設值" +msgstr "重設為預設視野" #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Object to Floor" @@ -11730,19 +11366,16 @@ msgid "Sprite" msgstr "拼合圖" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Simplification:" -msgstr "簡化: " +msgstr "簡化:" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Shrink (Pixels):" -msgstr "收縮(像素): " +msgstr "收縮(像素):" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Grow (Pixels):" -msgstr "擴展(像素): " +msgstr "擴展(像素):" #: editor/plugins/sprite_editor_plugin.cpp msgid "Update Preview" @@ -12288,9 +11921,8 @@ msgid "Available Node-based types:" msgstr "可用設定檔:" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Type name is empty!" -msgstr "檔案名稱為空。" +msgstr "型別名稱為空!" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -12987,9 +12619,8 @@ msgstr "吸附選項" #: scene/gui/graph_node.cpp scene/gui/rich_text_effect.cpp #: scene/main/canvas_layer.cpp scene/resources/material.cpp #: scene/resources/particles_material.cpp scene/resources/style_box.cpp -#, fuzzy msgid "Offset" -msgstr "偏移:" +msgstr "偏移" #: editor/plugins/tile_set_editor_plugin.cpp editor/rename_dialog.cpp #: scene/gui/range.cpp scene/resources/animation.cpp @@ -13000,9 +12631,8 @@ msgstr "步長" #: editor/plugins/tile_set_editor_plugin.cpp #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Separation" -msgstr "分隔:" +msgstr "間距" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -13021,16 +12651,14 @@ msgid "Texture" msgstr "純文字" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Tex Offset" -msgstr "網格偏移量:" +msgstr "紋理偏移" #: editor/plugins/tile_set_editor_plugin.cpp modules/csg/csg_shape.cpp #: scene/2d/canvas_item.cpp scene/2d/particles_2d.cpp #: scene/3d/mesh_instance.cpp scene/resources/primitive_meshes.cpp -#, fuzzy msgid "Material" -msgstr "材質變更:" +msgstr "材質" #: editor/plugins/tile_set_editor_plugin.cpp scene/2d/canvas_item.cpp #: scene/3d/label_3d.cpp scene/3d/sprite_3d.cpp scene/resources/style_box.cpp @@ -13049,9 +12677,8 @@ msgid "Autotile Bitmask Mode" msgstr "優先模式" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Subtile Size" -msgstr "輪廓尺寸:" +msgstr "子圖塊大小" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -13069,9 +12696,8 @@ msgid "Navigation Offset" msgstr "導航模式" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Shape Offset" -msgstr "偏移:" +msgstr "形狀偏移" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -13120,7 +12746,7 @@ msgstr "無可用的版本控制 (VCS) 擴充功能。" #: editor/plugins/version_control_editor_plugin.cpp msgid "" "Remote settings are empty. VCS features that use the network may not work." -msgstr "" +msgstr "遠端設定是空的。使用網路的VCS功能恐無法運作。" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -13132,32 +12758,28 @@ msgid "Commit" msgstr "提交" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Staged Changes" -msgstr "著色器變更:" +msgstr "暫存變更" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Unstaged Changes" -msgstr "著色器變更:" +msgstr "未暫存變更" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit:" -msgstr "提交" +msgstr "提交:" #: editor/plugins/version_control_editor_plugin.cpp msgid "Date:" -msgstr "" +msgstr "日期:" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Subtitle:" -msgstr "子樹" +msgstr "副標題:" #: editor/plugins/version_control_editor_plugin.cpp msgid "Do you want to remove the %s branch?" -msgstr "" +msgstr "你確定要移除 %s 分支?" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -13184,34 +12806,31 @@ msgstr "移除控制點" #: editor/plugins/version_control_editor_plugin.cpp msgid "Select SSH public key path" -msgstr "" +msgstr "選擇SSH公鑰的路徑" #: editor/plugins/version_control_editor_plugin.cpp msgid "Select SSH private key path" -msgstr "" +msgstr "選擇SSH私鑰的路徑" #: editor/plugins/version_control_editor_plugin.cpp msgid "SSH Passphrase" -msgstr "" +msgstr "SSH 通關片段" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect new changes" msgstr "偵測新改動" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Discard all changes" -msgstr "關閉並保存修改嗎?" +msgstr "捨棄所有變更" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage all changes" -msgstr "正在儲存變更..." +msgstr "預存所有變更" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Unstage all changes" -msgstr "材質變更:" +msgstr "撤銷暫存所有變更" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -13229,12 +12848,11 @@ msgstr "提交" #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit list size" -msgstr "" +msgstr "簽入列表大小" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Branches" -msgstr "符合條件:" +msgstr "分支" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -13248,7 +12866,7 @@ msgstr "刪除動畫軌" #: editor/plugins/version_control_editor_plugin.cpp msgid "Branch Name" -msgstr "" +msgstr "分支名稱" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -13266,31 +12884,28 @@ msgid "Remove Remote" msgstr "移除項目" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remote Name" -msgstr "遠端 " +msgstr "遠端名稱" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remote URL" -msgstr "遠端 " +msgstr "遠端網址" #: editor/plugins/version_control_editor_plugin.cpp msgid "Fetch" -msgstr "" +msgstr "提取" #: editor/plugins/version_control_editor_plugin.cpp msgid "Pull" -msgstr "" +msgstr "拉送" #: editor/plugins/version_control_editor_plugin.cpp msgid "Push" -msgstr "" +msgstr "推送" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Force Push" -msgstr "來源網格:" +msgstr "強制推送" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" @@ -13310,12 +12925,11 @@ msgstr "格式更改" #: editor/plugins/version_control_editor_plugin.cpp msgid "Unmerged" -msgstr "" +msgstr "未合併" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "View:" -msgstr "檢視" +msgstr "檢視:" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -14304,28 +13918,24 @@ msgid "More Info..." msgstr "移動至..." #: editor/project_export.cpp -#, fuzzy msgid "Export PCK/Zip..." -msgstr "匯出 PCK/ZIP" +msgstr "匯出 PCK/ZIP..." #: editor/project_export.cpp -#, fuzzy msgid "Export Project..." -msgstr "匯出專案" +msgstr "匯出專案..." #: editor/project_export.cpp msgid "Export All" msgstr "全部匯出" #: editor/project_export.cpp -#, fuzzy msgid "Choose an export mode:" -msgstr "請選擇一個空資料夾。" +msgstr "選擇匯出模式:" #: editor/project_export.cpp -#, fuzzy msgid "Export All..." -msgstr "全部匯出" +msgstr "全部匯出..." #: editor/project_export.cpp editor/project_manager.cpp msgid "ZIP File" @@ -14630,8 +14240,8 @@ msgid "" "Language changed.\n" "The interface will update after restarting the editor or project manager." msgstr "" -"語言已更改。\n" -"界面將會在重新啟動編輯器或專案管理員後更新。" +"語言已變更。\n" +"重新啟動編輯器或專案管理員後將會套用界面更新。" #: editor/project_manager.cpp msgid "" @@ -14908,7 +14518,7 @@ msgstr "保存設定時發生錯誤。" #: editor/project_settings_editor.cpp msgid "Settings saved OK." -msgstr "設定保存成功。" +msgstr "設定儲存成功。" #: editor/project_settings_editor.cpp msgid "Moved Input Action Event" @@ -14992,7 +14602,7 @@ msgstr "索引:" #: editor/project_settings_editor.cpp msgid "Localization" -msgstr "本地化" +msgstr "在地化" #: editor/project_settings_editor.cpp msgid "Translations" @@ -15367,7 +14977,7 @@ msgid "" "FileSystem dock context menu\n" "or create an inherited scene using Scene > New Inherited Scene... instead." msgstr "" -"無法保存作為實體化場景的根節點分支。\n" +"無法儲存作為實體化場景的根節點分支。\n" "請使用檔案系統停佇列的右鍵選單來複製它,以拷貝目前場景加以編輯。\n" "或是使用場景 > 新增繼承場景...以建立一個繼承場景。" @@ -15377,7 +14987,7 @@ msgid "" "To create a variation of a scene, you can make an inherited scene based on " "the instanced scene using Scene > New Inherited Scene... instead." msgstr "" -"無法保存已實體化場景的分支。\n" +"無法儲存已實體化場景的分支。\n" "若要建立場景變體,您可使用場景 > 新增繼承場景...根據實體化的場景建立一個繼承" "場景。" @@ -15422,14 +15032,12 @@ msgid "Another node already uses this unique name in the scene." msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Enable Scene Unique Name" -msgstr "節點名稱:" +msgstr "啟用場景獨立名稱" #: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp -#, fuzzy msgid "Disable Scene Unique Name" -msgstr "節點名稱:" +msgstr "停用場景獨立名稱" #: editor/scene_tree_dock.cpp msgid "New Scene Root" @@ -15487,7 +15095,7 @@ msgstr "更改節點的型別" msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." -msgstr "無法保存新場景。可能是由於無法滿足其依賴性(實體)。" +msgstr "無法儲存新場景。可能是由於無法滿足其依賴性(實體)。" #: editor/scene_tree_dock.cpp msgid "Error saving scene." @@ -15495,7 +15103,7 @@ msgstr "保存場景時發生錯誤。" #: editor/scene_tree_dock.cpp msgid "Error duplicating scene to save it." -msgstr "複製場景以進行保存時發生錯誤。" +msgstr "複製場景以進行儲存時發生錯誤。" #: editor/scene_tree_dock.cpp msgid "Sub-Resources" @@ -15552,7 +15160,7 @@ msgstr "合併自場景" #: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Save Branch as Scene" -msgstr "保存分支為場景" +msgstr "儲存分支為場景" #: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" @@ -15843,9 +15451,8 @@ msgid "Attach Node Script" msgstr "附加節點腳本" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Remote %s:" -msgstr "遠端 " +msgstr "遠端 %s:" #: editor/script_editor_debugger.cpp msgid "Bytes:" @@ -16297,9 +15904,8 @@ msgid "Driver" msgstr "" #: main/main.cpp -#, fuzzy msgid "Driver Name" -msgstr "腳本名稱:" +msgstr "驅動名稱" #: main/main.cpp msgid "Fallback To GLES2" @@ -16384,9 +15990,8 @@ msgid "Physics FPS" msgstr "物理影格 %" #: main/main.cpp -#, fuzzy msgid "Force FPS" -msgstr "來源網格:" +msgstr "強制 FPS" #: main/main.cpp msgid "Enable Pause Aware Picking" @@ -16500,9 +16105,8 @@ msgid "Fullsize" msgstr "" #: main/main.cpp scene/resources/dynamic_font.cpp -#, fuzzy msgid "Use Filter" -msgstr "篩選:" +msgstr "使用篩選器" #: main/main.cpp scene/resources/style_box.cpp #, fuzzy @@ -16549,9 +16153,8 @@ msgid "Custom Image Hotspot" msgstr "" #: main/main.cpp -#, fuzzy msgid "Tooltip Position Offset" -msgstr "旋轉偏移量:" +msgstr "工具提示位置偏移" #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp #, fuzzy @@ -16564,9 +16167,8 @@ msgid "Wait For Debugger" msgstr "除錯工具" #: main/main.cpp modules/mono/mono_gd/gd_mono.cpp -#, fuzzy msgid "Wait Timeout" -msgstr "逾時。" +msgstr "等待逾時" #: main/main.cpp msgid "Runtime" @@ -16680,14 +16282,12 @@ msgstr "轉換大小寫" #: scene/resources/cylinder_shape.cpp scene/resources/environment.cpp #: scene/resources/navigation_mesh.cpp scene/resources/primitive_meshes.cpp #: scene/resources/sphere_shape.cpp -#, fuzzy msgid "Radius" -msgstr "半徑:" +msgstr "半徑" #: modules/csg/csg_shape.cpp scene/resources/primitive_meshes.cpp -#, fuzzy msgid "Radial Segments" -msgstr "主場景引數:" +msgstr "徑向段數" #: modules/csg/csg_shape.cpp scene/resources/primitive_meshes.cpp #, fuzzy @@ -16756,9 +16356,8 @@ msgid "Path Simplify Angle" msgstr "" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Path Rotation" -msgstr "隨機旋轉:" +msgstr "路徑旋轉" #: modules/csg/csg_shape.cpp #, fuzzy @@ -16771,14 +16370,12 @@ msgid "Path Continuous U" msgstr "連續" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Path U Distance" -msgstr "選擇距離:" +msgstr "路徑 U 距離" #: modules/csg/csg_shape.cpp -#, fuzzy msgid "Path Joined" -msgstr "隨機旋轉:" +msgstr "路徑接合" #: modules/enet/networked_multiplayer_enet.cpp #, fuzzy @@ -16826,9 +16423,8 @@ msgid "Use FBX" msgstr "" #: modules/gdnative/gdnative.cpp -#, fuzzy msgid "Config File" -msgstr "儲存檔案:" +msgstr "組態檔案" #: modules/gdnative/gdnative.cpp #, fuzzy @@ -16842,9 +16438,8 @@ msgid "Singleton" msgstr "骨架" #: modules/gdnative/gdnative.cpp -#, fuzzy msgid "Symbol Prefix" -msgstr "前置:" +msgstr "符號前綴" #: modules/gdnative/gdnative.cpp #, fuzzy @@ -16902,19 +16497,16 @@ msgid "Disabled GDNative Singleton" msgstr "禁用 GDNative 單例" #: modules/gdnative/gdnative_library_singleton_editor.cpp -#, fuzzy msgid "Libraries:" -msgstr "函式庫: " +msgstr "函式庫:" #: modules/gdnative/nativescript/nativescript.cpp -#, fuzzy msgid "Class Name" -msgstr "類別名稱:" +msgstr "類別名稱" #: modules/gdnative/nativescript/nativescript.cpp -#, fuzzy msgid "Script Class" -msgstr "腳本名稱:" +msgstr "腳本類別" #: modules/gdnative/nativescript/nativescript.cpp #, fuzzy @@ -16993,9 +16585,8 @@ msgid "Object can't provide a length." msgstr "物件無法提供長度。" #: modules/gdscript/language_server/gdscript_language_server.cpp -#, fuzzy msgid "Language Server" -msgstr "語言:" +msgstr "語言伺服器" #: modules/gdscript/language_server/gdscript_language_server.cpp #, fuzzy @@ -17024,9 +16615,8 @@ msgid "Buffer View" msgstr "後視圖" #: modules/gltf/gltf_accessor.cpp modules/gltf/gltf_buffer_view.cpp -#, fuzzy msgid "Byte Offset" -msgstr "網格偏移量:" +msgstr "字節偏移" #: modules/gltf/gltf_accessor.cpp #, fuzzy @@ -17039,9 +16629,8 @@ msgid "Normalized" msgstr "格式" #: modules/gltf/gltf_accessor.cpp -#, fuzzy msgid "Count" -msgstr "數量:" +msgstr "數量" #: modules/gltf/gltf_accessor.cpp scene/resources/visual_shader_nodes.cpp #, fuzzy @@ -17067,9 +16656,8 @@ msgid "Sparse Indices Byte Offset" msgstr "" #: modules/gltf/gltf_accessor.cpp -#, fuzzy msgid "Sparse Indices Component Type" -msgstr "正在解析多邊形..." +msgstr "稀疏頂點元件型別" #: modules/gltf/gltf_accessor.cpp msgid "Sparse Values Buffer View" @@ -17099,9 +16687,8 @@ msgid "Indices" msgstr "所有裝置" #: modules/gltf/gltf_camera.cpp -#, fuzzy msgid "FOV Size" -msgstr "大小:" +msgstr "FOV 大小" #: modules/gltf/gltf_camera.cpp msgid "Zfar" @@ -17148,9 +16735,8 @@ msgid "Blend Weights" msgstr "烘焙光照圖" #: modules/gltf/gltf_mesh.cpp -#, fuzzy msgid "Instance Materials" -msgstr "材質變更:" +msgstr "實體材質" #: modules/gltf/gltf_node.cpp scene/3d/skeleton.cpp #, fuzzy @@ -17238,9 +16824,8 @@ msgid "Gloss Factor" msgstr "" #: modules/gltf/gltf_spec_gloss.cpp -#, fuzzy msgid "Specular Factor" -msgstr "純量運算子。" +msgstr "鏡面反射係數" #: modules/gltf/gltf_spec_gloss.cpp msgid "Spec Gloss Img" @@ -17279,9 +16864,8 @@ msgid "Accessors" msgstr "" #: modules/gltf/gltf_state.cpp -#, fuzzy msgid "Scene Name" -msgstr "場景路徑:" +msgstr "場景名稱" #: modules/gltf/gltf_state.cpp #, fuzzy @@ -17308,9 +16892,8 @@ msgid "Lights" msgstr "燈光" #: modules/gltf/gltf_state.cpp -#, fuzzy msgid "Unique Animation Names" -msgstr "新增動畫名稱:" +msgstr "獨立動畫名稱" #: modules/gltf/gltf_state.cpp #, fuzzy @@ -17323,9 +16906,8 @@ msgid "Skeleton To Node" msgstr "選擇一個節點" #: modules/gltf/gltf_state.cpp -#, fuzzy msgid "Animations" -msgstr "動畫:" +msgstr "動畫" #: modules/gltf/gltf_texture.cpp #, fuzzy @@ -17570,9 +17152,8 @@ msgstr "" #: modules/minimp3/resource_importer_mp3.cpp #: modules/stb_vorbis/audio_stream_ogg_vorbis.cpp #: modules/stb_vorbis/resource_importer_ogg_vorbis.cpp -#, fuzzy msgid "Loop Offset" -msgstr "偏移:" +msgstr "循環偏移" #: modules/mobile_vr/mobile_vr_interface.cpp msgid "Eye Height" @@ -17691,9 +17272,8 @@ msgid "Seamless" msgstr "" #: modules/opensimplex/noise_texture.cpp -#, fuzzy msgid "As Normal Map" -msgstr "隨機縮放:" +msgstr "作為法線貼圖" #: modules/opensimplex/noise_texture.cpp msgid "Bump Strength" @@ -17704,9 +17284,8 @@ msgid "Noise" msgstr "" #: modules/opensimplex/noise_texture.cpp -#, fuzzy msgid "Noise Offset" -msgstr "網格偏移量:" +msgstr "噪聲偏移" #: modules/opensimplex/open_simplex_noise.cpp msgid "Octaves" @@ -17735,9 +17314,8 @@ msgid "Names" msgstr "名稱" #: modules/regex/regex.cpp -#, fuzzy msgid "Strings" -msgstr "設定:" +msgstr "字串" #: modules/upnp/upnp.cpp msgid "Discover Multicast If" @@ -17798,18 +17376,16 @@ msgid "" msgstr "回傳值需被指定為運算記憶體節點的第一個元素!請修正該節點。" #: modules/visual_script/visual_script.cpp -#, fuzzy msgid "Node returned an invalid sequence output:" -msgstr "節點回傳了一個無效的連續輸出: " +msgstr "節點回傳了一個無效的序列輸出:" #: modules/visual_script/visual_script.cpp msgid "Found sequence bit but not the node in the stack, report bug!" msgstr "發現了連續位元 (Sequance Bit) 但並非在堆疊中的節點,請回報該錯誤!" #: modules/visual_script/visual_script.cpp -#, fuzzy msgid "Stack overflow with stack depth:" -msgstr "堆疊深度的堆疊溢出: " +msgstr "堆疊深度的堆疊溢出:" #: modules/visual_script/visual_script.cpp #, fuzzy @@ -18176,18 +17752,16 @@ msgid "for (elem) in (input):" msgstr "" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Input type not iterable:" -msgstr "輸入型別非可迭代型別: " +msgstr "輸入型別非可迭代型別:" #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator became invalid" msgstr "迭代器已不可用" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Iterator became invalid:" -msgstr "迭代器已不可用: " +msgstr "迭代器無效:" #: modules/visual_script/visual_script_flow_control.cpp msgid "Sequence" @@ -18204,18 +17778,16 @@ msgid "Steps" msgstr "步長" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Switch" -msgstr "仰角:" +msgstr "切換" #: modules/visual_script/visual_script_flow_control.cpp msgid "'input' is:" msgstr "" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Type Cast" -msgstr "類別:" +msgstr "型別轉換" #: modules/visual_script/visual_script_flow_control.cpp msgid "Is %s?" @@ -18261,9 +17833,8 @@ msgid "Use Default Args" msgstr "重設為預設" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Validate" -msgstr "可使用的字元:" +msgstr "驗證" #: modules/visual_script/visual_script_func_nodes.cpp #, fuzzy @@ -18355,19 +17926,16 @@ msgstr "調整陣列大小" #: modules/visual_script/visual_script_nodes.cpp scene/resources/material.cpp #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Operator" -msgstr "疊加運算子。" +msgstr "運算子" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Invalid argument of type:" -msgstr ": 無效的引數型別: " +msgstr "無效的引數型別:" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Invalid arguments:" -msgstr ": 無效的引數: " +msgstr "無效的引數:" #: modules/visual_script/visual_script_nodes.cpp msgid "a if cond, else b" @@ -18379,14 +17947,12 @@ msgid "Var Name" msgstr "名稱" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "VariableGet not found in script:" -msgstr "腳本中未找到 VariableGet(取得變數): " +msgstr "腳本中未找到 VariableGet(取得變數):" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "VariableSet not found in script:" -msgstr "腳本中未找到 VariableSet(設定變數): " +msgstr "腳本中未找到 VariableSet(設定變數):" #: modules/visual_script/visual_script_nodes.cpp #, fuzzy @@ -18501,7 +18067,7 @@ msgstr "產生" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Wait" -msgstr "" +msgstr "等待" #: modules/visual_script/visual_script_yield_nodes.cpp #, fuzzy @@ -18606,9 +18172,8 @@ msgid "CA Chain" msgstr "清除 IK 鏈" #: modules/websocket/websocket_server.cpp -#, fuzzy msgid "Handshake Timeout" -msgstr "逾時。" +msgstr "Handshake 逾時" #: modules/webxr/webxr_interface.cpp #, fuzzy @@ -18616,14 +18181,12 @@ msgid "Session Mode" msgstr "區域模式" #: modules/webxr/webxr_interface.cpp -#, fuzzy msgid "Required Features" -msgstr "主要功能:" +msgstr "必要特性" #: modules/webxr/webxr_interface.cpp -#, fuzzy msgid "Optional Features" -msgstr "主要功能:" +msgstr "可選特性" #: modules/webxr/webxr_interface.cpp msgid "Requested Reference Space Types" @@ -18728,9 +18291,8 @@ msgid "Export Format" msgstr "匯出路徑" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Min SDK" -msgstr "輪廓尺寸:" +msgstr "最小 SDK" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -18785,9 +18347,8 @@ msgid "Package" msgstr "正在打包" #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp -#, fuzzy msgid "Unique Name" -msgstr "節點名稱:" +msgstr "獨立名稱" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -18795,9 +18356,8 @@ msgid "Signed" msgstr "訊號" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Classify As Game" -msgstr "類別名稱:" +msgstr "分類為遊戲" #: platform/android/export/export_plugin.cpp msgid "Retain Data On Uninstall" @@ -18809,9 +18369,8 @@ msgid "Exclude From Recents" msgstr "刪除節點" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Graphics" -msgstr "網格偏移量:" +msgstr "圖形" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -18881,9 +18440,8 @@ msgid "Command Line" msgstr "社群" #: platform/android/export/export_plugin.cpp platform/uwp/export/export.cpp -#, fuzzy msgid "Extra Args" -msgstr "額外呼叫引數:" +msgstr "額外引數" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -19080,14 +18638,12 @@ msgid "Code Signing" msgstr "訊號" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "'apksigner' could not be found. Please check that the command is available " "in the Android SDK build-tools directory. The resulting %s is unsigned." msgstr "" -"找不到「apksigner'」。\n" -"請確認此命令可用於Android SDK build-tools的目錄。\n" -"%s 未簽署。" +"找不到「apksigner」。請檢查 Android SDK 的 build-tools 資料夾中是否有此指令。" +"「%s」未簽署。" #: platform/android/export/export_plugin.cpp msgid "Signing debug %s..." @@ -19102,9 +18658,8 @@ msgid "Could not find keystore, unable to export." msgstr "找不到金鑰儲存區,無法匯出。" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not start apksigner executable." -msgstr "無法啟動子處理程序!" +msgstr "無法啟動 apksigner 可執行檔案。" #: platform/android/export/export_plugin.cpp msgid "'apksigner' returned with error #%d" @@ -19135,9 +18690,8 @@ msgid "Invalid filename! Android APK requires the *.apk extension." msgstr "無效的檔案名稱!Android APK 必須要有 *.apk 副檔名。" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Unsupported export format!" -msgstr "不支援的匯出格式!\n" +msgstr "不支援的匯出格式!" #: platform/android/export/export_plugin.cpp msgid "" @@ -19147,26 +18701,21 @@ msgstr "" "嘗試自自定建置樣板進行建置,但無版本資訊可用。請自「專案」選單中重新安裝。" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Android build version mismatch: Template installed: %s, Godot version: %s. " "Please reinstall Android build template from 'Project' menu." msgstr "" -"Android 建置版本不符合:\n" -" 已安裝的樣板:%s\n" -" Godot 版本:%s\n" -"請自「專案」目錄中重新安裝 Android 建置樣板。" +"Android 建構版本不匹配:已安裝模板: %s,Godot 版本:%s。請從專案選單重新安" +"裝 Android 構建模板。" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Unable to overwrite res://android/build/res/*.xml files with project name." -msgstr "無法以專案名稱覆蓋檔案res://android/build/res/*.xml" +msgstr "無法以專案名稱覆蓋 res://android/build/res/*.xml 檔案。" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files to gradle project." -msgstr "無法匯出專案檔至Gradle專案。\n" +msgstr "無法匯出專案檔至 Gradle 專案。" #: platform/android/export/export_plugin.cpp msgid "Could not write expansion package file!" @@ -19177,13 +18726,12 @@ msgid "Building Android Project (gradle)" msgstr "建置 Android 專案(Gradle)" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Building of Android project failed, check output for the error. " "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" -"建置 Android 專案失敗,請檢查輸出以確認錯誤。\n" -"也可以瀏覽 docs.godotengine.org 以瀏覽 Android 建置說明文件。" +"建置 Android 專案失敗,請檢查輸出以確認錯誤。也可以瀏覽 docs.godotengine.org " +"檢視 Android 建置說明文件。" #: platform/android/export/export_plugin.cpp msgid "Moving output" @@ -19196,39 +18744,33 @@ msgid "" msgstr "無法複製並更名匯出的檔案,請於 Gradle 專案資料夾內確認輸出。" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Package not found: \"%s\"." -msgstr "未找到套件:「%s」" +msgstr "未找到套件:「%s」。" #: platform/android/export/export_plugin.cpp msgid "Creating APK..." msgstr "正在建立APK……" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not find template APK to export: \"%s\"." -msgstr "" -"找不到樣板APK以匯出:\n" -"%s" +msgstr "找不到 APK 模板以匯出:「%s」。" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "" "Missing libraries in the export template for the selected architectures: %s. " "Please build a template with all required libraries, or uncheck the missing " "architectures in the export preset." msgstr "" -"遺失所選取架構(%s)的匯出樣板函式庫。\n" -"請使用所有必要的函式庫建構樣板,或在匯出預設設定中取消勾選遺失的架構。" +"遺失所選架構(%s)的匯出模板函式庫。請使用所有必要的函式庫建構模板,或在匯出" +"預設設定中取消勾選遺失的架構。" #: platform/android/export/export_plugin.cpp msgid "Adding files..." msgstr "正在加入檔案 %s……" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files." -msgstr "無法匯出專案檔案" +msgstr "無法匯出專案檔。" #: platform/android/export/export_plugin.cpp msgid "Aligning APK..." @@ -19324,9 +18866,8 @@ msgid "Code Sign Identity Release" msgstr "" #: platform/iphone/export/export.cpp -#, fuzzy msgid "Export Method Release" -msgstr "匯出模式:" +msgstr "發行匯出模式" #: platform/iphone/export/export.cpp msgid "Targeted Device Family" @@ -19337,9 +18878,8 @@ msgid "Info" msgstr "" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Identifier" -msgstr "無效的識別符:" +msgstr "標識符" #: platform/iphone/export/export.cpp platform/osx/export/export.cpp #, fuzzy @@ -19363,14 +18903,12 @@ msgid "Capabilities" msgstr "貼上屬性" #: platform/iphone/export/export.cpp -#, fuzzy msgid "Access Wi-Fi" -msgstr "成功!" +msgstr "存取 Wi-Fi" #: platform/iphone/export/export.cpp -#, fuzzy msgid "Push Notifications" -msgstr "隨機旋轉:" +msgstr "推送通知" #: platform/iphone/export/export.cpp #, fuzzy @@ -19502,19 +19040,16 @@ msgid "Run exported HTML in the system's default browser." msgstr "在系統的預設瀏覽器中執行已匯出的 HTML。" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not open template for export: \"%s\"." -msgstr "無法開啟樣板以輸出:" +msgstr "無法開啟模板以匯出:「%s」。" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Invalid export template: \"%s\"." -msgstr "無效的輸出樣板:" +msgstr "無效的匯出模板:「%s」。" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not write file: \"%s\"." -msgstr "無法寫入檔案:" +msgstr "無法寫入檔案:「%s」。" #: platform/javascript/export/export.cpp platform/osx/export/export.cpp #, fuzzy @@ -19522,18 +19057,16 @@ msgid "Icon Creation" msgstr "設定外邊距" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not read file: \"%s\"." -msgstr "無法讀取檔案:" +msgstr "無法讀取檔案:「%s」。" #: platform/javascript/export/export.cpp msgid "PWA" msgstr "" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Variant" -msgstr "分隔:" +msgstr "變體" #: platform/javascript/export/export.cpp #, fuzzy @@ -19605,19 +19138,16 @@ msgid "Icon 512 X 512" msgstr "" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not read HTML shell: \"%s\"." -msgstr "無法讀取HTML殼層:" +msgstr "無法讀取 HTML 殼層:「%s」。" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not create HTTP server directory: %s." -msgstr "無法建立HTTP伺服器目錄:" +msgstr "無法建立 HTTP 伺服器目錄:%s。" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Error starting HTTP server: %d." -msgstr "啟動HTTP伺服器時發生錯誤:" +msgstr "啟動 HTTP 伺服器時發生錯誤:%d。" #: platform/javascript/export/export.cpp msgid "Web" @@ -19721,9 +19251,8 @@ msgid "Unknown object type." msgstr "" #: platform/osx/export/export.cpp -#, fuzzy msgid "App Category" -msgstr "分類:" +msgstr "App 分類" #: platform/osx/export/export.cpp msgid "High Res" @@ -19899,9 +19428,8 @@ msgid "Custom Options" msgstr "匯流排選項" #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization" -msgstr "本地化" +msgstr "公證" #: platform/osx/export/export.cpp msgid "Apple ID Name" @@ -19916,19 +19444,16 @@ msgid "Apple Team ID" msgstr "" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open icon file \"%s\"." -msgstr "無法匯出專案檔案" +msgstr "無法開啟符號檔 「%s」。" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start xcrun executable." -msgstr "無法啟動子處理程序!" +msgstr "無法啟動 xcrun 可執行檔案。" #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization failed." -msgstr "本地化" +msgstr "公證失敗。" #: platform/osx/export/export.cpp msgid "Notarization request UUID: \"%s\"" @@ -19981,9 +19506,8 @@ msgid "No identity found." msgstr "未發現任何圖示。" #: platform/osx/export/export.cpp -#, fuzzy msgid "Cannot sign file %s." -msgstr "無法保存檔案:%s" +msgstr "無法簽署檔案 %s。" #: platform/osx/export/export.cpp msgid "Relative symlinks are not supported, exported \"%s\" might be broken!" @@ -19995,9 +19519,8 @@ msgid "DMG Creation" msgstr "方向" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not start hdiutil executable." -msgstr "無法啟動子處理程序!" +msgstr "無法啟動 hdiutil 可執行檔案。" #: platform/osx/export/export.cpp msgid "`hdiutil create` failed - file exists." @@ -20013,16 +19536,12 @@ msgid "Creating app bundle" msgstr "正在建立縮圖" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export: \"%s\"." -msgstr "" -"找不到樣板APK以匯出:\n" -"%s" +msgstr "找不到 app 模板以匯出:「%s」。" #: platform/osx/export/export.cpp -#, fuzzy msgid "Invalid export format." -msgstr "無效的輸出樣板:" +msgstr "無效的匯出格式。" #: platform/osx/export/export.cpp msgid "" @@ -20078,9 +19597,8 @@ msgid "ZIP Creation" msgstr "專案" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not open file to read from path \"%s\"." -msgstr "無法匯出專案檔至Gradle專案。\n" +msgstr "無法打開位於「%s」的檔案進行讀取。" #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -20207,23 +19725,20 @@ msgid "Display Name" msgstr "全部顯示" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Short Name" -msgstr "腳本名稱:" +msgstr "短名稱" #: platform/uwp/export/export.cpp msgid "Publisher" msgstr "" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Publisher Display Name" -msgstr "無效的套件發佈者顯示名稱。" +msgstr "發布者顯示名稱" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Product GUID" -msgstr "無效的產品 GUID。" +msgstr "產品 GUID" #: platform/uwp/export/export.cpp #, fuzzy @@ -20236,9 +19751,8 @@ msgid "Signing" msgstr "訊號" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Certificate" -msgstr "頂點:" +msgstr "憑證" #: platform/uwp/export/export.cpp #, fuzzy @@ -20306,9 +19820,8 @@ msgid "Wide 310 X 150 Logo" msgstr "" #: platform/uwp/export/export.cpp -#, fuzzy msgid "Splash Screen" -msgstr "繪製呼叫:" +msgstr "啟動畫面" #: platform/uwp/export/export.cpp #, fuzzy @@ -20398,9 +19911,8 @@ msgid "Debug Algorithm" msgstr "除錯工具" #: platform/windows/export/export.cpp -#, fuzzy msgid "Failed to rename temporary file \"%s\"." -msgstr "無法移除臨時檔案:" +msgstr "無法重新命名模板檔案 「%s」。" #: platform/windows/export/export.cpp msgid "Identity Type" @@ -20426,19 +19938,16 @@ msgid "File Version" msgstr "版本" #: platform/windows/export/export.cpp -#, fuzzy msgid "Product Version" -msgstr "無效的產品 GUID。" +msgstr "產品版本" #: platform/windows/export/export.cpp -#, fuzzy msgid "Company Name" -msgstr "節點名稱:" +msgstr "公司名稱" #: platform/windows/export/export.cpp -#, fuzzy msgid "Product Name" -msgstr "專案名稱:" +msgstr "產品名稱" #: platform/windows/export/export.cpp #, fuzzy @@ -20450,9 +19959,8 @@ msgid "Trademarks" msgstr "" #: platform/windows/export/export.cpp -#, fuzzy msgid "Resources Modification" -msgstr "隨機旋轉:" +msgstr "資源修改" #: platform/windows/export/export.cpp #, fuzzy @@ -20487,9 +19995,8 @@ msgid "Could not find osslsigncode executable at \"%s\"." msgstr "找不到金鑰儲存區,無法匯出。" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid identity type." -msgstr "無效的識別符:" +msgstr "身份類型無效。" #: platform/windows/export/export.cpp #, fuzzy @@ -20509,9 +20016,8 @@ msgid "" msgstr "" #: platform/windows/export/export.cpp -#, fuzzy msgid "Failed to remove temporary file \"%s\"." -msgstr "無法移除臨時檔案:" +msgstr "無法移除模板檔案 「%s」。" #: platform/windows/export/export.cpp msgid "" @@ -20520,19 +20026,16 @@ msgid "" msgstr "" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid icon path:" -msgstr "無效的路徑。" +msgstr "無效符號路徑:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid file version:" -msgstr "無效的副檔名。" +msgstr "無效的檔案版本:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid product version:" -msgstr "無效的產品 GUID。" +msgstr "無效的產品版本:" #: platform/windows/export/export.cpp msgid "Windows executables cannot be >= 4 GiB." @@ -20701,9 +20204,8 @@ msgstr "" #: scene/3d/light.cpp scene/3d/reflection_probe.cpp #: scene/3d/visibility_notifier.cpp scene/3d/visual_instance.cpp #: scene/resources/material.cpp -#, fuzzy msgid "Max Distance" -msgstr "選擇距離:" +msgstr "最大距離" #: scene/2d/audio_stream_player_2d.cpp scene/3d/light.cpp #, fuzzy @@ -20731,15 +20233,13 @@ msgid "Anchor Mode" msgstr "圖示模式" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Rotating" -msgstr "旋轉步長:" +msgstr "旋轉" #: scene/2d/camera_2d.cpp scene/2d/listener_2d.cpp scene/3d/camera.cpp #: scene/3d/listener.cpp scene/animation/animation_blend_tree.cpp -#, fuzzy msgid "Current" -msgstr "目前:" +msgstr "目前" #: scene/2d/camera_2d.cpp scene/gui/graph_edit.cpp #, fuzzy @@ -20821,14 +20321,12 @@ msgid "Drag Margin" msgstr "設定外邊距" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Draw Screen" -msgstr "繪製呼叫:" +msgstr "繪製螢幕" #: scene/2d/camera_2d.cpp -#, fuzzy msgid "Draw Limits" -msgstr "繪製呼叫:" +msgstr "繪製限制" #: scene/2d/camera_2d.cpp #, fuzzy @@ -21005,9 +20503,8 @@ msgstr "" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp -#, fuzzy msgid "Emitting" -msgstr "設定:" +msgstr "發射" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp @@ -21033,9 +20530,8 @@ msgstr "" #: scene/2d/cpu_particles_2d.cpp scene/2d/particles_2d.cpp #: scene/3d/cpu_particles.cpp scene/3d/particles.cpp -#, fuzzy msgid "Randomness" -msgstr "隨機重新開始(秒):" +msgstr "隨機性" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21077,9 +20573,8 @@ msgstr "發射遮罩" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp -#, fuzzy msgid "Sphere Radius" -msgstr "發射源: " +msgstr "球體半徑" #: scene/2d/cpu_particles_2d.cpp #, fuzzy @@ -21147,9 +20642,8 @@ msgstr "線性" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp -#, fuzzy msgid "Accel" -msgstr "成功!" +msgstr "加速度" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21208,9 +20702,8 @@ msgid "Angle Curve" msgstr "關閉曲線" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp -#, fuzzy msgid "Scale Amount" -msgstr "數量:" +msgstr "縮放量" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp msgid "Scale Amount Random" @@ -21234,27 +20727,23 @@ msgstr "" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp -#, fuzzy msgid "Hue Variation" -msgstr "分隔:" +msgstr "色相變化" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp -#, fuzzy msgid "Variation" -msgstr "分隔:" +msgstr "變化" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp -#, fuzzy msgid "Variation Random" -msgstr "分隔:" +msgstr "隨機變化" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp -#, fuzzy msgid "Variation Curve" -msgstr "分隔:" +msgstr "變化曲線" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21270,9 +20759,8 @@ msgstr "拆分控制點" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp -#, fuzzy msgid "Offset Random" -msgstr "偏移:" +msgstr "隨機偏移" #: scene/2d/cpu_particles_2d.cpp scene/3d/cpu_particles.cpp #: scene/resources/particles_material.cpp @@ -21465,14 +20953,12 @@ msgid "Begin Cap Mode" msgstr "區域模式" #: scene/2d/line_2d.cpp -#, fuzzy msgid "End Cap Mode" -msgstr "吸附模式:" +msgstr "尾端模式" #: scene/2d/line_2d.cpp scene/2d/polygon_2d.cpp scene/resources/style_box.cpp -#, fuzzy msgid "Border" -msgstr "重新命名資料夾:" +msgstr "邊框" #: scene/2d/line_2d.cpp msgid "Sharp Limit" @@ -21499,9 +20985,8 @@ msgid "Cell Size" msgstr "" #: scene/2d/navigation_2d.cpp scene/3d/navigation.cpp -#, fuzzy msgid "Edge Connection Margin" -msgstr "編輯連接內容:" +msgstr "邊界連接邊距" #: scene/2d/navigation_2d.cpp msgid "" @@ -21516,18 +21001,16 @@ msgid "Pathfinding" msgstr "綁定" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy 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 -#, fuzzy msgid "Path Max Distance" -msgstr "選擇距離:" +msgstr "路徑最大距離" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp #, fuzzy @@ -21553,9 +21036,8 @@ msgid "Time Horizon" msgstr "水平翻轉" #: scene/2d/navigation_agent_2d.cpp scene/3d/navigation_agent.cpp -#, fuzzy msgid "Max Speed" -msgstr "速度:" +msgstr "最大速度" #: scene/2d/navigation_agent_2d.cpp msgid "" @@ -21597,24 +21079,21 @@ msgstr "行程" #: scene/2d/node_2d.cpp scene/2d/polygon_2d.cpp scene/3d/spatial.cpp #: scene/main/canvas_layer.cpp -#, fuzzy msgid "Rotation Degrees" -msgstr "旋轉 %s 度。" +msgstr "旋轉角度" -#: scene/2d/node_2d.cpp +#: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy msgid "Global Rotation" msgstr "常數" #: scene/2d/node_2d.cpp -#, fuzzy msgid "Global Rotation Degrees" -msgstr "旋轉 %s 度。" +msgstr "全域旋轉角度" #: scene/2d/node_2d.cpp -#, fuzzy msgid "Global Scale" -msgstr "隨機縮放:" +msgstr "全域縮放" #: scene/2d/node_2d.cpp scene/3d/spatial.cpp #, fuzzy @@ -21632,9 +21111,8 @@ msgid "Scroll" msgstr "" #: scene/2d/parallax_background.cpp -#, fuzzy msgid "Base Offset" -msgstr "偏移:" +msgstr "基礎偏移" #: scene/2d/parallax_background.cpp #, fuzzy @@ -21724,19 +21202,16 @@ msgid "PathFollow2D only works when set as a child of a Path2D node." msgstr "PathFollow2D 僅在其為 Path2D 的子節點時有效。" #: scene/2d/path_2d.cpp scene/3d/path.cpp -#, fuzzy msgid "Unit Offset" -msgstr "網格偏移量:" +msgstr "單位偏移" #: scene/2d/path_2d.cpp scene/3d/camera.cpp scene/3d/path.cpp -#, fuzzy msgid "H Offset" -msgstr "偏移:" +msgstr "H 偏移" #: scene/2d/path_2d.cpp scene/3d/camera.cpp scene/3d/path.cpp -#, fuzzy msgid "V Offset" -msgstr "偏移:" +msgstr "V 偏移" #: scene/2d/path_2d.cpp scene/3d/path.cpp msgid "Cubic Interp" @@ -21797,9 +21272,8 @@ msgid "Mass" msgstr "" #: scene/2d/physics_body_2d.cpp -#, fuzzy msgid "Inertia" -msgstr "垂直:" +msgstr "慣性" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #, fuzzy @@ -21836,9 +21310,8 @@ msgid "Sleeping" msgstr "智慧型吸附" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Can Sleep" -msgstr "速度:" +msgstr "可以睡眠" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp msgid "Damp" @@ -21862,9 +21335,8 @@ msgid "Safe Margin" msgstr "設定外邊距" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Sync To Physics" -msgstr " (物理)" +msgstr "與物理同步" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #, fuzzy @@ -21884,9 +21356,8 @@ msgid "Normal" msgstr "格式" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Remainder" -msgstr "算繪引擎:" +msgstr "餘量" #: scene/2d/physics_body_2d.cpp scene/3d/physics_body.cpp #, fuzzy @@ -22076,9 +21547,8 @@ msgid "Compatibility Mode" msgstr "優先模式" #: scene/2d/tile_map.cpp -#, fuzzy msgid "Centered Textures" -msgstr "主要功能:" +msgstr "紋理居中" #: scene/2d/tile_map.cpp msgid "Cell Clip UV" @@ -22197,9 +21667,8 @@ msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin 必須有一個 ARVRCamera 子節點。" #: scene/3d/arvr_nodes.cpp servers/arvr_server.cpp -#, fuzzy msgid "World Scale" -msgstr "隨機縮放:" +msgstr "世界縮放" #: scene/3d/audio_stream_player_3d.cpp #, fuzzy @@ -22228,9 +21697,8 @@ msgid "Emission Angle" msgstr "發射色彩" #: scene/3d/audio_stream_player_3d.cpp -#, fuzzy msgid "Degrees" -msgstr "旋轉 %s 度。" +msgstr "角度" #: scene/3d/audio_stream_player_3d.cpp #, fuzzy @@ -22312,9 +21780,8 @@ msgid "Bounce Indirect Energy" msgstr "" #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Use Denoiser" -msgstr "篩選:" +msgstr "使用降噪器" #: scene/3d/baked_lightmap.cpp scene/resources/texture.cpp msgid "Use HDR" @@ -22341,9 +21808,8 @@ msgid "Generate" msgstr "一般" #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Max Size" -msgstr "大小:" +msgstr "最大大小" #: scene/3d/baked_lightmap.cpp #, fuzzy @@ -22351,9 +21817,8 @@ msgid "Custom Sky" msgstr "剪下節點" #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Custom Sky Rotation Degrees" -msgstr "旋轉 %s 度。" +msgstr "自定義天空旋轉角度" #: scene/3d/baked_lightmap.cpp scene/3d/ray_cast.cpp #, fuzzy @@ -22385,9 +21850,8 @@ msgid "Light Data" msgstr "包含數據" #: scene/3d/bone_attachment.cpp scene/3d/physics_body.cpp -#, fuzzy msgid "Bone Name" -msgstr "節點名稱:" +msgstr "骨骼名稱" #: scene/3d/camera.cpp msgid "Keep Aspect" @@ -22412,9 +21876,8 @@ msgid "FOV" msgstr "" #: scene/3d/camera.cpp -#, fuzzy msgid "Frustum Offset" -msgstr "網格偏移量:" +msgstr "視錐偏移" #: scene/3d/camera.cpp #, fuzzy @@ -22666,9 +22129,8 @@ msgid "Font" msgstr "字體" #: scene/3d/label_3d.cpp scene/resources/primitive_meshes.cpp -#, fuzzy msgid "Horizontal Alignment" -msgstr "水平:" +msgstr "水平對齊" #: scene/3d/label_3d.cpp #, fuzzy @@ -22732,9 +22194,8 @@ msgid "Split 3" msgstr "拆分路徑" #: scene/3d/light.cpp -#, fuzzy msgid "Blend Splits" -msgstr "混合時間:" +msgstr "混合拆分" #: scene/3d/light.cpp #, fuzzy @@ -22778,9 +22239,8 @@ msgid "Software Skinning" msgstr "" #: scene/3d/mesh_instance.cpp -#, fuzzy msgid "Transform Normals" -msgstr "已中止變換。" +msgstr "變換法線" #: scene/3d/navigation.cpp msgid "" @@ -22869,14 +22329,12 @@ msgid "Visibility AABB" msgstr "切換可見/隱藏" #: scene/3d/particles.cpp -#, fuzzy msgid "Draw Passes" -msgstr "繪製呼叫:" +msgstr "繪製階段" #: scene/3d/particles.cpp -#, fuzzy msgid "Passes" -msgstr "繪製呼叫:" +msgstr "階段" #: scene/3d/path.cpp msgid "PathFollow only works when set as a child of a Path node." @@ -22972,9 +22430,8 @@ msgstr "" #: scene/3d/physics_body.cpp scene/3d/physics_joint.cpp #: scene/3d/vehicle_body.cpp -#, fuzzy msgid "Relaxation" -msgstr "分隔:" +msgstr "鬆弛" #: scene/3d/physics_body.cpp #, fuzzy @@ -22987,9 +22444,8 @@ msgid "Angular Limit Upper" msgstr "線性" #: scene/3d/physics_body.cpp -#, fuzzy msgid "Angular Limit Lower" -msgstr "最大角度誤差:" +msgstr "角度下限" #: scene/3d/physics_body.cpp #, fuzzy @@ -23120,9 +22576,8 @@ msgid "Angular Equilibrium Point" msgstr "" #: scene/3d/physics_body.cpp -#, fuzzy msgid "Body Offset" -msgstr "偏移:" +msgstr "形體偏移" #: scene/3d/physics_joint.cpp msgid "Node A and Node B must be PhysicsBodies" @@ -23154,9 +22609,8 @@ msgid "Exclude Nodes" msgstr "刪除節點" #: scene/3d/physics_joint.cpp -#, fuzzy msgid "Params" -msgstr "已更改參數:" +msgstr "引數" #: scene/3d/physics_joint.cpp msgid "Angular Limit" @@ -23182,9 +22636,8 @@ msgid "Target Velocity" msgstr "向右環視" #: scene/3d/physics_joint.cpp -#, fuzzy msgid "Max Impulse" -msgstr "速度:" +msgstr "最大衝量" #: scene/3d/physics_joint.cpp #, fuzzy @@ -23192,14 +22645,12 @@ msgid "Linear Limit" msgstr "線性" #: scene/3d/physics_joint.cpp -#, fuzzy msgid "Upper Distance" -msgstr "選擇距離:" +msgstr "距離上限" #: scene/3d/physics_joint.cpp -#, fuzzy msgid "Lower Distance" -msgstr "選擇距離:" +msgstr "距離下限" #: scene/3d/physics_joint.cpp #, fuzzy @@ -23232,9 +22683,8 @@ msgid "Angular Motion" msgstr "動畫" #: scene/3d/physics_joint.cpp -#, fuzzy msgid "Angular Ortho" -msgstr "最大角度誤差:" +msgstr "角度正交" #: scene/3d/physics_joint.cpp #, fuzzy @@ -23247,9 +22697,8 @@ msgid "Linear Motor X" msgstr "初始化" #: scene/3d/physics_joint.cpp -#, fuzzy msgid "Force Limit" -msgstr "繪製呼叫:" +msgstr "力度限制" #: scene/3d/physics_joint.cpp #, fuzzy @@ -23347,9 +22796,8 @@ msgid "Two Way" msgstr "" #: scene/3d/portal.cpp -#, fuzzy msgid "Linked Room" -msgstr "即時編輯根節點:" +msgstr "連接房間" #: scene/3d/portal.cpp #, fuzzy @@ -23366,9 +22814,8 @@ msgid "Dispatch Mode" msgstr "" #: scene/3d/proximity_group.cpp -#, fuzzy msgid "Grid Radius" -msgstr "半徑:" +msgstr "網格半徑" #: scene/3d/ray_cast.cpp #, fuzzy @@ -23385,9 +22832,8 @@ msgid "Update Mode" msgstr "旋轉模式" #: scene/3d/reflection_probe.cpp -#, fuzzy msgid "Origin Offset" -msgstr "網格偏移量:" +msgstr "原點偏移" #: scene/3d/reflection_probe.cpp #, fuzzy @@ -23649,14 +23095,12 @@ msgid "Parent Collision Ignore" msgstr "建立碰撞多邊形" #: scene/3d/soft_body.cpp -#, fuzzy msgid "Simulation Precision" -msgstr "無效的動畫樹。" +msgstr "模擬精度" #: scene/3d/soft_body.cpp -#, fuzzy msgid "Total Mass" -msgstr "總計:" +msgstr "總質量" #: scene/3d/soft_body.cpp msgid "Linear Stiffness" @@ -23700,13 +23144,17 @@ msgstr "" "請改為修改其子節點的碰撞形狀之大小。" #: scene/3d/spatial.cpp +#, fuzzy +msgid "Global Translation" +msgstr "保持全域變換" + +#: scene/3d/spatial.cpp msgid "Matrix" msgstr "" #: scene/3d/spatial.cpp -#, fuzzy msgid "Gizmo" -msgstr "Gizmo" +msgstr "控制器" #: scene/3d/spatial_velocity_tracker.cpp #, fuzzy @@ -23765,18 +23213,16 @@ msgid "VehicleBody Motion" msgstr "" #: scene/3d/vehicle_body.cpp -#, fuzzy msgid "Use As Traction" -msgstr "分隔:" +msgstr "用作牽引" #: scene/3d/vehicle_body.cpp msgid "Use As Steering" msgstr "" #: scene/3d/vehicle_body.cpp -#, fuzzy msgid "Wheel" -msgstr "滾輪向上。" +msgstr "車輪" #: scene/3d/vehicle_body.cpp msgid "Roll Influence" @@ -23812,9 +23258,8 @@ msgid "Material Override" msgstr "複寫" #: scene/3d/visual_instance.cpp -#, fuzzy msgid "Material Overlay" -msgstr "材質變更:" +msgstr "材質覆蓋層" #: scene/3d/visual_instance.cpp #, fuzzy @@ -23822,9 +23267,8 @@ msgid "Cast Shadow" msgstr "建立著色器節點" #: scene/3d/visual_instance.cpp -#, fuzzy msgid "Extra Cull Margin" -msgstr "額外呼叫引數:" +msgstr "額外剔除邊距" #: scene/3d/visual_instance.cpp #, fuzzy @@ -23846,9 +23290,8 @@ msgstr "" #: scene/3d/visual_instance.cpp scene/animation/skeleton_ik.cpp #: scene/resources/material.cpp -#, fuzzy msgid "Min Distance" -msgstr "選擇距離:" +msgstr "最小距離" #: scene/3d/visual_instance.cpp msgid "Min Hysteresis" @@ -24349,18 +23792,16 @@ msgid "Mouse" msgstr "" #: scene/gui/control.cpp -#, fuzzy msgid "Default Cursor Shape" -msgstr "載入預設匯流排配置。" +msgstr "預設游標形狀" #: scene/gui/control.cpp msgid "Pass On Modal Close Click" msgstr "" #: scene/gui/control.cpp -#, fuzzy msgid "Size Flags" -msgstr "大小: " +msgstr "大小 Flag:" #: scene/gui/control.cpp #, fuzzy @@ -24726,9 +24167,8 @@ msgid "Max Value" msgstr "數值" #: scene/gui/range.cpp -#, fuzzy msgid "Page" -msgstr "頁: " +msgstr "頁" #: scene/gui/range.cpp #, fuzzy @@ -24916,9 +24356,8 @@ msgid "All Tabs In Front" msgstr "" #: scene/gui/tab_container.cpp scene/gui/tabs.cpp -#, fuzzy msgid "Drag To Rearrange Enabled" -msgstr "拖放以重新排列。" +msgstr "啟用拖移重新排列" #: scene/gui/tab_container.cpp msgid "Use Hidden Tabs For Min Size" @@ -25055,9 +24494,8 @@ msgid "Initial Angle" msgstr "初始化" #: scene/gui/texture_progress.cpp -#, fuzzy msgid "Fill Degrees" -msgstr "旋轉 %s 度。" +msgstr "填充角度" #: scene/gui/texture_progress.cpp scene/resources/primitive_meshes.cpp #, fuzzy @@ -25164,9 +24602,8 @@ msgid "Max Redirects" msgstr "" #: scene/main/http_request.cpp -#, fuzzy msgid "Timeout" -msgstr "逾時。" +msgstr "逾時" #: scene/main/node.cpp msgid "" @@ -25294,9 +24731,8 @@ msgid "Draw 2D Outlines" msgstr "建立輪廓" #: scene/main/scene_tree.cpp servers/visual_server.cpp -#, fuzzy msgid "Reflections" -msgstr "方向" +msgstr "反射" #: scene/main/scene_tree.cpp #, fuzzy @@ -25933,9 +25369,8 @@ msgid "Labeled Separator Right" msgstr "帶名稱的分隔線" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Font Separator" -msgstr "色彩運算子。" +msgstr "分隔線字體" #: scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -25943,9 +25378,8 @@ msgid "Font Color Accel" msgstr "重新命名顏色項目" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Font Color Separator" -msgstr "色彩運算子。" +msgstr "分隔線字體顏色" #: scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -26233,9 +25667,8 @@ msgid "Label Width" msgstr "左延展" #: scene/resources/default_theme/default_theme.cpp -#, fuzzy msgid "Screen Picker" -msgstr "濾色運算子。" +msgstr "屏幕取色器" #: scene/resources/default_theme/default_theme.cpp #, fuzzy @@ -26450,9 +25883,8 @@ msgid "Sky Rotation" msgstr "旋轉步長:" #: scene/resources/environment.cpp -#, fuzzy msgid "Sky Rotation Degrees" -msgstr "旋轉 %s 度。" +msgstr "天空旋轉角度" #: scene/resources/environment.cpp msgid "Canvas Max Layer" @@ -26632,9 +26064,8 @@ msgid "Distance" msgstr "選擇距離:" #: scene/resources/environment.cpp -#, fuzzy msgid "Transition" -msgstr "轉場: " +msgstr "轉場效果" #: scene/resources/environment.cpp msgid "DOF Near Blur" @@ -26717,9 +26148,8 @@ msgid "Saturation" msgstr "分隔:" #: scene/resources/environment.cpp -#, fuzzy msgid "Color Correction" -msgstr "顏色函式。" +msgstr "顏色校正" #: scene/resources/font.cpp #, fuzzy @@ -26801,9 +26231,8 @@ msgid "Disable Ambient Light" msgstr "向右縮排" #: scene/resources/material.cpp -#, fuzzy msgid "Ensure Correct Normals" -msgstr "已中止變換。" +msgstr "確保正確法線" #: scene/resources/material.cpp msgid "Albedo Tex MSDF" @@ -26970,9 +26399,8 @@ msgid "Subsurf Scatter" msgstr "" #: scene/resources/material.cpp -#, fuzzy msgid "Transmission" -msgstr "轉場: " +msgstr "轉場" #: scene/resources/material.cpp #, fuzzy @@ -27040,14 +26468,12 @@ msgid "NavMesh Transform" msgstr "清除變換" #: scene/resources/multimesh.cpp -#, fuzzy msgid "Color Format" -msgstr "色彩運算子。" +msgstr "顏色格式" #: scene/resources/multimesh.cpp -#, fuzzy msgid "Transform Format" -msgstr "已中止變換。" +msgstr "變換格式" #: scene/resources/multimesh.cpp msgid "Custom Data Format" @@ -27063,9 +26489,8 @@ msgid "Visible Instance Count" msgstr "" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Sampling" -msgstr "縮放: " +msgstr "縮放:" #: scene/resources/navigation_mesh.cpp #, fuzzy @@ -27073,9 +26498,8 @@ msgid "Partition Type" msgstr "設定變數型別" #: scene/resources/navigation_mesh.cpp -#, fuzzy msgid "Parsed Geometry Type" -msgstr "正在解析多邊形..." +msgstr "解析幾何體類型" #: scene/resources/navigation_mesh.cpp msgid "Source Geometry Mode" @@ -27209,9 +26633,8 @@ msgid "Point Texture" msgstr "發射點:" #: scene/resources/particles_material.cpp -#, fuzzy msgid "Normal Texture" -msgstr "發射源: " +msgstr "法線紋理貼圖" #: scene/resources/particles_material.cpp #, fuzzy @@ -27415,9 +26838,8 @@ msgid "Base Texture" msgstr "移除紋理" #: scene/resources/texture.cpp -#, fuzzy msgid "Image Size" -msgstr "頁: " +msgstr "圖片大小" #: scene/resources/texture.cpp #, fuzzy @@ -27829,9 +27251,8 @@ msgid "Pan Pullout" msgstr "" #: servers/audio/effects/audio_effect_stereo_enhance.cpp -#, fuzzy msgid "Time Pullout (ms)" -msgstr "逾時。" +msgstr "撤離時間(毫秒)" #: servers/audio/effects/audio_effect_stereo_enhance.cpp msgid "Surround" @@ -27886,119 +27307,105 @@ msgstr "透視" #: servers/physics/space_sw.cpp servers/physics_2d/space_2d_sw.cpp msgid "Sleep Threshold Linear" -msgstr "" +msgstr "線性睡眠速度閾值" #: servers/physics/space_sw.cpp servers/physics_2d/space_2d_sw.cpp msgid "Sleep Threshold Angular" -msgstr "" +msgstr "睡眠角速度閾值" #: servers/physics/space_sw.cpp servers/physics_2d/space_2d_sw.cpp msgid "Time Before Sleep" -msgstr "" +msgstr "睡眠前時間" #: servers/physics_2d/physics_2d_server_sw.cpp -#, fuzzy msgid "BP Hash Table Size" -msgstr "大小:" +msgstr "BP 雜湊表大小" #: servers/physics_2d/physics_2d_server_sw.cpp msgid "Large Object Surface Threshold In Cells" -msgstr "" +msgstr "大物件表面單位格閾值" #: servers/physics_2d_server.cpp servers/physics_server.cpp msgid "Inverse Mass" -msgstr "" +msgstr "逆質量" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Inverse Inertia" -msgstr "自由視圖 左" +msgstr "逆慣性" #: servers/physics_2d_server.cpp servers/physics_server.cpp msgid "Total Angular Damp" -msgstr "" +msgstr "總角速度減幅" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Total Linear Damp" -msgstr "線性" +msgstr "總線性速度減幅" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Total Gravity" -msgstr "預設預覽" +msgstr "總重力" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Linear Velocity" -msgstr "初始化" +msgstr "線性速度" #: servers/physics_2d_server.cpp servers/physics_server.cpp msgid "Exclude" -msgstr "" +msgstr "排除" #: servers/physics_2d_server.cpp servers/physics_server.cpp msgid "Shape RID" -msgstr "" +msgstr "形狀RID" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Collide With Bodies" -msgstr "碰撞模式" +msgstr "形體間碰撞" #: servers/physics_2d_server.cpp servers/physics_server.cpp msgid "Collide With Areas" -msgstr "" +msgstr "區域間碰撞" #: servers/physics_2d_server.cpp servers/physics_server.cpp msgid "Motion Remainder" -msgstr "" +msgstr "運動剩餘量" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Collision Point" -msgstr "碰撞模式" +msgstr "碰撞點" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Collision Normal" -msgstr "碰撞模式" +msgstr "碰撞法線" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Collision Depth" -msgstr "碰撞模式" +msgstr "碰撞深度" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Collision Safe Fraction" -msgstr "碰撞模式" +msgstr "碰撞安全比值" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Collision Unsafe Fraction" -msgstr "碰撞模式" +msgstr "碰撞非安全比值" #: servers/physics_2d_server.cpp servers/physics_server.cpp -#, fuzzy msgid "Physics Engine" -msgstr "物理影格 %" +msgstr "物理引擎" #: servers/physics_server.cpp -#, fuzzy msgid "Center Of Mass" -msgstr "中左" +msgstr "質量中心" #: servers/physics_server.cpp msgid "Principal Inertia Axes" -msgstr "" +msgstr "主慣性軸" #: servers/visual/shader_language.cpp msgid "Varying may not be assigned in the '%s' function." -msgstr "Varying 變數不可在函式「%s」中被指派。" +msgstr "Varying變數不可在「%s」函式中被指派。" #: servers/visual/shader_language.cpp -#, fuzzy msgid "" "Varyings which were assigned in 'vertex' function may not be reassigned in " "'fragment' or 'light'." @@ -28007,7 +27414,6 @@ msgstr "" "指派。" #: servers/visual/shader_language.cpp -#, fuzzy msgid "" "Varyings which were assigned in 'fragment' function may not be reassigned in " "'vertex' or 'light'." @@ -28028,39 +27434,32 @@ msgid "Constants cannot be modified." msgstr "不可修改常數。" #: servers/visual/visual_server_scene.cpp -#, fuzzy msgid "Spatial Partitioning" -msgstr "正在分割..." +msgstr "空間分割" #: servers/visual_server.cpp -#, fuzzy msgid "Render Loop Enabled" -msgstr "篩選訊號" +msgstr "啟用算繪迴圈" #: servers/visual_server.cpp -#, fuzzy msgid "VRAM Compression" -msgstr "設定表示式" +msgstr "VRAM壓縮" #: servers/visual_server.cpp -#, fuzzy msgid "Import BPTC" -msgstr "匯入" +msgstr "匯入BPTC" #: servers/visual_server.cpp -#, fuzzy msgid "Import S3TC" -msgstr "匯入" +msgstr "匯入S3TC" #: servers/visual_server.cpp -#, fuzzy msgid "Import ETC" -msgstr "匯入" +msgstr "匯入ETC" #: servers/visual_server.cpp -#, fuzzy msgid "Import ETC2" -msgstr "匯入" +msgstr "匯入ETC2" #: servers/visual_server.cpp #, fuzzy @@ -28072,9 +27471,8 @@ msgid "Lossless Compression" msgstr "" #: servers/visual_server.cpp -#, fuzzy msgid "Force PNG" -msgstr "來源網格:" +msgstr "強制 PNG" #: servers/visual_server.cpp msgid "WebP Compression Level" @@ -28118,7 +27516,7 @@ msgstr "篩選節點" #: servers/visual_server.cpp #, fuzzy msgid "Texture Array Reflections" -msgstr "置中所選" +msgstr "紋理貼圖陣列反射" #: servers/visual_server.cpp msgid "High Quality GGX" @@ -28175,20 +27573,24 @@ msgid "Use Nearest Mipmap Filter" msgstr "" #: servers/visual_server.cpp +#, fuzzy msgid "Skinning" -msgstr "" +msgstr "外觀變更" #: servers/visual_server.cpp +#, fuzzy msgid "Software Skinning Fallback" -msgstr "" +msgstr "軟體外觀變更後備" #: servers/visual_server.cpp +#, fuzzy msgid "Force Software Skinning" -msgstr "" +msgstr "強制軟體外觀變更" #: servers/visual_server.cpp +#, fuzzy msgid "Use Software Skinning" -msgstr "" +msgstr "使用軟體外觀變更" #: servers/visual_server.cpp #, fuzzy @@ -28218,9 +27620,8 @@ msgid "Legacy Stream" msgstr "" #: servers/visual_server.cpp -#, fuzzy msgid "Batching" -msgstr "正在搜尋..." +msgstr "分批" #: servers/visual_server.cpp msgid "Use Batching" @@ -28250,7 +27651,7 @@ msgstr "" #: servers/visual_server.cpp #, fuzzy msgid "Max Join Items" -msgstr "管理項目……" +msgstr "最大加入項目數" #: servers/visual_server.cpp msgid "Batch Buffer Size" @@ -28306,7 +27707,7 @@ msgstr "使用縮放吸附" #: servers/visual_server.cpp msgid "PVS Logging" -msgstr "" +msgstr "PVS 日誌" #: servers/visual_server.cpp #, fuzzy @@ -28338,9 +27739,8 @@ msgid "Max Active Polygons" msgstr "移動多邊形" #: servers/visual_server.cpp -#, fuzzy msgid "Shader Compilation Mode" -msgstr "插值模式" +msgstr "著色器編譯模式" #: servers/visual_server.cpp msgid "Max Simultaneous Compiles" @@ -28351,6 +27751,5 @@ msgid "Log Active Async Compiles Count" msgstr "" #: servers/visual_server.cpp -#, fuzzy msgid "Shader Cache Size (MB)" -msgstr "更改相機尺寸" +msgstr "著色器快取大小 (MB)" |