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]; [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 @end

View File

@ -75,17 +75,6 @@ http://www.hardcoded.net/licenses/bsd_license
- (void)sendMarkedToTrash:(BOOL)hardlinkDeleted - (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]; NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
[model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])]; [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
if (hardlinkDeleted) { if (hardlinkDeleted) {
@ -130,20 +119,10 @@ http://www.hardcoded.net/licenses/bsd_license
- (IBAction)copyMarked:(id)sender - (IBAction)copyMarked:(id)sender
{ {
NSInteger mark_count = [model getMarkCount]; NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
if (!mark_count) [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
return; [model setCopyMoveDestType:n2i([ud objectForKey:@"recreatePathType"])];
NSOpenPanel *op = [NSOpenPanel openPanel]; [model copyMarked];
[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"])];
}
} }
- (IBAction)deleteMarked:(id)sender - (IBAction)deleteMarked:(id)sender
@ -201,21 +180,10 @@ http://www.hardcoded.net/licenses/bsd_license
- (IBAction)moveMarked:(id)sender - (IBAction)moveMarked:(id)sender
{ {
NSInteger mark_count = [model getMarkCount]; NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
if (!mark_count) [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
return; [model setCopyMoveDestType:n2i([ud objectForKey:@"recreatePathType"])];
NSOpenPanel *op = [NSOpenPanel openPanel]; [model moveMarked];
[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"])];
}
} }
- (IBAction)openClicked:(id)sender - (IBAction)openClicked:(id)sender

View File

@ -4,16 +4,12 @@
"Select a results file to load" = "Select a results file to load"; "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?"; "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 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"; "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?"; "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."; "'%@' already is in the list." = "'%@' already is in the list.";
"'%@' does not exist." = "'%@' does not exist."; "'%@' does not exist." = "'%@' does not exist.";
"The name '%@' already exists." = "The name '%@' already exists."; "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."; "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?"; "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"; "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): class DupeGuruView(FairwareView):
def askYesNoWithPrompt_(self, prompt: str) -> bool: pass def askYesNoWithPrompt_(self, prompt: str) -> bool: pass
def showProblemDialog(self): pass def showProblemDialog(self): pass
def selectDestFolderWithPrompt_(self, prompt: str) -> str: pass
class PyDupeGuruBase(PyFairware): class PyDupeGuruBase(PyFairware):
FOLLOW_PROTOCOLS = ['Worker'] FOLLOW_PROTOCOLS = ['Worker']
@ -107,8 +108,11 @@ class PyDupeGuruBase(PyFairware):
def makeSelectedReference(self): def makeSelectedReference(self):
self.model.make_selected_reference() self.model.make_selected_reference()
def copyOrMove_markedTo_recreatePath_(self, copy: bool, destination: str, recreate_path: bool): def copyMarked(self):
self.model.copy_or_move_marked(copy, destination, recreate_path) self.model.copy_or_move_marked(copy=True)
def moveMarked(self):
self.model.copy_or_move_marked(copy=False)
def openSelected(self): def openSelected(self):
self.model.open_selected() self.model.open_selected()
@ -126,9 +130,6 @@ class PyDupeGuruBase(PyFairware):
self.model.invoke_custom_command() self.model.invoke_custom_command()
#---Information #---Information
def getMarkCount(self) -> int:
return self.model.results.mark_count
def resultsAreModified(self) -> bool: def resultsAreModified(self) -> bool:
return self.model.results.is_modified return self.model.results.is_modified
@ -145,6 +146,9 @@ class PyDupeGuruBase(PyFairware):
def setIgnoreHardlinkMatches_(self, ignore_hardlink_matches: bool): def setIgnoreHardlinkMatches_(self, ignore_hardlink_matches: bool):
self.model.options['ignore_hardlink_matches'] = ignore_hardlink_matches 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 #---Worker
def getJobProgress(self) -> object: # NSNumber def getJobProgress(self) -> object: # NSNumber
try: try:
@ -206,3 +210,7 @@ class PyDupeGuruBase(PyFairware):
def show_problem_dialog(self): def show_problem_dialog(self):
self.callback.showProblemDialog() 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 # ask_yes_no(prompt) --> bool
# show_results_window() # show_results_window()
# show_problem_dialog() # show_problem_dialog()
# select_dest_folder(prompt: str) --> str
# in fairware prompts, we don't mention the edition, it's too long. # in fairware prompts, we don't mention the edition, it's too long.
PROMPT_NAME = "dupeGuru" PROMPT_NAME = "dupeGuru"
@ -107,6 +108,7 @@ class DupeGuru(RegistrableApplication, Broadcaster):
'escape_filter_regexp': True, 'escape_filter_regexp': True,
'clean_empty_dirs': False, 'clean_empty_dirs': False,
'ignore_hardlink_matches': False, 'ignore_hardlink_matches': False,
'copymove_dest_type': DestType.Relative,
} }
self.selected_dupes = [] self.selected_dupes = []
self.details_panel = DetailsPanel(self) self.details_panel = DetailsPanel(self)
@ -302,23 +304,40 @@ class DupeGuru(RegistrableApplication, Broadcaster):
smart_move(source_path, dest_path) smart_move(source_path, dest_path)
self.clean_empty_dirs(source_path[:-1]) 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 do(j):
def op(dupe): def op(dupe):
j.add_progress() 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) j.start_job(self.results.mark_count)
self.results.perform_on_marked(op, not copy) self.results.perform_on_marked(op, not copy)
if not self._check_demo(): if not self._check_demo():
return return
jobid = JobType.Copy if copy else JobType.Move if not self.results.mark_count:
self.view.start_job(jobid, do) 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): def delete_marked(self, replace_with_hardlinks=False):
if not self._check_demo(): if not self._check_demo():
return 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]) self.view.start_job(JobType.Delete, self._do_delete, args=[replace_with_hardlinks])
def export_to_xhtml(self): def export_to_xhtml(self):

