1
0
mirror of https://github.com/arsenetar/dupeguru.git synced 2026-01-25 16:11:39 +00:00

Compare commits

...

73 Commits

Author SHA1 Message Date
Virgil Dupras
168546608d se v3.3.1 2011-12-02 10:59:44 -05:00
Virgil Dupras
27c1a03496 Updated qtlib. 2011-12-02 10:54:40 -05:00
Virgil Dupras
d382cec0fe Added an install destination in Cocoa projects because the built product location changed with XCode 4.2 and it became complicated, in build/package scripts, to locate it. 2011-12-02 10:48:59 -05:00
Virgil Dupras
c5b7f6b3d5 Added tag se3.3.0 for changeset 9ea9af1b886c 2011-11-30 16:16:30 -05:00
Virgil Dupras
725f9d51db se v3.3.0 2011-11-30 14:30:02 -05:00
Virgil Dupras
b4815d91c7 Fixed debian packaging and locale folder under linux. 2011-11-30 12:13:02 -05:00
Virgil Dupras
28e5924633 Fixed help paths under a windows frozen environment. 2011-11-30 16:36:29 +00:00
Virgil Dupras
66303a2076 Fixed help.locale path references under Qt and fixed packaging to include the locale folder. 2011-11-30 11:06:08 -05:00
Virgil Dupras
d3918724c0 Merge with fix for #184. 2011-11-29 10:43:13 -05:00
Virgil Dupras
fa294ea142 [#184 state:fixed] Fixed a crash in HSRecentFiles when it was fed with invalid data by the prefs. 2011-11-29 10:36:28 -05:00
Virgil Dupras
565c58b3a9 Updated demo limitations FAQ entry. 2011-11-29 09:41:57 -05:00
Virgil Dupras
d8970ca6b4 [#179] Fixed a crash under Cocoa when deleting many folders at once. 2011-11-28 15:42:13 -05:00
Virgil Dupras
1b7068bfe9 [#179 state:fixed] Added multiple-selection to the folder selection dialog and thus added the ability to remove multiple folders at once. 2011-11-28 15:25:18 -05:00
Virgil Dupras
756190cb8e [#179] Pushed the delete-or-exclude folder down from GUI layers to the core. 2011-11-28 14:52:48 -05:00
Virgil Dupras
3342b32882 [#179] Refactored folder deletion so that it uses selection in the core's directory_tree instead of using the one from the GUI layer. 2011-11-28 14:21:10 -05:00
Virgil Dupras
561b469e41 Oops, I didn't edit qt.me.result_model correctly. 2011-11-28 14:19:21 -05:00
Virgil Dupras
69fbda5d2c Added qt.(se|me|pe).result_model which I had forgot to add in previous commit. 2011-11-28 14:07:09 -05:00
Virgil Dupras
63180eaa5b Merge dev branch with fix for #181 2011-11-28 13:40:19 -05:00
Virgil Dupras
25faa458b9 [#181 state:fixed] Fixed a bug where performing actions like Mark All under a filtered environment would mark dupes even if they weren't in the filter. 2011-11-28 13:39:37 -05:00
Virgil Dupras
760e4085fa Merge dev branch with fix for #178 2011-11-28 13:16:22 -05:00
Virgil Dupras
fbe66d27c9 [#178 state:fixed] Fixed a crash on adding a criterion with an empty selection. 2011-11-28 13:14:36 -05:00
Virgil Dupras
08fd17f208 (Correction: The previous commit wasn't about --updatepot, but rather --loc) Updated Cocoa localization which were outdated because the build script didn't include edition-specific strings files. 2011-11-28 13:06:14 -05:00
Virgil Dupras
f8af6dbd18 Added edition-specific .strings in the build's --updatepot action. 2011-11-28 13:00:36 -05:00
Virgil Dupras
54d6fb080c Updated cocoa's ResultWindow localization which were out of sync with the XIB. 2011-11-28 11:02:31 -05:00
Virgil Dupras
8409a01bcc Removed columns.strings from Cocoa now that it became useless. 2011-11-28 11:00:16 -05:00
Virgil Dupras
1e136d2703 Updated localization. 2011-11-28 10:55:10 -05:00
Virgil Dupras
25afe54be3 Column-ized problem_table under Cocoa. 2011-11-28 10:45:11 -05:00
Virgil Dupras
d9ae967439 Updated the qt part of dupeguru to adjust to the latest column reorganization. 2011-11-28 10:27:17 -05:00
Virgil Dupras
9226a4fb7c Fixed unittests. 2011-11-27 16:49:12 -05:00
Virgil Dupras
fc5a0d914b Moved DELTA_COLUMNS from app to result_table. 2011-11-27 13:10:35 -05:00
Virgil Dupras
fca66d5108 Fixed HTML exporting. 2011-11-27 13:02:59 -05:00
Virgil Dupras
0571151c5f Fixed delta columns. 2011-11-27 12:54:58 -05:00
Virgil Dupras
7e95404903 Moved column information in new edition-specific core result_table units. 2011-11-27 12:47:00 -05:00
Virgil Dupras
eb83b830df Began a long overdue overhaul of the columns system. Cocoa-only so far, but it will affect the Qt part. 2011-11-26 10:55:14 -05:00
Virgil Dupras
0b1bf79796 Updated credits for localizations and added polib to the list of dependencies. 2011-11-25 15:10:18 -05:00
Virgil Dupras
6ab074decb Added localizations for Yes/No/OK in Dialogs and straightened up ui po files which had (near) duplicate problems. 2011-11-09 11:49:54 -05:00
Virgil Dupras
b7462f1d17 Fixed localization function in cocoa.inter.app 2011-11-09 11:02:15 -05:00
Virgil Dupras
a2a8397e78 Cocoalib's strings are now autogenerated from .po files suring the build_localizations() phase. 2011-11-04 15:17:14 -04:00
Virgil Dupras
5c0d9411e5 Added a few missing italian translations and updated a couple of oudated french strings files. 2011-11-04 15:16:38 -04:00
Virgil Dupras
cd2afeb32b Fixed a mix up in the message translations. 2011-11-04 15:11:09 -04:00
Virgil Dupras
b2fd022d07 Converted missing strings from Localizable.strings to ui.po. 2011-11-04 15:05:13 -04:00
Virgil Dupras
878046b579 Removing english locale. Now that the project has been de-message-ified, it became useless. 2011-11-04 14:38:13 -04:00
Virgil Dupras
428a400848 De-message-ified the rest of the project. 2011-11-04 14:37:07 -04:00
Virgil Dupras
8aa5826080 De-message-ified all messages from Cocoa's message.strings files. 2011-11-04 13:10:11 -04:00
Virgil Dupras
6b5d1e9894 Tweaked italian loc and added italian support in Cocoa and Qt layers. 2011-11-04 12:07:45 -04:00
Virgil Dupras
07a6a37502 Added cocoa localization by Paolo Rossi and converted it to .po. 2011-11-04 11:42:43 -04:00
Virgil Dupras
dd0af2fe15 I had forgotten to add translatable strings from cocoa/inter into the .pot files. 2011-11-04 11:23:17 -04:00
Virgil Dupras
df6d7141f1 De-message-ified hscommon and updated pot/po files. 2011-11-03 11:12:29 -04:00
Virgil Dupras
81d4cdde33 Added Czech support on the Qt side. 2011-11-03 10:38:31 -04:00
Virgil Dupras
88a613268d Removed .ts localizations, they aren't needed anymore.
--HG--
rename : qt/lang/qt_zh.qm => qt/lang/qt_zh_CN.qm
2011-11-03 10:25:15 -04:00
Virgil Dupras
b7aa4a1ad8 Removed core.strings from cocoa projects. They're not needed anymore since the core takes care of its own translations now. 2011-11-03 10:03:41 -04:00
Virgil Dupras
6c75d3afdf Added support got gettext localizations under Cocoa. 2011-11-02 17:31:57 -04:00
Virgil Dupras
771f26ba0f Generate lproj folders from .po files. 2011-11-02 16:47:56 -04:00
Virgil Dupras
30676fd20b Migrated XIB strings translations to .pot and .po files. 2011-11-02 15:55:20 -04:00
Virgil Dupras
607433d918 Added gettext support for czech. 2011-11-01 17:49:25 -04:00
Virgil Dupras
29db39f144 Added gettext support for chinese. 2011-11-01 17:40:57 -04:00
Virgil Dupras
49e49d5e1a Added gettext support for german. 2011-11-01 17:28:44 -04:00
Virgil Dupras
b9b84c9b7d Added gettext support for english (for messages). 2011-11-01 16:01:34 -04:00
Virgil Dupras
d80a56db78 Started moving towards a gettext-based localization. 2011-11-01 15:44:18 -04:00
Virgil Dupras
036026d64a Sphinx 1.1 has been released, we can finally remove the notes about Sphinx and python 2.7. 2011-11-01 10:04:34 -04:00
Virgil Dupras
13ef2fae90 Finished integrating Czech localization under Cocoa. 2011-11-01 10:00:30 -04:00
Virgil Dupras
54731e4ba0 Integrated Cocoa Czech localization by Aleš Nehyba. 2011-10-31 11:23:23 -04:00
Virgil Dupras
aa341bc5ed Debian packaging: /usr/local/share --> /usr/share 2011-10-24 13:11:40 -04:00
Virgil Dupras
4426f924e2 Added tag pe2.3.0 for changeset 4e6cbef6bcdf 2011-10-04 10:29:06 -04:00
Virgil Dupras
a6deb04049 Fixed a PE build problem under linux where extensions would get complicated extensions, not found by the old move() scheme. 2011-10-04 09:45:55 -04:00
Virgil Dupras
806d6be36c pe v2.3.0 2011-10-04 09:17:08 -04:00
Virgil Dupras
152a8772da Added tag me6.1.1 for changeset 3dd08060135b 2011-10-03 11:27:36 -04:00
Virgil Dupras
5885ead5ab me v6.1.1 2011-10-03 09:45:24 -04:00
Virgil Dupras
6fc5ce4bad Added tag se3.2.1 for changeset 0fd77be57ff7 2011-10-02 12:18:20 -04:00
Virgil Dupras
a4ae503bd4 Fixed changelog typo. 2011-10-02 10:58:08 -04:00
Virgil Dupras
020746be10 se v3.2.1 2011-10-02 10:39:07 -04:00
Virgil Dupras
436a8e686d Fixed broken actions: reveal_path in problems dialog and copy/move under Qt. 2011-10-02 10:27:40 -04:00
Virgil Dupras
b6d66f6d0b Added tag me6.1.0 for changeset 5a5134a4fa9b 2011-09-29 15:38:42 -04:00
193 changed files with 10367 additions and 4412 deletions

View File

@@ -4,6 +4,7 @@ syntax: glob
run.py
*.pyc
*.so
*.mo
*.pyd
*.xcodeproj/xcuserdata
*.xcodeproj/project.xcworkspace/xcuserdata
@@ -14,10 +15,13 @@ install
installer_tmp-cache
cocoa/*/Info.plist
cocoa/*/build
cocoa/*/*.app
cocoa/*/dg_cocoa.plugin
cocoa/*/fr.lproj/*.xib
cocoa/*/de.lproj/*.xib
cocoa/*/zh_CN.lproj/*.xib
cocoa/*/cs.lproj/*.xib
cocoa/*/it.lproj/*.xib
qt/base/*_rc.py
qt/lang/fr.qm
qt/lang/en.qm

View File

@@ -56,3 +56,8 @@ e62183e907d6177cf0bac354e31afa9546c199e6 se3.1.2
925847384dcef62a5c3518fc9e5ce42feab2b093 pe2.2.2
383b14d6e8555ed2c8d5552259bc7ce600dfb1d0 before-leopard-drop
a2f7b7302e178f08725a6404ddc28464409510b1 se3.2.0
5a5134a4fa9bb7ca80ae3e32010030f5bd7ba434 me6.1.0
0fd77be57ff716d5c93232e829dc02acec036d7c se3.2.1
3dd08060135b0b9cef70b6f5a81f191ea339c8d5 me6.1.1
4e6cbef6bcdfcc0e56ff9690fbfe1cac1f4b1b09 pe2.3.0
9ea9af1b886cd1adc4f42fd2276cc2b38376eab0 se3.3.0

16
README
View File

@@ -30,13 +30,10 @@ General dependencies
- Send2Trash3k (http://hg.hardcoded.net/send2trash)
- hsaudiotag3k 1.1.0 (for ME) (http://hg.hardcoded.net/hsaudiotag)
- jobprogress 1.0.2 (http://hg.hardcoded.net/jobprogress)
- Sphinx 1.0.7 (http://sphinx.pocoo.org/)
- Sphinx 1.1 (http://sphinx.pocoo.org/)
- polib 0.7.0 (http://bitbucket.org/izi/polib)
- pytest 2.0.0, to run unit tests. (http://pytest.org/)
Note: Sphinx doesn't officially support Python 3.x yet, but it doesn't matter because it is invoked
by the build system through command line, so you can build dupeGuru even if Sphinx is installed in
your Python 2.x install.
OS X prerequisites
------------------
@@ -67,8 +64,7 @@ There's an easy way to install the majority of the prerequisites above, and it's
pip install -r requirements-[osx|win].txt
([osx|win] depends, of course, on your platform. On other platforms, just use requirements.txt).
Because Sphinx doesn't support Python 3 yet, it's not in the requirements file and you'll have to
install it manually. You might have to compile PyObjC manually too (see gotchas below). Sparkle and
You might have to compile PyObjC manually (see gotchas below). Sparkle and
Advanced Installer, having nothing to do with Python, are also manual installs.
PyQt isn't in the requirements file either (there's no package uploaded on PyPI) and you also have
@@ -93,12 +89,6 @@ PyObjC's website is badly outdated. Also, as far as I can tell, the package inst
`easy_install` has good chances of not working. Your best bet is to download the latest tagged
version from the repository and compile it from source.
Also, on OS X, don't try to use the built-in python 2.x to install Sphinx on (the only pre-requisite
that doesn't run on python 3 yet). There's some weird error popping up when dupeGuru tries to build
its help file. Install your own framework version of python 2.7, and then install Sphinx on that.
When Sphinx supports Python 3, things will be easier because you'll be able to install sphinx on the
same Python version you build dupeGuru with.
Another one on OS X: I wouldn't use macports/fink/whatever. Whenever I tried using those, I always
ended up with problems.

View File

@@ -17,7 +17,8 @@ from distutils.extension import Extension
from hscommon import sphinxgen
from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace,
get_module_version, build_all_cocoa_locs, build_all_qt_locs)
get_module_version, build_all_cocoa_locs, move_all)
from hscommon import loc
def parse_args():
usage = "usage: %prog [options]"
@@ -28,6 +29,10 @@ def parse_args():
help="Build only the help file")
parser.add_option('--loc', action='store_true', dest='loc',
help="Build only localization")
parser.add_option('--updatepot', action='store_true', dest='updatepot',
help="Generate .pot files from source code.")
parser.add_option('--mergepot', action='store_true', dest='mergepot',
help="Update all .po files based on .pot files.")
(options, args) = parser.parse_args()
return options
@@ -73,12 +78,11 @@ def build_cocoa(edition, dev):
os.system('xcodebuild {0}'.format(args))
os.chdir('../..')
print("Creating the run.py file")
subfolder = 'dev' if dev else 'release'
app_path = {
'se': 'cocoa/se/build/{0}/dupeGuru.app',
'me': 'cocoa/me/build/{0}/dupeGuru\\ ME.app',
'pe': 'cocoa/pe/build/{0}/dupeGuru\\ PE.app',
}[edition].format(subfolder)
'se': 'cocoa/se/dupeGuru.app',
'me': 'cocoa/me/dupeGuru\\ ME.app',
'pe': 'cocoa/pe/dupeGuru\\ PE.app',
}[edition]
tmpl = open('run_template_cocoa.py', 'rt').read()
run_contents = tmpl.replace('{{app_path}}', app_path)
open('run.py', 'wt').write(run_contents)
@@ -105,23 +109,60 @@ def build_help(edition):
def build_localizations(ui, edition):
print("Building localizations")
loc.compile_all_po('locale')
loc.compile_all_po(op.join('hscommon', 'locale'))
loc.merge_locale_dir(op.join('hscommon', 'locale'), 'locale')
if op.exists(op.join('build', 'locale')):
shutil.rmtree(op.join('build', 'locale'))
shutil.copytree('locale', op.join('build', 'locale'), ignore=shutil.ignore_patterns('*.po', '*.pot'))
if ui == 'cocoa':
print("Creating lproj folders based on .po files")
for lang in loc.get_langs('locale'):
if lang == 'en':
continue
pofile = op.join('locale', lang, 'LC_MESSAGES', 'ui.po')
for edition_folder in ['base', 'se', 'me', 'pe']:
enlproj = op.join('cocoa', edition_folder, 'en.lproj')
dest_lproj = op.join('cocoa', edition_folder, lang + '.lproj')
loc.po2allxibstrings(pofile, enlproj, dest_lproj)
if edition_folder == 'base':
loc.po2strings(pofile, op.join(enlproj, 'Localizable.strings'), op.join(dest_lproj, 'Localizable.strings'))
pofile = op.join('cocoalib', 'locale', lang, 'LC_MESSAGES', 'cocoalib.po')
loc.po2allxibstrings(pofile, op.join('cocoalib', 'en.lproj'), op.join('cocoalib', lang + '.lproj'))
build_all_cocoa_locs('cocoalib')
build_all_cocoa_locs(op.join('cocoa', 'base'))
build_all_cocoa_locs(op.join('cocoa', edition))
elif ui == 'qt':
print("Building .ts files")
build_all_qt_locs(op.join('qt', 'lang'), extradirs=[op.join('qtlib', 'lang')])
loc.compile_all_po(op.join('qtlib', 'locale'))
loc.merge_locale_dir(op.join('qtlib', 'locale'), 'locale')
def build_updatepot():
print("Building .pot files from source files")
print("Building core.pot")
all_cores = ['core', 'core_se', 'core_me', 'core_pe']
loc.generate_pot(all_cores, op.join('locale', 'core.pot'), ['tr'])
print("Building columns.pot")
loc.generate_pot(all_cores, op.join('locale', 'columns.pot'), ['coltr'])
print("Building ui.pot")
ui_packages = ['qt', op.join('cocoa', 'inter')]
loc.generate_pot(ui_packages, op.join('locale', 'ui.pot'), ['tr'])
print("Building hscommon.pot")
loc.generate_pot(['hscommon'], op.join('hscommon', 'locale', 'hscommon.pot'), ['tr'])
print("Building qtlib.pot")
loc.generate_pot(['qtlib'], op.join('qtlib', 'locale', 'qtlib.pot'), ['tr'])
print("Enhancing ui.pot with Cocoa's strings files")
loc.allstrings2pot(op.join('cocoa', 'base', 'en.lproj'), op.join('locale', 'ui.pot'),
excludes={'core', 'message', 'columns'})
loc.allstrings2pot(op.join('cocoa', 'se', 'en.lproj'), op.join('locale', 'ui.pot'))
loc.allstrings2pot(op.join('cocoa', 'me', 'en.lproj'), op.join('locale', 'ui.pot'))
loc.allstrings2pot(op.join('cocoa', 'pe', 'en.lproj'), op.join('locale', 'ui.pot'))
def build_mergepot():
print("Updating .po files using .pot files")
loc.merge_pots_into_pos('locale')
loc.merge_pots_into_pos(op.join('hscommon', 'locale'))
def build_pe_modules(ui):
def move(src, dst):
if not op.exists(src):
return
if op.exists(dst):
os.remove(dst)
print('Moving %s --> %s' % (src, dst))
os.rename(src, dst)
print("Building PE Modules")
exts = [
Extension("_block", [op.join('core_pe', 'modules', 'block.c'), op.join('core_pe', 'modules', 'common.c')]),
@@ -141,13 +182,9 @@ def build_pe_modules(ui):
script_args = ['build_ext', '--inplace'],
ext_modules = exts,
)
move('_block.so', op.join('core_pe', '_block.so'))
move('_block.pyd', op.join('core_pe', '_block.pyd'))
move('_block_osx.so', op.join('core_pe', '_block_osx.so'))
move('_cache.so', op.join('core_pe', '_cache.so'))
move('_cache.pyd', op.join('core_pe', '_cache.pyd'))
move('_block_qt.so', op.join('qt', 'pe', '_block_qt.so'))
move('_block_qt.pyd', op.join('qt', 'pe', '_block_qt.pyd'))
move_all('_block_qt*', op.join('qt', 'pe'))
move_all('_block*', 'core_pe')
move_all('_cache*', 'core_pe')
def build_normal(edition, ui, dev):
print("Building dupeGuru {0} with UI {1}".format(edition.upper(), ui))
@@ -179,6 +216,10 @@ def main():
build_help(edition)
elif options.loc:
build_localizations(ui, edition)
elif options.updatepot:
build_updatepot()
elif options.mergepot:
build_mergepot()
else:
build_normal(edition, ui, dev)

View File

@@ -101,7 +101,7 @@ http://www.hardcoded.net/licenses/bsd_license
[op setCanCreateDirectories:NO];
[op setAllowsMultipleSelection:NO];
[op setAllowedFileTypes:[NSArray arrayWithObject:@"dupeguru"]];
[op setTitle:TRMSG(@"SelectResultToLoadMsg")];
[op setTitle:TR(@"Select a results file to load")];
if ([op runModal] == NSOKButton) {
NSString *filename = [[op filenames] objectAtIndex:0];
[py loadResultsFrom:filename];
@@ -158,14 +158,6 @@ http://www.hardcoded.net/licenses/bsd_license
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[[ProgressController mainProgressController] setWorker:py];
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
//Restore Columns
NSArray *columnsOrder = [ud arrayForKey:@"columnsOrder"];
NSDictionary *columnsWidth = [ud dictionaryForKey:@"columnsWidth"];
if ([columnsOrder count])
[[self resultWindow] restoreColumnsPosition:columnsOrder widths:columnsWidth];
else
[[self resultWindow] resetColumnsToDefault:nil];
[py initialRegistrationSetup];
[py loadSession];
}
@@ -180,7 +172,7 @@ http://www.hardcoded.net/licenses/bsd_license
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
{
if ([py resultsAreModified]) {
NSString *msg = TRMSG(@"ReallyWantToQuitMsg");
NSString *msg = TR(@"You have unsaved results, do you really want to quit?");
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) { // NO
return NSTerminateCancel;
}
@@ -191,8 +183,6 @@ http://www.hardcoded.net/licenses/bsd_license
- (void)applicationWillTerminate:(NSNotification *)aNotification
{
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
[ud setObject: [[self resultWindow] getColumnsOrder] forKey:@"columnsOrder"];
[ud setObject: [[self resultWindow] getColumnsWidth] forKey:@"columnsWidth"];
NSInteger sc = [ud integerForKey:@"sessionCountSinceLastIgnorePurge"];
if (sc >= 10) {
sc = -1;

View File

@@ -6,7 +6,7 @@ which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/bsd_license
*/
#import <Cocoa/Cocoa.h>
#import "HSConsts.h"
#define JobStarted @"JobStarted"
#define JobInProgress @"JobInProgress"
@@ -19,7 +19,3 @@ http://www.hardcoded.net/licenses/bsd_license
#define jobDelete @"job_delete"
#define DGPrioritizeIndexPasteboardType @"DGPrioritizeIndexPasteboardType"
#define TR(s) NSLocalizedString(s, @"")
#define TRCOL(s) NSLocalizedStringFromTable(s, @"columns", @"")
#define TRMSG(s) NSLocalizedStringFromTable(s, @"message", @"")

View File

@@ -58,7 +58,7 @@ http://www.hardcoded.net/licenses/bsd_license
[op setCanChooseFiles:YES];
[op setCanChooseDirectories:YES];
[op setAllowsMultipleSelection:YES];
[op setTitle:TRMSG(@"SelectFolderToAddMsg")];
[op setTitle:TR(@"Select a folder to add to the scanning list")];
[op setDelegate:self];
if ([op runModal] == NSOKButton) {
for (NSString *directory in [op filenames]) {
@@ -100,18 +100,7 @@ http://www.hardcoded.net/licenses/bsd_license
- (IBAction)removeSelectedDirectory:(id)sender
{
[[self window] makeKeyAndOrderFront:nil];
if ([outlineView selectedRow] < 0)
return;
NSIndexPath *path = [outline selectedIndexPath];
NSInteger state = [outline intProperty:@"state" valueAtPath:path];
if (([path length] == 1) && (state != 2)) {
[_py removeDirectory:i2n([path indexAtPosition:0])];
}
else {
NSInteger newState = state == 2 ? 0 : 2; // If excluded, put it back
[outline setIntProperty:@"state" value:newState atPath:path];
[outlineView display];
}
[[outline py] removeSelectedDirectory];
[self refreshRemoveButtonText];
}
@@ -122,10 +111,10 @@ http://www.hardcoded.net/licenses/bsd_license
if (r) {
NSString *m = @"";
if (r == 1) {
m = TRMSG(@"FolderAlreadyInListMsg");
m = TR(@"'%@' already is in the list.");
}
else if (r == 2) {
m = TRMSG(@"FolderDoesNotExistMsg");
m = TR(@"'%@' does not exist.");
}
[Dialogs showMessage:[NSString stringWithFormat:m,directory]];
}
@@ -140,10 +129,14 @@ http://www.hardcoded.net/licenses/bsd_license
return;
}
[removeButton setEnabled:YES];
NSInteger state = [outline intProperty:@"state" valueAtPath:[outline selectedIndexPath]];
NSString *imgName = state == 2 ? @"NSGoLeftTemplate" : @"NSRemoveTemplate";
NSIndexPath *path = [outline selectedIndexPath];
if (path != nil) {
NSInteger state = [outline intProperty:@"state" valueAtPath:path];
BOOL shouldDisplayArrow = ([path length] > 1) && (state == 2);
NSString *imgName = shouldDisplayArrow ? @"NSGoLeftTemplate" : @"NSRemoveTemplate";
[removeButton setImage:[NSImage imageNamed:imgName]];
}
}
/* Delegate */
- (BOOL)panel:(id)sender shouldShowFilename:(NSString *)path

View File

@@ -21,5 +21,6 @@ http://www.hardcoded.net/licenses/bsd_license
- (id)initWithPy:(PyApp *)aPy;
- (PyProblemDialog *)py;
- (void)initializeColumns;
- (IBAction)revealSelected:(id)sender;
@end

View File

@@ -15,6 +15,7 @@ http://www.hardcoded.net/licenses/bsd_license
self = [super initWithNibName:@"ProblemDialog" pyClassName:@"PyProblemDialog" pyParent:aPy];
[self window]; //So the detailsTable is initialized.
problemTable = [[HSTable alloc] initWithPyClassName:@"PyProblemTable" pyParent:[self py] view:problemTableView];
[self initializeColumns];
[self connect];
[problemTable connect];
return self;
@@ -33,6 +34,16 @@ http://www.hardcoded.net/licenses/bsd_license
return (PyProblemDialog *)py;
}
- (void)initializeColumns
{
HSColumnDef defs[] = {
{@"path", 202, 40, 0, NO, nil},
{@"msg", 228, 40, 0, NO, nil},
nil
};
[[problemTable columns] initializeColumns:defs];
}
- (IBAction)revealSelected:(id)sender
{
[[self py] revealSelected];

View File

@@ -11,4 +11,5 @@ http://www.hardcoded.net/licenses/bsd_license
@interface PyDirectoryOutline : PyOutline
- (void)addDirectory:(NSString *)directoryPath;
- (void)removeSelectedDirectory;
@end

View File

@@ -7,20 +7,21 @@ http://www.hardcoded.net/licenses/bsd_license
*/
#import <Cocoa/Cocoa.h>
#import "PyResultTable.h"
#import "PyApp.h"
@interface PyDupeGuruBase : PyApp
- (void)bindCocoa:(id)cocoa;
- (PyResultTable *)resultTable;
//Actions
- (NSNumber *)addDirectory:(NSString *)name;
- (void)removeDirectory:(NSNumber *)index;
- (void)loadResultsFrom:(NSString *)filename;
- (void)saveResultsAs:(NSString *)filename;
- (void)loadSession;
- (void)saveSession;
- (void)clearIgnoreList;
- (void)purgeIgnoreList;
- (NSString *)exportToXHTMLwithColumns:(NSArray *)aColIds;
- (NSString *)exportToXHTML;
- (void)invokeCommand:(NSString *)cmd;
- (void)doScan;
@@ -46,7 +47,6 @@ http://www.hardcoded.net/licenses/bsd_license
- (NSNumber *)getMarkCount;
- (BOOL)scanWasProblematic;
- (BOOL)resultsAreModified;
- (NSArray *)deltaColumns;
//Scanning options
- (void)setScanType:(NSNumber *)scan_type;

View File

@@ -14,10 +14,11 @@ http://www.hardcoded.net/licenses/bsd_license
- (void)setPowerMarkerMode:(BOOL)aPowerMarkerMode;
- (BOOL)deltaValuesMode;
- (void)setDeltaValuesMode:(BOOL)aDeltaValuesMode;
- (NSArray *)deltaColumns;
- (NSString *)valueForRow:(NSInteger)rowIndex column:(NSInteger)aColumn;
- (NSString *)valueForRow:(NSInteger)rowIndex column:(NSString *)aColumn;
- (BOOL)renameSelected:(NSString *)aNewName;
- (void)sortBy:(NSInteger)aIdentifier ascending:(BOOL)aAscending;
- (void)sortBy:(NSString *)aIdentifier ascending:(BOOL)aAscending;
- (void)markSelected;
- (void)removeSelected;
- (NSInteger)selectedDupeCount;

View File

@@ -13,15 +13,14 @@ http://www.hardcoded.net/licenses/bsd_license
@interface ResultTable : HSTable <QLPreviewPanelDataSource, QLPreviewPanelDelegate>
{
NSIndexSet *_deltaColumns;
NSSet *_deltaColumns;
}
- (id)initWithPyParent:(id)aPyParent view:(NSTableView *)aTableView;
- (id)initWithPy:(id)aPy view:(NSTableView *)aTableView;
- (PyResultTable *)py;
- (BOOL)powerMarkerMode;
- (void)setPowerMarkerMode:(BOOL)aPowerMarkerMode;
- (BOOL)deltaValuesMode;
- (void)setDeltaValuesMode:(BOOL)aDeltaValuesMode;
- (void)setDeltaColumns:(NSIndexSet *)aDeltaColumns;
- (NSInteger)selectedDupeCount;
- (void)removeSelected;
@end;

View File

@@ -18,9 +18,10 @@ http://www.hardcoded.net/licenses/bsd_license
@end
@implementation ResultTable
- (id)initWithPyParent:(id)aPyParent view:(NSTableView *)aTableView
- (id)initWithPy:(id)aPy view:(NSTableView *)aTableView
{
self = [super initWithPyClassName:@"PyResultTable" pyParent:aPyParent view:aTableView];
self = [super initWithPy:aPy view:aTableView];
_deltaColumns = [[NSSet setWithArray:[[self py] deltaColumns]] retain];
[self connect];
return self;
}
@@ -78,12 +79,6 @@ http://www.hardcoded.net/licenses/bsd_license
[[self py] setDeltaValuesMode:aDeltaValuesMode];
}
- (void)setDeltaColumns:(NSIndexSet *)aDeltaColumns
{
[_deltaColumns release];
_deltaColumns = [aDeltaColumns retain];
}
- (NSInteger)selectedDupeCount
{
return [[self py] selectedDupeCount];
@@ -94,7 +89,7 @@ http://www.hardcoded.net/licenses/bsd_license
NSInteger selectedDupeCount = [self selectedDupeCount];
if (!selectedDupeCount)
return;
NSString *msgFmt = TRMSG(@"FileRemovalConfirmMsg");
NSString *msgFmt = TR(@"You are about to remove %d files from results. Continue?");
NSString *msg = [NSString stringWithFormat:msgFmt,selectedDupeCount];
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
return;
@@ -108,8 +103,7 @@ http://www.hardcoded.net/licenses/bsd_license
if ([identifier isEqual:@"marked"]) {
return [[self py] valueForColumn:@"marked" row:row];
}
NSInteger columnId = [identifier integerValue];
return [[self py] valueForRow:row column:columnId];
return [[self py] valueForRow:row column:identifier];
}
- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)object forTableColumn:(NSTableColumn *)column row:(NSInteger)row
@@ -118,13 +112,13 @@ http://www.hardcoded.net/licenses/bsd_license
if ([identifier isEqual:@"marked"]) {
[[self py] setValue:object forColumn:identifier row:row];
}
else if ([identifier isEqual:@"0"]) {
NSString *oldName = [[self py] valueForRow:row column:0];
else if ([identifier isEqual:@"name"]) {
NSString *oldName = [[self py] valueForRow:row column:identifier];
NSString *newName = object;
if (![newName isEqual:oldName]) {
BOOL renamed = [[self py] renameSelected:newName];
if (!renamed) {
[Dialogs showMessage:[NSString stringWithFormat:TRMSG(@"FilenameAlreadyExistsMsg"), newName]];
[Dialogs showMessage:[NSString stringWithFormat:TR(@"The name '%@' already exists."), newName]];
}
else {
[tableView setNeedsDisplay:YES];
@@ -139,7 +133,7 @@ http://www.hardcoded.net/licenses/bsd_license
if ([[tableView sortDescriptors] count] < 1)
return;
NSSortDescriptor *sd = [[tableView sortDescriptors] objectAtIndex:0];
[[self py] sortBy:[[sd key] integerValue] ascending:[sd ascending]];
[[self py] sortBy:[sd key] ascending:[sd ascending]];
}
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)column row:(NSInteger)row
@@ -159,8 +153,7 @@ http://www.hardcoded.net/licenses/bsd_license
}
else if (isMarkable) {
if ([self deltaValuesMode]) {
NSInteger i = [[column identifier] integerValue];
if ([_deltaColumns containsIndex:i]) {
if ([_deltaColumns containsObject:[column identifier]]) {
color = [NSColor orangeColor];
}
}

View File

@@ -27,7 +27,6 @@ http://www.hardcoded.net/licenses/bsd_license
AppDelegateBase *app;
PyDupeGuruBase *py;
NSMenu *columnsMenu;
NSMutableArray *_resultColumns;
ResultTable *table;
StatsLabel *statsLabel;
ProblemDialog *problemDialog;
@@ -41,10 +40,6 @@ http://www.hardcoded.net/licenses/bsd_license
/* Helpers */
- (void)fillColumnsMenu;
- (NSTableColumn *)getColumnForIdentifier:(NSInteger)aIdentifier title:(NSString *)aTitle width:(NSInteger)aWidth refCol:(NSTableColumn *)aColumn;
- (NSArray *)getColumnsOrder;
- (NSDictionary *)getColumnsWidth;
- (void)restoreColumnsPosition:(NSArray *)aColumnsOrder widths:(NSDictionary *)aColumnsWidth;
- (void)sendMarkedToTrash:(BOOL)hardlinkDeleted;
- (void)updateOptionSegments;

View File

@@ -24,14 +24,13 @@ http://www.hardcoded.net/licenses/bsd_license
columnsMenu = [app columnsMenu];
/* Put a cute iTunes-like bottom bar */
[[self window] setContentBorderThickness:28 forEdge:NSMinYEdge];
table = [[ResultTable alloc] initWithPyParent:py view:matches];
table = [[ResultTable alloc] initWithPy:[py resultTable] view:matches];
statsLabel = [[StatsLabel alloc] initWithPyParent:py labelView:stats];
problemDialog = [[ProblemDialog alloc] initWithPy:py];
[self initResultColumns];
[self fillColumnsMenu];
[matches setTarget:self];
[matches setDoubleAction:@selector(openClicked:)];
[table setDeltaColumns:[Utils array2IndexSet:[py deltaColumns]]];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobCompleted:) name:JobCompletedNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobStarted:) name:JobStarted object:nil];
@@ -50,9 +49,6 @@ http://www.hardcoded.net/licenses/bsd_license
/* Virtual */
- (void)initResultColumns
{
NSUserDefaults *udc = [NSUserDefaultsController sharedUserDefaultsController];
NSTableColumn *refCol = [matches tableColumnWithIdentifier:@"0"];
[refCol bind:@"fontSize" toObject:udc withKeyPath:@"values.TableFontSize" options:nil];
}
- (void)setScanOptions
@@ -62,14 +58,15 @@ http://www.hardcoded.net/licenses/bsd_license
/* Helpers */
- (void)fillColumnsMenu
{
// The columns menu is supposed to be empty and initResultColumns must have been called
for (NSTableColumn *col in _resultColumns)
{
NSMenuItem *mi = [columnsMenu addItemWithTitle:[[col headerCell] stringValue] action:@selector(toggleColumn:) keyEquivalent:@""];
[mi setTag:[[col identifier] integerValue]];
NSArray *menuItems = [[[table columns] py] menuItems];
for (NSInteger i=0; i < [menuItems count]; i++) {
NSArray *pair = [menuItems objectAtIndex:i];
NSString *display = [pair objectAtIndex:0];
BOOL marked = n2b([pair objectAtIndex:1]);
NSMenuItem *mi = [columnsMenu addItemWithTitle:display action:@selector(toggleColumn:) keyEquivalent:@""];
[mi setTarget:self];
if ([[matches tableColumns] containsObject:col])
[mi setState:NSOnState];
[mi setState:marked ? NSOnState : NSOffState];
[mi setTag:i];
}
[columnsMenu addItem:[NSMenuItem separatorItem]];
NSMenuItem *mi = [columnsMenu addItemWithTitle:TR(@"Reset to Default")
@@ -77,75 +74,15 @@ http://www.hardcoded.net/licenses/bsd_license
[mi setTarget:self];
}
- (NSTableColumn *)getColumnForIdentifier:(NSInteger)aIdentifier title:(NSString *)aTitle width:(NSInteger)aWidth refCol:(NSTableColumn *)aColumn
{
NSNumber *n = [NSNumber numberWithInteger:aIdentifier];
NSTableColumn *col = [[NSTableColumn alloc] initWithIdentifier:[n stringValue]];
[col setWidth:aWidth];
[col setEditable:NO];
[[col dataCell] setFont:[[aColumn dataCell] font]];
[[col headerCell] setStringValue:aTitle];
[col setResizingMask:NSTableColumnUserResizingMask];
[col setSortDescriptorPrototype:[[NSSortDescriptor alloc] initWithKey:[n stringValue] ascending:YES]];
NSUserDefaults *udc = [NSUserDefaultsController sharedUserDefaultsController];
[col bind:@"fontSize" toObject:udc withKeyPath:@"values.TableFontSize" options:nil];
return col;
}
//Returns an array of identifiers, in order.
- (NSArray *)getColumnsOrder
{
NSMutableArray *result = [NSMutableArray array];
for (NSTableColumn *col in [matches tableColumns]) {
NSString *colId = [col identifier];
[result addObject:colId];
}
return result;
}
- (NSDictionary *)getColumnsWidth
{
NSMutableDictionary *result = [NSMutableDictionary dictionary];
for (NSTableColumn *col in [matches tableColumns]) {
NSString *colId = [col identifier];
NSNumber *width = [NSNumber numberWithDouble:[col width]];
[result setObject:width forKey:colId];
}
return result;
}
- (void)restoreColumnsPosition:(NSArray *)aColumnsOrder widths:(NSDictionary *)aColumnsWidth
{
for (NSMenuItem *mi in [columnsMenu itemArray]) {
if ([mi state] == NSOnState) {
[self toggleColumn:mi];
}
}
//Add columns and set widths
for (NSString *colId in aColumnsOrder) {
NSInteger colIndex = [colId integerValue];
if ((colIndex == 0) && (![colId isEqual:@"0"])) {
continue;
}
NSTableColumn *col = [_resultColumns objectAtIndex:colIndex];
NSNumber *width = [aColumnsWidth objectForKey:[col identifier]];
NSMenuItem *mi = [columnsMenu itemWithTag:colIndex];
if (width) {
[col setWidth:[width floatValue]];
}
[self toggleColumn:mi];
}
}
- (void)sendMarkedToTrash:(BOOL)hardlinkDeleted
{
NSInteger mark_count = [[py getMarkCount] intValue];
if (!mark_count) {
return;
}
NSString *msg = TRMSG(@"SendToTrashConfirmMsg");
NSString *msg = TR(@"You are about to send %d files to Trash. Continue?");
if (hardlinkDeleted) {
msg = TRMSG(@"HardlinkConfirmMsg");
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;
@@ -173,7 +110,7 @@ http://www.hardcoded.net/licenses/bsd_license
NSInteger i = n2i([py getIgnoreListCount]);
if (!i)
return;
NSString *msg = [NSString stringWithFormat:TRMSG(@"ClearIgnoreListConfirmMsg"),i];
NSString *msg = [NSString stringWithFormat:TR(@"Do you really want to remove all %d items from the ignore list?"),i];
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
return;
[py clearIgnoreList];
@@ -203,7 +140,7 @@ http://www.hardcoded.net/licenses/bsd_license
[op setCanChooseDirectories:YES];
[op setCanCreateDirectories:YES];
[op setAllowsMultipleSelection:NO];
[op setTitle:TRMSG(@"SelectCopyDestinationMsg")];
[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];
@@ -223,7 +160,7 @@ http://www.hardcoded.net/licenses/bsd_license
- (IBAction)exportToXHTML:(id)sender
{
NSString *exported = [py exportToXHTMLwithColumns:[self getColumnsOrder]];
NSString *exported = [py exportToXHTML];
[[NSWorkspace sharedWorkspace] openFile:exported];
}
@@ -239,7 +176,7 @@ http://www.hardcoded.net/licenses/bsd_license
NSInteger selectedDupeCount = [table selectedDupeCount];
if (!selectedDupeCount)
return;
NSString *msg = [NSString stringWithFormat:TRMSG(@"IgnoreConfirmMsg"),selectedDupeCount];
NSString *msg = [NSString stringWithFormat:TR(@"All selected %d matches are going to be ignored in all subsequent scans. Continue?"),selectedDupeCount];
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
return;
[py addSelectedToIgnoreList];
@@ -253,7 +190,7 @@ http://www.hardcoded.net/licenses/bsd_license
[py invokeCommand:cmd];
}
else {
[Dialogs showMessage:TRMSG(@"NoCustomCommandMsg")];
[Dialogs showMessage:TR(@"You have no custom command set up. Set it up in your preferences.")];
}
}
@@ -287,7 +224,7 @@ http://www.hardcoded.net/licenses/bsd_license
[op setCanChooseDirectories:YES];
[op setCanCreateDirectories:YES];
[op setAllowsMultipleSelection:NO];
[op setTitle:TRMSG(@"SelectMoveDestinationMsg")];
[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];
@@ -346,7 +283,7 @@ http://www.hardcoded.net/licenses/bsd_license
- (IBAction)resetColumnsToDefault:(id)sender
{
// Virtual
[[[table columns] py] resetToDefaults];
}
- (IBAction)revealSelected:(id)sender
@@ -359,7 +296,7 @@ http://www.hardcoded.net/licenses/bsd_license
NSSavePanel *sp = [NSSavePanel savePanel];
[sp setCanCreateDirectories:YES];
[sp setAllowedFileTypes:[NSArray arrayWithObject:@"dupeguru"]];
[sp setTitle:TRMSG(@"SelectResultToSaveMsg")];
[sp setTitle:TR(@"Select a file to save your results to")];
if ([sp runModal] == NSOKButton) {
[py saveResultsAs:[sp filename]];
[[app recentResults] addFile:[sp filename]];
@@ -369,7 +306,7 @@ http://www.hardcoded.net/licenses/bsd_license
- (IBAction)startDuplicateScan:(id)sender
{
if ([py resultsAreModified]) {
if ([Dialogs askYesNo:TRMSG(@"ReallyWantToContinueMsg")] == NSAlertSecondButtonReturn) // NO
if ([Dialogs askYesNo:TR(@"You have unsaved results, do you really want to continue?")] == NSAlertSecondButtonReturn) // NO
return;
}
[self setScanOptions];
@@ -384,19 +321,8 @@ http://www.hardcoded.net/licenses/bsd_license
- (IBAction)toggleColumn:(id)sender
{
NSMenuItem *mi = sender;
NSString *colId = [NSString stringWithFormat:@"%d",[mi tag]];
NSTableColumn *col = [matches tableColumnWithIdentifier:colId];
if (col == nil) {
//Add Column
col = [_resultColumns objectAtIndex:[mi tag]];
[matches addTableColumn:col];
[mi setState:NSOnState];
}
else {
//Remove column
[matches removeTableColumn:col];
[mi setState:NSOffState];
}
BOOL checked = [[[table columns] py] toggleMenuItem:[mi tag]];
[mi setState:checked ? NSOnState : NSOffState];
}
- (IBAction)toggleDetailsPanel:(id)sender
@@ -460,7 +386,7 @@ http://www.hardcoded.net/licenses/bsd_license
[problemDialog showWindow:self];
}
else {
[Dialogs showMessage:TRMSG(@"CopySuccessMsg")];
[Dialogs showMessage:TR(@"All marked files were copied sucessfully.")];
}
}
else if ([lastAction isEqualTo:jobMove]) {
@@ -468,7 +394,7 @@ http://www.hardcoded.net/licenses/bsd_license
[problemDialog showWindow:self];
}
else {
[Dialogs showMessage:TRMSG(@"MoveSuccessMsg")];
[Dialogs showMessage:TR(@"All marked files were moved sucessfully.")];
}
}
else if ([lastAction isEqualTo:jobDelete]) {
@@ -476,20 +402,20 @@ http://www.hardcoded.net/licenses/bsd_license
[problemDialog showWindow:self];
}
else {
[Dialogs showMessage:TRMSG(@"SendToTrashSuccessMsg")];
[Dialogs showMessage:TR(@"All marked files were sucessfully sent to Trash.")];
}
}
else if ([lastAction isEqualTo:jobScan]) {
NSInteger rowCount = [[table py] numberOfRows];
if (rowCount == 0) {
[Dialogs showMessage:TRMSG(@"NoDuplicateFoundMsg")];
[Dialogs showMessage:TR(@"No duplicates found.")];
}
}
}
- (void)jobInProgress:(NSNotification *)aNotification
{
[Dialogs showMessage:TRMSG(@"TaskHangingMsg")];
[Dialogs showMessage:TR(@"A previous action is still hanging in there. You can't start a new one yet. Wait a few seconds, then try again.")];
}
- (void)jobStarted:(NSNotification *)aNotification

View File

@@ -0,0 +1,12 @@
/* Class = "NSPanel"; title = "Details of Selected File"; ObjectID = "5"; */
"5.title" = "Detaily vybraného souboru";
/* Class = "NSTableColumn"; headerCell.title = "Selected"; ObjectID = "9"; */
"9.headerCell.title" = "Vybráno";
/* Class = "NSTableColumn"; headerCell.title = "Reference"; ObjectID = "10"; */
"10.headerCell.title" = "Referenční";
/* Class = "NSTableColumn"; headerCell.title = "Attribute"; ObjectID = "11"; */
"11.headerCell.title" = "Atribut";

View File

@@ -0,0 +1,23 @@
/* Class = "NSTableColumn"; headerCell.title = "State"; ObjectID = "13"; */
"13.headerCell.title" = "Stav";
/* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "15"; */
"15.headerCell.title" = "Název";
/* Class = "NSButtonCell"; title = "Scan"; ObjectID = "48"; */
"48.title" = "Prohledat";
/* Class = "NSMenuItem"; title = "Normal"; ObjectID = "55"; */
"55.title" = "Normální";
/* Class = "NSMenuItem"; title = "Reference"; ObjectID = "56"; */
"56.title" = "Referenční";
/* Class = "NSMenuItem"; title = "Excluded"; ObjectID = "57"; */
"57.title" = "Vyjmuto";
/* Class = "NSTextFieldCell"; title = "Select folders to scan and press \"Scan\"."; ObjectID = "71"; */
"71.title" = "Vyberte složky, které chcete prohledat a stiskněte \"Prohledat\".";
/* Class = "NSButtonCell"; title = "Load Results"; ObjectID = "73"; */
"73.title" = "Nahrát výsledky";

View File

@@ -0,0 +1,11 @@
/* Class = "NSWindow"; title = "Sorry, I must insist"; ObjectID = "1"; */
"1.title" = "Je mi líto, musím na tom trvat";
/* Class = "NSTextFieldCell"; title = "This reminder showed up because:1. You are processing more than 100 duplicates2. You have not yet contributed to dupeGuru3. There are unpaid hours in the project"; ObjectID = "4"; */
"4.title" = "Tato připomínka se zobrazila, protože:\n\n1. Zpracováváte více než 100 duplicit\n2. Zatím jste nepřispěli na vývoj dupeGuru\n3. V projektu jsou nezaplacené hodiny";
/* Class = "NSTextFieldCell"; title = "It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.You might think \"but I'm only going to use this once, I don't have to contribute\". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded.If you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this reminder."; ObjectID = "6"; */
"6.title" = "Vypadá to, že jste našli spoustu duplicit. Paráda! Musím ale trvat na tom, že v případě nezaplacených hodin vývoje projektu, očekávám příspěvky.\n\nMůžete si říct \"ale já chci program použít jen jednou, proč bych měl platit\". Problém je, že většina lidí používá dupeGuru jen občas. Kdyby si totéž řekl každý, nemohl by se vývoj dupeGuru zaplatit. Kvůli této vlastnosti, která vychází z podstaty dupeGuru, si zde dovoluji žádat o příspěvek na vývoj.\n\nPokud si nemůžete příspěvek dovolit, můžete tuto připomínku ignorovat nebo mi poslat e-mail na hsoft@hardcoded.net, abych vám dal klíč pro odstranění tohoto vyskakovacího okna.";
/* Class = "NSButtonCell"; title = "Contribute"; ObjectID = "10"; */
"10.title" = "Přispět";

View File

@@ -0,0 +1,39 @@
"Add New Folder..." = "Přidat novou složku...";
"Load from file..." = "Nahrát ze souboru...";
"Reset to Default" = "Výchozí nastavení";
"Select a results file to load" = "Vyberte soubor s výsledky, který chcete nahrát";
"You have unsaved results, do you really want to quit?" = "Máte neuložené výsledky, opravdu si přejete skončit?";
"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" = "Vyberte soubor pro uložení výsledků";
"Select a folder to add to the scanning list" = "Vyberte složku, kterou chcete přidat do prohledávacího seznamu";
"You have unsaved results, do you really want to continue?" = "Máte neuložené výsledky, opravdu si přejete pokračovat?";
"'%@' already is in the list." = "'%@' already is in the list.";
"'%@' does not exist." = "'%@' does not exist.";
"You are about to remove %d files from results. Continue?" = "Chystáte se z výsledků odstranit %d souborů. Pokračovat?";
"The name '%@' already exists." = "The name '%@' already exists.";
"You are about to send %d files to Trash. Continue?" = "Chystáte se vyhodit %d souborů do koše. Pokračovat?";
"You are about to send %d files to Trash (and hardlink them afterwards). Continue?" = "Chystáte se vyhodit %d souborů do koše (a následně na ně vytvořit hardlinky). Pokračovat?";
"Do you really want to remove all %d items from the ignore list?" = "Opravdu chcete odstranit všech %d položek ze seznamu výjimek?";
"All selected %d matches are going to be ignored in all subsequent scans. Continue?" = "Všech %d vybraných shod bude v následujících hledáních ignorováno. Pokračovat?";
"You have no custom command set up. Set it up in your preferences." = "Nedefinoval jste žádný uživatelský příkaz. Nadefinujete ho v předvolbách.";
"All marked files were copied sucessfully." = "All marked files were copied sucessfully.";
"All marked files were moved sucessfully." = "All marked files were moved sucessfully.";
"All marked files were sucessfully sent to Trash." = "All marked files were sucessfully sent to Trash.";
"No duplicates found." = "Nebyli nalezeny žádné duplicity.";
"A previous action is still hanging in there. You can't start a new one yet. Wait a few seconds, then try again." = "Předchozí akce stále nebyla ukončena. Novou zatím nemůžete spustit. Počkejte pár sekund a zkuste to znovu.";
"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";
"Do you really want to remove all your cached picture analysis?" = "Opravdu chcete odstranit veškeré uložené analýzy snímků?";
"Add iTunes Directory" = "Přidat složku iTunes";
"Remove Dead Tracks in iTunes" = "Odstranit z iTunes mrtvé stopy";
"Add iPhoto Library" = "Přidat knihovnu iPhoto";
"Clear Picture Cache" = "Vyčistit cache snímků";
"Yes" = "Yes";
"No" = "No";
"OK" = "OK";

View File

@@ -0,0 +1,177 @@
/* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "5"; */
"5.title" = "Vše do popředí";
/* Class = "NSMenuItem"; title = "Window"; ObjectID = "19"; */
"19.title" = "Okno";
/* Class = "NSMenuItem"; title = "Minimize"; ObjectID = "23"; */
"23.title" = "Minimalizovat";
/* Class = "NSMenu"; title = "Window"; ObjectID = "24"; */
"24.title" = "Okno";
/* Class = "NSMenuItem"; title = "About dupeGuru"; ObjectID = "58"; */
"58.title" = "O aplikaci";
/* Class = "NSMenuItem"; title = "Help"; ObjectID = "103"; */
"103.title" = "Nápověda";
/* Class = "NSMenu"; title = "Help"; ObjectID = "106"; */
"106.title" = "Nápověda";
/* Class = "NSMenuItem"; title = "dupeGuru Help"; ObjectID = "111"; */
"111.title" = "Nápověda dupeGuru";
/* Class = "NSMenuItem"; title = "Hide dupeGuru"; ObjectID = "134"; */
"134.title" = "Skrýt dupeGuru";
/* Class = "NSMenuItem"; title = "Quit dupeGuru"; ObjectID = "136"; */
"136.title" = "Ukončit dupeGuru";
/* Class = "NSMenuItem"; title = "Hide Others"; ObjectID = "145"; */
"145.title" = "Skrýt ostatní";
/* Class = "NSMenuItem"; title = "Show All"; ObjectID = "150"; */
"150.title" = "Zobrazit vše";
/* Class = "NSMenuItem"; title = "Zoom"; ObjectID = "197"; */
"197.title" = "Zoom";
/* Class = "NSMenuItem"; title = "Details Panel"; ObjectID = "398"; */
"398.title" = "Detaily";
/* Class = "NSMenuItem"; title = "Preferences..."; ObjectID = "541"; */
"541.title" = "Předvolby...";
/* Class = "NSMenuItem"; title = "Folder Selection Window"; ObjectID = "579"; */
"579.title" = "Výběr složky";
/* Class = "NSMenuItem"; title = "Actions"; ObjectID = "597"; */
"597.title" = "Akce";
/* Class = "NSMenu"; title = "Actions"; ObjectID = "598"; */
"598.title" = "Akce";
/* Class = "NSMenuItem"; title = "Send Marked to Trash"; ObjectID = "599"; */
"599.title" = "Vyhodit označené do koše";
/* Class = "NSMenuItem"; title = "Move Marked to..."; ObjectID = "600"; */
"600.title" = "Označené přesunout...";
/* Class = "NSMenuItem"; title = "Copy Marked to..."; ObjectID = "601"; */
"601.title" = "Označené kopírovat...";
/* Class = "NSMenuItem"; title = "Make Selected Reference"; ObjectID = "602"; */
"602.title" = "Výběr jako reference";
/* Class = "NSMenuItem"; title = "Remove Marked from Results"; ObjectID = "603"; */
"603.title" = "Odstranit označené z výsledků";
/* Class = "NSMenuItem"; title = "Remove Selected from Results"; ObjectID = "605"; */
"605.title" = "Odstranit výběr z výsledků";
/* Class = "NSMenuItem"; title = "Columns"; ObjectID = "618"; */
"618.title" = "Sloupce";
/* Class = "NSMenu"; title = "Columns"; ObjectID = "619"; */
"619.title" = "Sloupce";
/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "708"; */
"708.title" = "Vybrané otevřít výchozí aplikací";
/* Class = "NSMenuItem"; title = "Reveal Selected in Finder"; ObjectID = "710"; */
"710.title" = "Vybrané otevřít ve Finderu";
/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "922"; */
"922.title" = "Přidat výběr na seznam výjimek";
/* Class = "NSMenuItem"; title = "Close Window"; ObjectID = "924"; */
"924.title" = "Zavřít okno";
/* Class = "NSMenuItem"; title = "Start Duplicate Scan"; ObjectID = "926"; */
"926.title" = "Spustit hledání duplicit";
/* Class = "NSMenuItem"; title = "Clear Ignore List"; ObjectID = "927"; */
"927.title" = "Vyčistit seznam výjimek";
/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "933"; */
"933.title" = "Vybrané přejmenovat";
/* Class = "NSMenuItem"; title = "Export Results to XHTML"; ObjectID = "947"; */
"947.title" = "Exportovat výsledky do XHTML";
/* Class = "NSMenuItem"; title = "Check for update..."; ObjectID = "950"; */
"950.title" = "Zkontrolovat aktualizace...";
/* Class = "NSMenuItem"; title = "Mode"; ObjectID = "959"; */
"959.title" = "Režim";
/* Class = "NSMenu"; title = "Mode"; ObjectID = "960"; */
"960.title" = "Režim";
/* Class = "NSMenuItem"; title = "Show Dupes Only"; ObjectID = "961"; */
"961.title" = "Zobrazit pouze duplicity";
/* Class = "NSMenuItem"; title = "Show Delta Values"; ObjectID = "962"; */
"962.title" = "Zobrazit rozdíly";
/* Class = "NSMenuItem"; title = "Edit"; ObjectID = "965"; */
"965.title" = "Upravit";
/* Class = "NSMenu"; title = "Edit"; ObjectID = "966"; */
"966.title" = "Upravit";
/* Class = "NSMenuItem"; title = "Cut"; ObjectID = "985"; */
"985.title" = "Vyjmout";
/* Class = "NSMenuItem"; title = "Copy"; ObjectID = "986"; */
"986.title" = "Kopírovat";
/* Class = "NSMenuItem"; title = "Paste"; ObjectID = "991"; */
"991.title" = "Vložit";
/* Class = "NSMenuItem"; title = "Mark All"; ObjectID = "1011"; */
"1011.title" = "Označit vše";
/* Class = "NSMenuItem"; title = "Mark None"; ObjectID = "1012"; */
"1012.title" = "Zrušit označení";
/* Class = "NSMenuItem"; title = "Invert Marking"; ObjectID = "1013"; */
"1013.title" = "Invertovat označení";
/* Class = "NSMenuItem"; title = "Mark Selected"; ObjectID = "1014"; */
"1014.title" = "Označit vybrané";
/* Class = "NSMenuItem"; title = "dupeGuru Website"; ObjectID = "1023"; */
"1023.title" = "dupeGuru Website";
/* Class = "NSMenuItem"; title = "Invoke Custom Command"; ObjectID = "1177"; */
"1177.title" = "Spustit vlastní příkaz";
/* Class = "NSMenuItem"; title = "File"; ObjectID = "1203"; */
"1203.title" = "Soubor";
/* Class = "NSMenu"; title = "File"; ObjectID = "1204"; */
"1204.title" = "Soubor";
/* Class = "NSMenuItem"; title = "Load Results..."; ObjectID = "1205"; */
"1205.title" = "Nahrát výsledky...";
/* Class = "NSMenuItem"; title = "Save Results..."; ObjectID = "1206"; */
"1206.title" = "Uložit výsledky...";
/* Class = "NSMenuItem"; title = "Delete Marked and Replace with Hardlinks"; ObjectID = "1227"; */
"1227.title" = "Označené nahradit pevnými odkazy";
/* Class = "NSMenuItem"; title = "Load Recent Results"; ObjectID = "1239"; */
"1239.title" = "Nahrát nedávné výsledky";
/* Class = "NSMenu"; title = "Load Recent Results"; ObjectID = "1240"; */
"1240.title" = "Nahrát nedávné výsledky";
/* Class = "NSMenuItem"; title = "Results Window"; ObjectID = "1272"; */
"1272.title" = "Okno s výsledky";
/* Class = "NSMenuItem"; title = "Re-Prioritize Results"; ObjectID = "1276"; */
"1276.title" = "Změnit prioritu výsledků";

View File

@@ -0,0 +1,12 @@
/* Class = "NSWindow"; title = "Re-Prioritize duplicates"; ObjectID = "1"; */
"1.title" = "Změnit prioritu duplicit";
/* Class = "NSButtonCell"; title = "Ok"; ObjectID = "37"; */
"37.title" = "Ok";
/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "39"; */
"39.title" = "Zrušit";
/* Class = "NSTextFieldCell"; title = "Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information."; ObjectID = "41"; */
"41.title" = "Do pole vpravo přidejte kritéria a klepnutím na tlačítko OK odešlete duplicity, které těmto kritériím vyhovují do referenčního umístění příslušné skupiny. Více informací naleznete v nápovědě.";

View File

@@ -0,0 +1,12 @@
/* Class = "NSWindow"; title = "Problems!"; ObjectID = "1"; */
"1.title" = "Problémy!";
/* Class = "NSTextFieldCell"; title = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results."; ObjectID = "4"; */
"4.title" = "Při zpracování některých (nebo všech) souborů se vyskytly problémy. Jejich příčina je popsána v tabulce dole. Dotčené soubory nebyli odstraněny z výsledků.";
/* Class = "NSButtonCell"; title = "Close"; ObjectID = "19"; */
"19.title" = "Zavřít";
/* Class = "NSButtonCell"; title = "Reveal Selected"; ObjectID = "21"; */
"21.title" = "Ukázat vybrané ve správci souborů";

View File

@@ -0,0 +1,96 @@
/* Class = "NSWindow"; title = "dupeGuru Results"; ObjectID = "1"; */
"1.title" = "Výsledky dupeGuru";
/* Class = "NSTextFieldCell"; title = "Marked: 0 files, 0 B. Total: 0 files, 0 B."; ObjectID = "6"; */
"6.title" = "Označeno: 0 souborů, 0 B. Celkem: 0 souborů, 0 B.";
/* Class = "NSToolbarItem"; label = "Options"; ObjectID = "15"; */
"15.label" = "Možnosti";
/* Class = "NSToolbarItem"; paletteLabel = "Options"; ObjectID = "15"; */
"15.paletteLabel" = "Možnosti";
/* Class = "NSToolbarItem"; label = "Filter"; ObjectID = "16"; */
"16.label" = "Filtr";
/* Class = "NSToolbarItem"; paletteLabel = "Filter"; ObjectID = "16"; */
"16.paletteLabel" = "Filtr";
/* Class = "NSToolbarItem"; label = "Action"; ObjectID = "17"; */
"17.label" = "Akce";
/* Class = "NSToolbarItem"; paletteLabel = "Action"; ObjectID = "17"; */
"17.paletteLabel" = "Akce";
/* Class = "NSToolbarItem"; label = "Directories"; ObjectID = "19"; */
"19.label" = "Adresáře";
/* Class = "NSToolbarItem"; paletteLabel = "Directories"; ObjectID = "19"; */
"19.paletteLabel" = "Adresáře";
/* Class = "NSMenuItem"; title = "Delete Marked and Replace with Hardlinks"; ObjectID = "27"; */
"27.title" = "Označené nahradit pevnými odkazy";
/* Class = "NSMenuItem"; title = "Send Marked to Trash"; ObjectID = "29"; */
"29.title" = "Vyhodit označené do koše";
/* Class = "NSMenuItem"; title = "Move Marked to..."; ObjectID = "30"; */
"30.title" = "Označené přesunout...";
/* Class = "NSMenuItem"; title = "Copy Marked to..."; ObjectID = "31"; */
"31.title" = "Označené kopírovat...";
/* Class = "NSMenuItem"; title = "Remove Marked from Results"; ObjectID = "32"; */
"32.title" = "Odstranit označené z výsledků";
/* Class = "NSMenuItem"; title = "Remove Selected from Results"; ObjectID = "34"; */
"34.title" = "Odstranit výběr z výsledků";
/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "35"; */
"35.title" = "Přidat výběr na seznam výjimek";
/* Class = "NSMenuItem"; title = "Make Selected Reference"; ObjectID = "36"; */
"36.title" = "Výběr jako reference";
/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "38"; */
"38.title" = "Vybrané otevřít výchozí aplikací";
/* Class = "NSMenuItem"; title = "Reveal Selected in Finder"; ObjectID = "39"; */
"39.title" = "Vybrané otevřít ve Finderu";
/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "40"; */
"40.title" = "Vybrané přejmenovat";
/* Class = "NSSearchFieldCell"; placeholderString = "Filter"; ObjectID = "42"; */
"42.placeholderString" = "Filtr";
/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[0] = "Details"; ObjectID = "44"; */
"44.ibShadowedLabels[0]" = "Detaily";
/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[1] = "Dupes Only"; ObjectID = "44"; */
"44.ibShadowedLabels[1]" = "Jen duplicity";
/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[2] = "Delta"; ObjectID = "44"; */
"44.ibShadowedLabels[2]" = "Delta";
/* Class = "NSMenu"; title = "Menu"; ObjectID = "67"; */
"67.title" = "Menu";
/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "68"; */
"68.title" = "Přidat výběr na seznam výjimek";
/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "70"; */
"70.title" = "Vybrané přejmenovat";
/* Class = "NSMenuItem"; title = "Remove Selected from Results"; ObjectID = "71"; */
"71.title" = "Odstranit výběr z výsledků";
/* Class = "NSMenuItem"; title = "Make Selected Reference"; ObjectID = "72"; */
"72.title" = "Výběr jako reference";
/* Class = "NSMenuItem"; title = "Reveal Selected in Finder"; ObjectID = "73"; */
"73.title" = "Vybrané otevřít ve Finderu";
/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "74"; */
"74.title" = "Vybrané otevřít výchozí aplikací";

View File

@@ -4,7 +4,7 @@
/* Class = "NSTextFieldCell"; title = "This reminder showed up because:1. You are processing more than 100 duplicates2. You have not yet contributed to dupeGuru3. There are unpaid hours in the project"; ObjectID = "4"; */
"4.title" = "Diese Erinnerung erschien, weil:\n \n1. Mehr als 100 Duplikate verarbeitet wurden\n2. Sie noch nicht an dupeGuru gespendet haben\n3. Es unbezahlte Arbeitstunden im Projekt gibt";
/* Class = "NSTextFieldCell"; title = "It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.You might think \"but I'm only going to use this once, I don't have to contribute\". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded.If you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this popup."; ObjectID = "6"; */
/* Class = "NSTextFieldCell"; title = "It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.You might think \"but I'm only going to use this once, I don't have to contribute\". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded.If you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this reminder."; ObjectID = "6"; */
"6.title" = "Scheinbar haben Sie eine Menge Duplikate gefunden. Schön! Ich muss Sie jedoch daran erinnern das Spenden gewünscht werden, wenn noch nicht alle Arbeitsstunden bezahlt wurden.\n\nSie denken vielleicht \"aber ich nutze dieses Programm doch nur einmal, da brauche ich nicht zu spenden\". Das Problem ist, das die meisten Menschen dupeGuru nur sehr selten nutzen. Wenn jeder so denkt kann die Entwicklung von dupeGuru nicht finanziert werden. Aufgrund dieser, dem Wesen von dupeGuru innenliegenden Eigenschaft, muss ich hier auf Ihre Unterstützung bestehen. \n\nWenn Sie es sich nicht leisten können zu spenden, können Sie diese Erinnerung entweder ignorieren oder mir eine Nachricht an hsoft@hardcoded.net schicken, damit ich ihnen einen Schlüssel gebe um diesen Hinweis zu entfernen.";
/* Class = "NSButtonCell"; title = "Contribute"; ObjectID = "10"; */

View File

@@ -2,8 +2,38 @@
"Load from file..." = "Load from file...";
"Reset to Default" = "Reset to Default";
"Select a results file to load" = "Wählen Sie eine Ergebnisliste zum Laden aus.";
"You have unsaved results, do you really want to quit?" = "Sie haben ungespeicherte Ergebnisse. Wollen Sie wirklich beenden?";
"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" = "Datei zum Speichern der Ergebnisliste auswählen.";
"Select a folder to add to the scanning list" = "Wählen Sie einen Ordner aus, um ihn der Scanliste hinzuzufügen.";
"You have unsaved results, do you really want to continue?" = "Sie haben ungespeicherte Ergebnisse. Möchten Sie wirklich fortfahren?";
"'%@' already is in the list." = "'%@' already is in the list.";
"'%@' does not exist." = "'%@' does not exist.";
"You are about to remove %d files from results. Continue?" = "%d Dateien werden aus der Ergebnisliste entfernt. Fortfahren?";
"The name '%@' already exists." = "The name '%@' already exists.";
"You are about to send %d files to Trash. Continue?" = "%d Dateien werden in den Mülleimer zu verschoben. Fortfahren?";
"You are about to send %d files to Trash (and hardlink them afterwards). Continue?" = "%d Dateien werden gelöscht und mit physikalischen Verknüpfungen ersetzt. Fortfahren?";
"Do you really want to remove all %d items from the ignore list?" = "Möchten Sie wirklich alle %d Einträge aus der Ignorier-Liste löschen?";
"All selected %d matches are going to be ignored in all subsequent scans. Continue?" = "%d Dateien werden in zukünftigen Scans ignoriert werden. Fortfahren?";
"You have no custom command set up. Set it up in your preferences." = "Sie haben keinen eigenen Befehl erstellt. Bitte in den Einstellungen konfigurieren.";
"All marked files were copied sucessfully." = "All marked files were copied sucessfully.";
"All marked files were moved sucessfully." = "All marked files were moved sucessfully.";
"All marked files were sucessfully sent to Trash." = "All marked files were sucessfully sent to Trash.";
"No duplicates found." = "Keine Duplikate gefunden.";
"A previous action is still hanging in there. You can't start a new one yet. Wait a few seconds, then try again." = "Eine vorherige Aktion ist noch in der Bearbeitung. Sie können noch keine Neue starten. Warten Sie einige Sekunden und versuchen es erneut.";
"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";
"Do you really want to remove all your cached picture analysis?" = "Möchten Sie wirklich alle zwischengespeicherten Bildanalysen entfernen?";
"Add iTunes Directory" = "Add iTunes Directory";
"Remove Dead Tracks in iTunes" = "Remove Dead Tracks in iTunes";
"Add iPhoto Library" = "Add iPhoto Library";
"Clear Picture Cache" = "Bildzwischenspeicher leeren";
"Yes" = "Yes";
"No" = "No";
"OK" = "OK";

View File

@@ -5,12 +5,6 @@
/* Class = "NSTextFieldCell"; title = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results."; ObjectID = "4"; */
"4.title" = "Es gab Probleme bei der Verarbeitung einiger (aller) Dateien. Der Grund der Probleme ist unten in der Tabelle beschrieben.";
/* Class = "NSTableColumn"; headerCell.title = "File Path"; ObjectID = "10"; */
"10.headerCell.title" = "Dateipfad";
/* Class = "NSTableColumn"; headerCell.title = "Error Message"; ObjectID = "11"; */
"11.headerCell.title" = "Fehlermeldung";
/* Class = "NSButtonCell"; title = "Close"; ObjectID = "19"; */
"19.title" = "Schließen";

View File

@@ -5,9 +5,6 @@
/* Class = "NSTextFieldCell"; title = "Marked: 0 files, 0 B. Total: 0 files, 0 B."; ObjectID = "6"; */
"6.title" = "Marked: 0 files, 0 B. Total: 0 files, 0 B.";
/* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "11"; */
"11.headerCell.title" = "Name";
/* Class = "NSToolbarItem"; label = "Options"; ObjectID = "15"; */
"15.label" = "Options";

View File

@@ -1,23 +0,0 @@
"Filename" = "Filename";
"Folder" = "Ordner";
"Size" = "Größe";
"Size (KB)" = "Größe (KB)";
"Size (MB)" = "Größe (MB)";
"Kind" = "Typ";
"Modification" = "Modifikation";
"Match %" = "Übereinstimmung %";
"Words Used" = "Wörter genutzt";
"Dupe Count" = "Anzahl Duplikate";
"Time" = "Zeit";
"Bitrate" = "Bitrate";
"Sample Rate" = "Abtastrate";
"Title" = "Titel";
"Artist" = "Künstler";
"Album" = "Album";
"Genre" = "Genre";
"Year" = "Jahr";
"Track Number" = "Stück Nummer";
"Comment" = "Kommentar";
"Dimensions" = "Dimensionen";

View File

@@ -1,39 +0,0 @@
"Collecting files to scan" = "Sammle Dateien zum Scannen";
"%s (%d discarded)" = "%s (%d verworfen)";
"Scanning for duplicates" = "Suche nach Duplikaten";
"Loading" = "Laden";
"Moving" = "Verschieben";
"Copying" = "Kopieren";
"Sending to Trash" = "Verschiebe in den Mülleimer";
"0 matches found" = "0 Paare gefunden";
"%d matches found" = "%d Paare gefunden";
"Read size of %d/%d files" = "Lese Größe von %d/%d Dateien";
"Grouped %d/%d matches" = "%d/%d Paare gruppiert";
"%d / %d (%s / %s) duplicates marked." = "%d / %d (%s / %s) Duplikate markiert.";
" filter: %s" = " Filter: %s";
"Read metadata of %d/%d files" = "Lese Metadaten von %d/%d Dateien";
"Removing false matches" = "Entferne Falschpositive.";
"Processed %d/%d matches against the ignore list" = "Verarbeitung von %d/%d Paaren gegen die Ignorier-Liste";
"Doing group prioritization" = "Gruppenpriorisierung";
"Continue" = "Fortfahren";
"Continue ({})" = "Fortfahren ({})";
"Analyzed %d/%d pictures" = "Analysiere %d/%d Bilder";
"Preparing for matching" = "Vorbereitung auf den Vergleich";
"Performed %d/%d chunk matches" = "Performed %d/%d chunk matches";
"Verified %d/%d matches" = "%d/%d verifizierte Paare";
"Removing dead tracks from your iTunes Library" = "Entferne tote Stücke aus Ihrer iTunes Bibliothek.";
"Scanning the iTunes Library" = "Scanne die iTunes Bibiliothek";
"Probing iPhoto. Don't touch it during the operation!" = "Untersuche iPhoto. Während der Operation nicht anfassen!";
"Sending dupes to the Trash" = "Verschiebe Duplikate in den Mülleimer";
/* Prioritization */
"Ends with number" = "Ends with number";
"Doesn't end with number" = "Doesn't end with number";
"Highest" = "Highest";
"Lowest" = "Lowest";
"Newest" = "Newest";
"Oldest" = "Oldest";

View File

@@ -1,33 +0,0 @@
"SelectResultToLoadMsg" = "Wählen Sie eine Ergebnisliste zum Laden aus.";
"SelectCopyDestinationMsg" = "Select a directory to copy marked files to";
"SelectMoveDestinationMsg" = "Select a directory to move marked files to";
"SelectResultToSaveMsg" = "Datei zum Speichern der Ergebnisliste auswählen.";
"SelectFolderToAddMsg" = "Wählen Sie einen Ordner aus, um ihn der Scanliste hinzuzufügen.";
"ReallyWantToQuitMsg" = "Sie haben ungespeicherte Ergebnisse. Wollen Sie wirklich beenden?";
"ReallyWantToContinueMsg" = "Sie haben ungespeicherte Ergebnisse. Möchten Sie wirklich fortfahren?";
"FolderAlreadyInListMsg" = "'%@' already is in the list.";
"FolderDoesNotExistMsg" = "'%@' does not exist.";
"FileRemovalConfirmMsg" = "{} Dateien werden aus der Ergebnisliste entfernt. Fortfahren?";
"FilenameAlreadyExistsMsg" = "The name '%@' already exists.";
"NoScannableFileMsg" = "Der ausgewählte Ordner enthält keine scannbare Dateien.";
"UnknownErrorMsg" = "Unknown Error.";
"SendToTrashConfirmMsg" = "{} Dateien werden in den Mülleimer zu verschoben. Fortfahren?";
"HardlinkConfirmMsg" = "{} Dateien werden gelöscht und mit physikalischen Verknüpfungen ersetzt. Fortfahren?";
"ClearIgnoreListConfirmMsg" = "Möchten Sie wirklich alle {} Einträge aus der Ignorier-Liste löschen?";
"IgnoreConfirmMsg" = "%d Dateien werden in zukünftigen Scans ignoriert werden. Fortfahren?";
"NoCustomCommandMsg" = "Sie haben keinen eigenen Befehl erstellt. Bitte in den Einstellungen konfigurieren.";
"CopySuccessMsg" = "All marked files were copied sucessfully.";
"MoveSuccessMsg" = "All marked files were moved sucessfully.";
"SendToTrashSuccessMsg" = "All marked files were sucessfully sent to Trash.";
"NoDuplicateFoundMsg" = "Keine Duplikate gefunden.";
"TaskHangingMsg" = "Eine vorherige Aktion ist noch in der Bearbeitung. Sie können noch keine Neue starten. Warten Sie einige Sekunden und versuchen es erneut.";
"RemoveDeadTracksConfirmMsg" = "Your iTunes Library contains %d dead tracks ready to be removed. Continue?";
"NoDeadTrackMsg" = "You have no dead tracks in your iTunes Library";
"IPhotoAppNotFoundMsg" = "The iPhoto application couldn't be found.";
"ClearPictureCacheConfirmMsg" = "Möchten Sie wirklich alle zwischengespeicherten Bildanalysen entfernen?";
/* hscommon */
"FairwarePromptMsg" = "{name} ist Fairware, das bedeutet \"Open Source Software, entwickelt in der Hoffnung auf einen fairen Beitrag von den Benutzern\". Viel Zeit wurde in die Software investiert, mit der Erwartung der Nutzer möge fair genug sein die Entwickler für ihren Einsatz zu kompensieren. Die \"Unbezahlte Stunden\" Abbildung zeigt die Anzahl der Stunden die noch nicht bezahlt wurden.\nWenn Sie diese Anwendung mögen, so spenden Sie bitte einen Ihrer Ansicht nach angemessenen Betrag. Danke!\n\nWenn Sie es sich nicht leisten können zu spenden, können Sie diese Erinnerung entweder ignorieren oder mir eine Anfrage an hsoft@hardcoded.net schicken, mit der Bitte für einen Registrierungsschlüssel.\n\nDieser Dialog erscheint nicht, wenn es keine unbezahlten Stunden gibt oder Sie einen gültigen Registrierungsschlüssel besitzen.";
"DemoPromptMsg" = "{name} is fairware, which means \"open source software developed with expectation of fair contributions from users\". It's a very interesting concept, but one year of fairware has shown that most people just want to know how much it costs and not be bothered with theories about intellectual property.\n\nSo I won't bother you and will be very straightforward: You can try {name} for free but you have to buy it in order to use it without limitations. In demo mode, {name} {limitation}.\n\nSo it's as simple as this. If you're curious about fairware, however, I encourage you to read more about it by clicking on the \"Fairware?\" button.";

View File

@@ -2,13 +2,13 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">11B26</string>
<string key="IBDocument.InterfaceBuilderVersion">1617</string>
<string key="IBDocument.AppKitVersion">1138</string>
<string key="IBDocument.HIToolboxVersion">566.00</string>
<string key="IBDocument.SystemVersion">11C74</string>
<string key="IBDocument.InterfaceBuilderVersion">1938</string>
<string key="IBDocument.AppKitVersion">1138.23</string>
<string key="IBDocument.HIToolboxVersion">567.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">1617</string>
<string key="NS.object.0">1938</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSTextField</string>
@@ -31,7 +31,10 @@
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</array>
<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="238648523">
<object class="NSCustomObject" id="566600593">
<string key="NSClassName">DirectoryPanel</string>
@@ -233,7 +236,7 @@
</object>
</object>
<double key="NSRowHeight">14</double>
<int key="NSTvFlags">1379958784</int>
<int key="NSTvFlags">1514176512</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
<int key="NSColumnAutoresizingStyle">1</int>
@@ -510,14 +513,6 @@
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">initialFirstResponder</string>
<reference key="source" ref="970147395"/>
<reference key="destination" ref="10140319"/>
</object>
<int key="connectionID">19</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">window</string>
@@ -542,14 +537,6 @@
</object>
<int key="connectionID">54</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">startScanning:</string>
<reference key="source" ref="244639324"/>
<reference key="destination" ref="580397230"/>
</object>
<int key="connectionID">60</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">removeSelectedDirectory:</string>
@@ -590,6 +577,22 @@
</object>
<int key="connectionID">78</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">startScanning:</string>
<reference key="source" ref="244639324"/>
<reference key="destination" ref="580397230"/>
</object>
<int key="connectionID">60</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">initialFirstResponder</string>
<reference key="source" ref="970147395"/>
<reference key="destination" ref="10140319"/>
</object>
<int key="connectionID">19</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
@@ -1025,6 +1028,17 @@
<object class="IBPartialClassDescription">
<string key="className">HSOutlineView</string>
<string key="superclassName">NSOutlineView</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">copy:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">copy:</string>
<object class="IBActionInfo" key="NS.object.0">
<string key="name">copy:</string>
<string key="candidateClassName">id</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/HSOutlineView.h</string>
@@ -1064,7 +1078,7 @@
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<integer value="1050" key="NS.object.0"/>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>

View File

@@ -4,8 +4,8 @@
/* Class = "NSTextFieldCell"; title = "This reminder showed up because:1. You are processing more than 100 duplicates2. You have not yet contributed to dupeGuru3. There are unpaid hours in the project"; ObjectID = "4"; */
"4.title" = "This reminder showed up because:\n\n1. You are processing more than 100 duplicates\n2. You have not yet contributed to dupeGuru\n3. There are unpaid hours in the project";
/* Class = "NSTextFieldCell"; title = "It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.You might think \"but I'm only going to use this once, I don't have to contribute\". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded.If you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this popup."; ObjectID = "6"; */
"6.title" = "It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.\n\nYou might think \"but I'm only going to use this once, I don't have to contribute\". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded. It's because of this tendency inherent to dupeGuru's nature that I have to insist here.\n\nIf you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this popup.";
/* Class = "NSTextFieldCell"; title = "It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.You might think \"but I'm only going to use this once, I don't have to contribute\". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded.If you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this reminder."; ObjectID = "6"; */
"6.title" = "It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.\n\nYou might think \"but I'm only going to use this once, I don't have to contribute\". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded. It's because of this tendency inherent to dupeGuru's nature that I have to insist here.\n\nIf you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this reminder.";
/* Class = "NSButtonCell"; title = "Contribute"; ObjectID = "10"; */
"10.title" = "Contribute";

View File

@@ -2,13 +2,13 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">11B26</string>
<string key="IBDocument.InterfaceBuilderVersion">1617</string>
<string key="IBDocument.AppKitVersion">1138</string>
<string key="IBDocument.HIToolboxVersion">566.00</string>
<string key="IBDocument.SystemVersion">11C74</string>
<string key="IBDocument.InterfaceBuilderVersion">1938</string>
<string key="IBDocument.AppKitVersion">1138.23</string>
<string key="IBDocument.HIToolboxVersion">567.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">1617</string>
<string key="NS.object.0">1938</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSTextField</string>
@@ -22,7 +22,10 @@
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</array>
<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="NSCustomObject" id="1001">
<string key="NSClassName">ExtraFairwareReminder</string>
@@ -52,6 +55,7 @@
<string key="NSFrame">{{17, 48}, {446, 85}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="789504727"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="855705720">
<int key="NSCellFlags">67239424</int>
@@ -89,11 +93,24 @@
<string key="NSFrame">{{17, 141}, {446, 229}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="359672030"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="307619415">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">205520896</int>
<string key="NSContents">It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.You might think "but I'm only going to use this once, I don't have to contribute". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded. It's because of this tendency inherent to dupeGuru's nature that I have to insist here.If you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this popup.</string>
<object class="NSMutableString" key="NSContents">
<bytes key="NS.bytes">SXQgc2VlbXMgdGhhdCB5b3UgZm91bmQgYSBsb3Qgb2YgZHVwbGljYXRlcy4gTmljZSEgSSBtdXN0IGlu
c2lzdCwgaG93ZXZlciwgdGhhdCBjb250cmlidXRpb25zIGFyZSBleHBlY3RlZCB3aGVuIHRoZXJlIGFy
ZSB1bnBhaWQgaG91cnMgb24gdGhlIHByb2plY3Qu4oCo4oCoWW91IG1pZ2h0IHRoaW5rICJidXQgSSdt
IG9ubHkgZ29pbmcgdG8gdXNlIHRoaXMgb25jZSwgSSBkb24ndCBoYXZlIHRvIGNvbnRyaWJ1dGUiLiBU
aGUgcHJvYmxlbSBpcyB0aGF0IG1vc3QgcGVvcGxlIHVzZSBkdXBlR3VydSBvbmx5IG9uY2UgaW4gYSB3
aGlsZS4gSWYgZXZlcnlvbmUgdGhpbmtzIGxpa2UgdGhhdCwgZHVwZUd1cnUgZGV2ZWxvcG1lbnQgY2Fu
bm90IGJlIGZ1bmRlZC4gSXQncyBiZWNhdXNlIG9mIHRoaXMgdGVuZGVuY3kgaW5oZXJlbnQgdG8gZHVw
ZUd1cnUncyBuYXR1cmUgdGhhdCBJIGhhdmUgdG8gaW5zaXN0IGhlcmUu4oCo4oCoSWYgeW91IGNhbid0
IGFmZm9yZCB0byBjb250cmlidXRlLCB5b3UgY2FuIGlnbm9yZSB0aGlzIHJlbWluZGVyIG9yIHNlbmQg
bWUgYW4gZS1tYWlsIGF0IGhzb2Z0QGhhcmRjb2RlZC5uZXQgc28gSSBjYW4gZ2l2ZSB5b3UgYSBrZXkg
dG8gcmVtb3ZlIHRoaXMgcmVtaW5kZXIuA</bytes>
</object>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">12</double>
@@ -110,6 +127,7 @@
<string key="NSFrame">{{338, 12}, {128, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="444055328">
<int key="NSCellFlags">67239424</int>
@@ -135,6 +153,7 @@
<string key="NSFrame">{{210, 12}, {128, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="858267836"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="639557916">
<int key="NSCellFlags">67239424</int>
@@ -154,6 +173,7 @@
<string key="NSFrameSize">{480, 390}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="450147645"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
@@ -370,7 +390,7 @@
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<integer value="1050" key="NS.object.0"/>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>

View File

@@ -2,8 +2,38 @@
"Load from file..." = "Load from file...";
"Reset to Default" = "Reset to Default";
"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.";
"You are about to remove %d files from results. Continue?" = "You are about to remove %d files from results. Continue?";
"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?";
"Do you really want to remove all %d items from the ignore list?" = "Do you really want to remove all %d items from the ignore list?";
"All selected %d matches are going to be ignored in all subsequent scans. Continue?" = "All selected %d matches are going to be ignored in all subsequent scans. Continue?";
"You have no custom command set up. Set it up in your preferences." = "You have no custom command set up. Set it up in your preferences.";
"All marked files were copied sucessfully." = "All marked files were copied sucessfully.";
"All marked files were moved sucessfully." = "All marked files were moved sucessfully.";
"All marked files were sucessfully sent to Trash." = "All marked files were sucessfully sent to Trash.";
"No duplicates found." = "No duplicates found.";
"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";
"Do you really want to remove all your cached picture analysis?" = "Do you really want to remove all your cached picture analysis?";
"Add iTunes Directory" = "Add iTunes Directory";
"Remove Dead Tracks in iTunes" = "Remove Dead Tracks in iTunes";
"Add iPhoto Library" = "Add iPhoto Library";
"Clear Picture Cache" = "Clear Picture Cache";
"Yes" = "Yes";
"No" = "No";
"OK" = "OK";

View File

@@ -5,12 +5,6 @@
/* Class = "NSTextFieldCell"; title = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results."; ObjectID = "4"; */
"4.title" = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results.";
/* Class = "NSTableColumn"; headerCell.title = "File Path"; ObjectID = "10"; */
"10.headerCell.title" = "File Path";
/* Class = "NSTableColumn"; headerCell.title = "Error Message"; ObjectID = "11"; */
"11.headerCell.title" = "Error Message";
/* Class = "NSButtonCell"; title = "Close"; ObjectID = "19"; */
"19.title" = "Close";

View File

@@ -2,32 +2,34 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">11B26</string>
<string key="IBDocument.InterfaceBuilderVersion">1617</string>
<string key="IBDocument.AppKitVersion">1138</string>
<string key="IBDocument.HIToolboxVersion">566.00</string>
<string key="IBDocument.SystemVersion">11C74</string>
<string key="IBDocument.InterfaceBuilderVersion">1938</string>
<string key="IBDocument.AppKitVersion">1138.23</string>
<string key="IBDocument.HIToolboxVersion">567.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">1617</string>
<string key="NS.object.0">1938</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSScroller</string>
<string>NSTableHeaderView</string>
<string>NSButton</string>
<string>NSScrollView</string>
<string>NSTextFieldCell</string>
<string>NSButtonCell</string>
<string>NSTableView</string>
<string>NSCustomObject</string>
<string>NSTextField</string>
<string>NSView</string>
<string>NSWindowTemplate</string>
<string>NSTextField</string>
<string>NSTableColumn</string>
<string>NSScrollView</string>
<string>NSCustomObject</string>
<string>NSTableView</string>
<string>NSTableHeaderView</string>
<string>NSButtonCell</string>
<string>NSButton</string>
<string>NSScroller</string>
<string>NSTextFieldCell</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</array>
<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="NSCustomObject" id="1001">
<string key="NSClassName">ProblemDialog</string>
@@ -77,11 +79,11 @@
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="87662436">
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<object class="NSColor" key="NSColor" id="665310199">
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
@@ -118,81 +120,7 @@
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
</object>
<array class="NSMutableArray" key="NSTableColumns">
<object class="NSTableColumn" id="152748337">
<string key="NSIdentifier">path</string>
<double key="NSWidth">202</double>
<double key="NSMinWidth">40</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">File Path</string>
<object class="NSFont" key="NSSupport" id="26">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">3100</int>
</object>
<object class="NSColor" key="NSBackgroundColor" id="505238712">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
</object>
<object class="NSColor" key="NSTextColor" id="899094524">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerTextColor</string>
<reference key="NSColor" ref="665310199"/>
</object>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="182886300">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Text Cell</string>
<object class="NSFont" key="NSSupport" id="578468928">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">16</int>
</object>
<reference key="NSControlView" ref="252791348"/>
<object class="NSColor" key="NSBackgroundColor" id="765209443">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<reference key="NSColor" ref="869923403"/>
</object>
<reference key="NSTextColor" ref="87662436"/>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="252791348"/>
</object>
<object class="NSTableColumn" id="579292183">
<string key="NSIdentifier">msg</string>
<double key="NSWidth">228</double>
<double key="NSMinWidth">40</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Error Message</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="505238712"/>
<reference key="NSTextColor" ref="899094524"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="630211358">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Text Cell</string>
<reference key="NSSupport" ref="578468928"/>
<reference key="NSControlView" ref="252791348"/>
<reference key="NSBackgroundColor" ref="765209443"/>
<reference key="NSTextColor" ref="87662436"/>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="252791348"/>
</object>
</array>
<array class="NSMutableArray" key="NSTableColumns"/>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<object class="NSColor" key="NSBackgroundColor">
@@ -225,7 +153,12 @@
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="252791348"/>
<reference key="NSDocView" ref="252791348"/>
<reference key="NSBGColor" ref="765209443"/>
<object class="NSColor" key="NSBGColor" id="765209443">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<reference key="NSColor" ref="869923403"/>
</object>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="99096694">
@@ -352,14 +285,6 @@
</object>
<int key="connectionID">24</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">performClose:</string>
<reference key="source" ref="359561441"/>
<reference key="destination" ref="4380169"/>
</object>
<int key="connectionID">25</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">problemTableView</string>
@@ -368,6 +293,14 @@
</object>
<int key="connectionID">26</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">performClose:</string>
<reference key="source" ref="359561441"/>
<reference key="destination" ref="4380169"/>
</object>
<int key="connectionID">25</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
@@ -451,10 +384,7 @@
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="252791348"/>
<array class="NSMutableArray" key="children">
<reference ref="152748337"/>
<reference ref="579292183"/>
</array>
<array class="NSMutableArray" key="children"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
@@ -462,32 +392,6 @@
<reference key="object" ref="903452051"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">10</int>
<reference key="object" ref="152748337"/>
<array class="NSMutableArray" key="children">
<reference ref="182886300"/>
</array>
<reference key="parent" ref="252791348"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">11</int>
<reference key="object" ref="579292183"/>
<array class="NSMutableArray" key="children">
<reference ref="630211358"/>
</array>
<reference key="parent" ref="252791348"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">12</int>
<reference key="object" ref="630211358"/>
<reference key="parent" ref="579292183"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">13</int>
<reference key="object" ref="182886300"/>
<reference key="parent" ref="152748337"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">18</int>
<reference key="object" ref="4380169"/>
@@ -523,10 +427,6 @@
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBWindowTemplateEditedContentRect">{{477, 306}, {480, 309}}</string>
<boolean value="NO" key="1.NSWindowTemplate.visibleAtLaunch"/>
<string key="10.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="11.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="13.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -596,7 +496,7 @@
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<integer value="1050" key="NS.object.0"/>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>

View File

@@ -5,9 +5,6 @@
/* Class = "NSTextFieldCell"; title = "Marked: 0 files, 0 B. Total: 0 files, 0 B."; ObjectID = "6"; */
"6.title" = "Marked: 0 files, 0 B. Total: 0 files, 0 B.";
/* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "11"; */
"11.headerCell.title" = "Name";
/* Class = "NSToolbarItem"; label = "Options"; ObjectID = "15"; */
"15.label" = "Options";

View File

@@ -2,13 +2,13 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">11B26</string>
<string key="IBDocument.InterfaceBuilderVersion">1617</string>
<string key="IBDocument.AppKitVersion">1138</string>
<string key="IBDocument.HIToolboxVersion">566.00</string>
<string key="IBDocument.SystemVersion">11C74</string>
<string key="IBDocument.InterfaceBuilderVersion">1938</string>
<string key="IBDocument.AppKitVersion">1138.23</string>
<string key="IBDocument.HIToolboxVersion">567.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">1617</string>
<string key="NS.object.0">1938</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSPopUpButton</string>
@@ -18,13 +18,12 @@
<string>NSToolbarFlexibleSpaceItem</string>
<string>NSCustomObject</string>
<string>NSTableView</string>
<string>NSTextField</string>
<string>NSSearchField</string>
<string>NSTextField</string>
<string>NSSearchFieldCell</string>
<string>NSWindowTemplate</string>
<string>NSTextFieldCell</string>
<string>NSButtonCell</string>
<string>NSTableColumn</string>
<string>NSSegmentedControl</string>
<string>NSToolbarSpaceItem</string>
<string>NSPopUpButtonCell</string>
@@ -40,7 +39,10 @@
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</array>
<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="NSCustomObject" id="1001">
<string key="NSClassName">ResultWindow</string>
@@ -162,7 +164,7 @@
<object class="NSSegmentedCell" key="NSCell" id="993391476">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">0</int>
<object class="NSFont" key="NSSupport" id="241613967">
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">16</int>
@@ -240,7 +242,7 @@
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<object class="NSColor" key="NSColor" id="300787132">
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
@@ -703,94 +705,7 @@
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="607866053"/>
</object>
<array class="NSMutableArray" key="NSTableColumns">
<object class="NSTableColumn" id="442382151">
<string key="NSIdentifier">marked</string>
<double key="NSWidth">26</double>
<double key="NSMinWidth">26</double>
<double key="NSMaxWidth">26</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">134219776</int>
<string key="NSContents"/>
<object class="NSFont" key="NSSupport" id="26">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">3100</int>
</object>
<object class="NSColor" key="NSBackgroundColor" id="980928921">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerColor</string>
<reference key="NSColor" ref="552368973"/>
</object>
<object class="NSColor" key="NSTextColor" id="532863179">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerTextColor</string>
<reference key="NSColor" ref="300787132"/>
</object>
</object>
<object class="NSButtonCell" key="NSDataCell" id="777504751">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">131072</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="387493015"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
<object class="NSCustomResource" key="NSNormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSSwitch</string>
</object>
<object class="NSButtonImageSource" key="NSAlternateImage">
<string key="NSImageName">NSSwitch</string>
</object>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
<bool key="NSIsEditable">YES</bool>
<reference key="NSTableView" ref="387493015"/>
</object>
<object class="NSTableColumn" id="418301244">
<string key="NSIdentifier">0</string>
<double key="NSWidth">195</double>
<double key="NSMinWidth">16</double>
<double key="NSMaxWidth">3.4028234663852886e+38</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Name</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="980928921"/>
<reference key="NSTextColor" ref="532863179"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="270170598">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Text Cell</string>
<reference key="NSSupport" ref="241613967"/>
<reference key="NSControlView" ref="387493015"/>
<object class="NSColor" key="NSBackgroundColor" id="1072464721">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<reference key="NSColor" ref="359204506"/>
</object>
<reference key="NSTextColor" ref="453389366"/>
</object>
<int key="NSResizingMask">2</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="387493015"/>
<object class="NSSortDescriptor" key="NSSortDescriptorPrototype">
<string key="NSKey">0</string>
<bool key="NSAscending">YES</bool>
<string key="NSSelector">compare:</string>
</object>
</object>
</array>
<array class="NSMutableArray" key="NSTableColumns"/>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<reference key="NSBackgroundColor" ref="552368973"/>
@@ -821,7 +736,12 @@
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="387493015"/>
<reference key="NSDocView" ref="387493015"/>
<reference key="NSBGColor" ref="1072464721"/>
<object class="NSColor" key="NSBGColor" id="1072464721">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<reference key="NSColor" ref="359204506"/>
</object>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="777138208">
@@ -894,14 +814,6 @@
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="866620243"/>
<reference key="destination" ref="1001"/>
</object>
<int key="connectionID">45</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">window</string>
@@ -1094,6 +1006,14 @@
</object>
<int key="connectionID">81</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">toggleQuicklookPanel:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="831294603"/>
</object>
<int key="connectionID">87</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">showDirectoryWindow:</string>
@@ -1102,6 +1022,14 @@
</object>
<int key="connectionID">82</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="866620243"/>
<reference key="destination" ref="1001"/>
</object>
<int key="connectionID">45</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">menu</string>
@@ -1110,14 +1038,6 @@
</object>
<int key="connectionID">83</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">toggleQuicklookPanel:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="831294603"/>
</object>
<int key="connectionID">87</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">rowHeight: values.TableFontSize</string>
@@ -1216,10 +1136,7 @@
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="387493015"/>
<array class="NSMutableArray" key="children">
<reference ref="418301244"/>
<reference ref="442382151"/>
</array>
<array class="NSMutableArray" key="children"/>
<reference key="parent" ref="489091452"/>
</object>
<object class="IBObjectRecord">
@@ -1232,32 +1149,6 @@
<reference key="object" ref="777138208"/>
<reference key="parent" ref="489091452"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">11</int>
<reference key="object" ref="418301244"/>
<array class="NSMutableArray" key="children">
<reference ref="270170598"/>
</array>
<reference key="parent" ref="387493015"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">12</int>
<reference key="object" ref="442382151"/>
<array class="NSMutableArray" key="children">
<reference ref="777504751"/>
</array>
<reference key="parent" ref="387493015"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">13</int>
<reference key="object" ref="777504751"/>
<reference key="parent" ref="442382151"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">14</int>
<reference key="object" ref="270170598"/>
<reference key="parent" ref="418301244"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">67</int>
<reference key="object" ref="593436906"/>
@@ -1530,10 +1421,6 @@
<string key="1.IBWindowTemplateEditedContentRect">{{324, 305}, {557, 400}}</string>
<boolean value="NO" key="1.NSWindowTemplate.visibleAtLaunch"/>
<string key="10.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="11.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="13.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="14.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="16.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="17.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1905,7 +1792,7 @@
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<integer value="1050" key="NS.object.0"/>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
@@ -1918,7 +1805,6 @@
<string key="NSMenuCheckmark">{9, 8}</string>
<string key="NSMenuMixedState">{7, 2}</string>
<string key="NSQuickLookTemplate">{21, 16}</string>
<string key="NSSwitch">{15, 15}</string>
<string key="folder32">{32, 32}</string>
</dictionary>
</data>

View File

@@ -1,23 +0,0 @@
"Filename" = "Filename";
"Folder" = "Folder";
"Size" = "Size";
"Size (KB)" = "Size (KB)";
"Size (MB)" = "Size (MB)";
"Kind" = "Kind";
"Modification" = "Modification";
"Match %" = "Match %";
"Words Used" = "Words Used";
"Dupe Count" = "Dupe Count";
"Time" = "Time";
"Bitrate" = "Bitrate";
"Sample Rate" = "Sample Rate";
"Title" = "Title";
"Artist" = "Artist";
"Album" = "Album";
"Genre" = "Genre";
"Year" = "Year";
"Track Number" = "Track Number";
"Comment" = "Comment";
"Dimensions" = "Dimensions";

View File

@@ -1,39 +0,0 @@
"Collecting files to scan" = "Collecting files to scan";
"%s (%d discarded)" = "%s (%d discarded)";
"Scanning for duplicates" = "Scanning for duplicates";
"Loading" = "Loading";
"Moving" = "Moving";
"Copying" = "Copying";
"Sending to Trash" = "Sending to Trash";
"0 matches found" = "0 matches found";
"%d matches found" = "%d matches found";
"Read size of %d/%d files" = "Read size of %d/%d files";
"Grouped %d/%d matches" = "Grouped %d/%d matches";
"%d / %d (%s / %s) duplicates marked." = "%d / %d (%s / %s) duplicates marked.";
" filter: %s" = " filter: %s";
"Read metadata of %d/%d files" = "Read metadata of %d/%d files";
"Removing false matches" = "Removing false matches";
"Processed %d/%d matches against the ignore list" = "Processed %d/%d matches against the ignore list";
"Doing group prioritization" = "Doing group prioritization";
"Continue" = "Continue";
"Continue ({})" = "Continue ({})";
"Analyzed %d/%d pictures" = "Analyzed %d/%d pictures";
"Preparing for matching" = "Preparing for matching";
"Performed %d/%d chunk matches" = "Performed %d/%d chunk matches";
"Verified %d/%d matches" = "Verified %d/%d matches";
"Removing dead tracks from your iTunes Library" = "Removing dead tracks from your iTunes Library";
"Scanning the iTunes Library" = "Scanning the iTunes Library";
"Probing iPhoto. Don't touch it during the operation!" = "Probing iPhoto. Don't touch it during the operation!";
"Sending dupes to the Trash" = "Sending dupes to the Trash";
/* Prioritization */
"Ends with number" = "Ends with number";
"Doesn't end with number" = "Doesn't end with number";
"Highest" = "Highest";
"Lowest" = "Lowest";
"Newest" = "Newest";
"Oldest" = "Oldest";

View File

@@ -1,33 +0,0 @@
"SelectResultToLoadMsg" = "Select a results file to load";
"SelectCopyDestinationMsg" = "Select a directory to copy marked files to";
"SelectMoveDestinationMsg" = "Select a directory to move marked files to";
"SelectResultToSaveMsg" = "Select a file to save your results to";
"SelectFolderToAddMsg" = "Select a folder to add to the scanning list";
"ReallyWantToQuitMsg" = "You have unsaved results, do you really want to quit?";
"ReallyWantToContinueMsg" = "You have unsaved results, do you really want to continue?";
"FolderAlreadyInListMsg" = "'%@' already is in the list.";
"FolderDoesNotExistMsg" = "'%@' does not exist.";
"FileRemovalConfirmMsg" = "You are about to remove %d files from results. Continue?";
"FilenameAlreadyExistsMsg" = "The name '%@' already exists.";
"NoScannableFileMsg" = "The selected directories contain no scannable file.";
"UnknownErrorMsg" = "Unknown Error.";
"SendToTrashConfirmMsg" = "You are about to send %d files to Trash. Continue?";
"HardlinkConfirmMsg" = "You are about to send %d files to Trash (and hardlink them afterwards). Continue?";
"ClearIgnoreListConfirmMsg" = "Do you really want to remove all %d items from the ignore list?";
"IgnoreConfirmMsg" = "All selected %d matches are going to be ignored in all subsequent scans. Continue?";
"NoCustomCommandMsg" = "You have no custom command set up. Set it up in your preferences.";
"CopySuccessMsg" = "All marked files were copied sucessfully.";
"MoveSuccessMsg" = "All marked files were moved sucessfully.";
"SendToTrashSuccessMsg" = "All marked files were sucessfully sent to Trash.";
"NoDuplicateFoundMsg" = "No duplicates found.";
"TaskHangingMsg" = "A previous action is still hanging in there. You can't start a new one yet. Wait a few seconds, then try again.";
"RemoveDeadTracksConfirmMsg" = "Your iTunes Library contains %d dead tracks ready to be removed. Continue?";
"NoDeadTrackMsg" = "You have no dead tracks in your iTunes Library";
"IPhotoAppNotFoundMsg" = "The iPhoto application couldn't be found.";
"ClearPictureCacheConfirmMsg" = "Do you really want to remove all your cached picture analysis?";
/* hscommon */
"FairwarePromptMsg" = "{name} is Fairware, which means \"open source software developed with expectation of fair contributions from users\". Hours have been invested in this software with the expectation that users will be fair enough to compensate them. The \"Unpaid hours\" figure you see below is the hours that have yet to be compensated for this project.\n\nIf you like this application, please make a contribution that you consider fair. Thanks!\n\nIf you cannot afford to contribute, you can either ignore this reminder or send an e-mail at support@hardcoded.net so I can send you a registration key.\n\nThis dialog doesn't show when there are no unpaid hours or when you have a valid contribution key.";
"DemoPromptMsg" = "{name} is fairware, which means \"open source software developed with expectation of fair contributions from users\". It's a very interesting concept, but one year of fairware has shown that most people just want to know how much it costs and not be bothered with theories about intellectual property.\n\nSo I won't bother you and will be very straightforward: You can try {name} for free but you have to buy it in order to use it without limitations. In demo mode, {name} {limitation}.\n\nSo it's as simple as this. If you're curious about fairware, however, I encourage you to read more about it by clicking on the \"Fairware?\" button.";

View File

@@ -17,7 +17,7 @@
"57.title" = "Exclu";
/* Class = "NSTextFieldCell"; title = "Select folders to scan and press \"Scan\"."; ObjectID = "71"; */
"71.title" = "Sélectionnez les dossiers à scanner et cliquez sur Scan.";
"71.title" = "Sélectionnez les dossiers à scanner puis faites \"Scan\".";
/* Class = "NSButtonCell"; title = "Load Results"; ObjectID = "73"; */
"73.title" = "Charger";

View File

@@ -4,7 +4,7 @@
/* Class = "NSTextFieldCell"; title = "This reminder showed up because:1. You are processing more than 100 duplicates2. You have not yet contributed to dupeGuru3. There are unpaid hours in the project"; ObjectID = "4"; */
"4.title" = "Ce rappel apparaît parce que:\n\n1. Plus de 100 doublons sont traités\n2. Vous n'avez pas encore contribué à dupeGuru\n3. Il y a des heures non-payées au projet";
/* Class = "NSTextFieldCell"; title = "It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.You might think \"but I'm only going to use this once, I don't have to contribute\". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded.If you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this popup."; ObjectID = "6"; */
/* Class = "NSTextFieldCell"; title = "It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.You might think \"but I'm only going to use this once, I don't have to contribute\". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded.If you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this reminder."; ObjectID = "6"; */
"6.title" = "Il semble que vous ayez trouvé beaucoup de doublons. Super! Je dois par contre insister que des contributions sont attendues lorsqu'il y'a des heures non-payées au projet.\n\nVous pensez peut-être \"je n'utiliserai ce programme qu'une fois, pas besoin de contribuer\". Le problème c'est que la plupart des utilisateurs de dupeGuru ne l'utilisent qu'une fois. Si tous suivent ce raisonnement, le développement de dupeGuru ne peut pas continuer. C'est à cause de cette tendance inhérente à la nature de dupeGuru que je me vois contraint d'insister ici.\n\nSi vous n'avez pas les moyens de contribuer, ignorez ce message ou envoyez moi un message à hsoft@hardcoded.net pour que je vous envoie une clé d'enregistrement.";
/* Class = "NSButtonCell"; title = "Contribute"; ObjectID = "10"; */

View File

@@ -2,8 +2,38 @@
"Load from file..." = "Charger un fichier...";
"Reset to Default" = "Colonnes par défault";
"Select a results file to load" = "Sélectionnez un fichier résultats à charger";
"You have unsaved results, do you really want to quit?" = "Vos résultats ne sont pas sauvegardés. Voulez-vous vraiment quitter?";
"Select a directory to copy marked files to" = "Sélectionnez un dossier vers lequel copier les fichiers";
"Select a directory to move marked files to" = "Sélectionnez un dossier vers lequel déplacer les fichiers";
"Select a file to save your results to" = "Sélectionnez un fichier résultats dans lequel sauvegarder";
"Select a folder to add to the scanning list" = "Sélectionnez un dossier à ajouter à la liste";
"You have unsaved results, do you really want to continue?" = "Vos résultats ne sont pas sauvegardés. Voulez-vous vraiment continuer?";
"'%@' already is in the list." = "'%@' est déjà dans la liste.";
"'%@' does not exist." = "'%@' n'existe pas.";
"You are about to remove %d files from results. Continue?" = "%d fichiers seront retirés des résultats. Continuer?";
"The name '%@' already exists." = "Le nom '%@' existe déjà.";
"You are about to send %d files to Trash. Continue?" = "%d fichiers seront envoyés à la corbeille. Continuer?";
"You are about to send %d files to Trash (and hardlink them afterwards). Continue?" = "%d fichiers seront envoyés à la corbeille (puis 'hardlinkés'). Continuer?";
"Do you really want to remove all %d items from the ignore list?" = "Voulez-vous vider la liste de fichiers ignorés des %d items qu'elle contient?";
"All selected %d matches are going to be ignored in all subsequent scans. Continue?" = "%d fichiers seront ignorés des prochains scans. Continuer?";
"You have no custom command set up. Set it up in your preferences." = "Vous n'avez pas de commande personnalisée. Ajoutez-la dans vos préférences.";
"All marked files were copied sucessfully." = "Tous les fichiers marqués ont été copiés correctement.";
"All marked files were moved sucessfully." = "Tous les fichiers déplacés ont été copiés correctement.";
"All marked files were sucessfully sent to Trash." = "Tous les fichiers marqués ont été correctement envoyés à la corbeille.";
"No duplicates found." = "Aucun doublon trouvé.";
"A previous action is still hanging in there. You can't start a new one yet. Wait a few seconds, then try again." = "Une action précédente est encore en cours. Attendez quelques secondes avant d'en repartir une nouvelle.";
"Your iTunes Library contains %d dead tracks ready to be removed. Continue?" = "Votre librairie iTunes contient %d tracks mortes qui seront retirées. Continuer?";
"You have no dead tracks in your iTunes Library" = "Votre librairie iTunes ne contient aucune track morte.";
"Do you really want to remove all your cached picture analysis?" = "Voulez-vous vraiment vider la cache de vos analyses précédentes?";
"Add iTunes Directory" = "Ajouter librairie iTunes";
"Remove Dead Tracks in iTunes" = "Retirer les tracks mortes dans iTunes";
"Add iPhoto Library" = "Ajouter librairie iPhoto";
"Clear Picture Cache" = "Vider la cache d'images";
"Yes" = "Oui";
"No" = "Non";
"OK" = "OK";

View File

@@ -3,14 +3,7 @@
"1.title" = "Problèmes!";
/* Class = "NSTextFieldCell"; title = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results."; ObjectID = "4"; */
"4.title" = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results.";
"4.title" = "Il y a eu des problèmes lors du traitement de certain (ou tous) fichiers. La cause de ces problèmes est décrite ci-dessous. Ces fichiers n'ont pas été enlevés des résultats.";
/* Class = "NSTableColumn"; headerCell.title = "File Path"; ObjectID = "10"; */
"10.headerCell.title" = "Chemin du fichier";
/* Class = "NSTableColumn"; headerCell.title = "Error Message"; ObjectID = "11"; */
"11.headerCell.title" = "Message d'erreur";
"4.title" = "Des problèmes ont été rencontrés lors du traitement de certains fichiers. La nature de ces problèmes est décrite dans la liste ci-dessous. Ces fichiers n'ont pas été retirés des résultats.";
/* Class = "NSButtonCell"; title = "Close"; ObjectID = "19"; */
"19.title" = "Fermer";

View File

@@ -5,9 +5,6 @@
/* Class = "NSTextFieldCell"; title = "Marked: 0 files, 0 B. Total: 0 files, 0 B."; ObjectID = "6"; */
"6.title" = "Marqués: 0 fichiers, 0 B. Total: 0 fichiers, 0 B.";
/* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "11"; */
"11.headerCell.title" = "Nom";
/* Class = "NSToolbarItem"; label = "Options"; ObjectID = "15"; */
"15.label" = "Options";
@@ -77,6 +74,9 @@
/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[2] = "Delta"; ObjectID = "44"; */
"44.ibShadowedLabels[2]" = "Delta";
/* Class = "NSMenu"; title = "Menu"; ObjectID = "67"; */
"67.title" = "Menu";
/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "68"; */
"68.title" = "Ajouter sélectionnés à la liste de fichiers ignorés";

View File

@@ -1,23 +0,0 @@
"Filename" = "Nom de fichier";
"Folder" = "Dossier";
"Size" = "Taille";
"Size (KB)" = "Taille (KB)";
"Size (MB)" = "Taille (MB)";
"Kind" = "Type";
"Modification" = "Modification";
"Match %" = "Match %";
"Words Used" = "Mots";
"Dupe Count" = "# Doublons";
"Time" = "Temps";
"Bitrate" = "Bitrate";
"Sample Rate" = "Sample Rate";
"Title" = "Titre";
"Artist" = "Artiste";
"Album" = "Album";
"Genre" = "Genre";
"Year" = "Année";
"Track Number" = "Track";
"Comment" = "Commentaire";
"Dimensions" = "Dimensions";

View File

@@ -1,39 +0,0 @@
"Collecting files to scan" = "Collecte des fichiers à scanner";
"%s (%d discarded)" = "%s (%d hors-groupe)";
"Scanning for duplicates" = "Scan de doublons en cours";
"Loading" = "Chargement en cours";
"Moving" = "Déplacement en cours";
"Copying" = "Copie en cours";
"Sending to Trash" = "Envoi vers corbeille";
"0 matches found" = "0 paires trouvées";
"%d matches found" = "%d paires trouvées";
"Read size of %d/%d files" = "Lu la taille de %d/%d fichiers";
"Grouped %d/%d matches" = "%d/%d paires groupées";
"%d / %d (%s / %s) duplicates marked." = "%d / %d (%s / %s) doublons marqués.";
" filter: %s" = " filtre: %s";
"Read metadata of %d/%d files" = "Lu les métadonnées de %d/%d fichiers";
"Removing false matches" = "Retrait des paires invalides";
"Processed %d/%d matches against the ignore list" = "Vérification de %d/%d paires dans la ignore list";
"Doing group prioritization" = "Prioritization des groupes";
"Continue" = "Continuer";
"Continue ({})" = "Continuer ({})";
"Analyzed %d/%d pictures" = "Analyzé %d/%d images";
"Preparing for matching" = "Préparation pour la comparaison";
"Performed %d/%d chunk matches" = "%d/%d blocs d'images comparés";
"Verified %d/%d matches" = "Vérifié %d/%d paires";
"Removing dead tracks from your iTunes Library" = "Retrait des tracks mortes de votre librairie iTunes";
"Scanning the iTunes Library" = "Scan de la librairie iTunes en cours";
"Probing iPhoto. Don't touch it during the operation!" = "Communication avec iPhoto en cours. N'y touchez pas!";
"Sending dupes to the Trash" = "Envoi de doublons à la corbeille en cours";
/* Prioritization */
"Ends with number" = "Chiffres à la fin";
"Doesn't end with number" = "Pas de chiffres à la finr";
"Highest" = "Plus grand";
"Lowest" = "Moins grand";
"Newest" = "Plus récent";
"Oldest" = "Moins récent";

View File

@@ -1,33 +0,0 @@
"SelectResultToLoadMsg" = "Sélectionnez un fichier résultats à charger";
"SelectCopyDestinationMsg" = "Sélectionnez un dossier vers lequel copier les fichiers";
"SelectMoveDestinationMsg" = "Sélectionnez un dossier vers lequel déplacer les fichiers";
"SelectResultToSaveMsg" = "Sélectionnez un fichier résultats dans lequel sauvegarder";
"SelectFolderToAddMsg" = "Sélectionnez un dossier à ajouter à la liste";
"ReallyWantToQuitMsg" = "Vos résultats ne sont pas sauvegardés. Voulez-vous vraiment quitter?";
"ReallyWantToContinueMsg" = "Vos résultats ne sont pas sauvegardés. Voulez-vous vraiment continuer?";
"FolderAlreadyInListMsg" = "'%@' est déjà dans la liste.";
"FolderDoesNotExistMsg" = "'%@' n'existe pas.";
"FileRemovalConfirmMsg" = "%d fichiers seront retirés des résultats. Continuer?";
"FilenameAlreadyExistsMsg" = "Le nom '%@' existe déjà.";
"NoScannableFileMsg" = "Les dossiers sélectionnés ne contiennent pas de fichiers valides.";
"UnknownErrorMsg" = "Erreur inconnue.";
"SendToTrashConfirmMsg" = "%d fichiers seront envoyés à la corbeille. Continuer?";
"HardlinkConfirmMsg" = "%d fichiers seront envoyés à la corbeille (puis 'hardlinkés'). Continuer?";
"ClearIgnoreListConfirmMsg" = "Voulez-vous vider la liste de fichiers ignorés des %d items qu'elle contient?";
"IgnoreConfirmMsg" = "%d fichiers seront ignorés des prochains scans. Continuer?";
"NoCustomCommandMsg" = "Vous n'avez pas de commande personnalisée. Ajoutez-la dans vos préférences.";
"CopySuccessMsg" = "Tous les fichiers marqués ont été copiés correctement.";
"MoveSuccessMsg" = "Tous les fichiers déplacés ont été copiés correctement.";
"SendToTrashSuccessMsg" = "Tous les fichiers marqués ont été correctement envoyés à la corbeille.";
"NoDuplicateFoundMsg" = "Aucun doublon trouvé.";
"TaskHangingMsg" = "Une action précédente est encore en cours. Attendez quelques secondes avant d'en repartir une nouvelle.";
"RemoveDeadTracksConfirmMsg" = "Votre librairie iTunes contient %d tracks mortes qui seront retirées. Continuer?";
"NoDeadTrackMsg" = "Votre librairie iTunes ne contient aucune track morte.";
"IPhotoAppNotFoundMsg" = "iPhoto n'a pas pu être trouvée dans vos applications.";
"ClearPictureCacheConfirmMsg" = "Voulez-vous vraiment vider la cache de vos analyses précédentes?";
/* hscommon */
"FairwarePromptMsg" = "{name} est Fairware, ce qui signifie \"open source développé avec des attentes de contributions justes de la part des utilisateurs\". Les heures investies dans ce programme l'ont été avec l'attente que les utilisateurs seront assez honnêtes pour les compenser. Les \"Heures impayées\" que vous voyez ci-dessous sont le nombre d'heures qui n'ont pas encore été compensées.\n\nSi vous aimez cette application, veuillez faire une contribution qui vous semble juste. Merci!\n\nSi vous n'avez pas les moyens de contribuer, vous pouvez soit ignorer ce message soit envoyer un e-mail à support@hardcoded.net pour avoir une clé d'enregistrement.\n\nCette fenêtre n'apparaît pas lorsque vous avez contribué ou qu'il n'y a aucune heure impayée.";
"DemoPromptMsg" = "{name} is fairware, which means \"open source software developed with expectation of fair contributions from users\". It's a very interesting concept, but one year of fairware has shown that most people just want to know how much it costs and not be bothered with theories about intellectual property.\n\nSo I won't bother you and will be very straightforward: You can try {name} for free but you have to buy it in order to use it without limitations. In demo mode, {name} {limitation}.\n\nSo it's as simple as this. If you're curious about fairware, however, I encourage you to read more about it by clicking on the \"Fairware?\" button.";

View File

@@ -0,0 +1,12 @@
/* Class = "NSPanel"; title = "Details of Selected File"; ObjectID = "5"; */
"5.title" = "Dettagli del file selezionato";
/* Class = "NSTableColumn"; headerCell.title = "Selected"; ObjectID = "9"; */
"9.headerCell.title" = "Selezionato";
/* Class = "NSTableColumn"; headerCell.title = "Reference"; ObjectID = "10"; */
"10.headerCell.title" = "Riferimento";
/* Class = "NSTableColumn"; headerCell.title = "Attribute"; ObjectID = "11"; */
"11.headerCell.title" = "Attributo";

View File

@@ -0,0 +1,23 @@
/* Class = "NSTableColumn"; headerCell.title = "State"; ObjectID = "13"; */
"13.headerCell.title" = "Stato";
/* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "15"; */
"15.headerCell.title" = "Nome";
/* Class = "NSButtonCell"; title = "Scan"; ObjectID = "48"; */
"48.title" = "Scansiona";
/* Class = "NSMenuItem"; title = "Normal"; ObjectID = "55"; */
"55.title" = "Normale";
/* Class = "NSMenuItem"; title = "Reference"; ObjectID = "56"; */
"56.title" = "Riferimento";
/* Class = "NSMenuItem"; title = "Excluded"; ObjectID = "57"; */
"57.title" = "Escluso";
/* Class = "NSTextFieldCell"; title = "Select folders to scan and press \"Scan\"."; ObjectID = "71"; */
"71.title" = "Seleziona le cartelle da scansionare e premi \"Scansiona\".";
/* Class = "NSButtonCell"; title = "Load Results"; ObjectID = "73"; */
"73.title" = "Carica i risultati";

View File

@@ -0,0 +1,11 @@
/* Class = "NSWindow"; title = "Sorry, I must insist"; ObjectID = "1"; */
"1.title" = "Chiedo scusa, devo insistere";
/* Class = "NSTextFieldCell"; title = "This reminder showed up because:1. You are processing more than 100 duplicates2. You have not yet contributed to dupeGuru3. There are unpaid hours in the project"; ObjectID = "4"; */
"4.title" = "Questo promemoria viene visualizzato perché:\n\n1. Avete trovato più di 100 duplicati\n2. Non avete ancora contribuito per dupeGuru\n3. Ci sono ore non pagate nel progetto";
/* Class = "NSTextFieldCell"; title = "It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.You might think \"but I'm only going to use this once, I don't have to contribute\". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded.If you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this reminder."; ObjectID = "6"; */
"6.title" = "Sembra che abbiate trovato molti duplicati. Ottimo! Devo insistere, però, affinché contribuiate per tutte le ore non pagate che rimangono nel progetto.\n\nVoi penserete: \"ma io l'userò solo una volta, non devo contribuire\". Il problema è che la maggior parte delle persone userà dupeGuru solo una volta. Se tutti la pensassero così lo sviluppo di dupeGuru non potrebbe proseguire. E' proprio per la natura dei programmi come dupeGuru che devo insistere su questo punto.\n\nSe non siete in grado di offrire questo contributo potete ignorare questo avviso o spedirmi una e-mail a hsoft@hardcoded.net, così che possa darvi un codice per rimuovere questo avviso.";
/* Class = "NSButtonCell"; title = "Contribute"; ObjectID = "10"; */
"10.title" = "Contribuisci";

View File

@@ -0,0 +1,39 @@
"Add New Folder..." = "Aggiungi una nuova cartella...";
"Load from file..." = "Carica dal file...";
"Reset to Default" = "Ripristina le impostazioni predefinite";
"Select a results file to load" = "Seleziona un risultato (file) da caricare";
"You have unsaved results, do you really want to quit?" = "Hai dei risultati non salvati. Vuoi veramente chiudere?";
"Select a directory to copy marked files to" = "Seleziona una cartella in cui copiare i file marcati";
"Select a directory to move marked files to" = "Seleziona una cartella in cui spostare i file marcati";
"Select a file to save your results to" = "Seleziona un file dove salvare i tuoi risultati";
"Select a folder to add to the scanning list" = "Seleziona una cartella da aggiungere alla lista delle cartelle da scansionare";
"You have unsaved results, do you really want to continue?" = "Hai dei risultati non salvati. Vuoi veramente continuare?";
"'%@' already is in the list." = "'%@' è già nella lista.";
"'%@' does not exist." = "'%@' non esiste.";
"You are about to remove %d files from results. Continue?" = "Stai per rimuovere %d file dai risultati. Continuare?";
"The name '%@' already exists." = "Il nome '%@' è già esistente.";
"You are about to send %d files to Trash. Continue?" = "Stai per inviare %d file nel cestino. Continuare?";
"You are about to send %d files to Trash (and hardlink them afterwards). Continue?" = "Stai per inviare %d file nel cestino (compresi gli hardlink). Continuare?";
"Do you really want to remove all %d items from the ignore list?" = "Vuoi veramente rimuovere tutti i %d elementi dalla lista dei file da ignorare?";
"All selected %d matches are going to be ignored in all subsequent scans. Continue?" = "Tutti i %d elementi che coincidono verranno ignorati in tutte le scansioni successive. Continuare?";
"You have no custom command set up. Set it up in your preferences." = "Non hai impostato nessun comando personalizzato. Impostalo nelle tue preferenze.";
"All marked files were copied sucessfully." = "Tutti i file marcati sono stati copiati correttamente.";
"All marked files were moved sucessfully." = "Tutti i file marcati sono stati spostati correttamente.";
"All marked files were sucessfully sent to Trash." = "Tutti i file marcati sono stati inviati nel cestino.";
"No duplicates found." = "Non sono stati trovati dei duplicati.";
"A previous action is still hanging in there. You can't start a new one yet. Wait a few seconds, then try again." = "Un'azione precedente è ancora in corso. Non puoi cominciarne una nuova. Aspetta qualche secondo e quindi riprova.";
"Your iTunes Library contains %d dead tracks ready to be removed. Continue?" = "La tua libreria di iTunes contiene %d tracce inesistenti pronte per essere rimosse. Continuare?";
"You have no dead tracks in your iTunes Library" = "La tua libreria di iTunes non contiene tracce inesistenti";
"Do you really want to remove all your cached picture analysis?" = "Vuoi veramente rimuovere tutte le analisi delle immagini memorizzate nella cache?";
"Add iTunes Directory" = "Aggiungi alla lista di iTunes";
"Remove Dead Tracks in iTunes" = "Rimuovi le tracce inesistenti da iTunes";
"Add iPhoto Library" = "Aggiungi alla libreria di iPhoto";
"Clear Picture Cache" = "Cancella la cache delle immagini";
"Yes" = "Si";
"No" = "No";
"OK" = "OK";

View File

@@ -0,0 +1,177 @@
/* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "5"; */
"5.title" = "Porta tutto in primo piano";
/* Class = "NSMenuItem"; title = "Window"; ObjectID = "19"; */
"19.title" = "Finestra";
/* Class = "NSMenuItem"; title = "Minimize"; ObjectID = "23"; */
"23.title" = "Minimizza";
/* Class = "NSMenu"; title = "Window"; ObjectID = "24"; */
"24.title" = "Finestra";
/* Class = "NSMenuItem"; title = "About dupeGuru"; ObjectID = "58"; */
"58.title" = "Informazioni su dupeGuru";
/* Class = "NSMenuItem"; title = "Help"; ObjectID = "103"; */
"103.title" = "Aiuto";
/* Class = "NSMenu"; title = "Help"; ObjectID = "106"; */
"106.title" = "Aiuto";
/* Class = "NSMenuItem"; title = "dupeGuru Help"; ObjectID = "111"; */
"111.title" = "Aiuto di dupeGuru";
/* Class = "NSMenuItem"; title = "Hide dupeGuru"; ObjectID = "134"; */
"134.title" = "Nascondi dupeGuru";
/* Class = "NSMenuItem"; title = "Quit dupeGuru"; ObjectID = "136"; */
"136.title" = "Chiudi dupeGuru";
/* Class = "NSMenuItem"; title = "Hide Others"; ObjectID = "145"; */
"145.title" = "Nascondi gli altri";
/* Class = "NSMenuItem"; title = "Show All"; ObjectID = "150"; */
"150.title" = "Mostra tutto";
/* Class = "NSMenuItem"; title = "Zoom"; ObjectID = "197"; */
"197.title" = "Zoom";
/* Class = "NSMenuItem"; title = "Details Panel"; ObjectID = "398"; */
"398.title" = "Scheda dettagliata";
/* Class = "NSMenuItem"; title = "Preferences..."; ObjectID = "541"; */
"541.title" = "Preferenze...";
/* Class = "NSMenuItem"; title = "Folder Selection Window"; ObjectID = "579"; */
"579.title" = "Finestra di selezione della cartella";
/* Class = "NSMenuItem"; title = "Actions"; ObjectID = "597"; */
"597.title" = "Azioni";
/* Class = "NSMenu"; title = "Actions"; ObjectID = "598"; */
"598.title" = "Azioni";
/* Class = "NSMenuItem"; title = "Send Marked to Trash"; ObjectID = "599"; */
"599.title" = "Sposta gli elementi marcati nel cestino";
/* Class = "NSMenuItem"; title = "Move Marked to..."; ObjectID = "600"; */
"600.title" = "Sposta gli elementi marcati nel...";
/* Class = "NSMenuItem"; title = "Copy Marked to..."; ObjectID = "601"; */
"601.title" = "Copia gli elementi evidenziati nel...";
/* Class = "NSMenuItem"; title = "Make Selected Reference"; ObjectID = "602"; */
"602.title" = "Imposta gli elementi selezionati come riferimento";
/* Class = "NSMenuItem"; title = "Remove Marked from Results"; ObjectID = "603"; */
"603.title" = "Rimuovi gli elementi marcati dai risultati";
/* Class = "NSMenuItem"; title = "Remove Selected from Results"; ObjectID = "605"; */
"605.title" = "Rimuovi gli elementi selezionati dai risultati";
/* Class = "NSMenuItem"; title = "Columns"; ObjectID = "618"; */
"618.title" = "Colonne";
/* Class = "NSMenu"; title = "Columns"; ObjectID = "619"; */
"619.title" = "Colonne";
/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "708"; */
"708.title" = "Apri gli elementi selezionati con l'applicazione predefinita";
/* Class = "NSMenuItem"; title = "Reveal Selected in Finder"; ObjectID = "710"; */
"710.title" = "Mostra gli elementi selezionati nel Finder";
/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "922"; */
"922.title" = "Aggiungi gli elementi selezionati alla lista da ignorare";
/* Class = "NSMenuItem"; title = "Close Window"; ObjectID = "924"; */
"924.title" = "Chiudi la finestra";
/* Class = "NSMenuItem"; title = "Start Duplicate Scan"; ObjectID = "926"; */
"926.title" = "Inizia la scansione dei duplicati";
/* Class = "NSMenuItem"; title = "Clear Ignore List"; ObjectID = "927"; */
"927.title" = "Cancella la lista degli elementi da ignorare";
/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "933"; */
"933.title" = "Rinomina gli elementi selezionati";
/* Class = "NSMenuItem"; title = "Export Results to XHTML"; ObjectID = "947"; */
"947.title" = "Esporta i risultati in formato XHTML";
/* Class = "NSMenuItem"; title = "Check for update..."; ObjectID = "950"; */
"950.title" = "Controlla gli aggiornamenti...";
/* Class = "NSMenuItem"; title = "Mode"; ObjectID = "959"; */
"959.title" = "Modo";
/* Class = "NSMenu"; title = "Mode"; ObjectID = "960"; */
"960.title" = "Modo";
/* Class = "NSMenuItem"; title = "Show Dupes Only"; ObjectID = "961"; */
"961.title" = "Visualizza solo i duplicati";
/* Class = "NSMenuItem"; title = "Show Delta Values"; ObjectID = "962"; */
"962.title" = "Visualizza le differenze";
/* Class = "NSMenuItem"; title = "Edit"; ObjectID = "965"; */
"965.title" = "Edita";
/* Class = "NSMenu"; title = "Edit"; ObjectID = "966"; */
"966.title" = "Edita";
/* Class = "NSMenuItem"; title = "Cut"; ObjectID = "985"; */
"985.title" = "Taglia";
/* Class = "NSMenuItem"; title = "Copy"; ObjectID = "986"; */
"986.title" = "Copia";
/* Class = "NSMenuItem"; title = "Paste"; ObjectID = "991"; */
"991.title" = "Incolla";
/* Class = "NSMenuItem"; title = "Mark All"; ObjectID = "1011"; */
"1011.title" = "Marca tutti";
/* Class = "NSMenuItem"; title = "Mark None"; ObjectID = "1012"; */
"1012.title" = "Deseleziona tutti";
/* Class = "NSMenuItem"; title = "Invert Marking"; ObjectID = "1013"; */
"1013.title" = "Inverti la selezione";
/* Class = "NSMenuItem"; title = "Mark Selected"; ObjectID = "1014"; */
"1014.title" = "Marca i selezionati";
/* Class = "NSMenuItem"; title = "dupeGuru Website"; ObjectID = "1023"; */
"1023.title" = "Sito Web di dupeGuru";
/* Class = "NSMenuItem"; title = "Invoke Custom Command"; ObjectID = "1177"; */
"1177.title" = "Invoca comando personalizzato";
/* Class = "NSMenuItem"; title = "File"; ObjectID = "1203"; */
"1203.title" = "File";
/* Class = "NSMenu"; title = "File"; ObjectID = "1204"; */
"1204.title" = "File";
/* Class = "NSMenuItem"; title = "Load Results..."; ObjectID = "1205"; */
"1205.title" = "Carica i risultati...";
/* Class = "NSMenuItem"; title = "Save Results..."; ObjectID = "1206"; */
"1206.title" = "Salva i risultati...";
/* Class = "NSMenuItem"; title = "Delete Marked and Replace with Hardlinks"; ObjectID = "1227"; */
"1227.title" = "Cancella gli elementi marcati e sostituiscili con degli Hardlinks";
/* Class = "NSMenuItem"; title = "Load Recent Results"; ObjectID = "1239"; */
"1239.title" = "Carica i risultati recenti";
/* Class = "NSMenu"; title = "Load Recent Results"; ObjectID = "1240"; */
"1240.title" = "Carica i risultati recenti";
/* Class = "NSMenuItem"; title = "Results Window"; ObjectID = "1272"; */
"1272.title" = "Finestra dei risultati";
/* Class = "NSMenuItem"; title = "Re-Prioritize Results"; ObjectID = "1276"; */
"1276.title" = "Cambia la priorità dei risultati";

View File

@@ -0,0 +1,12 @@
/* Class = "NSWindow"; title = "Re-Prioritize duplicates"; ObjectID = "1"; */
"1.title" = "Cambia la priorità dei duplicati";
/* Class = "NSButtonCell"; title = "Ok"; ObjectID = "37"; */
"37.title" = "Ok";
/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "39"; */
"39.title" = "Cancella";
/* Class = "NSTextFieldCell"; title = "Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information."; ObjectID = "41"; */
"41.title" = "Aggiungi dei criteri di selezione nel riquadro a destra e clicca su 'OK' per inviare i duplicati che meglio corrispondono a questi criteri al loro gruppo di appartenenza. Per maggiori informazioni leggere il file di 'help'.";

View File

@@ -0,0 +1,12 @@
/* Class = "NSWindow"; title = "Problems!"; ObjectID = "1"; */
"1.title" = "Problemi!";
/* Class = "NSTextFieldCell"; title = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results."; ObjectID = "4"; */
"4.title" = "Sono stati riscontrati dei problemi elaborando alcuni (o tutti) i file. La causa di questi problemi è descritta nella tabella sottostante. Questi file non stati rimossi dai vostri risultati.";
/* Class = "NSButtonCell"; title = "Close"; ObjectID = "19"; */
"19.title" = "Chiudi";
/* Class = "NSButtonCell"; title = "Reveal Selected"; ObjectID = "21"; */
"21.title" = "Mostra i selezionati";

View File

@@ -0,0 +1,96 @@
/* Class = "NSWindow"; title = "dupeGuru Results"; ObjectID = "1"; */
"1.title" = "Risultati di dupeGuru";
/* Class = "NSTextFieldCell"; title = "Marked: 0 files, 0 B. Total: 0 files, 0 B."; ObjectID = "6"; */
"6.title" = "Marcati: 0 files, 0 B. Totale: 0 files, 0 B.";
/* Class = "NSToolbarItem"; label = "Options"; ObjectID = "15"; */
"15.label" = "Opzioni";
/* Class = "NSToolbarItem"; paletteLabel = "Options"; ObjectID = "15"; */
"15.paletteLabel" = "Opzioni";
/* Class = "NSToolbarItem"; label = "Filter"; ObjectID = "16"; */
"16.label" = "Filtro";
/* Class = "NSToolbarItem"; paletteLabel = "Filter"; ObjectID = "16"; */
"16.paletteLabel" = "Filtro";
/* Class = "NSToolbarItem"; label = "Action"; ObjectID = "17"; */
"17.label" = "Azione";
/* Class = "NSToolbarItem"; paletteLabel = "Action"; ObjectID = "17"; */
"17.paletteLabel" = "Azione";
/* Class = "NSToolbarItem"; label = "Directories"; ObjectID = "19"; */
"19.label" = "Cartelle";
/* Class = "NSToolbarItem"; paletteLabel = "Directories"; ObjectID = "19"; */
"19.paletteLabel" = "Cartelle";
/* Class = "NSMenuItem"; title = "Delete Marked and Replace with Hardlinks"; ObjectID = "27"; */
"27.title" = "Cancella gli elementi marcati e sostituiscili con degli Hardlinks";
/* Class = "NSMenuItem"; title = "Send Marked to Trash"; ObjectID = "29"; */
"29.title" = "Sposta gli elementi marcati nel cestino";
/* Class = "NSMenuItem"; title = "Move Marked to..."; ObjectID = "30"; */
"30.title" = "Sposta gli elementi marcati nel...";
/* Class = "NSMenuItem"; title = "Copy Marked to..."; ObjectID = "31"; */
"31.title" = "Copia gli elementi evidenziati nel...";
/* Class = "NSMenuItem"; title = "Remove Marked from Results"; ObjectID = "32"; */
"32.title" = "Rimuovi gli elementi marcati dai risultati";
/* Class = "NSMenuItem"; title = "Remove Selected from Results"; ObjectID = "34"; */
"34.title" = "Rimuovi gli elementi selezionati dai risultati";
/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "35"; */
"35.title" = "Aggiungi gli elementi selezionati alla lista da ignorare";
/* Class = "NSMenuItem"; title = "Make Selected Reference"; ObjectID = "36"; */
"36.title" = "Imposta gli elementi selezionati come riferimento";
/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "38"; */
"38.title" = "Apri gli elementi selezionati con l'applicazione predefinita";
/* Class = "NSMenuItem"; title = "Reveal Selected in Finder"; ObjectID = "39"; */
"39.title" = "Mostra gli elementi selezionati nel Finder";
/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "40"; */
"40.title" = "Rinomina gli elementi selezionati";
/* Class = "NSSearchFieldCell"; placeholderString = "Filter"; ObjectID = "42"; */
"42.placeholderString" = "Filtro";
/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[0] = "Details"; ObjectID = "44"; */
"44.ibShadowedLabels[0]" = "Dettagli";
/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[1] = "Dupes Only"; ObjectID = "44"; */
"44.ibShadowedLabels[1]" = "Solo duplicati";
/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[2] = "Delta"; ObjectID = "44"; */
"44.ibShadowedLabels[2]" = "Delta";
/* Class = "NSMenu"; title = "Menu"; ObjectID = "67"; */
"67.title" = "Menu";
/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "68"; */
"68.title" = "Aggiungi gli elementi selezionati alla lista da ignorare";
/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "70"; */
"70.title" = "Rinomina gli elementi selezionati";
/* Class = "NSMenuItem"; title = "Remove Selected from Results"; ObjectID = "71"; */
"71.title" = "Rimuovi gli elementi selezionati dai risultati";
/* Class = "NSMenuItem"; title = "Make Selected Reference"; ObjectID = "72"; */
"72.title" = "Imposta gli elementi selezionati come riferimento";
/* Class = "NSMenuItem"; title = "Reveal Selected in Finder"; ObjectID = "73"; */
"73.title" = "Mostra gli elementi selezionati nel Finder";
/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "74"; */
"74.title" = "Apri gli elementi selezionati con l'applicazione predefinita";

View File

@@ -17,7 +17,7 @@
"57.title" = "不包含";
/* Class = "NSTextFieldCell"; title = "Select folders to scan and press \"Scan\"."; ObjectID = "71"; */
"71.title" = "Select folders to scan and press \"Scan\".";
"71.title" = "请选择要扫描的文件夹,然后点击 \"扫描\"";
/* Class = "NSButtonCell"; title = "Load Results"; ObjectID = "73"; */
"73.title" = "载入结果";

View File

@@ -4,8 +4,8 @@
/* Class = "NSTextFieldCell"; title = "This reminder showed up because:1. You are processing more than 100 duplicates2. You have not yet contributed to dupeGuru3. There are unpaid hours in the project"; ObjectID = "4"; */
"4.title" = "此提醒框弹出的原因如下:\n\n1. 您正在处理超过100个重复文件\n2. 您没有捐助过dupeGuru\n3. 此软件中还有未支付时间";
/* Class = "NSTextFieldCell"; title = "It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.You might think \"but I'm only going to use this once, I don't have to contribute\". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded.If you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this popup."; ObjectID = "6"; */
"6.title" = "看起来似乎您找到了很多重复文件。这也是我继续精进这个软件的动力之一。然而,我衷心的希望能够得到您的捐助,因为我会日夜奋战于这个软件并且没有任何报酬。\n\n您可能会觉得 &quot;反正这个软件我只用一次,我不需要给开发者任何捐助&quot;. 问题是大多数人都只用一次dupeGuru。如果每一位都这样想dupeGuru的开发也就没有资金支持了。也正是因为dupeGuru自身的性质决定了它有着仅用一次的内在倾向所以我还必须坚持致力于这个软件的开发与精进。\n\n如果您无法承担捐助您也可以忽略此提醒或者发送电子邮件至 support@hardcoded.net ,我会发送给您一个注册密钥。";
/* Class = "NSTextFieldCell"; title = "It seems that you found a lot of duplicates. Nice! I must insist, however, that contributions are expected when there are unpaid hours on the project.You might think \"but I'm only going to use this once, I don't have to contribute\". The problem is that most people use dupeGuru only once in a while. If everyone thinks like that, dupeGuru development cannot be funded.If you can't afford to contribute, you can ignore this reminder or send me an e-mail at hsoft@hardcoded.net so I can give you a key to remove this reminder."; ObjectID = "6"; */
"6.title" = "看起来似乎您找到了很多重复文件。这也是我继续精进这个软件的动力之一。然而,我衷心的希望能够得到您的捐助,因为我会日夜奋战于这个软件并且没有任何报酬。\n\n您可能会觉得 \"反正这个软件我只用一次,我不需要给开发者任何捐助\". 问题是大多数人都只用一次dupeGuru。如果每一位都这样想dupeGuru的开发也就没有资金支持了。也正是因为dupeGuru自身的性质决定了它有着仅用一次的内在倾向所以我还必须坚持致力于这个软件的开发与精进。\n\n如果您无法承担捐助您也可以忽略此提醒或者发送电子邮件至 support@hardcoded.net ,我会发送给您一个注册密钥。";
/* Class = "NSButtonCell"; title = "Contribute"; ObjectID = "10"; */
"10.title" = "捐助";

View File

@@ -2,8 +2,38 @@
"Load from file..." = "Load from file...";
"Reset to Default" = "Reset to Default";
"Select a results file to load" = "选择一个结果文件并载入";
"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 folder to add to the scanning list" = "请选择一个文件夹并加入到扫描列表中";
"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.";
"You are about to remove %d files from results. Continue?" = "你将从结果中移除 %d 个文件。继续吗?";
"The name '%@' already exists." = "The name '%@' already exists.";
"You are about to send %d files to Trash. Continue?" = "即将有 %d 个文件被移到回收站。继续吗?";
"You are about to send %d files to Trash (and hardlink them afterwards). Continue?" = "即将有 %d 个文件被移动垃圾桶并删除硬盘上的文件。继续吗?";
"Do you really want to remove all %d items from the ignore list?" = "确定要从忽略列表中移除 %d 项吗?";
"All selected %d matches are going to be ignored in all subsequent scans. Continue?" = "目前已选的 %d 个匹配项将在后续的扫描中被忽略。继续吗?";
"You have no custom command set up. Set it up in your preferences." = "你没有设定自定义命令。请在首选项中进行设定。";
"All marked files were copied sucessfully." = "All marked files were copied sucessfully.";
"All marked files were moved sucessfully." = "All marked files were moved sucessfully.";
"All marked files were sucessfully sent to Trash." = "All marked files were sucessfully sent to Trash.";
"No duplicates found." = "没有找到重复文件。";
"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";
"Do you really want to remove all your cached picture analysis?" = "确定要移除所有缓存图片?";
"Add iTunes Directory" = "Add iTunes Directory";
"Remove Dead Tracks in iTunes" = "Remove Dead Tracks in iTunes";
"Add iPhoto Library" = "Add iPhoto Library";
"Clear Picture Cache" = "清空图片缓存";
"Yes" = "Yes";
"No" = "No";
"OK" = "OK";

View File

@@ -3,13 +3,7 @@
"1.title" = "有问题!";
/* Class = "NSTextFieldCell"; title = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results."; ObjectID = "4"; */
"4.title" = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results.";
/* Class = "NSTableColumn"; headerCell.title = "File Path"; ObjectID = "10"; */
"10.headerCell.title" = "文件路径";
/* Class = "NSTableColumn"; headerCell.title = "Error Message"; ObjectID = "11"; */
"11.headerCell.title" = "错误信息";
"4.title" = "在处理部分或全部文件时发现问题。产生问题的原因在下表中进行描述。这些文件将不会从结果中移除。";
/* Class = "NSButtonCell"; title = "Close"; ObjectID = "19"; */
"19.title" = "关闭";

View File

@@ -5,9 +5,6 @@
/* Class = "NSTextFieldCell"; title = "Marked: 0 files, 0 B. Total: 0 files, 0 B."; ObjectID = "6"; */
"6.title" = "Marked: 0 files, 0 B. Total: 0 files, 0 B.";
/* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "11"; */
"11.headerCell.title" = "名称";
/* Class = "NSToolbarItem"; label = "Options"; ObjectID = "15"; */
"15.label" = "Options";
@@ -69,7 +66,7 @@
"42.placeholderString" = "Filter";
/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[0] = "Details"; ObjectID = "44"; */
"44.ibShadowedLabels[0]" = "Details";
"44.ibShadowedLabels[0]" = "详细说明";
/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[1] = "Dupes Only"; ObjectID = "44"; */
"44.ibShadowedLabels[1]" = "Dupes Only";

View File

@@ -1,23 +0,0 @@
"Filename" = "Filename";
"Folder" = "文件夹";
"Size" = "大小";
"Size (KB)" = "大小 (KB)";
"Size (MB)" = "大小 (MB)";
"Kind" = "类型";
"Modification" = "编辑日期";
"Match %" = "匹配度 %";
"Words Used" = "使用过的词语";
"Dupe Count" = "重复文件数";
"Time" = "时间";
"Bitrate" = "比特";
"Sample Rate" = "采样率";
"Title" = "歌曲名";
"Artist" = "演唱者";
"Album" = "专辑";
"Genre" = "音乐类型";
"Year" = "年";
"Track Number" = "音轨号";
"Comment" = "注释";
"Dimensions" = "规格";

View File

@@ -1,39 +0,0 @@
"Collecting files to scan" = "收集文件以备扫描";
"%s (%d discarded)" = "%s (%d 无效)";
"Scanning for duplicates" = "重复文件扫描中";
"Loading" = "载入中";
"Moving" = "移动中";
"Copying" = "复制中";
"Sending to Trash" = "移到垃圾桶";
"0 matches found" = "未找到匹配项";
"%d matches found" = "找到 %d 个匹配项";
"Read size of %d/%d files" = "读取 %d/%d 文件大小";
"Grouped %d/%d matches" = "%d/%d 匹配项组合在一起";
"%d / %d (%s / %s) duplicates marked." = "已标记 %d / %d (%s / %s) 个重复项。";
" filter: %s" = " 筛选: %s";
"Read metadata of %d/%d files" = "读取 %d/%d 文件元数据";
"Removing false matches" = "移除错误匹配项";
"Processed %d/%d matches against the ignore list" = "在忽略列表之外已处理 %d/%d 匹配项";
"Doing group prioritization" = "优化分组";
"Continue" = "继续";
"Continue ({})" = "继续 ({})";
"Analyzed %d/%d pictures" = "分析 %d/%d 图像";
"Preparing for matching" = "准备进行匹配";
"Performed %d/%d chunk matches" = "Performed %d/%d chunk matches";
"Verified %d/%d matches" = "验证 %d/%d 匹配项";
"Removing dead tracks from your iTunes Library" = "从你的iTunes库中移除无效的音轨";
"Scanning the iTunes Library" = "正在扫描iTunes库";
"Probing iPhoto. Don't touch it during the operation!" = "正在对iPhoto进行搜索.请在此过程中不要触碰任何按键!";
"Sending dupes to the Trash" = "将重复文件移到垃圾桶";
/* Prioritization */
"Ends with number" = "Ends with number";
"Doesn't end with number" = "Doesn't end with number";
"Highest" = "Highest";
"Lowest" = "Lowest";
"Newest" = "Newest";
"Oldest" = "Oldest";

View File

@@ -1,33 +0,0 @@
"SelectResultToLoadMsg" = "选择一个结果文件并载入";
"SelectCopyDestinationMsg" = "Select a directory to copy marked files to";
"SelectMoveDestinationMsg" = "Select a directory to move marked files to";
"SelectResultToSaveMsg" = "将结果保存为...";
"SelectFolderToAddMsg" = "请选择一个文件夹并加入到扫描列表中";
"ReallyWantToQuitMsg" = "您还没有保存扫描结果,确定要退出吗?";
"ReallyWantToContinueMsg" = "目前还有结果尚未保存,确定要继续吗?";
"FolderAlreadyInListMsg" = "'%@' already is in the list.";
"FolderDoesNotExistMsg" = "'%@' does not exist.";
"FileRemovalConfirmMsg" = "你将从结果中移除 {} 个文件。继续吗?";
"FilenameAlreadyExistsMsg" = "The name '%@' already exists.";
"NoScannableFileMsg" = "所选文件夹中不包含可供扫描的文件。";
"UnknownErrorMsg" = "Unknown Error.";
"SendToTrashConfirmMsg" = "即将有 {} 个文件被移到回收站。继续吗?";
"HardlinkConfirmMsg" = "即将有 {} 个文件被移动垃圾桶并删除硬盘上的文件。继续吗?";
"ClearIgnoreListConfirmMsg" = "确定要从忽略列表中移除 {} 项吗?";
"IgnoreConfirmMsg" = "目前已选的 {} 个匹配项将在后续的扫描中被忽略。继续吗?";
"NoCustomCommandMsg" = "你没有设定自定义命令。请在首选项中进行设定。";
"CopySuccessMsg" = "All marked files were copied sucessfully.";
"MoveSuccessMsg" = "All marked files were moved sucessfully.";
"SendToTrashSuccessMsg" = "All marked files were sucessfully sent to Trash.";
"NoDuplicateFoundMsg" = "没有找到重复文件。";
"TaskHangingMsg" = "目前还有任务在执行,新任务无法开启。请等待几秒钟后再重新试一次。";
"RemoveDeadTracksConfirmMsg" = "Your iTunes Library contains %d dead tracks ready to be removed. Continue?";
"NoDeadTrackMsg" = "You have no dead tracks in your iTunes Library";
"IPhotoAppNotFoundMsg" = "The iPhoto application couldn't be found.";
"ClearPictureCacheConfirmMsg" = "确定要移除所有缓存图片?";
/* hscommon */
"FairwarePromptMsg" = "{name} 是一款捐助软件,也就是说 \"用户对研发开源软件所花费的时间进行符合用户意愿的捐助\"。用户可以根据研发人员花费在开发软件上的时间进行合理的补偿。用户在下面看到的 \"未支付的时间\" (Unpaid hours)表示需要对该软件进行补偿的时间。\n\n如果您喜欢这款软件我诚挚的希望您可以进行必要的捐助。谢谢\n\n如果您无法承担捐助您也可以忽略此提醒或者发送电子邮件至 support@hardcoded.net ,我会发送给您一个注册密钥。\n\n当软件没有未支付的时间或您已使用一个有效的注册密钥此对话框将不会再显示。";
"DemoPromptMsg" = "{name} is fairware, which means \"open source software developed with expectation of fair contributions from users\". It's a very interesting concept, but one year of fairware has shown that most people just want to know how much it costs and not be bothered with theories about intellectual property.\n\nSo I won't bother you and will be very straightforward: You can try {name} for free but you have to buy it in order to use it without limitations. In demo mode, {name} {limitation}.\n\nSo it's as simple as this. If you're curious about fairware, however, I encourage you to read more about it by clicking on the \"Fairware?\" button.";

View File

@@ -3,12 +3,15 @@ import logging
from jobprogress import job
from hscommon import cocoa
from hscommon.cocoa import install_exception_hook
from hscommon.cocoa.inter import signature, PyFairware
from hscommon.cocoa.inter import signature, subproxy, PyFairware
from hscommon.cocoa.objcmin import (NSNotificationCenter, NSSearchPathForDirectoriesInDomains,
NSApplicationSupportDirectory, NSUserDomainMask, NSWorkspace)
from hscommon.trans import tr
from hscommon.trans import trget
from core.app import JobType
from .result_table import PyResultTable
tr = trget('ui')
JOBID2TITLE = {
JobType.Scan: tr("Scanning for duplicates"),
@@ -29,13 +32,12 @@ class PyDupeGuruBase(PyFairware):
def bindCocoa_(self, cocoa):
self.cocoa = cocoa
resultTable = subproxy('resultTable', 'result_table', PyResultTable)
#---Directories
def addDirectory_(self, directory):
return self.py.add_directory(directory)
def removeDirectory_(self, index):
self.py.remove_directory(index)
#---Results
def clearIgnoreList(self):
self.py.scanner.ignore_list.Clear()
@@ -43,8 +45,8 @@ class PyDupeGuruBase(PyFairware):
def doScan(self):
self.py.start_scanning()
def exportToXHTMLwithColumns_(self, column_ids):
return self.py.export_to_xhtml(column_ids)
def exportToXHTML(self):
return self.py.export_to_xhtml()
def loadSession(self):
self.py.load()
@@ -122,9 +124,6 @@ class PyDupeGuruBase(PyFairware):
def resultsAreModified(self):
return self.py.results.is_modified
def deltaColumns(self):
return list(self.py.DELTA_COLUMNS)
#---Properties
@signature('v@:c')
def setMixFileKind_(self, mix_file_kind):

View File

@@ -17,7 +17,7 @@ from hscommon import io
from hscommon.util import remove_invalid_xml
from hscommon.path import Path
from hscommon.cocoa.objcmin import NSUserDefaults, NSURL
from hscommon.trans import tr, trmsg
from hscommon.trans import tr
from core import directories
from core_pe import _block_osx
@@ -193,7 +193,7 @@ class DupeGuruPE(DupeGuruBase):
try:
app('iPhoto')
except ApplicationNotFoundError:
self.view.show_message(trmsg("IPhotoAppNotFoundMsg"))
self.view.show_message(tr("The iPhoto application couldn't be found."))
return
DupeGuruBase.start_scanning(self)

View File

@@ -8,6 +8,9 @@ class PyDirectoryOutline(PyOutline):
def addDirectory_(self, path):
self.py.add_directory(path)
def removeSelectedDirectory(self):
self.py.remove_selected()
# python --> cocoa
def refresh_states(self):
# Under cocoa, both refresh() and refresh_states() do the same thing.

View File

@@ -1,10 +1,6 @@
from hscommon.cocoa.inter import signature, PyTable
from core.gui.result_table import ResultTable
class PyResultTable(PyTable):
py_class = ResultTable
@signature('c@:')
def powerMarkerMode(self):
return self.py.power_marker
@@ -21,7 +17,10 @@ class PyResultTable(PyTable):
def setDeltaValuesMode_(self, value):
self.py.delta_values = value
@signature('@@:ii')
def deltaColumns(self):
return list(self.py.DELTA_COLUMNS)
@signature('@@:i@')
def valueForRow_column_(self, row_index, column):
return self.py.get_row_value(row_index, column)
@@ -29,7 +28,7 @@ class PyResultTable(PyTable):
def renameSelected_(self, newname):
return self.py.rename_selected(newname)
@signature('v@:ic')
@signature('v@:@c')
def sortBy_ascending_(self, key, asc):
self.py.sort(key, asc)

View File

@@ -34,33 +34,39 @@ http://www.hardcoded.net/licenses/bsd_license
- (void)initResultColumns
{
[super initResultColumns];
NSTableColumn *refCol = [matches tableColumnWithIdentifier:@"0"];
_resultColumns = [[NSMutableArray alloc] init];
[_resultColumns addObject:[matches tableColumnWithIdentifier:@"0"]]; // File Name
[_resultColumns addObject:[self getColumnForIdentifier:1 title:TRCOL(@"Folder") width:120 refCol:refCol]];
NSTableColumn *sizeCol = [self getColumnForIdentifier:2 title:TRCOL(@"Size (MB)") width:63 refCol:refCol];
[[sizeCol dataCell] setAlignment:NSRightTextAlignment];
[_resultColumns addObject:sizeCol];
NSTableColumn *timeCol = [self getColumnForIdentifier:3 title:TRCOL(@"Time") width:50 refCol:refCol];
[[timeCol dataCell] setAlignment:NSRightTextAlignment];
[_resultColumns addObject:timeCol];
NSTableColumn *brCol = [self getColumnForIdentifier:4 title:TRCOL(@"Bitrate") width:50 refCol:refCol];
[[brCol dataCell] setAlignment:NSRightTextAlignment];
[_resultColumns addObject:brCol];
[_resultColumns addObject:[self getColumnForIdentifier:5 title:TRCOL(@"Sample Rate") width:60 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:6 title:TRCOL(@"Kind") width:40 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:7 title:TRCOL(@"Modification") width:120 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:8 title:TRCOL(@"Title") width:120 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:9 title:TRCOL(@"Artist") width:120 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:10 title:TRCOL(@"Album") width:120 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:11 title:TRCOL(@"Genre") width:80 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:12 title:TRCOL(@"Year") width:40 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:13 title:TRCOL(@"Track Number") width:40 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:14 title:TRCOL(@"Comment") width:120 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:15 title:TRCOL(@"Match %") width:57 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:16 title:TRCOL(@"Words Used") width:120 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:17 title:TRCOL(@"Dupe Count") width:80 refCol:refCol]];
HSColumnDef defs[] = {
{@"marked", 26, 26, 26, NO, [NSButtonCell class]},
{@"name", 235, 16, 0, YES, nil},
{@"folder_path", 120, 16, 0, YES, nil},
{@"size", 63, 16, 0, YES, nil},
{@"duration", 50, 16, 0, YES, nil},
{@"bitrate", 50, 16, 0, YES, nil},
{@"samplerate", 60, 16, 0, YES, nil},
{@"extension", 40, 16, 0, YES, nil},
{@"mtime", 120, 16, 0, YES, nil},
{@"title", 120, 16, 0, YES, nil},
{@"artist", 120, 16, 0, YES, nil},
{@"album", 120, 16, 0, YES, nil},
{@"genre", 80, 16, 0, YES, nil},
{@"year", 40, 16, 0, YES, nil},
{@"track", 40, 16, 0, YES, nil},
{@"comment", 120, 16, 0, YES, nil},
{@"percentage", 57, 16, 0, YES, nil},
{@"words", 120, 16, 0, YES, nil},
{@"dupe_count", 80, 16, 0, YES, nil},
nil
};
[[self columns] initializeColumns:defs];
NSTableColumn *c = [matches tableColumnWithIdentifier:@"marked"];
[[c dataCell] setButtonType:NSSwitchButton];
[[c dataCell] setControlSize:NSSmallControlSize];
c = [[self tableView] tableColumnWithIdentifier:@"size"];
[[c dataCell] setAlignment:NSRightTextAlignment];
c = [[self tableView] tableColumnWithIdentifier:@"duration"];
[[c dataCell] setAlignment:NSRightTextAlignment];
c = [[self tableView] tableColumnWithIdentifier:@"bitrate"];
[[c dataCell] setAlignment:NSRightTextAlignment];
[[table columns] restoreColumns];
}
/* Actions */
@@ -69,25 +75,6 @@ http://www.hardcoded.net/licenses/bsd_license
[(PyDupeGuru *)py scanDeadTracks];
}
- (IBAction)resetColumnsToDefault:(id)sender
{
NSMutableArray *columnsOrder = [NSMutableArray array];
[columnsOrder addObject:@"0"];
[columnsOrder addObject:@"2"];
[columnsOrder addObject:@"3"];
[columnsOrder addObject:@"4"];
[columnsOrder addObject:@"6"];
[columnsOrder addObject:@"15"];
NSMutableDictionary *columnsWidth = [NSMutableDictionary dictionary];
[columnsWidth setObject:i2n(235) forKey:@"0"];
[columnsWidth setObject:i2n(63) forKey:@"2"];
[columnsWidth setObject:i2n(50) forKey:@"3"];
[columnsWidth setObject:i2n(50) forKey:@"4"];
[columnsWidth setObject:i2n(40) forKey:@"6"];
[columnsWidth setObject:i2n(57) forKey:@"15"];
[self restoreColumnsPosition:columnsOrder widths:columnsWidth];
}
/* Notifications */
- (void)jobCompleted:(NSNotification *)aNotification
{
@@ -96,12 +83,12 @@ http://www.hardcoded.net/licenses/bsd_license
if ([lastAction isEqualTo:jobScanDeadTracks]) {
NSInteger deadTrackCount = [(PyDupeGuru *)py deadTrackCount];
if (deadTrackCount > 0) {
NSString *msg = TRMSG(@"RemoveDeadTracksConfirmMsg");
NSString *msg = TR(@"Your iTunes Library contains %d dead tracks ready to be removed. Continue?");
if ([Dialogs askYesNo:[NSString stringWithFormat:msg,deadTrackCount]] == NSAlertFirstButtonReturn)
[(PyDupeGuru *)py removeDeadTracks];
}
else {
[Dialogs showMessage:TRMSG(@"NoDeadTrackMsg")];
[Dialogs showMessage:TR(@"You have no dead tracks in your iTunes Library")];
}
}
}

View File

@@ -0,0 +1,105 @@
/* Class = "NSWindow"; title = "dupeGuru ME Preferences"; ObjectID = "2"; */
"2.title" = "Předvolby dupeGuru ME";
/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "29"; */
"29.title" = "Více výsledků";
/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "30"; */
"30.title" = "Méně výsledků";
/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "31"; */
"31.title" = "Tvrdost filtru:";
/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "32"; */
"32.title" = "Typ prohledávání:";
/* Class = "NSMenuItem"; title = "Content"; ObjectID = "35"; */
"35.title" = "Obsah";
/* Class = "NSMenuItem"; title = "Filename"; ObjectID = "36"; */
"36.title" = "Název souboru";
/* Class = "NSMenuItem"; title = "Filename - Fields"; ObjectID = "37"; */
"37.title" = "Název - pole";
/* Class = "NSMenuItem"; title = "Tags"; ObjectID = "38"; */
"38.title" = "Tagy";
/* Class = "NSMenuItem"; title = "Audio Content"; ObjectID = "39"; */
"39.title" = "Zvuk";
/* Class = "NSMenuItem"; title = "Filename - Fields (No Order)"; ObjectID = "40"; */
"40.title" = "Název - pole (bez pořadí)";
/* Class = "NSButtonCell"; title = "Word weighting"; ObjectID = "41"; */
"41.title" = "Váha slov";
/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "42"; */
"42.title" = "Různé druhy souborů";
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "45"; */
"45.title" = "Výchozí nastavení";
/* Class = "NSButtonCell"; title = "Match similar words"; ObjectID = "46"; */
"46.title" = "Shoda podobných slov";
/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "54"; */
"54.title" = "Kopírovat a přesunout:";
/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "57"; */
"57.title" = "Vytvořit s relativní cestou";
/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "58"; */
"58.title" = "Vytvořit s absolutní cestou";
/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "59"; */
"59.title" = "Přímo v cílovém umístění";
/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "60"; */
"60.title" = "Automaticky kontrolovat aktualizace";
/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "61"; */
"61.title" = "Při filtrování používat regulární výrazy";
/* Class = "NSButtonCell"; title = "Remove empty folders after delete and move"; ObjectID = "62"; */
"62.title" = "Po smazání a přesunu odstranit prázdné složky";
/* Class = "NSTextFieldCell"; title = "Tags to scan:"; ObjectID = "63"; */
"63.title" = "Prohledávané tagy:";
/* Class = "NSButtonCell"; title = "Track"; ObjectID = "64"; */
"64.title" = "Stopa";
/* Class = "NSButtonCell"; title = "Artist"; ObjectID = "65"; */
"65.title" = "Umělec";
/* Class = "NSButtonCell"; title = "Album"; ObjectID = "66"; */
"66.title" = "Album";
/* Class = "NSButtonCell"; title = "Title"; ObjectID = "67"; */
"67.title" = "Titul";
/* Class = "NSButtonCell"; title = "Genre"; ObjectID = "68"; */
"68.title" = "Žánr";
/* Class = "NSButtonCell"; title = "Year"; ObjectID = "69"; */
"69.title" = "Rok";
/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "116"; */
"116.label" = "Základní";
/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "117"; */
"117.label" = "Pokročilé";
/* Class = "NSTextFieldCell"; title = "Custom Command (arguments: %d for dupe, %r for ref):"; ObjectID = "121"; */
"121.title" = "Uživatelský příkaz (argumenty: %d pro duplicity, %r pro odkazy):";
/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "126"; */
"126.title" = "Ignorovat duplicity ve formě hardlinků na stejný soubor";
/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "130"; */
"130.title" = "Ladící režim (vyžaduje restart)";
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "136"; */
"136.title" = "Velikost písma:";

View File

@@ -4,8 +4,8 @@
# which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/bsd_license
from hscommon.trans import install_cocoa_trans
install_cocoa_trans()
from hscommon.trans import install_gettext_trans_under_cocoa
install_gettext_trans_under_cocoa()
from hscommon.cocoa import signature

View File

@@ -47,7 +47,6 @@
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; };
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; };
CE381D0509915304003581CE /* dg_cocoa.plugin in Resources */ = {isa = PBXBuildFile; fileRef = CE381CF509915304003581CE /* dg_cocoa.plugin */; };
CE45274F12E5F62D00005A15 /* core.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE45274D12E5F62D00005A15 /* core.strings */; };
CE4B59C91119919700C06C9E /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE4B59C61119919700C06C9E /* progress.xib */; };
CE4F934912CCA96C0067A3AE /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4F934812CCA96C0067A3AE /* HSAboutBox.m */; };
CE515DF30FC6C12E00EC695D /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DE10FC6C12E00EC695D /* Dialogs.m */; };
@@ -59,7 +58,6 @@
CE515E1E0FC6C19300EC695D /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515E190FC6C19300EC695D /* DirectoryPanel.m */; };
CE515E1F0FC6C19300EC695D /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515E1C0FC6C19300EC695D /* ResultWindow.m */; };
CE578303124DFC660004769C /* HSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE578302124DFC660004769C /* HSTableView.m */; };
CE57FB2C142B7E17005B5F83 /* message.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE57FB27142B7E17005B5F83 /* message.strings */; };
CE6032C00FE6784C007E33FF /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6032BF0FE6784C007E33FF /* DetailsPanel.m */; };
CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE68EE6609ABC48000971085 /* DirectoryPanel.m */; };
CE6E0E9F1054EB97008D9390 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0E9E1054EB97008D9390 /* dsa_pub.pem */; };
@@ -71,10 +69,10 @@
CE84C9B91423AE410050A6AD /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9B61423AE410050A6AD /* HSPopUpList.m */; };
CE84C9BA1423AE410050A6AD /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9B81423AE410050A6AD /* HSSelectableList.m */; };
CE84C9BD1423AF200050A6AD /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */; };
CEA14F431461ED63007F01A5 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA14F421461ED63007F01A5 /* locale */; };
CEB14D29124DFC2800FA7481 /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB14D28124DFC2800FA7481 /* ResultTable.m */; };
CEB5E07813225C89009F521D /* ExtraFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB5E07613225C89009F521D /* ExtraFairwareReminder.m */; };
CEB5E07D13225CA2009F521D /* ExtraFairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEB5E07B13225CA2009F521D /* ExtraFairwareReminder.xib */; };
CEC481F21423FBC600034F91 /* columns.strings in Resources */ = {isa = PBXBuildFile; fileRef = CEC481ED1423FBC600034F91 /* columns.strings */; };
CEDF07A3112493B200EE5BC0 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDF07A2112493B200EE5BC0 /* StatsLabel.m */; };
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
CEF3185913D8660000B8CDCA /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185513D8660000B8CDCA /* about.xib */; };
@@ -148,7 +146,6 @@
CE1425880AFB718500BD5167 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; };
CE1EAA0812DF3E81009BA949 /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; };
CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; };
CE2B2B591406ABDA0038D15A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/core.strings; sourceTree = "<group>"; };
CE2B2B5A1406ABDA0038D15A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = "<group>"; };
CE2E87F8142BC90A00519A68 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; };
CE2E87FB142BC92C00519A68 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = "<group>"; };
@@ -158,8 +155,6 @@
CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; };
CE381C9B09914ADF003581CE /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = ResultWindow.h; sourceTree = SOURCE_ROOT; };
CE381CF509915304003581CE /* dg_cocoa.plugin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = dg_cocoa.plugin; sourceTree = SOURCE_ROOT; };
CE45274E12E5F62D00005A15 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/core.strings; sourceTree = SOURCE_ROOT; };
CE45275012E5F63900005A15 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/core.strings; sourceTree = SOURCE_ROOT; };
CE4B59C61119919700C06C9E /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = "<group>"; };
CE4F934712CCA96C0067A3AE /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; };
CE4F934812CCA96C0067A3AE /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; };
@@ -184,19 +179,39 @@
CE515E1C0FC6C19300EC695D /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; };
CE578301124DFC660004769C /* HSTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSTableView.h; path = ../../cocoalib/views/HSTableView.h; sourceTree = SOURCE_ROOT; };
CE578302124DFC660004769C /* HSTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSTableView.m; path = ../../cocoalib/views/HSTableView.m; sourceTree = SOURCE_ROOT; };
CE57FB28142B7E17005B5F83 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/message.strings; sourceTree = "<group>"; };
CE57FB29142B7E17005B5F83 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/message.strings; sourceTree = "<group>"; };
CE57FB2A142B7E17005B5F83 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/message.strings; sourceTree = "<group>"; };
CE57FB2B142B7E17005B5F83 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/message.strings; sourceTree = "<group>"; };
CE6032BE0FE6784C007E33FF /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
CE6032BF0FE6784C007E33FF /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; };
CE68EE6509ABC48000971085 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
CE68EE6609ABC48000971085 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
CE6E0E9E1054EB97008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = "<group>"; };
CE74253B14603120002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = "<group>"; };
CE74253C14603120002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
CE74253D14603120002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
CE74254414603143002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = "<group>"; };
CE74255114603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
CE74255214603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
CE74255314603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
CE74255414603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = "<group>"; };
CE74255514603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
CE74255614603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
CE74255714603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ResultWindow.xib; sourceTree = "<group>"; };
CE74255F1460318D002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = "<group>"; };
CE74A12112537F06008A8DF0 /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; };
CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; };
CE74A12312537F06008A8DF0 /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyFairware.h; path = ../../cocoalib/PyFairware.h; sourceTree = SOURCE_ROOT; };
CE74A12612537F2E008A8DF0 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
CE7A6992146442F80007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = "<group>"; };
CE7A6998146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
CE7A6999146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
CE7A699A146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
CE7A699B146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = "<group>"; };
CE7A699C146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
CE7A699D146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
CE7A699E146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = "<group>"; };
CE7A69A6146443170007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = "<group>"; };
CE7A69A8146443360007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/about.xib; sourceTree = "<group>"; };
CE7A69A9146443360007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
CE7A69AA146443360007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
CE848A1809DD85810004CB44 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Consts.h; sourceTree = "<group>"; };
CE84C9AC1423ADFB0050A6AD /* PrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeDialog.h; path = ../base/PrioritizeDialog.h; sourceTree = "<group>"; };
CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = "<group>"; };
@@ -210,6 +225,7 @@
CE84C9B71423AE410050A6AD /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = "<group>"; };
CE84C9B81423AE410050A6AD /* HSSelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSSelectableList.m; sourceTree = "<group>"; };
CE84C9BC1423AF200050A6AD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
CEA14F421461ED63007F01A5 /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = "<group>"; };
CEB14D26124DFC2800FA7481 /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyResultTable.h; path = ../base/PyResultTable.h; sourceTree = SOURCE_ROOT; };
CEB14D27124DFC2800FA7481 /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; };
CEB14D28124DFC2800FA7481 /* ResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultTable.m; path = ../base/ResultTable.m; sourceTree = SOURCE_ROOT; };
@@ -218,14 +234,9 @@
CEB5E07713225C89009F521D /* PyExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyExtraFairwareReminder.h; path = ../base/PyExtraFairwareReminder.h; sourceTree = SOURCE_ROOT; };
CEB5E07C13225CA2009F521D /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
CEB5E07E13225CB8009F521D /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
CEC481EE1423FBC600034F91 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/columns.strings; sourceTree = "<group>"; };
CEC481EF1423FBC600034F91 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/columns.strings; sourceTree = "<group>"; };
CEC481F01423FBC600034F91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/columns.strings; sourceTree = "<group>"; };
CEC481F11423FBC600034F91 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/columns.strings; sourceTree = "<group>"; };
CEC8F3091416A0D2004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/about.xib; sourceTree = "<group>"; };
CEC8F30A1416A0D2004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
CEC8F30B1416A0D2004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
CEC8F3101416A0F0004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/core.strings; sourceTree = "<group>"; };
CEC8F3111416A0F0004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = "<group>"; };
CEC8F3141416A0FC004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
CEC8F3151416A0FC004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
@@ -334,15 +345,13 @@
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
CEA14F421461ED63007F01A5 /* locale */,
CE073F5409CAE1A3005C1D2F /* help */,
CE381CF509915304003581CE /* dg_cocoa.plugin */,
CEFC294309C89E0000D9F998 /* images */,
CE05330C12E5D3D70029EF25 /* xib */,
CEEB135109C837A2004D2330 /* dupeguru.icns */,
CE05332D12E5D6100029EF25 /* Localizable.strings */,
CEC481ED1423FBC600034F91 /* columns.strings */,
CE57FB27142B7E17005B5F83 /* message.strings */,
CE45274D12E5F62D00005A15 /* core.strings */,
8D1107310486CEB800E47090 /* Info.plist */,
CE6E0E9E1054EB97008D9390 /* dsa_pub.pem */,
);
@@ -542,7 +551,7 @@
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0410;
LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */;
compatibilityVersion = "Xcode 3.2";
@@ -557,6 +566,8 @@
fr,
de,
zh_CN,
cs,
it,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
projectDirPath = "";
@@ -586,13 +597,11 @@
CE05331B12E5D3ED0029EF25 /* ResultWindow.xib in Resources */,
CE05332312E5D4100029EF25 /* Preferences.xib in Resources */,
CE05332F12E5D6100029EF25 /* Localizable.strings in Resources */,
CE45274F12E5F62D00005A15 /* core.strings in Resources */,
CEB5E07D13225CA2009F521D /* ExtraFairwareReminder.xib in Resources */,
CEF3185913D8660000B8CDCA /* about.xib in Resources */,
CEF3185A13D8660000B8CDCA /* ErrorReportWindow.xib in Resources */,
CE84C9BD1423AF200050A6AD /* PrioritizeDialog.xib in Resources */,
CEC481F21423FBC600034F91 /* columns.strings in Resources */,
CE57FB2C142B7E17005B5F83 /* message.strings in Resources */,
CEA14F431461ED63007F01A5 /* locale in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -651,6 +660,8 @@
CE05331C12E5D4010029EF25 /* fr */,
CEF5770713CDFB250083CB30 /* de */,
CEC8F3141416A0FC004D28F3 /* zh_CN */,
CE74255114603152002F8E3E /* cs */,
CE7A6998146443090007D927 /* it */,
);
name = DetailsPanel.xib;
sourceTree = SOURCE_ROOT;
@@ -662,6 +673,8 @@
CE05331D12E5D4010029EF25 /* fr */,
CEF5770813CDFB250083CB30 /* de */,
CEC8F3151416A0FC004D28F3 /* zh_CN */,
CE74255214603152002F8E3E /* cs */,
CE7A6999146443090007D927 /* it */,
);
name = DirectoryPanel.xib;
sourceTree = SOURCE_ROOT;
@@ -673,6 +686,8 @@
CE05331E12E5D4010029EF25 /* fr */,
CEF5770A13CDFB250083CB30 /* de */,
CEC8F3171416A0FC004D28F3 /* zh_CN */,
CE74255414603152002F8E3E /* cs */,
CE7A699B146443090007D927 /* it */,
);
name = MainMenu.xib;
sourceTree = SOURCE_ROOT;
@@ -684,6 +699,8 @@
CE05331F12E5D4010029EF25 /* fr */,
CEF5770B13CDFB250083CB30 /* de */,
CEC8F3181416A0FC004D28F3 /* zh_CN */,
CE74255614603152002F8E3E /* cs */,
CE7A699D146443090007D927 /* it */,
);
name = ProblemDialog.xib;
sourceTree = SOURCE_ROOT;
@@ -695,6 +712,8 @@
CE05332012E5D4010029EF25 /* fr */,
CEF5770C13CDFB250083CB30 /* de */,
CEC8F3191416A0FC004D28F3 /* zh_CN */,
CE74255714603152002F8E3E /* cs */,
CE7A699E146443090007D927 /* it */,
);
name = ResultWindow.xib;
sourceTree = SOURCE_ROOT;
@@ -706,6 +725,8 @@
CE05332912E5D4460029EF25 /* fr */,
CEF5770D13CDFB310083CB30 /* de */,
CEC8F3201416A109004D28F3 /* zh_CN */,
CE74255F1460318D002F8E3E /* cs */,
CE7A69A6146443170007D927 /* it */,
);
name = Preferences.xib;
sourceTree = SOURCE_ROOT;
@@ -717,32 +738,12 @@
CE05333312E5D6370029EF25 /* fr */,
CE2B2B5A1406ABDA0038D15A /* de */,
CEC8F3111416A0F0004D28F3 /* zh_CN */,
CE74254414603143002F8E3E /* cs */,
CE7A6992146442F80007D927 /* it */,
);
name = Localizable.strings;
sourceTree = "<group>";
};
CE45274D12E5F62D00005A15 /* core.strings */ = {
isa = PBXVariantGroup;
children = (
CE45274E12E5F62D00005A15 /* en */,
CE45275012E5F63900005A15 /* fr */,
CE2B2B591406ABDA0038D15A /* de */,
CEC8F3101416A0F0004D28F3 /* zh_CN */,
);
name = core.strings;
sourceTree = SOURCE_ROOT;
};
CE57FB27142B7E17005B5F83 /* message.strings */ = {
isa = PBXVariantGroup;
children = (
CE57FB28142B7E17005B5F83 /* de */,
CE57FB29142B7E17005B5F83 /* en */,
CE57FB2A142B7E17005B5F83 /* fr */,
CE57FB2B142B7E17005B5F83 /* zh_CN */,
);
name = message.strings;
sourceTree = "<group>";
};
CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */ = {
isa = PBXVariantGroup;
children = (
@@ -750,6 +751,8 @@
CE05347712E5DC420029EF25 /* fr */,
CEF3186113D8661300B8CDCA /* de */,
CEC8F30B1416A0D2004D28F3 /* zh_CN */,
CE74253D14603120002F8E3E /* cs */,
CE7A69AA146443360007D927 /* it */,
);
name = FairwareReminder.xib;
path = ../../cocoalib/xib;
@@ -762,6 +765,8 @@
CECE37A31423EA980005187F /* de */,
CECE37A41423EA980005187F /* fr */,
CECE37A51423EA980005187F /* zh_CN */,
CE74255514603152002F8E3E /* cs */,
CE7A699C146443090007D927 /* it */,
);
name = PrioritizeDialog.xib;
sourceTree = "<group>";
@@ -773,21 +778,12 @@
CEB5E07E13225CB8009F521D /* fr */,
CEF5770913CDFB250083CB30 /* de */,
CEC8F3161416A0FC004D28F3 /* zh_CN */,
CE74255314603152002F8E3E /* cs */,
CE7A699A146443090007D927 /* it */,
);
name = ExtraFairwareReminder.xib;
sourceTree = SOURCE_ROOT;
};
CEC481ED1423FBC600034F91 /* columns.strings */ = {
isa = PBXVariantGroup;
children = (
CEC481EE1423FBC600034F91 /* de */,
CEC481EF1423FBC600034F91 /* en */,
CEC481F01423FBC600034F91 /* fr */,
CEC481F11423FBC600034F91 /* zh_CN */,
);
name = columns.strings;
sourceTree = "<group>";
};
CEF3185513D8660000B8CDCA /* about.xib */ = {
isa = PBXVariantGroup;
children = (
@@ -795,6 +791,8 @@
CEF3185B13D8660900B8CDCA /* fr */,
CEF3185F13D8661300B8CDCA /* de */,
CEC8F3091416A0D2004D28F3 /* zh_CN */,
CE74253B14603120002F8E3E /* cs */,
CE7A69A8146443360007D927 /* it */,
);
name = about.xib;
sourceTree = "<group>";
@@ -806,6 +804,8 @@
CEF3185C13D8660900B8CDCA /* fr */,
CEF3186013D8661300B8CDCA /* de */,
CEC8F30A1416A0D2004D28F3 /* zh_CN */,
CE74253C14603120002F8E3E /* cs */,
CE7A69A9146443360007D927 /* it */,
);
name = ErrorReportWindow.xib;
sourceTree = "<group>";
@@ -816,9 +816,12 @@
C01FCF4C08A954540054247B /* release */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
INSTALL_PATH = "$(PROJECT_DIR)";
PRODUCT_NAME = "dupeGuru ME";
WRAPPER_EXTENSION = app;
};
@@ -851,8 +854,11 @@
CED596C6111AF56D00C0CF2B /* dev */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
INSTALL_PATH = "$(PROJECT_DIR)";
PRODUCT_NAME = "dupeGuru ME";
WRAPPER_EXTENSION = app;
};

