mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 01:12:31 +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>"; };
|
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>"; };
|
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>"; };
|
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>"; };
|
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>"; };
|
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>"; };
|
4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OverlayWindow.xib; sourceTree = "<group>"; };
|
||||||
@@ -1529,6 +1551,7 @@
|
|||||||
ru,
|
ru,
|
||||||
it,
|
it,
|
||||||
pl,
|
pl,
|
||||||
|
es,
|
||||||
);
|
);
|
||||||
mainGroup = 4C77E35715B84A240093A587;
|
mainGroup = 4C77E35715B84A240093A587;
|
||||||
productRefGroup = 4C77E36315B84A240093A587 /* Products */;
|
productRefGroup = 4C77E36315B84A240093A587 /* Products */;
|
||||||
@@ -1840,6 +1863,7 @@
|
|||||||
713F9B481C95CEA000605880 /* fr */,
|
713F9B481C95CEA000605880 /* fr */,
|
||||||
4C840C4B1D773E5E0081F605 /* pl */,
|
4C840C4B1D773E5E0081F605 /* pl */,
|
||||||
60ECAD221F12231B00EA9DB3 /* zh-Hans */,
|
60ECAD221F12231B00EA9DB3 /* zh-Hans */,
|
||||||
|
4C4161081F50333B003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = PluginSettings.xib;
|
name = PluginSettings.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1854,6 +1878,7 @@
|
|||||||
FA638D231C39BFCC00B10CC6 /* ru */,
|
FA638D231C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC961C414D58003E37E9 /* it */,
|
4825CC961C414D58003E37E9 /* it */,
|
||||||
4C840C551D773E6B0081F605 /* pl */,
|
4C840C551D773E6B0081F605 /* pl */,
|
||||||
|
4C4161171F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = InfoPlist.strings;
|
name = InfoPlist.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1868,6 +1893,7 @@
|
|||||||
BD6C366619484CF40089EB37 /* nl */,
|
BD6C366619484CF40089EB37 /* nl */,
|
||||||
FA638D221C39BFCC00B10CC6 /* ru */,
|
FA638D221C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC951C414D58003E37E9 /* it */,
|
4825CC951C414D58003E37E9 /* it */,
|
||||||
|
4C4161161F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = KPKLocalizable.strings;
|
name = KPKLocalizable.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1884,6 +1910,7 @@
|
|||||||
FA638D1C1C39BFCC00B10CC6 /* ru */,
|
FA638D1C1C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC8F1C414D58003E37E9 /* it */,
|
4825CC8F1C414D58003E37E9 /* it */,
|
||||||
4C840C521D773E5E0081F605 /* pl */,
|
4C840C521D773E5E0081F605 /* pl */,
|
||||||
|
4C41610E1F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = IconSelection.xib;
|
name = IconSelection.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1900,6 +1927,7 @@
|
|||||||
FA638D111C39BFCB00B10CC6 /* ru */,
|
FA638D111C39BFCB00B10CC6 /* ru */,
|
||||||
4825CC841C414D57003E37E9 /* it */,
|
4825CC841C414D57003E37E9 /* it */,
|
||||||
4C840C471D773E5D0081F605 /* pl */,
|
4C840C471D773E5D0081F605 /* pl */,
|
||||||
|
4C4161041F50333B003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = GeneralSettings.xib;
|
name = GeneralSettings.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1916,6 +1944,7 @@
|
|||||||
FA638D171C39BFCC00B10CC6 /* ru */,
|
FA638D171C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC8A1C414D57003E37E9 /* it */,
|
4825CC8A1C414D57003E37E9 /* it */,
|
||||||
4C840C4D1D773E5E0081F605 /* pl */,
|
4C840C4D1D773E5E0081F605 /* pl */,
|
||||||
|
4C41610C1F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = PasswordInputView.xib;
|
name = PasswordInputView.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1932,6 +1961,7 @@
|
|||||||
FA638D191C39BFCC00B10CC6 /* ru */,
|
FA638D191C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC8C1C414D58003E37E9 /* it */,
|
4825CC8C1C414D58003E37E9 /* it */,
|
||||||
4C840C4F1D773E5E0081F605 /* pl */,
|
4C840C4F1D773E5E0081F605 /* pl */,
|
||||||
|
4C4161091F50333B003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = InspectorView.xib;
|
name = InspectorView.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1946,6 +1976,7 @@
|
|||||||
BD6C366519484CF40089EB37 /* nl */,
|
BD6C366519484CF40089EB37 /* nl */,
|
||||||
FA638D211C39BFCC00B10CC6 /* ru */,
|
FA638D211C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC941C414D58003E37E9 /* it */,
|
4825CC941C414D58003E37E9 /* it */,
|
||||||
|
4C4161151F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = InfoPlist.strings;
|
name = InfoPlist.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1962,6 +1993,7 @@
|
|||||||
FA638D161C39BFCC00B10CC6 /* ru */,
|
FA638D161C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC891C414D57003E37E9 /* it */,
|
4825CC891C414D57003E37E9 /* it */,
|
||||||
4C840C4C1D773E5E0081F605 /* pl */,
|
4C840C4C1D773E5E0081F605 /* pl */,
|
||||||
|
4C4161121F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = MainMenu.xib;
|
name = MainMenu.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1978,6 +2010,7 @@
|
|||||||
FA638D101C39BFCB00B10CC6 /* ru */,
|
FA638D101C39BFCB00B10CC6 /* ru */,
|
||||||
4825CC831C414D57003E37E9 /* it */,
|
4825CC831C414D57003E37E9 /* it */,
|
||||||
4C840C461D773E5D0081F605 /* pl */,
|
4C840C461D773E5D0081F605 /* pl */,
|
||||||
|
4C4161111F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = WelcomeWindow.xib;
|
name = WelcomeWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1993,6 +2026,7 @@
|
|||||||
FA638D1F1C39BFCC00B10CC6 /* ru */,
|
FA638D1F1C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC921C414D58003E37E9 /* it */,
|
4825CC921C414D58003E37E9 /* it */,
|
||||||
4C43B02F1E266A3A000CB4D7 /* pl */,
|
4C43B02F1E266A3A000CB4D7 /* pl */,
|
||||||
|
4C4161131F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = Localizable.strings;
|
name = Localizable.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2008,6 +2042,7 @@
|
|||||||
FA638D201C39BFCC00B10CC6 /* ru */,
|
FA638D201C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC931C414D58003E37E9 /* it */,
|
4825CC931C414D58003E37E9 /* it */,
|
||||||
4C43B0301E266A41000CB4D7 /* pl */,
|
4C43B0301E266A41000CB4D7 /* pl */,
|
||||||
|
4C4161141F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = Credits.rtf;
|
name = Credits.rtf;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2019,6 +2054,7 @@
|
|||||||
FA638D1E1C39BFCC00B10CC6 /* ru */,
|
FA638D1E1C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC911C414D58003E37E9 /* it */,
|
4825CC911C414D58003E37E9 /* it */,
|
||||||
4C840C541D773E5E0081F605 /* pl */,
|
4C840C541D773E5E0081F605 /* pl */,
|
||||||
|
4C4161101F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = ReferenceBuilderView.xib;
|
name = ReferenceBuilderView.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2035,6 +2071,7 @@
|
|||||||
FA638D1B1C39BFCC00B10CC6 /* ru */,
|
FA638D1B1C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC8E1C414D58003E37E9 /* it */,
|
4825CC8E1C414D58003E37E9 /* it */,
|
||||||
4C840C511D773E5E0081F605 /* pl */,
|
4C840C511D773E5E0081F605 /* pl */,
|
||||||
|
4C41610B1F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = EntryInspectorView.xib;
|
name = EntryInspectorView.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2051,6 +2088,7 @@
|
|||||||
FA638D1A1C39BFCC00B10CC6 /* ru */,
|
FA638D1A1C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC8D1C414D58003E37E9 /* it */,
|
4825CC8D1C414D58003E37E9 /* it */,
|
||||||
4C840C501D773E5E0081F605 /* pl */,
|
4C840C501D773E5E0081F605 /* pl */,
|
||||||
|
4C41610A1F50333B003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = GroupInspectorView.xib;
|
name = GroupInspectorView.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2067,6 +2105,7 @@
|
|||||||
4825CC851C414D57003E37E9 /* it */,
|
4825CC851C414D57003E37E9 /* it */,
|
||||||
4C840C481D773E5D0081F605 /* pl */,
|
4C840C481D773E5D0081F605 /* pl */,
|
||||||
60ECAD271F12262400EA9DB3 /* zh-Hans */,
|
60ECAD271F12262400EA9DB3 /* zh-Hans */,
|
||||||
|
4C4161051F50333B003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = IntegrationSettings.xib;
|
name = IntegrationSettings.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2083,6 +2122,7 @@
|
|||||||
4825CC861C414D57003E37E9 /* it */,
|
4825CC861C414D57003E37E9 /* it */,
|
||||||
4C840C491D773E5D0081F605 /* pl */,
|
4C840C491D773E5D0081F605 /* pl */,
|
||||||
60ECAD251F12253C00EA9DB3 /* zh-Hans */,
|
60ECAD251F12253C00EA9DB3 /* zh-Hans */,
|
||||||
|
4C4161061F50333B003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = WorkflowSettings.xib;
|
name = WorkflowSettings.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2099,6 +2139,7 @@
|
|||||||
FA638D141C39BFCC00B10CC6 /* ru */,
|
FA638D141C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC871C414D57003E37E9 /* it */,
|
4825CC871C414D57003E37E9 /* it */,
|
||||||
4C840C4A1D773E5D0081F605 /* pl */,
|
4C840C4A1D773E5D0081F605 /* pl */,
|
||||||
|
4C4161071F50333B003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = UpdateSettings.xib;
|
name = UpdateSettings.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2115,6 +2156,7 @@
|
|||||||
FA638D1D1C39BFCC00B10CC6 /* ru */,
|
FA638D1D1C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC901C414D58003E37E9 /* it */,
|
4825CC901C414D58003E37E9 /* it */,
|
||||||
4C840C531D773E5E0081F605 /* pl */,
|
4C840C531D773E5E0081F605 /* pl */,
|
||||||
|
4C41610F1F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = DatePickingView.xib;
|
name = DatePickingView.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2131,6 +2173,7 @@
|
|||||||
FA638D0F1C39BFCB00B10CC6 /* ru */,
|
FA638D0F1C39BFCB00B10CC6 /* ru */,
|
||||||
4825CC821C414D57003E37E9 /* it */,
|
4825CC821C414D57003E37E9 /* it */,
|
||||||
4C840C451D773E5D0081F605 /* pl */,
|
4C840C451D773E5D0081F605 /* pl */,
|
||||||
|
4C4161031F50333B003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = PasswordEditWindow.xib;
|
name = PasswordEditWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2147,6 +2190,7 @@
|
|||||||
FA638D181C39BFCC00B10CC6 /* ru */,
|
FA638D181C39BFCC00B10CC6 /* ru */,
|
||||||
4825CC8B1C414D57003E37E9 /* it */,
|
4825CC8B1C414D57003E37E9 /* it */,
|
||||||
4C840C4E1D773E5E0081F605 /* pl */,
|
4C840C4E1D773E5E0081F605 /* pl */,
|
||||||
|
4C41610D1F50333C003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = PasswordCreatorView.xib;
|
name = PasswordCreatorView.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2163,6 +2207,7 @@
|
|||||||
FA638D0E1C39BFCB00B10CC6 /* ru */,
|
FA638D0E1C39BFCB00B10CC6 /* ru */,
|
||||||
4825CC811C414D57003E37E9 /* it */,
|
4825CC811C414D57003E37E9 /* it */,
|
||||||
4C840C441D773E5D0081F605 /* pl */,
|
4C840C441D773E5D0081F605 /* pl */,
|
||||||
|
4C4161021F50333B003BC0AF /* es */,
|
||||||
);
|
);
|
||||||
name = DatabaseSettingsWindow.xib;
|
name = DatabaseSettingsWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
<connections>
|
<connections>
|
||||||
<outlet property="clearPasteboardOnQuitCheckButton" destination="447" id="520"/>
|
<outlet property="clearPasteboardOnQuitCheckButton" destination="447" id="520"/>
|
||||||
<outlet property="clearPasteboardTimeoutPopup" destination="419" id="521"/>
|
<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="idleTimeOutPopup" destination="584" id="809"/>
|
||||||
<outlet property="lockOnLogoutCheckButton" destination="5SP-Vi-1sn" id="yaI-LH-R5A"/>
|
<outlet property="lockOnLogoutCheckButton" destination="5SP-Vi-1sn" id="yaI-LH-R5A"/>
|
||||||
<outlet property="lockOnSleepCheckButton" destination="630" id="810"/>
|
<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"/>
|
<constraint firstItem="447" firstAttribute="top" secondItem="431" secondAttribute="bottom" constant="8" symbolic="YES" id="zkd-Hf-09b"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
</box>
|
</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"/>
|
<rect key="frame" x="17" y="286" width="366" height="85"/>
|
||||||
<view key="contentView" id="cpg-tt-SHE">
|
<view key="contentView" id="cpg-tt-SHE">
|
||||||
<rect key="frame" x="1" y="1" width="364" height="69"/>
|
<rect key="frame" x="1" y="1" width="364" height="69"/>
|
||||||
@@ -182,25 +183,19 @@
|
|||||||
</buttonCell>
|
</buttonCell>
|
||||||
</button>
|
</button>
|
||||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h3w-Ms-ohK">
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h3w-Ms-ohK">
|
||||||
<rect key="frame" x="16" y="20" width="207" height="17"/>
|
<rect key="frame" x="16" y="20" width="93" height="17"/>
|
||||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="On external changes to open files" id="QrK-hM-Xt1">
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="If file changes:" id="QrK-hM-Xt1">
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<popUpButton verticalHuggingPriority="750" horizontalCompressionResistancePriority="749" translatesAutoresizingMaskIntoConstraints="NO" id="wIu-Sh-2a2">
|
<popUpButton verticalHuggingPriority="750" horizontalCompressionResistancePriority="749" translatesAutoresizingMaskIntoConstraints="NO" id="wIu-Sh-2a2">
|
||||||
<rect key="frame" x="227" y="14" width="120" height="26"/>
|
<rect key="frame" x="113" y="13" width="234" 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">
|
<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"/>
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="menu"/>
|
<font key="font" metaFont="menu"/>
|
||||||
<menu key="menu" id="DQY-17-yKP">
|
<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>
|
|
||||||
</popUpButtonCell>
|
</popUpButtonCell>
|
||||||
</popUpButton>
|
</popUpButton>
|
||||||
</subviews>
|
</subviews>
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou
|
|||||||
@property (strong) IBOutlet NSView *warningView;
|
@property (strong) IBOutlet NSView *warningView;
|
||||||
@property (weak) IBOutlet NSImageView *warningViewImage;
|
@property (weak) IBOutlet NSImageView *warningViewImage;
|
||||||
|
|
||||||
@property (assign) BOOL lockedForFileChange;
|
@property (atomic, assign) BOOL lockedForFileChange;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@@ -288,35 +288,55 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou
|
|||||||
/* Dispatch the alert to the main queue */
|
/* Dispatch the alert to the main queue */
|
||||||
__weak MPDocument *welf = self;
|
__weak MPDocument *welf = self;
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
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];
|
NSAlert *alert = [[NSAlert alloc] init];
|
||||||
alert.alertStyle = NSWarningAlertStyle;
|
alert.alertStyle = NSWarningAlertStyle;
|
||||||
alert.messageText = NSLocalizedString(@"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT", @"Message displayed when an open file was changed from another application");
|
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.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.showsSuppressionButton = YES;
|
||||||
[alert addButtonWithTitle:NSLocalizedString(@"LOAD_CHANGES", @"Reopen the file!")];
|
alert.suppressionButton.title = NSLocalizedString(@"SET_AS_DEFAULT_FILE_CHANGE_STRATEGY", @"Set the selection as default file change strategy!");
|
||||||
[alert addButtonWithTitle:NSLocalizedString(@"KEEP_MINE", @"Ignore the changes to an open file!")];
|
[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) {
|
[alert beginSheetModalForWindow:welf.windowForSheet completionHandler:^(NSModalResponse returnCode) {
|
||||||
|
BOOL useAsDefault = (alert.suppressionButton.state == NSOnState);
|
||||||
welf.lockedForFileChange = NO;
|
|
||||||
|
|
||||||
switch(returnCode) {
|
switch(returnCode) {
|
||||||
case NSAlertFirstButtonReturn: {
|
case NSAlertFirstButtonReturn: {
|
||||||
[welf mergeWithContentsFromURL:self.fileURL];
|
[welf _handleFileChangeWithStrategy:MPFileChangeStrategyMerge setAsDefault:useAsDefault];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case NSAlertSecondButtonReturn:
|
case NSAlertSecondButtonReturn:
|
||||||
[welf revertToContentsOfURL:welf.fileURL ofType:welf.fileType error:nil];
|
[welf _handleFileChangeWithStrategy:MPFileChangeStrategyUseOther setAsDefault:useAsDefault];
|
||||||
break;
|
break;
|
||||||
case NSAlertThirdButtonReturn:
|
case NSAlertThirdButtonReturn:
|
||||||
// do not change anything
|
[welf _handleFileChangeWithStrategy:MPFileChangeStrategyKeepMine setAsDefault:useAsDefault];
|
||||||
default:
|
default:
|
||||||
break;
|
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 {
|
- (void)writeXMLToURL:(NSURL *)url {
|
||||||
NSData *xmlData = [self.tree xmlData];
|
NSData *xmlData = [self.tree xmlData];
|
||||||
NSError *error;
|
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.
|
[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!
|
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];
|
[self saveDocumentWithDelegate:self didSaveSelector:@selector(_lockDatabaseForDocument:didSave:contextInfo:) contextInfo:NULL];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,5 +20,6 @@
|
|||||||
@property (weak) IBOutlet NSButton *reopenLastDatabase;
|
@property (weak) IBOutlet NSButton *reopenLastDatabase;
|
||||||
@property (weak) IBOutlet NSButton *createUntitledOnActivation;
|
@property (weak) IBOutlet NSButton *createUntitledOnActivation;
|
||||||
@property (weak) IBOutlet NSButton *rememberKeyFileCheckButton;
|
@property (weak) IBOutlet NSButton *rememberKeyFileCheckButton;
|
||||||
|
@property (weak) IBOutlet NSPopUpButton *fileChangeStrategyPopup;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -40,8 +40,21 @@ NSString *const MPGeneralSetingsIdentifier = @"GeneralSettingsTab";
|
|||||||
[self.idleTimeOutPopup bind:NSSelectedTagBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyIdleLockTimeOut] options:nil];
|
[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.reopenLastDatabase bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyReopenLastDatabaseOnLaunch] options:nil];
|
||||||
[self.rememberKeyFileCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyRememberKeyFilesForDatabases] 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
|
@end
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyClearPasteboardOnQuit;
|
|||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordEncoding;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordEncoding;
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch;
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch;
|
||||||
|
APPKIT_EXTERN NSString *const kMPSettingsKeyFileChangeStrategy;
|
||||||
|
|
||||||
/* URL handling */
|
/* URL handling */
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyBrowserBundleId;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyBrowserBundleId;
|
||||||
@@ -65,6 +66,13 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyUpdatePasswordOnTemplateEntries;
|
|||||||
/* Plugins */
|
/* Plugins */
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyLoadUnsecurePlugins; // If set to YES this will load all plugins regardless of their codesignature status
|
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) {
|
typedef NS_ENUM(NSUInteger, MPDoubleClickURLAction) {
|
||||||
MPDoubleClickURLActionCopy,
|
MPDoubleClickURLActionCopy,
|
||||||
MPDoubleClickURLActionOpen,
|
MPDoubleClickURLActionOpen,
|
||||||
@@ -84,10 +92,6 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordCustomString;
|
|||||||
|
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordDefaultsForEntry;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordDefaultsForEntry;
|
||||||
|
|
||||||
typedef NS_ENUM(NSUInteger, MPPasswordEncoding) {
|
|
||||||
MPPasswordEncodingUTF8,
|
|
||||||
MPPasswordEncodingASCII,
|
|
||||||
};
|
|
||||||
|
|
||||||
@interface MPSettingsHelper : NSObject
|
@interface MPSettingsHelper : NSObject
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ NSString *const kMPSettingsKeyClearPasteboardOnQuit = @"ClearC
|
|||||||
NSString *const kMPSettingsKeyBrowserBundleId = @"BrowserBundleId";
|
NSString *const kMPSettingsKeyBrowserBundleId = @"BrowserBundleId";
|
||||||
NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch = @"OpenEmptyDatabaseOnLaunch";
|
NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch = @"OpenEmptyDatabaseOnLaunch";
|
||||||
NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch = @"ReopenLastDatabaseOnLaunch";
|
NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch = @"ReopenLastDatabaseOnLaunch";
|
||||||
|
NSString *const kMPSettingsKeyFileChangeStrategy = @"FileChangeStrategy";
|
||||||
NSString *const kMPSettingsKeyLockOnSleep = @"LockOnSleep";
|
NSString *const kMPSettingsKeyLockOnSleep = @"LockOnSleep";
|
||||||
NSString *const kMPSettingskeyLockOnLogout = @"LockOnLogout";
|
NSString *const kMPSettingskeyLockOnLogout = @"LockOnLogout";
|
||||||
NSString *const kMPSettingsKeyIdleLockTimeOut = @"IdleLockTimeOut";
|
NSString *const kMPSettingsKeyIdleLockTimeOut = @"IdleLockTimeOut";
|
||||||
@@ -101,6 +102,7 @@ NSString *const kMPDeprecatedSettingsKeyDefaultPasswordRounds = @"Ke
|
|||||||
kMPSettingsKeyClearPasteboardOnQuit: @YES,
|
kMPSettingsKeyClearPasteboardOnQuit: @YES,
|
||||||
kMPSettingsKeyOpenEmptyDatabaseOnLaunch: @NO,
|
kMPSettingsKeyOpenEmptyDatabaseOnLaunch: @NO,
|
||||||
kMPSettingsKeyReopenLastDatabaseOnLaunch: @YES,
|
kMPSettingsKeyReopenLastDatabaseOnLaunch: @YES,
|
||||||
|
kMPSettingsKeyFileChangeStrategy: @(MPFileChangeStrategyAsk), // Ask what to do on a file change!
|
||||||
kMPSettingsKeyLockOnSleep: @YES,
|
kMPSettingsKeyLockOnSleep: @YES,
|
||||||
kMPSettingskeyLockOnLogout: @NO,
|
kMPSettingskeyLockOnLogout: @NO,
|
||||||
kMPSettingsKeyIdleLockTimeOut: @0, // 5 minutes
|
kMPSettingsKeyIdleLockTimeOut: @0, // 5 minutes
|
||||||
@@ -207,7 +209,7 @@ NSString *const kMPDeprecatedSettingsKeyDefaultPasswordRounds = @"Ke
|
|||||||
+ (void)_migrateRememberedKeyFiles {
|
+ (void)_migrateRememberedKeyFiles {
|
||||||
/*
|
/*
|
||||||
Database file paths was stored as plain text in keyfile mapping.
|
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];
|
NSDictionary<NSString *, NSString *> *currentMapping = [[NSUserDefaults standardUserDefaults] dictionaryForKey:kMPSettingsKeyRememeberdKeysForDatabases];
|
||||||
if(!currentMapping) {
|
if(!currentMapping) {
|
||||||
@@ -225,7 +227,7 @@ NSString *const kMPDeprecatedSettingsKeyDefaultPasswordRounds = @"Ke
|
|||||||
didHash = YES;
|
didHash = YES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* keep all hasehd or unknown data */
|
/* keep all hashed or unknown data */
|
||||||
else {
|
else {
|
||||||
hashedDict[key] = currentMapping[key];
|
hashedDict[key] = currentMapping[key];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -193,19 +193,23 @@
|
|||||||
"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Sie sollten das Password und/oder den Schlüssel ändern.";
|
"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Sie sollten das Password und/oder den Schlüssel ändern.";
|
||||||
"CHANGE_PASSWORD_WITH_DOTS" = "Password ä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" = "Weder Password noch Schlüsseldatei sind festgelegt!";
|
||||||
"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_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 */
|
/* Message displayed when an open file was changed from another application */
|
||||||
"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "Die Datei wurde verändert!";
|
"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "Die Datei wurde verändert!";
|
||||||
/* Informative text displayed when the file was change form another application */
|
/* 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.";
|
"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 */
|
/* Button to ignore the changes */
|
||||||
"KEEP_MINE" = "Geladenen Inhalt behalten!";
|
"FILE_CHANGE_STRATEGY_KEEP_MINE" = "Behalte meine Version ohne Änderungen";
|
||||||
/* BUtton to reload the changes form disk */
|
/* Button to reload the changes form disk */
|
||||||
"LOAD_CHANGES" = "Veränderten Inhalt laden!";
|
"FILE_CHANGE_STRATEGY_USE_OTHER" = "Lade die andere Version und verwerfe meine Änderungen";
|
||||||
/* Merge changes into file! */
|
/* Merge changes into file! */
|
||||||
"MERGE_CHANGES" = "Inhalte zusammenführen!";
|
"FILE_CHANGE_STRATEGY_MERGE" = "Inhalte zusammenführen";
|
||||||
|
|
||||||
/* Password Input Error and Warnings */
|
/* Password Input Error and Warnings */
|
||||||
"PASSWORD_INPUT_NO_PASSWORD" = "Kein Passwort";
|
"PASSWORD_INPUT_NO_PASSWORD" = "Kein Passwort";
|
||||||
|
|||||||
@@ -199,12 +199,16 @@
|
|||||||
"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "The database file was modified!";
|
"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "The database file was modified!";
|
||||||
/* Informative text displayed when the file was change form another application */
|
/* 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?";
|
"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 */
|
/* 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 */
|
/* 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 into file! */
|
||||||
"MERGE_CHANGES" = "Merge Changes";
|
"FILE_CHANGE_STRATEGY_MERGE" = "Merge Changes";
|
||||||
|
|
||||||
/* Password Input Messages, Errors and Warning */
|
/* Password Input Messages, Errors and Warning */
|
||||||
"PASSWORD_INPUT_NO_PASSWORD" = "No Password";
|
"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