View File

@ -11,63 +11,83 @@ msgstr ""
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:92 #: core/app.py:93
msgid "will only be able to delete, move or copy 10 duplicates at once" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
#: core/app.py:187 #: core/app.py:189
msgid "No duplicates found." msgid "No duplicates found."
msgstr "" msgstr ""
#: core/app.py:200 #: core/app.py:202
msgid "All marked files were copied sucessfully." msgid "All marked files were copied sucessfully."
msgstr "" msgstr ""
#: core/app.py:201 #: core/app.py:203
msgid "All marked files were moved sucessfully." msgid "All marked files were moved sucessfully."
msgstr "" msgstr ""
#: core/app.py:202 #: core/app.py:204
msgid "All marked files were sucessfully sent to Trash." msgid "All marked files were sucessfully sent to Trash."
msgstr "" 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." msgid "You cannot delete, move or copy more than 10 duplicates at once in demo mode."
msgstr "" msgstr ""
#: core/app.py:250 #: core/app.py:252
msgid "All selected %d matches are going to be ignored in all subsequent scans. Continue?" msgid "All selected %d matches are going to be ignored in all subsequent scans. Continue?"
msgstr "" msgstr ""
#: core/app.py:275 #: core/app.py:277
msgid "The ignore list is already empty. Nothing to clear." msgid "The ignore list is already empty. Nothing to clear."
msgstr "" msgstr ""
#: core/app.py:278 #: core/app.py:280
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "" msgstr ""
#: core/app.py:281 #: core/app.py:283
msgid "Ignore list cleared." msgid "Ignore list cleared."
msgstr "" 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." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" 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?" msgid "You are about to remove %d files from results. Continue?"
msgstr "" msgstr ""
#: core/app.py:489 #: core/app.py:508
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "" msgstr ""
#: core/app.py:500 #: core/app.py:519
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "" msgstr ""
#: core/app.py:539 #: core/app.py:558
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "" msgstr ""

View File

@ -2,25 +2,25 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" 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" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
#: core/app.py:229 #: core/app.py:231
msgid "" msgid ""
"You cannot delete, move or copy more than 10 duplicates at once in demo " "You cannot delete, move or copy more than 10 duplicates at once in demo "
"mode." "mode."
msgstr "" msgstr ""
#: core/app.py:489 #: core/app.py:508
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Shromažďuji prohlížené soubory" msgstr "Shromažďuji prohlížené soubory"
#: core/app.py:500 #: core/app.py:519
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Vybrané adresáře neobsahují žádné soubory vhodné k prohledávání." msgstr "Vybrané adresáře neobsahují žádné soubory vhodné k prohledávání."
#: core/app.py:539 #: core/app.py:558
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d vyřazeno)" msgstr "%s (%d vyřazeno)"
@ -120,23 +120,23 @@ msgstr ""
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:187 #: core/app.py:189
msgid "No duplicates found." msgid "No duplicates found."
msgstr "Nebyli nalezeny žádné duplicity." msgstr "Nebyli nalezeny žádné duplicity."
#: core/app.py:200 #: core/app.py:202
msgid "All marked files were copied sucessfully." msgid "All marked files were copied sucessfully."
msgstr "" msgstr ""
#: core/app.py:201 #: core/app.py:203
msgid "All marked files were moved sucessfully." msgid "All marked files were moved sucessfully."
msgstr "" msgstr ""
#: core/app.py:202 #: core/app.py:204
msgid "All marked files were sucessfully sent to Trash." msgid "All marked files were sucessfully sent to Trash."
msgstr "" msgstr ""
#: core/app.py:250 #: core/app.py:252
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
@ -144,23 +144,47 @@ msgstr ""
"Všech %d vybraných shod bude v následujících hledáních ignorováno. " "Všech %d vybraných shod bude v následujících hledáních ignorováno. "
"Pokračovat?" "Pokračovat?"
#: core/app.py:278 #: core/app.py:280
msgid "Do you really want to remove all %d items from the ignore list?" 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?" 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." msgid "Ignore list cleared."
msgstr "" msgstr ""
#: core/app.py:357 #: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"Nedefinoval jste žádný uživatelský příkaz. Nadefinujete ho v předvolbách." "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?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Chystáte se z výsledků odstranit %d souborů. Pokračovat?" 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." msgid "The ignore list is already empty. Nothing to clear."
msgstr "" 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" msgid "Open Debug Log"
msgstr "" msgstr ""
#: qt/base/app.py:132 #: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -152,7 +140,7 @@ msgstr "Vyberte soubor s výsledky, který chcete nahrát"
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "" 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)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "" msgstr ""
@ -398,27 +386,7 @@ msgstr "Výchozí nastavení"
msgid "{} Results" msgid "{} Results"
msgstr "" msgstr ""
#: qt/base/result_window.py:239 #: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Vyberte soubor pro uložení výsledků" msgstr "Vyberte soubor pro uložení výsledků"
@ -836,14 +804,6 @@ msgstr ""
msgid "The iPhoto application couldn't be found." msgid "The iPhoto application couldn't be found."
msgstr "Nelze najít aplikaci iPhoto." 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 #: cocoa/base/en.lproj/Localizable.strings:0
msgid "'%@' already is in the list." msgid "'%@' already is in the list."
msgstr "'%@' already is in the list." msgstr "'%@' already is in the list."