View File

@@ -39,7 +39,7 @@
"42.title" = "Comparer les fichiers de différents types";
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "45"; */
"45.title" = "Options par défaut";
"45.title" = "Réinitialiser";
/* Class = "NSButtonCell"; title = "Match similar words"; ObjectID = "46"; */
"46.title" = "Comparer les mots similaires";

View File

@@ -0,0 +1,105 @@
/* Class = "NSWindow"; title = "dupeGuru ME Preferences"; ObjectID = "2"; */
"2.title" = "Preferenze di dupeGuru ME";
/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "29"; */
"29.title" = "Più risultati";
/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "30"; */
"30.title" = "Meno risultati";
/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "31"; */
"31.title" = "Durezza del filtro:";
/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "32"; */
"32.title" = "Tipo di scansione:";
/* Class = "NSMenuItem"; title = "Content"; ObjectID = "35"; */
"35.title" = "Contenuto";
/* Class = "NSMenuItem"; title = "Filename"; ObjectID = "36"; */
"36.title" = "Nome del file";
/* Class = "NSMenuItem"; title = "Filename - Fields"; ObjectID = "37"; */
"37.title" = "Nome del file - Campi";
/* Class = "NSMenuItem"; title = "Tags"; ObjectID = "38"; */
"38.title" = "Tags";
/* Class = "NSMenuItem"; title = "Audio Content"; ObjectID = "39"; */
"39.title" = "Contenuto audio";
/* Class = "NSMenuItem"; title = "Filename - Fields (No Order)"; ObjectID = "40"; */
"40.title" = "Nome del file - Campi (senza ordine)";
/* Class = "NSButtonCell"; title = "Word weighting"; ObjectID = "41"; */
"41.title" = "'Peso' della parola";
/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "42"; */
"42.title" = "Includi tipi diversi di file";
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "45"; */
"45.title" = "Ripristina impostazioni predefinite";
/* Class = "NSButtonCell"; title = "Match similar words"; ObjectID = "46"; */
"46.title" = "Fai coincidere parole simili";
/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "54"; */
"54.title" = "Copia e sposta:";
/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "57"; */
"57.title" = "Ricrea il percorso relativo";
/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "58"; */
"58.title" = "Ricrea il percorso assoluto";
/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "59"; */
"59.title" = "Tutti gli elementi in una cartella";
/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "60"; */
"60.title" = "Controlla gli aggiornamenti automaticamente";
/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "61"; */
"61.title" = "Usa le espressioni regolari per filtrare";
/* Class = "NSButtonCell"; title = "Remove empty folders after delete and move"; ObjectID = "62"; */
"62.title" = "Rimuovi le cartelle vuote dopo aver cancellato e spostato";
/* Class = "NSTextFieldCell"; title = "Tags to scan:"; ObjectID = "63"; */
"63.title" = "Etichette da scansionare:";
/* Class = "NSButtonCell"; title = "Track"; ObjectID = "64"; */
"64.title" = "Traccia";
/* Class = "NSButtonCell"; title = "Artist"; ObjectID = "65"; */
"65.title" = "Artista";
/* Class = "NSButtonCell"; title = "Album"; ObjectID = "66"; */
"66.title" = "Album";
/* Class = "NSButtonCell"; title = "Title"; ObjectID = "67"; */
"67.title" = "Titolo";
/* Class = "NSButtonCell"; title = "Genre"; ObjectID = "68"; */
"68.title" = "Genere";
/* Class = "NSButtonCell"; title = "Year"; ObjectID = "69"; */
"69.title" = "Anno";
/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "116"; */
"116.label" = "Base";
/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "117"; */
"117.label" = "Avanzato";
/* Class = "NSTextFieldCell"; title = "Custom Command (arguments: %d for dupe, %r for ref):"; ObjectID = "121"; */
"121.title" = "Comando personalizzato (argomenti: %d per duplicare, %r per riferimento):";
/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "126"; */
"126.title" = "Non creare gli hardlink per i duplicati verso il medesimo file";
/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "130"; */
"130.title" = "Modalità 'Debug'(è richiesta la riapertura del programma)";
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "136"; */
"136.title" = "Dimensione carattere:";

