diff --git a/cocoa/base/AppDelegate.m b/cocoa/base/AppDelegate.m index dec5e0df..3fa5d257 100644 --- a/cocoa/base/AppDelegate.m +++ b/cocoa/base/AppDelegate.m @@ -237,4 +237,21 @@ http://www.hardcoded.net/licenses/bsd_license { [HSFairwareReminder showDemoNagWithApp:[self model] prompt:prompt]; } + +- (NSString *)selectDestFolderWithPrompt:(NSString *)prompt +{ + NSOpenPanel *op = [NSOpenPanel openPanel]; + [op setCanChooseFiles:NO]; + [op setCanChooseDirectories:YES]; + [op setCanCreateDirectories:YES]; + [op setAllowsMultipleSelection:NO]; + [op setTitle:prompt]; + if ([op runModal] == NSOKButton) { + return [[op filenames] objectAtIndex:0]; + } + else { + return nil; + } +} + @end diff --git a/cocoa/base/ResultWindow.m b/cocoa/base/ResultWindow.m index 9f302131..2b1a0e42 100644 --- a/cocoa/base/ResultWindow.m +++ b/cocoa/base/ResultWindow.m @@ -75,17 +75,6 @@ http://www.hardcoded.net/licenses/bsd_license - (void)sendMarkedToTrash:(BOOL)hardlinkDeleted { - NSInteger mark_count = [model getMarkCount]; - if (!mark_count) { - return; - } - NSString *msg = TR(@"You are about to send %d files to Trash. Continue?"); - if (hardlinkDeleted) { - msg = TR(@"You are about to send %d files to Trash (and hardlink them afterwards). Continue?"); - } - if ([Dialogs askYesNo:[NSString stringWithFormat:msg,mark_count]] == NSAlertSecondButtonReturn) { // NO - return; - } NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])]; if (hardlinkDeleted) { @@ -130,20 +119,10 @@ http://www.hardcoded.net/licenses/bsd_license - (IBAction)copyMarked:(id)sender { - NSInteger mark_count = [model getMarkCount]; - if (!mark_count) - return; - NSOpenPanel *op = [NSOpenPanel openPanel]; - [op setCanChooseFiles:NO]; - [op setCanChooseDirectories:YES]; - [op setCanCreateDirectories:YES]; - [op setAllowsMultipleSelection:NO]; - [op setTitle:TR(@"Select a directory to copy marked files to")]; - if ([op runModal] == NSOKButton) { - NSString *directory = [[op filenames] objectAtIndex:0]; - NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; - [model copyOrMove:YES markedTo:directory recreatePath:n2b([ud objectForKey:@"recreatePathType"])]; - } + NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; + [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])]; + [model setCopyMoveDestType:n2i([ud objectForKey:@"recreatePathType"])]; + [model copyMarked]; } - (IBAction)deleteMarked:(id)sender @@ -201,21 +180,10 @@ http://www.hardcoded.net/licenses/bsd_license - (IBAction)moveMarked:(id)sender { - NSInteger mark_count = [model getMarkCount]; - if (!mark_count) - return; - NSOpenPanel *op = [NSOpenPanel openPanel]; - [op setCanChooseFiles:NO]; - [op setCanChooseDirectories:YES]; - [op setCanCreateDirectories:YES]; - [op setAllowsMultipleSelection:NO]; - [op setTitle:TR(@"Select a directory to move marked files to")]; - if ([op runModal] == NSOKButton) { - NSString *directory = [[op filenames] objectAtIndex:0]; - NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; - [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])]; - [model copyOrMove:NO markedTo:directory recreatePath:n2b([ud objectForKey:@"recreatePathType"])]; - } + NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; + [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])]; + [model setCopyMoveDestType:n2i([ud objectForKey:@"recreatePathType"])]; + [model moveMarked]; } - (IBAction)openClicked:(id)sender diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index 20482223..f0ee956b 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -4,16 +4,12 @@ "Select a results file to load" = "Select a results file to load"; "You have unsaved results, do you really want to quit?" = "You have unsaved results, do you really want to quit?"; -"Select a directory to copy marked files to" = "Select a directory to copy marked files to"; -"Select a directory to move marked files to" = "Select a directory to move marked files to"; "Select a file to save your results to" = "Select a file to save your results to"; "Select a folder to add to the scanning list" = "Select a folder to add to the scanning list"; "You have unsaved results, do you really want to continue?" = "You have unsaved results, do you really want to continue?"; "'%@' already is in the list." = "'%@' already is in the list."; "'%@' does not exist." = "'%@' does not exist."; "The name '%@' already exists." = "The name '%@' already exists."; -"You are about to send %d files to Trash. Continue?" = "You are about to send %d files to Trash. Continue?"; -"You are about to send %d files to Trash (and hardlink them afterwards). Continue?" = "You are about to send %d files to Trash (and hardlink them afterwards). Continue?"; "A previous action is still hanging in there. You can't start a new one yet. Wait a few seconds, then try again." = "A previous action is still hanging in there. You can't start a new one yet. Wait a few seconds, then try again."; "Your iTunes Library contains %d dead tracks ready to be removed. Continue?" = "Your iTunes Library contains %d dead tracks ready to be removed. Continue?"; "You have no dead tracks in your iTunes Library" = "You have no dead tracks in your iTunes Library"; diff --git a/cocoa/inter/app.py b/cocoa/inter/app.py index 074540cf..59dbee82 100644 --- a/cocoa/inter/app.py +++ b/cocoa/inter/app.py @@ -22,6 +22,7 @@ JOBID2TITLE = { class DupeGuruView(FairwareView): def askYesNoWithPrompt_(self, prompt: str) -> bool: pass def showProblemDialog(self): pass + def selectDestFolderWithPrompt_(self, prompt: str) -> str: pass class PyDupeGuruBase(PyFairware): FOLLOW_PROTOCOLS = ['Worker'] @@ -107,8 +108,11 @@ class PyDupeGuruBase(PyFairware): def makeSelectedReference(self): self.model.make_selected_reference() - def copyOrMove_markedTo_recreatePath_(self, copy: bool, destination: str, recreate_path: bool): - self.model.copy_or_move_marked(copy, destination, recreate_path) + def copyMarked(self): + self.model.copy_or_move_marked(copy=True) + + def moveMarked(self): + self.model.copy_or_move_marked(copy=False) def openSelected(self): self.model.open_selected() @@ -126,9 +130,6 @@ class PyDupeGuruBase(PyFairware): self.model.invoke_custom_command() #---Information - def getMarkCount(self) -> int: - return self.model.results.mark_count - def resultsAreModified(self) -> bool: return self.model.results.is_modified @@ -145,6 +146,9 @@ class PyDupeGuruBase(PyFairware): def setIgnoreHardlinkMatches_(self, ignore_hardlink_matches: bool): self.model.options['ignore_hardlink_matches'] = ignore_hardlink_matches + def setCopyMoveDestType_(self, copymove_dest_type: int): + self.model.options['copymove_dest_type'] = copymove_dest_type + #---Worker def getJobProgress(self) -> object: # NSNumber try: @@ -206,3 +210,7 @@ class PyDupeGuruBase(PyFairware): def show_problem_dialog(self): self.callback.showProblemDialog() + @dontwrap + def select_dest_folder(self, prompt): + return self.callback.selectDestFolderWithPrompt_(prompt) + diff --git a/core/app.py b/core/app.py index b512c2bf..f149d167 100644 --- a/core/app.py +++ b/core/app.py @@ -86,6 +86,7 @@ class DupeGuru(RegistrableApplication, Broadcaster): # ask_yes_no(prompt) --> bool # show_results_window() # show_problem_dialog() + # select_dest_folder(prompt: str) --> str # in fairware prompts, we don't mention the edition, it's too long. PROMPT_NAME = "dupeGuru" @@ -107,6 +108,7 @@ class DupeGuru(RegistrableApplication, Broadcaster): 'escape_filter_regexp': True, 'clean_empty_dirs': False, 'ignore_hardlink_matches': False, + 'copymove_dest_type': DestType.Relative, } self.selected_dupes = [] self.details_panel = DetailsPanel(self) @@ -302,23 +304,40 @@ class DupeGuru(RegistrableApplication, Broadcaster): smart_move(source_path, dest_path) self.clean_empty_dirs(source_path[:-1]) - def copy_or_move_marked(self, copy, destination, recreate_path): + def copy_or_move_marked(self, copy): def do(j): def op(dupe): j.add_progress() - self.copy_or_move(dupe, copy, destination, recreate_path) + self.copy_or_move(dupe, copy, destination, desttype) j.start_job(self.results.mark_count) self.results.perform_on_marked(op, not copy) if not self._check_demo(): return - jobid = JobType.Copy if copy else JobType.Move - self.view.start_job(jobid, do) + if not self.results.mark_count: + self.view.show_message(MSG_NO_MARKED_DUPES) + return + opname = tr("copy") if copy else tr("move") + prompt = tr("Select a directory to {} marked files to").format(opname) + destination = self.view.select_dest_folder(prompt) + if destination: + desttype = self.options['copymove_dest_type'] + jobid = JobType.Copy if copy else JobType.Move + self.view.start_job(jobid, do) def delete_marked(self, replace_with_hardlinks=False): if not self._check_demo(): return + if not self.results.mark_count: + self.view.show_message(MSG_NO_MARKED_DUPES) + return + if replace_with_hardlinks: + msg = tr("You are about to send %d files to Trash (and hardlink them afterwards). Continue?") + else: + msg = tr("You are about to send %d files to Trash. Continue?") + if not self.view.ask_yes_no(msg % self.results.mark_count): + return self.view.start_job(JobType.Delete, self._do_delete, args=[replace_with_hardlinks]) def export_to_xhtml(self): diff --git a/locale/core.pot b/locale/core.pot index 93bad6d9..717b0a07 100644 --- a/locale/core.pot +++ b/locale/core.pot @@ -11,63 +11,83 @@ msgstr "" msgid "There are no selected duplicates. Nothing has been done." msgstr "" -#: core/app.py:92 +#: core/app.py:93 msgid "will only be able to delete, move or copy 10 duplicates at once" msgstr "" -#: core/app.py:187 +#: core/app.py:189 msgid "No duplicates found." msgstr "" -#: core/app.py:200 +#: core/app.py:202 msgid "All marked files were copied sucessfully." msgstr "" -#: core/app.py:201 +#: core/app.py:203 msgid "All marked files were moved sucessfully." msgstr "" -#: core/app.py:202 +#: core/app.py:204 msgid "All marked files were sucessfully sent to Trash." msgstr "" -#: core/app.py:229 +#: core/app.py:231 msgid "You cannot delete, move or copy more than 10 duplicates at once in demo mode." msgstr "" -#: core/app.py:250 +#: core/app.py:252 msgid "All selected %d matches are going to be ignored in all subsequent scans. Continue?" msgstr "" -#: core/app.py:275 +#: core/app.py:277 msgid "The ignore list is already empty. Nothing to clear." msgstr "" -#: core/app.py:278 +#: core/app.py:280 msgid "Do you really want to remove all %d items from the ignore list?" msgstr "" -#: core/app.py:281 +#: core/app.py:283 msgid "Ignore list cleared." msgstr "" -#: core/app.py:357 +#: core/app.py:321 +msgid "copy" +msgstr "" + +#: core/app.py:321 +msgid "move" +msgstr "" + +#: core/app.py:322 +msgid "Select a directory to {} marked files to" +msgstr "" + +#: core/app.py:336 +msgid "You are about to send %d files to Trash (and hardlink them afterwards). Continue?" +msgstr "" + +#: core/app.py:338 +msgid "You are about to send %d files to Trash. Continue?" +msgstr "" + +#: core/app.py:376 msgid "You have no custom command set up. Set it up in your preferences." msgstr "" -#: core/app.py:442 core/app.py:453 +#: core/app.py:461 core/app.py:472 msgid "You are about to remove %d files from results. Continue?" msgstr "" -#: core/app.py:489 +#: core/app.py:508 msgid "Collecting files to scan" msgstr "" -#: core/app.py:500 +#: core/app.py:519 msgid "The selected directories contain no scannable file." msgstr "" -#: core/app.py:539 +#: core/app.py:558 msgid "%s (%d discarded)" msgstr "" diff --git a/locale/cs/LC_MESSAGES/core.po b/locale/cs/LC_MESSAGES/core.po index b5a6bfbf..4f2f981a 100644 --- a/locale/cs/LC_MESSAGES/core.po +++ b/locale/cs/LC_MESSAGES/core.po @@ -2,25 +2,25 @@ msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" -#: core/app.py:92 +#: core/app.py:93 msgid "will only be able to delete, move or copy 10 duplicates at once" msgstr "" -#: core/app.py:229 +#: core/app.py:231 msgid "" "You cannot delete, move or copy more than 10 duplicates at once in demo " "mode." msgstr "" -#: core/app.py:489 +#: core/app.py:508 msgid "Collecting files to scan" msgstr "Shromažďuji prohlížené soubory" -#: core/app.py:500 +#: core/app.py:519 msgid "The selected directories contain no scannable file." msgstr "Vybrané adresáře neobsahují žádné soubory vhodné k prohledávání." -#: core/app.py:539 +#: core/app.py:558 msgid "%s (%d discarded)" msgstr "%s (%d vyřazeno)" @@ -120,23 +120,23 @@ msgstr "" msgid "There are no selected duplicates. Nothing has been done." msgstr "" -#: core/app.py:187 +#: core/app.py:189 msgid "No duplicates found." msgstr "Nebyli nalezeny žádné duplicity." -#: core/app.py:200 +#: core/app.py:202 msgid "All marked files were copied sucessfully." msgstr "" -#: core/app.py:201 +#: core/app.py:203 msgid "All marked files were moved sucessfully." msgstr "" -#: core/app.py:202 +#: core/app.py:204 msgid "All marked files were sucessfully sent to Trash." msgstr "" -#: core/app.py:250 +#: core/app.py:252 msgid "" "All selected %d matches are going to be ignored in all subsequent scans. " "Continue?" @@ -144,23 +144,47 @@ msgstr "" "Všech %d vybraných shod bude v následujících hledáních ignorováno. " "Pokračovat?" -#: core/app.py:278 +#: core/app.py:280 msgid "Do you really want to remove all %d items from the ignore list?" msgstr "Opravdu chcete odstranit všech %d položek ze seznamu výjimek?" -#: core/app.py:281 +#: core/app.py:283 msgid "Ignore list cleared." msgstr "" -#: core/app.py:357 +#: core/app.py:376 msgid "You have no custom command set up. Set it up in your preferences." msgstr "" "Nedefinoval jste žádný uživatelský příkaz. Nadefinujete ho v předvolbách." -#: core/app.py:442 core/app.py:453 +#: core/app.py:461 core/app.py:472 msgid "You are about to remove %d files from results. Continue?" msgstr "Chystáte se z výsledků odstranit %d souborů. Pokračovat?" -#: core/app.py:275 +#: core/app.py:277 msgid "The ignore list is already empty. Nothing to clear." msgstr "" + +#: core/app.py:321 +msgid "copy" +msgstr "" + +#: core/app.py:321 +msgid "move" +msgstr "" + +#: core/app.py:322 +msgid "Select a directory to {} marked files to" +msgstr "" + +#: core/app.py:336 +msgid "" +"You are about to send %d files to Trash (and hardlink them afterwards). " +"Continue?" +msgstr "" +"Chystáte se vyhodit %d souborů do koše (a následně na ně vytvořit " +"hardlinky). Pokračovat?" + +#: core/app.py:338 +msgid "You are about to send %d files to Trash. Continue?" +msgstr "Chystáte se vyhodit %d souborů do koše. Pokračovat?" diff --git a/locale/cs/LC_MESSAGES/ui.po b/locale/cs/LC_MESSAGES/ui.po index 6cce0778..32e2bc81 100644 --- a/locale/cs/LC_MESSAGES/ui.po +++ b/locale/cs/LC_MESSAGES/ui.po @@ -50,19 +50,7 @@ msgstr "" msgid "Open Debug Log" msgstr "" -#: qt/base/app.py:132 -msgid "copy" -msgstr "" - -#: qt/base/app.py:132 -msgid "move" -msgstr "" - -#: qt/base/app.py:133 -msgid "Select a directory to {} marked files to" -msgstr "Select a directory to {} marked files to" - -#: qt/base/app.py:235 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 msgid "" "A previous action is still hanging in there. You can't start a new one yet. " "Wait a few seconds, then try again." @@ -152,7 +140,7 @@ msgstr "Vyberte soubor s výsledky, který chcete nahrát" msgid "All Files (*.*)" msgstr "" -#: qt/base/directories_dialog.py:205 qt/base/result_window.py:317 +#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 msgid "dupeGuru Results (*.dupeguru)" msgstr "" @@ -398,27 +386,7 @@ msgstr "Výchozí nastavení" msgid "{} Results" msgstr "" -#: qt/base/result_window.py:239 -msgid "Delete duplicates" -msgstr "" - -#: qt/base/result_window.py:240 cocoa/base/en.lproj/Localizable.strings:0 -msgid "You are about to send %d files to Trash. Continue?" -msgstr "Chystáte se vyhodit %d souborů do koše. Pokračovat?" - -#: qt/base/result_window.py:262 -msgid "Delete and hardlink duplicates" -msgstr "" - -#: qt/base/result_window.py:263 cocoa/base/en.lproj/Localizable.strings:0 -msgid "" -"You are about to send %d files to Trash (and hardlink them afterwards). " -"Continue?" -msgstr "" -"Chystáte se vyhodit %d souborů do koše (a následně na ně vytvořit " -"hardlinky). Pokračovat?" - -#: qt/base/result_window.py:316 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 msgid "Select a file to save your results to" msgstr "Vyberte soubor pro uložení výsledků" @@ -836,14 +804,6 @@ msgstr "" msgid "The iPhoto application couldn't be found." msgstr "Nelze najít aplikaci iPhoto." -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to copy marked files to" -msgstr "Select a directory to copy marked files to" - -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to move marked files to" -msgstr "" - #: cocoa/base/en.lproj/Localizable.strings:0 msgid "'%@' already is in the list." msgstr "'%@' already is in the list." diff --git a/locale/de/LC_MESSAGES/core.po b/locale/de/LC_MESSAGES/core.po index b6e7a46f..c2ea9428 100644 --- a/locale/de/LC_MESSAGES/core.po +++ b/locale/de/LC_MESSAGES/core.po @@ -2,25 +2,25 @@ msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" -#: core/app.py:92 +#: core/app.py:93 msgid "will only be able to delete, move or copy 10 duplicates at once" msgstr "" -#: core/app.py:229 +#: core/app.py:231 msgid "" "You cannot delete, move or copy more than 10 duplicates at once in demo " "mode." msgstr "" -#: core/app.py:489 +#: core/app.py:508 msgid "Collecting files to scan" msgstr "Sammle Dateien zum Scannen" -#: core/app.py:500 +#: core/app.py:519 msgid "The selected directories contain no scannable file." msgstr "Der ausgewählte Ordner enthält keine scannbare Dateien." -#: core/app.py:539 +#: core/app.py:558 msgid "%s (%d discarded)" msgstr "%s (%d verworfen)" @@ -120,46 +120,70 @@ msgstr "" msgid "There are no selected duplicates. Nothing has been done." msgstr "" -#: core/app.py:187 +#: core/app.py:189 msgid "No duplicates found." msgstr "Keine Duplikate gefunden." -#: core/app.py:200 +#: core/app.py:202 msgid "All marked files were copied sucessfully." msgstr "" -#: core/app.py:201 +#: core/app.py:203 msgid "All marked files were moved sucessfully." msgstr "" -#: core/app.py:202 +#: core/app.py:204 msgid "All marked files were sucessfully sent to Trash." msgstr "" -#: core/app.py:250 +#: core/app.py:252 msgid "" "All selected %d matches are going to be ignored in all subsequent scans. " "Continue?" msgstr "%d Dateien werden in zukünftigen Scans ignoriert werden. Fortfahren?" -#: core/app.py:278 +#: core/app.py:280 msgid "Do you really want to remove all %d items from the ignore list?" msgstr "Möchten Sie wirklich alle %d Einträge aus der Ignorier-Liste löschen?" -#: core/app.py:281 +#: core/app.py:283 msgid "Ignore list cleared." msgstr "Ignorier-Liste geleert." -#: core/app.py:357 +#: core/app.py:376 msgid "You have no custom command set up. Set it up in your preferences." msgstr "" "Sie haben keinen eigenen Befehl erstellt. Bitte in den Einstellungen " "konfigurieren." -#: core/app.py:442 core/app.py:453 +#: core/app.py:461 core/app.py:472 msgid "You are about to remove %d files from results. Continue?" msgstr "%d Dateien werden aus der Ergebnisliste entfernt. Fortfahren?" -#: core/app.py:275 +#: core/app.py:277 msgid "The ignore list is already empty. Nothing to clear." msgstr "" + +#: core/app.py:321 +msgid "copy" +msgstr "kopieren" + +#: core/app.py:321 +msgid "move" +msgstr "verschieben" + +#: core/app.py:322 +msgid "Select a directory to {} marked files to" +msgstr "Wählen sie einen Ordner zum {} der ausgewählten Dateien" + +#: core/app.py:336 +msgid "" +"You are about to send %d files to Trash (and hardlink them afterwards). " +"Continue?" +msgstr "" +"%d Dateien werden gelöscht und mit physikalischen Verknüpfungen ersetzt. " +"Fortfahren?" + +#: core/app.py:338 +msgid "You are about to send %d files to Trash. Continue?" +msgstr "%d Dateien werden in den Mülleimer zu verschoben. Fortfahren?" diff --git a/locale/de/LC_MESSAGES/ui.po b/locale/de/LC_MESSAGES/ui.po index bf769a5e..18b19d3e 100644 --- a/locale/de/LC_MESSAGES/ui.po +++ b/locale/de/LC_MESSAGES/ui.po @@ -50,19 +50,7 @@ msgstr "Auf Updates überprüfen" msgid "Open Debug Log" msgstr "Debug Log öffnen" -#: qt/base/app.py:132 -msgid "copy" -msgstr "kopieren" - -#: qt/base/app.py:132 -msgid "move" -msgstr "verschieben" - -#: qt/base/app.py:133 -msgid "Select a directory to {} marked files to" -msgstr "Wählen sie einen Ordner zum {} der ausgewählten Dateien" - -#: qt/base/app.py:235 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 msgid "" "A previous action is still hanging in there. You can't start a new one yet. " "Wait a few seconds, then try again." @@ -152,7 +140,7 @@ msgstr "Wählen Sie eine Ergebnisliste zum Laden aus." msgid "All Files (*.*)" msgstr "Alle Dateien (*.*)" -#: qt/base/directories_dialog.py:205 qt/base/result_window.py:317 +#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 msgid "dupeGuru Results (*.dupeguru)" msgstr "dupeGuru Ergebnisse (*.dupeguru)" @@ -407,27 +395,7 @@ msgstr "Voreinstellungen" msgid "{} Results" msgstr "{} (Ergebnisse)" -#: qt/base/result_window.py:239 -msgid "Delete duplicates" -msgstr "Lösche Duplikate" - -#: qt/base/result_window.py:240 cocoa/base/en.lproj/Localizable.strings:0 -msgid "You are about to send %d files to Trash. Continue?" -msgstr "%d Dateien werden in den Mülleimer zu verschoben. Fortfahren?" - -#: qt/base/result_window.py:262 -msgid "Delete and hardlink duplicates" -msgstr "Ersetze Duplikate mit physikalischer Verknüpfung" - -#: qt/base/result_window.py:263 cocoa/base/en.lproj/Localizable.strings:0 -msgid "" -"You are about to send %d files to Trash (and hardlink them afterwards). " -"Continue?" -msgstr "" -"%d Dateien werden gelöscht und mit physikalischen Verknüpfungen ersetzt. " -"Fortfahren?" - -#: qt/base/result_window.py:316 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 msgid "Select a file to save your results to" msgstr "Datei zum Speichern der Ergebnisliste auswählen." @@ -836,14 +804,6 @@ msgstr "" msgid "The iPhoto application couldn't be found." msgstr "The iPhoto application couldn't be found." -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to copy marked files to" -msgstr "Select a directory to copy marked files to" - -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to move marked files to" -msgstr "" - #: cocoa/base/en.lproj/Localizable.strings:0 msgid "'%@' already is in the list." msgstr "'%@' already is in the list." diff --git a/locale/fr/LC_MESSAGES/core.po b/locale/fr/LC_MESSAGES/core.po index df5398db..6125ffa3 100644 --- a/locale/fr/LC_MESSAGES/core.po +++ b/locale/fr/LC_MESSAGES/core.po @@ -2,25 +2,25 @@ msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" -#: core/app.py:92 +#: core/app.py:93 msgid "will only be able to delete, move or copy 10 duplicates at once" msgstr "" -#: core/app.py:229 +#: core/app.py:231 msgid "" "You cannot delete, move or copy more than 10 duplicates at once in demo " "mode." msgstr "" -#: core/app.py:489 +#: core/app.py:508 msgid "Collecting files to scan" msgstr "Collecte des fichiers à scanner" -#: core/app.py:500 +#: core/app.py:519 msgid "The selected directories contain no scannable file." msgstr "Les dossiers sélectionnés ne contiennent pas de fichiers valides." -#: core/app.py:539 +#: core/app.py:558 msgid "%s (%d discarded)" msgstr "%s (%d hors-groupe)" @@ -120,47 +120,70 @@ msgstr "Aucun doublon marqué. Rien à faire." msgid "There are no selected duplicates. Nothing has been done." msgstr "Aucun doublon sélectionné. Rien à faire." -#: core/app.py:187 +#: core/app.py:189 msgid "No duplicates found." msgstr "Aucun doublon trouvé." -#: core/app.py:200 +#: core/app.py:202 msgid "All marked files were copied sucessfully." msgstr "Tous les fichiers marqués ont été copiés correctement." -#: core/app.py:201 +#: core/app.py:203 msgid "All marked files were moved sucessfully." msgstr "Tous les fichiers marqués ont été déplacés correctement." -#: core/app.py:202 +#: core/app.py:204 msgid "All marked files were sucessfully sent to Trash." -msgstr "Tous les fichiers marqués ont été correctement envoyés à la corbeille." +msgstr "" +"Tous les fichiers marqués ont été correctement envoyés à la corbeille." -#: core/app.py:250 +#: core/app.py:252 msgid "" "All selected %d matches are going to be ignored in all subsequent scans. " "Continue?" msgstr "%d fichiers seront ignorés des prochains scans. Continuer?" -#: core/app.py:278 +#: core/app.py:280 msgid "Do you really want to remove all %d items from the ignore list?" msgstr "" "Voulez-vous vider la liste de fichiers ignorés des %d items qu'elle " "contient?" -#: core/app.py:281 +#: core/app.py:283 msgid "Ignore list cleared." msgstr "La liste de doublons ignorés a été vidée." -#: core/app.py:357 +#: core/app.py:376 msgid "You have no custom command set up. Set it up in your preferences." msgstr "" "Vous n'avez pas de commande personnalisée. Ajoutez-la dans vos préférences." -#: core/app.py:442 core/app.py:453 +#: core/app.py:461 core/app.py:472 msgid "You are about to remove %d files from results. Continue?" msgstr "%d fichiers seront retirés des résultats. Continuer?" -#: core/app.py:275 +#: core/app.py:277 msgid "The ignore list is already empty. Nothing to clear." msgstr "La liste est vide. Il n'y a rien à vider" + +#: core/app.py:321 +msgid "copy" +msgstr "copier" + +#: core/app.py:321 +msgid "move" +msgstr "déplacer" + +#: core/app.py:322 +msgid "Select a directory to {} marked files to" +msgstr "Sélectionnez un dossier vers lequel {} les fichiers marqués." + +#: core/app.py:336 +msgid "" +"You are about to send %d files to Trash (and hardlink them afterwards). " +"Continue?" +msgstr "%d fichiers seront envoyés à la corbeille (puis 'hardlinkés'). Continuer?" + +#: core/app.py:338 +msgid "You are about to send %d files to Trash. Continue?" +msgstr "%d fichiers seront envoyés à la corbeille. Continuer?" diff --git a/locale/fr/LC_MESSAGES/ui.po b/locale/fr/LC_MESSAGES/ui.po index c3ffe9b2..ac2043ce 100644 --- a/locale/fr/LC_MESSAGES/ui.po +++ b/locale/fr/LC_MESSAGES/ui.po @@ -50,19 +50,7 @@ msgstr "Vérifier les mises à jour" msgid "Open Debug Log" msgstr "Ouvrir logs de déboguage" -#: qt/base/app.py:132 -msgid "copy" -msgstr "copier" - -#: qt/base/app.py:132 -msgid "move" -msgstr "déplacer" - -#: qt/base/app.py:133 -msgid "Select a directory to {} marked files to" -msgstr "Sélectionnez un dossier vers lequel {} les fichiers marqués." - -#: qt/base/app.py:235 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 msgid "" "A previous action is still hanging in there. You can't start a new one yet. " "Wait a few seconds, then try again." @@ -152,7 +140,7 @@ msgstr "Sélectionnez un fichier résultats à charger" msgid "All Files (*.*)" msgstr "Tout les fichiers (*.*)" -#: qt/base/directories_dialog.py:205 qt/base/result_window.py:317 +#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 msgid "dupeGuru Results (*.dupeguru)" msgstr "Résultats dupeGuru (*.dupeguru)" @@ -409,26 +397,7 @@ msgstr "Réinitialiser" msgid "{} Results" msgstr "{} (Résultats)" -#: qt/base/result_window.py:239 -msgid "Delete duplicates" -msgstr "Effacement de doublons" - -#: qt/base/result_window.py:240 cocoa/base/en.lproj/Localizable.strings:0 -msgid "You are about to send %d files to Trash. Continue?" -msgstr "%d fichiers seront envoyés à la corbeille. Continuer?" - -#: qt/base/result_window.py:262 -msgid "Delete and hardlink duplicates" -msgstr "Hardlinking de doublons" - -#: qt/base/result_window.py:263 cocoa/base/en.lproj/Localizable.strings:0 -msgid "" -"You are about to send %d files to Trash (and hardlink them afterwards). " -"Continue?" -msgstr "" -"%d fichiers seront envoyés à la corbeille (puis 'hardlinkés'). Continuer?" - -#: qt/base/result_window.py:316 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 msgid "Select a file to save your results to" msgstr "Sélectionnez un fichier résultats dans lequel sauvegarder" @@ -846,14 +815,6 @@ msgstr "" msgid "The iPhoto application couldn't be found." msgstr "iPhoto n'a pas pu être trouvée dans vos applications." -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to copy marked files to" -msgstr "Sélectionnez un dossier vers lequel copier les fichiers" - -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to move marked files to" -msgstr "Sélectionnez un dossier vers lequel déplacer les fichiers" - #: cocoa/base/en.lproj/Localizable.strings:0 msgid "'%@' already is in the list." msgstr "'%@' est déjà dans la liste." diff --git a/locale/hy/LC_MESSAGES/core.po b/locale/hy/LC_MESSAGES/core.po index 3e7f21e0..094c3d63 100755 --- a/locale/hy/LC_MESSAGES/core.po +++ b/locale/hy/LC_MESSAGES/core.po @@ -13,12 +13,12 @@ msgstr "" "X-Poedit-Language: Armenian\n" "X-Poedit-SourceCharset: utf-8\n" -#: core/app.py:92 +#: core/app.py:93 msgid "will only be able to delete, move or copy 10 duplicates at once" msgstr "" "միաժամանակ հնարավոր է ջնջել, տեղափոխել կամ պատճենել միայն 10 օրինակներ" -#: core/app.py:229 +#: core/app.py:231 msgid "" "You cannot delete, move or copy more than 10 duplicates at once in demo " "mode." @@ -26,15 +26,15 @@ msgstr "" "Չեք կարող ջնջել, տեղափձոխել կամ պատճենել ավելի քան 10 օրինակներ փորձնական " "եղանակում:" -#: core/app.py:489 +#: core/app.py:508 msgid "Collecting files to scan" msgstr "Հավաքվում են ֆայլեր՝ ստուգելու համար" -#: core/app.py:500 +#: core/app.py:519 msgid "The selected directories contain no scannable file." msgstr "Ընտրված թղթապանակները պարունակում են չստուգվող ֆայլ:" -#: core/app.py:539 +#: core/app.py:558 msgid "%s (%d discarded)" msgstr "%s (%d անպիտան)" @@ -134,45 +134,67 @@ msgstr "" msgid "There are no selected duplicates. Nothing has been done." msgstr "" -#: core/app.py:187 +#: core/app.py:189 msgid "No duplicates found." msgstr "Կրկնօրինակներ չկան:" -#: core/app.py:200 +#: core/app.py:202 msgid "All marked files were copied sucessfully." msgstr "Բոլոր նշված ֆայլերը հաջողությամբ պատճենվել են:" -#: core/app.py:201 +#: core/app.py:203 msgid "All marked files were moved sucessfully." msgstr "Բոլոր նշված ֆայլերը հաջողությամբ տեղափոխվել են:" -#: core/app.py:202 +#: core/app.py:204 msgid "All marked files were sucessfully sent to Trash." msgstr "Բոլոր նշված ֆայլերը հաջողությամբ Ջնջվել են:" -#: core/app.py:250 +#: core/app.py:252 msgid "" "All selected %d matches are going to be ignored in all subsequent scans. " "Continue?" msgstr "" "Ընտրված %d համընկնումները կանտեսվեն հետագա բոլոր ստուգումներից: Շարունակե՞լ:" -#: core/app.py:278 +#: core/app.py:280 msgid "Do you really want to remove all %d items from the ignore list?" msgstr "Ցանկանու՞մ եք հեռացնել բոլոր %d ֆայլերը անտեսումների ցանկից:" -#: core/app.py:281 +#: core/app.py:283 msgid "Ignore list cleared." msgstr "Անտեսումների ցանկը մաքրվեց:" -#: core/app.py:357 +#: core/app.py:376 msgid "You have no custom command set up. Set it up in your preferences." msgstr "Դուք չեք կատարել Հրամանի ընտրություն: Կատարեք այն կարգավորումներում:" -#: core/app.py:442 core/app.py:453 +#: core/app.py:461 core/app.py:472 msgid "You are about to remove %d files from results. Continue?" msgstr "Դուք պատրաստվում եք ջնջելու %d ֆայլեր: Շարունակե՞լ:" -#: core/app.py:275 +#: core/app.py:277 msgid "The ignore list is already empty. Nothing to clear." msgstr "" + +#: core/app.py:321 +msgid "copy" +msgstr "պատճենել" + +#: core/app.py:321 +msgid "move" +msgstr "տեղափոխել" + +#: core/app.py:322 +msgid "Select a directory to {} marked files to" +msgstr "Ընտրել թղթապանակ՝ {} նշված ֆայլերի համար" + +#: core/app.py:336 +msgid "" +"You are about to send %d files to Trash (and hardlink them afterwards). " +"Continue?" +msgstr "Դուք ուղարկում եք %d ֆայլերը Աղբարկղ: Շարունակե՞լ:" + +#: core/app.py:338 +msgid "You are about to send %d files to Trash. Continue?" +msgstr "%d ֆայլերը տեղափոխվելու են Աղբարկղ: Շարունակե՞լ:" diff --git a/locale/hy/LC_MESSAGES/ui.po b/locale/hy/LC_MESSAGES/ui.po index 23656d1c..c4c3f750 100755 --- a/locale/hy/LC_MESSAGES/ui.po +++ b/locale/hy/LC_MESSAGES/ui.po @@ -85,19 +85,7 @@ msgstr "Ստուգել թարմացումները" msgid "Open Debug Log" msgstr "Բացել Սխալների մատյանը" -#: qt/base/app.py:132 -msgid "copy" -msgstr "պատճենել" - -#: qt/base/app.py:132 -msgid "move" -msgstr "տեղափոխել" - -#: qt/base/app.py:133 -msgid "Select a directory to {} marked files to" -msgstr "Ընտրել թղթապանակ՝ {} նշված ֆայլերի համար" - -#: qt/base/app.py:235 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 msgid "" "A previous action is still hanging in there. You can't start a new one yet. " "Wait a few seconds, then try again." @@ -187,7 +175,7 @@ msgstr "Ընտրեք արդյունքի ֆայլը՝ բացելու համար" msgid "All Files (*.*)" msgstr "Բոլոր ֆայլերը (*.*)" -#: qt/base/directories_dialog.py:205 qt/base/result_window.py:317 +#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 msgid "dupeGuru Results (*.dupeguru)" msgstr "dupeGuru-ի արդյունքները (*.dupeguru)" @@ -442,25 +430,7 @@ msgstr "Ետարկել ծրագրայինի" msgid "{} Results" msgstr "{} Արդյունքներ" -#: qt/base/result_window.py:239 -msgid "Delete duplicates" -msgstr "Ջնջել կրկնօրինակները" - -#: qt/base/result_window.py:240 cocoa/base/en.lproj/Localizable.strings:0 -msgid "You are about to send %d files to Trash. Continue?" -msgstr "%d ֆայլերը տեղափոխվելու են Աղբարկղ: Շարունակե՞լ:" - -#: qt/base/result_window.py:262 -msgid "Delete and hardlink duplicates" -msgstr "Ջնջել և ձեռքի կրկնօրինակները" - -#: qt/base/result_window.py:263 cocoa/base/en.lproj/Localizable.strings:0 -msgid "" -"You are about to send %d files to Trash (and hardlink them afterwards). " -"Continue?" -msgstr "Դուք ուղարկում եք %d ֆայլերը Աղբարկղ: Շարունակե՞լ:" - -#: qt/base/result_window.py:316 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 msgid "Select a file to save your results to" msgstr "Ընտրեք ֆայլը՝ պահպանելու արդյունքները՝" @@ -615,14 +585,6 @@ msgstr "Բացել ֆայլից..." msgid "Reset to Default" msgstr "Ետարկել ծրագրայինի" -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to copy marked files to" -msgstr "Ընտրել թղթապանակ՝ պատճենելու համար ֆայլերը՝" - -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to move marked files to" -msgstr "Ընտրել թղթապանակ՝ տեղափոխելու համար ֆայլերը՝" - #: cocoa/base/en.lproj/Localizable.strings:0 msgid "'%@' already is in the list." msgstr "'%@'-ը արդեն առկա է ցանկում:" diff --git a/locale/it/LC_MESSAGES/core.po b/locale/it/LC_MESSAGES/core.po index 3bd7ef3a..b571c164 100644 --- a/locale/it/LC_MESSAGES/core.po +++ b/locale/it/LC_MESSAGES/core.po @@ -2,25 +2,25 @@ msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" -#: core/app.py:92 +#: core/app.py:93 msgid "will only be able to delete, move or copy 10 duplicates at once" msgstr "" -#: core/app.py:229 +#: core/app.py:231 msgid "" "You cannot delete, move or copy more than 10 duplicates at once in demo " "mode." msgstr "" -#: core/app.py:489 +#: core/app.py:508 msgid "Collecting files to scan" msgstr "Raccolta file da scansionare" -#: core/app.py:500 +#: core/app.py:519 msgid "The selected directories contain no scannable file." msgstr "Le cartelle selezionate non contengono file da scansionare." -#: core/app.py:539 +#: core/app.py:558 msgid "%s (%d discarded)" msgstr "%s (%d scartati)" @@ -121,23 +121,23 @@ msgstr "" msgid "There are no selected duplicates. Nothing has been done." msgstr "" -#: core/app.py:187 +#: core/app.py:189 msgid "No duplicates found." msgstr "Non sono stati trovati dei duplicati." -#: core/app.py:200 +#: core/app.py:202 msgid "All marked files were copied sucessfully." msgstr "Tutti i file marcati sono stati copiati correttamente." -#: core/app.py:201 +#: core/app.py:203 msgid "All marked files were moved sucessfully." msgstr "Tutti i file marcati sono stati spostati correttamente." -#: core/app.py:202 +#: core/app.py:204 msgid "All marked files were sucessfully sent to Trash." msgstr "Tutti i file marcati sono stati inviati nel cestino." -#: core/app.py:250 +#: core/app.py:252 msgid "" "All selected %d matches are going to be ignored in all subsequent scans. " "Continue?" @@ -145,26 +145,49 @@ msgstr "" "Tutti i %d elementi che coincidono verranno ignorati in tutte le scansioni " "successive. Continuare?" -#: core/app.py:278 +#: core/app.py:280 msgid "Do you really want to remove all %d items from the ignore list?" msgstr "" "Vuoi veramente rimuovere tutti i %d elementi dalla lista dei file da " "ignorare?" -#: core/app.py:281 +#: core/app.py:283 msgid "Ignore list cleared." msgstr "" -#: core/app.py:357 +#: core/app.py:376 msgid "You have no custom command set up. Set it up in your preferences." msgstr "" "Non hai impostato nessun comando personalizzato. Impostalo nelle tue " "preferenze." -#: core/app.py:442 core/app.py:453 +#: core/app.py:461 core/app.py:472 msgid "You are about to remove %d files from results. Continue?" msgstr "Stai per rimuovere %d file dai risultati. Continuare?" -#: core/app.py:275 +#: core/app.py:277 msgid "The ignore list is already empty. Nothing to clear." msgstr "" + +#: core/app.py:321 +msgid "copy" +msgstr "" + +#: core/app.py:321 +msgid "move" +msgstr "" + +#: core/app.py:322 +msgid "Select a directory to {} marked files to" +msgstr "" + +#: core/app.py:336 +msgid "" +"You are about to send %d files to Trash (and hardlink them afterwards). " +"Continue?" +msgstr "" +"Stai per inviare %d file nel cestino (compresi gli hardlink). Continuare?" + +#: core/app.py:338 +msgid "You are about to send %d files to Trash. Continue?" +msgstr "Stai per inviare %d file nel cestino. Continuare?" diff --git a/locale/it/LC_MESSAGES/ui.po b/locale/it/LC_MESSAGES/ui.po index ccd6bdf9..d7d7da74 100644 --- a/locale/it/LC_MESSAGES/ui.po +++ b/locale/it/LC_MESSAGES/ui.po @@ -74,19 +74,7 @@ msgstr "" msgid "Open Debug Log" msgstr "" -#: qt/base/app.py:132 -msgid "copy" -msgstr "" - -#: qt/base/app.py:132 -msgid "move" -msgstr "" - -#: qt/base/app.py:133 -msgid "Select a directory to {} marked files to" -msgstr "" - -#: qt/base/app.py:235 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 msgid "" "A previous action is still hanging in there. You can't start a new one yet. " "Wait a few seconds, then try again." @@ -178,7 +166,7 @@ msgstr "Seleziona un risultato (file) da caricare" msgid "All Files (*.*)" msgstr "" -#: qt/base/directories_dialog.py:205 qt/base/result_window.py:317 +#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 msgid "dupeGuru Results (*.dupeguru)" msgstr "" @@ -435,26 +423,7 @@ msgstr "Ripristina impostazioni predefinite" msgid "{} Results" msgstr "" -#: qt/base/result_window.py:239 -msgid "Delete duplicates" -msgstr "" - -#: qt/base/result_window.py:240 cocoa/base/en.lproj/Localizable.strings:0 -msgid "You are about to send %d files to Trash. Continue?" -msgstr "Stai per inviare %d file nel cestino. Continuare?" - -#: qt/base/result_window.py:262 -msgid "Delete and hardlink duplicates" -msgstr "" - -#: qt/base/result_window.py:263 cocoa/base/en.lproj/Localizable.strings:0 -msgid "" -"You are about to send %d files to Trash (and hardlink them afterwards). " -"Continue?" -msgstr "" -"Stai per inviare %d file nel cestino (compresi gli hardlink). Continuare?" - -#: qt/base/result_window.py:316 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 msgid "Select a file to save your results to" msgstr "Seleziona un file dove salvare i tuoi risultati" @@ -851,14 +820,6 @@ msgstr "Rimuovi le cartelle vuote dopo aver cancellato e spostato" msgid "dupeGuru PE Preferences" msgstr "Preferenze di dupeGuru PE" -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to copy marked files to" -msgstr "Seleziona una cartella in cui copiare i file marcati" - -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to move marked files to" -msgstr "Seleziona una cartella in cui spostare i file marcati" - #: cocoa/base/en.lproj/Localizable.strings:0 msgid "'%@' already is in the list." msgstr "'%@' è già nella lista." diff --git a/locale/ru/LC_MESSAGES/core.po b/locale/ru/LC_MESSAGES/core.po index 0e3a2187..80eca267 100755 --- a/locale/ru/LC_MESSAGES/core.po +++ b/locale/ru/LC_MESSAGES/core.po @@ -12,12 +12,12 @@ msgstr "" "X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Language: Russian\n" -#: core/app.py:92 +#: core/app.py:93 msgid "will only be able to delete, move or copy 10 duplicates at once" msgstr "" "сможете только для удаления, перемещения или копирования 10 копий сразу" -#: core/app.py:229 +#: core/app.py:231 msgid "" "You cannot delete, move or copy more than 10 duplicates at once in demo " "mode." @@ -25,15 +25,15 @@ msgstr "" "Вы не можете удалять, перемещать или копировать более 10 дубликатов сразу в " "демонстрационном режиме." -#: core/app.py:489 +#: core/app.py:508 msgid "Collecting files to scan" msgstr "Сбор файлов для сканирования" -#: core/app.py:500 +#: core/app.py:519 msgid "The selected directories contain no scannable file." msgstr "Выбранных директорий не содержат сканируемых файлов." -#: core/app.py:539 +#: core/app.py:558 msgid "%s (%d discarded)" msgstr "%s. (%d отменено)" @@ -133,23 +133,23 @@ msgstr "" msgid "There are no selected duplicates. Nothing has been done." msgstr "" -#: core/app.py:187 +#: core/app.py:189 msgid "No duplicates found." msgstr "Дубликаты не найдены." -#: core/app.py:200 +#: core/app.py:202 msgid "All marked files were copied sucessfully." msgstr "Все выбранные файлы были скопированы успешно." -#: core/app.py:201 +#: core/app.py:203 msgid "All marked files were moved sucessfully." msgstr "Все выбранные файлы были перемещены успешно." -#: core/app.py:202 +#: core/app.py:204 msgid "All marked files were sucessfully sent to Trash." msgstr "Все выбранные файлы были успешно отправлены в корзину." -#: core/app.py:250 +#: core/app.py:252 msgid "" "All selected %d matches are going to be ignored in all subsequent scans. " "Continue?" @@ -157,24 +157,48 @@ msgstr "" "Все выбранные %d матчей будут игнорироваться во всех последующих проверок. " "Продолжить?" -#: core/app.py:278 +#: core/app.py:280 msgid "Do you really want to remove all %d items from the ignore list?" msgstr "Вы действительно хотите удалить все элементы %d из черного списка?" -#: core/app.py:281 +#: core/app.py:283 msgid "Ignore list cleared." msgstr "Черный список очищается." -#: core/app.py:357 +#: core/app.py:376 msgid "You have no custom command set up. Set it up in your preferences." msgstr "" "У вас нет пользовательской команды создали. Установите его в ваших " "предпочтениях." -#: core/app.py:442 core/app.py:453 +#: core/app.py:461 core/app.py:472 msgid "You are about to remove %d files from results. Continue?" msgstr "Вы собираетесь удалить файлы %d из результата поиска. Продолжить?" -#: core/app.py:275 +#: core/app.py:277 msgid "The ignore list is already empty. Nothing to clear." msgstr "" + +#: core/app.py:321 +msgid "copy" +msgstr "копия" + +#: core/app.py:321 +msgid "move" +msgstr "перемещение" + +#: core/app.py:322 +msgid "Select a directory to {} marked files to" +msgstr "Выберите каталог на {} отмеченные файлы" + +#: core/app.py:336 +msgid "" +"You are about to send %d files to Trash (and hardlink them afterwards). " +"Continue?" +msgstr "" +"Вы собираетесь отправить%d файлы в корзину (и жесткую них позже). " +"Продолжить?" + +#: core/app.py:338 +msgid "You are about to send %d files to Trash. Continue?" +msgstr "Вы собираетесь отправить %d файлы в корзину. Продолжить?" diff --git a/locale/ru/LC_MESSAGES/ui.po b/locale/ru/LC_MESSAGES/ui.po index 58f28296..f7b975a2 100755 --- a/locale/ru/LC_MESSAGES/ui.po +++ b/locale/ru/LC_MESSAGES/ui.po @@ -84,19 +84,7 @@ msgstr "Проверить обновления" msgid "Open Debug Log" msgstr "Открыть журнал Debug" -#: qt/base/app.py:132 -msgid "copy" -msgstr "копия" - -#: qt/base/app.py:132 -msgid "move" -msgstr "перемещение" - -#: qt/base/app.py:133 -msgid "Select a directory to {} marked files to" -msgstr "Выберите каталог на {} отмеченные файлы" - -#: qt/base/app.py:235 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 msgid "" "A previous action is still hanging in there. You can't start a new one yet. " "Wait a few seconds, then try again." @@ -186,7 +174,7 @@ msgstr "Выберите файл результатов для загрузки msgid "All Files (*.*)" msgstr "Все файлы (*.*)" -#: qt/base/directories_dialog.py:205 qt/base/result_window.py:317 +#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 msgid "dupeGuru Results (*.dupeguru)" msgstr "dupeGuru результаты (*. dupeguru)" @@ -445,27 +433,7 @@ msgstr "Восстановить значения по умолчанию" msgid "{} Results" msgstr "{} Результаты" -#: qt/base/result_window.py:239 -msgid "Delete duplicates" -msgstr "Удаление дубликатов" - -#: qt/base/result_window.py:240 cocoa/base/en.lproj/Localizable.strings:0 -msgid "You are about to send %d files to Trash. Continue?" -msgstr "Вы собираетесь отправить %d файлы в корзину. Продолжить?" - -#: qt/base/result_window.py:262 -msgid "Delete and hardlink duplicates" -msgstr "Удалить и жесткая ссылку дубликатов" - -#: qt/base/result_window.py:263 cocoa/base/en.lproj/Localizable.strings:0 -msgid "" -"You are about to send %d files to Trash (and hardlink them afterwards). " -"Continue?" -msgstr "" -"Вы собираетесь отправить%d файлы в корзину (и жесткую них позже). " -"Продолжить?" - -#: qt/base/result_window.py:316 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 msgid "Select a file to save your results to" msgstr "Выберите файл, чтобы сохранить ваши результаты" @@ -620,14 +588,6 @@ msgstr "Загрузить из файла ..." msgid "Reset to Default" msgstr "Восстановить значения по умолчанию" -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to copy marked files to" -msgstr "Выберите каталог для копирования отмеченные файлов" - -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to move marked files to" -msgstr "Выберите каталог, чтобы переместить отмеченные файлы" - #: cocoa/base/en.lproj/Localizable.strings:0 msgid "'%@' already is in the list." msgstr "'%@' Уже есть в списке. " diff --git a/locale/ui.pot b/locale/ui.pot index d13d93b7..8573c978 100644 --- a/locale/ui.pot +++ b/locale/ui.pot @@ -97,19 +97,7 @@ msgstr "" msgid "Open Debug Log" msgstr "" -#: qt/base/app.py:132 -msgid "copy" -msgstr "" - -#: qt/base/app.py:132 -msgid "move" -msgstr "" - -#: qt/base/app.py:133 -msgid "Select a directory to {} marked files to" -msgstr "" - -#: qt/base/app.py:235 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 msgid "" "A previous action is still hanging in there. You can't start a new one yet. " "Wait a few seconds, then try again." @@ -197,7 +185,7 @@ msgstr "" msgid "All Files (*.*)" msgstr "" -#: qt/base/directories_dialog.py:205 qt/base/result_window.py:317 +#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 msgid "dupeGuru Results (*.dupeguru)" msgstr "" @@ -455,25 +443,7 @@ msgstr "" msgid "Delta Values" msgstr "" -#: qt/base/result_window.py:239 -msgid "Delete duplicates" -msgstr "" - -#: qt/base/result_window.py:240 cocoa/base/en.lproj/Localizable.strings:0 -msgid "You are about to send %d files to Trash. Continue?" -msgstr "" - -#: qt/base/result_window.py:262 -msgid "Delete and hardlink duplicates" -msgstr "" - -#: qt/base/result_window.py:263 cocoa/base/en.lproj/Localizable.strings:0 -msgid "" -"You are about to send %d files to Trash (and hardlink them afterwards). " -"Continue?" -msgstr "" - -#: qt/base/result_window.py:316 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 msgid "Select a file to save your results to" msgstr "" @@ -628,14 +598,6 @@ msgstr "" msgid "Reset to Default" msgstr "" -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to copy marked files to" -msgstr "" - -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to move marked files to" -msgstr "" - #: cocoa/base/en.lproj/Localizable.strings:0 msgid "'%@' already is in the list." msgstr "" diff --git a/locale/uk/LC_MESSAGES/core.po b/locale/uk/LC_MESSAGES/core.po index 52a06973..97b1ac57 100755 --- a/locale/uk/LC_MESSAGES/core.po +++ b/locale/uk/LC_MESSAGES/core.po @@ -12,12 +12,12 @@ msgstr "" "X-Poedit-Country: UKRAINE\n" "X-Poedit-Language: Ukrainian\n" -#: core/app.py:92 +#: core/app.py:93 msgid "will only be able to delete, move or copy 10 duplicates at once" msgstr "" "зможете тільки для видалення, переміщення або копіювання 10 копій відразу" -#: core/app.py:229 +#: core/app.py:231 msgid "" "You cannot delete, move or copy more than 10 duplicates at once in demo " "mode." @@ -25,15 +25,15 @@ msgstr "" "Ви не можете видаляти, переміщати або копіювати більше 10 дублікатів відразу" " в демонстраційному режимі." -#: core/app.py:489 +#: core/app.py:508 msgid "Collecting files to scan" msgstr "Збір файлів для сканування" -#: core/app.py:500 +#: core/app.py:519 msgid "The selected directories contain no scannable file." msgstr "Вибраних директорій не містять сканованих файлів." -#: core/app.py:539 +#: core/app.py:558 msgid "%s (%d discarded)" msgstr "%s (%d відкидаються)" @@ -133,23 +133,23 @@ msgstr "" msgid "There are no selected duplicates. Nothing has been done." msgstr "" -#: core/app.py:187 +#: core/app.py:189 msgid "No duplicates found." msgstr "Ні дублікати знайдені." -#: core/app.py:200 +#: core/app.py:202 msgid "All marked files were copied sucessfully." msgstr "Всі вибрані файли були скопійовані успішно." -#: core/app.py:201 +#: core/app.py:203 msgid "All marked files were moved sucessfully." msgstr "Всі вибрані файли були переміщені успішно." -#: core/app.py:202 +#: core/app.py:204 msgid "All marked files were sucessfully sent to Trash." msgstr "Всі вибрані файли були успішно відправлені в корзину." -#: core/app.py:250 +#: core/app.py:252 msgid "" "All selected %d matches are going to be ignored in all subsequent scans. " "Continue?" @@ -157,24 +157,48 @@ msgstr "" "Всі вибрані %d матчів будуть ігноруватися у всіх наступних перевірок. " "Продовжити?" -#: core/app.py:278 +#: core/app.py:280 msgid "Do you really want to remove all %d items from the ignore list?" msgstr "Ви дійсно хочете видалити всі елементи %d з чорного списку?" -#: core/app.py:281 +#: core/app.py:283 msgid "Ignore list cleared." msgstr "Чорний список очищається." -#: core/app.py:357 +#: core/app.py:376 msgid "You have no custom command set up. Set it up in your preferences." msgstr "" "У вас немає користувальницької команди створили. Встановіть його в ваші " "уподобання." -#: core/app.py:442 core/app.py:453 +#: core/app.py:461 core/app.py:472 msgid "You are about to remove %d files from results. Continue?" msgstr "Ви збираєтеся видалити файли %d результату пошуку. Продовжити?" -#: core/app.py:275 +#: core/app.py:277 msgid "The ignore list is already empty. Nothing to clear." msgstr "" + +#: core/app.py:321 +msgid "copy" +msgstr "копія" + +#: core/app.py:321 +msgid "move" +msgstr "переміщати" + +#: core/app.py:322 +msgid "Select a directory to {} marked files to" +msgstr "Виберіть каталог на {} відмічені файли" + +#: core/app.py:336 +msgid "" +"You are about to send %d files to Trash (and hardlink them afterwards). " +"Continue?" +msgstr "" +"Ви збираєтеся відправити %d файли до кошика (і жорстку них пізніше). " +"Продовжити?" + +#: core/app.py:338 +msgid "You are about to send %d files to Trash. Continue?" +msgstr "Ви збираєтеся відправити %d файли в корзину. Продовжити?" diff --git a/locale/uk/LC_MESSAGES/ui.po b/locale/uk/LC_MESSAGES/ui.po index 93ead507..81326d48 100755 --- a/locale/uk/LC_MESSAGES/ui.po +++ b/locale/uk/LC_MESSAGES/ui.po @@ -84,19 +84,7 @@ msgstr "Перевірити оновлення" msgid "Open Debug Log" msgstr "Відкрити журнал Debug" -#: qt/base/app.py:132 -msgid "copy" -msgstr "копія" - -#: qt/base/app.py:132 -msgid "move" -msgstr "переміщати" - -#: qt/base/app.py:133 -msgid "Select a directory to {} marked files to" -msgstr "Виберіть каталог на {} відмічені файли" - -#: qt/base/app.py:235 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 msgid "" "A previous action is still hanging in there. You can't start a new one yet. " "Wait a few seconds, then try again." @@ -186,7 +174,7 @@ msgstr "Виберіть файл результатів для завантаж msgid "All Files (*.*)" msgstr "Всі файли (*.*)" -#: qt/base/directories_dialog.py:205 qt/base/result_window.py:317 +#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 msgid "dupeGuru Results (*.dupeguru)" msgstr "dupeGuru Результати (*.dupeguru) " @@ -441,27 +429,7 @@ msgstr "Відновити налаштування за замовчуванн msgid "{} Results" msgstr "{} Результати" -#: qt/base/result_window.py:239 -msgid "Delete duplicates" -msgstr "Видалення дублікатів" - -#: qt/base/result_window.py:240 cocoa/base/en.lproj/Localizable.strings:0 -msgid "You are about to send %d files to Trash. Continue?" -msgstr "Ви збираєтеся відправити %d файли в корзину. Продовжити?" - -#: qt/base/result_window.py:262 -msgid "Delete and hardlink duplicates" -msgstr "Видалити і жорстку дублікатів" - -#: qt/base/result_window.py:263 cocoa/base/en.lproj/Localizable.strings:0 -msgid "" -"You are about to send %d files to Trash (and hardlink them afterwards). " -"Continue?" -msgstr "" -"Ви збираєтеся відправити %d файли до кошика (і жорстку них пізніше). " -"Продовжити?" - -#: qt/base/result_window.py:316 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 msgid "Select a file to save your results to" msgstr "Виберіть файл, щоб зберегти ваші результати" @@ -616,14 +584,6 @@ msgstr "Завантажити з файлу ..." msgid "Reset to Default" msgstr "Відновити налаштування за замовчуванням" -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to copy marked files to" -msgstr "Виберіть каталог для копіювання відмічені файли" - -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to move marked files to" -msgstr "Виберіть каталог, щоб перемістити відмічені файли" - #: cocoa/base/en.lproj/Localizable.strings:0 msgid "'%@' already is in the list." msgstr "'%@' Вже є в списку." diff --git a/locale/zh_CN/LC_MESSAGES/core.po b/locale/zh_CN/LC_MESSAGES/core.po index 6455571b..003823af 100644 --- a/locale/zh_CN/LC_MESSAGES/core.po +++ b/locale/zh_CN/LC_MESSAGES/core.po @@ -2,25 +2,25 @@ msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" -#: core/app.py:92 +#: core/app.py:93 msgid "will only be able to delete, move or copy 10 duplicates at once" msgstr "" -#: core/app.py:229 +#: core/app.py:231 msgid "" "You cannot delete, move or copy more than 10 duplicates at once in demo " "mode." msgstr "" -#: core/app.py:489 +#: core/app.py:508 msgid "Collecting files to scan" msgstr "收集文件以备扫描" -#: core/app.py:500 +#: core/app.py:519 msgid "The selected directories contain no scannable file." msgstr "所选文件夹中不包含可供扫描的文件。" -#: core/app.py:539 +#: core/app.py:558 msgid "%s (%d discarded)" msgstr "%s (%d 无效)" @@ -120,44 +120,66 @@ msgstr "" msgid "There are no selected duplicates. Nothing has been done." msgstr "" -#: core/app.py:187 +#: core/app.py:189 msgid "No duplicates found." msgstr "没有找到重复文件。" -#: core/app.py:200 +#: core/app.py:202 msgid "All marked files were copied sucessfully." msgstr "" -#: core/app.py:201 +#: core/app.py:203 msgid "All marked files were moved sucessfully." msgstr "" -#: core/app.py:202 +#: core/app.py:204 msgid "All marked files were sucessfully sent to Trash." msgstr "" -#: core/app.py:250 +#: core/app.py:252 msgid "" "All selected %d matches are going to be ignored in all subsequent scans. " "Continue?" msgstr "目前已选的 %d 个匹配项将在后续的扫描中被忽略。继续吗?" -#: core/app.py:278 +#: core/app.py:280 msgid "Do you really want to remove all %d items from the ignore list?" msgstr "确定要从忽略列表中移除 %d 项吗?" -#: core/app.py:281 +#: core/app.py:283 msgid "Ignore list cleared." msgstr "忽略列表已清空。" -#: core/app.py:357 +#: core/app.py:376 msgid "You have no custom command set up. Set it up in your preferences." msgstr "你没有设定自定义命令。请在首选项中进行设定。" -#: core/app.py:442 core/app.py:453 +#: core/app.py:461 core/app.py:472 msgid "You are about to remove %d files from results. Continue?" msgstr "你将从结果中移除 %d 个文件。继续吗?" -#: core/app.py:275 +#: core/app.py:277 msgid "The ignore list is already empty. Nothing to clear." msgstr "" + +#: core/app.py:321 +msgid "copy" +msgstr "复制" + +#: core/app.py:321 +msgid "move" +msgstr "移动" + +#: core/app.py:322 +msgid "Select a directory to {} marked files to" +msgstr "选择一个文件夹将标记的 {} 个文件进行..." + +#: core/app.py:336 +msgid "" +"You are about to send %d files to Trash (and hardlink them afterwards). " +"Continue?" +msgstr "即将有 %d 个文件被移动垃圾桶并删除硬盘上的文件。继续吗?" + +#: core/app.py:338 +msgid "You are about to send %d files to Trash. Continue?" +msgstr "即将有 %d 个文件被移到回收站。继续吗?" diff --git a/locale/zh_CN/LC_MESSAGES/ui.po b/locale/zh_CN/LC_MESSAGES/ui.po index 68e8a4bd..572486ae 100644 --- a/locale/zh_CN/LC_MESSAGES/ui.po +++ b/locale/zh_CN/LC_MESSAGES/ui.po @@ -50,19 +50,7 @@ msgstr "检查更新" msgid "Open Debug Log" msgstr "打开调试记录" -#: qt/base/app.py:132 -msgid "copy" -msgstr "复制" - -#: qt/base/app.py:132 -msgid "move" -msgstr "移动" - -#: qt/base/app.py:133 -msgid "Select a directory to {} marked files to" -msgstr "选择一个文件夹将标记的 {} 个文件进行..." - -#: qt/base/app.py:235 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 msgid "" "A previous action is still hanging in there. You can't start a new one yet. " "Wait a few seconds, then try again." @@ -150,7 +138,7 @@ msgstr "选择一个结果文件并载入" msgid "All Files (*.*)" msgstr "所有文件 (*.*)" -#: qt/base/directories_dialog.py:205 qt/base/result_window.py:317 +#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 msgid "dupeGuru Results (*.dupeguru)" msgstr "dupeGuru结果 (*.dupeguru)" @@ -403,25 +391,7 @@ msgstr "重置为默认值" msgid "{} Results" msgstr "{} (结果)" -#: qt/base/result_window.py:239 -msgid "Delete duplicates" -msgstr "删除重复文件" - -#: qt/base/result_window.py:240 cocoa/base/en.lproj/Localizable.strings:0 -msgid "You are about to send %d files to Trash. Continue?" -msgstr "即将有 %d 个文件被移到回收站。继续吗?" - -#: qt/base/result_window.py:262 -msgid "Delete and hardlink duplicates" -msgstr "删除及硬连接重复文件" - -#: qt/base/result_window.py:263 cocoa/base/en.lproj/Localizable.strings:0 -msgid "" -"You are about to send %d files to Trash (and hardlink them afterwards). " -"Continue?" -msgstr "即将有 %d 个文件被移动垃圾桶并删除硬盘上的文件。继续吗?" - -#: qt/base/result_window.py:316 cocoa/base/en.lproj/Localizable.strings:0 +#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 msgid "Select a file to save your results to" msgstr "将结果保存为..." @@ -839,14 +809,6 @@ msgstr "" msgid "The iPhoto application couldn't be found." msgstr "The iPhoto application couldn't be found." -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to copy marked files to" -msgstr "Select a directory to copy marked files to" - -#: cocoa/base/en.lproj/Localizable.strings:0 -msgid "Select a directory to move marked files to" -msgstr "" - #: cocoa/base/en.lproj/Localizable.strings:0 msgid "'%@' already is in the list." msgstr "'%@' already is in the list." diff --git a/qt/base/app.py b/qt/base/app.py index 0f597088..7c3df8ef 100644 --- a/qt/base/app.py +++ b/qt/base/app.py @@ -123,21 +123,12 @@ class DupeGuru(QObject): self.model.options['escape_filter_regexp'] = self.prefs.use_regexp self.model.options['clean_empty_dirs'] = self.prefs.remove_empty_folders self.model.options['ignore_hardlink_matches'] = self.prefs.ignore_hardlink_matches + self.model.options['copymove_dest_type'] = self.prefs.destination_type #--- Public def add_selected_to_ignore_list(self): self.model.add_selected_to_ignore_list() - def copy_or_move_marked(self, copy): - opname = tr("copy") if copy else tr("move") - title = tr("Select a directory to {} marked files to").format(opname) - flags = QFileDialog.ShowDirsOnly - destination = str(QFileDialog.getExistingDirectory(self.resultWindow, title, '', flags)) - if not destination: - return - recreate_path = self.prefs.destination_type - self.model.copy_or_move_marked(copy, destination, recreate_path) - def remove_selected(self): self.model.remove_selected(self) @@ -271,3 +262,7 @@ class DupeGuru(QObject): def show_problem_dialog(self): self.problemDialog.show() + def select_dest_folder(self, prompt): + flags = QFileDialog.ShowDirsOnly + return QFileDialog.getExistingDirectory(self.resultWindow, prompt, '', flags) + diff --git a/qt/base/result_window.py b/qt/base/result_window.py index 89258021..ab441028 100644 --- a/qt/base/result_window.py +++ b/qt/base/result_window.py @@ -230,16 +230,10 @@ class ResultWindow(QMainWindow): self.app.model.clear_ignore_list() def copyTriggered(self): - self.app.copy_or_move_marked(True) + self.app.model.copy_or_move_marked(True) def deleteTriggered(self): - count = self.app.model.results.mark_count - if not count: - return - title = tr("Delete duplicates") - msg = tr("You are about to send %d files to Trash. Continue?") % count - if self.app.confirm(title, msg): - self.app.model.delete_marked() + self.app.model.delete_marked() def deltaTriggered(self, state=None): # The sender can be either the action or the checkbox, but both have a isChecked() method. @@ -256,13 +250,7 @@ class ResultWindow(QMainWindow): QDesktopServices.openUrl(url) def hardlinkTriggered(self): - count = self.app.model.results.mark_count - if not count: - return - title = tr("Delete and hardlink duplicates") - msg = tr("You are about to send %d files to Trash (and hardlink them afterwards). Continue?") % count - if self.app.confirm(title, msg): - self.app.model.delete_marked(replace_with_hardlinks=True) + self.app.model.delete_marked(replace_with_hardlinks=True) def makeReferenceTriggered(self): self.app.model.make_selected_reference() @@ -280,7 +268,7 @@ class ResultWindow(QMainWindow): self.app.model.toggle_selected_mark_state() def moveTriggered(self): - self.app.copy_or_move_marked(False) + self.app.model.copy_or_move_marked(False) def openTriggered(self): self.app.model.open_selected()