View File

@ -2,25 +2,25 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" 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" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
#: core/app.py:229 #: core/app.py:231
msgid "" msgid ""
"You cannot delete, move or copy more than 10 duplicates at once in demo " "You cannot delete, move or copy more than 10 duplicates at once in demo "
"mode." "mode."
msgstr "" msgstr ""
#: core/app.py:489 #: core/app.py:508
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Sammle Dateien zum Scannen" msgstr "Sammle Dateien zum Scannen"
#: core/app.py:500 #: core/app.py:519
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Der ausgewählte Ordner enthält keine scannbare Dateien." msgstr "Der ausgewählte Ordner enthält keine scannbare Dateien."
#: core/app.py:539 #: core/app.py:558
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d verworfen)" msgstr "%s (%d verworfen)"
@ -120,46 +120,70 @@ msgstr ""
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:187 #: core/app.py:189
msgid "No duplicates found." msgid "No duplicates found."
msgstr "Keine Duplikate gefunden." msgstr "Keine Duplikate gefunden."
#: core/app.py:200 #: core/app.py:202
msgid "All marked files were copied sucessfully." msgid "All marked files were copied sucessfully."
msgstr "" msgstr ""
#: core/app.py:201 #: core/app.py:203
msgid "All marked files were moved sucessfully." msgid "All marked files were moved sucessfully."
msgstr "" msgstr ""
#: core/app.py:202 #: core/app.py:204
msgid "All marked files were sucessfully sent to Trash." msgid "All marked files were sucessfully sent to Trash."
msgstr "" msgstr ""
#: core/app.py:250 #: core/app.py:252
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
msgstr "%d Dateien werden in zukünftigen Scans ignoriert werden. Fortfahren?" 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?" 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?" 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." msgid "Ignore list cleared."
msgstr "Ignorier-Liste geleert." 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." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"Sie haben keinen eigenen Befehl erstellt. Bitte in den Einstellungen " "Sie haben keinen eigenen Befehl erstellt. Bitte in den Einstellungen "
"konfigurieren." "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?" msgid "You are about to remove %d files from results. Continue?"
msgstr "%d Dateien werden aus der Ergebnisliste entfernt. Fortfahren?" 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." msgid "The ignore list is already empty. Nothing to clear."
msgstr "" 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" msgid "Open Debug Log"
msgstr "Debug Log öffnen" msgstr "Debug Log öffnen"
#: qt/base/app.py:132 #: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -152,7 +140,7 @@ msgstr "Wählen Sie eine Ergebnisliste zum Laden aus."
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "Alle Dateien (*.*)" 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)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "dupeGuru Ergebnisse (*.dupeguru)" msgstr "dupeGuru Ergebnisse (*.dupeguru)"
@ -407,27 +395,7 @@ msgstr "Voreinstellungen"
msgid "{} Results" msgid "{} Results"
msgstr "{} (Ergebnisse)" msgstr "{} (Ergebnisse)"
#: qt/base/result_window.py:239 #: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Datei zum Speichern der Ergebnisliste auswählen." msgstr "Datei zum Speichern der Ergebnisliste auswählen."
@ -836,14 +804,6 @@ msgstr ""
msgid "The iPhoto application couldn't be found." msgid "The iPhoto application couldn't be found."
msgstr "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 #: cocoa/base/en.lproj/Localizable.strings:0
msgid "'%@' already is in the list." msgid "'%@' already is in the list."
msgstr "'%@' already is in the list." msgstr "'%@' already is in the list."

View File