View File

@@ -21,7 +21,7 @@
"36.title" = "文件名称";
/* Class = "NSMenuItem"; title = "Filename - Fields"; ObjectID = "37"; */
"37.title" = "Filename - Fields";
"37.title" = "文件名称 - 字段名";
/* Class = "NSMenuItem"; title = "Tags"; ObjectID = "38"; */
"38.title" = "标签";
@@ -93,7 +93,7 @@
"117.label" = "Advanced";
/* Class = "NSTextFieldCell"; title = "Custom Command (arguments: %d for dupe, %r for ref):"; ObjectID = "121"; */
"121.title" = "文件名称 - 字段名:";
"121.title" = "自定义命令 (参数: %d 指重复文件, %r 指参照文件):";
/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "126"; */
"126.title" = "忽略重复文件当其硬连接到相同文件时";
@@ -102,4 +102,4 @@
"130.title" = "调试模式 (需要重新启动)";
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "136"; */
"136.title" = "Font size:";
"136.title" = "复制和移动:";

View File

@@ -16,19 +16,25 @@ http://www.hardcoded.net/licenses/bsd_license
/* Override */
- (void)initResultColumns
{
[super initResultColumns];
NSTableColumn *refCol = [matches tableColumnWithIdentifier:@"0"];
_resultColumns = [[NSMutableArray alloc] init];
[_resultColumns addObject:[matches tableColumnWithIdentifier:@"0"]]; // File Name
[_resultColumns addObject:[self getColumnForIdentifier:1 title:TRCOL(@"Folder") width:120 refCol:refCol]];
NSTableColumn *sizeCol = [self getColumnForIdentifier:2 title:TRCOL(@"Size (KB)") width:63 refCol:refCol];
[[sizeCol dataCell] setAlignment:NSRightTextAlignment];
[_resultColumns addObject:sizeCol];
[_resultColumns addObject:[self getColumnForIdentifier:3 title:TRCOL(@"Kind") width:40 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:4 title:TRCOL(@"Dimensions") width:80 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:5 title:TRCOL(@"Modification") width:120 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:6 title:TRCOL(@"Match %") width:58 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:7 title:TRCOL(@"Dupe Count") width:80 refCol:refCol]];
HSColumnDef defs[] = {
{@"marked", 26, 26, 26, NO, [NSButtonCell class]},
{@"name", 162, 16, 0, YES, nil},
{@"folder_path", 142, 16, 0, YES, nil},
{@"size", 63, 16, 0, YES, nil},
{@"extension", 40, 16, 0, YES, nil},
{@"dimensions", 73, 16, 0, YES, nil},
{@"mtime", 120, 16, 0, YES, nil},
{@"percentage", 58, 16, 0, YES, nil},
{@"dupe_count", 80, 16, 0, YES, nil},
nil
};
[[self columns] initializeColumns:defs];
NSTableColumn *c = [matches tableColumnWithIdentifier:@"marked"];
[[c dataCell] setButtonType:NSSwitchButton];
[[c dataCell] setControlSize:NSSmallControlSize];
c = [[self tableView] tableColumnWithIdentifier:@"size"];
[[c dataCell] setAlignment:NSRightTextAlignment];
[[table columns] restoreColumns];
}
- (void)setScanOptions
@@ -45,26 +51,9 @@ http://www.hardcoded.net/licenses/bsd_license
/* Actions */
- (IBAction)clearPictureCache:(id)sender
{
NSString *msg = TRMSG(@"ClearPictureCacheConfirmMsg");
NSString *msg = TR(@"Do you really want to remove all your cached picture analysis?");
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
return;
[(PyDupeGuru *)py clearPictureCache];
}
- (IBAction)resetColumnsToDefault:(id)sender
{
NSMutableArray *columnsOrder = [NSMutableArray array];
[columnsOrder addObject:@"0"];
[columnsOrder addObject:@"1"];
[columnsOrder addObject:@"2"];
[columnsOrder addObject:@"4"];
[columnsOrder addObject:@"6"];
NSMutableDictionary *columnsWidth = [NSMutableDictionary dictionary];
[columnsWidth setObject:i2n(162) forKey:@"0"];
[columnsWidth setObject:i2n(142) forKey:@"1"];
[columnsWidth setObject:i2n(63) forKey:@"2"];
[columnsWidth setObject:i2n(73) forKey:@"4"];
[columnsWidth setObject:i2n(58) forKey:@"6"];
[self restoreColumnsPosition:columnsOrder widths:columnsWidth];
}
@end

