mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-13 08:52:20 +00:00
Added spanish localization. Extended english and german localization.
This commit is contained in:
@@ -413,6 +413,28 @@
|
||||
4C3C4EAD18D7039300153127 /* MPValueTransformerHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPValueTransformerHelper.h; sourceTree = "<group>"; };
|
||||
4C3C4EAE18D7039300153127 /* MPValueTransformerHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPValueTransformerHelper.m; sourceTree = "<group>"; };
|
||||
4C3FFD9D16DAF60600DF9186 /* ContextBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ContextBar.xib; sourceTree = "<group>"; };
|
||||
4C4161021F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatabaseSettingsWindow.strings; sourceTree = "<group>"; };
|
||||
4C4161031F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PasswordEditWindow.strings; sourceTree = "<group>"; };
|
||||
4C4161041F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/GeneralSettings.strings; sourceTree = "<group>"; };
|
||||
4C4161051F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/IntegrationSettings.strings; sourceTree = "<group>"; };
|
||||
4C4161061F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/WorkflowSettings.strings; sourceTree = "<group>"; };
|
||||
4C4161071F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/UpdateSettings.strings; sourceTree = "<group>"; };
|
||||
4C4161081F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PluginSettings.strings; sourceTree = "<group>"; };
|
||||
4C4161091F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InspectorView.strings; sourceTree = "<group>"; };
|
||||
4C41610A1F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/GroupInspectorView.strings; sourceTree = "<group>"; };
|
||||
4C41610B1F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/EntryInspectorView.strings; sourceTree = "<group>"; };
|
||||
4C41610C1F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PasswordInputView.strings; sourceTree = "<group>"; };
|
||||
4C41610D1F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PasswordCreatorView.strings; sourceTree = "<group>"; };
|
||||
4C41610E1F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/IconSelection.strings; sourceTree = "<group>"; };
|
||||
4C41610F1F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatePickingView.strings; sourceTree = "<group>"; };
|
||||
4C4161101F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/ReferenceBuilderView.strings; sourceTree = "<group>"; };
|
||||
4C4161111F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/WelcomeWindow.strings; sourceTree = "<group>"; };
|
||||
4C4161121F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/MainMenu.strings; sourceTree = "<group>"; };
|
||||
4C4161131F50333C003BC0AF /* es */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
4C4161141F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = es; path = es.lproj/Credits.rtf; sourceTree = "<group>"; };
|
||||
4C4161151F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
4C4161161F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/KPKLocalizable.strings; sourceTree = "<group>"; };
|
||||
4C4161171F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
4C431BCB16E2A82700700A81 /* MPPasteBoardController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasteBoardController.h; sourceTree = "<group>"; };
|
||||
4C431BCC16E2A82700700A81 /* MPPasteBoardController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasteBoardController.m; sourceTree = "<group>"; };
|
||||
4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OverlayWindow.xib; sourceTree = "<group>"; };
|
||||
@@ -1529,6 +1551,7 @@
|
||||
ru,
|
||||
it,
|
||||
pl,
|
||||
es,
|
||||
);
|
||||
mainGroup = 4C77E35715B84A240093A587;
|
||||
productRefGroup = 4C77E36315B84A240093A587 /* Products */;
|
||||
@@ -1840,6 +1863,7 @@
|
||||
713F9B481C95CEA000605880 /* fr */,
|
||||
4C840C4B1D773E5E0081F605 /* pl */,
|
||||
60ECAD221F12231B00EA9DB3 /* zh-Hans */,
|
||||
4C4161081F50333B003BC0AF /* es */,
|
||||
);
|
||||
name = PluginSettings.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -1854,6 +1878,7 @@
|
||||
FA638D231C39BFCC00B10CC6 /* ru */,
|
||||
4825CC961C414D58003E37E9 /* it */,
|
||||
4C840C551D773E6B0081F605 /* pl */,
|
||||
4C4161171F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
@@ -1868,6 +1893,7 @@
|
||||
BD6C366619484CF40089EB37 /* nl */,
|
||||
FA638D221C39BFCC00B10CC6 /* ru */,
|
||||
4825CC951C414D58003E37E9 /* it */,
|
||||
4C4161161F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = KPKLocalizable.strings;
|
||||
sourceTree = "<group>";
|
||||
@@ -1884,6 +1910,7 @@
|
||||
FA638D1C1C39BFCC00B10CC6 /* ru */,
|
||||
4825CC8F1C414D58003E37E9 /* it */,
|
||||
4C840C521D773E5E0081F605 /* pl */,
|
||||
4C41610E1F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = IconSelection.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -1900,6 +1927,7 @@
|
||||
FA638D111C39BFCB00B10CC6 /* ru */,
|
||||
4825CC841C414D57003E37E9 /* it */,
|
||||
4C840C471D773E5D0081F605 /* pl */,
|
||||
4C4161041F50333B003BC0AF /* es */,
|
||||
);
|
||||
name = GeneralSettings.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -1916,6 +1944,7 @@
|
||||
FA638D171C39BFCC00B10CC6 /* ru */,
|
||||
4825CC8A1C414D57003E37E9 /* it */,
|
||||
4C840C4D1D773E5E0081F605 /* pl */,
|
||||
4C41610C1F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = PasswordInputView.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -1932,6 +1961,7 @@
|
||||
FA638D191C39BFCC00B10CC6 /* ru */,
|
||||
4825CC8C1C414D58003E37E9 /* it */,
|
||||
4C840C4F1D773E5E0081F605 /* pl */,
|
||||
4C4161091F50333B003BC0AF /* es */,
|
||||
);
|
||||
name = InspectorView.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -1946,6 +1976,7 @@
|
||||
BD6C366519484CF40089EB37 /* nl */,
|
||||
FA638D211C39BFCC00B10CC6 /* ru */,
|
||||
4825CC941C414D58003E37E9 /* it */,
|
||||
4C4161151F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
@@ -1962,6 +1993,7 @@
|
||||
FA638D161C39BFCC00B10CC6 /* ru */,
|
||||
4825CC891C414D57003E37E9 /* it */,
|
||||
4C840C4C1D773E5E0081F605 /* pl */,
|
||||
4C4161121F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = MainMenu.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -1978,6 +2010,7 @@
|
||||
FA638D101C39BFCB00B10CC6 /* ru */,
|
||||
4825CC831C414D57003E37E9 /* it */,
|
||||
4C840C461D773E5D0081F605 /* pl */,
|
||||
4C4161111F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = WelcomeWindow.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -1993,6 +2026,7 @@
|
||||
FA638D1F1C39BFCC00B10CC6 /* ru */,
|
||||
4825CC921C414D58003E37E9 /* it */,
|
||||
4C43B02F1E266A3A000CB4D7 /* pl */,
|
||||
4C4161131F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
@@ -2008,6 +2042,7 @@
|
||||
FA638D201C39BFCC00B10CC6 /* ru */,
|
||||
4825CC931C414D58003E37E9 /* it */,
|
||||
4C43B0301E266A41000CB4D7 /* pl */,
|
||||
4C4161141F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = Credits.rtf;
|
||||
sourceTree = "<group>";
|
||||
@@ -2019,6 +2054,7 @@
|
||||
FA638D1E1C39BFCC00B10CC6 /* ru */,
|
||||
4825CC911C414D58003E37E9 /* it */,
|
||||
4C840C541D773E5E0081F605 /* pl */,
|
||||
4C4161101F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = ReferenceBuilderView.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -2035,6 +2071,7 @@
|
||||
FA638D1B1C39BFCC00B10CC6 /* ru */,
|
||||
4825CC8E1C414D58003E37E9 /* it */,
|
||||
4C840C511D773E5E0081F605 /* pl */,
|
||||
4C41610B1F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = EntryInspectorView.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -2051,6 +2088,7 @@
|
||||
FA638D1A1C39BFCC00B10CC6 /* ru */,
|
||||
4825CC8D1C414D58003E37E9 /* it */,
|
||||
4C840C501D773E5E0081F605 /* pl */,
|
||||
4C41610A1F50333B003BC0AF /* es */,
|
||||
);
|
||||
name = GroupInspectorView.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -2067,6 +2105,7 @@
|
||||
4825CC851C414D57003E37E9 /* it */,
|
||||
4C840C481D773E5D0081F605 /* pl */,
|
||||
60ECAD271F12262400EA9DB3 /* zh-Hans */,
|
||||
4C4161051F50333B003BC0AF /* es */,
|
||||
);
|
||||
name = IntegrationSettings.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -2083,6 +2122,7 @@
|
||||
4825CC861C414D57003E37E9 /* it */,
|
||||
4C840C491D773E5D0081F605 /* pl */,
|
||||
60ECAD251F12253C00EA9DB3 /* zh-Hans */,
|
||||
4C4161061F50333B003BC0AF /* es */,
|
||||
);
|
||||
name = WorkflowSettings.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -2099,6 +2139,7 @@
|
||||
FA638D141C39BFCC00B10CC6 /* ru */,
|
||||
4825CC871C414D57003E37E9 /* it */,
|
||||
4C840C4A1D773E5D0081F605 /* pl */,
|
||||
4C4161071F50333B003BC0AF /* es */,
|
||||
);
|
||||
name = UpdateSettings.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -2115,6 +2156,7 @@
|
||||
FA638D1D1C39BFCC00B10CC6 /* ru */,
|
||||
4825CC901C414D58003E37E9 /* it */,
|
||||
4C840C531D773E5E0081F605 /* pl */,
|
||||
4C41610F1F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = DatePickingView.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -2131,6 +2173,7 @@
|
||||
FA638D0F1C39BFCB00B10CC6 /* ru */,
|
||||
4825CC821C414D57003E37E9 /* it */,
|
||||
4C840C451D773E5D0081F605 /* pl */,
|
||||
4C4161031F50333B003BC0AF /* es */,
|
||||
);
|
||||
name = PasswordEditWindow.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -2147,6 +2190,7 @@
|
||||
FA638D181C39BFCC00B10CC6 /* ru */,
|
||||
4825CC8B1C414D57003E37E9 /* it */,
|
||||
4C840C4E1D773E5E0081F605 /* pl */,
|
||||
4C41610D1F50333C003BC0AF /* es */,
|
||||
);
|
||||
name = PasswordCreatorView.xib;
|
||||
sourceTree = "<group>";
|
||||
@@ -2163,6 +2207,7 @@
|
||||
FA638D0E1C39BFCB00B10CC6 /* ru */,
|
||||
4825CC811C414D57003E37E9 /* it */,
|
||||
4C840C441D773E5D0081F605 /* pl */,
|
||||
4C4161021F50333B003BC0AF /* es */,
|
||||
);
|
||||
name = DatabaseSettingsWindow.xib;
|
||||
sourceTree = "<group>";
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
<connections>
|
||||
<outlet property="clearPasteboardOnQuitCheckButton" destination="447" id="520"/>
|
||||
<outlet property="clearPasteboardTimeoutPopup" destination="419" id="521"/>
|
||||
<outlet property="fileChangeStrategyPopup" destination="wIu-Sh-2a2" id="oJo-dA-lEE"/>
|
||||
<outlet property="idleTimeOutPopup" destination="584" id="809"/>
|
||||
<outlet property="lockOnLogoutCheckButton" destination="5SP-Vi-1sn" id="yaI-LH-R5A"/>
|
||||
<outlet property="lockOnSleepCheckButton" destination="630" id="810"/>
|
||||
@@ -168,7 +169,7 @@
|
||||
<constraint firstItem="447" firstAttribute="top" secondItem="431" secondAttribute="bottom" constant="8" symbolic="YES" id="zkd-Hf-09b"/>
|
||||
</constraints>
|
||||
</box>
|
||||
<box autoresizesSubviews="NO" verticalHuggingPriority="500" borderType="line" title="Startup" translatesAutoresizingMaskIntoConstraints="NO" id="888">
|
||||
<box autoresizesSubviews="NO" verticalHuggingPriority="500" borderType="line" title="File Handling" translatesAutoresizingMaskIntoConstraints="NO" id="888">
|
||||
<rect key="frame" x="17" y="286" width="366" height="85"/>
|
||||
<view key="contentView" id="cpg-tt-SHE">
|
||||
<rect key="frame" x="1" y="1" width="364" height="69"/>
|
||||
@@ -182,25 +183,19 @@
|
||||
</buttonCell>
|
||||
</button>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h3w-Ms-ohK">
|
||||
<rect key="frame" x="16" y="20" width="207" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="On external changes to open files" id="QrK-hM-Xt1">
|
||||
<rect key="frame" x="16" y="20" width="93" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="If file changes:" id="QrK-hM-Xt1">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" horizontalCompressionResistancePriority="749" translatesAutoresizingMaskIntoConstraints="NO" id="wIu-Sh-2a2">
|
||||
<rect key="frame" x="227" y="14" width="120" height="26"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Merge changes" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="dbY-3j-eJU" id="1R2-5t-LWk">
|
||||
<rect key="frame" x="113" y="13" width="234" height="26"/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="1R2-5t-LWk">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="DQY-17-yKP">
|
||||
<items>
|
||||
<menuItem title="Merge changes" state="on" id="dbY-3j-eJU"/>
|
||||
<menuItem title="Keep other" id="T1Y-M5-MlZ"/>
|
||||
<menuItem title="Keep mine" id="BQb-L1-z8Y"/>
|
||||
</items>
|
||||
</menu>
|
||||
<menu key="menu" id="DQY-17-yKP"/>
|
||||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
</subviews>
|
||||
|
||||
@@ -79,7 +79,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou
|
||||
@property (strong) IBOutlet NSView *warningView;
|
||||
@property (weak) IBOutlet NSImageView *warningViewImage;
|
||||
|
||||
@property (assign) BOOL lockedForFileChange;
|
||||
@property (atomic, assign) BOOL lockedForFileChange;
|
||||
|
||||
@end
|
||||
|
||||
@@ -288,35 +288,55 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou
|
||||
/* Dispatch the alert to the main queue */
|
||||
__weak MPDocument *welf = self;
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
|
||||
MPFileChangeStrategy strategy = (MPFileChangeStrategy)[NSUserDefaults.standardUserDefaults integerForKey:kMPSettingsKeyFileChangeStrategy];
|
||||
if(strategy != MPFileChangeStrategyAsk) {
|
||||
[welf _handleFileChangeWithStrategy:strategy setAsDefault:NO];
|
||||
self.lockedForFileChange = NO;
|
||||
return;
|
||||
}
|
||||
NSAlert *alert = [[NSAlert alloc] init];
|
||||
alert.alertStyle = NSWarningAlertStyle;
|
||||
alert.messageText = NSLocalizedString(@"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT", @"Message displayed when an open file was changed from another application");
|
||||
alert.informativeText = NSLocalizedString(@"FILE_CHANGED_BY_OTHERS_INFO_TEXT", @"Informative text displayed when the file was change from another application");
|
||||
[alert addButtonWithTitle:NSLocalizedString(@"MERGE_CHANGES", @"Merge changes into file!")];
|
||||
[alert addButtonWithTitle:NSLocalizedString(@"LOAD_CHANGES", @"Reopen the file!")];
|
||||
[alert addButtonWithTitle:NSLocalizedString(@"KEEP_MINE", @"Ignore the changes to an open file!")];
|
||||
alert.showsSuppressionButton = YES;
|
||||
alert.suppressionButton.title = NSLocalizedString(@"SET_AS_DEFAULT_FILE_CHANGE_STRATEGY", @"Set the selection as default file change strategy!");
|
||||
[alert addButtonWithTitle:NSLocalizedString(@"FILE_CHANGE_STRATEGY_MERGE", @"Merge changes into file!")];
|
||||
[alert addButtonWithTitle:NSLocalizedString(@"FILE_CHANGE_STRATEGY_USE_OTHER", @"Reopen the file!")];
|
||||
[alert addButtonWithTitle:NSLocalizedString(@"FILE_CHANGE_STRATEGY_KEEP_MINE", @"Ignore the changes to an open file!")];
|
||||
[alert beginSheetModalForWindow:welf.windowForSheet completionHandler:^(NSModalResponse returnCode) {
|
||||
|
||||
welf.lockedForFileChange = NO;
|
||||
|
||||
BOOL useAsDefault = (alert.suppressionButton.state == NSOnState);
|
||||
switch(returnCode) {
|
||||
case NSAlertFirstButtonReturn: {
|
||||
[welf mergeWithContentsFromURL:self.fileURL];
|
||||
[welf _handleFileChangeWithStrategy:MPFileChangeStrategyMerge setAsDefault:useAsDefault];
|
||||
break;
|
||||
}
|
||||
case NSAlertSecondButtonReturn:
|
||||
[welf revertToContentsOfURL:welf.fileURL ofType:welf.fileType error:nil];
|
||||
[welf _handleFileChangeWithStrategy:MPFileChangeStrategyUseOther setAsDefault:useAsDefault];
|
||||
break;
|
||||
case NSAlertThirdButtonReturn:
|
||||
// do not change anything
|
||||
[welf _handleFileChangeWithStrategy:MPFileChangeStrategyKeepMine setAsDefault:useAsDefault];
|
||||
default:
|
||||
break;
|
||||
}
|
||||
welf.lockedForFileChange = NO;
|
||||
}];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)_handleFileChangeWithStrategy:(MPFileChangeStrategy)strategy setAsDefault:(BOOL)setAsDefault {
|
||||
if(setAsDefault) {
|
||||
[NSUserDefaults.standardUserDefaults setInteger:strategy forKey:kMPSettingsKeyFileChangeStrategy];
|
||||
}
|
||||
|
||||
if(strategy == MPFileChangeStrategyMerge) {
|
||||
[self mergeWithContentsFromURL:self.fileURL];
|
||||
}
|
||||
else if(strategy == MPFileChangeStrategyUseOther) {
|
||||
[self revertToContentsOfURL:self.fileURL ofType:self.fileType error:nil];
|
||||
}
|
||||
// else do nothing!
|
||||
}
|
||||
|
||||
- (void)writeXMLToURL:(NSURL *)url {
|
||||
NSData *xmlData = [self.tree xmlData];
|
||||
NSError *error;
|
||||
@@ -356,6 +376,10 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou
|
||||
[self saveDocument] is enqued so that dataOfType is called too late to actually save teh database.
|
||||
hence we need to get the ok from the NSDocument about the save, otherwise the lock fails!
|
||||
*/
|
||||
if(self.lockedForFileChange) {
|
||||
// we have user interaction that cannot be dismissed, instead ignore locking!
|
||||
return;
|
||||
}
|
||||
[self saveDocumentWithDelegate:self didSaveSelector:@selector(_lockDatabaseForDocument:didSave:contextInfo:) contextInfo:NULL];
|
||||
}
|
||||
|
||||
|
||||
@@ -20,5 +20,6 @@
|
||||
@property (weak) IBOutlet NSButton *reopenLastDatabase;
|
||||
@property (weak) IBOutlet NSButton *createUntitledOnActivation;
|
||||
@property (weak) IBOutlet NSButton *rememberKeyFileCheckButton;
|
||||
@property (weak) IBOutlet NSPopUpButton *fileChangeStrategyPopup;
|
||||
|
||||
@end
|
||||
|
||||
@@ -40,8 +40,21 @@ NSString *const MPGeneralSetingsIdentifier = @"GeneralSettingsTab";
|
||||
[self.idleTimeOutPopup bind:NSSelectedTagBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyIdleLockTimeOut] options:nil];
|
||||
[self.reopenLastDatabase bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyReopenLastDatabaseOnLaunch] options:nil];
|
||||
[self.rememberKeyFileCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyRememberKeyFilesForDatabases] options:nil];
|
||||
[self.createUntitledOnActivation setState:NSOffState]; //kMPSettingsKeyOpenEmptyDatabaseOnLaunch
|
||||
|
||||
/* File Change Strategy Menu */
|
||||
NSDictionary *fileChangeStragegyDict = @{ @(MPFileChangeStrategyAsk) : NSLocalizedString(@"FILE_CHANGE_STRATEGY_ASK", @""),
|
||||
@(MPFileChangeStrategyUseOther) : NSLocalizedString(@"FILE_CHANGE_STRATEGY_USE_OTHER", @""),
|
||||
@(MPFileChangeStrategyKeepMine) : NSLocalizedString(@"FILE_CHANGE_STRATEGY_KEEP_MINE", @""),
|
||||
@(MPFileChangeStrategyMerge) : NSLocalizedString(@"FILE_CHANGE_STRATEGY_MERGE", @""),
|
||||
};
|
||||
[self.fileChangeStrategyPopup.menu removeAllItems];
|
||||
for(NSNumber *key in fileChangeStragegyDict) {
|
||||
NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:fileChangeStragegyDict[key] action:NULL keyEquivalent:@""];
|
||||
item.tag = key.integerValue;
|
||||
[self.fileChangeStrategyPopup.menu addItem:item];
|
||||
}
|
||||
[self.fileChangeStrategyPopup bind:NSSelectedTagBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyFileChangeStrategy] options:nil];
|
||||
|
||||
[self.createUntitledOnActivation setState:NSOffState];
|
||||
//kMPSettingsKeyOpenEmptyDatabaseOnLaunch
|
||||
}
|
||||
@end
|
||||
|
||||
@@ -16,6 +16,7 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyClearPasteboardOnQuit;
|
||||
APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordEncoding;
|
||||
APPKIT_EXTERN NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch;
|
||||
APPKIT_EXTERN NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch;
|
||||
APPKIT_EXTERN NSString *const kMPSettingsKeyFileChangeStrategy;
|
||||
|
||||
/* URL handling */
|
||||
APPKIT_EXTERN NSString *const kMPSettingsKeyBrowserBundleId;
|
||||
@@ -65,6 +66,13 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyUpdatePasswordOnTemplateEntries;
|
||||
/* Plugins */
|
||||
APPKIT_EXTERN NSString *const kMPSettingsKeyLoadUnsecurePlugins; // If set to YES this will load all plugins regardless of their codesignature status
|
||||
|
||||
typedef NS_ENUM(NSUInteger, MPFileChangeStrategy) {
|
||||
MPFileChangeStrategyAsk,
|
||||
MPFileChangeStrategyKeepMine,
|
||||
MPFileChangeStrategyUseOther,
|
||||
MPFileChangeStrategyMerge
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSUInteger, MPDoubleClickURLAction) {
|
||||
MPDoubleClickURLActionCopy,
|
||||
MPDoubleClickURLActionOpen,
|
||||
@@ -84,10 +92,6 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordCustomString;
|
||||
|
||||
APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordDefaultsForEntry;
|
||||
|
||||
typedef NS_ENUM(NSUInteger, MPPasswordEncoding) {
|
||||
MPPasswordEncodingUTF8,
|
||||
MPPasswordEncodingASCII,
|
||||
};
|
||||
|
||||
@interface MPSettingsHelper : NSObject
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ NSString *const kMPSettingsKeyClearPasteboardOnQuit = @"ClearC
|
||||
NSString *const kMPSettingsKeyBrowserBundleId = @"BrowserBundleId";
|
||||
NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch = @"OpenEmptyDatabaseOnLaunch";
|
||||
NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch = @"ReopenLastDatabaseOnLaunch";
|
||||
NSString *const kMPSettingsKeyFileChangeStrategy = @"FileChangeStrategy";
|
||||
NSString *const kMPSettingsKeyLockOnSleep = @"LockOnSleep";
|
||||
NSString *const kMPSettingskeyLockOnLogout = @"LockOnLogout";
|
||||
NSString *const kMPSettingsKeyIdleLockTimeOut = @"IdleLockTimeOut";
|
||||
@@ -101,6 +102,7 @@ NSString *const kMPDeprecatedSettingsKeyDefaultPasswordRounds = @"Ke
|
||||
kMPSettingsKeyClearPasteboardOnQuit: @YES,
|
||||
kMPSettingsKeyOpenEmptyDatabaseOnLaunch: @NO,
|
||||
kMPSettingsKeyReopenLastDatabaseOnLaunch: @YES,
|
||||
kMPSettingsKeyFileChangeStrategy: @(MPFileChangeStrategyAsk), // Ask what to do on a file change!
|
||||
kMPSettingsKeyLockOnSleep: @YES,
|
||||
kMPSettingskeyLockOnLogout: @NO,
|
||||
kMPSettingsKeyIdleLockTimeOut: @0, // 5 minutes
|
||||
@@ -207,7 +209,7 @@ NSString *const kMPDeprecatedSettingsKeyDefaultPasswordRounds = @"Ke
|
||||
+ (void)_migrateRememberedKeyFiles {
|
||||
/*
|
||||
Database file paths was stored as plain text in keyfile mapping.
|
||||
We only need to store the key file ulr in plain text, thus hashing the path is sufficent
|
||||
We only need to store the key file url in plain text, thus hashing the path is sufficent
|
||||
*/
|
||||
NSDictionary<NSString *, NSString *> *currentMapping = [[NSUserDefaults standardUserDefaults] dictionaryForKey:kMPSettingsKeyRememeberdKeysForDatabases];
|
||||
if(!currentMapping) {
|
||||
@@ -225,7 +227,7 @@ NSString *const kMPDeprecatedSettingsKeyDefaultPasswordRounds = @"Ke
|
||||
didHash = YES;
|
||||
}
|
||||
}
|
||||
/* keep all hasehd or unknown data */
|
||||
/* keep all hashed or unknown data */
|
||||
else {
|
||||
hashedDict[key] = currentMapping[key];
|
||||
}
|
||||
|
||||
@@ -193,19 +193,23 @@
|
||||
"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Sie sollten das Password und/oder den Schlüssel ändern.";
|
||||
"CHANGE_PASSWORD_WITH_DOTS" = "Password ändern …";
|
||||
|
||||
"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET" = "No password or keyfile is set.";
|
||||
"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET_SUGGESTION" = "Please set a password and/or keyfile for this database. Aborting this will undo all changes and lock the document";
|
||||
"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET" = "Weder Password noch Schlüsseldatei sind festgelegt!";
|
||||
"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET_SUGGESTION" = "Bitte vergeben Sie ein Password und/oder einen Schlüssel. Sofern Sie abbrechen, werden Ihre Änderugnen rückgängig gemacht und die Datei gesperrt.";
|
||||
|
||||
/* Message displayed when an open file was changed from another application */
|
||||
"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "Die Datei wurde verändert!";
|
||||
/* Informative text displayed when the file was change form another application */
|
||||
"FILE_CHANGED_BY_OTHERS_INFO_TEXT" = "Die geöffnete Datei wurde von einem anderen Programm verändert! Der Inhalt stimmt nicht mehr mit dem geladenen Inhalt überein.";
|
||||
/* Set the selection as default file change strategy */
|
||||
"SET_AS_DEFAULT_FILE_CHANGE_STRATEGY" = "Die gewählte Strategie immer verwenden. Sie können die Strategie jederzeit in den Einstellungen anpassen.";
|
||||
/* Always show a dialog after an external file change */
|
||||
"FILE_CHANGE_STRATEGY_ASK" = "Jedesmal fragen";
|
||||
/* Button to ignore the changes */
|
||||
"KEEP_MINE" = "Geladenen Inhalt behalten!";
|
||||
/* BUtton to reload the changes form disk */
|
||||
"LOAD_CHANGES" = "Veränderten Inhalt laden!";
|
||||
"FILE_CHANGE_STRATEGY_KEEP_MINE" = "Behalte meine Version ohne Änderungen";
|
||||
/* Button to reload the changes form disk */
|
||||
"FILE_CHANGE_STRATEGY_USE_OTHER" = "Lade die andere Version und verwerfe meine Änderungen";
|
||||
/* Merge changes into file! */
|
||||
"MERGE_CHANGES" = "Inhalte zusammenführen!";
|
||||
"FILE_CHANGE_STRATEGY_MERGE" = "Inhalte zusammenführen";
|
||||
|
||||
/* Password Input Error and Warnings */
|
||||
"PASSWORD_INPUT_NO_PASSWORD" = "Kein Passwort";
|
||||
|
||||
@@ -199,12 +199,16 @@
|
||||
"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "The database file was modified!";
|
||||
/* Informative text displayed when the file was change form another application */
|
||||
"FILE_CHANGED_BY_OTHERS_INFO_TEXT" = "The file loaded is not the same as the on on disk. How do you want to move on?";
|
||||
/* Set the selection as default file change strategy */
|
||||
"SET_AS_DEFAULT_FILE_CHANGE_STRATEGY" = "Use this method as default. You can change this at any time in the preferences.";
|
||||
/* Always show a dialog after an external file change */
|
||||
"FILE_CHANGE_STRATEGY_ASK" = "Ask";
|
||||
/* Button to ignore the changes */
|
||||
"KEEP_MINE" = "Don't Load Modified Database";
|
||||
"FILE_CHANGE_STRATEGY_KEEP_MINE" = "Keep My Version and Ignore Other Changes";
|
||||
/* Button to reload the changes form disk */
|
||||
"LOAD_CHANGES" = "Load Modified Database and Discard Mine";
|
||||
"FILE_CHANGE_STRATEGY_USE_OTHER" = "Load Changed Version and Discard Mine";
|
||||
/* Merge changes into file! */
|
||||
"MERGE_CHANGES" = "Merge Changes";
|
||||
"FILE_CHANGE_STRATEGY_MERGE" = "Merge Changes";
|
||||
|
||||
/* Password Input Messages, Errors and Warning */
|
||||
"PASSWORD_INPUT_NO_PASSWORD" = "No Password";
|
||||
|
||||
224
MacPass/es.lproj/Localizable.strings
Normal file
224
MacPass/es.lproj/Localizable.strings
Normal file
@@ -0,0 +1,224 @@
|
||||
/* Formatted Times */
|
||||
"%ld_DAYS_AGO" = "hace %ld días";
|
||||
"%ld_HOURS_AGO" = "hace aproximadamente %ld horas";
|
||||
"%ld_MINUTES_AGO" = "hace %ld minutos";
|
||||
"%ld_WEEKS_AGO" = "hace %ld semanas";
|
||||
"JUST_NOW" = "Justo ahora";
|
||||
"LAST_WEEK" = "La semana pasada";
|
||||
"ONE_WEEK_AGO" = "Hace una semana";
|
||||
"YESTERDAY" = "Ayer";
|
||||
"TOMORROW" = "Mañana";
|
||||
"ONE_WEEK" = "en una semana";
|
||||
"ONE_MONTH" = "en un mes";
|
||||
"90_DAYS" = "en 90 días";
|
||||
"ONE_YEAR" = "en un año";
|
||||
|
||||
/* Date Picker */
|
||||
"SELECT_DATE_PRESET" = "Usar predefinido…";
|
||||
|
||||
/* Menu item for automatic trash creation */
|
||||
"AUTOCREATE_TRASH_FOLDER" = "Crear automáticamente";
|
||||
|
||||
/*
|
||||
Actions
|
||||
*/
|
||||
"ADD_ENTRY" = "Agregar Entrada";
|
||||
"ADD_GROUP" = "Agregar Grupo";
|
||||
"DUPLICATE_ENTRY" = "Duplicar Entrada";
|
||||
"DUPLICATE_ENTRY_WITH_OPTIONS" = "Duplicar Entrada…";
|
||||
"COPY_ENTRY" = "Copiar Entrada";
|
||||
"COPY_GROUP" = "Copiar Grupo";
|
||||
"ADD_TREMPLATE_ENTRY" = "Crear Plantilla de Entrada";
|
||||
"DELETE_GROUP" = "Eliminar Grupo";
|
||||
"DELETE_ENTRY" = "Eliminar Entrada";
|
||||
"EDIT_TEMPLATE_GROUP" = "Editar Grupo de Plantilla";
|
||||
"EMPTY_TRASH" = "Vaciar Papelera";
|
||||
"MOVE_ENTRY" = "Mover Entrada";
|
||||
"MOVE_GROUP" = "Mover Grupo";
|
||||
"NEW_ENTRY_WITH_TEMPLATE_%@" = "Crear Entrada con Plantilla %@";
|
||||
"NEW_DATABASE" = "Base de Datos";
|
||||
"OPEN_URL" = "Abrir URL";
|
||||
"PERFORM_AUTOTYPE_FOR_ENTRY" = "Generar Autotype";
|
||||
"PREVIEW" = "Vista Previa";
|
||||
"PASSWORD_GENERATOR_SET_DEFAULTS" = "Configurar Predeterminados";
|
||||
"PASSWORD_GENERATOR_RESET_ENTRY_DEFAULTS" = "Reiniciar";
|
||||
"TRASH_ENTRY" = "Entrada de Papelera";
|
||||
"TRASH_GROUP" = "Grupo de Papelera";
|
||||
"SET_NAME" = "Editar Nombre";
|
||||
"SET_TITLE" = "Editar Título";
|
||||
"SET_USERNAME" = "Editar Nombre de Usuario";
|
||||
"SET_PASSWORD" = "Editar Contraseña";
|
||||
"SET_URL" = "Editar URL";
|
||||
"SET_NOTES" = "Editar Notas";
|
||||
"SHOW_HISTORY" = "Show History";
|
||||
|
||||
/*
|
||||
Search
|
||||
*/
|
||||
"CLEAR_RECENT_SEARCHES" = "Limpiar búsquedas recientes";
|
||||
"RECENT_SEARCHES" = "Búsquedas recientes";
|
||||
"SEARCH_DUPLICATE_PASSWORDS" = "Contraseñas duplicadas";
|
||||
"SEARCH_EXPIRED_ENTRIES" = "Expirado";
|
||||
"SELECT_FILTER_WITH_DOTS" = "Seleccionar…";
|
||||
|
||||
/*
|
||||
Direct Translations
|
||||
*/
|
||||
"ACTION" = "Acción";
|
||||
"ATTACHMENTS" = "Adjuntos";
|
||||
"CANCEL" = "Cancelar";
|
||||
"DATABASE" = "Base de Datos";
|
||||
"DELETE" = "Eliminar";
|
||||
"EDIT" = "Editar";
|
||||
"EMAIL" = "EMail";
|
||||
"GROUP" = "Grupo";
|
||||
"GENERAL" = "General";
|
||||
"HOMEBANKING" = "Bancos";
|
||||
"INSPECTOR" = "Inspector";
|
||||
"INTERNET" = "Internet";
|
||||
"LOCK" = "Bloquear";
|
||||
"MODIFIED" = "Modificado";
|
||||
"NAME" = "Nombre";
|
||||
"NETWORK" = "Red";
|
||||
"NONE" = "Ninguno";
|
||||
"NOTES" = "Notas";
|
||||
"PASSWORD" = "Contraseña";
|
||||
"SAVE" = "Guardar";
|
||||
"SAVE_WITH_DOTS" = "Guardar…";
|
||||
"SEARCH" = "Buscar";
|
||||
"TITLE" = "Título";
|
||||
"TRASH" = "Papelera";
|
||||
"URL" = "URL";
|
||||
"USERNAME" = "Nombre de usuario";
|
||||
"WINDOWS" = "Ventanas";
|
||||
|
||||
|
||||
"CHANGE_DATABASE_NAME" = "Cambiar Nombre de Base";
|
||||
"CHANGE_TRASH_GROUP" = "Cambiar Grupo de Papelera";
|
||||
"%@_COPY" = "%@ Copiar";
|
||||
|
||||
"DUPLICTE_PASSWORDS" = "Duplicar Contraseñas";
|
||||
|
||||
/* Field nam that was copied to the pasteboard */
|
||||
"COPIED_FIELD_%@" = "%@ copiado";
|
||||
"COPIED_PASSWORD" = "Contraseña copiada";
|
||||
"COPIED_URL" = "URL copiada";
|
||||
"COPIED_USERNAME" = "Nombre de usuario copiado";
|
||||
"COPY_CUSTOM_FIELDS" = "Copiar Campos Personalizados";
|
||||
"COPY_FIELD_%@" = "Copiar %@";
|
||||
"COPY_PASSWORD" = "Copiar Contraseña";
|
||||
"COPY_URL" = "Copy URL";
|
||||
"COPY_USERNAME" = "Copiar Nombre de Usuario";
|
||||
|
||||
/* Dock Badge */
|
||||
"CLEARING_PASTEBOARD" = "…";
|
||||
|
||||
/* Group Inspector */
|
||||
/* Autotype Combobox */
|
||||
"AUTOTYPE_NO" = "Deshabilitar Autotype";
|
||||
"AUTOTYPE_YES" = "Habilitar Autotype";
|
||||
"AUTOTYPE_INHERIT" = "Heredar Configuración de Autotype";
|
||||
|
||||
/* Search Combobox */
|
||||
"SEARCH_INHERIT" = "Inherit Search Settings";
|
||||
"SEARCH_YES" = "Include in Search";
|
||||
"SEARCH_NO" = "Exclude from Search";
|
||||
|
||||
/*
|
||||
Date/Time Displays
|
||||
*/
|
||||
/* Created at template string. %@ is replaced by localized date and time */
|
||||
"CREATED_AT_%@" = "Creado: %@";
|
||||
/* Modifed at template string. %@ is replaced by localized date and time */
|
||||
"MODIFED_AT_%@" = "Modificado: %@";
|
||||
|
||||
"EXPIRES_AT_DATE_%@" = "Expira: %@";
|
||||
"NO_EXPIRE_DATE_SET" = "No expira.";
|
||||
|
||||
/*
|
||||
Defaults for new objects
|
||||
*/
|
||||
"DEFAULT_CUSTOM_FIELD_TITLE" = "Personalizado";
|
||||
"DEFAULT_CUSTOM_FIELD_VALUE" = "Valor";
|
||||
"DEFAULT_ENTRY_TITLE" = "Nueva Entrada";
|
||||
"DEFAULT_GROUP_NAME" = "Nuevo Grupo";
|
||||
"DEFAULT_WINDOW_TITLE" = "Título de Ventana";
|
||||
|
||||
/* Number of Entries
|
||||
Plural (0, >1)
|
||||
Singular (1)
|
||||
*/
|
||||
"%ld_ENTRIES" = "%ld Entradas";
|
||||
"%ld_ENTRY" = "%ld Entrada";
|
||||
|
||||
/* Settings */
|
||||
"GENERAL_SETTINGS" = "General";
|
||||
"INTEGRATION_SETTINGS" = "Integración";
|
||||
"UPDATE_SETTINGS" = "Actualizaciones";
|
||||
"WORKFLOW_SETTINGS" = "Flujo de Trabajo";
|
||||
"DEFAULT_BROWSER" = "Navegador Predeterminado";
|
||||
"OTHER_BROWSER" = "Seleccionar Navegador…";
|
||||
"PLUGIN_SETTINGS" = "Plugins";
|
||||
|
||||
/* Feature not supported in Version */
|
||||
"KDBX_ONLY_FEATURE" = "Caraterística no soportada en base de datos KDB";
|
||||
|
||||
/* Template */
|
||||
"NO_TEMPLATE_GROUP" = "Sin plantillas";
|
||||
"NO_TEMPLATES" = "No se han encontrado Plantillas";
|
||||
|
||||
/* Kefile */
|
||||
"SAVE_KEYFILE" = "Guardar Keyfile";
|
||||
|
||||
/* Autoype */
|
||||
/* Candiate dialog */
|
||||
"SELECT_AUTOTYPE_CANDIDATE" = "Seleccionar candidato";
|
||||
"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Please open a file to use Global Autotype!";
|
||||
"AUTOTYPE_OVERLAY_NO_MATCH_FOR_%@" = "No hay registros para %@!";
|
||||
"AUTOTYPE_OVERLAY_SINGLE_MATCH" = "Encontrado";
|
||||
|
||||
/* Alert Dialogs */
|
||||
"WARNING_ON_EMPTY_TRASH_DESCRIPTION" = "Vaciar la Papelera es una acción no reversible.";
|
||||
"WARNING_ON_EMPTY_TRASH_TITLE" = "¿Vaciar Papelera?";
|
||||
"WARNING_ON_LOSSY_SAVE" = "Al guardar en formato KDB, se perderán algunos datos.";
|
||||
"WARNING_ON_LOSSY_SAVE_DESCRIPTION" = "El formato de archivo KDB no permite guardar toda la información.";
|
||||
"CHANGE_FORMAT" = "Cambiar formato de archivo a KDBX";
|
||||
"SAVE_LOSSY" = "Guardar y perder datos";
|
||||
|
||||
"ENFORCE_PASSWORD_CHANGE_ALERT_TITLE" = "La contraseña de la base de datos ha expirado";
|
||||
"ENFORCE_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "No será posible guardar cambios hsata que la contraseña o el keyfile sean modificados.";
|
||||
|
||||
"RECOMMEND_PASSWORD_CHANGE_ALERT_TITLE" = "Por favor, cambia la contraseña para la base de datos.";
|
||||
"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Es recomendado cambiar la contraseña y/o el keyfile.";
|
||||
"CHANGE_PASSWORD_WITH_DOTS" = "Cambiar Contraseña…";
|
||||
|
||||
"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET" = "No hay contraseña o keyfile establecido.";
|
||||
"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET_SUGGESTION" = "Por favor genera una contraseña o un keyfile para esta base de datos. Al salir, se perderán todos los cambios y el documento quedará bloqueado.";
|
||||
|
||||
/* Message displayed when an open file was changed from another application */
|
||||
"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "El archivo de la base de datos ha sido modificado";
|
||||
/* Informative text displayed when the file was change form another application */
|
||||
"FILE_CHANGED_BY_OTHERS_INFO_TEXT" = "El archivo cargado no coincide con el guardado en el disco. ¿Deseas continuar?";
|
||||
/* Set the selection as default file change strategy */
|
||||
"SET_AS_DEFAULT_FILE_CHANGE_STRATEGY" = "Use the selected strategy and do not ask me again!";
|
||||
/* Always show a dialog after an external file change */
|
||||
"FILE_CHANGE_STRATEGY_ASK" = "Ask Me What to Do";
|
||||
/* Button to ignore the changes */
|
||||
"KEEP_MINE" = "Conservar versión actual y descartar cambios";
|
||||
/* Button to reload the changes form disk */
|
||||
"LOAD_CHANGES" = "Cargar archivo modificado";
|
||||
/* Merge changes into file! */
|
||||
"MERGE_CHANGES" = "Merge changes!";
|
||||
|
||||
/* Password Input Messages, Errors and Warning */
|
||||
"PASSWORD_INPUT_NO_PASSWORD" = "Sin Contraseña";
|
||||
"PASSWORD_INPUT_ENTER_PASSWORD" = "Ingresar Contraseña";
|
||||
"PASSWORD_INPUT_REPEAT_PASSWORD" = "Repetir Contraseña";
|
||||
"WARNING_NO_PASSWORD_OR_KEYFILE" = "Sin contraseña o keyfile";
|
||||
"ERROR_PASSWORD_MISSMATCH_INVALID_KEYFILE" = "Las contraseñas no coinciden y el keyfile no es válido";
|
||||
"ERROR_PASSWORD_MISSMATCH" = "Las contraseñas no coinciden";
|
||||
"ERROR_INVALID_KEYFILE" = "El Keyfile no es válido";
|
||||
|
||||
/* Misc */
|
||||
"DOCUMENT_AUTOTYPE_CORRUPTION_WARNING" = "Por favor ejecuta Corregir Autotype...";
|
||||
"FILE_OPEN_ERROR" = "Error al abrir el archivo.";
|
||||
15
MacPass/es.lproj/PluginSettings.strings
Normal file
15
MacPass/es.lproj/PluginSettings.strings
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "If enabled, only properly signed Plugins will be loaded. Keep in mind, that Plugins have full access to your data! Changes take affect on restart."; ObjectID = "2bX-8S-9XM"; */
|
||||
"2bX-8S-9XM.title" = "If enabled, only properly signed Plugins will be loaded. Keep in mind, that Plugins have full access to your data! Changes take affect on restart.";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Load unsecure Plugins"; ObjectID = "C4B-6z-ZqX"; */
|
||||
"C4B-6z-ZqX.title" = "Load unsecure Plugins";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "STt-PQ-Szr"; */
|
||||
"STt-PQ-Szr.title" = "Text Cell";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "fug-79-n9g"; */
|
||||
"fug-79-n9g.title" = "Table View Cell";
|
||||
|
||||
/* Class = "NSBox"; title = "Box"; ObjectID = "vBs-Ga-aq0"; */
|
||||
"vBs-Ga-aq0.title" = "Box";
|
||||
27
MacPass/es.lproj/ReferenceBuilderView.strings
Normal file
27
MacPass/es.lproj/ReferenceBuilderView.strings
Normal file
@@ -0,0 +1,27 @@
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Get"; ObjectID = "142-bE-IMZ"; */
|
||||
"142-bE-IMZ.title" = "Get";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Match"; ObjectID = "9ce-da-syF"; */
|
||||
"9ce-da-syF.title" = "Match";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Key"; ObjectID = "K1t-OZ-ACe"; */
|
||||
"K1t-OZ-ACe.title" = "Key";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Use"; ObjectID = "Kqx-qm-nMG"; */
|
||||
"Kqx-qm-nMG.title" = "Use";
|
||||
|
||||
/* Class = "NSTextFieldCell"; placeholderString = "Reference"; ObjectID = "dr9-x8-kKk"; */
|
||||
"dr9-x8-kKk.placeholderString" = "Reference";
|
||||
|
||||
/* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "fNP-ye-2bD"; */
|
||||
"fNP-ye-2bD.placeholderString" = "Value";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Reference String"; ObjectID = "gik-Ha-hRd"; */
|
||||
"gik-Ha-hRd.title" = "Reference String";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Reference"; ObjectID = "r1V-VE-ngy"; */
|
||||
"r1V-VE-ngy.title" = "Reference";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Matching"; ObjectID = "yT1-XL-k6a"; */
|
||||
"yT1-XL-k6a.title" = "Matching";
|
||||
Binary file not shown.
2
MacPassTests/es.lproj/InfoPlist.strings
Normal file
2
MacPassTests/es.lproj/InfoPlist.strings
Normal file
@@ -0,0 +1,2 @@
|
||||
/* Localized versions of Info.plist keys */
|
||||
|
||||
Reference in New Issue
Block a user