@ -2,25 +2,25 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" 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" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
#: core/app.py:229 #: core/app.py:231
msgid "" msgid ""
"You cannot delete, move or copy more than 10 duplicates at once in demo " "You cannot delete, move or copy more than 10 duplicates at once in demo "
"mode." "mode."
msgstr "" msgstr ""
#: core/app.py:489 #: core/app.py:508
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Collecte des fichiers à scanner" msgstr "Collecte des fichiers à scanner"
#: core/app.py:500 #: core/app.py:519
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Les dossiers sélectionnés ne contiennent pas de fichiers valides." msgstr "Les dossiers sélectionnés ne contiennent pas de fichiers valides."
#: core/app.py:539 #: core/app.py:558
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d hors-groupe)" 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." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Aucun doublon sélectionné. Rien à faire." msgstr "Aucun doublon sélectionné. Rien à faire."
#: core/app.py:187 #: core/app.py:189
msgid "No duplicates found." msgid "No duplicates found."
msgstr "Aucun doublon trouvé." msgstr "Aucun doublon trouvé."
#: core/app.py:200 #: core/app.py:202
msgid "All marked files were copied sucessfully." msgid "All marked files were copied sucessfully."
msgstr "Tous les fichiers marqués ont été copiés correctement." 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." msgid "All marked files were moved sucessfully."
msgstr "Tous les fichiers marqués ont été déplacés correctement." 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." 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 "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
msgstr "%d fichiers seront ignorés des prochains scans. Continuer?" 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?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "" msgstr ""
"Voulez-vous vider la liste de fichiers ignorés des %d items qu'elle " "Voulez-vous vider la liste de fichiers ignorés des %d items qu'elle "
"contient?" "contient?"
#: core/app.py:281 #: core/app.py:283
msgid "Ignore list cleared." msgid "Ignore list cleared."
msgstr "La liste de doublons ignorés a été vidée." 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." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"Vous n'avez pas de commande personnalisée. Ajoutez-la dans vos préférences." "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?" msgid "You are about to remove %d files from results. Continue?"
msgstr "%d fichiers seront retirés des résultats. Continuer?" 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." msgid "The ignore list is already empty. Nothing to clear."
msgstr "La liste est vide. Il n'y a rien à vider" 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" msgid "Open Debug Log"
msgstr "Ouvrir logs de déboguage" msgstr "Ouvrir logs de déboguage"
#: qt/base/app.py:132 #: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -152,7 +140,7 @@ msgstr "Sélectionnez un fichier résultats à charger"
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "Tout les fichiers (*.*)" 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)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "Résultats dupeGuru (*.dupeguru)" msgstr "Résultats dupeGuru (*.dupeguru)"
@ -409,26 +397,7 @@ msgstr "Réinitialiser"
msgid "{} Results" msgid "{} Results"
msgstr "{} (Résultats)" msgstr "{} (Résultats)"
#: qt/base/result_window.py:239 #: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Sélectionnez un fichier résultats dans lequel sauvegarder" msgstr "Sélectionnez un fichier résultats dans lequel sauvegarder"
@ -846,14 +815,6 @@ msgstr ""
msgid "The iPhoto application couldn't be found." msgid "The iPhoto application couldn't be found."
msgstr "iPhoto n'a pas pu être trouvée dans vos applications." 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 #: cocoa/base/en.lproj/Localizable.strings:0
msgid "'%@' already is in the list." msgid "'%@' already is in the list."
msgstr "'%@' est déjà dans la liste." msgstr "'%@' est déjà dans la liste."

View File

@ -13,12 +13,12 @@ msgstr ""
"X-Poedit-Language: Armenian\n" "X-Poedit-Language: Armenian\n"
"X-Poedit-SourceCharset: utf-8\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" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
"միաժամանակ հնարավոր է ջնջել, տեղափոխել կամ պատճենել միայն 10 օրինակներ" "միաժամանակ հնարավոր է ջնջել, տեղափոխել կամ պատճենել միայն 10 օրինակներ"
#: core/app.py:229 #: core/app.py:231
msgid "" msgid ""
"You cannot delete, move or copy more than 10 duplicates at once in demo " "You cannot delete, move or copy more than 10 duplicates at once in demo "
"mode." "mode."
@ -26,15 +26,15 @@ msgstr ""
"Չեք կարող ջնջել, տեղափձոխել կամ պատճենել ավելի քան 10 օրինակներ փորձնական " "Չեք կարող ջնջել, տեղափձոխել կամ պատճենել ավելի քան 10 օրինակներ փորձնական "
"եղանակում:" "եղանակում:"
#: core/app.py:489 #: core/app.py:508
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Հավաքվում են ֆայլեր՝ ստուգելու համար" msgstr "Հավաքվում են ֆայլեր՝ ստուգելու համար"
#: core/app.py:500 #: core/app.py:519
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Ընտրված թղթապանակները պարունակում են չստուգվող ֆայլ:" msgstr "Ընտրված թղթապանակները պարունակում են չստուգվող ֆայլ:"
#: core/app.py:539 #: core/app.py:558
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d անպիտան)" msgstr "%s (%d անպիտան)"
@ -134,45 +134,67 @@ msgstr ""
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:187 #: core/app.py:189
msgid "No duplicates found." msgid "No duplicates found."
msgstr "Կրկնօրինակներ չկան:" msgstr "Կրկնօրինակներ չկան:"
#: core/app.py:200 #: core/app.py:202
msgid "All marked files were copied sucessfully." msgid "All marked files were copied sucessfully."
msgstr "Բոլոր նշված ֆայլերը հաջողությամբ պատճենվել են:" msgstr "Բոլոր նշված ֆայլերը հաջողությամբ պատճենվել են:"
#: core/app.py:201 #: core/app.py:203
msgid "All marked files were moved sucessfully." msgid "All marked files were moved sucessfully."
msgstr "Բոլոր նշված ֆայլերը հաջողությամբ տեղափոխվել են:" msgstr "Բոլոր նշված ֆայլերը հաջողությամբ տեղափոխվել են:"
#: core/app.py:202 #: core/app.py:204
msgid "All marked files were sucessfully sent to Trash." msgid "All marked files were sucessfully sent to Trash."
msgstr "Բոլոր նշված ֆայլերը հաջողությամբ Ջնջվել են:" msgstr "Բոլոր նշված ֆայլերը հաջողությամբ Ջնջվել են:"
#: core/app.py:250 #: core/app.py:252
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
msgstr "" msgstr ""
"Ընտրված %d համընկնումները կանտեսվեն հետագա բոլոր ստուգումներից: Շարունակե՞լ:" "Ընտրված %d համընկնումները կանտեսվեն հետագա բոլոր ստուգումներից: Շարունակե՞լ:"
#: core/app.py:278 #: core/app.py:280
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "Ցանկանու՞մ եք հեռացնել բոլոր %d ֆայլերը անտեսումների ցանկից:" msgstr "Ցանկանու՞մ եք հեռացնել բոլոր %d ֆայլերը անտեսումների ցանկից:"
#: core/app.py:281 #: core/app.py:283
msgid "Ignore list cleared." msgid "Ignore list cleared."
msgstr "Անտեսումների ցանկը մաքրվեց:" msgstr "Անտեսումների ցանկը մաքրվեց:"
#: core/app.py:357 #: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "Դուք չեք կատարել Հրամանի ընտրություն: Կատարեք այն կարգավորումներում:" 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?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Դուք պատրաստվում եք ջնջելու %d ֆայլեր: Շարունակե՞լ:" msgstr "Դուք պատրաստվում եք ջնջելու %d ֆայլեր: Շարունակե՞լ:"
#: core/app.py:275 #: core/app.py:277
msgid "The ignore list is already empty. Nothing to clear." msgid "The ignore list is already empty. Nothing to clear."
msgstr "" 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" msgid "Open Debug Log"
msgstr "Բացել Սխալների մատյանը" msgstr "Բացել Սխալների մատյանը"
#: qt/base/app.py:132 #: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -187,7 +175,7 @@ msgstr "Ընտրեք արդյունքի ֆայլը՝ բացելու համար"
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "Բոլոր ֆայլերը (*.*)" 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)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "dupeGuru-ի արդյունքները (*.dupeguru)" msgstr "dupeGuru-ի արդյունքները (*.dupeguru)"
@ -442,25 +430,7 @@ msgstr "Ետարկել ծրագրայինի"
msgid "{} Results" msgid "{} Results"
msgstr "{} Արդյունքներ" msgstr "{} Արդյունքներ"
#: qt/base/result_window.py:239 #: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Ընտրեք ֆայլը՝ պահպանելու արդյունքները՝" msgstr "Ընտրեք ֆայլը՝ պահպանելու արդյունքները՝"
@ -615,14 +585,6 @@ msgstr "Բացել ֆայլից..."
msgid "Reset to Default" msgid "Reset to Default"
msgstr "Ետարկել ծրագրայինի" 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 #: cocoa/base/en.lproj/Localizable.strings:0
msgid "'%@' already is in the list." msgid "'%@' already is in the list."
msgstr "'%@'-ը արդեն առկա է ցանկում:" msgstr "'%@'-ը արդեն առկա է ցանկում:"

