1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-10 13:00:37 +00:00

Improve Project Manager auto-translation

This commit is contained in:
kobewi
2025-03-31 16:47:09 +02:00
parent 297650a912
commit e6edf3b3b3
6 changed files with 205 additions and 189 deletions

View File

@@ -262,9 +262,13 @@ void EditorFileDialog::_notification(int p_what) {
set_translation_domain(SNAME("godot.editor"));
} break;
case NOTIFICATION_THEME_CHANGED:
case Control::NOTIFICATION_LAYOUT_DIRECTION_CHANGED:
case NOTIFICATION_TRANSLATION_CHANGED: {
update_filters();
[[fallthrough]];
}
case NOTIFICATION_THEME_CHANGED:
case Control::NOTIFICATION_LAYOUT_DIRECTION_CHANGED: {
_update_icons();
invalidate();
} break;
@@ -434,12 +438,12 @@ void EditorFileDialog::update_dir() {
case FILE_MODE_OPEN_FILE:
case FILE_MODE_OPEN_FILES:
file->set_text("");
set_ok_button_text(TTR("Open"));
set_ok_button_text(TTRC("Open"));
break;
case FILE_MODE_OPEN_ANY:
case FILE_MODE_OPEN_DIR:
file->set_text("");
set_ok_button_text(TTR("Select Current Folder"));
set_ok_button_text(TTRC("Select Current Folder"));
break;
case FILE_MODE_SAVE_FILE:
// FIXME: Implement, or refactor to avoid duplication with set_mode
@@ -663,7 +667,7 @@ void EditorFileDialog::_action_pressed() {
// First check we're not having an empty name.
String file_name = file_text.strip_edges().get_file();
if (file_name.is_empty()) {
error_dialog->set_text(TTR("Cannot save file with an empty filename."));
error_dialog->set_text(TTRC("Cannot save file with an empty filename."));
error_dialog->popup_centered(Size2(250, 80) * EDSCALE);
return;
}
@@ -677,7 +681,7 @@ void EditorFileDialog::_action_pressed() {
}
if (file_name.begins_with(".")) { // Could still happen if typed manually.
error_dialog->set_text(TTR("Cannot save file with a name starting with a dot."));
error_dialog->set_text(TTRC("Cannot save file with a name starting with a dot."));
error_dialog->popup_centered(Size2(250, 80) * EDSCALE);
return;
}
@@ -713,11 +717,11 @@ void EditorFileDialog::_item_selected(int p_item) {
if (mode != FILE_MODE_SAVE_FILE) {
// FILE_MODE_OPEN_ANY can alternate this text depending on what's selected.
set_ok_button_text(TTR("Open"));
set_ok_button_text(TTRC("Open"));
}
} else if (mode == FILE_MODE_OPEN_DIR || mode == FILE_MODE_OPEN_ANY) {
file->set_text("");
set_ok_button_text(TTR("Select This Folder"));
set_ok_button_text(TTRC("Select This Folder"));
}
get_ok_button()->set_disabled(_is_open_should_be_disabled());
@@ -750,7 +754,7 @@ void EditorFileDialog::_items_clear_selection(const Vector2 &p_pos, MouseButton
switch (mode) {
case FILE_MODE_OPEN_FILE:
case FILE_MODE_OPEN_FILES:
set_ok_button_text(TTR("Open"));
set_ok_button_text(TTRC("Open"));
get_ok_button()->set_disabled(!item_list->is_anything_selected());
break;
@@ -758,7 +762,7 @@ void EditorFileDialog::_items_clear_selection(const Vector2 &p_pos, MouseButton
case FILE_MODE_OPEN_DIR:
file->set_text("");
get_ok_button()->set_disabled(false);
set_ok_button_text(TTR("Select Current Folder"));
set_ok_button_text(TTRC("Select Current Folder"));
break;
case FILE_MODE_SAVE_FILE:
@@ -824,10 +828,10 @@ void EditorFileDialog::_item_list_item_rmb_clicked(int p_item, const Vector2 &p_
}
if (single_item_selected) {
item_menu->add_icon_item(theme_cache.action_copy, TTR("Copy Path"), ITEM_MENU_COPY_PATH);
item_menu->add_icon_item(theme_cache.action_copy, TTRC("Copy Path"), ITEM_MENU_COPY_PATH);
}
if (allow_delete) {
item_menu->add_icon_item(theme_cache.action_delete, TTR("Delete"), ITEM_MENU_DELETE, Key::KEY_DELETE);
item_menu->add_icon_item(theme_cache.action_delete, TTRC("Delete"), ITEM_MENU_DELETE, Key::KEY_DELETE);
}
#if !defined(ANDROID_ENABLED) && !defined(WEB_ENABLED)
@@ -835,14 +839,14 @@ void EditorFileDialog::_item_list_item_rmb_clicked(int p_item, const Vector2 &p_
if (single_item_selected) {
item_menu->add_separator();
Dictionary item_meta = item_list->get_item_metadata(p_item);
String item_text = item_meta["dir"] ? TTR("Open in File Manager") : TTR("Show in File Manager");
String item_text = item_meta["dir"] ? TTRC("Open in File Manager") : TTRC("Show in File Manager");
item_menu->add_icon_item(theme_cache.filesystem, item_text, ITEM_MENU_SHOW_IN_EXPLORER);
}
#endif
if (single_item_selected) {
Dictionary item_meta = item_list->get_item_metadata(p_item);
if (item_meta["bundle"]) {
item_menu->add_icon_item(theme_cache.open_folder, TTR("Show Package Contents"), ITEM_MENU_SHOW_BUNDLE_CONTENT);
item_menu->add_icon_item(theme_cache.open_folder, TTRC("Show Package Contents"), ITEM_MENU_SHOW_BUNDLE_CONTENT);
}
}
@@ -871,13 +875,13 @@ void EditorFileDialog::_item_list_empty_clicked(const Vector2 &p_pos, MouseButto
item_menu->reset_size();
if (can_create_dir) {
item_menu->add_icon_item(theme_cache.folder, TTR("New Folder..."), ITEM_MENU_NEW_FOLDER, KeyModifierMask::CMD_OR_CTRL | Key::N);
item_menu->add_icon_item(theme_cache.folder, TTRC("New Folder..."), ITEM_MENU_NEW_FOLDER, KeyModifierMask::CMD_OR_CTRL | Key::N);
}
item_menu->add_icon_item(theme_cache.reload, TTR("Refresh"), ITEM_MENU_REFRESH, Key::F5);
item_menu->add_icon_item(theme_cache.reload, TTRC("Refresh"), ITEM_MENU_REFRESH, Key::F5);
#if !defined(ANDROID_ENABLED) && !defined(WEB_ENABLED)
// Opening the system file manager is not supported on the Android and web editors.
item_menu->add_separator();
item_menu->add_icon_item(theme_cache.filesystem, TTR("Open in File Manager"), ITEM_MENU_SHOW_IN_EXPLORER);
item_menu->add_icon_item(theme_cache.filesystem, TTRC("Open in File Manager"), ITEM_MENU_SHOW_IN_EXPLORER);
#endif
item_menu->set_position(item_list->get_screen_position() + p_pos);
@@ -1446,28 +1450,28 @@ void EditorFileDialog::set_file_mode(FileMode p_mode) {
mode = p_mode;
switch (mode) {
case FILE_MODE_OPEN_FILE:
set_ok_button_text(TTR("Open"));
set_title(TTR("Open a File"));
set_ok_button_text(TTRC("Open"));
set_title(TTRC("Open a File"));
can_create_dir = false;
break;
case FILE_MODE_OPEN_FILES:
set_ok_button_text(TTR("Open"));
set_title(TTR("Open File(s)"));
set_ok_button_text(TTRC("Open"));
set_title(TTRC("Open File(s)"));
can_create_dir = false;
break;
case FILE_MODE_OPEN_DIR:
set_ok_button_text(TTR("Open"));
set_title(TTR("Open a Directory"));
set_ok_button_text(TTRC("Open"));
set_title(TTRC("Open a Directory"));
can_create_dir = true;
break;
case FILE_MODE_OPEN_ANY:
set_ok_button_text(TTR("Open"));
set_title(TTR("Open a File or Directory"));
set_ok_button_text(TTRC("Open"));
set_title(TTRC("Open a File or Directory"));
can_create_dir = true;
break;
case FILE_MODE_SAVE_FILE:
set_ok_button_text(TTR("Save"));
set_title(TTR("Save a File"));
set_ok_button_text(TTRC("Save"));
set_title(TTRC("Save a File"));
can_create_dir = true;
break;
}
@@ -1538,14 +1542,14 @@ void EditorFileDialog::_make_dir_confirm() {
const String stripped_dirname = makedirname->get_text().strip_edges();
if (stripped_dirname.is_empty()) {
error_dialog->set_text(TTR("The path specified is invalid."));
error_dialog->set_text(TTRC("The path specified is invalid."));
error_dialog->popup_centered(Size2(250, 50) * EDSCALE);
makedirname->set_text(""); // Reset label.
return;
}
if (dir_access->dir_exists(stripped_dirname)) {
error_dialog->set_text(TTR("Could not create folder. File with that name already exists."));
error_dialog->set_text(TTRC("Could not create folder. File with that name already exists."));
error_dialog->popup_centered(Size2(250, 50) * EDSCALE);
makedirname->set_text(""); // Reset label.
return;
@@ -1562,7 +1566,7 @@ void EditorFileDialog::_make_dir_confirm() {
EditorFileSystem::get_singleton()->scan_changes(); //we created a dir, so rescan changes
}
} else {
error_dialog->set_text(TTR("Could not create folder."));
error_dialog->set_text(TTRC("Could not create folder."));
error_dialog->popup_centered(Size2(250, 50) * EDSCALE);
}
makedirname->set_text(""); // reset label
@@ -1705,7 +1709,7 @@ void EditorFileDialog::_update_icons() {
void EditorFileDialog::_favorite_selected(int p_idx) {
Error change_dir_result = dir_access->change_dir(favorites->get_item_metadata(p_idx));
if (change_dir_result != OK) {
error_dialog->set_text(TTR("Favorited folder does not exist anymore and will be removed."));
error_dialog->set_text(TTRC("Favorited folder does not exist anymore and will be removed."));
error_dialog->popup_centered(Size2(250, 50) * EDSCALE);
bool res = (access == ACCESS_RESOURCES);
@@ -2376,7 +2380,7 @@ EditorFileDialog::EditorFileDialog() {
vbc = memnew(VBoxContainer);
add_child(vbc);
set_title(TTR("Save a File"));
set_title(TTRC("Save a File"));
ED_SHORTCUT("file_dialog/go_back", TTRC("Go Back"), KeyModifierMask::ALT | Key::LEFT);
ED_SHORTCUT("file_dialog/go_forward", TTRC("Go Forward"), KeyModifierMask::ALT | Key::RIGHT);
@@ -2405,15 +2409,15 @@ EditorFileDialog::EditorFileDialog() {
dir_prev = memnew(Button);
dir_prev->set_theme_type_variation(SceneStringName(FlatButton));
dir_prev->set_accessibility_name(TTRC("Previous"));
dir_prev->set_tooltip_text(TTR("Go to previous folder."));
dir_prev->set_tooltip_text(TTRC("Go to previous folder."));
dir_next = memnew(Button);
dir_next->set_theme_type_variation(SceneStringName(FlatButton));
dir_next->set_accessibility_name(TTRC("Next"));
dir_next->set_tooltip_text(TTR("Go to next folder."));
dir_next->set_tooltip_text(TTRC("Go to next folder."));
dir_up = memnew(Button);
dir_up->set_theme_type_variation(SceneStringName(FlatButton));
dir_up->set_accessibility_name(TTRC("Parent Folder"));
dir_up->set_tooltip_text(TTR("Go to parent folder."));
dir_up->set_tooltip_text(TTRC("Go to parent folder."));
pathhb->add_child(dir_prev);
pathhb->add_child(dir_next);
@@ -2423,7 +2427,7 @@ EditorFileDialog::EditorFileDialog() {
dir_next->connect(SceneStringName(pressed), callable_mp(this, &EditorFileDialog::_go_forward));
dir_up->connect(SceneStringName(pressed), callable_mp(this, &EditorFileDialog::_go_up));
Label *l = memnew(Label(TTR("Path:")));
Label *l = memnew(Label(TTRC("Path:")));
l->set_focus_mode(Control::FOCUS_NONE);
l->set_theme_type_variation("HeaderSmall");
pathhb->add_child(l);
@@ -2439,7 +2443,7 @@ EditorFileDialog::EditorFileDialog() {
refresh = memnew(Button);
refresh->set_theme_type_variation(SceneStringName(FlatButton));
refresh->set_accessibility_name(TTRC("Refresh Files"));
refresh->set_tooltip_text(TTR("Refresh files."));
refresh->set_tooltip_text(TTRC("Refresh files."));
refresh->connect(SceneStringName(pressed), callable_mp(this, &EditorFileDialog::update_file_list));
pathhb->add_child(refresh);
@@ -2447,7 +2451,7 @@ EditorFileDialog::EditorFileDialog() {
favorite->set_theme_type_variation(SceneStringName(FlatButton));
favorite->set_toggle_mode(true);
favorite->set_accessibility_name(TTRC("(Un)favorite Folder"));
favorite->set_tooltip_text(TTR("(Un)favorite current folder."));
favorite->set_tooltip_text(TTRC("(Un)favorite current folder."));
favorite->connect(SceneStringName(pressed), callable_mp(this, &EditorFileDialog::_favorite_pressed));
pathhb->add_child(favorite);
@@ -2465,7 +2469,7 @@ EditorFileDialog::EditorFileDialog() {
makedir = memnew(Button);
makedir->set_theme_type_variation(SceneStringName(FlatButton));
makedir->set_accessibility_name(TTRC("Create Folder"));
makedir->set_tooltip_text(TTR("Create a new folder."));
makedir->set_tooltip_text(TTRC("Create a new folder."));
makedir->connect(SceneStringName(pressed), callable_mp(this, &EditorFileDialog::_make_dir));
pathhb->add_child(makedir);
@@ -2499,7 +2503,7 @@ EditorFileDialog::EditorFileDialog() {
HBoxContainer *fav_hb = memnew(HBoxContainer);
fav_vb->add_child(fav_hb);
l = memnew(Label(TTR("Favorites:")));
l = memnew(Label(TTRC("Favorites:")));
l->set_focus_mode(Control::FOCUS_NONE);
l->set_theme_type_variation("HeaderSmall");
fav_hb->add_child(l);
@@ -2533,7 +2537,7 @@ EditorFileDialog::EditorFileDialog() {
recent->set_allow_reselect(true);
recent->set_theme_type_variation("ItemListSecondary");
recent->set_accessibility_name(TTRC("Recent"));
rec_vb->add_margin_child(TTR("Recent:"), recent, true);
rec_vb->add_margin_child(TTRC("Recent:"), recent, true);
recent->connect(SceneStringName(item_selected), callable_mp(this, &EditorFileDialog::_recent_selected));
VBoxContainer *item_vb = memnew(VBoxContainer);
@@ -2550,7 +2554,7 @@ EditorFileDialog::EditorFileDialog() {
HBoxContainer *lower_hb = memnew(HBoxContainer);
lower_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
l = memnew(Label(TTR("Directories & Files:")));
l = memnew(Label(TTRC("Directories & Files:")));
l->set_focus_mode(Control::FOCUS_NONE);
l->set_theme_type_variation("HeaderSmall");
l->set_h_size_flags(Control::SIZE_EXPAND_FILL);
@@ -2562,7 +2566,7 @@ EditorFileDialog::EditorFileDialog() {
show_hidden->set_toggle_mode(true);
show_hidden->set_pressed(is_showing_hidden_files());
show_hidden->set_accessibility_name(TTRC("Show Hidden Files"));
show_hidden->set_tooltip_text(TTR("Toggle the visibility of hidden files."));
show_hidden->set_tooltip_text(TTRC("Toggle the visibility of hidden files."));
show_hidden->connect(SceneStringName(toggled), callable_mp(this, &EditorFileDialog::set_show_hidden_files));
lower_hb->add_child(show_hidden);
@@ -2578,7 +2582,7 @@ EditorFileDialog::EditorFileDialog() {
mode_thumbnails->set_pressed(display_mode == DISPLAY_THUMBNAILS);
mode_thumbnails->set_button_group(view_mode_group);
mode_thumbnails->set_accessibility_name(TTRC("View as Thumbnails"));
mode_thumbnails->set_tooltip_text(TTR("View items as a grid of thumbnails."));
mode_thumbnails->set_tooltip_text(TTRC("View items as a grid of thumbnails."));
lower_hb->add_child(mode_thumbnails);
mode_list = memnew(Button);
@@ -2588,7 +2592,7 @@ EditorFileDialog::EditorFileDialog() {
mode_list->set_pressed(display_mode == DISPLAY_LIST);
mode_list->set_button_group(view_mode_group);
mode_list->set_accessibility_name(TTRC("View as List"));
mode_list->set_tooltip_text(TTR("View items as a list."));
mode_list->set_tooltip_text(TTRC("View items as a list."));
lower_hb->add_child(mode_list);
lower_hb->add_child(memnew(VSeparator));
@@ -2596,26 +2600,26 @@ EditorFileDialog::EditorFileDialog() {
file_sort_button = memnew(MenuButton);
file_sort_button->set_flat(false);
file_sort_button->set_theme_type_variation("FlatMenuButton");
file_sort_button->set_tooltip_text(TTR("Sort files"));
file_sort_button->set_tooltip_text(TTRC("Sort files"));
file_sort_button->set_accessibility_name(TTRC("Sort Files"));
show_search_filter_button = memnew(Button);
show_search_filter_button->set_theme_type_variation(SceneStringName(FlatButton));
show_search_filter_button->set_toggle_mode(true);
show_search_filter_button->set_pressed(false);
show_search_filter_button->set_tooltip_text(TTR("Toggle the visibility of the filter for file names."));
show_search_filter_button->set_tooltip_text(TTRC("Toggle the visibility of the filter for file names."));
show_search_filter_button->set_accessibility_name(TTRC("Show Search Filters"));
show_search_filter_button->connect(SceneStringName(toggled), callable_mp(this, &EditorFileDialog::set_show_search_filter));
lower_hb->add_child(show_search_filter_button);
PopupMenu *p = file_sort_button->get_popup();
p->connect(SceneStringName(id_pressed), callable_mp(this, &EditorFileDialog::_file_sort_popup));
p->add_radio_check_item(TTR("Sort by Name (Ascending)"), static_cast<int>(FileSortOption::FILE_SORT_NAME));
p->add_radio_check_item(TTR("Sort by Name (Descending)"), static_cast<int>(FileSortOption::FILE_SORT_NAME_REVERSE));
p->add_radio_check_item(TTR("Sort by Type (Ascending)"), static_cast<int>(FileSortOption::FILE_SORT_TYPE));
p->add_radio_check_item(TTR("Sort by Type (Descending)"), static_cast<int>(FileSortOption::FILE_SORT_TYPE_REVERSE));
p->add_radio_check_item(TTR("Sort by Last Modified"), static_cast<int>(FileSortOption::FILE_SORT_MODIFIED_TIME));
p->add_radio_check_item(TTR("Sort by First Modified"), static_cast<int>(FileSortOption::FILE_SORT_MODIFIED_TIME_REVERSE));
p->add_radio_check_item(TTRC("Sort by Name (Ascending)"), static_cast<int>(FileSortOption::FILE_SORT_NAME));
p->add_radio_check_item(TTRC("Sort by Name (Descending)"), static_cast<int>(FileSortOption::FILE_SORT_NAME_REVERSE));
p->add_radio_check_item(TTRC("Sort by Type (Ascending)"), static_cast<int>(FileSortOption::FILE_SORT_TYPE));
p->add_radio_check_item(TTRC("Sort by Type (Descending)"), static_cast<int>(FileSortOption::FILE_SORT_TYPE_REVERSE));
p->add_radio_check_item(TTRC("Sort by Last Modified"), static_cast<int>(FileSortOption::FILE_SORT_MODIFIED_TIME));
p->add_radio_check_item(TTRC("Sort by First Modified"), static_cast<int>(FileSortOption::FILE_SORT_MODIFIED_TIME_REVERSE));
p->set_item_checked(0, true);
lower_hb->add_child(file_sort_button);
@@ -2643,7 +2647,7 @@ EditorFileDialog::EditorFileDialog() {
preview_vb = memnew(VBoxContainer);
preview_hb->add_child(preview_vb);
CenterContainer *prev_cc = memnew(CenterContainer);
preview_vb->add_margin_child(TTR("Preview:"), prev_cc);
preview_vb->add_margin_child(TTRC("Preview:"), prev_cc);
preview = memnew(TextureRect);
prev_cc->add_child(preview);
preview_vb->hide();
@@ -2652,7 +2656,7 @@ EditorFileDialog::EditorFileDialog() {
filter_hb->add_child(memnew(Label(RTR("Filter:"))));
filter_box = memnew(LineEdit);
filter_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
filter_box->set_placeholder(TTR("Filter"));
filter_box->set_placeholder(TTRC("Filter"));
filter_box->set_accessibility_name(TTRC("Filename Filter"));
filter_hb->add_child(filter_box);
filter_hb->set_visible(false);
@@ -2660,7 +2664,7 @@ EditorFileDialog::EditorFileDialog() {
file_box = memnew(HBoxContainer);
l = memnew(Label(TTR("File:")));
l = memnew(Label(TTRC("File:")));
l->set_focus_mode(Control::FOCUS_NONE);
l->set_theme_type_variation("HeaderSmall");
file_box->add_child(l);
@@ -2702,19 +2706,19 @@ EditorFileDialog::EditorFileDialog() {
add_child(dep_remove_dialog);
global_remove_dialog = memnew(ConfirmationDialog);
global_remove_dialog->set_text(TTR("Remove the selected files? For safety only files and empty directories can be deleted from here. (Cannot be undone.)\nDepending on your filesystem configuration, the files will either be moved to the system trash or deleted permanently."));
global_remove_dialog->set_text(TTRC("Remove the selected files? For safety only files and empty directories can be deleted from here. (Cannot be undone.)\nDepending on your filesystem configuration, the files will either be moved to the system trash or deleted permanently."));
global_remove_dialog->connect(SceneStringName(confirmed), callable_mp(this, &EditorFileDialog::_delete_files_global));
add_child(global_remove_dialog);
makedialog = memnew(ConfirmationDialog);
makedialog->set_title(TTR("Create Folder"));
makedialog->set_title(TTRC("Create Folder"));
VBoxContainer *makevb = memnew(VBoxContainer);
makedialog->add_child(makevb);
makedirname = memnew(LineEdit);
makedirname->set_structured_text_bidi_override(TextServer::STRUCTURED_TEXT_FILE);
makedirname->set_accessibility_name(TTRC("Name"));
makevb->add_margin_child(TTR("Name:"), makedirname);
makevb->add_margin_child(TTRC("Name:"), makedirname);
add_child(makedialog);
makedialog->register_text_enter(makedirname);
makedialog->connect(SceneStringName(confirmed), callable_mp(this, &EditorFileDialog::_make_dir_confirm));