View File

@@ -0,0 +1,18 @@
/* Class = "NSPanel"; title = "Details of Selected File"; ObjectID = "5"; */
"5.title" = "Detaily vybraného souboru";
/* Class = "NSTableColumn"; headerCell.title = "Selected"; ObjectID = "9"; */
"9.headerCell.title" = "Vybráno";
/* Class = "NSTableColumn"; headerCell.title = "Reference"; ObjectID = "10"; */
"10.headerCell.title" = "Referenční";
/* Class = "NSTableColumn"; headerCell.title = "Attribute"; ObjectID = "11"; */
"11.headerCell.title" = "Atribut";
/* Class = "NSTextFieldCell"; title = "Selected"; ObjectID = "33"; */
"33.title" = "Vybráno";
/* Class = "NSTextFieldCell"; title = "Reference"; ObjectID = "35"; */
"35.title" = "Referenční";

View File

@@ -0,0 +1,69 @@
/* Class = "NSWindow"; title = "dupeGuru PE Preferences"; ObjectID = "2"; */
"2.title" = "Předvolby dupeGuru PE";
/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "18"; */
"18.title" = "Více výsledků";
/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "19"; */
"19.title" = "Méně výsledků";
/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "20"; */
"20.title" = "Tvrdost filtru:";
/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "21"; */
"21.title" = "Různé druhy souborů";
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "24"; */
"24.title" = "Výchozí nastavení";
/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "25"; */
"25.title" = "Kopírovat a přesunout:";
/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "28"; */
"28.title" = "Vytvořit s relativní cestou";
/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "29"; */
"29.title" = "Vytvořit s absolutní cestou";
/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "30"; */
"30.title" = "Přímo v cílovém umístění";
/* Class = "NSButtonCell"; title = "Match pictures of different dimensions"; ObjectID = "31"; */
"31.title" = "Porovnávat snímky s různými rozměry";
/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "32"; */
"32.title" = "Automaticky kontrolovat aktualizace";
/* Class = "NSButtonCell"; title = "Remove empty folders on delete or move"; ObjectID = "33"; */
"33.title" = "Po smazání a přesunu odstranit prázdné složky";
/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "34"; */
"34.title" = "Při filtrování používat regulární výrazy";
/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "60"; */
"60.label" = "Základní";
/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "61"; */
"61.label" = "Pokročilé";
/* Class = "NSTextFieldCell"; title = "Custom Command (arguments: %d for dupe, %r for ref):"; ObjectID = "65"; */
"65.title" = "Uživatelský příkaz (argumenty: %d pro duplicity, %r pro odkazy):";
/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "70"; */
"70.title" = "Ignorovat duplicity ve formě hardlinků na stejný soubor";
/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "75"; */
"75.title" = "Ladící režim (vyžaduje restart)";
/* Class = "NSMenuItem"; title = "EXIF Timestamp"; ObjectID = "92"; */
"92.title" = "EXIF razítko";
/* Class = "NSMenuItem"; title = "Contents"; ObjectID = "93"; */
"93.title" = "Obsahuje";
/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "94"; */
"94.title" = "Typ prohledávání:";
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "104"; */
"104.title" = "Velikost písma:";

