Skip to content

Commit 6c1bbb3

Browse files
committed
Merge pull request #97275 from timothyqiu/how-many
Better undo action names for localization editor
2 parents fc960cd + 2461504 commit 6c1bbb3

File tree

1 file changed

+28
-13
lines changed

1 file changed

+28
-13
lines changed

editor/localization_editor.cpp

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,20 @@ void LocalizationEditor::add_translation(const String &p_translation) {
7474

7575
void LocalizationEditor::_translation_add(const PackedStringArray &p_paths) {
7676
PackedStringArray translations = GLOBAL_GET("internationalization/locale/translations");
77-
for (int i = 0; i < p_paths.size(); i++) {
78-
if (!translations.has(p_paths[i])) {
77+
int count = 0;
78+
for (const String &path : p_paths) {
79+
if (!translations.has(path)) {
7980
// Don't add duplicate translation paths.
80-
translations.push_back(p_paths[i]);
81+
translations.push_back(path);
82+
count += 1;
8183
}
8284
}
85+
if (count == 0) {
86+
return;
87+
}
8388

8489
EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
85-
undo_redo->create_action(vformat(TTR("Add %d Translations"), p_paths.size()));
90+
undo_redo->create_action(vformat(TTRN("Add %d Translation", "Add %d Translations", count), count));
8691
undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translations", translations);
8792
undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translations", GLOBAL_GET("internationalization/locale/translations"));
8893
undo_redo->add_do_method(this, "update_translations");
@@ -136,15 +141,20 @@ void LocalizationEditor::_translation_res_add(const PackedStringArray &p_paths)
136141
prev = remaps;
137142
}
138143

139-
for (int i = 0; i < p_paths.size(); i++) {
140-
if (!remaps.has(p_paths[i])) {
144+
int count = 0;
145+
for (const String &path : p_paths) {
146+
if (!remaps.has(path)) {
141147
// Don't overwrite with an empty remap array if an array already exists for the given path.
142-
remaps[p_paths[i]] = PackedStringArray();
148+
remaps[path] = PackedStringArray();
149+
count += 1;
143150
}
144151
}
152+
if (count == 0) {
153+
return;
154+
}
145155

146156
EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
147-
undo_redo->create_action(vformat(TTR("Translation Resource Remap: Add %d Path(s)"), p_paths.size()));
157+
undo_redo->create_action(vformat(TTRN("Translation Resource Remap: Add %d Path", "Translation Resource Remap: Add %d Paths", count), count));
148158
undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps);
149159
undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", prev);
150160
undo_redo->add_do_method(this, "update_translations");
@@ -176,7 +186,7 @@ void LocalizationEditor::_translation_res_option_add(const PackedStringArray &p_
176186
remaps[key] = r;
177187

178188
EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
179-
undo_redo->create_action(vformat(TTR("Translation Resource Remap: Add %d Remap(s)"), p_paths.size()));
189+
undo_redo->create_action(vformat(TTRN("Translation Resource Remap: Add %d Remap", "Translation Resource Remap: Add %d Remaps", p_paths.size()), p_paths.size()));
180190
undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", remaps);
181191
undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translation_remaps", GLOBAL_GET("internationalization/locale/translation_remaps"));
182192
undo_redo->add_do_method(this, "update_translations");
@@ -326,14 +336,19 @@ void LocalizationEditor::_translation_res_option_delete(Object *p_item, int p_co
326336

327337
void LocalizationEditor::_pot_add(const PackedStringArray &p_paths) {
328338
PackedStringArray pot_translations = GLOBAL_GET("internationalization/locale/translations_pot_files");
329-
for (int i = 0; i < p_paths.size(); i++) {
330-
if (!pot_translations.has(p_paths[i])) {
331-
pot_translations.push_back(p_paths[i]);
339+
int count = 0;
340+
for (const String &path : p_paths) {
341+
if (!pot_translations.has(path)) {
342+
pot_translations.push_back(path);
343+
count += 1;
332344
}
333345
}
346+
if (count == 0) {
347+
return;
348+
}
334349

335350
EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
336-
undo_redo->create_action(vformat(TTR("Add %d file(s) for POT generation"), p_paths.size()));
351+
undo_redo->create_action(vformat(TTRN("Add %d file for POT generation", "Add %d files for POT generation", count), count));
337352
undo_redo->add_do_property(ProjectSettings::get_singleton(), "internationalization/locale/translations_pot_files", pot_translations);
338353
undo_redo->add_undo_property(ProjectSettings::get_singleton(), "internationalization/locale/translations_pot_files", GLOBAL_GET("internationalization/locale/translations_pot_files"));
339354
undo_redo->add_do_method(this, "update_translations");

0 commit comments

Comments
 (0)