Pushed some action confirmation logic down from GUI layers to the core.

This commit is contained in:
Virgil Dupras 2012-03-10 14:32:56 -05:00
parent cd9f54163b
commit bf17eb715a
25 changed files with 439 additions and 594 deletions

View File

@ -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

View File

@ -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

View File

@ -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";

View File

@ -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)

View File

@ -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):

View File

@ -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 ""

View File

@ -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?"

View File

@ -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."

View File

@ -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?"

View File

@ -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."

View File

@ -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?"

View File

@ -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."

View File

@ -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 ֆայլերը տեղափոխվելու են Աղբարկղ: Շարունակե՞լ:"

View File

@ -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 "'%@'-ը արդեն առկա է ցանկում:"

View File

@ -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?"

View File

@ -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."

View File

@ -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 файлы в корзину. Продолжить?"

View File

@ -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 "'%@' Уже есть в списке. "

View File

@ -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 ""

View File

@ -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 файли в корзину. Продовжити?"

View File

@ -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 "'%@' Вже є в списку."

View File

@ -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 个文件被移到回收站。继续吗?"

View File

@ -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."

View File

@ -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)

View File

@ -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()