View File

@@ -60,7 +60,7 @@
"92.title" = "EXIF Timestamp";
/* Class = "NSMenuItem"; title = "Contents"; ObjectID = "93"; */
"93.title" = "Contents";
"93.title" = "Inhalt";
/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "94"; */
"94.title" = "Scan type:";

View File

@@ -4,8 +4,8 @@
# which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/bsd_license
from hscommon.trans import install_cocoa_trans
install_cocoa_trans()
from hscommon.trans import install_gettext_trans_under_cocoa
install_gettext_trans_under_cocoa()
from core.scanner import ScanType

View File

@@ -28,11 +28,9 @@
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; };
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; };
CE381D0509915304003581CE /* dg_cocoa.plugin in Resources */ = {isa = PBXBuildFile; fileRef = CE381CF509915304003581CE /* dg_cocoa.plugin */; };
CE4527AC12E5F6E700005A15 /* core.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE4527AA12E5F6E700005A15 /* core.strings */; };
CE4C3D1A142B7CC000DD438A /* message.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE4C3D15142B7CC000DD438A /* message.strings */; };
CE54EB8D1423FBA200E3383A /* columns.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE54EB881423FBA200E3383A /* columns.strings */; };
CE60180812DF3EA900236FDC /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CE60180712DF3EA900236FDC /* HSRecentFiles.m */; };
CE6044EC0FE6796200B71262 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6044EB0FE6796200B71262 /* DetailsPanel.m */; };
CE63D9D31461EDC000A8CADD /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CE63D9D21461EDC000A8CADD /* locale */; };
CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE68EE6609ABC48000971085 /* DirectoryPanel.m */; };
CE6E0F3D1054EC62008D9390 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */; };
CE7AC9191119911200D02F6C /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7AC9161119911200D02F6C /* progress.xib */; };
@@ -137,24 +135,14 @@
CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; };
CE381C9B09914ADF003581CE /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = ResultWindow.h; sourceTree = SOURCE_ROOT; };
CE381CF509915304003581CE /* dg_cocoa.plugin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = dg_cocoa.plugin; sourceTree = SOURCE_ROOT; };
CE4527AB12E5F6E700005A15 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/core.strings; sourceTree = SOURCE_ROOT; };
CE4527B012E5F72600005A15 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/core.strings; sourceTree = SOURCE_ROOT; };
CE4C3D16142B7CC000DD438A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/message.strings; sourceTree = "<group>"; };
CE4C3D17142B7CC000DD438A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/message.strings; sourceTree = "<group>"; };
CE4C3D18142B7CC000DD438A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/message.strings; sourceTree = "<group>"; };
CE4C3D19142B7CC000DD438A /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/message.strings; sourceTree = "<group>"; };
CE54EB891423FBA200E3383A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/columns.strings; sourceTree = "<group>"; };
CE54EB8A1423FBA200E3383A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/columns.strings; sourceTree = "<group>"; };
CE54EB8B1423FBA200E3383A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/columns.strings; sourceTree = "<group>"; };
CE54EB8C1423FBA200E3383A /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/columns.strings; sourceTree = "<group>"; };
CE60180612DF3EA900236FDC /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; };
CE60180712DF3EA900236FDC /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; };
CE6044EA0FE6796200B71262 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
CE6044EB0FE6796200B71262 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; };
CE63D9D21461EDC000A8CADD /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = "<group>"; };
CE653CEB14169F140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/about.xib; sourceTree = "<group>"; };
CE653CEC14169F140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
CE653CED14169F140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
CE653CF214169F2C0058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/core.strings; sourceTree = "<group>"; };
CE653CF314169F2C0058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = "<group>"; };
CE653CF61416A0140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
CE653CF71416A0140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = "<group>"; };
@@ -166,7 +154,6 @@
CE68EE6509ABC48000971085 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
CE68EE6609ABC48000971085 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = "<group>"; };
CE7358061406ABF700F3F6DA /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/core.strings; sourceTree = "<group>"; };
CE7358071406ABF700F3F6DA /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = "<group>"; };
CE78759D13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; };
CE78759E13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
@@ -175,6 +162,18 @@
CE7875A113CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; };
CE7875A513CDFAB900F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
CE7875A613CDFAB900F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = "<group>"; };
CE7A69B3146443A00007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = "<group>"; };
CE7A69B9146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
CE7A69BA146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
CE7A69BB146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = "<group>"; };
CE7A69BC146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
CE7A69BD146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
CE7A69BE146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = "<group>"; };
CE7A69C5146443B90007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
CE7A69C6146443B90007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = "<group>"; };
CE7A69C9146443CB0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/about.xib; sourceTree = "<group>"; };
CE7A69CA146443CB0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
CE7A69CB146443CB0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
CE7AC9161119911200D02F6C /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = "<group>"; };
CE7D24971423B0A7002E2297 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = "<group>"; };
CE7D24991423B0BD002E2297 /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = "<group>"; };
@@ -250,6 +249,18 @@
CECB2ACD13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
CEE660B7132253910036DB04 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = "<group>"; };
CEEE156E1460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = "<group>"; };
CEEE156F1460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
CEEE15701460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
CEEE15771460327300783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = "<group>"; };
CEEE15841460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
CEEE15851460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
CEEE15861460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = "<group>"; };
CEEE15871460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
CEEE15881460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
CEEE15891460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ResultWindow.xib; sourceTree = "<group>"; };
CEEE15901460329000783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
CEEE15911460329000783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = "<group>"; };
CEF12A7C124DFD400087B51D /* HSTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSTableView.h; path = ../../cocoalib/views/HSTableView.h; sourceTree = SOURCE_ROOT; };
CEF12A7D124DFD400087B51D /* HSTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSTableView.m; path = ../../cocoalib/views/HSTableView.m; sourceTree = SOURCE_ROOT; };
CEF12A81124DFD620087B51D /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyResultTable.h; path = ../base/PyResultTable.h; sourceTree = SOURCE_ROOT; };
@@ -335,6 +346,7 @@
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
CE63D9D21461EDC000A8CADD /* locale */,
CE073F5409CAE1A3005C1D2F /* help */,
CE381CF509915304003581CE /* dg_cocoa.plugin */,
CEFC294309C89E0000D9F998 /* images */,
@@ -342,9 +354,6 @@
CEEB135109C837A2004D2330 /* dupeguru.icns */,
8D1107310486CEB800E47090 /* Info.plist */,
CE0533A912E5DA6A0029EF25 /* Localizable.strings */,
CE54EB881423FBA200E3383A /* columns.strings */,
CE4C3D15142B7CC000DD438A /* message.strings */,
CE4527AA12E5F6E700005A15 /* core.strings */,
CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */,
);
name = Resources;
@@ -546,7 +555,7 @@
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0410;
LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */;
compatibilityVersion = "Xcode 3.2";
@@ -561,6 +570,8 @@
fr,
de,
zh_CN,
cs,
it,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
projectDirPath = "";
@@ -590,13 +601,11 @@
CE0533A712E5DA4D0029EF25 /* DetailsPanel.xib in Resources */,
CE0533A812E5DA4D0029EF25 /* Preferences.xib in Resources */,
CE0533AB12E5DA6A0029EF25 /* Localizable.strings in Resources */,
CE4527AC12E5F6E700005A15 /* core.strings in Resources */,
CE2A29F713213BFB005899AC /* ExtraFairwareReminder.xib in Resources */,
CECB2AC513D867AD0081E295 /* about.xib in Resources */,
CECB2AC613D867AD0081E295 /* ErrorReportWindow.xib in Resources */,
CE7D24A91423B123002E2297 /* PrioritizeDialog.xib in Resources */,
CE54EB8D1423FBA200E3383A /* columns.strings in Resources */,
CE4C3D1A142B7CC000DD438A /* message.strings in Resources */,
CE63D9D31461EDC000A8CADD /* locale in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -658,6 +667,8 @@
CE05339F12E5DA420029EF25 /* fr */,
CE78759D13CDFA7100F23771 /* de */,
CE653CFA1416A0260058A022 /* zh_CN */,
CEEE15841460328400783E91 /* cs */,
CE7A69B9146443AD0007D927 /* it */,
);
name = DirectoryPanel.xib;
sourceTree = SOURCE_ROOT;
@@ -669,6 +680,8 @@
CE0533A012E5DA420029EF25 /* fr */,
CE78759F13CDFA7100F23771 /* de */,
CE653CFC1416A0260058A022 /* zh_CN */,
CEEE15861460328400783E91 /* cs */,
CE7A69BB146443AD0007D927 /* it */,
);
name = MainMenu.xib;
sourceTree = SOURCE_ROOT;
@@ -680,6 +693,8 @@
CE0533A112E5DA420029EF25 /* fr */,
CE7875A013CDFA7100F23771 /* de */,
CE653CFD1416A0260058A022 /* zh_CN */,
CEEE15881460328400783E91 /* cs */,
CE7A69BD146443AD0007D927 /* it */,
);
name = ProblemDialog.xib;
sourceTree = SOURCE_ROOT;
@@ -691,6 +706,8 @@
CE0533A212E5DA420029EF25 /* fr */,
CE7875A113CDFA7100F23771 /* de */,
CE653CFE1416A0260058A022 /* zh_CN */,
CEEE15891460328400783E91 /* cs */,
CE7A69BE146443AD0007D927 /* it */,
);
name = ResultWindow.xib;
sourceTree = SOURCE_ROOT;
@@ -702,6 +719,8 @@
CE0533AD12E5DAAD0029EF25 /* fr */,
CE7875A513CDFAB900F23771 /* de */,
CE653CF61416A0140058A022 /* zh_CN */,
CEEE15901460329000783E91 /* cs */,
CE7A69C5146443B90007D927 /* it */,
);
name = DetailsPanel.xib;
sourceTree = SOURCE_ROOT;
@@ -713,6 +732,8 @@
CE0533AE12E5DAAD0029EF25 /* fr */,
CE7875A613CDFAB900F23771 /* de */,
CE653CF71416A0140058A022 /* zh_CN */,
CEEE15911460329000783E91 /* cs */,
CE7A69C6146443B90007D927 /* it */,
);
name = Preferences.xib;
sourceTree = SOURCE_ROOT;
@@ -724,6 +745,8 @@
CE0533AC12E5DA790029EF25 /* fr */,
CE7358071406ABF700F3F6DA /* de */,
CE653CF314169F2C0058A022 /* zh_CN */,
CEEE15771460327300783E91 /* cs */,
CE7A69B3146443A00007D927 /* it */,
);
name = Localizable.strings;
sourceTree = SOURCE_ROOT;
@@ -735,6 +758,8 @@
CE0533B712E5DC040029EF25 /* fr */,
CECB2ACD13D867C00081E295 /* de */,
CE653CED14169F140058A022 /* zh_CN */,
CEEE15701460325B00783E91 /* cs */,
CE7A69CB146443CB0007D927 /* it */,
);
name = FairwareReminder.xib;
path = ../../cocoalib/xib;
@@ -747,43 +772,12 @@
CEE660B7132253910036DB04 /* fr */,
CE78759E13CDFA7100F23771 /* de */,
CE653CFB1416A0260058A022 /* zh_CN */,
CEEE15851460328400783E91 /* cs */,
CE7A69BA146443AD0007D927 /* it */,
);
name = ExtraFairwareReminder.xib;
sourceTree = SOURCE_ROOT;
};
CE4527AA12E5F6E700005A15 /* core.strings */ = {
isa = PBXVariantGroup;
children = (
CE4527AB12E5F6E700005A15 /* en */,
CE4527B012E5F72600005A15 /* fr */,
CE7358061406ABF700F3F6DA /* de */,
CE653CF214169F2C0058A022 /* zh_CN */,
);
name = core.strings;
sourceTree = SOURCE_ROOT;
};
CE4C3D15142B7CC000DD438A /* message.strings */ = {
isa = PBXVariantGroup;
children = (
CE4C3D16142B7CC000DD438A /* de */,
CE4C3D17142B7CC000DD438A /* en */,
CE4C3D18142B7CC000DD438A /* fr */,
CE4C3D19142B7CC000DD438A /* zh_CN */,
);
name = message.strings;
sourceTree = "<group>";
};
CE54EB881423FBA200E3383A /* columns.strings */ = {
isa = PBXVariantGroup;
children = (
CE54EB891423FBA200E3383A /* de */,
CE54EB8A1423FBA200E3383A /* en */,
CE54EB8B1423FBA200E3383A /* fr */,
CE54EB8C1423FBA200E3383A /* zh_CN */,
);
name = columns.strings;
sourceTree = "<group>";
};
CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */ = {
isa = PBXVariantGroup;
children = (
@@ -791,6 +785,8 @@
CE21AFB61423EA6E00DE35BF /* de */,
CE21AFB71423EA6E00DE35BF /* fr */,
CE21AFB81423EA6E00DE35BF /* zh_CN */,
CEEE15871460328400783E91 /* cs */,
CE7A69BC146443AD0007D927 /* it */,
);
name = PrioritizeDialog.xib;
sourceTree = "<group>";
@@ -802,6 +798,8 @@
CECB2AC713D867B70081E295 /* fr */,
CECB2ACB13D867C00081E295 /* de */,
CE653CEB14169F140058A022 /* zh_CN */,
CEEE156E1460325B00783E91 /* cs */,
CE7A69C9146443CB0007D927 /* it */,
);
name = about.xib;
sourceTree = "<group>";
@@ -813,6 +811,8 @@
CECB2AC813D867B70081E295 /* fr */,
CECB2ACC13D867C00081E295 /* de */,
CE653CEC14169F140058A022 /* zh_CN */,
CEEE156F1460325B00783E91 /* cs */,
CE7A69CA146443CB0007D927 /* it */,
);
name = ErrorReportWindow.xib;
sourceTree = "<group>";
@@ -823,8 +823,12 @@
C01FCF4C08A954540054247B /* release */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(PROJECT_DIR)";
PRODUCT_NAME = "dupeGuru PE";
WRAPPER_EXTENSION = app;
};
@@ -857,7 +861,11 @@
CEE00FF1111AF37400BC1A77 /* dev */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(PROJECT_DIR)";
PRODUCT_NAME = "dupeGuru PE";
WRAPPER_EXTENSION = app;
};

