diff --git a/MacPass.xcodeproj/project.pbxproj b/MacPass.xcodeproj/project.pbxproj index 09c0d2da..8b73c84c 100644 --- a/MacPass.xcodeproj/project.pbxproj +++ b/MacPass.xcodeproj/project.pbxproj @@ -436,6 +436,8 @@ 4C1E9884185F71A800943563 /* MPContextBarViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPContextBarViewController.m; sourceTree = ""; }; 4C1FA07918231900003A3F8C /* MPDocument+Autotype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MPDocument+Autotype.h"; sourceTree = ""; }; 4C1FA07A18231900003A3F8C /* MPDocument+Autotype.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MPDocument+Autotype.m"; sourceTree = ""; }; + 4C21F29D195B39B9002D610D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/MainMenu.strings; sourceTree = ""; }; + 4C21F29F195B3A48002D610D /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/MainMenu.strings; sourceTree = ""; }; 4C224B4017DFCB2300FF6AEE /* MPNumericalInputFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPNumericalInputFormatter.h; sourceTree = ""; }; 4C224B4117DFCB2400FF6AEE /* MPNumericalInputFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPNumericalInputFormatter.m; sourceTree = ""; }; 4C245A69176E1E3C0086100E /* DDData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDData.h; sourceTree = ""; }; @@ -761,7 +763,6 @@ 4CA3530918A53CB800839B0F /* MPKeyMapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPKeyMapper.h; sourceTree = ""; }; 4CA3530A18A53CB800839B0F /* MPKeyMapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPKeyMapper.m; sourceTree = ""; }; 4CA3531118A5577300839B0F /* dsa_sparkle_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsa_sparkle_pub.pem; sourceTree = ""; }; - 4CAAFDD51787AED60013FCF9 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/MainMenu.strings; sourceTree = ""; }; 4CAC614217AD319200023F9E /* KPKTestXmlParsing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKTestXmlParsing.m; sourceTree = ""; }; 4CAD745615B887FD00104512 /* DDXMLElementAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDXMLElementAdditions.h; sourceTree = ""; }; 4CAD745715B887FD00104512 /* DDXMLElementAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDXMLElementAdditions.m; sourceTree = ""; }; @@ -973,7 +974,7 @@ BD6C366019484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/GroupInspectorView.strings; sourceTree = ""; }; BD6C366119484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/EntryInspectorView.strings; sourceTree = ""; }; BD6C366219484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/DatePickingView.strings; sourceTree = ""; }; - BD6C366319484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; + BD6C366319484CF40089EB37 /* nl */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; BD6C366419484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = nl; path = nl.lproj/Credits.rtf; sourceTree = ""; }; BD6C366519484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; }; BD6C366619484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/KPKLocalizeable.strings; sourceTree = ""; }; @@ -2543,10 +2544,11 @@ isa = PBXVariantGroup; children = ( 4C7615601764C05A0015A1A6 /* Base */, - 4CAAFDD51787AED60013FCF9 /* en */, 4C5CD34617D15912000B7F38 /* fr */, 601F811218E016340028F3DE /* zh-Hans */, BD6C365C19484CF40089EB37 /* nl */, + 4C21F29D195B39B9002D610D /* en */, + 4C21F29F195B3A48002D610D /* de */, ); name = MainMenu.xib; sourceTree = ""; diff --git a/MacPass/EntryView.xib b/MacPass/EntryView.xib index 8a5bf319..69186fbd 100644 --- a/MacPass/EntryView.xib +++ b/MacPass/EntryView.xib @@ -1,8 +1,8 @@ - + - + @@ -10,6 +10,7 @@ + @@ -48,11 +49,11 @@ - + - + @@ -86,7 +87,7 @@ - + @@ -137,11 +138,11 @@ - + - + @@ -175,7 +176,7 @@ - + @@ -213,7 +214,7 @@ - + @@ -270,11 +271,22 @@ + + + diff --git a/MacPass/MPAutotypeDaemon.m b/MacPass/MPAutotypeDaemon.m index c3dbc2c1..b0a0839f 100644 --- a/MacPass/MPAutotypeDaemon.m +++ b/MacPass/MPAutotypeDaemon.m @@ -26,6 +26,11 @@ NSString *const kMPWindowTitleKey = @"windowTitle"; NSString *const kMPApplciationNameKey = @"applicationName"; +/* + Enabel to activate autotype +#define MP_AUTOTYPE +*/ + @interface MPAutotypeDaemon () @property (nonatomic, assign) BOOL enabled; @@ -43,7 +48,7 @@ NSString *const kMPApplciationNameKey = @"applicationName"; self = [super init]; if (self) { _enabled = NO; - [self bind:@"enabled" + [self bind:NSStringFromSelector(@selector(enabled)) toObject:[NSUserDefaultsController sharedUserDefaultsController] withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyEnableGlobalAutotype] options:nil]; @@ -52,7 +57,7 @@ NSString *const kMPApplciationNameKey = @"applicationName"; } - (void)dealloc { - [self unbind:@"enabled"]; + [self unbind:NSStringFromSelector(@selector(enabled))]; } #pragma mark - @@ -61,7 +66,9 @@ NSString *const kMPApplciationNameKey = @"applicationName"; - (void)setEnabled:(BOOL)enabled { if(_enabled != enabled) { _enabled = enabled; +#ifdef MP_AUTOTYPE self.enabled ? [self _registerHotKey] : [self _unregisterHotKey]; +#endif } } @@ -184,7 +191,7 @@ NSString *const kMPApplciationNameKey = @"applicationName"; NSNumber *processId = windowDict[(NSString *)kCGWindowOwnerPID]; if(processId && [processId isEqualToNumber:@(frontApplication.processIdentifier)]) { return @{ - kMPWindowTitleKey:windowDict[(NSString *)kCGWindowName], + kMPWindowTitleKey: windowDict[(NSString *)kCGWindowName], kMPApplciationNameKey : name }; } diff --git a/MacPass/MPDocumentWindowController.h b/MacPass/MPDocumentWindowController.h index 9ad66d90..024d0ea3 100644 --- a/MacPass/MPDocumentWindowController.h +++ b/MacPass/MPDocumentWindowController.h @@ -50,7 +50,7 @@ - (IBAction)pickExpiryDate:(id)sender; #pragma mark Helper -- (void)fixAutotype:(id)sender; +- (IBAction)fixAutotype:(id)sender; #pragma mark View Actions - (IBAction)toggleInspector:(id)sender; diff --git a/MacPass/MPDocumentWindowController.m b/MacPass/MPDocumentWindowController.m index 66a852e6..3dcfa8b3 100644 --- a/MacPass/MPDocumentWindowController.m +++ b/MacPass/MPDocumentWindowController.m @@ -86,15 +86,15 @@ typedef void (^MPPasswordChangedBlock)(void); [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_didRevertDocument:) name:MPDocumentDidRevertNotifiation object:document]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showEntries) name:MPDocumentDidUnlockDatabaseNotification object:document]; - [_entryViewController regsiterNotificationsForDocument:document]; - [_inspectorViewController regsiterNotificationsForDocument:document]; - [_outlineViewController regsiterNotificationsForDocument:document]; - [_toolbarDelegate registerNotificationsForDocument:document]; + [self.entryViewController regsiterNotificationsForDocument:document]; + [self.inspectorViewController regsiterNotificationsForDocument:document]; + [self.outlineViewController regsiterNotificationsForDocument:document]; + [self.toolbarDelegate registerNotificationsForDocument:document]; - _toolbar = [[NSToolbar alloc] initWithIdentifier:@"MainWindowToolbar"]; - [_toolbar setAutosavesConfiguration:YES]; + self.toolbar = [[NSToolbar alloc] initWithIdentifier:@"MainWindowToolbar"]; + [self.toolbar setAutosavesConfiguration:YES]; [self.toolbar setAllowsUserCustomization:YES]; [self.toolbar setDelegate:self.toolbarDelegate]; [self.window setToolbar:self.toolbar]; @@ -102,15 +102,15 @@ typedef void (^MPPasswordChangedBlock)(void); [self.splitView setTranslatesAutoresizingMaskIntoConstraints:NO]; - NSView *outlineView = [_outlineViewController view]; - NSView *inspectorView = [_inspectorViewController view]; - NSView *entryView = [_entryViewController view]; - [_splitView addSubview:outlineView]; - [_splitView addSubview:entryView]; - [_splitView addSubview:inspectorView]; + NSView *outlineView = [self.outlineViewController view]; + NSView *inspectorView = [self.inspectorViewController view]; + NSView *entryView = [self.entryViewController view]; + [self.splitView addSubview:outlineView]; + [self.splitView addSubview:entryView]; + [self.splitView addSubview:inspectorView]; - [_splitView setHoldingPriority:NSLayoutPriorityDefaultLow+2 forSubviewAtIndex:0]; - [_splitView setHoldingPriority:NSLayoutPriorityDefaultLow+1 forSubviewAtIndex:2]; + [self.splitView setHoldingPriority:NSLayoutPriorityDefaultLow+2 forSubviewAtIndex:0]; + [self.splitView setHoldingPriority:NSLayoutPriorityDefaultLow+1 forSubviewAtIndex:2]; BOOL showInspector = [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeyShowInspector]; if(!showInspector) { @@ -124,7 +124,7 @@ typedef void (^MPPasswordChangedBlock)(void); [self showEntries]; } - [_splitView setAutosaveName:@"SplitView"]; + [self.splitView setAutosaveName:@"SplitView"]; } - (NSSearchField *)searchField { @@ -291,11 +291,11 @@ typedef void (^MPPasswordChangedBlock)(void); } - (void)createGroup:(id)sender { - [_outlineViewController createGroup:nil]; + [self.outlineViewController createGroup:nil]; } - (void)createEntry:(id)sender { - [_outlineViewController createEntry:nil]; + [self.outlineViewController createEntry:nil]; } - (void)pickIcon:(id)sender { @@ -307,14 +307,14 @@ typedef void (^MPPasswordChangedBlock)(void); } - (void)toggleInspector:(id)sender { - NSView *inspectorView = [_inspectorViewController view]; + NSView *inspectorView = [self.inspectorViewController view]; BOOL inspectorWasVisible = [self _isInspectorVisible]; if(inspectorWasVisible) { [inspectorView removeFromSuperview]; } else { - [_splitView addSubview:inspectorView]; - [_splitView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"[inspectorView(>=200)]" + [self.splitView addSubview:inspectorView]; + [self.splitView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"[inspectorView(>=200)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(inspectorView)]]; @@ -341,16 +341,16 @@ typedef void (^MPPasswordChangedBlock)(void); - (void)showEntries { NSView *contentView = [[self window] contentView]; - if(_splitView == contentView) { + if(self.splitView == contentView) { return; // We are displaying the entries already } if([[contentView subviews] count] == 1) { [[contentView subviews][0] removeFromSuperviewWithoutNeedingDisplay]; } - [contentView addSubview:_splitView]; - NSView *outlineView = [_outlineViewController view]; - NSView *inspectorView = [_inspectorViewController view]; - NSView *entryView = [_entryViewController view]; + [contentView addSubview:self.splitView]; + NSView *outlineView = [self.outlineViewController view]; + NSView *inspectorView = [self.inspectorViewController view]; + NSView *entryView = [self.entryViewController view]; /* The current easy way to prevent layout hickups is to add the inspect @@ -358,7 +358,7 @@ typedef void (^MPPasswordChangedBlock)(void); */ BOOL removeInspector = NO; if(![inspectorView superview]) { - [_splitView addSubview:inspectorView]; + [self.splitView addSubview:inspectorView]; removeInspector = YES; } /* Maybe we should consider not double adding constraints */ @@ -389,10 +389,10 @@ typedef void (^MPPasswordChangedBlock)(void); options:0 metrics:nil views:views]]; - [_entryViewController updateResponderChain]; - [_inspectorViewController updateResponderChain]; - [_outlineViewController updateResponderChain]; - [_outlineViewController showOutline]; + [self.entryViewController updateResponderChain]; + [self.inspectorViewController updateResponderChain]; + [self.outlineViewController updateResponderChain]; + [self.outlineViewController showOutline]; /* Restore the State the inspector view was in before the view change */ if(removeInspector) { @@ -453,7 +453,7 @@ typedef void (^MPPasswordChangedBlock)(void); } - (BOOL)_isInspectorVisible { - NSView *inspectorView = [_inspectorViewController view]; + NSView *inspectorView = [self.inspectorViewController view]; return (nil != [inspectorView superview]); } diff --git a/MacPass/MPDocumentWindowDelegate.m b/MacPass/MPDocumentWindowDelegate.m index e2fba53a..b2d6c302 100644 --- a/MacPass/MPDocumentWindowDelegate.m +++ b/MacPass/MPDocumentWindowDelegate.m @@ -77,4 +77,5 @@ } return ok; } + @end diff --git a/MacPass/MPEntryViewController.m b/MacPass/MPEntryViewController.m index 010fe38e..bc2e6be2 100644 --- a/MacPass/MPEntryViewController.m +++ b/MacPass/MPEntryViewController.m @@ -66,6 +66,7 @@ NSString *const _MPTAbleSecurCellView = @"PasswordCell"; @interface MPEntryViewController () { MPEntryContextMenuDelegate *_menuDelegate; BOOL _isDisplayingContextBar; + BOOL _showFooterInfo; } @property (strong) NSArrayController *entryArrayController; @@ -81,6 +82,8 @@ NSString *const _MPTAbleSecurCellView = @"PasswordCell"; @property (weak) IBOutlet HNHGradientView *bottomBar; @property (weak) IBOutlet NSButton *addEntryButton; +@property (weak) IBOutlet NSTextField *footerInfoText; + @property (nonatomic, strong) MPEntryTableDataSource *dataSource; @end @@ -188,6 +191,9 @@ NSString *const _MPTAbleSecurCellView = @"PasswordCell"; [self _setupHeaderMenu]; [parentColumn setHidden:YES]; + + [self.footerInfoText setHidden:!_showFooterInfo]; + [self.footerInfoText setStringValue:NSLocalizedString(@"DOCUMENT_AUTOTYPE_CORRUPTION_WARNING", "")]; } - (NSResponder *)reconmendedFirstResponder { @@ -217,6 +223,22 @@ NSString *const _MPTAbleSecurCellView = @"PasswordCell"; [self.contextBarViewController registerNotificationsForDocument:document]; + + /* Setup warning message at the bottom*/ + NSArray *array = [[NSUserDefaults standardUserDefaults] arrayForKey:kMPSettingsKeyDocumentsAutotypeFixNoteWasShown]; + NSString *path = [[document fileURL] path]; + if(!path) { + return; // No path, nothing to do + } + if(![array containsObject:path]) { + array = array ? [array arrayByAddingObject:path] : @[path]; + [[NSUserDefaults standardUserDefaults] setObject:array forKey:kMPSettingsKeyDocumentsAutotypeFixNoteWasShown]; + [[NSUserDefaults standardUserDefaults] synchronize]; + _showFooterInfo = YES; + } + else { + _showFooterInfo = NO; + } } #pragma mark NSTableViewDelgate diff --git a/MacPass/MPSettingsHelper.h b/MacPass/MPSettingsHelper.h index 8e0b3aad..2da111a3 100644 --- a/MacPass/MPSettingsHelper.h +++ b/MacPass/MPSettingsHelper.h @@ -50,6 +50,7 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyRememberKeyFilesForDatabases; APPKIT_EXTERN NSString *const kMPSettingsKeySendCommandForControlKey; APPKIT_EXTERN NSString *const kMPSettingsKeyEnableGlobalAutotype; APPKIT_EXTERN NSString *const kMPSettingsKeyGlobalAutotypeKeyKey; +APPKIT_EXTERN NSString *const kMPSettingsKeyDocumentsAutotypeFixNoteWasShown; /* Search */ APPKIT_EXTERN NSString *const kMPSettingsKeyEntrySearchFilterMode; diff --git a/MacPass/MPSettingsHelper.m b/MacPass/MPSettingsHelper.m index 353d0639..7bf0e44d 100644 --- a/MacPass/MPSettingsHelper.m +++ b/MacPass/MPSettingsHelper.m @@ -8,41 +8,42 @@ #import "MPSettingsHelper.h" -NSString *const kMPSettingsKeyPasteboardClearTimeout = @"ClipboardClearTimeout"; -NSString *const kMPSettingsKeyClearPasteboardOnQuit = @"ClearClipboardOnQuit"; -NSString *const kMPSettingsKeyDoubleClickURLToLaunch = @"DoubleClickURLToLaunch"; -NSString *const kMPSettingsKeyBrowserBundleId = @"BrowserBundleId"; -NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch = @"OpenEmptyDatabaseOnLaunch"; -NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch = @"ReopenLastDatabaseOnLaunch"; -NSString *const kMPSettingsKeyHttpPort = @"HttpPort"; -NSString *const kMPSettingsKeyEnableHttpServer = @"EnableHttpServer"; -NSString *const kMPSettingsKeyShowMenuItem = @"ShowMenuItem"; -NSString *const kMPSettingsKeyLockOnSleep = @"LockOnSleep"; -NSString *const kMPSettingsKeyIdleLockTimeOut = @"IdleLockTimeOut"; -NSString *const kMPSettingsKeyShowInspector = @"ShowInspector"; -NSString *const kMPSettingsKeyEntryTableSortDescriptors = @"EntryTableSortDescriptors"; +NSString *const kMPSettingsKeyPasteboardClearTimeout = @"ClipboardClearTimeout"; +NSString *const kMPSettingsKeyClearPasteboardOnQuit = @"ClearClipboardOnQuit"; +NSString *const kMPSettingsKeyDoubleClickURLToLaunch = @"DoubleClickURLToLaunch"; +NSString *const kMPSettingsKeyBrowserBundleId = @"BrowserBundleId"; +NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch = @"OpenEmptyDatabaseOnLaunch"; +NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch = @"ReopenLastDatabaseOnLaunch"; +NSString *const kMPSettingsKeyHttpPort = @"HttpPort"; +NSString *const kMPSettingsKeyEnableHttpServer = @"EnableHttpServer"; +NSString *const kMPSettingsKeyShowMenuItem = @"ShowMenuItem"; +NSString *const kMPSettingsKeyLockOnSleep = @"LockOnSleep"; +NSString *const kMPSettingsKeyIdleLockTimeOut = @"IdleLockTimeOut"; +NSString *const kMPSettingsKeyShowInspector = @"ShowInspector"; +NSString *const kMPSettingsKeyEntryTableSortDescriptors = @"EntryTableSortDescriptors"; -NSString *const kMPSettingsKeyLegacyHideTitle = @"LegacyHideTitle"; -NSString *const kMPSettingsKeyLegacyHideUsername = @"LegacyHideUsername "; -NSString *const kMPSettingsKeyLegacyHidePassword = @"LegacyHidePassword"; -NSString *const kMPSettingsKeyLegacyHideNotes = @"LegacyHideNotes"; -NSString *const kMPSettingsKeyLegacyHideURL = @"LegacyHideURL"; +NSString *const kMPSettingsKeyLegacyHideTitle = @"LegacyHideTitle"; +NSString *const kMPSettingsKeyLegacyHideUsername = @"LegacyHideUsername "; +NSString *const kMPSettingsKeyLegacyHidePassword = @"LegacyHidePassword"; +NSString *const kMPSettingsKeyLegacyHideNotes = @"LegacyHideNotes"; +NSString *const kMPSettingsKeyLegacyHideURL = @"LegacyHideURL"; -NSString *const kMPSettingsKeyLastDatabasePath = @"LastDatabasePath"; -NSString *const kMPSettingsKeyRememeberdKeysForDatabases = @"RememeberdKeysForDatabases"; -NSString *const kMPSettingsKeyRememberKeyFilesForDatabases = @"RememberKeyFilesForDatabases"; +NSString *const kMPSettingsKeyLastDatabasePath = @"LastDatabasePath"; +NSString *const kMPSettingsKeyRememeberdKeysForDatabases = @"RememeberdKeysForDatabases"; +NSString *const kMPSettingsKeyRememberKeyFilesForDatabases = @"RememberKeyFilesForDatabases"; -NSString *const kMPSettingsKeySendCommandForControlKey = @"SendCommandKeyForControlKey"; -NSString *const kMPSettingsKeyEnableGlobalAutotype = @"EnableGlobalAutotype"; -NSString *const kMPSettingsKeyGlobalAutotypeKeyKey = @"GlobalAutotypeKey"; +NSString *const kMPSettingsKeySendCommandForControlKey = @"SendCommandKeyForControlKey"; +NSString *const kMPSettingsKeyEnableGlobalAutotype = @"EnableGlobalAutotype"; +NSString *const kMPSettingsKeyGlobalAutotypeKeyKey = @"GlobalAutotypeKey"; +NSString *const kMPSettingsKeyDocumentsAutotypeFixNoteWasShown = @"DocumentsAutotypeFixNoteWasShown"; -NSString *const kMPSettingsKeyEntrySearchFilterMode = @"EntrySearchFilterMode"; +NSString *const kMPSettingsKeyEntrySearchFilterMode = @"EntrySearchFilterMode"; -NSString *const kMPSettingsKeyEnableQuicklookPreview = @"EnableQuicklookPreview"; +NSString *const kMPSettingsKeyEnableQuicklookPreview = @"EnableQuicklookPreview"; -NSString *const kMPSettingsKeyCopyGeneratedPasswordToClipboard = @"CopyGeneratedPasswordToClipboard"; +NSString *const kMPSettingsKeyCopyGeneratedPasswordToClipboard = @"CopyGeneratedPasswordToClipboard"; -NSString *const kMPSettingsKeyDefaultPasswordRounds = @"KeyDefaultPasswordRounds"; +NSString *const kMPSettingsKeyDefaultPasswordRounds = @"KeyDefaultPasswordRounds"; @implementation MPSettingsHelper diff --git a/MacPass/de.lproj/Localizable.strings b/MacPass/de.lproj/Localizable.strings index d21fed7c..3789a410 100644 Binary files a/MacPass/de.lproj/Localizable.strings and b/MacPass/de.lproj/Localizable.strings differ diff --git a/MacPass/de.lproj/MainMenu.strings b/MacPass/de.lproj/MainMenu.strings index b2869c17..8667561b 100644 --- a/MacPass/de.lproj/MainMenu.strings +++ b/MacPass/de.lproj/MainMenu.strings @@ -1,15 +1,15 @@ /* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "5"; */ -"5.title" = "Bring All to Front"; +"5.title" = "Alle nach vorne bringen"; /* Class = "NSMenuItem"; title = "Window"; ObjectID = "19"; */ -"19.title" = "Window"; +"19.title" = "Fenster"; /* Class = "NSMenuItem"; title = "Minimize"; ObjectID = "23"; */ -"23.title" = "Minimize"; +"23.title" = "Im Dock ablegen"; /* Class = "NSMenu"; title = "Window"; ObjectID = "24"; */ -"24.title" = "Window"; +"24.title" = "Fenster"; /* Class = "NSMenu"; title = "AMainMenu"; ObjectID = "29"; */ "29.title" = "AMainMenu"; @@ -21,103 +21,103 @@ "57.title" = "MacPass"; /* Class = "NSMenuItem"; title = "About MacPass"; ObjectID = "58"; */ -"58.title" = "About MacPass"; +"58.title" = "Über MacPass"; /* Class = "NSMenuItem"; title = "Open…"; ObjectID = "72"; */ -"72.title" = "Open…"; +"72.title" = "Öffnen…"; /* Class = "NSMenuItem"; title = "Close"; ObjectID = "73"; */ -"73.title" = "Close"; +"73.title" = "Schließen"; /* Class = "NSMenuItem"; title = "Save…"; ObjectID = "75"; */ -"75.title" = "Save…"; +"75.title" = "Sichern…"; /* Class = "NSMenu"; title = "File"; ObjectID = "81"; */ -"81.title" = "File"; +"81.title" = "Ablage"; /* Class = "NSMenuItem"; title = "New"; ObjectID = "82"; */ -"82.title" = "New"; +"82.title" = "Neu"; /* Class = "NSMenuItem"; title = "File"; ObjectID = "83"; */ -"83.title" = "File"; +"83.title" = "Ablage"; /* Class = "NSMenuItem"; title = "Revert to Saved"; ObjectID = "112"; */ -"112.title" = "Revert to Saved"; +"112.title" = "Alle Änderungen verwerfen"; /* Class = "NSMenuItem"; title = "Open Recent"; ObjectID = "124"; */ -"124.title" = "Open Recent"; +"124.title" = "Benutzte Dokumente"; /* Class = "NSMenu"; title = "Open Recent"; ObjectID = "125"; */ -"125.title" = "Open Recent"; +"125.title" = "Benutzte Dokumente"; /* Class = "NSMenuItem"; title = "Clear Menu"; ObjectID = "126"; */ -"126.title" = "Clear Menu"; +"126.title" = "Einträge löschen"; /* Class = "NSMenuItem"; title = "Preferences…"; ObjectID = "129"; */ -"129.title" = "Preferences…"; +"129.title" = "Einstellungen…"; /* Class = "NSMenu"; title = "Services"; ObjectID = "130"; */ -"130.title" = "Services"; +"130.title" = "Dienste"; /* Class = "NSMenuItem"; title = "Services"; ObjectID = "131"; */ -"131.title" = "Services"; +"131.title" = "Dienste"; /* Class = "NSMenuItem"; title = "Hide MacPass"; ObjectID = "134"; */ -"134.title" = "Hide MacPass"; +"134.title" = "MacPass ausblenden"; /* Class = "NSMenuItem"; title = "Quit MacPass"; ObjectID = "136"; */ -"136.title" = "Quit MacPass"; +"136.title" = "MacPass beenden"; /* Class = "NSMenuItem"; title = "Hide Others"; ObjectID = "145"; */ -"145.title" = "Hide Others"; +"145.title" = "Andere ausblenden"; /* Class = "NSMenuItem"; title = "Show All"; ObjectID = "150"; */ -"150.title" = "Show All"; +"150.title" = "Alle einblenden"; /* Class = "NSMenuItem"; title = "Copy"; ObjectID = "197"; */ -"197.title" = "Copy"; +"197.title" = "Kopieren"; /* Class = "NSMenuItem"; title = "Select All"; ObjectID = "198"; */ -"198.title" = "Select All"; +"198.title" = "Alles auswählen"; /* Class = "NSMenuItem"; title = "Cut"; ObjectID = "199"; */ -"199.title" = "Cut"; +"199.title" = "Ausschneiden"; /* Class = "NSMenuItem"; title = "Delete"; ObjectID = "202"; */ -"202.title" = "Delete"; +"202.title" = "Löschen"; /* Class = "NSMenuItem"; title = "Paste"; ObjectID = "203"; */ -"203.title" = "Paste"; +"203.title" = "Einsetzen"; /* Class = "NSMenu"; title = "Edit"; ObjectID = "205"; */ -"205.title" = "Edit"; +"205.title" = "Bearbeiten"; /* Class = "NSMenuItem"; title = "Undo"; ObjectID = "207"; */ -"207.title" = "Undo"; +"207.title" = "Widerrufen"; /* Class = "NSMenuItem"; title = "Find…"; ObjectID = "209"; */ -"209.title" = "Find…"; +"209.title" = "Suchen…"; /* Class = "NSMenuItem"; title = "Redo"; ObjectID = "215"; */ -"215.title" = "Redo"; +"215.title" = "Wiederholen"; /* Class = "NSMenuItem"; title = "Edit"; ObjectID = "217"; */ -"217.title" = "Edit"; +"217.title" = "Bearbeiten"; /* Class = "NSMenuItem"; title = "Zoom"; ObjectID = "239"; */ -"239.title" = "Zoom"; +"239.title" = "Zoomen"; /* Class = "NSMenuItem"; title = "View"; ObjectID = "295"; */ -"295.title" = "View"; +"295.title" = "Darstellung"; /* Class = "NSMenu"; title = "View"; ObjectID = "296"; */ -"296.title" = "View"; +"296.title" = "Darstellung"; /* Class = "NSMenuItem"; title = "Show Toolbar"; ObjectID = "297"; */ -"297.title" = "Show Toolbar"; +"297.title" = "Symbolleiste anzeigen"; /* Class = "NSMenuItem"; title = "Customize Toolbar…"; ObjectID = "298"; */ -"298.title" = "Customize Toolbar…"; +"298.title" = "Symbolleiste anpassen…"; /* Class = "NSMenuItem"; title = "Help"; ObjectID = "490"; */ "490.title" = "Hilfe"; @@ -126,16 +126,46 @@ "491.title" = "Hilfe"; /* Class = "NSMenuItem"; title = "MacPass Help"; ObjectID = "492"; */ -"492.title" = "MacPass Hilfe"; +"492.title" = "MacPass-Hilfe"; /* Class = "NSMenuItem"; title = "Toggle Inspector"; ObjectID = "1181"; */ -"1181.title" = "Inspector umschalten"; +"1181.title" = "Inspector ein/ausblenden"; /* Class = "NSMenuItem"; title = "Show Password Creator"; ObjectID = "1200"; */ -"1200.title" = "Passwortgenerator"; +"1200.title" = "Passwortwerkzeug anzeigen"; /* Class = "NSMenuItem"; title = "Change Master Password…"; ObjectID = "1203"; */ "1203.title" = "Hauptpassword ändern…"; /* Class = "NSMenuItem"; title = "Database Settings…"; ObjectID = "1231"; */ "1231.title" = "Datenbankeinstellungen…"; + +/* Class = "NSMenuItem"; title = "Save As…"; ObjectID = "1243"; */ +"1243.title" = "Sichern unter…"; + +/* Class = "NSMenuItem"; title = "Export As XML…"; ObjectID = "1259"; */ +"1259.title" = "Als XML exportieren…"; + +/* Class = "NSMenuItem"; title = "Lock"; ObjectID = "1261"; */ +"1261.title" = "Verschließen"; + +/* Class = "NSMenuItem"; title = "Focus Entries"; ObjectID = "2VP-vB-IeX"; */ +"2VP-vB-IeX.title" = "Einträge fokusieren"; + +/* Class = "NSMenuItem"; title = "Focus Groups"; ObjectID = "HxM-dV-LIH"; */ +"HxM-dV-LIH.title" = "Gruppen fokusieren"; + +/* Class = "NSMenuItem"; title = "Focus Inspector"; ObjectID = "Zje-Me-5c8"; */ +"Zje-Me-5c8.title" = "Inspektor fokusieren"; + +/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "aVO-9F-Lwc"; */ +"aVO-9F-Lwc.title" = "Quicklook"; + +/* Class = "NSMenuItem"; title = "Fix Autotype…"; ObjectID = "nx7-Vf-LiD"; */ +"nx7-Vf-LiD.title" = "Autotype korrigieren…"; + +/* Class = "NSMenuItem"; title = "Import XML…"; ObjectID = "rW0-r1-QYL"; */ +"rW0-r1-QYL.title" = "XML importieren…"; + +/* Class = "NSMenuItem"; title = "Check for Updates…"; ObjectID = "zMO-8r-g5v"; */ +"zMO-8r-g5v.title" = "Nach Updates suchen…"; diff --git a/MacPass/en.lproj/Localizable.strings b/MacPass/en.lproj/Localizable.strings index d9bc7547..4ad1ae01 100644 Binary files a/MacPass/en.lproj/Localizable.strings and b/MacPass/en.lproj/Localizable.strings differ diff --git a/MacPass/en.lproj/MainMenu.strings b/MacPass/en.lproj/MainMenu.strings index f31b45c9..850adee4 100644 --- a/MacPass/en.lproj/MainMenu.strings +++ b/MacPass/en.lproj/MainMenu.strings @@ -139,3 +139,33 @@ /* Class = "NSMenuItem"; title = "Database Settings…"; ObjectID = "1231"; */ "1231.title" = "Database Settings…"; + +/* Class = "NSMenuItem"; title = "Save As…"; ObjectID = "1243"; */ +"1243.title" = "Save As…"; + +/* Class = "NSMenuItem"; title = "Export As XML…"; ObjectID = "1259"; */ +"1259.title" = "Export As XML…"; + +/* Class = "NSMenuItem"; title = "Lock"; ObjectID = "1261"; */ +"1261.title" = "Lock"; + +/* Class = "NSMenuItem"; title = "Focus Entries"; ObjectID = "2VP-vB-IeX"; */ +"2VP-vB-IeX.title" = "Focus Entries"; + +/* Class = "NSMenuItem"; title = "Focus Groups"; ObjectID = "HxM-dV-LIH"; */ +"HxM-dV-LIH.title" = "Focus Groups"; + +/* Class = "NSMenuItem"; title = "Focus Inspector"; ObjectID = "Zje-Me-5c8"; */ +"Zje-Me-5c8.title" = "Focus Inspector"; + +/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "aVO-9F-Lwc"; */ +"aVO-9F-Lwc.title" = "Quicklook"; + +/* Class = "NSMenuItem"; title = "Fix Autotype…"; ObjectID = "nx7-Vf-LiD"; */ +"nx7-Vf-LiD.title" = "Fix Autotype…"; + +/* Class = "NSMenuItem"; title = "Import XML…"; ObjectID = "rW0-r1-QYL"; */ +"rW0-r1-QYL.title" = "Import XML…"; + +/* Class = "NSMenuItem"; title = "Check for Updates…"; ObjectID = "zMO-8r-g5v"; */ +"zMO-8r-g5v.title" = "Check for Updates…"; diff --git a/MacPass/fr.lproj/Localizable.strings b/MacPass/fr.lproj/Localizable.strings index 128b2922..c1156b99 100644 Binary files a/MacPass/fr.lproj/Localizable.strings and b/MacPass/fr.lproj/Localizable.strings differ diff --git a/MacPass/nl.lproj/Localizable.strings b/MacPass/nl.lproj/Localizable.strings index 91cc7669..c6580d89 100644 Binary files a/MacPass/nl.lproj/Localizable.strings and b/MacPass/nl.lproj/Localizable.strings differ diff --git a/MacPass/zh-Hans.lproj/Localizable.strings b/MacPass/zh-Hans.lproj/Localizable.strings index 136b6f90..078c9e02 100644 --- a/MacPass/zh-Hans.lproj/Localizable.strings +++ b/MacPass/zh-Hans.lproj/Localizable.strings @@ -99,6 +99,9 @@ "COPY_URL" = "拷贝 URL"; "COPY_USERNAME" = "拷贝用户名"; +/* Dock Badge */ +"CLEARING_PASTEBOARD" = "…"; + /* Date/Time Displays @@ -144,8 +147,6 @@ /* Autoype Dialog */ "SELECT_AUTOTYPE_CANDIDATE" = "选择候选!"; -/* Mask to create autotype entries for selection by the user. %1 Title %2 Username %3 Password %4 Sequence */ -"TITLE_%@_USERNAME_%@_PASSWORD_%@_AUTOTYPE_SEQUENCE_%@" = "%@: 用户名:%@ 密码:%@ 序列:%@"; /* Alert Dialogs */ "WARNING_ON_EMPTY_TRASH_DESCRIPTION" = "清空废纸篓无法撤销"; @@ -163,3 +164,6 @@ "ERROR_PASSWORD_MISSMATCH_INVALID_KEYFILE" = "密码和密钥文件不正确!"; "ERROR_PASSWORD_MISSMATCH" = "密码不正确!"; "ERROR_INVALID_KEYFILE" = "密钥文件不正确!"; + +/* Misc */ +"DOCUMENT_AUTOTYPE_CORRUPTION_WARNING" = "Please run Fix Autotype...";