View File

@ -2,25 +2,25 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" 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" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
#: core/app.py:229 #: core/app.py:231
msgid "" msgid ""
"You cannot delete, move or copy more than 10 duplicates at once in demo " "You cannot delete, move or copy more than 10 duplicates at once in demo "
"mode." "mode."
msgstr "" msgstr ""
#: core/app.py:489 #: core/app.py:508
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Raccolta file da scansionare" msgstr "Raccolta file da scansionare"
#: core/app.py:500 #: core/app.py:519
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Le cartelle selezionate non contengono file da scansionare." msgstr "Le cartelle selezionate non contengono file da scansionare."
#: core/app.py:539 #: core/app.py:558
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d scartati)" msgstr "%s (%d scartati)"
@ -121,23 +121,23 @@ msgstr ""
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:187 #: core/app.py:189
msgid "No duplicates found." msgid "No duplicates found."
msgstr "Non sono stati trovati dei duplicati." msgstr "Non sono stati trovati dei duplicati."
#: core/app.py:200 #: core/app.py:202
msgid "All marked files were copied sucessfully." msgid "All marked files were copied sucessfully."
msgstr "Tutti i file marcati sono stati copiati correttamente." msgstr "Tutti i file marcati sono stati copiati correttamente."
#: core/app.py:201 #: core/app.py:203
msgid "All marked files were moved sucessfully." msgid "All marked files were moved sucessfully."
msgstr "Tutti i file marcati sono stati spostati correttamente." 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." msgid "All marked files were sucessfully sent to Trash."
msgstr "Tutti i file marcati sono stati inviati nel cestino." msgstr "Tutti i file marcati sono stati inviati nel cestino."
#: core/app.py:250 #: core/app.py:252
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
@ -145,26 +145,49 @@ msgstr ""
"Tutti i %d elementi che coincidono verranno ignorati in tutte le scansioni " "Tutti i %d elementi che coincidono verranno ignorati in tutte le scansioni "
"successive. Continuare?" "successive. Continuare?"
#: core/app.py:278 #: core/app.py:280
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "" msgstr ""
"Vuoi veramente rimuovere tutti i %d elementi dalla lista dei file da " "Vuoi veramente rimuovere tutti i %d elementi dalla lista dei file da "
"ignorare?" "ignorare?"
#: core/app.py:281 #: core/app.py:283
msgid "Ignore list cleared." msgid "Ignore list cleared."
msgstr "" msgstr ""
#: core/app.py:357 #: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"Non hai impostato nessun comando personalizzato. Impostalo nelle tue " "Non hai impostato nessun comando personalizzato. Impostalo nelle tue "
"preferenze." "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?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Stai per rimuovere %d file dai risultati. Continuare?" 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." msgid "The ignore list is already empty. Nothing to clear."
msgstr "" 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" msgid "Open Debug Log"
msgstr "" msgstr ""
#: qt/base/app.py:132 #: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -178,7 +166,7 @@ msgstr "Seleziona un risultato (file) da caricare"
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "" 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)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "" msgstr ""
@ -435,26 +423,7 @@ msgstr "Ripristina impostazioni predefinite"
msgid "{} Results" msgid "{} Results"
msgstr "" msgstr ""
#: qt/base/result_window.py:239 #: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Seleziona un file dove salvare i tuoi risultati" 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" msgid "dupeGuru PE Preferences"
msgstr "Preferenze di dupeGuru PE" 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 #: cocoa/base/en.lproj/Localizable.strings:0
msgid "'%@' already is in the list." msgid "'%@' already is in the list."
msgstr "'%@' è già nella lista." msgstr "'%@' è già nella lista."