View File

@@ -15,7 +15,7 @@
"21.title" = "Comparer les fichiers de différents types";
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "24"; */
"24.title" = "Options par défaut";
"24.title" = "Réinitialiser";
/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "25"; */
"25.title" = "Déplacements de fichiers:";

View File

@@ -0,0 +1,18 @@
/* Class = "NSPanel"; title = "Details of Selected File"; ObjectID = "5"; */
"5.title" = "Dettagli del file selezionato";
/* Class = "NSTableColumn"; headerCell.title = "Selected"; ObjectID = "9"; */
"9.headerCell.title" = "Selezionato";
/* Class = "NSTableColumn"; headerCell.title = "Reference"; ObjectID = "10"; */
"10.headerCell.title" = "Riferimento";
/* Class = "NSTableColumn"; headerCell.title = "Attribute"; ObjectID = "11"; */
"11.headerCell.title" = "Attributo";
/* Class = "NSTextFieldCell"; title = "Selected"; ObjectID = "33"; */
"33.title" = "Selezionato";
/* Class = "NSTextFieldCell"; title = "Reference"; ObjectID = "35"; */
"35.title" = "Riferimento";

View File

@@ -0,0 +1,69 @@
/* Class = "NSWindow"; title = "dupeGuru PE Preferences"; ObjectID = "2"; */
"2.title" = "Preferenze di dupeGuru PE";
/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "18"; */
"18.title" = "Più risultati";
/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "19"; */
"19.title" = "Meno risultati";
/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "20"; */
"20.title" = "Durezza del filtro:";
/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "21"; */
"21.title" = "Includi tipi diversi di file";
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "24"; */
"24.title" = "Ripristina impostazioni predefinite";
/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "25"; */
"25.title" = "Copia e sposta:";
/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "28"; */
"28.title" = "Ricrea il percorso relativo";
/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "29"; */
"29.title" = "Ricrea il percorso assoluto";
/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "30"; */
"30.title" = "Tutti gli elementi in una cartella";
/* Class = "NSButtonCell"; title = "Match pictures of different dimensions"; ObjectID = "31"; */
"31.title" = "Includi immagini di dimensione differente";
/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "32"; */
"32.title" = "Controlla gli aggiornamenti automaticamente";
/* Class = "NSButtonCell"; title = "Remove empty folders on delete or move"; ObjectID = "33"; */
"33.title" = "Rimuovi le cartelle vuote dopo aver cancellato o spostato";
/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "34"; */
"34.title" = "Usa le espressioni regolari per filtrare";
/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "60"; */
"60.label" = "Base";
/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "61"; */
"61.label" = "Avanzato";
/* Class = "NSTextFieldCell"; title = "Custom Command (arguments: %d for dupe, %r for ref):"; ObjectID = "65"; */
"65.title" = "Comando personalizzato (argomenti: %d per duplicare, %r per riferimento):";
/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "70"; */
"70.title" = "Non creare gli hardlink per i duplicati verso il medesimo file";
/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "75"; */
"75.title" = "Modalità 'Debug'(è richiesta la riapertura del programma)";
/* Class = "NSMenuItem"; title = "EXIF Timestamp"; ObjectID = "92"; */
"92.title" = "Data e ora EXIF";
/* Class = "NSMenuItem"; title = "Contents"; ObjectID = "93"; */
"93.title" = "Contenuti";
/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "94"; */
"94.title" = "Tipo di scansione:";
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "104"; */
"104.title" = "Dimensione carattere:";

View File

@@ -48,7 +48,7 @@
"61.label" = "Advanced";
/* Class = "NSTextFieldCell"; title = "Custom Command (arguments: %d for dupe, %r for ref):"; ObjectID = "65"; */
"65.title" = "文件名称 - 字段名:";
"65.title" = "自定义命令 (参数: %d 指重复文件, %r 指参照文件):";
/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "70"; */
"70.title" = "忽略重复文件当其硬连接到相同文件时";
@@ -60,10 +60,10 @@
"92.title" = "EXIF Timestamp";
/* Class = "NSMenuItem"; title = "Contents"; ObjectID = "93"; */
"93.title" = "Contents";
"93.title" = "内容";
/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "94"; */
"94.title" = "Scan type:";
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "104"; */
"104.title" = "Font size:";
"104.title" = "复制和移动:";

View File

@@ -15,19 +15,25 @@ http://www.hardcoded.net/licenses/bsd_license
/* Override */
- (void)initResultColumns
{
[super initResultColumns];
NSTableColumn *refCol = [matches tableColumnWithIdentifier:@"0"];
_resultColumns = [[NSMutableArray alloc] init];
[_resultColumns addObject:[matches tableColumnWithIdentifier:@"0"]]; // File Name
[_resultColumns addObject:[self getColumnForIdentifier:1 title:TRCOL(@"Folder") width:120 refCol:refCol]];
NSTableColumn *sizeCol = [self getColumnForIdentifier:2 title:TRCOL(@"Size (KB)") width:63 refCol:refCol];
[[sizeCol dataCell] setAlignment:NSRightTextAlignment];
[_resultColumns addObject:sizeCol];
[_resultColumns addObject:[self getColumnForIdentifier:3 title:TRCOL(@"Kind") width:40 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:4 title:TRCOL(@"Modification") width:120 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:5 title:TRCOL(@"Match %") width:60 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:6 title:TRCOL(@"Words Used") width:120 refCol:refCol]];
[_resultColumns addObject:[self getColumnForIdentifier:7 title:TRCOL(@"Dupe Count") width:80 refCol:refCol]];
HSColumnDef defs[] = {
{@"marked", 26, 26, 26, NO, [NSButtonCell class]},
{@"name", 195, 16, 0, YES, nil},
{@"folder_path", 183, 16, 0, YES, nil},
{@"size", 63, 16, 0, YES, nil},
{@"extension", 40, 16, 0, YES, nil},
{@"mtime", 120, 16, 0, YES, nil},
{@"percentage", 60, 16, 0, YES, nil},
{@"words", 120, 16, 0, YES, nil},
{@"dupe_count", 80, 16, 0, YES, nil},
nil
};
[[table columns] initializeColumns:defs];
NSTableColumn *c = [matches tableColumnWithIdentifier:@"marked"];
[[c dataCell] setButtonType:NSSwitchButton];
[[c dataCell] setControlSize:NSSmallControlSize];
c = [matches tableColumnWithIdentifier:@"size"];
[[c dataCell] setAlignment:NSRightTextAlignment];
[[table columns] restoreColumns];
}
- (void)setScanOptions
@@ -44,20 +50,4 @@ http://www.hardcoded.net/licenses/bsd_license
int sizeThreshold = [ud boolForKey:@"ignoreSmallFiles"] ? smallFileThreshold * 1024 : 0; // The py side wants bytes
[_py setSizeThreshold:sizeThreshold];
}
/* Actions */
- (IBAction)resetColumnsToDefault:(id)sender
{
NSMutableArray *columnsOrder = [NSMutableArray array];
[columnsOrder addObject:@"0"];
[columnsOrder addObject:@"1"];
[columnsOrder addObject:@"2"];
[columnsOrder addObject:@"5"];
NSMutableDictionary *columnsWidth = [NSMutableDictionary dictionary];
[columnsWidth setObject:i2n(195) forKey:@"0"];
[columnsWidth setObject:i2n(183) forKey:@"1"];
[columnsWidth setObject:i2n(63) forKey:@"2"];
[columnsWidth setObject:i2n(60) forKey:@"5"];
[self restoreColumnsPosition:columnsOrder widths:columnsWidth];
}
@end