View File

@ -12,12 +12,12 @@ msgstr ""
"X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Country: RUSSIAN FEDERATION\n"
"X-Poedit-Language: Russian\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" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
"сможете только для удаления, перемещения или копирования 10 копий сразу" "сможете только для удаления, перемещения или копирования 10 копий сразу"
#: core/app.py:229 #: core/app.py:231
msgid "" msgid ""
"You cannot delete, move or copy more than 10 duplicates at once in demo " "You cannot delete, move or copy more than 10 duplicates at once in demo "
"mode." "mode."
@ -25,15 +25,15 @@ msgstr ""
"Вы не можете удалять, перемещать или копировать более 10 дубликатов сразу в " "Вы не можете удалять, перемещать или копировать более 10 дубликатов сразу в "
"демонстрационном режиме." "демонстрационном режиме."
#: core/app.py:489 #: core/app.py:508
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Сбор файлов для сканирования" msgstr "Сбор файлов для сканирования"
#: core/app.py:500 #: core/app.py:519
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Выбранных директорий не содержат сканируемых файлов." msgstr "Выбранных директорий не содержат сканируемых файлов."
#: core/app.py:539 #: core/app.py:558
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s. (%d отменено)" msgstr "%s. (%d отменено)"
@ -133,23 +133,23 @@ msgstr ""
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:187 #: core/app.py:189
msgid "No duplicates found." msgid "No duplicates found."
msgstr "Дубликаты не найдены." msgstr "Дубликаты не найдены."
#: core/app.py:200 #: core/app.py:202
msgid "All marked files were copied sucessfully." msgid "All marked files were copied sucessfully."
msgstr "Все выбранные файлы были скопированы успешно." msgstr "Все выбранные файлы были скопированы успешно."
#: core/app.py:201 #: core/app.py:203
msgid "All marked files were moved sucessfully." msgid "All marked files were moved sucessfully."
msgstr "Все выбранные файлы были перемещены успешно." msgstr "Все выбранные файлы были перемещены успешно."
#: core/app.py:202 #: core/app.py:204
msgid "All marked files were sucessfully sent to Trash." msgid "All marked files were sucessfully sent to Trash."
msgstr "Все выбранные файлы были успешно отправлены в корзину." msgstr "Все выбранные файлы были успешно отправлены в корзину."
#: core/app.py:250 #: core/app.py:252
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
@ -157,24 +157,48 @@ msgstr ""
"Все выбранные %d матчей будут игнорироваться во всех последующих проверок. " "Все выбранные %d матчей будут игнорироваться во всех последующих проверок. "
"Продолжить?" "Продолжить?"
#: core/app.py:278 #: core/app.py:280
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "Вы действительно хотите удалить все элементы %d из черного списка?" msgstr "Вы действительно хотите удалить все элементы %d из черного списка?"
#: core/app.py:281 #: core/app.py:283
msgid "Ignore list cleared." msgid "Ignore list cleared."
msgstr "Черный список очищается." msgstr "Черный список очищается."
#: core/app.py:357 #: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" 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?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Вы собираетесь удалить файлы %d из результата поиска. Продолжить?" msgstr "Вы собираетесь удалить файлы %d из результата поиска. Продолжить?"
#: core/app.py:275 #: core/app.py:277
msgid "The ignore list is already empty. Nothing to clear." msgid "The ignore list is already empty. Nothing to clear."
msgstr "" 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" msgid "Open Debug Log"
msgstr "Открыть журнал Debug" msgstr "Открыть журнал Debug"
#: qt/base/app.py:132 #: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -186,7 +174,7 @@ msgstr "Выберите файл результатов для загрузки
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "Все файлы (*.*)" 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)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "dupeGuru результаты (*. dupeguru)" msgstr "dupeGuru результаты (*. dupeguru)"
@ -445,27 +433,7 @@ msgstr "Восстановить значения по умолчанию"
msgid "{} Results" msgid "{} Results"
msgstr "{} Результаты" msgstr "{} Результаты"
#: qt/base/result_window.py:239 #: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Выберите файл, чтобы сохранить ваши результаты" msgstr "Выберите файл, чтобы сохранить ваши результаты"
@ -620,14 +588,6 @@ msgstr "Загрузить из файла ..."
msgid "Reset to Default" msgid "Reset to Default"
msgstr "Восстановить значения по умолчанию" 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 #: cocoa/base/en.lproj/Localizable.strings:0
msgid "'%@' already is in the list." msgid "'%@' already is in the list."
msgstr "'%@' Уже есть в списке. " msgstr "'%@' Уже есть в списке. "

View File