View File

@@ -0,0 +1,81 @@
/* Class = "NSWindow"; title = "dupeGuru Preferences"; ObjectID = "52"; */
"52.title" = "Předvolby dupeGuru";
/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "74"; */
"74.title" = "Více výsledků";
/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "75"; */
"75.title" = "Méně výsledků";
/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "76"; */
"76.title" = "Tvrdost filtru:";
/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "77"; */
"77.title" = "Typ prohledávání:";
/* Class = "NSMenuItem"; title = "Content"; ObjectID = "80"; */
"80.title" = "Obsah";
/* Class = "NSMenuItem"; title = "Filename"; ObjectID = "81"; */
"81.title" = "Název souboru";
/* Class = "NSButtonCell"; title = "Word weighting"; ObjectID = "82"; */
"82.title" = "Váha slov";
/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "83"; */
"83.title" = "Různé druhy souborů";
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "86"; */
"86.title" = "Výchozí nastavení";
/* Class = "NSButtonCell"; title = "Match similar words"; ObjectID = "87"; */
"87.title" = "Shoda podobných slov";
/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "88"; */
"88.title" = "Kopírovat a přesunout:";
/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "91"; */
"91.title" = "Vytvořit s relativní cestou";
/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "92"; */
"92.title" = "Vytvořit s absolutní cestou";
/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "93"; */
"93.title" = "Přímo v cílovém umístění";
/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "94"; */
"94.title" = "Automaticky kontrolovat aktualizace";
/* Class = "NSButtonCell"; title = "Remove empty folders on delete or move"; ObjectID = "96"; */
"96.title" = "Po smazání a přesunu odstranit prázdné složky";
/* Class = "NSButtonCell"; title = "Ignore files smaller than:"; ObjectID = "97"; */
"97.title" = "Ignorovat soubory menší než:";
/* Class = "NSTextFieldCell"; title = "KB"; ObjectID = "100"; */
"100.title" = "KB";
/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "124"; */
"124.label" = "Základní";
/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "125"; */
"125.label" = "Pokročilé";
/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "129"; */
"129.title" = "Při filtrování používat regulární výrazy";
/* Class = "NSTextFieldCell"; title = "Custom command (arguments: %d for dupe, %r for ref):"; ObjectID = "134"; */
"134.title" = "Uživatelský příkaz (argumenty: %d pro duplicity, %r pro odkazy):";
/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "142"; */
"142.title" = "Ignorovat duplicity ve formě hardlinků na stejný soubor";
/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "146"; */
"146.title" = "Ladící režim (vyžaduje restart)";
/* Class = "NSMenuItem"; title = "Folders"; ObjectID = "149"; */
"149.title" = "Složky";
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "155"; */
"155.title" = "Velikost písma:";

View File

@@ -4,8 +4,8 @@
# which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/bsd_license
from hscommon.trans import install_cocoa_trans
install_cocoa_trans()
from hscommon.trans import install_gettext_trans_under_cocoa
install_gettext_trans_under_cocoa()
from hscommon.cocoa import signature

View File

@@ -18,11 +18,11 @@
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; };
CE381D0509915304003581CE /* dg_cocoa.plugin in Resources */ = {isa = PBXBuildFile; fileRef = CE381CF509915304003581CE /* dg_cocoa.plugin */; };
CE41672D141FE1E5004F3F0B /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE41672B141FE1E5004F3F0B /* HSSelectableList.m */; };
CE4526F212E5F55F00005A15 /* core.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE4526F012E5F55F00005A15 /* core.strings */; };
CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; };
CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; };
CE5335FC142BBFAF008E5374 /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5335FB142BBFAF008E5374 /* HSQuicklook.m */; };
CE533603142BC034008E5374 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE533602142BC034008E5374 /* Quartz.framework */; };
CE54A87E148046F9008EEA77 /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE54A87D148046F9008EEA77 /* HSColumns.m */; };
CE647E571173024A006D28BA /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE647E551173024A006D28BA /* ProblemDialog.m */; };
CE665B3013225ADD003F5CFB /* ExtraFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE665B2E13225ADD003F5CFB /* ExtraFairwareReminder.m */; };
CE665B3313225AF8003F5CFB /* ExtraFairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE665B3113225AF8003F5CFB /* ExtraFairwareReminder.xib */; };
@@ -51,9 +51,8 @@
CE9777CD141F8C2500C13FB5 /* PrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */; };
CE9777D1141F8CB400C13FB5 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */; };
CE9777D5141F9D7600C13FB5 /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9777D4141F9D7600C13FB5 /* HSPopUpList.m */; };
CE9A2C011423F9FF003CA2EF /* columns.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE9A2BFC1423F9FF003CA2EF /* columns.strings */; };
CEA175CA1461E8E600776591 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA175C91461E8E600776591 /* locale */; };
CEBE4D74111F0EE1009AAC6D /* HSWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBE4D73111F0EE1009AAC6D /* HSWindowController.m */; };
CED650EA142B7DA8009BD50A /* message.strings in Resources */ = {isa = PBXBuildFile; fileRef = CED650E5142B7DA8009BD50A /* message.strings */; };
CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7EA120FE675C80004E467 /* DetailsPanel.m */; };
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */; };
@@ -93,7 +92,6 @@
CE0564A814169D6C00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/about.xib; sourceTree = "<group>"; };
CE0564A914169D6C00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
CE0564AA14169D6C00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
CE0564AF14169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/core.strings; sourceTree = "<group>"; };
CE0564B014169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = "<group>"; };
CE0564B314169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
CE0564B414169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
@@ -103,6 +101,9 @@
CE0564B814169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/ResultWindow.xib; sourceTree = "<group>"; };
CE0564BF14169DDC00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = "<group>"; };
CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = "<group>"; };
CE112F5F145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = "<group>"; };
CE112F60145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
CE112F61145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
CE19BC6111199231007CCEB0 /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = "<group>"; };
CE27D3C212CCA43800859E67 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; };
CE27D3C312CCA43800859E67 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; };
@@ -121,12 +122,13 @@
CE41672A141FE1E5004F3F0B /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = "<group>"; };
CE41672B141FE1E5004F3F0B /* HSSelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSSelectableList.m; sourceTree = "<group>"; };
CE41672C141FE1E5004F3F0B /* HSTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSTable.h; sourceTree = "<group>"; };
CE4526F112E5F55F00005A15 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/core.strings; sourceTree = SOURCE_ROOT; };
CE4526F312E5F57000005A15 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/core.strings; sourceTree = SOURCE_ROOT; };
CE45579A0AE3BC2B005A9546 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; };
CE5335FA142BBFAF008E5374 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = "<group>"; };
CE5335FB142BBFAF008E5374 /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = "<group>"; };
CE533602142BC034008E5374 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; };
CE54A87A14804687008EEA77 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = "<group>"; };
CE54A87C148046F9008EEA77 /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = "<group>"; };
CE54A87D148046F9008EEA77 /* HSColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns.m; sourceTree = "<group>"; };
CE647E541173024A006D28BA /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; };
CE647E551173024A006D28BA /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; };
CE647E561173024A006D28BA /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyProblemDialog.h; path = ../base/PyProblemDialog.h; sourceTree = SOURCE_ROOT; };
@@ -163,6 +165,18 @@
CE79638512536C94008D405B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
CE79638A12536F4E008D405B /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; };
CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; };
CE7A6971146442010007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = "<group>"; };
CE7A6977146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
CE7A6978146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
CE7A6979146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
CE7A697A146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = "<group>"; };
CE7A697B146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
CE7A697C146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
CE7A697D146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = "<group>"; };
CE7A6985146442340007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/about.xib; sourceTree = "<group>"; };
CE7A6986146442340007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
CE7A6987146442340007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
CE7A698B1464425A0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = "<group>"; };
CE81134312E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; };
CE81134512E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; };
CE81134712E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; };
@@ -192,10 +206,8 @@
CE9777D2141F9D6500C13FB5 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = "<group>"; };
CE9777D3141F9D7600C13FB5 /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = "<group>"; };
CE9777D4141F9D7600C13FB5 /* HSPopUpList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList.m; sourceTree = "<group>"; };
CE9A2BFD1423F9FF003CA2EF /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/columns.strings; sourceTree = "<group>"; };
CE9A2BFE1423F9FF003CA2EF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/columns.strings; sourceTree = "<group>"; };
CE9A2BFF1423F9FF003CA2EF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/columns.strings; sourceTree = "<group>"; };
CE9A2C001423F9FF003CA2EF /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/columns.strings; sourceTree = "<group>"; };
CEA175C91461E8E600776591 /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = "<group>"; };
CEB57990146ADC5100EDF7D7 /* HSConsts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSConsts.h; path = ../../cocoalib/HSConsts.h; sourceTree = "<group>"; };
CEBE4D72111F0EE1009AAC6D /* HSWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSWindowController.h; sourceTree = "<group>"; };
CEBE4D73111F0EE1009AAC6D /* HSWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSWindowController.m; sourceTree = "<group>"; };
CECFFF1C13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; };
@@ -205,11 +217,15 @@
CECFFF2013CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; };
CECFFF2113CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; };
CECFFF2413CDF8E5003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = "<group>"; };
CED650E6142B7DA8009BD50A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/message.strings; sourceTree = "<group>"; };
CED650E7142B7DA8009BD50A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/message.strings; sourceTree = "<group>"; };
CED650E8142B7DA8009BD50A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/message.strings; sourceTree = "<group>"; };
CED650E9142B7DA8009BD50A /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/message.strings; sourceTree = "<group>"; };
CED939541406ABB70072C4E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/core.strings; sourceTree = "<group>"; };
CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = "<group>"; };
CED64CF8145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
CED64CF9145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
CED64CFA145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
CED64CFB145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = "<group>"; };
CED64CFC145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
CED64CFD145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
CED64CFE145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ResultWindow.xib; sourceTree = "<group>"; };
CED64D06145EF16300572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = "<group>"; };
CED939551406ABB70072C4E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = "<group>"; };
CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; };
@@ -313,6 +329,7 @@
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
CEA175C91461E8E600776591 /* locale */,
CE073F5409CAE1A3005C1D2F /* help */,
CE381CF509915304003581CE /* dg_cocoa.plugin */,
CEFC294309C89E0000D9F998 /* images */,
@@ -320,9 +337,6 @@
CEEB135109C837A2004D2330 /* dupeguru.icns */,
8D1107310486CEB800E47090 /* Info.plist */,
CE8113E912E5CE9A00A36C80 /* Localizable.strings */,
CE9A2BFC1423F9FF003CA2EF /* columns.strings */,
CED650E5142B7DA8009BD50A /* message.strings */,
CE4526F012E5F55F00005A15 /* core.strings */,
CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */,
);
name = Resources;
@@ -368,6 +382,8 @@
CE76FDC7111EE38E006618EA /* controllers */ = {
isa = PBXGroup;
children = (
CE54A87C148046F9008EEA77 /* HSColumns.h */,
CE54A87D148046F9008EEA77 /* HSColumns.m */,
CEBE4D72111F0EE1009AAC6D /* HSWindowController.h */,
CEBE4D73111F0EE1009AAC6D /* HSWindowController.m */,
CE76FDDD111EE42F006618EA /* HSOutline.h */,
@@ -388,6 +404,7 @@
CE76FDCC111EE38E006618EA /* proxies */ = {
isa = PBXGroup;
children = (
CE54A87A14804687008EEA77 /* PyColumns.h */,
CE76FDCD111EE38E006618EA /* PyGUI.h */,
CE76FDCE111EE38E006618EA /* PyOutline.h */,
CE8C53B61173248F0011B41F /* PyTable.h */,
@@ -429,6 +446,7 @@
CE76FDCC111EE38E006618EA /* proxies */,
CE76FDBD111EE37C006618EA /* views */,
CE19BC5F11199231007CCEB0 /* xib */,
CEB57990146ADC5100EDF7D7 /* HSConsts.h */,
CEFC7F8A0FC9517500CD5728 /* Dialogs.h */,
CEFC7F8B0FC9517500CD5728 /* Dialogs.m */,
CEFC7F8C0FC9517500CD5728 /* HSErrorReportWindow.h */,
@@ -521,7 +539,7 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = NO;
LastUpgradeCheck = 0410;
LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */;
compatibilityVersion = "Xcode 3.2";
@@ -536,6 +554,8 @@
fr,
de,
zh_CN,
cs,
it,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
projectDirPath = "";
@@ -565,13 +585,11 @@
CE81135012E5CE4D00A36C80 /* ResultWindow.xib in Resources */,
CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */,
CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */,
CE4526F212E5F55F00005A15 /* core.strings in Resources */,
CE665B3313225AF8003F5CFB /* ExtraFairwareReminder.xib in Resources */,
CE31819D13D85D9B00B6D649 /* about.xib in Resources */,
CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */,
CE9777D1141F8CB400C13FB5 /* PrioritizeDialog.xib in Resources */,
CE9A2C011423F9FF003CA2EF /* columns.strings in Resources */,
CED650EA142B7DA8009BD50A /* message.strings in Resources */,
CEA175CA1461E8E600776591 /* locale in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -616,6 +634,7 @@
CE41672D141FE1E5004F3F0B /* HSSelectableList.m in Sources */,
CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */,
CE5335FC142BBFAF008E5374 /* HSQuicklook.m in Sources */,
CE54A87E148046F9008EEA77 /* HSColumns.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -629,6 +648,8 @@
CE31819F13D85DA800B6D649 /* fr */,
CE3181A313D85DB700B6D649 /* de */,
CE0564A814169D6C00D3D907 /* zh_CN */,
CE112F5F145EF28D009C9E3E /* cs */,
CE7A6985146442340007D927 /* it */,
);
name = about.xib;
sourceTree = "<group>";
@@ -640,21 +661,12 @@
CE3181A013D85DA800B6D649 /* fr */,
CE3181A413D85DB700B6D649 /* de */,
CE0564A914169D6C00D3D907 /* zh_CN */,
CE112F60145EF28D009C9E3E /* cs */,
CE7A6986146442340007D927 /* it */,
);
name = ErrorReportWindow.xib;
sourceTree = "<group>";
};
CE4526F012E5F55F00005A15 /* core.strings */ = {
isa = PBXVariantGroup;
children = (
CE4526F112E5F55F00005A15 /* en */,
CE4526F312E5F57000005A15 /* fr */,
CED939541406ABB70072C4E8 /* de */,
CE0564AF14169D9E00D3D907 /* zh_CN */,
);
name = core.strings;
sourceTree = SOURCE_ROOT;
};
CE665B3113225AF8003F5CFB /* ExtraFairwareReminder.xib */ = {
isa = PBXVariantGroup;
children = (
@@ -662,6 +674,8 @@
CE665B3413225B07003F5CFB /* fr */,
CECFFF1E13CDF8D0003A4518 /* de */,
CE0564B514169DB100D3D907 /* zh_CN */,
CED64CFA145EF07700572B00 /* cs */,
CE7A6979146442160007D927 /* it */,
);
name = ExtraFairwareReminder.xib;
sourceTree = SOURCE_ROOT;
@@ -673,6 +687,8 @@
CE05341312E5DC260029EF25 /* fr */,
CE3181A513D85DB700B6D649 /* de */,
CE0564AA14169D6C00D3D907 /* zh_CN */,
CE112F61145EF28D009C9E3E /* cs */,
CE7A6987146442340007D927 /* it */,
);
name = FairwareReminder.xib;
path = ../../cocoalib/xib;
@@ -685,6 +701,8 @@
CE81135112E5CE6100A36C80 /* fr */,
CECFFF1C13CDF8D0003A4518 /* de */,
CE0564B314169DB100D3D907 /* zh_CN */,
CED64CF8145EF07700572B00 /* cs */,
CE7A6977146442160007D927 /* it */,
);
name = DetailsPanel.xib;
sourceTree = SOURCE_ROOT;
@@ -696,6 +714,8 @@
CE81135212E5CE6100A36C80 /* fr */,
CECFFF1D13CDF8D0003A4518 /* de */,
CE0564B414169DB100D3D907 /* zh_CN */,
CED64CF9145EF07700572B00 /* cs */,
CE7A6978146442160007D927 /* it */,
);
name = DirectoryPanel.xib;
sourceTree = SOURCE_ROOT;
@@ -707,6 +727,8 @@
CE81135312E5CE6100A36C80 /* fr */,
CECFFF1F13CDF8D0003A4518 /* de */,
CE0564B614169DB100D3D907 /* zh_CN */,
CED64CFB145EF07700572B00 /* cs */,
CE7A697A146442160007D927 /* it */,
);
name = MainMenu.xib;
sourceTree = SOURCE_ROOT;
@@ -718,6 +740,8 @@
CE81135412E5CE6100A36C80 /* fr */,
CECFFF2013CDF8D0003A4518 /* de */,
CE0564B714169DB100D3D907 /* zh_CN */,
CED64CFD145EF07700572B00 /* cs */,
CE7A697C146442160007D927 /* it */,
);
name = ProblemDialog.xib;
sourceTree = SOURCE_ROOT;
@@ -729,6 +753,8 @@
CE81135512E5CE6100A36C80 /* fr */,
CECFFF2113CDF8D0003A4518 /* de */,
CE0564B814169DB100D3D907 /* zh_CN */,
CED64CFE145EF07700572B00 /* cs */,
CE7A697D146442160007D927 /* it */,
);
name = ResultWindow.xib;
sourceTree = SOURCE_ROOT;
@@ -740,6 +766,8 @@
CE81135912E5CE7B00A36C80 /* fr */,
CECFFF2413CDF8E5003A4518 /* de */,
CE0564BF14169DDC00D3D907 /* zh_CN */,
CED64D06145EF16300572B00 /* cs */,
CE7A698B1464425A0007D927 /* it */,
);
name = Preferences.xib;
sourceTree = SOURCE_ROOT;
@@ -751,6 +779,8 @@
CE8113EC12E5CEA800A36C80 /* fr */,
CED939551406ABB70072C4E8 /* de */,
CE0564B014169D9E00D3D907 /* zh_CN */,
CED64CEB145EF06000572B00 /* cs */,
CE7A6971146442010007D927 /* it */,
);
name = Localizable.strings;
sourceTree = SOURCE_ROOT;
@@ -762,40 +792,24 @@
CEF27A9C1423EAD90048ADFA /* de */,
CEF27A9D1423EAD90048ADFA /* fr */,
CEF27A9E1423EAD90048ADFA /* zh_CN */,
CED64CFC145EF07700572B00 /* cs */,
CE7A697B146442160007D927 /* it */,
);
name = PrioritizeDialog.xib;
sourceTree = "<group>";
};
CE9A2BFC1423F9FF003CA2EF /* columns.strings */ = {
isa = PBXVariantGroup;
children = (
CE9A2BFD1423F9FF003CA2EF /* de */,
CE9A2BFE1423F9FF003CA2EF /* en */,
CE9A2BFF1423F9FF003CA2EF /* fr */,
CE9A2C001423F9FF003CA2EF /* zh_CN */,
);
name = columns.strings;
sourceTree = "<group>";
};
CED650E5142B7DA8009BD50A /* message.strings */ = {
isa = PBXVariantGroup;
children = (
CED650E6142B7DA8009BD50A /* de */,
CED650E7142B7DA8009BD50A /* en */,
CED650E8142B7DA8009BD50A /* fr */,
CED650E9142B7DA8009BD50A /* zh_CN */,
);
name = message.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
C01FCF4C08A954540054247B /* release */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(PROJECT_DIR)";
PRODUCT_NAME = dupeGuru;
WRAPPER_EXTENSION = app;
};
@@ -828,7 +842,11 @@
CE85E850111AF63D00187B0D /* dev */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(PROJECT_DIR)";
PRODUCT_NAME = dupeGuru;
WRAPPER_EXTENSION = app;
};

View File

@@ -27,7 +27,7 @@
"83.title" = "Comparer les fichiers de différents types";
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "86"; */
"86.title" = "Options par défaut";
"86.title" = "Réinitialiser";
/* Class = "NSButtonCell"; title = "Match similar words"; ObjectID = "87"; */
"87.title" = "Comparer les mots similaires";
@@ -50,7 +50,7 @@
/* Class = "NSButtonCell"; title = "Remove empty folders on delete or move"; ObjectID = "96"; */
"96.title" = "Effacer les dossiers vides après un déplacement";
/* Class = "NSButtonCell"; title = "Ignore files smaller than"; ObjectID = "97"; */
/* Class = "NSButtonCell"; title = "Ignore files smaller than:"; ObjectID = "97"; */
"97.title" = "Ignorer les fichiers plus petits que:";
/* Class = "NSTextFieldCell"; title = "KB"; ObjectID = "100"; */

View File

@@ -0,0 +1,81 @@
/* Class = "NSWindow"; title = "dupeGuru Preferences"; ObjectID = "52"; */
"52.title" = "Preferenze di dupeGuru";
/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "74"; */
"74.title" = "Più risultati";
/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "75"; */
"75.title" = "Meno risultati";
/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "76"; */
"76.title" = "Durezza del filtro:";
/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "77"; */
"77.title" = "Tipo di scansione:";
/* Class = "NSMenuItem"; title = "Content"; ObjectID = "80"; */
"80.title" = "Contenuto";
/* Class = "NSMenuItem"; title = "Filename"; ObjectID = "81"; */
"81.title" = "Nome del file";
/* Class = "NSButtonCell"; title = "Word weighting"; ObjectID = "82"; */
"82.title" = "'Peso' della parola";
/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "83"; */
"83.title" = "Includi tipi diversi di file";
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "86"; */
"86.title" = "Ripristina impostazioni predefinite";
/* Class = "NSButtonCell"; title = "Match similar words"; ObjectID = "87"; */
"87.title" = "Fai coincidere parole simili";
/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "88"; */
"88.title" = "Copia e sposta:";
/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "91"; */
"91.title" = "Ricrea il percorso relativo";
/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "92"; */
"92.title" = "Ricrea il percorso assoluto";
/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "93"; */
"93.title" = "Tutti gli elementi in una cartella";
/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "94"; */
"94.title" = "Controlla gli aggiornamenti automaticamente";
/* Class = "NSButtonCell"; title = "Remove empty folders on delete or move"; ObjectID = "96"; */
"96.title" = "Rimuovi le cartelle vuote dopo aver cancellato o spostato";
/* Class = "NSButtonCell"; title = "Ignore files smaller than:"; ObjectID = "97"; */
"97.title" = "Ignora file più piccoli di:";
/* Class = "NSTextFieldCell"; title = "KB"; ObjectID = "100"; */
"100.title" = "KB";
/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "124"; */
"124.label" = "Base";
/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "125"; */
"125.label" = "Avanzato";
/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "129"; */
"129.title" = "Usa le espressioni regolari per filtrare";
/* Class = "NSTextFieldCell"; title = "Custom command (arguments: %d for dupe, %r for ref):"; ObjectID = "134"; */
"134.title" = "Comando personalizzato (argumenti: %d per duplicare, %r per riferimento):";
/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "142"; */
"142.title" = "Non creare gli hardlink per i duplicati verso il medesimo file";
/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "146"; */
"146.title" = "Modalità 'Debug'(è richiesta la riapertura del programma)";
/* Class = "NSMenuItem"; title = "Folders"; ObjectID = "149"; */
"149.title" = "Cartelle";
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "155"; */
"155.title" = "Dimensione carattere:";

View File

@@ -78,4 +78,4 @@
"149.title" = "文件夹";
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "155"; */
"155.title" = "Font size:";
"155.title" = "复制和移动:";

View File

@@ -12,7 +12,6 @@ import logging
import subprocess
import re
import time
from collections import namedtuple
from send2trash import send2trash
from hscommon import io
@@ -22,7 +21,7 @@ from hscommon.path import Path
from hscommon.conflict import smart_move, smart_copy
from hscommon.util import (delete_if_empty, first, escape, nonone, format_time_decimal, allsame,
rem_file_ext)
from hscommon.trans import tr, trmsg
from hscommon.trans import tr
from . import directories, results, scanner, export, fs
@@ -41,8 +40,6 @@ class JobType:
Copy = 'job_copy'
Delete = 'job_delete'
Column = namedtuple('Column', 'attr display')
def format_timestamp(t, delta):
if delta:
return format_time_decimal(t)
@@ -67,11 +64,11 @@ def format_perc(p):
def format_dupe_count(c):
return str(c) if c else '---'
def cmp_value(dupe, column):
if column.attr == 'name':
def cmp_value(dupe, attrname):
if attrname == 'name':
value = rem_file_ext(dupe.name)
else:
value = getattr(dupe, column.attr, '')
value = getattr(dupe, attrname, '')
return value.lower() if isinstance(value, str) else value
class DupeGuru(RegistrableApplication, Broadcaster):
@@ -103,6 +100,7 @@ class DupeGuru(RegistrableApplication, Broadcaster):
'ignore_hardlink_matches': False,
}
self.selected_dupes = []
# subclasses must create self.result_table
#--- Virtual
def _get_display_info(self, dupe, group, delta):
@@ -274,28 +272,29 @@ class DupeGuru(RegistrableApplication, Broadcaster):
self.show_extra_fairware_reminder_if_needed()
self.view.start_job(JobType.Delete, self._do_delete, args=[replace_with_hardlinks])
def export_to_xhtml(self, column_ids):
column_ids = [colid for colid in column_ids if colid.isdigit()]
column_ids = list(map(int, column_ids))
column_ids.sort()
colnames = [col.display for i, col in enumerate(self.COLUMNS) if i in column_ids]
def export_to_xhtml(self):
columns = [col for col in self.result_table.columns.ordered_columns
if col.visible and col.name != 'marked']
colnames = [col.display for col in columns]
rows = []
for group in self.results.groups:
for dupe in group:
data = self.get_display_info(dupe, group)
row = [data[colid] for colid in column_ids]
row = [data[col.name] for col in columns]
row.insert(0, dupe is not group.ref)
rows.append(row)
return export.export_to_xhtml(colnames, rows)
def get_display_info(self, dupe, group, delta=False):
def empty_data():
return {c.name: '---' for c in self.result_table.COLUMNS[1:]}
if (dupe is None) or (group is None):
return ['---'] * len(self.COLUMNS)
return empty_data()
try:
return self._get_display_info(dupe, group, delta)
except Exception as e:
logging.warning("Exception on GetDisplayInfo for %s: %s", str(dupe.path), str(e))
return ['---'] * len(self.COLUMNS)
return empty_data()
def invoke_command(self, cmd):
"""Calls command `cmd` with %d and %r placeholders replaced.
@@ -369,8 +368,10 @@ class DupeGuru(RegistrableApplication, Broadcaster):
def purge_ignore_list(self):
self.scanner.ignore_list.Filter(lambda f,s:op.exists(f) and op.exists(s))
def remove_directory(self,index):
def remove_directories(self, indexes):
try:
indexes = sorted(indexes, reverse=True)
for index in indexes:
del self.directories[index]
self.notify('directories_changed')
except IndexError:
@@ -411,6 +412,7 @@ class DupeGuru(RegistrableApplication, Broadcaster):
self.directories.save_to_file(op.join(self.appdata, 'last_directories.xml'))
p = op.join(self.appdata, 'ignore_list.xml')
self.scanner.ignore_list.save_to_xml(p)
self.notify('save_session')
def save_as(self, filename):
self.results.save_to_xml(filename)
@@ -428,7 +430,7 @@ class DupeGuru(RegistrableApplication, Broadcaster):
self.results.groups = self.scanner.GetDupeGroups(files, j)
if not self.directories.has_any_file():
self.view.show_message(trmsg("NoScannableFileMsg"))
self.view.show_message(tr("The selected directories contain no scannable file."))
return
self.results.groups = []
self._results_changed()

View File

@@ -12,6 +12,7 @@ from hscommon.notify import Listener
class GUIObject(Listener):
def __init__(self, view, app):
Listener.__init__(self, app)
if view is not None:
self.view = view
self.app = app

View File

@@ -26,12 +26,12 @@ class DetailsPanel(GUIObject):
else:
dupe = None
group = None
l1 = self.app.get_display_info(dupe, group, False)
data1 = self.app.get_display_info(dupe, group, False)
# we don't want the two sides of the table to display the stats for the same file
ref = group.ref if group is not None and group.ref is not dupe else None
l2 = self.app.get_display_info(ref, group, False)
names = [c.display for c in self.app.COLUMNS]
self._table = list(zip(names, l1, l2))
data2 = self.app.get_display_info(ref, group, False)
columns = self.app.result_table.COLUMNS[1:] # first column is the 'marked' column
self._table = [(c.display, data1[c.name], data2[c.name]) for c in columns]
#--- Public
def row_count(self):

View File

@@ -76,6 +76,22 @@ class DirectoryTree(GUIObject, Tree):
def add_directory(self, path):
self.app.add_directory(path)
def remove_selected(self):
selected_paths = self.selected_paths
if not selected_paths:
return
to_delete = [path[0] for path in selected_paths if len(path) == 1]
if to_delete:
self.app.remove_directories(to_delete)
else:
# All selected nodes or on second-or-more level, exclude them.
nodes = self.selected_nodes
newstate = DirectoryState.Excluded
if all(node.state == DirectoryState.Excluded for node in nodes):
newstate = DirectoryState.Normal
for node in nodes:
node.state = newstate
def update_all_states(self):
for node in self:
node.update_all_states()

View File

@@ -61,6 +61,8 @@ class PrioritizeDialog:
def add_selected(self):
# Add selected criteria in criteria_list to prioritization_list.
if self.criteria_list.selected_index is None:
return
crit = self.criteria[self.criteria_list.selected_index]
self.prioritizations.append(crit)
self.prioritization_list[:] = [crit.display for crit in self.prioritizations]

View File

@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# Created By: Virgil Dupras
# Created On: 2010-04-12
# Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
@@ -19,7 +18,7 @@ class ProblemDialog(GUIObject, Broadcaster):
def reveal_selected_dupe(self):
if self._selected_dupe is not None:
self.app._reveal_path(self._selected_dupe.path)
self.app.view.reveal_path(self._selected_dupe.path)
def select_dupe(self, dupe):
self._selected_dupe = dupe

Some files were not shown because too many files have changed in this diff Show More