@ -97,19 +97,7 @@ msgstr ""
msgid "Open Debug Log" msgid "Open Debug Log"
msgstr "" msgstr ""
#: qt/base/app.py:132 #: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -197,7 +185,7 @@ msgstr ""
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "" 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)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "" msgstr ""
@ -455,25 +443,7 @@ msgstr ""
msgid "Delta Values" msgid "Delta Values"
msgstr "" msgstr ""
#: qt/base/result_window.py:239 #: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "" msgstr ""
@ -628,14 +598,6 @@ msgstr ""
msgid "Reset to Default" msgid "Reset to Default"
msgstr "" 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 #: cocoa/base/en.lproj/Localizable.strings:0
msgid "'%@' already is in the list." msgid "'%@' already is in the list."
msgstr "" msgstr ""

View File

@ -12,12 +12,12 @@ msgstr ""
"X-Poedit-Country: UKRAINE\n" "X-Poedit-Country: UKRAINE\n"
"X-Poedit-Language: Ukrainian\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" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
"зможете тільки для видалення, переміщення або копіювання 10 копій відразу" "зможете тільки для видалення, переміщення або копіювання 10 копій відразу"
#: core/app.py:229 #: core/app.py:231
msgid "" msgid ""
"You cannot delete, move or copy more than 10 duplicates at once in demo " "You cannot delete, move or copy more than 10 duplicates at once in demo "
"mode." "mode."
@ -25,15 +25,15 @@ msgstr ""
"Ви не можете видаляти, переміщати або копіювати більше 10 дублікатів відразу" "Ви не можете видаляти, переміщати або копіювати більше 10 дублікатів відразу"
" в демонстраційному режимі." " в демонстраційному режимі."
#: core/app.py:489 #: core/app.py:508
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Збір файлів для сканування" msgstr "Збір файлів для сканування"
#: core/app.py:500 #: core/app.py:519
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Вибраних директорій не містять сканованих файлів." msgstr "Вибраних директорій не містять сканованих файлів."
#: core/app.py:539 #: core/app.py:558
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d відкидаються)" msgstr "%s (%d відкидаються)"
@ -133,23 +133,23 @@ msgstr ""
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:187 #: core/app.py:189
msgid "No duplicates found." msgid "No duplicates found."
msgstr "Ні дублікати знайдені." msgstr "Ні дублікати знайдені."
#: core/app.py:200 #: core/app.py:202
msgid "All marked files were copied sucessfully." msgid "All marked files were copied sucessfully."
msgstr "Всі вибрані файли були скопійовані успішно." msgstr "Всі вибрані файли були скопійовані успішно."
#: core/app.py:201 #: core/app.py:203
msgid "All marked files were moved sucessfully." msgid "All marked files were moved sucessfully."
msgstr "Всі вибрані файли були переміщені успішно." msgstr "Всі вибрані файли були переміщені успішно."
#: core/app.py:202 #: core/app.py:204
msgid "All marked files were sucessfully sent to Trash." msgid "All marked files were sucessfully sent to Trash."
msgstr "Всі вибрані файли були успішно відправлені в корзину." msgstr "Всі вибрані файли були успішно відправлені в корзину."
#: core/app.py:250 #: core/app.py:252
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
@ -157,24 +157,48 @@ msgstr ""
"Всі вибрані %d матчів будуть ігноруватися у всіх наступних перевірок. " "Всі вибрані %d матчів будуть ігноруватися у всіх наступних перевірок. "
"Продовжити?" "Продовжити?"
#: core/app.py:278 #: core/app.py:280
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "Ви дійсно хочете видалити всі елементи %d з чорного списку?" msgstr "Ви дійсно хочете видалити всі елементи %d з чорного списку?"
#: core/app.py:281 #: core/app.py:283
msgid "Ignore list cleared." msgid "Ignore list cleared."
msgstr "Чорний список очищається." msgstr "Чорний список очищається."
#: core/app.py:357 #: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" 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?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Ви збираєтеся видалити файли %d результату пошуку. Продовжити?" msgstr "Ви збираєтеся видалити файли %d результату пошуку. Продовжити?"
#: core/app.py:275 #: core/app.py:277
msgid "The ignore list is already empty. Nothing to clear." msgid "The ignore list is already empty. Nothing to clear."
msgstr "" 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" msgid "Open Debug Log"
msgstr "Відкрити журнал Debug" msgstr "Відкрити журнал Debug"
#: qt/base/app.py:132 #: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -186,7 +174,7 @@ msgstr "Виберіть файл результатів для завантаж
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "Всі файли (*.*)" 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)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "dupeGuru Результати (*.dupeguru) " msgstr "dupeGuru Результати (*.dupeguru) "
@ -441,27 +429,7 @@ msgstr "Відновити налаштування за замовчуванн
msgid "{} Results" msgid "{} Results"
msgstr "{} Результати" msgstr "{} Результати"
#: qt/base/result_window.py:239 #: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Виберіть файл, щоб зберегти ваші результати" msgstr "Виберіть файл, щоб зберегти ваші результати"
@ -616,14 +584,6 @@ msgstr "Завантажити з файлу ..."
msgid "Reset to Default" msgid "Reset to Default"
msgstr "Відновити налаштування за замовчуванням" 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 #: cocoa/base/en.lproj/Localizable.strings:0
msgid "'%@' already is in the list." msgid "'%@' already is in the list."
msgstr "'%@' Вже є в списку." msgstr "'%@' Вже є в списку."

View File

@ -2,25 +2,25 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" 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" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
#: core/app.py:229 #: core/app.py:231
msgid "" msgid ""
"You cannot delete, move or copy more than 10 duplicates at once in demo " "You cannot delete, move or copy more than 10 duplicates at once in demo "
"mode." "mode."
msgstr "" msgstr ""
#: core/app.py:489 #: core/app.py:508
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "收集文件以备扫描" msgstr "收集文件以备扫描"
#: core/app.py:500 #: core/app.py:519
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "所选文件夹中不包含可供扫描的文件。" msgstr "所选文件夹中不包含可供扫描的文件。"
#: core/app.py:539 #: core/app.py:558
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d 无效)" msgstr "%s (%d 无效)"
@ -120,44 +120,66 @@ msgstr ""
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:187 #: core/app.py:189
msgid "No duplicates found." msgid "No duplicates found."
msgstr "没有找到重复文件。" msgstr "没有找到重复文件。"
#: core/app.py:200 #: core/app.py:202
msgid "All marked files were copied sucessfully." msgid "All marked files were copied sucessfully."
msgstr "" msgstr ""
#: core/app.py:201 #: core/app.py:203
msgid "All marked files were moved sucessfully." msgid "All marked files were moved sucessfully."
msgstr "" msgstr ""
#: core/app.py:202 #: core/app.py:204
msgid "All marked files were sucessfully sent to Trash." msgid "All marked files were sucessfully sent to Trash."
msgstr "" msgstr ""
#: core/app.py:250 #: core/app.py:252
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
msgstr "目前已选的 %d 个匹配项将在后续的扫描中被忽略。继续吗?" msgstr "目前已选的 %d 个匹配项将在后续的扫描中被忽略。继续吗?"
#: core/app.py:278 #: core/app.py:280
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "确定要从忽略列表中移除 %d 项吗?" msgstr "确定要从忽略列表中移除 %d 项吗?"
#: core/app.py:281 #: core/app.py:283
msgid "Ignore list cleared." msgid "Ignore list cleared."
msgstr "忽略列表已清空。" msgstr "忽略列表已清空。"
#: core/app.py:357 #: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "你没有设定自定义命令。请在首选项中进行设定。" 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?" msgid "You are about to remove %d files from results. Continue?"
msgstr "你将从结果中移除 %d 个文件。继续吗?" msgstr "你将从结果中移除 %d 个文件。继续吗?"
#: core/app.py:275 #: core/app.py:277
msgid "The ignore list is already empty. Nothing to clear." msgid "The ignore list is already empty. Nothing to clear."
msgstr "" 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" msgid "Open Debug Log"
msgstr "打开调试记录" msgstr "打开调试记录"
#: qt/base/app.py:132 #: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -150,7 +138,7 @@ msgstr "选择一个结果文件并载入"
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "所有文件 (*.*)" 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)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "dupeGuru结果 (*.dupeguru)" msgstr "dupeGuru结果 (*.dupeguru)"
@ -403,25 +391,7 @@ msgstr "重置为默认值"
msgid "{} Results" msgid "{} Results"
msgstr "{} (结果)" msgstr "{} (结果)"
#: qt/base/result_window.py:239 #: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0
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
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "将结果保存为..." msgstr "将结果保存为..."
@ -839,14 +809,6 @@ msgstr ""
msgid "The iPhoto application couldn't be found." msgid "The iPhoto application couldn't be found."
msgstr "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 #: cocoa/base/en.lproj/Localizable.strings:0
msgid "'%@' already is in the list." msgid "'%@' already is in the list."
msgstr "'%@' 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['escape_filter_regexp'] = self.prefs.use_regexp
self.model.options['clean_empty_dirs'] = self.prefs.remove_empty_folders 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['ignore_hardlink_matches'] = self.prefs.ignore_hardlink_matches
self.model.options['copymove_dest_type'] = self.prefs.destination_type
#--- Public #--- Public
def add_selected_to_ignore_list(self): def add_selected_to_ignore_list(self):
self.model.add_selected_to_ignore_list() 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): def remove_selected(self):
self.model.remove_selected(self) self.model.remove_selected(self)
@ -271,3 +262,7 @@ class DupeGuru(QObject):
def show_problem_dialog(self): def show_problem_dialog(self):
self.problemDialog.show() 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() self.app.model.clear_ignore_list()
def copyTriggered(self): def copyTriggered(self):
self.app.copy_or_move_marked(True) self.app.model.copy_or_move_marked(True)
def deleteTriggered(self): def deleteTriggered(self):
count = self.app.model.results.mark_count self.app.model.delete_marked()
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()
def deltaTriggered(self, state=None): def deltaTriggered(self, state=None):
# The sender can be either the action or the checkbox, but both have a isChecked() method. # 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) QDesktopServices.openUrl(url)
def hardlinkTriggered(self): def hardlinkTriggered(self):
count = self.app.model.results.mark_count self.app.model.delete_marked(replace_with_hardlinks=True)
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)
def makeReferenceTriggered(self): def makeReferenceTriggered(self):
self.app.model.make_selected_reference() self.app.model.make_selected_reference()
@ -280,7 +268,7 @@ class ResultWindow(QMainWindow):
self.app.model.toggle_selected_mark_state() self.app.model.toggle_selected_mark_state()
def moveTriggered(self): def moveTriggered(self):
self.app.copy_or_move_marked(False) self.app.model.copy_or_move_marked(False)
def openTriggered(self): def openTriggered(self):
self.app.model.open_selected() self.app.model.open_selected()