diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..2d6c9eb5d --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +custom: https://flattr.com/thing/1550529/mstarkeMacPass-on-GitHub diff --git a/.gitignore b/.gitignore index 8cdf86695..49cec965c 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ Docs/Acknowlegements/*.fls Docs/Acknowlegements/*.log Docs/Acknowlegements/*.synctex.gz docs/acknowledgement/*.lb +MacPass/en.lproj/Localizable.strings.updated diff --git a/.travis.yml b/.travis.yml index fc4a8b41c..5a17fbd41 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,16 @@ before_install: - gem install xcpretty --no-document --quiet after_success: + - xcodebuild -project MacPass.xcodeproj -exportLocalizations -localizationPath Localisations -exportLanguage de + - xcodebuild -project MacPass.xcodeproj -exportLocalizations -localizationPath Localisations -exportLanguage en + - xcodebuild -project MacPass.xcodeproj -exportLocalizations -localizationPath Localisations -exportLanguage es + - xcodebuild -project MacPass.xcodeproj -exportLocalizations -localizationPath Localisations -exportLanguage fr + - xcodebuild -project MacPass.xcodeproj -exportLocalizations -localizationPath Localisations -exportLanguage it + - xcodebuild -project MacPass.xcodeproj -exportLocalizations -localizationPath Localisations -exportLanguage nl + - xcodebuild -project MacPass.xcodeproj -exportLocalizations -localizationPath Localisations -exportLanguage ru + - xcodebuild -project MacPass.xcodeproj -exportLocalizations -localizationPath Localisations -exportLanguage sv-SE + - xcodebuild -project MacPass.xcodeproj -exportLocalizations -localizationPath Localisations -exportLanguage zh-Hans + - zip -9ry Localisations.zip Localisations - cd ./build/Build/Products/Release - zip -9ry MacPass-continuous.zip MacPass.app - shasum -a 256 MacPass-continuous.zip > MacPass-continuous.zip.sha256 @@ -30,6 +40,7 @@ deploy: api_key: secure: AEb7fgi29S3aXFt5bXz+lq1KHISumny6bf4j06JBC5gUrSs+dW0/tmVFq68XRAqigeOQU31wwv20f7OHiy+GRYDXM2xBsX9ZBQ2IilnaXlDy/mPsNcJJJsZ2gyodi3KnU0rZtTb93me2YyU86H4Na/gtaZZUKjLwCFtGGziExD8= file: + - Localisations.zip - MacPass-continuous.zip - MacPass-continuous.zip.sha256 overwrite: true diff --git a/Cartfile.resolved b/Cartfile.resolved index b03b1af6b..41d6a0333 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1,4 +1,4 @@ -github "MacPass/KeePassKit" "2.4.1" +github "MacPass/KeePassKit" "2.4.7" github "mstarke/HNHUi" "3.0" github "robbiehanson/KissXML" "5.2.3" github "sparkle-project/Sparkle" "1.20.0" diff --git a/MacPass.xcodeproj/project.pbxproj b/MacPass.xcodeproj/project.pbxproj index e7bd89063..71208fbd6 100644 --- a/MacPass.xcodeproj/project.pbxproj +++ b/MacPass.xcodeproj/project.pbxproj @@ -7,12 +7,13 @@ objects = { /* Begin PBXBuildFile section */ + 3C0CDECF21CFEDD200B2A10B /* NSTextView+MPTouchBarExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C0CDECE21CFEDD200B2A10B /* NSTextView+MPTouchBarExtension.m */; }; + 3C0CDED821D28BF700B2A10B /* MPTouchBarButtonCreator.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C0CDED721D28BF700B2A10B /* MPTouchBarButtonCreator.m */; }; 4C00E33817D8FA3500F37192 /* DDHotKeyCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C00E33717D8FA3500F37192 /* DDHotKeyCenter.m */; }; 4C00E33B17D8FAC100F37192 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C00E33A17D8FAC100F37192 /* Carbon.framework */; }; 4C01C2421764D8980016D5D0 /* MPContextMenuHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C01C2411764D8980016D5D0 /* MPContextMenuHelper.m */; }; 4C06B17F21D9691F00CD4BBC /* MPPluginStatusTableCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C06B17E21D9691F00CD4BBC /* MPPluginStatusTableCellView.m */; }; 4C0728BD17B5B7F7005A7DD9 /* MPPasswordEditWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0728BC17B5B7F7005A7DD9 /* MPPasswordEditWindowController.m */; }; - 4C0728BF17B68ED0005A7DD9 /* SavePanelAccessoryView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C0728BE17B68ED0005A7DD9 /* SavePanelAccessoryView.xib */; }; 4C08ACEA204F01C700863D99 /* keyboardTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C08ACE9204F01C700863D99 /* keyboardTemplate.pdf */; }; 4C0949591FD6B89B004F2971 /* NSUserNotification+MPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0949581FD6B89B004F2971 /* NSUserNotification+MPAdditions.m */; }; 4C09495C1FD6E510004F2971 /* MPAddCustomFieldContextMenuDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C09495B1FD6E510004F2971 /* MPAddCustomFieldContextMenuDelegate.m */; }; @@ -29,12 +30,14 @@ 4C10207F1B750E2F00BFCD59 /* MPTestAutotype.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C10207E1B750E2F00BFCD59 /* MPTestAutotype.m */; }; 4C10412C178CDD44001B5239 /* NSDate+Humanized.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C10412B178CDD44001B5239 /* NSDate+Humanized.m */; }; 4C15B74618BCA3B1003F8008 /* MPDocument+Search.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C15B74518BCA3B1003F8008 /* MPDocument+Search.m */; }; + 4C17D11E2250EFBC00C650C4 /* SavePanelAccessoryView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C17D1202250EFBC00C650C4 /* SavePanelAccessoryView.xib */; }; 4C17D8E517A1C780006C8C1E /* MPDocumentWindowDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C17D8E417A1C780006C8C1E /* MPDocumentWindowDelegate.m */; }; 4C17F105184E630200E85625 /* 14_BatteryTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C17F104184E630200E85625 /* 14_BatteryTemplate.pdf */; }; 4C17F108184E6B6C00E85625 /* 31_PrintTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C17F106184E6B6C00E85625 /* 31_PrintTemplate.pdf */; }; 4C17F109184E6B6C00E85625 /* 30_TerminalTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C17F107184E6B6C00E85625 /* 30_TerminalTemplate.pdf */; }; 4C1BDF2B1E4392640012A3F0 /* MPPluginDataViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1BDF291E4392640012A3F0 /* MPPluginDataViewController.m */; }; 4C1E9885185F71A800943563 /* MPContextBarViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1E9884185F71A800943563 /* MPContextBarViewController.m */; }; + 4C1ECAE322CCD30F00F46069 /* MPAutotypeDoctor.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1ECAE222CCD30F00F46069 /* MPAutotypeDoctor.m */; }; 4C1F7FA21E3A12E600D6A40E /* MPModifiedKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1F7FA11E3A12E600D6A40E /* MPModifiedKey.m */; }; 4C1FA07B18231900003A3F8C /* MPDocument+Autotype.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1FA07A18231900003A3F8C /* MPDocument+Autotype.m */; }; 4C224B4217DFCB2400FF6AEE /* MPNumericalInputFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C224B4117DFCB2400FF6AEE /* MPNumericalInputFormatter.m */; }; @@ -55,7 +58,6 @@ 4C3826721AD04B51007D7D67 /* addFolderTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C3826711AD04B51007D7D67 /* addFolderTemplate.pdf */; }; 4C3826741AD04BA5007D7D67 /* infoTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C3826731AD04BA5007D7D67 /* infoTemplate.pdf */; }; 4C3826761AD04C24007D7D67 /* harddiskTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C3826751AD04C24007D7D67 /* harddiskTemplate.pdf */; }; - 4C3826781AD04C8A007D7D67 /* createdTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C3826771AD04C8A007D7D67 /* createdTemplate.pdf */; }; 4C38267A1AD04CC6007D7D67 /* downloadTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C3826791AD04CC6007D7D67 /* downloadTemplate.pdf */; }; 4C3826A51AD04D8E007D7D67 /* 21_OrganizerTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C38267B1AD04D8E007D7D67 /* 21_OrganizerTemplate.pdf */; }; 4C3826A61AD04D8E007D7D67 /* 22_ASCIITemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C38267C1AD04D8E007D7D67 /* 22_ASCIITemplate.pdf */; }; @@ -157,7 +159,7 @@ 4C71BCB72167B79C00B4CBDA /* MPPluginVersionComparator.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C71BCB62167B79C00B4CBDA /* MPPluginVersionComparator.m */; }; 4C735FC02035FCBF00708D53 /* MPPluginEntryActionContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C735FBF2035FCBF00708D53 /* MPPluginEntryActionContext.m */; }; 4C73B6F1215E64A7009787F7 /* MPWelcomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C73B6EF215E64A7009787F7 /* MPWelcomeViewController.m */; }; - 4C76155C1764C04C0015A1A6 /* GeneralSettings.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C76155E1764C04C0015A1A6 /* GeneralSettings.xib */; }; + 4C76155C1764C04C0015A1A6 /* GeneralPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C76155E1764C04C0015A1A6 /* GeneralPreferences.xib */; }; 4C7615681764C0C40015A1A6 /* PasswordInputView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C76156A1764C0C40015A1A6 /* PasswordInputView.xib */; }; 4C76156D1764C0E20015A1A6 /* InspectorView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C76156F1764C0E20015A1A6 /* InspectorView.xib */; }; 4C7679BF1D76D6D8001F33D6 /* MPErrorRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C7679BE1D76D6D8001F33D6 /* MPErrorRecoveryAttempter.m */; }; @@ -203,6 +205,8 @@ 4C89F524182FB4740069C73C /* MPAutotypeCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C89F523182FB4740069C73C /* MPAutotypeCommand.m */; }; 4C8B36AB17A6ED4B005E1FF1 /* MPOutlineContextMenuDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C8B36AA17A6ED4B005E1FF1 /* MPOutlineContextMenuDelegate.m */; }; 4C8DEAA21C314D2C00D24C32 /* MPTestAutotypeDelay.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C8DEAA11C314D2C00D24C32 /* MPTestAutotypeDelay.m */; }; + 4C8E889222C223620002C7C8 /* createdTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C8E889122C223620002C7C8 /* createdTemplate.pdf */; }; + 4C8E889422C227270002C7C8 /* plugins.json in Resources */ = {isa = PBXBuildFile; fileRef = 4C8E889322C227270002C7C8 /* plugins.json */; }; 4C8F0C6E1FCEE9B900BE157F /* MPPluginConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C8F0C6D1FCEE9B900BE157F /* MPPluginConstants.m */; }; 4C8F0C711FCEF91400BE157F /* MPPickcharsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C8F0C701FCEF91400BE157F /* MPPickcharsParser.m */; }; 4C8F0C731FCF1B7A00BE157F /* MPTestPickcharsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C8F0C721FCF1B7A00BE157F /* MPTestPickcharsParser.m */; }; @@ -211,7 +215,7 @@ 4C9BFFFB1FD19B5400264B16 /* MPPrettyPasswordTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C9BFFFA1FD19B5400264B16 /* MPPrettyPasswordTransformer.m */; }; 4CA08DA017A831B200A6544B /* MPAddEntryContextMenuDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA08D9F17A831B200A6544B /* MPAddEntryContextMenuDelegate.m */; }; 4CA0B2ED15BCADAC00654E32 /* PreferencesWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CA0B2EC15BCADAC00654E32 /* PreferencesWindow.xib */; }; - 4CA0B2F915BCAF6700654E32 /* MPGeneralSettingsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA0B2F815BCAF6700654E32 /* MPGeneralSettingsController.m */; }; + 4CA0B2F915BCAF6700654E32 /* MPGeneralPreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA0B2F815BCAF6700654E32 /* MPGeneralPreferencesController.m */; }; 4CA0B2FC15BCAF8600654E32 /* MPPreferencesWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA0B2FB15BCAF8600654E32 /* MPPreferencesWindowController.m */; }; 4CA0F3ED1A3074B50067C0E5 /* MPWindowTitleComboBoxDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA0F3EC1A3074B50067C0E5 /* MPWindowTitleComboBoxDelegate.m */; }; 4CA182741F963FF600DD4A4A /* MPTitlebarColorAccessoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA182721F963FF600DD4A4A /* MPTitlebarColorAccessoryViewController.m */; }; @@ -225,6 +229,7 @@ 4CAD338F205169D30068587E /* MPPluginRepositoryItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CAD338E205169D30068587E /* MPPluginRepositoryItem.m */; }; 4CAD748C15B889B700104512 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748B15B889B700104512 /* Security.framework */; }; 4CAD748E15B88AC100104512 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748D15B88AC100104512 /* libz.dylib */; }; + 4CAD8AA622CF397B0090B2DD /* MPAutotypeDoctorReportViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CAD8AA422CF397B0090B2DD /* MPAutotypeDoctorReportViewController.m */; }; 4CB33F861EAF54A000C9341E /* KPKNode+MPIsHistory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CB33F851EAF54A000C9341E /* KPKNode+MPIsHistory.m */; }; 4CB9339916D3A0DD00A13B5D /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 4CB9339716D3A0DD00A13B5D /* Credits.rtf */; }; 4CBA2ABA17074C07006D8139 /* MPSettingsHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CBA2AB917074C07006D8139 /* MPSettingsHelper.m */; }; @@ -233,7 +238,6 @@ 4CC281891C0F675B00B9174D /* HNHUi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CC281881C0F675B00B9174D /* HNHUi.framework */; }; 4CC59C2721AF0893005E8D6B /* MPPathControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC59C2621AF0893005E8D6B /* MPPathControl.m */; }; 4CC663E7216F7A7100E33965 /* MPPluginRepositoryBrowserViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC663E5216F7A7100E33965 /* MPPluginRepositoryBrowserViewController.m */; }; - 4CC663E8216F7A7100E33965 /* PluginRepositoryBrowserView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CC663E6216F7A7100E33965 /* PluginRepositoryBrowserView.xib */; }; 4CC6DB7A17D23719002C6091 /* KPKNode+IconImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC6DB7917D23719002C6091 /* KPKNode+IconImage.m */; }; 4CCA8E9B18D91ED9001A6754 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CCA8E9A18D91ED9001A6754 /* Quartz.framework */; }; 4CCCE8011D75CA48006AA951 /* MPArrayController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CCCE8001D75CA48006AA951 /* MPArrayController.m */; }; @@ -247,7 +251,7 @@ 4CD4EE131FC7284000EA6EB3 /* MPPickcharsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD4EE111FC7284000EA6EB3 /* MPPickcharsViewController.m */; }; 4CD5D705177A5F3300100649 /* MPDatabaseSettingsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD5D704177A5F3300100649 /* MPDatabaseSettingsWindowController.m */; }; 4CD60C131C104AD4005BE5F8 /* HNHUi.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4CC281881C0F675B00B9174D /* HNHUi.framework */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 4CD7223B17A7CB0700F5A1E1 /* MPWorkflowSettingsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD7223A17A7CB0700F5A1E1 /* MPWorkflowSettingsController.m */; }; + 4CD7223B17A7CB0700F5A1E1 /* MPWorkflowPreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD7223A17A7CB0700F5A1E1 /* MPWorkflowPreferencesController.m */; }; 4CD78ABC16D155FF00768A1D /* 07_NotepadTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78AB716D155FF00768A1D /* 07_NotepadTemplate.pdf */; }; 4CD78ABD16D155FF00768A1D /* 08_SocketTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78AB816D155FF00768A1D /* 08_SocketTemplate.pdf */; }; 4CD78ABE16D155FF00768A1D /* 09_IdentityTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78AB916D155FF00768A1D /* 09_IdentityTemplate.pdf */; }; @@ -277,18 +281,20 @@ 4CF6653820E67A140008A25C /* PluginDataView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CF6653A20E67A140008A25C /* PluginDataView.xib */; }; 4CF6C3021FBF39BF0055AD03 /* MPPluginTabelCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF6C3011FBF39BF0055AD03 /* MPPluginTabelCellView.m */; }; 4CF6C711176F4533007A811D /* MPStringLengthValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF6C710176F4533007A811D /* MPStringLengthValueTransformer.m */; }; - 4CF78064176E75AD0032EE71 /* MPIntegrationSettingsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF78063176E75AD0032EE71 /* MPIntegrationSettingsController.m */; }; - 4CFB18E418A17FA20097A34B /* MPUpdateSettingsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CFB18E318A17FA20097A34B /* MPUpdateSettingsController.m */; }; + 4CF78064176E75AD0032EE71 /* MPIntegrationPreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF78063176E75AD0032EE71 /* MPIntegrationPreferencesController.m */; }; + 4CFB18E418A17FA20097A34B /* MPUpdatePreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CFB18E318A17FA20097A34B /* MPUpdatePreferencesController.m */; }; 4CFC53BF16E94729007396BE /* MPShadowBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CFC53BE16E94729007396BE /* MPShadowBox.m */; }; 6021FE3B18E1341900C3BC51 /* EntryInspectorView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6021FE3D18E1341900C3BC51 /* EntryInspectorView.xib */; }; 6021FE4B18E13F1D00C3BC51 /* GroupInspectorView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6021FE4D18E13F1D00C3BC51 /* GroupInspectorView.xib */; }; - 6021FE5618E1429500C3BC51 /* IntegrationSettings.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6021FE5818E1429500C3BC51 /* IntegrationSettings.xib */; }; - 6021FE6118E15D9100C3BC51 /* WorkflowSettings.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6021FE6318E15D9100C3BC51 /* WorkflowSettings.xib */; }; - 6021FE6C18E15E6D00C3BC51 /* UpdateSettings.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6021FE6E18E15E6D00C3BC51 /* UpdateSettings.xib */; }; + 6021FE5618E1429500C3BC51 /* IntegrationPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6021FE5818E1429500C3BC51 /* IntegrationPreferences.xib */; }; + 6021FE6118E15D9100C3BC51 /* WorkflowPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6021FE6318E15D9100C3BC51 /* WorkflowPreferences.xib */; }; + 6021FE6C18E15E6D00C3BC51 /* UpdatePreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6021FE6E18E15E6D00C3BC51 /* UpdatePreferences.xib */; }; 6021FE7718E15FF300C3BC51 /* DatePickingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6021FE7918E15FF300C3BC51 /* DatePickingView.xib */; }; 6021FE8218E160BC00C3BC51 /* PasswordEditWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6021FE8418E160BC00C3BC51 /* PasswordEditWindow.xib */; }; 6021FE8D18E1617300C3BC51 /* PasswordCreatorView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6021FE8F18E1617300C3BC51 /* PasswordCreatorView.xib */; }; 6021FE9818E1650F00C3BC51 /* DatabaseSettingsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6021FE9A18E1650F00C3BC51 /* DatabaseSettingsWindow.xib */; }; + 7837112C225540D1009BD28D /* PluginRepositoryBrowserView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7837112E225540D1009BD28D /* PluginRepositoryBrowserView.xib */; }; + 78E1F8B022E3A5D600E738AE /* AutotypeDoctorReportViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 78E1F8B222E3A5D600E738AE /* AutotypeDoctorReportViewController.xib */; }; FA13910C1F9CD9EB0033D256 /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = FA13910A1F9CD9EB0033D256 /* Localizable.stringsdict */; }; FA9FD3271FB5E8F4003CEDD6 /* AutotypeCandidateSelectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = FA9FD3291FB5E8F4003CEDD6 /* AutotypeCandidateSelectionView.xib */; }; FA9FD32C1FB5EDD3003CEDD6 /* AutotypeBuilderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = FA9FD32E1FB5EDD3003CEDD6 /* AutotypeBuilderView.xib */; }; @@ -310,13 +316,17 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 3C0CDECD21CFED9000B2A10B /* NSTextView+MPTouchBarExtension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSTextView+MPTouchBarExtension.h"; sourceTree = ""; }; + 3C0CDECE21CFEDD200B2A10B /* NSTextView+MPTouchBarExtension.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSTextView+MPTouchBarExtension.m"; sourceTree = ""; }; + 3C0CDED721D28BF700B2A10B /* MPTouchBarButtonCreator.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPTouchBarButtonCreator.m; sourceTree = ""; }; + 3C0CDED921D28C0E00B2A10B /* MPTouchBarButtonCreator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPTouchBarButtonCreator.h; sourceTree = ""; }; 4825CC811C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/DatabaseSettingsWindow.strings; sourceTree = ""; }; 4825CC821C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/PasswordEditWindow.strings; sourceTree = ""; }; 4825CC831C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/WelcomeView.strings; sourceTree = ""; }; - 4825CC841C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/GeneralSettings.strings; sourceTree = ""; }; - 4825CC851C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/IntegrationSettings.strings; sourceTree = ""; }; - 4825CC861C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/WorkflowSettings.strings; sourceTree = ""; }; - 4825CC871C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/UpdateSettings.strings; sourceTree = ""; }; + 4825CC841C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/GeneralPreferences.strings; sourceTree = ""; }; + 4825CC851C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/IntegrationPreferences.strings; sourceTree = ""; }; + 4825CC861C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/WorkflowPreferences.strings; sourceTree = ""; }; + 4825CC871C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/UpdatePreferences.strings; sourceTree = ""; }; 4825CC881C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/PluginPreferences.strings; sourceTree = ""; }; 4825CC891C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/MainMenu.strings; sourceTree = ""; }; 4825CC8A1C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/PasswordInputView.strings; sourceTree = ""; }; @@ -327,8 +337,6 @@ 4825CC8F1C414D58003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/IconSelection.strings; sourceTree = ""; }; 4825CC901C414D58003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/DatePickingView.strings; sourceTree = ""; }; 4825CC911C414D58003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/ReferenceBuilderView.strings; sourceTree = ""; }; - 4825CC921C414D58003E37E9 /* it */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; - 4825CC931C414D58003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = it; path = it.lproj/Credits.rtf; sourceTree = ""; }; 4825CC941C414D58003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; 4825CC961C414D58003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; 4C00E33617D8FA3500F37192 /* DDHotKeyCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDHotKeyCenter.h; path = DDHotKey/DDHotKeyCenter.h; sourceTree = ""; }; @@ -340,9 +348,8 @@ 4C06B17E21D9691F00CD4BBC /* MPPluginStatusTableCellView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginStatusTableCellView.m; sourceTree = ""; }; 4C0728BB17B5B7F7005A7DD9 /* MPPasswordEditWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasswordEditWindowController.h; sourceTree = ""; }; 4C0728BC17B5B7F7005A7DD9 /* MPPasswordEditWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasswordEditWindowController.m; sourceTree = ""; }; - 4C0728BE17B68ED0005A7DD9 /* SavePanelAccessoryView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SavePanelAccessoryView.xib; sourceTree = ""; }; 4C088C401FD9A42800F92502 /* MPPickcharsParser_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPPickcharsParser_Private.h; sourceTree = ""; }; - 4C08ACE9204F01C700863D99 /* keyboardTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = keyboardTemplate.pdf; path = Icons/keyboardTemplate.pdf; sourceTree = ""; }; + 4C08ACE9204F01C700863D99 /* keyboardTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = keyboardTemplate.pdf; sourceTree = ""; }; 4C0949571FD6B89B004F2971 /* NSUserNotification+MPAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSUserNotification+MPAdditions.h"; sourceTree = ""; }; 4C0949581FD6B89B004F2971 /* NSUserNotification+MPAdditions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSUserNotification+MPAdditions.m"; sourceTree = ""; }; 4C09495A1FD6E510004F2971 /* MPAddCustomFieldContextMenuDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPAddCustomFieldContextMenuDelegate.h; sourceTree = ""; }; @@ -353,10 +360,8 @@ 4C0B038A18E36DA400B9F9C9 /* MPFixAutotypeWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPFixAutotypeWindowController.m; sourceTree = ""; }; 4C0B038B18E36DA400B9F9C9 /* FixAutotypeWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FixAutotypeWindow.xib; sourceTree = ""; }; 4C0B5339205C1516003D277E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PickcharsView.xib; sourceTree = ""; }; - 4C0B533C205C151D003D277E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PickcharsView.strings; sourceTree = ""; }; 4C0B533E205C1526003D277E /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PickcharsView.strings; sourceTree = ""; }; 4C0B5340205C1561003D277E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PickfieldView.xib; sourceTree = ""; }; - 4C0B5343205C1563003D277E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PickfieldView.strings; sourceTree = ""; }; 4C0B5345205C1567003D277E /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PickfieldView.strings; sourceTree = ""; }; 4C0C59EF18B17F10009C7B76 /* DDHotKeyUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDHotKeyUtilities.m; path = DDHotKey/DDHotKeyUtilities.m; sourceTree = ""; }; 4C0C59F018B17F10009C7B76 /* DDHotKeyUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = DDHotKeyUtilities.h; path = DDHotKey/DDHotKeyUtilities.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; @@ -364,7 +369,6 @@ 4C0F043E2147A6FA000B8568 /* MPCustomFieldTableView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPCustomFieldTableView.h; sourceTree = ""; }; 4C0F043F2147A6FA000B8568 /* MPCustomFieldTableView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPCustomFieldTableView.m; sourceTree = ""; }; 4C0F04422147FB49000B8568 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/OpenPanelAccessoryView.xib; sourceTree = ""; }; - 4C0F04452147FB4D000B8568 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/OpenPanelAccessoryView.strings; sourceTree = ""; }; 4C0F04472147FB4E000B8568 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/OpenPanelAccessoryView.strings; sourceTree = ""; }; 4C0F647917B6BC9C00D9522A /* MPSavePanelAccessoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPSavePanelAccessoryViewController.h; sourceTree = ""; }; 4C0F647A17B6BC9C00D9522A /* MPSavePanelAccessoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPSavePanelAccessoryViewController.m; sourceTree = ""; }; @@ -372,20 +376,35 @@ 4C10412A178CDD44001B5239 /* NSDate+Humanized.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+Humanized.h"; sourceTree = ""; }; 4C10412B178CDD44001B5239 /* NSDate+Humanized.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Humanized.m"; sourceTree = ""; }; 4C15B74518BCA3B1003F8008 /* MPDocument+Search.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MPDocument+Search.m"; sourceTree = ""; }; - 4C168CB02216CEC300BB1EB0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/GeneralSettings.strings; sourceTree = ""; }; + 4C17D11F2250EFBC00C650C4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/SavePanelAccessoryView.xib; sourceTree = ""; }; + 4C17D1222250EFBF00C650C4 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/SavePanelAccessoryView.strings; sourceTree = ""; }; + 4C17D1262250EFC900C650C4 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/SavePanelAccessoryView.strings; sourceTree = ""; }; 4C17D8E317A1C780006C8C1E /* MPDocumentWindowDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDocumentWindowDelegate.h; sourceTree = ""; }; 4C17D8E417A1C780006C8C1E /* MPDocumentWindowDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDocumentWindowDelegate.m; sourceTree = ""; }; 4C17F104184E630200E85625 /* 14_BatteryTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 14_BatteryTemplate.pdf; sourceTree = ""; }; 4C17F106184E6B6C00E85625 /* 31_PrintTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 31_PrintTemplate.pdf; sourceTree = ""; }; 4C17F107184E6B6C00E85625 /* 30_TerminalTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 30_TerminalTemplate.pdf; sourceTree = ""; }; + 4C1888CF230FBC080054A38F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/AutotypeDoctorReportViewController.strings; sourceTree = ""; }; + 4C1888D0230FFEE20054A38F /* it */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; 4C1BDF281E4392640012A3F0 /* MPPluginDataViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPluginDataViewController.h; sourceTree = ""; }; 4C1BDF291E4392640012A3F0 /* MPPluginDataViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPluginDataViewController.m; sourceTree = ""; }; + 4C1D562F2271F4BC00C3E594 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = fr; path = fr.lproj/Localizable.stringsdict; sourceTree = ""; }; + 4C1D56302271F4BC00C3E594 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PickcharsView.strings; sourceTree = ""; }; + 4C1D56312271F4BC00C3E594 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PluginDataView.strings; sourceTree = ""; }; + 4C1D56322271F4BC00C3E594 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AutotypeCandidateSelectionView.strings; sourceTree = ""; }; + 4C1D56332271F4BC00C3E594 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/OpenPanelAccessoryView.strings; sourceTree = ""; }; + 4C1D56342271F4BC00C3E594 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/SavePanelAccessoryView.strings; sourceTree = ""; }; + 4C1D56352271F4BC00C3E594 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AutotypeBuilderView.strings; sourceTree = ""; }; + 4C1D56362271F4BC00C3E594 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ReferenceBuilderView.strings; sourceTree = ""; }; + 4C1D56372271F4BC00C3E594 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PickfieldView.strings; sourceTree = ""; }; + 4C1D56382271F4BC00C3E594 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PluginRepositoryBrowserView.strings; sourceTree = ""; }; 4C1E9883185F71A800943563 /* MPContextBarViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPContextBarViewController.h; sourceTree = ""; }; 4C1E9884185F71A800943563 /* MPContextBarViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPContextBarViewController.m; sourceTree = ""; }; + 4C1ECAE122CCD30F00F46069 /* MPAutotypeDoctor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPAutotypeDoctor.h; sourceTree = ""; }; + 4C1ECAE222CCD30F00F46069 /* MPAutotypeDoctor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPAutotypeDoctor.m; sourceTree = ""; }; 4C1F7FA01E3A12E600D6A40E /* MPModifiedKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPModifiedKey.h; sourceTree = ""; }; 4C1F7FA11E3A12E600D6A40E /* MPModifiedKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPModifiedKey.m; sourceTree = ""; }; 4C1FA07A18231900003A3F8C /* MPDocument+Autotype.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MPDocument+Autotype.m"; sourceTree = ""; }; - 4C21F29D195B39B9002D610D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/MainMenu.strings; sourceTree = ""; }; 4C21F29F195B3A48002D610D /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/MainMenu.strings; sourceTree = ""; }; 4C224B4017DFCB2300FF6AEE /* MPNumericalInputFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPNumericalInputFormatter.h; sourceTree = ""; }; 4C224B4117DFCB2400FF6AEE /* MPNumericalInputFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPNumericalInputFormatter.m; sourceTree = ""; }; @@ -417,11 +436,10 @@ 4C370EFD215B76CB00703AAE /* MPOutlineTableCellView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPOutlineTableCellView.m; sourceTree = ""; }; 4C37A83E15B8B474005EF8EE /* MPOutlineDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPOutlineDataSource.h; sourceTree = ""; }; 4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOutlineDataSource.m; sourceTree = ""; }; - 4C3826711AD04B51007D7D67 /* addFolderTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = addFolderTemplate.pdf; path = Icons/addFolderTemplate.pdf; sourceTree = ""; }; - 4C3826731AD04BA5007D7D67 /* infoTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = infoTemplate.pdf; path = Icons/infoTemplate.pdf; sourceTree = ""; }; - 4C3826751AD04C24007D7D67 /* harddiskTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = harddiskTemplate.pdf; path = Icons/harddiskTemplate.pdf; sourceTree = ""; }; - 4C3826771AD04C8A007D7D67 /* createdTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = createdTemplate.pdf; path = Icons/createdTemplate.pdf; sourceTree = ""; }; - 4C3826791AD04CC6007D7D67 /* downloadTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = downloadTemplate.pdf; path = Icons/downloadTemplate.pdf; sourceTree = ""; }; + 4C3826711AD04B51007D7D67 /* addFolderTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = addFolderTemplate.pdf; sourceTree = ""; }; + 4C3826731AD04BA5007D7D67 /* infoTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = infoTemplate.pdf; sourceTree = ""; }; + 4C3826751AD04C24007D7D67 /* harddiskTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = harddiskTemplate.pdf; sourceTree = ""; }; + 4C3826791AD04CC6007D7D67 /* downloadTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = downloadTemplate.pdf; sourceTree = ""; }; 4C38267B1AD04D8E007D7D67 /* 21_OrganizerTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 21_OrganizerTemplate.pdf; sourceTree = ""; }; 4C38267C1AD04D8E007D7D67 /* 22_ASCIITemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 22_ASCIITemplate.pdf; sourceTree = ""; }; 4C38267D1AD04D8E007D7D67 /* 23_IconsTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 23_IconsTemplate.pdf; sourceTree = ""; }; @@ -472,10 +490,10 @@ 4C3C4EAE18D7039300153127 /* MPValueTransformerHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPValueTransformerHelper.m; sourceTree = ""; }; 4C4161021F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatabaseSettingsWindow.strings; sourceTree = ""; }; 4C4161031F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PasswordEditWindow.strings; sourceTree = ""; }; - 4C4161041F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/GeneralSettings.strings; sourceTree = ""; }; - 4C4161051F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/IntegrationSettings.strings; sourceTree = ""; }; - 4C4161061F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/WorkflowSettings.strings; sourceTree = ""; }; - 4C4161071F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/UpdateSettings.strings; sourceTree = ""; }; + 4C4161041F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/GeneralPreferences.strings; sourceTree = ""; }; + 4C4161051F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/IntegrationPreferences.strings; sourceTree = ""; }; + 4C4161061F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/WorkflowPreferences.strings; sourceTree = ""; }; + 4C4161071F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/UpdatePreferences.strings; sourceTree = ""; }; 4C4161081F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PluginPreferences.strings; sourceTree = ""; }; 4C4161091F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InspectorView.strings; sourceTree = ""; }; 4C41610A1F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/GroupInspectorView.strings; sourceTree = ""; }; @@ -488,14 +506,12 @@ 4C4161111F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/WelcomeView.strings; sourceTree = ""; }; 4C4161121F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/MainMenu.strings; sourceTree = ""; }; 4C4161131F50333C003BC0AF /* es */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; - 4C4161141F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = es; path = es.lproj/Credits.rtf; sourceTree = ""; }; 4C4161151F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; 4C4161171F50333C003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; 4C431BCB16E2A82700700A81 /* MPPasteBoardController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasteBoardController.h; sourceTree = ""; }; 4C431BCC16E2A82700700A81 /* MPPasteBoardController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasteBoardController.m; sourceTree = ""; }; 4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OverlayWindow.xib; sourceTree = ""; }; 4C43B02F1E266A3A000CB4D7 /* pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 4C43B0301E266A41000CB4D7 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = pl; path = pl.lproj/Credits.rtf; sourceTree = ""; }; 4C45FB1A178E09ED0010007D /* MacPassTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MacPassTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 4C45FB20178E09ED0010007D /* MacPassTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MacPassTests-Info.plist"; sourceTree = ""; }; 4C45FB22178E09ED0010007D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -507,6 +523,7 @@ 4C473A8518AFD7250073FD2E /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; 4C4A100D176286FD00BBF2CA /* MPTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPTableView.h; sourceTree = ""; }; 4C4A100E176286FD00BBF2CA /* MPTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPTableView.m; sourceTree = ""; }; + 4C4B2ED122D8CA6100EB6BFD /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PluginRepositoryBrowserView.strings; sourceTree = ""; }; 4C4B728318E4B9B400A1A5D5 /* MPDockTileHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDockTileHelper.h; sourceTree = ""; }; 4C4B728418E4B9B400A1A5D5 /* MPDockTileHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDockTileHelper.m; sourceTree = ""; }; 4C4B7EE617A45EC5000234C7 /* MPDatePickingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDatePickingViewController.h; sourceTree = ""; }; @@ -545,16 +562,14 @@ 4C5A11FC1708DE8700223D8A /* MPPasswordCreatorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasswordCreatorViewController.m; sourceTree = ""; }; 4C5ADC3017830B09004E1E8D /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InspectorView.strings; sourceTree = ""; }; 4C5CD34017D158DE000B7F38 /* fr */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; - 4C5CD34117D158DE000B7F38 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = fr; path = fr.lproj/Credits.rtf; sourceTree = ""; }; 4C5CD34217D158DE000B7F38 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; 4C5CD34417D158DE000B7F38 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; - 4C5CD34517D158F5000B7F38 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/GeneralSettings.strings; sourceTree = ""; }; + 4C5CD34517D158F5000B7F38 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/GeneralPreferences.strings; sourceTree = ""; }; 4C5CD34617D15912000B7F38 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/MainMenu.strings; sourceTree = ""; }; 4C5CD34717D1591A000B7F38 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PasswordInputView.strings; sourceTree = ""; }; 4C5CD34817D15920000B7F38 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InspectorView.strings; sourceTree = ""; }; 4C5EF814218CA03F0003C00E /* MPAutotypeParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPAutotypeParser.h; sourceTree = ""; }; 4C5EF815218CA03F0003C00E /* MPAutotypeParser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPAutotypeParser.m; sourceTree = ""; }; - 4C5F72851FC4351E00929153 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InspectorView.strings; sourceTree = ""; }; 4C5FE9AC17843CE20001D5A8 /* MPSelectedAttachmentTableCellView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPSelectedAttachmentTableCellView.h; sourceTree = ""; }; 4C5FE9AD17843CE20001D5A8 /* MPSelectedAttachmentTableCellView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPSelectedAttachmentTableCellView.m; sourceTree = ""; }; 4C61EA0116D2FD0800AC519E /* MPOutlineViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPOutlineViewController.h; sourceTree = ""; }; @@ -575,7 +590,6 @@ 4C6BC65F1A36717E00BDDF3D /* MPDatabaseSearch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDatabaseSearch.m; sourceTree = ""; }; 4C6D1D24178579570014C5A5 /* 48_FolderTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 48_FolderTemplate.pdf; sourceTree = ""; }; 4C6DCC461FA2457900C8AD3F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ContextBar.xib; sourceTree = ""; }; - 4C6DCC491FA2457C00C8AD3F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/ContextBar.strings; sourceTree = ""; }; 4C6DCC4B1FA2457D00C8AD3F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/ContextBar.strings; sourceTree = ""; }; 4C6DCC4D1FA2457E00C8AD3F /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ContextBar.strings; sourceTree = ""; }; 4C6DCC4F1FA2457F00C8AD3F /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/ContextBar.strings"; sourceTree = ""; }; @@ -597,7 +611,6 @@ 4C7155E61A10DB7600979307 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/IconSelection.strings"; sourceTree = ""; }; 4C7155E81A10DB7700979307 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/IconSelection.strings; sourceTree = ""; }; 4C7155EA1A10DB7800979307 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/IconSelection.strings; sourceTree = ""; }; - 4C7155EC1A10DB7900979307 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/IconSelection.strings; sourceTree = ""; }; 4C71BCB32167B75900B4CBDA /* MPTestPluginVersionComparator.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPTestPluginVersionComparator.m; sourceTree = ""; }; 4C71BCB52167B79C00B4CBDA /* MPPluginVersionComparator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPPluginVersionComparator.h; sourceTree = ""; }; 4C71BCB62167B79C00B4CBDA /* MPPluginVersionComparator.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginVersionComparator.m; sourceTree = ""; }; @@ -605,17 +618,14 @@ 4C735FBF2035FCBF00708D53 /* MPPluginEntryActionContext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginEntryActionContext.m; sourceTree = ""; }; 4C73B6EE215E64A7009787F7 /* MPWelcomeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPWelcomeViewController.h; sourceTree = ""; }; 4C73B6EF215E64A7009787F7 /* MPWelcomeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPWelcomeViewController.m; sourceTree = ""; }; - 4C73EB941FBB58730033000F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatabaseSettingsWindow.strings; sourceTree = ""; }; 4C73EB951FBB5A8F0033000F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/AutotypeCandidateSelectionView.strings; sourceTree = ""; }; 4C73EB961FBB5A910033000F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/AutotypeBuilderView.strings; sourceTree = ""; }; - 4C76155F1764C0590015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/GeneralSettings.xib; sourceTree = ""; }; + 4C76155F1764C0590015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/GeneralPreferences.xib; sourceTree = ""; }; 4C7615601764C05A0015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; 4C76156B1764C0C80015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PasswordInputView.xib; sourceTree = ""; }; - 4C76156C1764C0CC0015A1A6 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PasswordInputView.strings; sourceTree = ""; }; 4C7615701764C0E80015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/InspectorView.xib; sourceTree = ""; }; 4C7615751764C4A40015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PasswordInputView.strings; sourceTree = ""; }; 4C7615771764C4A40015A1A6 /* de */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; - 4C7615781764C4A50015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = de; path = de.lproj/Credits.rtf; sourceTree = ""; }; 4C7615791764C4A50015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; }; 4C7679BC1D75E690001F33D6 /* MPModelChangeObserving.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPModelChangeObserving.h; sourceTree = ""; }; 4C7679BD1D76D6D8001F33D6 /* MPErrorRecoveryAttempter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPErrorRecoveryAttempter.h; sourceTree = ""; }; @@ -633,18 +643,16 @@ 4C77E36A15B84A240093A587 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; 4C77E36B15B84A240093A587 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 4C77E36E15B84A240093A587 /* MacPass-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MacPass-Info.plist"; sourceTree = ""; }; - 4C77E37015B84A240093A587 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 4C77E37215B84A240093A587 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 4C77E37415B84A240093A587 /* MacPass-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MacPass-Prefix.pch"; sourceTree = ""; }; 4C77E37815B84A240093A587 /* MPAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPAppDelegate.h; sourceTree = ""; }; 4C77E37915B84A240093A587 /* MPAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPAppDelegate.m; sourceTree = ""; }; - 4C79B6401FB0562D008250D8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/ReferenceBuilderView.strings; sourceTree = ""; }; 4C7ABA4317BAEC6700FF5799 /* 15_ScannerTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 15_ScannerTemplate.pdf; sourceTree = ""; }; 4C7ABA4417BAEC6700FF5799 /* 16_BrowserTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 16_BrowserTemplate.pdf; sourceTree = ""; }; 4C7ABA4517BAEC6700FF5799 /* 17_CDRomTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 17_CDRomTemplate.pdf; sourceTree = ""; }; 4C7ABA4617BAEC6700FF5799 /* 19_EmailTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 19_EmailTemplate.pdf; sourceTree = ""; }; 4C7ABA4717BAEC6700FF5799 /* 20_MiscTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 20_MiscTemplate.pdf; sourceTree = ""; }; - 4C7ABA4D17BAEC7000FF5799 /* addEntryTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = addEntryTemplate.pdf; path = Icons/addEntryTemplate.pdf; sourceTree = ""; }; + 4C7ABA4D17BAEC7000FF5799 /* addEntryTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = addEntryTemplate.pdf; sourceTree = ""; }; 4C7B63621C0CB51F00D7038C /* NSValueTransformer+TransformerKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSValueTransformer+TransformerKit.h"; sourceTree = ""; }; 4C7B63631C0CB51F00D7038C /* NSValueTransformer+TransformerKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSValueTransformer+TransformerKit.m"; sourceTree = ""; }; 4C7B63641C0CB51F00D7038C /* TransformerKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TransformerKit.h; sourceTree = ""; }; @@ -668,7 +676,6 @@ 4C7F8B761A10B69400CCB83D /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/WelcomeView.strings"; sourceTree = ""; }; 4C7F8B781A10B69500CCB83D /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/WelcomeView.strings; sourceTree = ""; }; 4C7F8B7A1A10B69700CCB83D /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/WelcomeView.strings; sourceTree = ""; }; - 4C7F8B7C1A10B69800CCB83D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/WelcomeView.strings; sourceTree = ""; }; 4C8030491E2FBAA300133E4C /* MPTestKeyMapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPTestKeyMapper.m; sourceTree = ""; }; 4C81867B216664C70068DAFB /* MPPluginRepositoryItemVersionInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPPluginRepositoryItemVersionInfo.h; sourceTree = ""; }; 4C81867C216664C70068DAFB /* MPPluginRepositoryItemVersionInfo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginRepositoryItemVersionInfo.m; sourceTree = ""; }; @@ -681,10 +688,10 @@ 4C840C441D773E5D0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/DatabaseSettingsWindow.strings; sourceTree = ""; }; 4C840C451D773E5D0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/PasswordEditWindow.strings; sourceTree = ""; }; 4C840C461D773E5D0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/WelcomeView.strings; sourceTree = ""; }; - 4C840C471D773E5D0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/GeneralSettings.strings; sourceTree = ""; }; - 4C840C481D773E5D0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/IntegrationSettings.strings; sourceTree = ""; }; - 4C840C491D773E5D0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/WorkflowSettings.strings; sourceTree = ""; }; - 4C840C4A1D773E5D0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/UpdateSettings.strings; sourceTree = ""; }; + 4C840C471D773E5D0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/GeneralPreferences.strings; sourceTree = ""; }; + 4C840C481D773E5D0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/IntegrationPreferences.strings; sourceTree = ""; }; + 4C840C491D773E5D0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/WorkflowPreferences.strings; sourceTree = ""; }; + 4C840C4A1D773E5D0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/UpdatePreferences.strings; sourceTree = ""; }; 4C840C4B1D773E5E0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/PluginPreferences.strings; sourceTree = ""; }; 4C840C4C1D773E5E0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/MainMenu.strings; sourceTree = ""; }; 4C840C4D1D773E5E0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/PasswordInputView.strings; sourceTree = ""; }; @@ -712,6 +719,8 @@ 4C8B36AA17A6ED4B005E1FF1 /* MPOutlineContextMenuDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOutlineContextMenuDelegate.m; sourceTree = ""; }; 4C8C10061FC489D8003DDD5E /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/PluginPreferences.strings; sourceTree = ""; }; 4C8DEAA11C314D2C00D24C32 /* MPTestAutotypeDelay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPTestAutotypeDelay.m; sourceTree = ""; }; + 4C8E889122C223620002C7C8 /* createdTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = createdTemplate.pdf; sourceTree = ""; }; + 4C8E889322C227270002C7C8 /* plugins.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = plugins.json; path = Resources/plugins.json; sourceTree = ""; }; 4C8F0C6C1FCEE98900BE157F /* MPPluginConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPPluginConstants.h; sourceTree = ""; }; 4C8F0C6D1FCEE9B900BE157F /* MPPluginConstants.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginConstants.m; sourceTree = ""; }; 4C8F0C6F1FCEF91400BE157F /* MPPickcharsParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPPickcharsParser.h; sourceTree = ""; }; @@ -720,8 +729,6 @@ 4C8F0C771FD05A6A00BE157F /* NSString+MPPrettyPasswordDisplay.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSString+MPPrettyPasswordDisplay.h"; sourceTree = ""; }; 4C8F0C781FD05A6A00BE157F /* NSString+MPPrettyPasswordDisplay.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSString+MPPrettyPasswordDisplay.m"; sourceTree = ""; }; 4C8FB9FA1FC2D0EF003691AA /* MPPlugin_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPPlugin_Private.h; sourceTree = ""; }; - 4C93C5701FBDFEF700F36855 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/AutotypeCandidateSelectionView.strings; sourceTree = ""; }; - 4C93C5711FBDFEF900F36855 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/AutotypeBuilderView.strings; sourceTree = ""; }; 4C978E0C19AE54AB003067DF /* MPFlagsHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPFlagsHelper.m; sourceTree = ""; }; 4C97CCEF1FA727DC00E58F8C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; 4C9BFFF91FD19B5400264B16 /* MPPrettyPasswordTransformer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPPrettyPasswordTransformer.h; sourceTree = ""; }; @@ -729,8 +736,8 @@ 4CA08D9E17A831B200A6544B /* MPAddEntryContextMenuDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPAddEntryContextMenuDelegate.h; sourceTree = ""; }; 4CA08D9F17A831B200A6544B /* MPAddEntryContextMenuDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPAddEntryContextMenuDelegate.m; sourceTree = ""; }; 4CA0B2EC15BCADAC00654E32 /* PreferencesWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PreferencesWindow.xib; sourceTree = ""; }; - 4CA0B2F715BCAF6700654E32 /* MPGeneralSettingsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPGeneralSettingsController.h; sourceTree = ""; }; - 4CA0B2F815BCAF6700654E32 /* MPGeneralSettingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPGeneralSettingsController.m; sourceTree = ""; }; + 4CA0B2F715BCAF6700654E32 /* MPGeneralPreferencesController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPGeneralPreferencesController.h; sourceTree = ""; }; + 4CA0B2F815BCAF6700654E32 /* MPGeneralPreferencesController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPGeneralPreferencesController.m; sourceTree = ""; }; 4CA0B2FA15BCAF8600654E32 /* MPPreferencesWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPreferencesWindowController.h; sourceTree = ""; }; 4CA0B2FB15BCAF8600654E32 /* MPPreferencesWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPreferencesWindowController.m; sourceTree = ""; }; 4CA0B30D15BCB6FD00654E32 /* MPPreferencesTab.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPPreferencesTab.h; sourceTree = ""; }; @@ -742,7 +749,6 @@ 4CA182761F96512800DD4A4A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PluginPreferences.strings; sourceTree = ""; }; 4CA182771F96512800DD4A4A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/ReferenceBuilderView.strings; sourceTree = ""; }; 4CA182791F96523600DD4A4A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DuplicateEntryOptionsWindow.xib; sourceTree = ""; }; - 4CA1827C1F96524100DD4A4A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DuplicateEntryOptionsWindow.strings; sourceTree = ""; }; 4CA1827E1F96524400DD4A4A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/DuplicateEntryOptionsWindow.strings; sourceTree = ""; }; 4CA182801F96524600DD4A4A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/DuplicateEntryOptionsWindow.strings; sourceTree = ""; }; 4CA182821F96524B00DD4A4A /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/DuplicateEntryOptionsWindow.strings"; sourceTree = ""; }; @@ -765,10 +771,11 @@ 4CAD338E205169D30068587E /* MPPluginRepositoryItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginRepositoryItem.m; sourceTree = ""; }; 4CAD748B15B889B700104512 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; 4CAD748D15B88AC100104512 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; + 4CAD8AA322CF397B0090B2DD /* MPAutotypeDoctorReportViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPAutotypeDoctorReportViewController.h; sourceTree = ""; }; + 4CAD8AA422CF397B0090B2DD /* MPAutotypeDoctorReportViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPAutotypeDoctorReportViewController.m; sourceTree = ""; }; 4CB33F841EAF54A000C9341E /* KPKNode+MPIsHistory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KPKNode+MPIsHistory.h"; sourceTree = ""; }; 4CB33F851EAF54A000C9341E /* KPKNode+MPIsHistory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KPKNode+MPIsHistory.m"; sourceTree = ""; }; 4CB63A6018986530002DEC4C /* MPFlagsHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPFlagsHelper.h; sourceTree = ""; }; - 4CB9339816D3A0DD00A13B5D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; 4CBA2AB617074B59006D8139 /* MPSettingsHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPSettingsHelper.h; sourceTree = ""; }; 4CBA2AB917074C07006D8139 /* MPSettingsHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPSettingsHelper.m; sourceTree = ""; }; 4CC0D2CC17974A47000B4BDA /* MPCustomFieldTableViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPCustomFieldTableViewDelegate.h; sourceTree = ""; }; @@ -780,10 +787,9 @@ 4CC59C2621AF0893005E8D6B /* MPPathControl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPathControl.m; sourceTree = ""; }; 4CC663E4216F7A7100E33965 /* MPPluginRepositoryBrowserViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPPluginRepositoryBrowserViewController.h; sourceTree = ""; }; 4CC663E5216F7A7100E33965 /* MPPluginRepositoryBrowserViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginRepositoryBrowserViewController.m; sourceTree = ""; }; - 4CC663E6216F7A7100E33965 /* PluginRepositoryBrowserView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PluginRepositoryBrowserView.xib; sourceTree = ""; }; 4CC6DB7817D23719002C6091 /* KPKNode+IconImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KPKNode+IconImage.h"; sourceTree = ""; }; 4CC6DB7917D23719002C6091 /* KPKNode+IconImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KPKNode+IconImage.m"; sourceTree = ""; }; - 4CCA7EEC1797866F00B0B55E /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/GeneralSettings.strings; sourceTree = ""; }; + 4CCA7EEC1797866F00B0B55E /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/GeneralPreferences.strings; sourceTree = ""; }; 4CCA8E9A18D91ED9001A6754 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; }; 4CCCE7FF1D75CA48006AA951 /* MPArrayController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPArrayController.h; sourceTree = ""; }; 4CCCE8001D75CA48006AA951 /* MPArrayController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPArrayController.m; sourceTree = ""; }; @@ -803,8 +809,8 @@ 4CD4EE111FC7284000EA6EB3 /* MPPickcharsViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPickcharsViewController.m; sourceTree = ""; }; 4CD5D703177A5F3300100649 /* MPDatabaseSettingsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDatabaseSettingsWindowController.h; sourceTree = ""; }; 4CD5D704177A5F3300100649 /* MPDatabaseSettingsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDatabaseSettingsWindowController.m; sourceTree = ""; }; - 4CD7223917A7CB0700F5A1E1 /* MPWorkflowSettingsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPWorkflowSettingsController.h; sourceTree = ""; }; - 4CD7223A17A7CB0700F5A1E1 /* MPWorkflowSettingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPWorkflowSettingsController.m; sourceTree = ""; }; + 4CD7223917A7CB0700F5A1E1 /* MPWorkflowPreferencesController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPWorkflowPreferencesController.h; sourceTree = ""; }; + 4CD7223A17A7CB0700F5A1E1 /* MPWorkflowPreferencesController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPWorkflowPreferencesController.m; sourceTree = ""; }; 4CD78AB716D155FF00768A1D /* 07_NotepadTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 07_NotepadTemplate.pdf; sourceTree = ""; }; 4CD78AB816D155FF00768A1D /* 08_SocketTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 08_SocketTemplate.pdf; sourceTree = ""; }; 4CD78AB916D155FF00768A1D /* 09_IdentityTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 09_IdentityTemplate.pdf; sourceTree = ""; }; @@ -840,73 +846,63 @@ 4CE8246E16E2E93400573141 /* MPOverlayWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOverlayWindowController.m; sourceTree = ""; }; 4CE8247316E2F2B900573141 /* MPOverlayView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPOverlayView.h; sourceTree = ""; }; 4CE8247416E2F2B900573141 /* MPOverlayView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOverlayView.m; sourceTree = ""; }; - 4CE88B9617BA651C0042E078 /* contextTriangleTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = contextTriangleTemplate.pdf; path = Icons/contextTriangleTemplate.pdf; sourceTree = ""; }; + 4CE88B9617BA651C0042E078 /* contextTriangleTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = contextTriangleTemplate.pdf; sourceTree = ""; }; 4CE88C2417C163FE00BFD195 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; 4CE88C3317C1647400BFD195 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 4CEE46DB181C301D006BF1E5 /* MPAutotypeDaemon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPAutotypeDaemon.h; sourceTree = ""; }; 4CEE46DC181C301D006BF1E5 /* MPAutotypeDaemon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPAutotypeDaemon.m; sourceTree = ""; }; 4CEED1C417D7BD0E007180F1 /* NSError+Messages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSError+Messages.h"; sourceTree = ""; }; 4CEED1C517D7BD0E007180F1 /* NSError+Messages.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSError+Messages.m"; sourceTree = ""; }; + 4CF14962224B623700D1CE1C /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Base; path = Base.lproj/Credits.rtf; sourceTree = ""; }; 4CF29BF317879D0000851B60 /* 26_FileSaveTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 26_FileSaveTemplate.pdf; sourceTree = ""; }; 4CF5BE6B1BF33E3000048505 /* NSApplication+MPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSApplication+MPAdditions.h"; sourceTree = ""; }; 4CF5BE6C1BF33E3000048505 /* NSApplication+MPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSApplication+MPAdditions.m"; sourceTree = ""; }; 4CF6653920E67A140008A25C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PluginDataView.xib; sourceTree = ""; }; - 4CF6653C20E67A180008A25C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PluginDataView.strings; sourceTree = ""; }; 4CF6653E20E67A1A0008A25C /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PluginDataView.strings; sourceTree = ""; }; 4CF6C3001FBF39BF0055AD03 /* MPPluginTabelCellView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPPluginTabelCellView.h; sourceTree = ""; }; 4CF6C3011FBF39BF0055AD03 /* MPPluginTabelCellView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginTabelCellView.m; sourceTree = ""; }; 4CF6C70F176F4533007A811D /* MPStringLengthValueTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPStringLengthValueTransformer.h; sourceTree = ""; }; 4CF6C710176F4533007A811D /* MPStringLengthValueTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPStringLengthValueTransformer.m; sourceTree = ""; }; - 4CF78062176E75AD0032EE71 /* MPIntegrationSettingsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPIntegrationSettingsController.h; sourceTree = ""; }; - 4CF78063176E75AD0032EE71 /* MPIntegrationSettingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPIntegrationSettingsController.m; sourceTree = ""; }; - 4CF7CCA12211AFD400F6D5A0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PluginPreferences.strings; sourceTree = ""; }; - 4CFB18E218A17FA20097A34B /* MPUpdateSettingsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPUpdateSettingsController.h; sourceTree = ""; }; - 4CFB18E318A17FA20097A34B /* MPUpdateSettingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPUpdateSettingsController.m; sourceTree = ""; }; + 4CF78062176E75AD0032EE71 /* MPIntegrationPreferencesController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPIntegrationPreferencesController.h; sourceTree = ""; }; + 4CF78063176E75AD0032EE71 /* MPIntegrationPreferencesController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPIntegrationPreferencesController.m; sourceTree = ""; }; + 4CFB18E218A17FA20097A34B /* MPUpdatePreferencesController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPUpdatePreferencesController.h; sourceTree = ""; }; + 4CFB18E318A17FA20097A34B /* MPUpdatePreferencesController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPUpdatePreferencesController.m; sourceTree = ""; }; 4CFC53BD16E94729007396BE /* MPShadowBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPShadowBox.h; sourceTree = ""; }; 4CFC53BE16E94729007396BE /* MPShadowBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPShadowBox.m; sourceTree = ""; }; - 601F811118E016340028F3DE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/GeneralSettings.strings"; sourceTree = ""; }; + 601F811118E016340028F3DE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/GeneralPreferences.strings"; sourceTree = ""; }; 601F811218E016340028F3DE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/MainMenu.strings"; sourceTree = ""; }; 601F811318E016340028F3DE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/PasswordInputView.strings"; sourceTree = ""; }; 601F811418E016340028F3DE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InspectorView.strings"; sourceTree = ""; }; 601F811818E016340028F3DE /* zh-Hans */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; - 601F811918E016340028F3DE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = "zh-Hans"; path = "zh-Hans.lproj/Credits.rtf"; sourceTree = ""; }; 601F811A18E016340028F3DE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; 601F811C18E016340028F3DE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; 6021FE3C18E1341900C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/EntryInspectorView.xib; sourceTree = ""; }; 6021FE4418E1342500C3BC51 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/EntryInspectorView.strings"; sourceTree = ""; }; - 6021FE4618E1344A00C3BC51 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/EntryInspectorView.strings; sourceTree = ""; }; 6021FE4818E1356800C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/EntryInspectorView.strings; sourceTree = ""; }; 6021FE4A18E1356B00C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/EntryInspectorView.strings; sourceTree = ""; }; 6021FE4C18E13F1D00C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/GroupInspectorView.xib; sourceTree = ""; }; - 6021FE4F18E13F2500C3BC51 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/GroupInspectorView.strings; sourceTree = ""; }; 6021FE5118E13F2700C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/GroupInspectorView.strings; sourceTree = ""; }; 6021FE5318E13F2900C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/GroupInspectorView.strings; sourceTree = ""; }; 6021FE5518E13F2A00C3BC51 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/GroupInspectorView.strings"; sourceTree = ""; }; - 6021FE5718E1429500C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/IntegrationSettings.xib; sourceTree = ""; }; - 6021FE5A18E142A000C3BC51 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/IntegrationSettings.strings; sourceTree = ""; }; - 6021FE5C18E142A200C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/IntegrationSettings.strings; sourceTree = ""; }; - 6021FE5E18E142A300C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/IntegrationSettings.strings; sourceTree = ""; }; - 6021FE6218E15D9100C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/WorkflowSettings.xib; sourceTree = ""; }; - 6021FE6518E15D9800C3BC51 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/WorkflowSettings.strings; sourceTree = ""; }; - 6021FE6718E15D9A00C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/WorkflowSettings.strings; sourceTree = ""; }; - 6021FE6918E15D9B00C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/WorkflowSettings.strings; sourceTree = ""; }; - 6021FE6D18E15E6D00C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UpdateSettings.xib; sourceTree = ""; }; - 6021FE7018E15E7400C3BC51 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/UpdateSettings.strings; sourceTree = ""; }; - 6021FE7218E15E7700C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/UpdateSettings.strings; sourceTree = ""; }; - 6021FE7418E15E7900C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UpdateSettings.strings; sourceTree = ""; }; - 6021FE7618E15E7B00C3BC51 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/UpdateSettings.strings"; sourceTree = ""; }; + 6021FE5718E1429500C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/IntegrationPreferences.xib; sourceTree = ""; }; + 6021FE5C18E142A200C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/IntegrationPreferences.strings; sourceTree = ""; }; + 6021FE5E18E142A300C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/IntegrationPreferences.strings; sourceTree = ""; }; + 6021FE6218E15D9100C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/WorkflowPreferences.xib; sourceTree = ""; }; + 6021FE6718E15D9A00C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/WorkflowPreferences.strings; sourceTree = ""; }; + 6021FE6918E15D9B00C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/WorkflowPreferences.strings; sourceTree = ""; }; + 6021FE6D18E15E6D00C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UpdatePreferences.xib; sourceTree = ""; }; + 6021FE7218E15E7700C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/UpdatePreferences.strings; sourceTree = ""; }; + 6021FE7418E15E7900C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UpdatePreferences.strings; sourceTree = ""; }; + 6021FE7618E15E7B00C3BC51 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/UpdatePreferences.strings"; sourceTree = ""; }; 6021FE7818E15FF300C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DatePickingView.xib; sourceTree = ""; }; - 6021FE7B18E15FFD00C3BC51 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatePickingView.strings; sourceTree = ""; }; 6021FE7D18E15FFF00C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/DatePickingView.strings; sourceTree = ""; }; 6021FE7F18E1600000C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/DatePickingView.strings; sourceTree = ""; }; 6021FE8118E1600200C3BC51 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/DatePickingView.strings"; sourceTree = ""; }; 6021FE8318E160BC00C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PasswordEditWindow.xib; sourceTree = ""; }; - 6021FE8618E160C700C3BC51 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PasswordEditWindow.strings; sourceTree = ""; }; 6021FE8818E160C800C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PasswordEditWindow.strings; sourceTree = ""; }; 6021FE8A18E160C900C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PasswordEditWindow.strings; sourceTree = ""; }; 6021FE8C18E160CB00C3BC51 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/PasswordEditWindow.strings"; sourceTree = ""; }; 6021FE8E18E1617300C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PasswordCreatorView.xib; sourceTree = ""; }; - 6021FE9118E1617A00C3BC51 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PasswordCreatorView.strings; sourceTree = ""; }; 6021FE9318E1617C00C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PasswordCreatorView.strings; sourceTree = ""; }; 6021FE9518E1617D00C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PasswordCreatorView.strings; sourceTree = ""; }; 6021FE9718E1617E00C3BC51 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/PasswordCreatorView.strings"; sourceTree = ""; }; @@ -915,15 +911,15 @@ 6021FEA018E1651E00C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/DatabaseSettingsWindow.strings; sourceTree = ""; }; 6021FEA218E1652000C3BC51 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/DatabaseSettingsWindow.strings"; sourceTree = ""; }; 60ECAD221F12231B00EA9DB3 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/PluginPreferences.strings"; sourceTree = ""; }; - 60ECAD251F12253C00EA9DB3 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/WorkflowSettings.strings"; sourceTree = ""; }; - 60ECAD271F12262400EA9DB3 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/IntegrationSettings.strings"; sourceTree = ""; }; + 60ECAD251F12253C00EA9DB3 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/WorkflowPreferences.strings"; sourceTree = ""; }; + 60ECAD271F12262400EA9DB3 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/IntegrationPreferences.strings"; sourceTree = ""; }; 6A74B0622076F4B30049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/DatabaseSettingsWindow.strings"; sourceTree = ""; }; 6A74B0632076F4B30049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/PasswordEditWindow.strings"; sourceTree = ""; }; 6A74B0642076F4B40049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/DuplicateEntryOptionsWindow.strings"; sourceTree = ""; }; - 6A74B0652076F4B40049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/GeneralSettings.strings"; sourceTree = ""; }; - 6A74B0662076F4B40049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/IntegrationSettings.strings"; sourceTree = ""; }; - 6A74B0672076F4B40049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/WorkflowSettings.strings"; sourceTree = ""; }; - 6A74B0682076F4B40049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/UpdateSettings.strings"; sourceTree = ""; }; + 6A74B0652076F4B40049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/GeneralPreferences.strings"; sourceTree = ""; }; + 6A74B0662076F4B40049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/IntegrationPreferences.strings"; sourceTree = ""; }; + 6A74B0672076F4B40049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/WorkflowPreferences.strings"; sourceTree = ""; }; + 6A74B0682076F4B40049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/UpdatePreferences.strings"; sourceTree = ""; }; 6A74B0692076F4B40049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/PluginPreferences.strings"; sourceTree = ""; }; 6A74B06A2076F4B40049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/InspectorView.strings"; sourceTree = ""; }; 6A74B06B2076F4B40049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/GroupInspectorView.strings"; sourceTree = ""; }; @@ -942,23 +938,61 @@ 6A74B0782076F4B50049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/MainMenu.strings"; sourceTree = ""; }; 6A74B0792076F4B50049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "sv-SE"; path = "sv-SE.lproj/Localizable.stringsdict"; sourceTree = ""; }; 6A74B07A2076F4B60049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/Localizable.strings"; sourceTree = ""; }; - 6A74B07B2076F4B60049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = "sv-SE"; path = "sv-SE.lproj/Credits.rtf"; sourceTree = ""; }; 6A74B07C2076F4B60049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/InfoPlist.strings"; sourceTree = ""; }; 6A74B07D2076F4B60049BC29 /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/InfoPlist.strings"; sourceTree = ""; }; 6E719715172058BA00E4C5FC /* MPDatabaseVersion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPDatabaseVersion.h; sourceTree = ""; }; 713F9B481C95CEA000605880 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PluginPreferences.strings; sourceTree = ""; }; + 71FF7A19230FEA24002F488F /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/SavePanelAccessoryView.strings; sourceTree = ""; }; + 71FF7A1B230FED35002F488F /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/PluginRepositoryBrowserView.strings; sourceTree = ""; }; + 71FF7A1D230FEE7B002F488F /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/AutotypeBuilderView.strings; sourceTree = ""; }; + 71FF7A1F230FEEC7002F488F /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/PluginDataView.strings; sourceTree = ""; }; + 71FF7A21230FEEE2002F488F /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/AutotypeCandidateSelectionView.strings; sourceTree = ""; }; + 71FF7A23230FEF11002F488F /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/PickcharsView.strings; sourceTree = ""; }; + 71FF7A25230FEF3D002F488F /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/PickfieldView.strings; sourceTree = ""; }; + 71FF7A27230FEF6B002F488F /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/AutotypeDoctorReportViewController.strings; sourceTree = ""; }; + 71FF7A29230FF0E4002F488F /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/OpenPanelAccessoryView.strings; sourceTree = ""; }; + 7837112922553A74009BD28D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/SavePanelAccessoryView.strings; sourceTree = ""; }; + 7837112B22553B1D009BD28D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/AutotypeBuilderView.strings; sourceTree = ""; }; + 7837112D225540D1009BD28D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PluginRepositoryBrowserView.xib; sourceTree = ""; }; + 78371130225540D8009BD28D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/PluginRepositoryBrowserView.strings; sourceTree = ""; }; + 78E1F8AF22E3A3DF00E738AE /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/IntegrationPreferences.strings; sourceTree = ""; }; + 78E1F8B122E3A5D600E738AE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/AutotypeDoctorReportViewController.xib; sourceTree = ""; }; + 78E1F8B422E3A5DB00E738AE /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/AutotypeDoctorReportViewController.strings; sourceTree = ""; }; + 78E1F8B822E3B06700E738AE /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/PickcharsView.strings; sourceTree = ""; }; + 78E1F8BA22E3B0B700E738AE /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/PickfieldView.strings; sourceTree = ""; }; + 78E1F8BC22E3B12300E738AE /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/OpenPanelAccessoryView.strings; sourceTree = ""; }; + 78E1F8BE22E3B1BF00E738AE /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/AutotypeCandidateSelectionView.strings; sourceTree = ""; }; + 78E1F8C022E3B22500E738AE /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/PluginDataView.strings; sourceTree = ""; }; + 78E1F8C122E3B32D00E738AE /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ru; path = ru.lproj/Localizable.stringsdict; sourceTree = ""; }; + A019D80F22DC6B3C0085FD54 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = es; path = es.lproj/Localizable.stringsdict; sourceTree = ""; }; + A083E27922DF467B0020E0D5 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PickcharsView.strings; sourceTree = ""; }; + A083E27A22DF467B0020E0D5 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PluginDataView.strings; sourceTree = ""; }; + A083E27B22DF467B0020E0D5 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/AutotypeCandidateSelectionView.strings; sourceTree = ""; }; + A083E27C22DF467B0020E0D5 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/OpenPanelAccessoryView.strings; sourceTree = ""; }; + A083E27D22DF467B0020E0D5 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/SavePanelAccessoryView.strings; sourceTree = ""; }; + A083E27E22DF467B0020E0D5 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/AutotypeBuilderView.strings; sourceTree = ""; }; + A083E27F22DF467B0020E0D5 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PickfieldView.strings; sourceTree = ""; }; + A083E28022DF467B0020E0D5 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PluginRepositoryBrowserView.strings; sourceTree = ""; }; A50AD5CF212884A0007C85EB /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/PluginDataView.strings; sourceTree = ""; }; A50AD5D0212884A0007C85EB /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/PickfieldView.strings; sourceTree = ""; }; + ABAA99A4231519150095D78E /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/SavePanelAccessoryView.strings"; sourceTree = ""; }; + ABAA99A523151BE70095D78E /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/ReferenceBuilderView.strings"; sourceTree = ""; }; + ABAA99A623151BE70095D78E /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/PluginRepositoryBrowserView.strings"; sourceTree = ""; }; + ABE506D522EFF97400B9F8DA /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/AutotypeCandidateSelectionView.strings"; sourceTree = ""; }; + ABE506D622EFF97400B9F8DA /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/AutotypeBuilderView.strings"; sourceTree = ""; }; + ABE8662E2316617500201125 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.stringsdict"; sourceTree = ""; }; + ABE8662F2316617500201125 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/AutotypeDoctorReportViewController.strings"; sourceTree = ""; }; + ABE86630231662D200201125 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/PluginDataView.strings"; sourceTree = ""; }; BB3E050C1FE9D1CA00F0B46F /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/AutotypeCandidateSelectionView.strings; sourceTree = ""; }; BB3E050D1FE9D1CB00F0B46F /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = nl; path = nl.lproj/Localizable.stringsdict; sourceTree = ""; }; BB3E050E1FE9D1CC00F0B46F /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/ReferenceBuilderView.strings; sourceTree = ""; }; BB3E050F1FE9D1CD00F0B46F /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/AutotypeBuilderView.strings; sourceTree = ""; }; BD6C365619484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/DatabaseSettingsWindow.strings; sourceTree = ""; }; BD6C365719484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/PasswordEditWindow.strings; sourceTree = ""; }; - BD6C365819484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/GeneralSettings.strings; sourceTree = ""; }; - BD6C365919484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/IntegrationSettings.strings; sourceTree = ""; }; - BD6C365A19484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/WorkflowSettings.strings; sourceTree = ""; }; - BD6C365B19484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/UpdateSettings.strings; sourceTree = ""; }; + BD6C365819484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/GeneralPreferences.strings; sourceTree = ""; }; + BD6C365919484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/IntegrationPreferences.strings; sourceTree = ""; }; + BD6C365A19484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/WorkflowPreferences.strings; sourceTree = ""; }; + BD6C365B19484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/UpdatePreferences.strings; sourceTree = ""; }; BD6C365C19484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/MainMenu.strings; sourceTree = ""; }; BD6C365D19484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/PasswordInputView.strings; sourceTree = ""; }; BD6C365E19484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/PasswordCreatorView.strings; sourceTree = ""; }; @@ -967,7 +1001,6 @@ BD6C366119484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/EntryInspectorView.strings; sourceTree = ""; }; BD6C366219484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/DatePickingView.strings; sourceTree = ""; }; BD6C366319484CF40089EB37 /* nl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; - BD6C366419484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = nl; path = nl.lproj/Credits.rtf; sourceTree = ""; }; BD6C366519484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; }; BD6C366719484CF40089EB37 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; }; FA13910B1F9CD9EB0033D256 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = ""; }; @@ -975,10 +1008,9 @@ FA638D0E1C39BFCB00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/DatabaseSettingsWindow.strings; sourceTree = ""; }; FA638D0F1C39BFCB00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/PasswordEditWindow.strings; sourceTree = ""; }; FA638D101C39BFCB00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/WelcomeView.strings; sourceTree = ""; }; - FA638D111C39BFCB00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/GeneralSettings.strings; sourceTree = ""; }; - FA638D121C39BFCB00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/IntegrationSettings.strings; sourceTree = ""; }; - FA638D131C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/WorkflowSettings.strings; sourceTree = ""; }; - FA638D141C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/UpdateSettings.strings; sourceTree = ""; }; + FA638D111C39BFCB00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/GeneralPreferences.strings; sourceTree = ""; }; + FA638D131C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/WorkflowPreferences.strings; sourceTree = ""; }; + FA638D141C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/UpdatePreferences.strings; sourceTree = ""; }; FA638D151C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/PluginPreferences.strings; sourceTree = ""; }; FA638D161C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/MainMenu.strings; sourceTree = ""; }; FA638D171C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/PasswordInputView.strings; sourceTree = ""; }; @@ -990,7 +1022,6 @@ FA638D1D1C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/DatePickingView.strings; sourceTree = ""; }; FA638D1E1C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ReferenceBuilderView.strings; sourceTree = ""; }; FA638D1F1C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; - FA638D201C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = ru; path = ru.lproj/Credits.rtf; sourceTree = ""; }; FA638D211C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; }; FA638D231C39BFCC00B10CC6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; }; FA9FD3281FB5E8F4003CEDD6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/AutotypeCandidateSelectionView.xib; sourceTree = ""; }; @@ -1106,6 +1137,8 @@ 4C769CA8213D59BF00A3F60A /* KPKEntry+MPCustomAttributeProperties.m */, 4C58A4A12192EC1600B13370 /* NSIndexPath+MPAdditions.h */, 4C58A4A22192EC1600B13370 /* NSIndexPath+MPAdditions.m */, + 3C0CDECD21CFED9000B2A10B /* NSTextView+MPTouchBarExtension.h */, + 3C0CDECE21CFEDD200B2A10B /* NSTextView+MPTouchBarExtension.m */, ); name = Categories; sourceTree = ""; @@ -1158,6 +1191,8 @@ 4C4B728418E4B9B400A1A5D5 /* MPDockTileHelper.m */, 4CB63A6018986530002DEC4C /* MPFlagsHelper.h */, 4C978E0C19AE54AB003067DF /* MPFlagsHelper.m */, + 3C0CDED921D28C0E00B2A10B /* MPTouchBarButtonCreator.h */, + 3C0CDED721D28BF700B2A10B /* MPTouchBarButtonCreator.m */, ); name = Helper; sourceTree = ""; @@ -1253,24 +1288,24 @@ 4C47D77718B37911002755E4 /* Preferences */ = { isa = PBXGroup; children = ( - 4CA0B2F715BCAF6700654E32 /* MPGeneralSettingsController.h */, - 4CA0B2F815BCAF6700654E32 /* MPGeneralSettingsController.m */, - 4C76155E1764C04C0015A1A6 /* GeneralSettings.xib */, - 4CF78062176E75AD0032EE71 /* MPIntegrationSettingsController.h */, - 4CF78063176E75AD0032EE71 /* MPIntegrationSettingsController.m */, - 6021FE5818E1429500C3BC51 /* IntegrationSettings.xib */, - 4CD7223917A7CB0700F5A1E1 /* MPWorkflowSettingsController.h */, - 4CD7223A17A7CB0700F5A1E1 /* MPWorkflowSettingsController.m */, - 6021FE6318E15D9100C3BC51 /* WorkflowSettings.xib */, - 4CFB18E218A17FA20097A34B /* MPUpdateSettingsController.h */, - 4CFB18E318A17FA20097A34B /* MPUpdateSettingsController.m */, - 6021FE6E18E15E6D00C3BC51 /* UpdateSettings.xib */, + 4CA0B2F715BCAF6700654E32 /* MPGeneralPreferencesController.h */, + 4CA0B2F815BCAF6700654E32 /* MPGeneralPreferencesController.m */, + 4C76155E1764C04C0015A1A6 /* GeneralPreferences.xib */, + 4CF78062176E75AD0032EE71 /* MPIntegrationPreferencesController.h */, + 4CF78063176E75AD0032EE71 /* MPIntegrationPreferencesController.m */, + 6021FE5818E1429500C3BC51 /* IntegrationPreferences.xib */, + 4CD7223917A7CB0700F5A1E1 /* MPWorkflowPreferencesController.h */, + 4CD7223A17A7CB0700F5A1E1 /* MPWorkflowPreferencesController.m */, + 6021FE6318E15D9100C3BC51 /* WorkflowPreferences.xib */, + 4CFB18E218A17FA20097A34B /* MPUpdatePreferencesController.h */, + 4CFB18E318A17FA20097A34B /* MPUpdatePreferencesController.m */, + 6021FE6E18E15E6D00C3BC51 /* UpdatePreferences.xib */, 4C25703C1BF11C2300D39416 /* MPPluginPreferencesController.h */, 4C25703D1BF11C2300D39416 /* MPPluginPreferencesController.m */, 4C0DBEF71BF508DE00F9B287 /* PluginPreferences.xib */, 4CC663E4216F7A7100E33965 /* MPPluginRepositoryBrowserViewController.h */, 4CC663E5216F7A7100E33965 /* MPPluginRepositoryBrowserViewController.m */, - 4CC663E6216F7A7100E33965 /* PluginRepositoryBrowserView.xib */, + 7837112E225540D1009BD28D /* PluginRepositoryBrowserView.xib */, ); name = Preferences; sourceTree = ""; @@ -1296,7 +1331,7 @@ children = ( 4C0F647917B6BC9C00D9522A /* MPSavePanelAccessoryViewController.h */, 4C0F647A17B6BC9C00D9522A /* MPSavePanelAccessoryViewController.m */, - 4C0728BE17B68ED0005A7DD9 /* SavePanelAccessoryView.xib */, + 4C17D1202250EFBC00C650C4 /* SavePanelAccessoryView.xib */, ); name = Accessory; sourceTree = ""; @@ -1375,7 +1410,7 @@ 4C52A891178863B000868229 /* 68_PhoneTemplate.pdf */, ); name = "Database Icons"; - path = Icons; + path = Resources/Icons; sourceTree = ""; }; 4C5EF817218CA0470003C00E /* Parser */ = { @@ -1477,6 +1512,7 @@ 4C77E36D15B84A240093A587 /* Supporting Files */ = { isa = PBXGroup; children = ( + 4C8E889322C227270002C7C8 /* plugins.json */, FA13910A1F9CD9EB0033D256 /* Localizable.stringsdict */, 4C888C8E16EB6C91003D34A1 /* Localizable.strings */, 4CB9339716D3A0DD00A13B5D /* Credits.rtf */, @@ -1526,6 +1562,8 @@ 4C3499FF218852160055AF45 /* MPKeyTyper.m */, 4C1F7FA01E3A12E600D6A40E /* MPModifiedKey.h */, 4C1F7FA11E3A12E600D6A40E /* MPModifiedKey.m */, + 4C1ECAE122CCD30F00F46069 /* MPAutotypeDoctor.h */, + 4C1ECAE222CCD30F00F46069 /* MPAutotypeDoctor.m */, ); name = Autotype; sourceTree = ""; @@ -1602,6 +1640,9 @@ 4C73B6EE215E64A7009787F7 /* MPWelcomeViewController.h */, 4C73B6EF215E64A7009787F7 /* MPWelcomeViewController.m */, 4C7F8B6A1A10B68400CCB83D /* WelcomeView.xib */, + 4CAD8AA322CF397B0090B2DD /* MPAutotypeDoctorReportViewController.h */, + 4CAD8AA422CF397B0090B2DD /* MPAutotypeDoctorReportViewController.m */, + 78E1F8B222E3A5D600E738AE /* AutotypeDoctorReportViewController.xib */, ); name = "View Controller"; sourceTree = ""; @@ -1689,13 +1730,14 @@ 4C7ABA4D17BAEC7000FF5799 /* addEntryTemplate.pdf */, 4C3826711AD04B51007D7D67 /* addFolderTemplate.pdf */, 4CE88B9617BA651C0042E078 /* contextTriangleTemplate.pdf */, - 4C3826771AD04C8A007D7D67 /* createdTemplate.pdf */, + 4C8E889122C223620002C7C8 /* createdTemplate.pdf */, 4C3826791AD04CC6007D7D67 /* downloadTemplate.pdf */, 4C3826751AD04C24007D7D67 /* harddiskTemplate.pdf */, 4C3826731AD04BA5007D7D67 /* infoTemplate.pdf */, 4C08ACE9204F01C700863D99 /* keyboardTemplate.pdf */, ); name = Icons; + path = Resources/Icons; sourceTree = ""; }; 4CF9ECAE1BFDEC5700C58E99 /* Plugin */ = { @@ -1769,7 +1811,7 @@ isa = PBXProject; attributes = { CLASSPREFIX = MP; - LastUpgradeCheck = 1010; + LastUpgradeCheck = 1020; ORGANIZATIONNAME = "HicknHack Software GmbH"; TargetAttributes = { 4C77E36115B84A240093A587 = { @@ -1779,7 +1821,7 @@ }; buildConfigurationList = 4C77E35C15B84A240093A587 /* Build configuration list for PBXProject "MacPass" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -1825,7 +1867,6 @@ FA9FD32C1FB5EDD3003CEDD6 /* AutotypeBuilderView.xib in Resources */, 4C17F108184E6B6C00E85625 /* 31_PrintTemplate.pdf in Resources */, 4C77E37115B84A240093A587 /* InfoPlist.strings in Resources */, - 4C3826781AD04C8A007D7D67 /* createdTemplate.pdf in Resources */, 4C3826BE1AD04D8E007D7D67 /* 51_DecryptedTemplate.pdf in Resources */, 4C3826BC1AD04D8E007D7D67 /* 49_FolderOpenTemplate.pdf in Resources */, 4C3826CE1AD04D8E007D7D67 /* 67_CertificatTemplate.pdf in Resources */, @@ -1834,8 +1875,9 @@ 4C3826B41AD04D8E007D7D67 /* 39_HistoryTemplate.pdf in Resources */, 4C77E37D15B84A240093A587 /* MainMenu.xib in Resources */, 4C3826CD1AD04D8E007D7D67 /* 66_MoneyTemplate.pdf in Resources */, + 78E1F8B022E3A5D600E738AE /* AutotypeDoctorReportViewController.xib in Resources */, 4CA0B2ED15BCADAC00654E32 /* PreferencesWindow.xib in Resources */, - 4C76155C1764C04C0015A1A6 /* GeneralSettings.xib in Resources */, + 4C76155C1764C04C0015A1A6 /* GeneralPreferences.xib in Resources */, 4CD884B715BD47080042BBF8 /* DocumentWindow.xib in Resources */, 4C17F109184E6B6C00E85625 /* 30_TerminalTemplate.pdf in Resources */, 4C7615681764C0C40015A1A6 /* PasswordInputView.xib in Resources */, @@ -1853,7 +1895,7 @@ 4C586FA216D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf in Resources */, 4C3826B91AD04D8E007D7D67 /* 45_CancelTemplate.pdf in Resources */, 4C2E381D16D11FF900037A9D /* 03_ServerTemplate.pdf in Resources */, - 6021FE6C18E15E6D00C3BC51 /* UpdateSettings.xib in Resources */, + 6021FE6C18E15E6D00C3BC51 /* UpdatePreferences.xib in Resources */, 4C3826B21AD04D8E007D7D67 /* 37_PercentageTemplate.pdf in Resources */, 4C3826C51AD04D8E007D7D67 /* 58_SecureAccountTemplate.pdf in Resources */, 4C3826A71AD04D8E007D7D67 /* 23_IconsTemplate.pdf in Resources */, @@ -1878,7 +1920,7 @@ 4C3826B31AD04D8E007D7D67 /* 38_SambaUnmountTemplate.pdf in Resources */, 4CB9339916D3A0DD00A13B5D /* Credits.rtf in Resources */, 4C08ACEA204F01C700863D99 /* keyboardTemplate.pdf in Resources */, - 4CC663E8216F7A7100E33965 /* PluginRepositoryBrowserView.xib in Resources */, + 7837112C225540D1009BD28D /* PluginRepositoryBrowserView.xib in Resources */, 4C0F04412147FB49000B8568 /* OpenPanelAccessoryView.xib in Resources */, 4C6DCC451FA2457900C8AD3F /* ContextBar.xib in Resources */, 4C431BCF16E2BAB000700A81 /* OverlayWindow.xib in Resources */, @@ -1897,7 +1939,7 @@ 4C3826B11AD04D8E007D7D67 /* 36_ArchiveTemplate.pdf in Resources */, 4C7714AA176C998F00549F2A /* 43_TrashTemplate.pdf in Resources */, 4CD820211A32173100399DBB /* ReferenceBuilderView.xib in Resources */, - 6021FE5618E1429500C3BC51 /* IntegrationSettings.xib in Resources */, + 6021FE5618E1429500C3BC51 /* IntegrationPreferences.xib in Resources */, 4C3826B81AD04D8E007D7D67 /* 44_NotesTemplate.pdf in Resources */, 4C3826C41AD04D8E007D7D67 /* 57_TextViewTemplate.pdf in Resources */, 6021FE9818E1650F00C3BC51 /* DatabaseSettingsWindow.xib in Resources */, @@ -1916,11 +1958,12 @@ 6021FE4B18E13F1D00C3BC51 /* GroupInspectorView.xib in Resources */, 4C3826BF1AD04D8E007D7D67 /* 52_EncryptedTemplate.pdf in Resources */, 4C3826BD1AD04D8E007D7D67 /* 50_FolderTarTemplate.pdf in Resources */, + 4C8E889422C227270002C7C8 /* plugins.json in Resources */, 6021FE3B18E1341900C3BC51 /* EntryInspectorView.xib in Resources */, 4C3826AD1AD04D8E007D7D67 /* 32_FileSystemViewTemplate.pdf in Resources */, - 6021FE6118E15D9100C3BC51 /* WorkflowSettings.xib in Resources */, + 6021FE6118E15D9100C3BC51 /* WorkflowPreferences.xib in Resources */, 6021FE8218E160BC00C3BC51 /* PasswordEditWindow.xib in Resources */, - 4C0728BF17B68ED0005A7DD9 /* SavePanelAccessoryView.xib in Resources */, + 4C17D11E2250EFBC00C650C4 /* SavePanelAccessoryView.xib in Resources */, 4CE88B9717BA651C0042E078 /* contextTriangleTemplate.pdf in Resources */, 4C7ABA4817BAEC6700FF5799 /* 15_ScannerTemplate.pdf in Resources */, 4C7ABA4917BAEC6700FF5799 /* 16_BrowserTemplate.pdf in Resources */, @@ -1928,6 +1971,7 @@ 4C7ABA4B17BAEC6700FF5799 /* 19_EmailTemplate.pdf in Resources */, 4C3826C81AD04D8E007D7D67 /* 61_ServicesTemplate.pdf in Resources */, FA9FD3271FB5E8F4003CEDD6 /* AutotypeCandidateSelectionView.xib in Resources */, + 4C8E889222C223620002C7C8 /* createdTemplate.pdf in Resources */, 4C0B038D18E36DA400B9F9C9 /* FixAutotypeWindow.xib in Resources */, 4C38267A1AD04CC6007D7D67 /* downloadTemplate.pdf in Resources */, 4C7ABA4C17BAEC6700FF5799 /* 20_MiscTemplate.pdf in Resources */, @@ -1954,7 +1998,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "git=`sh /etc/profile; which git`\nbranch_name=`$git symbolic-ref HEAD | sed -e 's,.*/\\\\(.*\\\\),\\\\1,'`\ngit_count=`$git rev-list $branch_name |wc -l | sed 's/^ *//;s/ *$//'`\nsimple_branch_name=`$git rev-parse --abbrev-ref HEAD`\n\nbuild_number=\"${git_count}0\"\nif [ $CONFIGURATION != \"Release\" ]; then\nbuild_number+=\"-$simple_branch_name\"\nfi\nif [ \"$CI\" = \"true\" ]; then\nbuild_date=`date +\"%Y%m%d%H%m%S\"`\nbuild_number=\"$build_date-continuous\"\nfi\n\nplist=\"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}\"\ndsym_plist=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $build_number\" \"$plist\"\nif [ -f \"$DSYM_INFO_PLIST\" ] ; then\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $build_number\" \"$dsym_plist\"\nfi\n"; + shellScript = "git=`sh /etc/profile; which git`\n#branch_name=`$git symbolic-ref HEAD | sed -e 's,refs/heads/\\\\(.*\\\\),\\\\1,'`\nbranch_name=`$git rev-parse --abbrev-ref HEAD`\n#simple_branch_name=`$git rev-parse --abbrev-ref HEAD`\ngit_count=`$git rev-list $branch_name |wc -l | sed 's/^ *//;s/ *$//'`\n\nbuild_number=\"${git_count}0\"\nif [ $CONFIGURATION != \"Release\" ] || [ $branch_name != \"master\" ]; then\nbuild_number+=\"-$branch_name\"\nfi\nif [ \"$CI\" = \"true\" ]; then\nbuild_date=`date +\"%Y%m%d%H%m%S\"`\nbuild_number=\"$build_date-continuous\"\nfi\n\nplist=\"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}\"\ndsym_plist=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $build_number\" \"$plist\"\nif [ -f \"$DSYM_INFO_PLIST\" ] ; then\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $build_number\" \"$dsym_plist\"\nfi\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -1981,13 +2025,15 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 4C1ECAE322CCD30F00F46069 /* MPAutotypeDoctor.m in Sources */, 4CD034AC1BFE113B003C002C /* MPPluginHost.m in Sources */, 4C77E37315B84A240093A587 /* main.m in Sources */, 4C0F04402147A6FA000B8568 /* MPCustomFieldTableView.m in Sources */, 4CBA2ABA17074C07006D8139 /* MPSettingsHelper.m in Sources */, 4C77E37A15B84A240093A587 /* MPAppDelegate.m in Sources */, + 3C0CDED821D28BF700B2A10B /* MPTouchBarButtonCreator.m in Sources */, 4C37A84015B8B474005EF8EE /* MPOutlineDataSource.m in Sources */, - 4CA0B2F915BCAF6700654E32 /* MPGeneralSettingsController.m in Sources */, + 4CA0B2F915BCAF6700654E32 /* MPGeneralPreferencesController.m in Sources */, 4C8F0C791FD05A6A00BE157F /* NSString+MPPrettyPasswordDisplay.m in Sources */, 4C73B6F1215E64A7009787F7 /* MPWelcomeViewController.m in Sources */, 4C6B7C7D18BE7EB0001D5D77 /* MPDocument+History.m in Sources */, @@ -2055,7 +2101,7 @@ 4CAD338F205169D30068587E /* MPPluginRepositoryItem.m in Sources */, 4C9BFFFB1FD19B5400264B16 /* MPPrettyPasswordTransformer.m in Sources */, 4CA0F3ED1A3074B50067C0E5 /* MPWindowTitleComboBoxDelegate.m in Sources */, - 4CF78064176E75AD0032EE71 /* MPIntegrationSettingsController.m in Sources */, + 4CF78064176E75AD0032EE71 /* MPIntegrationPreferencesController.m in Sources */, 4C06B17F21D9691F00CD4BBC /* MPPluginStatusTableCellView.m in Sources */, 4C25703F1BF11C2300D39416 /* MPPluginPreferencesController.m in Sources */, 4CF6C711176F4533007A811D /* MPStringLengthValueTransformer.m in Sources */, @@ -2075,6 +2121,7 @@ 4CEE46DD181C301D006BF1E5 /* MPAutotypeDaemon.m in Sources */, 4C50CC041F6C18830095629D /* MPCollectionViewItem.m in Sources */, 4CA78C001FD58C92003C8560 /* MPPluginRepository.m in Sources */, + 4CAD8AA622CF397B0090B2DD /* MPAutotypeDoctorReportViewController.m in Sources */, 4C8990F71EE978EB0043B48D /* MPDuplicateEntryOptionsWindowController.m in Sources */, 4CA3530B18A53CB800839B0F /* MPKeyMapper.m in Sources */, 4CE298EB1795FC2A00DF7BDB /* MPEntryContextMenuDelegate.m in Sources */, @@ -2084,7 +2131,7 @@ 4C26C33F18D8C92100CF1A1C /* MPTemporaryFileStorage.m in Sources */, 4C663D411D6D91A900CB6237 /* MPNumberFormatter.m in Sources */, 4CD2B9061849424B0051B395 /* MPAutotypeContext.m in Sources */, - 4CFB18E418A17FA20097A34B /* MPUpdateSettingsController.m in Sources */, + 4CFB18E418A17FA20097A34B /* MPUpdatePreferencesController.m in Sources */, 4C7B63771C0CB51F00D7038C /* TTTStringTransformers.m in Sources */, 4CD4EE131FC7284000EA6EB3 /* MPPickcharsViewController.m in Sources */, 4CCEDE2A179F203B008402BE /* MPOutlineView.m in Sources */, @@ -2102,7 +2149,7 @@ 4C1BDF2B1E4392640012A3F0 /* MPPluginDataViewController.m in Sources */, 4C4B7EF817A4B335000234C7 /* MPUniqueCharactersFormatter.m in Sources */, 4C8B36AB17A6ED4B005E1FF1 /* MPOutlineContextMenuDelegate.m in Sources */, - 4CD7223B17A7CB0700F5A1E1 /* MPWorkflowSettingsController.m in Sources */, + 4CD7223B17A7CB0700F5A1E1 /* MPWorkflowPreferencesController.m in Sources */, 4CA08DA017A831B200A6544B /* MPAddEntryContextMenuDelegate.m in Sources */, 4C09495C1FD6E510004F2971 /* MPAddCustomFieldContextMenuDelegate.m in Sources */, 4CE3E62617AB0D2D00D9E4B4 /* MPAttachmentTableDataSource.m in Sources */, @@ -2110,6 +2157,7 @@ 4C0F647B17B6BC9C00D9522A /* MPSavePanelAccessoryViewController.m in Sources */, 4C0949591FD6B89B004F2971 /* NSUserNotification+MPAdditions.m in Sources */, 4C3B42871F935316007B04FD /* MPDayCountFormatter.m in Sources */, + 3C0CDECF21CFEDD200B2A10B /* NSTextView+MPTouchBarExtension.m in Sources */, 4C57AE1417BA422B00CA4F34 /* MPSegmentedContextCell.m in Sources */, 4CE2961518429AA5005F01CE /* MPAutotypeKeyPress.m in Sources */, 4C32B0E71A1D4436007E12F1 /* KPKFormat+MPUTIDetection.m in Sources */, @@ -2133,10 +2181,13 @@ isa = PBXVariantGroup; children = ( 4C0B5339205C1516003D277E /* Base */, - 4C0B533C205C151D003D277E /* en */, 4C0B533E205C1526003D277E /* de */, 6A74B0752076F4B50049BC29 /* sv-SE */, 4C272A282224871900186EEC /* nl */, + 4C1D56302271F4BC00C3E594 /* fr */, + A083E27922DF467B0020E0D5 /* es */, + 78E1F8B822E3B06700E738AE /* ru */, + 71FF7A23230FEF11002F488F /* it */, ); name = PickcharsView.xib; sourceTree = ""; @@ -2145,11 +2196,14 @@ isa = PBXVariantGroup; children = ( 4C0B5340205C1561003D277E /* Base */, - 4C0B5343205C1563003D277E /* en */, 4C0B5345205C1567003D277E /* de */, 6A74B0762076F4B50049BC29 /* sv-SE */, A50AD5D0212884A0007C85EB /* pl */, 4C272A2B2224871900186EEC /* nl */, + 4C1D56372271F4BC00C3E594 /* fr */, + A083E27F22DF467B0020E0D5 /* es */, + 78E1F8BA22E3B0B700E738AE /* ru */, + 71FF7A25230FEF3D002F488F /* it */, ); name = PickfieldView.xib; sourceTree = ""; @@ -2167,7 +2221,6 @@ 4CA182761F96512800DD4A4A /* de */, 4C8C10061FC489D8003DDD5E /* nl */, 6A74B0692076F4B40049BC29 /* sv-SE */, - 4CF7CCA12211AFD400F6D5A0 /* en */, ); name = PluginPreferences.xib; sourceTree = ""; @@ -2176,13 +2229,31 @@ isa = PBXVariantGroup; children = ( 4C0F04422147FB49000B8568 /* Base */, - 4C0F04452147FB4D000B8568 /* en */, 4C0F04472147FB4E000B8568 /* de */, 4C272A2A2224871900186EEC /* nl */, + 4C1D56332271F4BC00C3E594 /* fr */, + A083E27C22DF467B0020E0D5 /* es */, + 78E1F8BC22E3B12300E738AE /* ru */, + 71FF7A29230FF0E4002F488F /* it */, ); name = OpenPanelAccessoryView.xib; sourceTree = ""; }; + 4C17D1202250EFBC00C650C4 /* SavePanelAccessoryView.xib */ = { + isa = PBXVariantGroup; + children = ( + 4C17D11F2250EFBC00C650C4 /* Base */, + 4C17D1222250EFBF00C650C4 /* de */, + 4C17D1262250EFC900C650C4 /* nl */, + 7837112922553A74009BD28D /* ru */, + 4C1D56342271F4BC00C3E594 /* fr */, + A083E27D22DF467B0020E0D5 /* es */, + 71FF7A19230FEA24002F488F /* it */, + ABAA99A4231519150095D78E /* zh-Hans */, + ); + name = SavePanelAccessoryView.xib; + sourceTree = ""; + }; 4C45FB21178E09ED0010007D /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( @@ -2203,7 +2274,6 @@ isa = PBXVariantGroup; children = ( 4C6DCC461FA2457900C8AD3F /* Base */, - 4C6DCC491FA2457C00C8AD3F /* en */, 4C6DCC4B1FA2457D00C8AD3F /* de */, 4C6DCC4D1FA2457E00C8AD3F /* fr */, 4C6DCC4F1FA2457F00C8AD3F /* zh-Hans */, @@ -2225,7 +2295,6 @@ 4C7155E61A10DB7600979307 /* zh-Hans */, 4C7155E81A10DB7700979307 /* fr */, 4C7155EA1A10DB7800979307 /* de */, - 4C7155EC1A10DB7900979307 /* en */, FA638D1C1C39BFCC00B10CC6 /* ru */, 4825CC8F1C414D58003E37E9 /* it */, 4C840C521D773E5E0081F605 /* pl */, @@ -2235,7 +2304,7 @@ name = IconSelection.xib; sourceTree = ""; }; - 4C76155E1764C04C0015A1A6 /* GeneralSettings.xib */ = { + 4C76155E1764C04C0015A1A6 /* GeneralPreferences.xib */ = { isa = PBXVariantGroup; children = ( 4C76155F1764C0590015A1A6 /* Base */, @@ -2248,16 +2317,14 @@ 4C840C471D773E5D0081F605 /* pl */, 4C4161041F50333B003BC0AF /* es */, 6A74B0652076F4B40049BC29 /* sv-SE */, - 4C168CB02216CEC300BB1EB0 /* en */, ); - name = GeneralSettings.xib; + name = GeneralPreferences.xib; sourceTree = ""; }; 4C76156A1764C0C40015A1A6 /* PasswordInputView.xib */ = { isa = PBXVariantGroup; children = ( 4C76156B1764C0C80015A1A6 /* Base */, - 4C76156C1764C0CC0015A1A6 /* en */, 4C7615751764C4A40015A1A6 /* de */, 4C5CD34717D1591A000B7F38 /* fr */, 601F811318E016340028F3DE /* zh-Hans */, @@ -2283,7 +2350,6 @@ 4825CC8C1C414D58003E37E9 /* it */, 4C840C4F1D773E5E0081F605 /* pl */, 4C4161091F50333B003BC0AF /* es */, - 4C5F72851FC4351E00929153 /* en */, 6A74B06A2076F4B40049BC29 /* sv-SE */, ); name = InspectorView.xib; @@ -2292,7 +2358,6 @@ 4C77E36F15B84A240093A587 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( - 4C77E37015B84A240093A587 /* en */, 4C7615791764C4A50015A1A6 /* de */, 4C5CD34217D158DE000B7F38 /* fr */, 601F811A18E016340028F3DE /* zh-Hans */, @@ -2313,7 +2378,6 @@ 4C5CD34617D15912000B7F38 /* fr */, 601F811218E016340028F3DE /* zh-Hans */, BD6C365C19484CF40089EB37 /* nl */, - 4C21F29D195B39B9002D610D /* en */, 4C21F29F195B3A48002D610D /* de */, FA638D161C39BFCC00B10CC6 /* ru */, 4825CC891C414D57003E37E9 /* it */, @@ -2332,7 +2396,6 @@ 4C7F8B761A10B69400CCB83D /* zh-Hans */, 4C7F8B781A10B69500CCB83D /* fr */, 4C7F8B7A1A10B69700CCB83D /* de */, - 4C7F8B7C1A10B69800CCB83D /* en */, FA638D101C39BFCB00B10CC6 /* ru */, 4825CC831C414D57003E37E9 /* it */, 4C840C461D773E5D0081F605 /* pl */, @@ -2350,11 +2413,11 @@ 601F811818E016340028F3DE /* zh-Hans */, BD6C366319484CF40089EB37 /* nl */, FA638D1F1C39BFCC00B10CC6 /* ru */, - 4825CC921C414D58003E37E9 /* it */, 4C43B02F1E266A3A000CB4D7 /* pl */, 4C4161131F50333C003BC0AF /* es */, 4C97CCEF1FA727DC00E58F8C /* en */, 6A74B07A2076F4B60049BC29 /* sv-SE */, + 4C1888D0230FFEE20054A38F /* it */, ); name = Localizable.strings; sourceTree = ""; @@ -2363,7 +2426,6 @@ isa = PBXVariantGroup; children = ( 4CA182791F96523600DD4A4A /* Base */, - 4CA1827C1F96524100DD4A4A /* en */, 4CA1827E1F96524400DD4A4A /* de */, 4CA182801F96524600DD4A4A /* fr */, 4CA182821F96524B00DD4A4A /* zh-Hans */, @@ -2380,16 +2442,7 @@ 4CB9339716D3A0DD00A13B5D /* Credits.rtf */ = { isa = PBXVariantGroup; children = ( - 4CB9339816D3A0DD00A13B5D /* en */, - 4C7615781764C4A50015A1A6 /* de */, - 4C5CD34117D158DE000B7F38 /* fr */, - 601F811918E016340028F3DE /* zh-Hans */, - BD6C366419484CF40089EB37 /* nl */, - FA638D201C39BFCC00B10CC6 /* ru */, - 4825CC931C414D58003E37E9 /* it */, - 4C43B0301E266A41000CB4D7 /* pl */, - 4C4161141F50333C003BC0AF /* es */, - 6A74B07B2076F4B60049BC29 /* sv-SE */, + 4CF14962224B623700D1CE1C /* Base */, ); name = Credits.rtf; sourceTree = ""; @@ -2403,9 +2456,10 @@ 4C840C541D773E5E0081F605 /* pl */, 4C4161101F50333C003BC0AF /* es */, 4CA182771F96512800DD4A4A /* de */, - 4C79B6401FB0562D008250D8 /* en */, BB3E050E1FE9D1CC00F0B46F /* nl */, 6A74B0722076F4B50049BC29 /* sv-SE */, + 4C1D56362271F4BC00C3E594 /* fr */, + ABAA99A523151BE70095D78E /* zh-Hans */, ); name = ReferenceBuilderView.xib; sourceTree = ""; @@ -2414,10 +2468,14 @@ isa = PBXVariantGroup; children = ( 4CF6653920E67A140008A25C /* Base */, - 4CF6653C20E67A180008A25C /* en */, 4CF6653E20E67A1A0008A25C /* de */, A50AD5CF212884A0007C85EB /* pl */, 4C272A292224871900186EEC /* nl */, + 4C1D56312271F4BC00C3E594 /* fr */, + A083E27A22DF467B0020E0D5 /* es */, + 78E1F8C022E3B22500E738AE /* ru */, + 71FF7A1F230FEEC7002F488F /* it */, + ABE86630231662D200201125 /* zh-Hans */, ); name = PluginDataView.xib; sourceTree = ""; @@ -2427,7 +2485,6 @@ children = ( 6021FE3C18E1341900C3BC51 /* Base */, 6021FE4418E1342500C3BC51 /* zh-Hans */, - 6021FE4618E1344A00C3BC51 /* en */, 6021FE4818E1356800C3BC51 /* de */, 6021FE4A18E1356B00C3BC51 /* fr */, BD6C366119484CF40089EB37 /* nl */, @@ -2444,7 +2501,6 @@ isa = PBXVariantGroup; children = ( 6021FE4C18E13F1D00C3BC51 /* Base */, - 6021FE4F18E13F2500C3BC51 /* en */, 6021FE5118E13F2700C3BC51 /* de */, 6021FE5318E13F2900C3BC51 /* fr */, 6021FE5518E13F2A00C3BC51 /* zh-Hans */, @@ -2458,29 +2514,27 @@ name = GroupInspectorView.xib; sourceTree = ""; }; - 6021FE5818E1429500C3BC51 /* IntegrationSettings.xib */ = { + 6021FE5818E1429500C3BC51 /* IntegrationPreferences.xib */ = { isa = PBXVariantGroup; children = ( 6021FE5718E1429500C3BC51 /* Base */, - 6021FE5A18E142A000C3BC51 /* en */, 6021FE5C18E142A200C3BC51 /* de */, 6021FE5E18E142A300C3BC51 /* fr */, BD6C365919484CF40089EB37 /* nl */, - FA638D121C39BFCB00B10CC6 /* ru */, 4825CC851C414D57003E37E9 /* it */, 4C840C481D773E5D0081F605 /* pl */, 60ECAD271F12262400EA9DB3 /* zh-Hans */, 4C4161051F50333B003BC0AF /* es */, 6A74B0662076F4B40049BC29 /* sv-SE */, + 78E1F8AF22E3A3DF00E738AE /* ru */, ); - name = IntegrationSettings.xib; + name = IntegrationPreferences.xib; sourceTree = ""; }; - 6021FE6318E15D9100C3BC51 /* WorkflowSettings.xib */ = { + 6021FE6318E15D9100C3BC51 /* WorkflowPreferences.xib */ = { isa = PBXVariantGroup; children = ( 6021FE6218E15D9100C3BC51 /* Base */, - 6021FE6518E15D9800C3BC51 /* en */, 6021FE6718E15D9A00C3BC51 /* de */, 6021FE6918E15D9B00C3BC51 /* fr */, BD6C365A19484CF40089EB37 /* nl */, @@ -2491,14 +2545,13 @@ 4C4161061F50333B003BC0AF /* es */, 6A74B0672076F4B40049BC29 /* sv-SE */, ); - name = WorkflowSettings.xib; + name = WorkflowPreferences.xib; sourceTree = ""; }; - 6021FE6E18E15E6D00C3BC51 /* UpdateSettings.xib */ = { + 6021FE6E18E15E6D00C3BC51 /* UpdatePreferences.xib */ = { isa = PBXVariantGroup; children = ( 6021FE6D18E15E6D00C3BC51 /* Base */, - 6021FE7018E15E7400C3BC51 /* en */, 6021FE7218E15E7700C3BC51 /* de */, 6021FE7418E15E7900C3BC51 /* fr */, 6021FE7618E15E7B00C3BC51 /* zh-Hans */, @@ -2509,14 +2562,13 @@ 4C4161071F50333B003BC0AF /* es */, 6A74B0682076F4B40049BC29 /* sv-SE */, ); - name = UpdateSettings.xib; + name = UpdatePreferences.xib; sourceTree = ""; }; 6021FE7918E15FF300C3BC51 /* DatePickingView.xib */ = { isa = PBXVariantGroup; children = ( 6021FE7818E15FF300C3BC51 /* Base */, - 6021FE7B18E15FFD00C3BC51 /* en */, 6021FE7D18E15FFF00C3BC51 /* de */, 6021FE7F18E1600000C3BC51 /* fr */, 6021FE8118E1600200C3BC51 /* zh-Hans */, @@ -2534,7 +2586,6 @@ isa = PBXVariantGroup; children = ( 6021FE8318E160BC00C3BC51 /* Base */, - 6021FE8618E160C700C3BC51 /* en */, 6021FE8818E160C800C3BC51 /* de */, 6021FE8A18E160C900C3BC51 /* fr */, 6021FE8C18E160CB00C3BC51 /* zh-Hans */, @@ -2552,7 +2603,6 @@ isa = PBXVariantGroup; children = ( 6021FE8E18E1617300C3BC51 /* Base */, - 6021FE9118E1617A00C3BC51 /* en */, 6021FE9318E1617C00C3BC51 /* de */, 6021FE9518E1617D00C3BC51 /* fr */, 6021FE9718E1617E00C3BC51 /* zh-Hans */, @@ -2578,12 +2628,37 @@ 4825CC811C414D57003E37E9 /* it */, 4C840C441D773E5D0081F605 /* pl */, 4C4161021F50333B003BC0AF /* es */, - 4C73EB941FBB58730033000F /* en */, 6A74B0622076F4B30049BC29 /* sv-SE */, ); name = DatabaseSettingsWindow.xib; sourceTree = ""; }; + 7837112E225540D1009BD28D /* PluginRepositoryBrowserView.xib */ = { + isa = PBXVariantGroup; + children = ( + 7837112D225540D1009BD28D /* Base */, + 78371130225540D8009BD28D /* ru */, + 4C1D56382271F4BC00C3E594 /* fr */, + 4C4B2ED122D8CA6100EB6BFD /* de */, + A083E28022DF467B0020E0D5 /* es */, + 71FF7A1B230FED35002F488F /* it */, + ABAA99A623151BE70095D78E /* zh-Hans */, + ); + name = PluginRepositoryBrowserView.xib; + sourceTree = ""; + }; + 78E1F8B222E3A5D600E738AE /* AutotypeDoctorReportViewController.xib */ = { + isa = PBXVariantGroup; + children = ( + 78E1F8B122E3A5D600E738AE /* Base */, + 78E1F8B422E3A5DB00E738AE /* ru */, + 4C1888CF230FBC080054A38F /* de */, + 71FF7A27230FEF6B002F488F /* it */, + ABE8662F2316617500201125 /* zh-Hans */, + ); + name = AutotypeDoctorReportViewController.xib; + sourceTree = ""; + }; FA13910A1F9CD9EB0033D256 /* Localizable.stringsdict */ = { isa = PBXVariantGroup; children = ( @@ -2592,6 +2667,10 @@ 4C6DCC5A1FA246ED00C8AD3F /* de */, BB3E050D1FE9D1CB00F0B46F /* nl */, 6A74B0792076F4B50049BC29 /* sv-SE */, + 4C1D562F2271F4BC00C3E594 /* fr */, + A019D80F22DC6B3C0085FD54 /* es */, + 78E1F8C122E3B32D00E738AE /* ru */, + ABE8662E2316617500201125 /* zh-Hans */, ); name = Localizable.stringsdict; sourceTree = ""; @@ -2602,9 +2681,13 @@ FA9FD3281FB5E8F4003CEDD6 /* Base */, FA9FD32B1FB5E8FD003CEDD6 /* pl */, 4C73EB951FBB5A8F0033000F /* de */, - 4C93C5701FBDFEF700F36855 /* en */, BB3E050C1FE9D1CA00F0B46F /* nl */, 6A74B0742076F4B50049BC29 /* sv-SE */, + 4C1D56322271F4BC00C3E594 /* fr */, + A083E27B22DF467B0020E0D5 /* es */, + 78E1F8BE22E3B1BF00E738AE /* ru */, + 71FF7A21230FEEE2002F488F /* it */, + ABE506D522EFF97400B9F8DA /* zh-Hans */, ); name = AutotypeCandidateSelectionView.xib; sourceTree = ""; @@ -2615,9 +2698,13 @@ FA9FD32D1FB5EDD3003CEDD6 /* Base */, FA9FD32F1FB5EDDE003CEDD6 /* pl */, 4C73EB961FBB5A910033000F /* de */, - 4C93C5711FBDFEF900F36855 /* en */, BB3E050F1FE9D1CD00F0B46F /* nl */, 6A74B0732076F4B50049BC29 /* sv-SE */, + 7837112B22553B1D009BD28D /* ru */, + 4C1D56352271F4BC00C3E594 /* fr */, + A083E27E22DF467B0020E0D5 /* es */, + 71FF7A1D230FEE7B002F488F /* it */, + ABE506D622EFF97400B9F8DA /* zh-Hans */, ); name = AutotypeBuilderView.xib; sourceTree = ""; @@ -2700,7 +2787,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = ""; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 0.7.6; + CURRENT_PROJECT_VERSION = 0.7.9; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -2755,7 +2842,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = ""; COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 0.7.6; + CURRENT_PROJECT_VERSION = 0.7.9; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; diff --git a/MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme b/MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme index 8b4f400cc..2fe0b1763 100644 --- a/MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme +++ b/MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme @@ -1,6 +1,6 @@ + + diff --git a/MacPass/Base.lproj/AutotypeCandidateSelectionView.xib b/MacPass/Base.lproj/AutotypeCandidateSelectionView.xib index 708ed7d98..116456d7d 100644 --- a/MacPass/Base.lproj/AutotypeCandidateSelectionView.xib +++ b/MacPass/Base.lproj/AutotypeCandidateSelectionView.xib @@ -1,14 +1,15 @@ - + - + + @@ -82,6 +83,7 @@ + diff --git a/MacPass/Base.lproj/AutotypeDoctorReportViewController.xib b/MacPass/Base.lproj/AutotypeDoctorReportViewController.xib new file mode 100644 index 000000000..2d7e4ccce --- /dev/null +++ b/MacPass/Base.lproj/AutotypeDoctorReportViewController.xib @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MacPass will send key press events to the system when Autotype or Global Autotype is executed. Since macOS 10.14 Mojave this is only possible, if Accessibility permissions are granted to the application. + + + + + + + + + + + + + + MacPass will read every window title when Global Autotype is executed to find a match. Since macOS 10.15 Catalina it is not possible to read any window title, if the user has not granted permissions to record the screen. If you are running macOS 10.15 or higher, MacPass will check if it can read every window title of currently visible windows. This test will not read the actual title. The titles aren't stored or processed in any way. + + + + + + + + + + + + + + + + + + + + + To request Screen Recording permissions, MacPass will try to capture a 1 by 1 Pixel sized screenshot of the top left part of your screen. The data is not stored nor processed in any way. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MacPass/pl.lproj/Credits.rtf b/MacPass/Base.lproj/Credits.rtf similarity index 50% rename from MacPass/pl.lproj/Credits.rtf rename to MacPass/Base.lproj/Credits.rtf index a39835a87..fbbc68790 100644 --- a/MacPass/pl.lproj/Credits.rtf +++ b/MacPass/Base.lproj/Credits.rtf @@ -1,22 +1,27 @@ {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 -{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red52\green110\blue183;\red38\green38\blue38;} -{\*\expandedcolortbl;;\csgenericrgb\c20392\c43137\c71765;\csgenericrgb\c14902\c14902\c14902;} +{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;\f2\fnil\fcharset0 SFProText-Regular; +} +{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red9\green79\blue209;\red69\green60\blue204; +\red52\green110\blue183;\red38\green38\blue38;} +{\*\expandedcolortbl;;\cssrgb\c0\c0\c0\cname textColor;\cssrgb\c0\c40784\c85490\cname linkColor;\cssrgb\c34510\c33725\c83922; +\csgenericrgb\c20392\c43137\c71765;\csgenericrgb\c14902\c14902\c14902;} \paperw11900\paperh16840\vieww25780\viewh19380\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\f0\b\fs24 \cf0 Project Website:\ +\f0\b\fs24 \cf2 Project Website:\cf0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt -\f1\b0 \cf0 MacPass}} -\f1\b0 \ +{\field{\*\fldinst{HYPERLINK "https://macpassapp.org"}}{\fldrslt +\f1\b0 \cf2 macpassapp.org}} +\f1\b0 \cf3 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 +{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt \cf3 MacPass}} \cf2 on GitHub.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\f0\b \cf0 \ +\f0\b \cf2 \ License:\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\f1\b0 \cf0 MacPass KeePass compatible client for OS X\ +\f1\b0 \cf2 MacPass KeePass compatible client for OS X\ Copyright (c) 2012-2019 Michael Starke, HicknHack Software GmbH\ \ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by\ @@ -26,78 +31,88 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\ \ -You should have received a copy of the GNU General Public License along with this program. If not, see {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt http://www.gnu.org/licenses/}}.\ +You should have received a copy of the GNU General Public License along with this program. If not, see {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt \cf3 http://www.gnu.org/licenses/}}\cf0 .\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 \cf0 \kerning1\expnd0\expndtw3 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\f0\b \cf0 \kerning1\expnd0\expndtw0 Credits:\ +\f0\b \cf2 \kerning1\expnd0\expndtw0 Credits:\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 \f1\b0 \cf2 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 Dutch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/clone1612"}}{\fldrslt Jannick Hemelhof}}\ +Dutch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/FrankKooij"}}{\fldrslt \cf3 Frank Kooij}}, +\f2 \cf4 \expnd0\expndtw0\kerning0 + {\field{\*\fldinst{HYPERLINK "https://github.com/clone1612"}}{\fldrslt +\f1 \cf3 \kerning1\expnd0\expndtw0 Jannick Hemelhof}} +\f1 \cf0 \kerning1\expnd0\expndtw0 \ \ -French translation: {\field{\*\fldinst{HYPERLINK "mailto:gil@panix.com"}}{\fldrslt Gil Andr\'e9}}\ +\cf2 French translation:\cf0 {\field{\*\fldinst{HYPERLINK "mailto:gil@panix.com"}}{\fldrslt \cf3 Gil Andr\'e9}}\ \ -Italian translation: {\field{\*\fldinst{HYPERLINK "mailto:info@francescoservida.ch"}}{\fldrslt Francesco Servida}}\ +\cf2 Italian translation:\cf0 {\field{\*\fldinst{HYPERLINK "mailto:info@francescoservida.ch"}}{\fldrslt \cf3 Francesco Servida}}\ \ -Polish translation: {\field{\*\fldinst{HYPERLINK "http://www.webii.pl/"}}{\fldrslt Micha\uc0\u322 Jaglewicz}}\ +\cf2 Polish translation:\cf0 {\field{\*\fldinst{HYPERLINK "http://www.webii.pl/"}}{\fldrslt \cf3 Micha\uc0\u322 Jaglewicz}}\ \ -Russian translation: {\field{\*\fldinst{HYPERLINK "mailto:alex@mrdoggy.info"}}{\fldrslt Aliaksandr Piatkevich}}\ +\cf2 Russian translation:\cf0 {\field{\*\fldinst{HYPERLINK "mailto:alex@mrdoggy.info"}}{\fldrslt \cf3 Aliaksandr Piatkevich}}\ \ -Simplified Chinese translation: {\field{\*\fldinst{HYPERLINK "mailto:patchao2000@gmail.com"}}{\fldrslt Zhao Peng}}\ +\cf2 Simplified Chinese translation:\cf0 {\field{\*\fldinst{HYPERLINK "mailto:patchao2000@gmail.com"}}{\fldrslt \cf3 Zhao Peng}}\ \ -Spanisch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/m0yP"}}{\fldrslt \expnd0\expndtw0\kerning0 +\cf2 Spanisch translation:\cf0 {\field{\*\fldinst{HYPERLINK "https://github.com/m0yP"}}{\fldrslt \cf3 \expnd0\expndtw0\kerning0 Moises Perez}}\ \ -MacPass\kerning1\expnd0\expndtw3 - \kerning1\expnd0\expndtw0 Icon: {\field{\*\fldinst{HYPERLINK "http://iiro.jappinen.me"}}{\fldrslt Iiro J\'e4ppinen}}\ +\cf2 MacPass\kerning1\expnd0\expndtw3 + \kerning1\expnd0\expndtw0 Icon:\cf0 {\field{\*\fldinst{HYPERLINK "http://iiro.jappinen.me"}}{\fldrslt \cf3 Iiro J\'e4ppinen}}\ \ -Database Icons: {\field{\*\fldinst{HYPERLINK "https://github.com/JoannaOlsen"}}{\fldrslt Joanna Olsen}}\cf2 \ +\cf2 Database Icons:\cf0 {\field{\*\fldinst{HYPERLINK "https://github.com/JoannaOlsen"}}{\fldrslt \cf3 Joanna Olsen}}\cf5 \ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt \cf2 KissXML}}\cf3 \ -Copyright \'a9 2012 Robbie Hanson. All rights reserved.\ +{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt \cf3 KissXML}}\cf6 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 +\cf2 Copyright \'a9 2012 Robbie Hanson. All rights reserved.\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf2 MiniKeePass}}\ -Copyright \'a9 2011 Jason Rush and John Flanagan. All rights reserved.\ +{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf3 MiniKeePass}}\cf6 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 +\cf2 Copyright \'a9 2011 Jason Rush and John Flanagan. All rights reserved.\cf6 \ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt \cf2 KeePass Database Library}}\ -Copyright \'a9 2010 Qiang Yu. All rights reserved.\ -\ +{\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt \cf3 KeePass Database Library}}\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/Perspx/PXSourceList"}}{\fldrslt \cf3 PXSourceList}}\ -Copyright \'a9 2011, Alex Rozanski. All rights reserved.\ +\cf2 Copyright \'a9 2010 Qiang Yu. All rights reserved.\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 {\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org"}}{\fldrslt \cf3 Sparkl\kerning1\expnd0\expndtw3 -e}}\kerning1\expnd0\expndtw3 +e}}\cf6 \kerning1\expnd0\expndtw3 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 +\cf2 \kerning1\expnd0\expndtw3 Copyright \'a9 2006 Andy Matuschak. \kerning1\expnd0\expndtw0 All rights reserved.\kerning1\expnd0\expndtw3 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf3 \kerning1\expnd0\expndtw0 \ +\cf2 \kerning1\expnd0\expndtw0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/questions/11386876/how-to-encode-and-decode-files-as-base64-in-cocoa-objective-c"}}{\fldrslt \cf3 NSData+Base64}}\ -Copyright \'a92013, {\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/users/200321/denis2342"}}{\fldrslt denis2342}}\ -\ +{\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/questions/11386876/how-to-encode-and-decode-files-as-base64-in-cocoa-objective-c"}}{\fldrslt \cf3 NSData+Base64}}\cf6 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 +\cf2 Copyright \'a92013, {\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/users/200321/denis2342"}}{\fldrslt \cf3 denis2342}}\cf3 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 +\cf6 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 {\field{\*\fldinst{HYPERLINK "http://www.cocoadev.com/index.pl?NSDataCategory"}}{\fldrslt \cf3 NSData+Gzip}}\ -Extracted from code on the CocoaDev Wiki\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 +\cf2 Extracted from code on the CocoaDev Wiki\cf6 \ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 {\field{\*\fldinst{HYPERLINK "https://github.com/karelia/SecurityInterface"}}{\fldrslt \cf3 KSPasswordField}}\ -Code reused in HNHUISecureTextField\ -Copyright \'a92012 Mike Abdullah, Karelia Software. All rights reserved.\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 +\cf2 Code reused in HNHUISecureTextField\ +Copyright \'a92012 Mike Abdullah, Karelia Software. All rights reserved.\cf6 \ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 {\field{\*\fldinst{HYPERLINK "https://github.com/AlanQuatermain/aqtoolkit"}}{\fldrslt \cf3 NSData+CommonCrypto}}\ -Copyright \'a92008-2009 Jim Dovey, All rights reserved.\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 +\cf2 Copyright \'a92008-2009 Jim Dovey, All rights reserved.\cf6 \ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 {\field{\*\fldinst{HYPERLINK "https://github.com/mattt/TransformerKit"}}{\fldrslt \cf3 TransformerKit}}\ -Copyright \'a92012 Mattt Thompson. All rights reseverd} \ No newline at end of file +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 +\cf2 Copyright \'a92012 Mattt Thompson. All rights reserved} \ No newline at end of file diff --git a/MacPass/Base.lproj/DatabaseSettingsWindow.xib b/MacPass/Base.lproj/DatabaseSettingsWindow.xib index b1514ec37..969e6b5c7 100644 --- a/MacPass/Base.lproj/DatabaseSettingsWindow.xib +++ b/MacPass/Base.lproj/DatabaseSettingsWindow.xib @@ -1,9 +1,8 @@ - + - - + @@ -48,7 +47,7 @@ - + @@ -99,7 +98,7 @@ Gw - + @@ -120,7 +119,7 @@ Gw - + @@ -158,30 +157,30 @@ Gw - + - + - + + - + - - - + @@ -262,18 +261,18 @@ Gw - + - + @@ -299,7 +298,7 @@ Gw - + @@ -347,7 +346,7 @@ Gw - + @@ -359,7 +358,7 @@ Gw - + @@ -415,7 +414,7 @@ Gw - + @@ -426,7 +425,7 @@ Gw - + @@ -494,7 +493,7 @@ Gw - + @@ -522,18 +521,18 @@ Gw - + - + @@ -541,10 +540,10 @@ Gw - + - + @@ -552,15 +551,15 @@ Gw - + - + - + @@ -568,7 +567,7 @@ Gw - + @@ -584,21 +583,21 @@ Gw - + @@ -619,7 +618,7 @@ Gw - + @@ -630,7 +629,7 @@ Gw - + @@ -638,7 +637,7 @@ Gw - + @@ -646,7 +645,7 @@ Gw - + @@ -113,7 +111,7 @@ - + Enabling this compromises security. If enabled, your preferences will contain mappings from database to keyfile. Key locations for databases without a password will not be saved. @@ -122,7 +120,7 @@ - + Disabling this compromises security. If enabled, anything copied to the Clipboard in MacPass will be available on your connected iOS devices. You should clear the clipboard on those devices manually. @@ -157,11 +155,18 @@ + + + + + + + @@ -170,8 +175,8 @@ - - + + @@ -187,24 +192,38 @@ - - + - + + + + + + + + + + @@ -214,7 +233,7 @@ - + @@ -223,12 +242,19 @@ - + + + + + + - + + + @@ -243,11 +269,11 @@ - + - + diff --git a/MacPass/Base.lproj/IntegrationSettings.xib b/MacPass/Base.lproj/IntegrationPreferences.xib similarity index 96% rename from MacPass/Base.lproj/IntegrationSettings.xib rename to MacPass/Base.lproj/IntegrationPreferences.xib index 906a46d1a..07213981e 100644 --- a/MacPass/Base.lproj/IntegrationSettings.xib +++ b/MacPass/Base.lproj/IntegrationPreferences.xib @@ -1,12 +1,12 @@ - + - + - + @@ -26,34 +26,34 @@ - + - + - + - + - + - Autotype is not available, because MacPass is not allowed to control your computer. To enable Autotype, go to the Security and Privacy Preferences and add MacPass to the Accessibilty group. Changes require a restart of MacPass. + Autotype might not work properly. Some issues where found that prevent Autotype or Global Autotype to work. Please run the Autotype Doctor to fix those issues. - + @@ -88,7 +88,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -107,8 +107,8 @@ - - + + @@ -138,7 +138,7 @@ Gw - + If enabled, Plugins without proper signatures will be allowed to load. Keep in mind, that Plugins have full access to your data! Changes take affect on restart. @@ -74,13 +75,13 @@ - + - + - + @@ -104,7 +105,7 @@ - + @@ -125,7 +126,7 @@ - + @@ -167,7 +168,7 @@ + + + + + + + + + - + + + + + + + @@ -208,7 +230,7 @@ - + diff --git a/MacPass/PluginRepositoryBrowserView.xib b/MacPass/Base.lproj/PluginRepositoryBrowserView.xib similarity index 99% rename from MacPass/PluginRepositoryBrowserView.xib rename to MacPass/Base.lproj/PluginRepositoryBrowserView.xib index 63a6e1882..b6615e932 100644 --- a/MacPass/PluginRepositoryBrowserView.xib +++ b/MacPass/Base.lproj/PluginRepositoryBrowserView.xib @@ -1,8 +1,8 @@ - + - + @@ -228,7 +228,7 @@ - + diff --git a/MacPass/SavePanelAccessoryView.xib b/MacPass/Base.lproj/SavePanelAccessoryView.xib similarity index 100% rename from MacPass/SavePanelAccessoryView.xib rename to MacPass/Base.lproj/SavePanelAccessoryView.xib diff --git a/MacPass/Base.lproj/UpdateSettings.xib b/MacPass/Base.lproj/UpdatePreferences.xib similarity index 81% rename from MacPass/Base.lproj/UpdateSettings.xib rename to MacPass/Base.lproj/UpdatePreferences.xib index 97f90bfdf..2fa4ab20f 100644 --- a/MacPass/Base.lproj/UpdateSettings.xib +++ b/MacPass/Base.lproj/UpdatePreferences.xib @@ -1,11 +1,12 @@ - - + + - + + - + @@ -17,8 +18,8 @@ - - - + + @@ -44,8 +45,8 @@ - - + + @@ -61,10 +62,11 @@ + - + diff --git a/MacPass/Base.lproj/WelcomeView.xib b/MacPass/Base.lproj/WelcomeView.xib index 3563c2ea5..7c8c7f46e 100644 --- a/MacPass/Base.lproj/WelcomeView.xib +++ b/MacPass/Base.lproj/WelcomeView.xib @@ -1,8 +1,8 @@ - + - + @@ -187,7 +187,7 @@ - + diff --git a/MacPass/Base.lproj/WorkflowSettings.xib b/MacPass/Base.lproj/WorkflowPreferences.xib similarity index 67% rename from MacPass/Base.lproj/WorkflowSettings.xib rename to MacPass/Base.lproj/WorkflowPreferences.xib index b0de6e31b..663727317 100644 --- a/MacPass/Base.lproj/WorkflowSettings.xib +++ b/MacPass/Base.lproj/WorkflowPreferences.xib @@ -1,16 +1,17 @@ - - + + - - + + - + + @@ -18,16 +19,16 @@ - + - - + + - + - + @@ -35,7 +36,7 @@ - + @@ -48,7 +49,7 @@ - + @@ -56,7 +57,7 @@ - + @@ -69,24 +70,27 @@ + + + + + + + + + - - - - - - - + @@ -100,21 +104,21 @@ - + - - + + - + + + + + + + - - - + + + - - + + - - + + - + diff --git a/MacPass/EntryView.xib b/MacPass/EntryView.xib index 49079d6d4..d6fcbc597 100644 --- a/MacPass/EntryView.xib +++ b/MacPass/EntryView.xib @@ -1,8 +1,8 @@ - + - + diff --git a/MacPass/KPKEntry+MPCustomAttributeProperties.m b/MacPass/KPKEntry+MPCustomAttributeProperties.m index 8e2eb37e9..5ec7f4fe3 100644 --- a/MacPass/KPKEntry+MPCustomAttributeProperties.m +++ b/MacPass/KPKEntry+MPCustomAttributeProperties.m @@ -23,7 +23,7 @@ #import "KPKEntry+MPCustomAttributeProperties.h" #import -NSString *const MPCustomAttributePropertyPrefix = @"valueForCustomAttribute"; +NSString *const MPCustomAttributePropertyPrefix = @"mp_valueForCustomAttribute"; @implementation KPKEntry (MPCustomAttributeProperties) @@ -36,7 +36,7 @@ static id propertyIMP(id self, SEL _cmd) { + (BOOL)resolveInstanceMethod:(SEL)aSEL { if ([NSStringFromSelector(aSEL) hasPrefix:MPCustomAttributePropertyPrefix]) { - class_addMethod([self class], aSEL,(IMP)propertyIMP, "@@:"); + class_addMethod(self.class, aSEL,(IMP)propertyIMP, "@@:"); return YES; } return [super resolveInstanceMethod:aSEL]; diff --git a/MacPass/MPActionHelper.h b/MacPass/MPActionHelper.h index 7c2c984e3..98c22f763 100644 --- a/MacPass/MPActionHelper.h +++ b/MacPass/MPActionHelper.h @@ -28,6 +28,7 @@ typedef NS_ENUM(NSUInteger, MPActionType) { MPActionAddGroup, // Add a new group MPActionDuplicateEntry, // Simply duplicate an entry (including history) MPActionDuplicateEntryWithOptions, // Request user input on what to duplicate + MPActionDuplicateGroup, // Duplicate the group and all it's children MPActionReverToHistoryEntry, // Restore an entry to an older state in history MPActionDelete, // Delete entry or group MPActionCopyUsername, // copy username to pasteboard @@ -47,6 +48,7 @@ typedef NS_ENUM(NSUInteger, MPActionType) { MPActionToggleQuicklook, MPActionShowEntryHistory, // show history MPActionHideEntryHistory, // exit history + MPActionShowGroupInOutline, // show the group (of the entry) in the outline view MPActionPerformAutotypeForSelectedEntry, // Perform Autotype for selected Entry MPActionRemoveAttachment // Remove an attachment }; diff --git a/MacPass/MPActionHelper.m b/MacPass/MPActionHelper.m index f539b2431..69b405a98 100644 --- a/MacPass/MPActionHelper.m +++ b/MacPass/MPActionHelper.m @@ -38,6 +38,7 @@ + (NSDictionary *)_actionDictionary { @(MPActionAddGroup): NSStringFromSelector(@selector(createGroup:)), @(MPActionDuplicateEntry): NSStringFromSelector(@selector(duplicateEntry:)), @(MPActionDuplicateEntryWithOptions): NSStringFromSelector(@selector(duplicateEntryWithOptions:)), + @(MPActionDuplicateGroup): NSStringFromSelector(@selector(duplicateGroup:)), @(MPActionReverToHistoryEntry): NSStringFromSelector(@selector(revertToHistoryEntry:)), @(MPActionCopyPassword): NSStringFromSelector(@selector(copyPassword:)), @(MPActionCopyURL): NSStringFromSelector(@selector(copyURL:)), @@ -57,6 +58,7 @@ + (NSDictionary *)_actionDictionary { @(MPActionToggleQuicklook): NSStringFromSelector(@selector(toggleQuicklookPreview:)), @(MPActionShowEntryHistory): NSStringFromSelector(@selector(showEntryHistory:)), @(MPActionHideEntryHistory): NSStringFromSelector(@selector(hideEntryHistory:)), + @(MPActionShowGroupInOutline): NSStringFromSelector(@selector(showGroupInOutline:)), @(MPActionPerformAutotypeForSelectedEntry): NSStringFromSelector(@selector(performAutotypeForEntry:)), @(MPActionRemoveAttachment): NSStringFromSelector(@selector(removeAttachment:)) }; diff --git a/MacPass/MPAddEntryContextMenuDelegate.m b/MacPass/MPAddEntryContextMenuDelegate.m index 77ef41395..bfd286668 100644 --- a/MacPass/MPAddEntryContextMenuDelegate.m +++ b/MacPass/MPAddEntryContextMenuDelegate.m @@ -24,6 +24,7 @@ #import "MPDocument.h" #import "MPDocumentWindowController.h" #import "MPActionHelper.h" +#import "KPKNode+IconImage.h" #import "KeePassKit/KeePassKit.h" @@ -47,6 +48,8 @@ - (void)menuNeedsUpdate:(NSMenu *)menu { NSMenuItem *templateItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithFormat:templateMask, entry.title] action:@selector(createEntryFromTemplate:) keyEquivalent:@""]; + templateItem.image = [entry.iconImage copy]; + templateItem.image.size = NSMakeSize(14, 14); templateItem.representedObject = entry.uuid; [menu addItem:templateItem]; } diff --git a/MacPass/MPAppDelegate.h b/MacPass/MPAppDelegate.h index 55f2133d0..2e40e15c0 100644 --- a/MacPass/MPAppDelegate.h +++ b/MacPass/MPAppDelegate.h @@ -42,6 +42,7 @@ APPKIT_EXTERN NSString *const MPDidChangeStoredKeyFilesSettings; - (IBAction)showPreferences:(id)sender; - (IBAction)showPluginPrefences:(id)sender; - (IBAction)showPasswordCreator:(id)sender; +- (IBAction)showAutotypeDoctor:(id)sender; - (IBAction)createNewDatabase:(id)sender; - (IBAction)openDatabase:(id)sender; - (IBAction)showHelp:(id)sender; diff --git a/MacPass/MPAppDelegate.m b/MacPass/MPAppDelegate.m index 4062902dd..ae683871c 100644 --- a/MacPass/MPAppDelegate.m +++ b/MacPass/MPAppDelegate.m @@ -42,8 +42,10 @@ #import "MPWelcomeViewController.h" #import "MPPlugin.h" #import "MPEntryContextMenuDelegate.h" +#import "MPAutotypeDoctor.h" #import "NSApplication+MPAdditions.h" +#import "NSTextView+MPTouchBarExtension.h" #import "KeePassKit/KeePassKit.h" @@ -51,6 +53,12 @@ NSString *const MPDidChangeStoredKeyFilesSettings = @"com.hicknhack.macpass.MPDidChangeStoredKeyFilesSettings"; +typedef NS_OPTIONS(NSInteger, MPAppStartupState) { + MPAppStartupStateNone = 0, + MPAppStartupStateRestoredWindows = 1, + MPAppStartupStateFinishedLaunch = 2 +}; + @interface MPAppDelegate () { @private MPDockTileHelper *_dockTileHelper; @@ -62,6 +70,7 @@ @interface MPAppDelegate () { @property (strong) IBOutlet NSWindow *passwordCreatorWindow; @property (strong, nonatomic) MPPreferencesWindowController *preferencesController; @property (strong, nonatomic) MPPasswordCreatorViewController *passwordCreatorController; +@property (assign, nonatomic) MPAppStartupState startupState; @property (strong) MPEntryContextMenuDelegate *itemActionMenuDelegate; @@ -82,11 +91,22 @@ - (instancetype)init { if(self) { _userNotificationCenterDelegate = [[MPUserNotificationCenterDelegate alloc] init]; self.itemActionMenuDelegate = [[MPEntryContextMenuDelegate alloc] init]; + _shouldOpenFile = NO; + self.startupState = MPAppStartupStateNone; + + [NSNotificationCenter.defaultCenter addObserver:self + selector:@selector(_applicationDidFinishRestoringWindows:) + name:NSApplicationDidFinishRestoringWindowsNotification + object:nil]; + /* We know that we do not use the variable after instantiation */ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-variable" MPDocumentController *documentController = [[MPDocumentController alloc] init]; #pragma clang diagnostic pop + + + } return self; } @@ -109,6 +129,17 @@ - (void)setIsAllowedToStoreKeyFile:(BOOL)isAllowedToStoreKeyFile { } } +- (void)setStartupState:(MPAppStartupState)notificationState { + if(notificationState != self.startupState) { + _startupState = notificationState; + BOOL restored = self.startupState & MPAppStartupStateRestoredWindows; + BOOL launched = self.startupState & MPAppStartupStateFinishedLaunch; + if(restored && launched ) { + [self _applicationDidFinishLaunchingAndDidRestoreWindows]; + } + } +} + - (void)awakeFromNib { _isAllowedToStoreKeyFile = NO; /* Update the … at the save menu */ @@ -127,7 +158,7 @@ - (void)awakeFromNib { [fileMenu insertItem:item atIndex:insertIndex]; } [self.itemMenu removeAllItems]; - for(NSMenuItem *item in [MPContextMenuHelper contextMenuItemsWithItems:MPContextMenuFull]) { + for(NSMenuItem *item in [MPContextMenuHelper contextMenuItemsWithItems:MPContextMenuFull|MPContextMenuShowGroupInOutline]) { [self.itemMenu addItem:item]; } self.itemMenu.delegate = self.itemActionMenuDelegate; @@ -154,23 +185,13 @@ - (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender { return [NSUserDefaults.standardUserDefaults boolForKey:kMPSettingsKeyOpenEmptyDatabaseOnLaunch]; } - -- (void)applicationWillFinishLaunching:(NSNotification *)notification { - _shouldOpenFile = NO; - [NSNotificationCenter.defaultCenter addObserver:self - selector:@selector(_applicationDidFinishRestoringWindows:) - name:NSApplicationDidFinishRestoringWindowsNotification - object:nil]; - - -} - - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender { return [NSUserDefaults.standardUserDefaults boolForKey:kMPSettingsKeyQuitOnLastWindowClose]; } - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender { - if([[MPTemporaryFileStorageCenter defaultCenter] hasPendingStorages]) { + [self hideWelcomeWindow]; + if(MPTemporaryFileStorageCenter.defaultCenter.hasPendingStorages) { dispatch_async(dispatch_get_main_queue(), ^{ [MPTemporaryFileStorageCenter.defaultCenter cleanupStorages]; [sender replyToApplicationShouldTerminate:YES]; @@ -201,6 +222,13 @@ - (void)applicationDidFinishLaunching:(NSNotification *)notification { /* Disable updates if in debug or nosparkle */ [SUUpdater sharedUpdater]; #endif + self.startupState |= MPAppStartupStateFinishedLaunch; + // Here we just opt-in for allowing our bar to be customized throughout the app. + if([NSApplication.sharedApplication respondsToSelector:@selector(isAutomaticCustomizeTouchBarMenuItemEnabled)]) { + if(@available(macOS 10.12.2, *)) { + NSApplication.sharedApplication.automaticCustomizeTouchBarMenuItemEnabled = YES; + } + } } #pragma mark - @@ -290,6 +318,7 @@ - (void)showWelcomeWindow { styleMask:NSWindowStyleMaskTitled|NSWindowStyleMaskClosable|NSWindowStyleMaskResizable backing:NSBackingStoreBuffered defer:NO]; + self.welcomeWindow.restorable = NO; // do not restore the welcome window! self.welcomeWindow.releasedWhenClosed = NO; } if(!self.welcomeWindow.contentViewController) { @@ -313,11 +342,15 @@ - (void)showHelp:(id)sender { [NSWorkspace.sharedWorkspace openURL:[NSURL URLWithString:urlString]]; } +- (void)showAutotypeDoctor:(id)sender { + [MPAutotypeDoctor.defaultDoctor runChecksAndPresentResults]; +} + - (void)checkForUpdates:(id)sender { #if defined(DEBUG) || defined(NO_SPARKLE) NSAlert *alert = [[NSAlert alloc] init]; alert.messageText = NSLocalizedString(@"ALERT_UPDATES_DISABLED_MESSAGE_TEXT", @"Message text for disabled updates alert!"); - alert.informativeText = [NSString stringWithFormat:NSLocalizedString(@"ALERT_UPDATES_DISABLED_INFORMATIVE_TEXT_%@!", @"Infromative text of the disabled updates alert!"), NSApp.applicationName]; + alert.informativeText = [NSString stringWithFormat:NSLocalizedString(@"ALERT_UPDATES_DISABLED_INFORMATIVE_TEXT_%@!", @"Informative text of the disabled updates alert!"), NSApp.applicationName]; [alert addButtonWithTitle:NSLocalizedString(@"OK", @"Ok Button to dismiss disabled updates alert")]; [alert runModal]; #else @@ -328,8 +361,12 @@ - (void)checkForUpdates:(id)sender { #pragma mark - #pragma mark Private Helper - (void)_applicationDidFinishRestoringWindows:(NSNotification *)notification { + self.startupState |= MPAppStartupStateRestoredWindows; +} + +- (void)_applicationDidFinishLaunchingAndDidRestoreWindows { NSArray *documents = NSDocumentController.sharedDocumentController.documents; - BOOL restoredWindows = documents.count > 0; + BOOL hasOpenDocuments = documents.count > 0; for(NSDocument *document in documents) { for(NSWindowController *windowController in document.windowControllers) { @@ -338,17 +375,13 @@ - (void)_applicationDidFinishRestoringWindows:(NSNotification *)notification { } BOOL reopen = [NSUserDefaults.standardUserDefaults boolForKey:kMPSettingsKeyReopenLastDatabaseOnLaunch]; - BOOL showWelcomeScreen = !restoredWindows && !_shouldOpenFile; - if(reopen && !restoredWindows && !_shouldOpenFile) { + BOOL showWelcomeScreen = !hasOpenDocuments && !_shouldOpenFile; + if(reopen && !hasOpenDocuments && !_shouldOpenFile) { showWelcomeScreen = ![((MPDocumentController *)NSDocumentController.sharedDocumentController) reopenLastDocument]; } if(showWelcomeScreen) { [self showWelcomeWindow]; } - /* run check for accessibilty after the windowserver should have presented the UI */ - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - [MPAutotypeDaemon.defaultDaemon checkForAccessibiltyPermissions]; - }); } @end diff --git a/MacPass/MPAutotypeCandidateSelectionViewController.h b/MacPass/MPAutotypeCandidateSelectionViewController.h index f76c390e8..0247b4e04 100644 --- a/MacPass/MPAutotypeCandidateSelectionViewController.h +++ b/MacPass/MPAutotypeCandidateSelectionViewController.h @@ -25,6 +25,7 @@ @interface MPAutotypeCandidateSelectionViewController : NSViewController @property (copy) NSArray *candidates; +@property (copy) NSString *windowTitle; - (IBAction)selectAutotypeContext:(id)sender; - (IBAction)cancelSelection:(id)sender; diff --git a/MacPass/MPAutotypeCandidateSelectionViewController.m b/MacPass/MPAutotypeCandidateSelectionViewController.m index c3284919f..5eb20ab86 100644 --- a/MacPass/MPAutotypeCandidateSelectionViewController.m +++ b/MacPass/MPAutotypeCandidateSelectionViewController.m @@ -28,8 +28,9 @@ #import @interface MPAutotypeCandidateSelectionViewController () -@property (weak) IBOutlet NSButton *selectAutotypeContextButton; -@property (weak) IBOutlet NSTableView *contextTableView; +@property (strong) IBOutlet NSButton *selectAutotypeContextButton; +@property (strong) IBOutlet NSTableView *contextTableView; +@property (strong) IBOutlet NSTextField *messageTextField; @end @@ -41,6 +42,8 @@ - (NSString *)nibName { - (void)viewDidLoad { [super viewDidLoad]; + NSString *template = NSLocalizedString(@"AUTOTYPE_CANDIDATE_SELECTION_WINDOW_MESSAGE_%@", "Message text in the autotype selection window. Placeholder is %1 - windowTitle"); + self.messageTextField.stringValue = [NSString stringWithFormat:template, self.windowTitle]; self.selectAutotypeContextButton.enabled = NO; NSNotification *notification = [NSNotification notificationWithName:NSTableViewSelectionDidChangeNotification object:self.contextTableView]; [self tableViewSelectionDidChange:notification]; diff --git a/MacPass/MPAutotypeDaemon.h b/MacPass/MPAutotypeDaemon.h index e381b3d5f..da0e0007f 100644 --- a/MacPass/MPAutotypeDaemon.h +++ b/MacPass/MPAutotypeDaemon.h @@ -35,13 +35,9 @@ @property (weak) IBOutlet NSPopUpButton *matchSelectionButton; @property (readonly, strong) DDHotKey *registredHotKey; @property (readonly, strong, class) MPAutotypeDaemon *defaultDaemon; -@property (nonatomic, readonly) BOOL autotypeSupported; // YES if the system allows for Autotype. NO if the user has denied this. - (instancetype)init NS_UNAVAILABLE; -- (void)checkForAccessibiltyPermissions; -- (void)openAccessibiltyPreferences; - - (void)performAutotypeForEntry:(KPKEntry *)entry; - (void)performAutotypeForEntry:(KPKEntry *)entry overrideSequence:(NSString *)sequence; - (void)selectAutotypeCandiate:(MPAutotypeContext *)context; diff --git a/MacPass/MPAutotypeDaemon.m b/MacPass/MPAutotypeDaemon.m index 6954bc61b..3f73ca1a8 100644 --- a/MacPass/MPAutotypeDaemon.m +++ b/MacPass/MPAutotypeDaemon.m @@ -26,10 +26,15 @@ #import "MPAutotypeCommand.h" #import "MPAutotypeContext.h" #import "MPAutotypePaste.h" +#import "MPAutotypeDelay.h" #import "MPPasteBoardController.h" #import "MPSettingsHelper.h" #import "MPAutotypeCandidateSelectionViewController.h" #import "MPUserNotificationCenterDelegate.h" +#import "MPAutotypeDoctor.h" + +#import "MPPluginHost.h" +#import "MPPlugin.h" #import "NSApplication+MPAdditions.h" #import "NSUserNotification+MPAdditions.h" @@ -52,13 +57,12 @@ @interface MPAutotypeDaemon () @property (copy) NSString *targetWindowTitle; // The title of the window that we are targeting @property (strong) NSRunningApplication *previousApplication; // The application that was active before we got invoked @property (assign) NSTimeInterval userActionRequested; - +@property (strong) id applicationActivationObserver; +@property (nonatomic, readonly) BOOL hasNecessaryAutotypePermissions; @end @implementation MPAutotypeDaemon -@dynamic autotypeSupported; - #pragma mark - #pragma mark Lifecylce @@ -104,19 +108,15 @@ - (instancetype)_init { - (void)dealloc { [NSNotificationCenter.defaultCenter removeObserver:self]; [NSWorkspace.sharedWorkspace.notificationCenter removeObserver:self]; + if(self.applicationActivationObserver) { + [NSWorkspace.sharedWorkspace.notificationCenter removeObserver:self.applicationActivationObserver name:NSWorkspaceDidActivateApplicationNotification object:nil]; + } [self unbind:NSStringFromSelector(@selector(enabled))]; [self unbind:NSStringFromSelector(@selector(hotKeyData))]; } #pragma mark - #pragma mark Properties -- (BOOL)autotypeSupported { - if(@available(macOS 10.14, *)) { - return AXIsProcessTrusted(); - } - /* macOS 10.13 and lower allows us to send key events regardless of accessibilty trust */ - return YES; -} - (void)setEnabled:(BOOL)enabled { if(_enabled != enabled) { @@ -135,45 +135,8 @@ - (void)setHotKeyData:(NSData *)hotKeyData { } } -- (void)checkForAccessibiltyPermissions { - if(!self.enabled) { - return; - } - BOOL hideAlert = NO; - if(nil != [NSUserDefaults.standardUserDefaults objectForKey:kMPSettingsKeyAutotypeHideAccessibiltyWarning]) { - hideAlert = [NSUserDefaults.standardUserDefaults boolForKey:kMPSettingsKeyAutotypeHideAccessibiltyWarning]; - } - if(hideAlert || self.autotypeSupported) { - return; - } - else { - NSAlert *alert = [[NSAlert alloc] init]; - alert.alertStyle = NSWarningAlertStyle; - alert.messageText = NSLocalizedString(@"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_MESSAGE_TEXT", @"Alert message displayed when Autotype performs self check and lacks accessibilty permissions"); - alert.informativeText = NSLocalizedString(@"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_INFORMATIVE_TEXT", @"Alert informative text displayed when Autotype performs self check and lacks accessibilty permissions"); - alert.showsSuppressionButton = YES; - [alert addButtonWithTitle:NSLocalizedString(@"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OK", @"Button in dialog to leave autotype disabled and continiue!")]; - [alert addButtonWithTitle:NSLocalizedString(@"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OPEN_PREFERENCES", @"Button in dialog to open accessibilty preferences pane!")]; - NSModalResponse returnCode = [alert runModal]; - BOOL suppressWarning = (alert.suppressionButton.state == NSOnState); - [NSUserDefaults.standardUserDefaults setBool:suppressWarning forKey:kMPSettingsKeyAutotypeHideAccessibiltyWarning]; - switch(returnCode) { - case NSAlertFirstButtonReturn: { - /* ok, ignore */ - break; - } - case NSAlertSecondButtonReturn: - /* open prefs */ - [self openAccessibiltyPreferences]; - break; - default: - break; - } - } -} - -- (void)openAccessibiltyPreferences { - [NSWorkspace.sharedWorkspace openURL:[NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"]]; +- (BOOL)hasNecessaryAutotypePermissions { + return MPAutotypeDoctor.defaultDoctor.hasNecessaryAutotypePermissions; } #pragma mark - @@ -205,7 +168,7 @@ - (void)cancelAutotypeCandidateSelection { [self.matchSelectionWindow orderOut:self]; self.matchSelectionWindow = nil; if(self.targetPID) { - [self _orderApplicationToFront:self.targetPID]; + [self _orderApplicationToFront:self.targetPID forContext:nil]; } } @@ -213,16 +176,16 @@ - (void)cancelAutotypeCandidateSelection { #pragma mark Autotype Execution - (void)_performAutotypeForEntry:(KPKEntry *)entryOrNil { - /*if(!self.autotypeSupported) { - NSUserNotification *notification = [[NSUserNotification alloc] init]; - notification.title = NSApp.applicationName; - notification.informativeText = NSLocalizedString(@"AUTOTYPE_NOTIFICATION_MACPASS_HAS_NO_ACCESSIBILTY_PERMISSIONS", "Notification: Autotype failed, MacPass has no permission to send key strokes"); - notification.actionButtonTitle = NSLocalizedString(@"OPEN_PREFERENCES", "Action button in Notification to show the Accessibilty preferences"); - notification.userInfo = @{ MPUserNotificationTypeKey: MPUserNotificationTypeShowAccessibiltyPreferences }; - notification.showsButtons = YES; - [NSUserNotificationCenter.defaultUserNotificationCenter deliverNotification:notification]; - return; - }*/ + if(!self.hasNecessaryAutotypePermissions) { + NSUserNotification *notification = [[NSUserNotification alloc] init]; + notification.title = NSApp.applicationName; + notification.informativeText = NSLocalizedString(@"AUTOTYPE_NOTIFICATION_MACPASS_IS_MISSING_PERMISSIONS", "Notification: Autotype failed, MacPass has not enough permissions to perform autotype"); + notification.actionButtonTitle = NSLocalizedString(@"SHOW_AUTOTYPE_DOCTOR", "Action button in Notification to show the Autotype Doctor"); + notification.userInfo = @{ MPUserNotificationTypeKey: MPUserNotificationTypeRunAutotypeDoctor }; + notification.showsButtons = YES; + [NSUserNotificationCenter.defaultUserNotificationCenter deliverNotification:notification]; + return; + } NSInteger pid = NSProcessInfo.processInfo.processIdentifier; if(self.targetPID == pid) { return; // We do not perform Autotype on ourselves @@ -246,7 +209,8 @@ - (void)_performAutotypeForEntry:(KPKEntry *)entryOrNil { NSPredicate *filterPredicate = [NSPredicate predicateWithBlock:^BOOL(id _Nonnull evaluatedObject, NSDictionary * _Nullable bindings) { MPDocument *document = evaluatedObject; - return !document.encrypted;}]; + return !document.encrypted; + }]; NSArray *unlockedDocuments = [documents filteredArrayUsingPredicate:filterPredicate]; /* We look for all unlocked documents, if all open documents are locked, we pop the front most and try to search again */ if(unlockedDocuments.count == 0) { @@ -263,7 +227,7 @@ - (void)_performAutotypeForEntry:(KPKEntry *)entryOrNil { } MPAutotypeContext *context = [self _autotypeContextForDocuments:documents forWindowTitle:self.targetWindowTitle preferredEntry:entryOrNil]; - /* TODO: that's popping up if the mulit selection dialog goes up! */ + /* TODO: that's popping up if the multi selection dialog goes up! */ if(self.matchSelectionWindow) { return; // we present the match selection window, just return } @@ -301,7 +265,7 @@ - (MPAutotypeContext *)_autotypeContextForDocuments:(NSArray *)doc if(candidates == 1 ) { return autotypeCandidates.lastObject; } - [self _presentSelectionWindow:autotypeCandidates]; + [self _presentCandiadates:autotypeCandidates forWindowTitle:windowTitle]; return nil; // Nothing to do, we get called back by the window } @@ -310,14 +274,29 @@ - (void)_performAutotypeForContext:(MPAutotypeContext *)context { return; // No context to work with } - if([self _orderApplicationToFront:self.targetPID]) { - /* Sleep a bit after the app was activated */ - /* TODO - we might be able to a notification to check if the app actally was activated instead of guessing a waiting time */ - usleep(1 * NSEC_PER_MSEC); + if(NO == [self _orderApplicationToFront:self.targetPID forContext:(MPAutotypeContext *)context]) { + return; // We will get called back when the application is in front - hopfully } + + useconds_t globalDelay = 0; for(MPAutotypeCommand *command in [MPAutotypeCommand commandsForContext:context]) { + /* + FIXME: Introduce a global state for execution to allow command to set state value + e.g. [command executeWithContext:(MPCommandExectionContext *)context] + and inside the command set the sate e.g. context.delay = myDelay + then use this state in the command scheduling to set the global delay + */ + if([command isKindOfClass:MPAutotypeDelay.class]) { + MPAutotypeDelay *delayCommand = (MPAutotypeDelay *)command; + if(delayCommand.isGlobal) { + globalDelay = (useconds_t)delayCommand.delay; + } + } /* dispatch commands to main thread since most of them translate key events which is disallowed on background thread */ dispatch_async(dispatch_get_main_queue(), ^{ + if(globalDelay > 0) { + usleep(globalDelay*NSEC_PER_USEC); + } [command execute]; }); } @@ -367,10 +346,14 @@ - (NSDictionary *)_infoDictionaryForApplication:(NSRunningApplication *)applicat } } } + if(currentWindows.count > 0 && infoDict.count == 0) { + // show some information about not being able to determine any windows + NSLog(@"Unable to retrieve any window names. If you encounter this issue you might be running 10.15 and MacPass has no permission for screen recording."); + } return infoDict; } -- (void)_presentSelectionWindow:(NSArray *)candidates { +- (void)_presentCandiadates:(NSArray *)candidates forWindowTitle:(NSString *)windowTitle { if(!self.matchSelectionWindow) { self.matchSelectionWindow = [[NSPanel alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100) styleMask:NSWindowStyleMaskNonactivatingPanel|NSWindowStyleMaskTitled @@ -379,6 +362,7 @@ - (void)_presentSelectionWindow:(NSArray *)candidates { self.matchSelectionWindow.level = kCGAssistiveTechHighWindowLevel; MPAutotypeCandidateSelectionViewController *vc = [[MPAutotypeCandidateSelectionViewController alloc] init]; vc.candidates = candidates; + vc.windowTitle = windowTitle; self.matchSelectionWindow.collectionBehavior |= (NSWindowCollectionBehaviorFullScreenAuxiliary | NSWindowCollectionBehaviorMoveToActiveSpace | NSWindowCollectionBehaviorTransient ); @@ -416,15 +400,30 @@ - (void)_didDeactivateApplication:(NSNotification *)notification { #pragma mark - #pragma mark Application information -- (BOOL)_orderApplicationToFront:(pid_t)processIdentifier { +- (BOOL)_orderApplicationToFront:(pid_t)processIdentifier forContext:(MPAutotypeContext *)context { NSRunningApplication *runingApplication = [NSRunningApplication runningApplicationWithProcessIdentifier:processIdentifier]; NSRunningApplication *frontApplication = NSWorkspace.sharedWorkspace.frontmostApplication; if(frontApplication.processIdentifier == processIdentifier) { - return NO; + return YES; } + + /* cleanup before to make sure everything is top notch */ + if(self.applicationActivationObserver) { + [NSWorkspace.sharedWorkspace.notificationCenter removeObserver:self.applicationActivationObserver name:NSWorkspaceDidActivateApplicationNotification object:nil]; + self.applicationActivationObserver = nil; + } + + self.applicationActivationObserver = [NSWorkspace.sharedWorkspace.notificationCenter addObserverForName:NSWorkspaceDidActivateApplicationNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { + if(self.applicationActivationObserver) { + [NSWorkspace.sharedWorkspace.notificationCenter removeObserver:self.applicationActivationObserver name:NSWorkspaceDidActivateApplicationNotification object:nil]; + } + [self _performAutotypeForContext:context]; + }]; + [runingApplication activateWithOptions:NSApplicationActivateIgnoringOtherApps]; - return YES; + return NO; } + - (void)_updateTargetInformationForFrontMostApplication { [self _updateTargeInformationForApplication:NSWorkspace.sharedWorkspace.frontmostApplication]; } @@ -436,8 +435,19 @@ - (void)_updateTargeInformationForApplication:(NSRunningApplication *)applicatio } else { NSDictionary *frontApplicationInfoDict = [self _infoDictionaryForApplication:application]; + self.targetPID = [frontApplicationInfoDict[kMPProcessIdentifierKey] intValue]; self.targetWindowTitle = frontApplicationInfoDict[kMPWindowTitleKey]; + + /* if we have any resolvers, let them provide the window title */ + NSArray *resolvers = [MPPluginHost.sharedHost windowTitleResolverForRunningApplication:application]; + for(MPPlugin *resolver in resolvers) { + NSString *windowTitle = [resolver windowTitleForRunningApplication:application]; + if(windowTitle.length > 0) { + self.targetWindowTitle = windowTitle; + break; + } + } } } diff --git a/MacPass/MPAutotypeDelay.h b/MacPass/MPAutotypeDelay.h index 5195af0dc..75b26024a 100644 --- a/MacPass/MPAutotypeDelay.h +++ b/MacPass/MPAutotypeDelay.h @@ -25,6 +25,7 @@ @interface MPAutotypeDelay : MPAutotypeCommand @property (readonly) NSUInteger delay; +@property (readonly) BOOL isGlobal; /** * Creates an DelayCommand that delays the execution for n milliseconds * @@ -33,5 +34,6 @@ * @return <#return value description#> */ - (instancetype)initWithDelay:(NSUInteger)delay; +- (instancetype)initWithGlobalDelay:(NSUInteger)delay; @end diff --git a/MacPass/MPAutotypeDelay.m b/MacPass/MPAutotypeDelay.m index f76f12f79..b49281f47 100644 --- a/MacPass/MPAutotypeDelay.m +++ b/MacPass/MPAutotypeDelay.m @@ -29,7 +29,7 @@ @interface MPAutotypeDelay () @implementation MPAutotypeDelay - (id)init { - self = [self initWithDelay:0]; + self = [self _initWithDelay:0 global:NO]; return self; } @@ -38,17 +38,32 @@ - (NSString *)description { } - (instancetype)initWithDelay:(NSUInteger)delay { + self = [self _initWithDelay:delay global:NO]; + return self; +} + +- (instancetype)initWithGlobalDelay:(NSUInteger)delay { + self = [self _initWithDelay:delay global:YES]; + return self; +} + +- (instancetype)_initWithDelay:(NSUInteger)delay global:(BOOL)global { self = [super init]; if(self) { + _isGlobal = global; /* Delays longer than a minute are a bit long */ - _delay = MIN(60*1000,delay); + _delay = MIN(60*NSEC_PER_USEC,delay); } return self; + } - (void)execute { /* milliseconds * 10000 = microseconds */ - usleep((useconds_t)(self.delay*1000)); + if(self.isGlobal) { + return; // global delays should not be executed locally + } + usleep((useconds_t)(self.delay*NSEC_PER_USEC)); } @end diff --git a/MacPass/MPAutotypeDoctor.h b/MacPass/MPAutotypeDoctor.h new file mode 100644 index 000000000..55d02a3ba --- /dev/null +++ b/MacPass/MPAutotypeDoctor.h @@ -0,0 +1,30 @@ +// +// MPAutotypeDoctor.h +// MacPass +// +// Created by Michael Starke on 03.07.19. +// Copyright © 2019 HicknHack Software GmbH. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MPAutotypeDoctor : NSObject + + +@property (class, readonly, strong) MPAutotypeDoctor *defaultDoctor; +@property (nonatomic, readonly) BOOL hasNecessaryAutotypePermissions; // MacPass has all the permissions it needs to run autotype on the current system + +- (BOOL)hasScreenRecordingPermissions:(NSError *__autoreleasing*)error; +- (BOOL)hasAccessibiltyPermissions:(NSError *__autoreleasing*)error; + +- (void)runChecksAndPresentResults; +- (void)openScreenRecordingPreferences; +- (void)requestScreenRecordingPermission; +- (void)openAccessibiltyPreferences; +- (void)openAutomationPreferences; + +@end + +NS_ASSUME_NONNULL_END diff --git a/MacPass/MPAutotypeDoctor.m b/MacPass/MPAutotypeDoctor.m new file mode 100644 index 000000000..5ac00a69c --- /dev/null +++ b/MacPass/MPAutotypeDoctor.m @@ -0,0 +1,153 @@ +// +// MPAutotypeDoctor.m +// MacPass +// +// Created by Michael Starke on 03.07.19. +// Copyright © 2019 HicknHack Software GmbH. All rights reserved. +// + +#import "MPAutotypeDoctor.h" +#import "MPSettingsHelper.h" +#import "NSApplication+MPAdditions.h" +#import "MPAutotypeDoctorReportViewController.h" +#import "NSError+Messages.h" + + +@interface MPReportItem : NSObject + +@property (copy) NSString *statusDescription; +@property (copy) NSString *label; +@property (copy) NSString *actionLabel; +@property BOOL isOK; +@property (weak) id target; + +@end + +@implementation MPReportItem + +- (instancetype)init { + self = [super init]; + if(self) { + _isOK = NO; + } + return self; +} + +@end + + +@interface MPAutotypeDoctor () +@property (strong) NSWindow *reportWindow; +@end + +@implementation MPAutotypeDoctor + ++ (MPAutotypeDoctor *)defaultDoctor { + static MPAutotypeDoctor *instance; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + instance = [[MPAutotypeDoctor alloc] init]; + }); + return instance; +} + +- (BOOL)hasNecessaryAutotypePermissions { + if(![self hasAccessibiltyPermissions:NULL]) { + return NO; + } + if(![self hasScreenRecordingPermissions:NULL]) { + return NO; + } + return YES; +} + +- (BOOL)hasScreenRecordingPermissions:(NSError *__autoreleasing*)error { + /* macos 10.14 and lower do not require screen recording permission to get window titles */ + if (@available(macOS 10.15, *)) { + CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID); + NSUInteger numberOfWindows = CFArrayGetCount(windowList); + NSUInteger numberOfWindowsWithName = 0; + for(int idx = 0; idx < numberOfWindows; idx++) { + NSDictionary *windowInfo = (NSDictionary *)CFArrayGetValueAtIndex(windowList, idx); + NSString *windowName = windowInfo[(id)kCGWindowName]; + if(windowName) { + numberOfWindowsWithName++; + } + else { + break; //breaking early, numberOfWindowsWithName not increased + } + } + CFRelease(windowList); + BOOL canRecordScreen = (numberOfWindows == numberOfWindowsWithName); + if(!canRecordScreen && error) { + *error = [NSError errorInDomain:MPAutotypeErrorDomain withCode:MPErrorAutotypeIsMissingScreenRecordingPermissions description:NSLocalizedString(@"ERROR_NO_PERMISSION_TO_RECORD_SCREEN", "Error description for missing screen recording permissions")]; + } + return canRecordScreen; + } + return YES; +} + +- (BOOL)hasAccessibiltyPermissions:(NSError *__autoreleasing*)error { + BOOL isTrusted = YES; + /* macOS 10.13 and lower allows us to send key events regardless of accessibilty trust */ + if(@available(macOS 10.14, *)) { + isTrusted = AXIsProcessTrusted(); + if(!isTrusted && error) { + *error = [NSError errorInDomain:MPAutotypeErrorDomain withCode:MPErrorAutotypeIsMissingAccessibiltyPermissions description:NSLocalizedString(@"ERROR_NO_ACCESSIBILTY_PERMISSIONS", "Error description for missing accessibilty permissions")]; + } + } + return isTrusted; +} + +- (void)openAccessibiltyPreferences { + [NSWorkspace.sharedWorkspace openURL:[NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"]]; +} + +- (void)openScreenRecordingPreferences { + [NSWorkspace.sharedWorkspace openURL:[NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture"]]; +} + +- (void)requestScreenRecordingPermission { + /* macos 10.14 and lower do not require screen recording permission to get window titles */ + if(@available(macos 10.15, *)) { + /* + To minimize the intrusion just make a 1px image of the upper left corner + This way there is no real possibilty to access any private data + */ + CGImageRef screenshot = CGWindowListCreateImage( + CGRectMake(0, 0, 1, 1), + kCGWindowListOptionOnScreenOnly, + kCGNullWindowID, + kCGWindowImageDefault); + CFRelease(screenshot); + } +} + +- (void)openAutomationPreferences { + [NSWorkspace.sharedWorkspace openURL:[NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.security?Privacy_Automation"]]; +} + +- (void)runChecksAndPresentResults { + if(!self.reportWindow) { + self.reportWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100) + styleMask:NSWindowStyleMaskTitled|NSWindowStyleMaskClosable|NSWindowStyleMaskResizable + backing:NSBackingStoreBuffered + defer:NO]; + self.reportWindow.releasedWhenClosed = NO; + self.reportWindow.title = NSLocalizedString(@"AUTOTYPE_DOCTOR_RESULTS_WINDOW_TITLE", @"Window title for the stand-alone password creator window"); + self.reportWindow.delegate = self; + } + MPAutotypeDoctorReportViewController *vc = [[MPAutotypeDoctorReportViewController alloc] init]; + self.reportWindow.contentViewController = vc; + + [self.reportWindow center]; + [self.reportWindow makeKeyAndOrderFront:vc]; +} + +- (void)windowWillClose:(NSNotification *)notification { + if(notification.object == self.reportWindow) { + self.reportWindow = nil; + } +} + +@end diff --git a/MacPass/MPAutotypeDoctorReportViewController.h b/MacPass/MPAutotypeDoctorReportViewController.h new file mode 100644 index 000000000..f25e4036c --- /dev/null +++ b/MacPass/MPAutotypeDoctorReportViewController.h @@ -0,0 +1,29 @@ +// +// MPAutotypeDoctorReportViewController.h +// MacPass +// +// Created by Michael Starke on 05.07.19. +// Copyright © 2019 HicknHack Software GmbH. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MPAutotypeDoctorReportViewController : NSViewController + +@property (strong) IBOutlet NSImageView *accessibiltyStatusImageView; +@property (strong) IBOutlet NSTextField *accessibiltyStatusTextField; + +@property (strong) IBOutlet NSImageView *screenRecordingStatusImageView; +@property (strong) IBOutlet NSTextField *screenRecordingStatusTextField; +@property (strong) IBOutlet NSButton *requestScreenRecordingButton; + +- (IBAction)openAccessibiltyPreferences:(id)sender; +- (IBAction)openScreenRecordingPreferences:(id)sender; +- (IBAction)requestScreenRecordingPermissions:(id)sender; +- (IBAction)openAutomationPreferences:(id)sender; + +@end + +NS_ASSUME_NONNULL_END diff --git a/MacPass/MPAutotypeDoctorReportViewController.m b/MacPass/MPAutotypeDoctorReportViewController.m new file mode 100644 index 000000000..fd16c3a03 --- /dev/null +++ b/MacPass/MPAutotypeDoctorReportViewController.m @@ -0,0 +1,73 @@ +// +// MPAutotypeDoctorReportViewController.m +// MacPass +// +// Created by Michael Starke on 05.07.19. +// Copyright © 2019 HicknHack Software GmbH. All rights reserved. +// + +#import "MPAutotypeDoctorReportViewController.h" +#import "MPAutotypeDoctor.h" + +@implementation MPAutotypeDoctorReportViewController + +- (NSNibName)nibName { + return @"AutotypeDoctorReportViewController"; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self _updateView]; + +} + +- (void)openAccessibiltyPreferences:(id)sender { + [MPAutotypeDoctor.defaultDoctor openAccessibiltyPreferences]; +} + +- (void)openScreenRecordingPreferences:(id)sender { + [MPAutotypeDoctor.defaultDoctor openScreenRecordingPreferences]; +} + +- (IBAction)requestScreenRecordingPermissions:(id)sender { + [MPAutotypeDoctor.defaultDoctor requestScreenRecordingPermission]; +} + +- (void)openAutomationPreferences:(id)sender { + [MPAutotypeDoctor.defaultDoctor openAutomationPreferences]; +} + + +- (void)_updateView { + NSError *error; + if([MPAutotypeDoctor.defaultDoctor hasAccessibiltyPermissions:&error]) { + self.accessibiltyStatusImageView.image = [NSImage imageNamed:NSImageNameStatusAvailable]; + self.accessibiltyStatusTextField.stringValue = NSLocalizedString(@"AUTOTYPE_STATUS_ACCESSIBILTY_PERMISSIONS_OK", "Status label when no issue were found in accessibilty"); + } + else { + self.accessibiltyStatusImageView.image = [NSImage imageNamed:NSImageNameStatusUnavailable]; + if(error && error.localizedDescription) { + self.accessibiltyStatusTextField.stringValue = error.localizedDescription; + } + else { + self.accessibiltyStatusTextField.stringValue = NSLocalizedString(@"AUTOTYPE_STATUS_NO_ACCESSIBILTY_PERMISSIONS", "Status MacPass has no accessibilty permissions"); + } + } + if([MPAutotypeDoctor.defaultDoctor hasScreenRecordingPermissions:&error]) { + self.requestScreenRecordingButton.enabled = NO; + self.screenRecordingStatusImageView.image = [NSImage imageNamed:NSImageNameStatusAvailable]; + self.screenRecordingStatusTextField.stringValue = NSLocalizedString(@"AUTOTYPE_STATUS_SCREEN_RECORDING_PERMISSIONS_OK", "Status label when no issue were found in screen recording permissions"); + } + else { + self.requestScreenRecordingButton.enabled = YES; + self.screenRecordingStatusImageView.image = [NSImage imageNamed:NSImageNameStatusUnavailable]; + if(error && error.localizedDescription) { + self.screenRecordingStatusTextField.stringValue = error.localizedDescription; + } + else { + self.screenRecordingStatusTextField.stringValue = NSLocalizedString(@"AUTOTYPE_STATUS_NO_SCREEN_RECORDING_PERMISSIONS", "Status MacPass has no screen recording permissions"); + } + } +} + +@end diff --git a/MacPass/MPAutotypeParser.m b/MacPass/MPAutotypeParser.m index 0efe07551..9046e9f37 100644 --- a/MacPass/MPAutotypeParser.m +++ b/MacPass/MPAutotypeParser.m @@ -281,7 +281,7 @@ - (void)_appendCommandForString:(NSString *)commandString activeModifer:(CGEvent static NSRegularExpression *delayRegExp; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ - NSString *delayPattern = [[NSString alloc] initWithFormat:@"\\{(%@|%@)[ |=]+([0-9]+)\\}", + NSString *delayPattern = [[NSString alloc] initWithFormat:@"\\{(%@|%@)([ |=])+([0-9]+)\\}", kKPKAutotypeDelay, kKPKAutotypeVirtualKey/*, kKPKAutotypeVirtualExtendedKey, @@ -327,9 +327,10 @@ - (void)_appendCommandForString:(NSString *)commandString activeModifer:(CGEvent // TODO: add {APPLICATION } /* Delay */ NSTextCheckingResult *result = [delayRegExp firstMatchInString:commandString options:0 range:NSMakeRange(0, commandString.length)]; - if(result && (result.numberOfRanges == 3)) { + if(result && (result.numberOfRanges == 4)) { NSString *uppercaseCommand = [[commandString substringWithRange:[result rangeAtIndex:1]] uppercaseString]; - NSString *valueString = [commandString substringWithRange:[result rangeAtIndex:2]]; + NSString *assignOrNot = [commandString substringWithRange:[result rangeAtIndex:2]]; + NSString *valueString = [commandString substringWithRange:[result rangeAtIndex:3]]; NSScanner *numberScanner = [[NSScanner alloc] initWithString:valueString]; NSInteger value; if([numberScanner scanInteger:&value]) { @@ -337,7 +338,12 @@ - (void)_appendCommandForString:(NSString *)commandString activeModifer:(CGEvent if(MAX(0, value) <= 0) { return; // Value too low, just skipp } - [self.mutableCommands addObject:[[MPAutotypeDelay alloc] initWithDelay:value]]; + if([assignOrNot isEqualToString:@"="]) { + [self.mutableCommands addObject:[[MPAutotypeDelay alloc] initWithGlobalDelay:value]]; + } + else { + [self.mutableCommands addObject:[[MPAutotypeDelay alloc] initWithDelay:value]]; + } return; // Done } else if([kKPKAutotypeVirtualKey isEqualToString:uppercaseCommand]) { diff --git a/MacPass/MPContextMenuHelper.h b/MacPass/MPContextMenuHelper.h index ae0835790..9d46358b7 100644 --- a/MacPass/MPContextMenuHelper.h +++ b/MacPass/MPContextMenuHelper.h @@ -23,16 +23,17 @@ #import typedef NS_OPTIONS(NSUInteger, MPContextMenuItemsFlags) { - MPContextMenuCreate = 1 << 0, - MPContextMenuDelete = 1 << 1, - MPContextMenuCopy = 1 << 2, - MPContextMenuTrash = 1 << 3, - MPContextMenuDuplicate = 1 << 4, - MPContextMenuAutotype = 1 << 5, - MPContextMenuHistory = 1 << 6, - MPContextMenuMinimal = MPContextMenuCreate | MPContextMenuDelete, - MPContextMenuFull = MPContextMenuMinimal | MPContextMenuCopy | MPContextMenuDuplicate | MPContextMenuAutotype | MPContextMenuHistory, - MPContextMenuExtended = MPContextMenuFull | MPContextMenuTrash + MPContextMenuCreate = 1 << 0, + MPContextMenuDelete = 1 << 1, + MPContextMenuCopy = 1 << 2, + MPContextMenuTrash = 1 << 3, + MPContextMenuDuplicate = 1 << 4, + MPContextMenuAutotype = 1 << 5, + MPContextMenuHistory = 1 << 6, + MPContextMenuShowGroupInOutline = 1 << 7, + MPContextMenuMinimal = MPContextMenuCreate | MPContextMenuDelete | MPContextMenuDuplicate, + MPContextMenuFull = MPContextMenuMinimal | MPContextMenuCopy | MPContextMenuDuplicate | MPContextMenuAutotype | MPContextMenuHistory, + MPContextMenuExtended = MPContextMenuFull | MPContextMenuTrash }; @interface MPContextMenuHelper : NSTableCellView diff --git a/MacPass/MPContextMenuHelper.m b/MacPass/MPContextMenuHelper.m index 3691ffa4a..7304dc915 100644 --- a/MacPass/MPContextMenuHelper.m +++ b/MacPass/MPContextMenuHelper.m @@ -42,6 +42,7 @@ @implementation MPContextMenuHelper BOOL const insertDuplicate = MPIsFlagSetInOptions(MPContextMenuDuplicate, flags); BOOL const insertAutotype = MPIsFlagSetInOptions(MPContextMenuAutotype, flags); BOOL const insertHistory = MPIsFlagSetInOptions(MPContextMenuHistory, flags); + BOOL const insertShowGroupInOutline = MPIsFlagSetInOptions(MPContextMenuShowGroupInOutline, flags); NSMutableArray *items = [NSMutableArray arrayWithCapacity:10]; if(insertCreate) { @@ -63,8 +64,11 @@ @implementation MPContextMenuHelper NSMenuItem *duplicateEntyWithOptions = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"DUPLICATE_ENTRY_WITH_OPTIONS", @"Menu item to duplicate an entry with options how to duplicate. Will present a dialog.") action:[MPActionHelper actionOfType:MPActionDuplicateEntryWithOptions] keyEquivalent:@""]; - - [items addObjectsFromArray:@[ duplicateEntry, duplicateEntyWithOptions ]]; + NSMenuItem *duplicateGroup = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"DUPLICATE_GROUP", @"Menu item to directly diplicate a group") + action:[MPActionHelper actionOfType:MPActionDuplicateGroup] + keyEquivalent:@""]; + + [items addObjectsFromArray:@[ duplicateEntry, duplicateEntyWithOptions, duplicateGroup ]]; } if(insertDelete || insertTrash) { @@ -113,7 +117,7 @@ @implementation MPContextMenuHelper [items addObjectsFromArray:@[ copyUsername, copyPassword, urlItem]]; } - if(insertAutotype || insertHistory) { + if(insertAutotype || insertHistory || insertShowGroupInOutline) { MPContextmenuHelperBeginSection(items); if(insertAutotype) { NSMenuItem *performAutotype = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"PERFORM_AUTOTYPE_FOR_ENTRY", @"Menu item to perform autotype with the selected entry") @@ -128,6 +132,12 @@ @implementation MPContextMenuHelper showHistory.keyEquivalentModifierMask = (showHistory.keyEquivalentModifierMask | NSCommandKeyMask | NSControlKeyMask); [items addObject:showHistory]; } + if(insertShowGroupInOutline) { + NSMenuItem *showGroupInOutline = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"SHOW_GROUP_IN_OUTLINE", @"Menu item to show the entries group in the outline view") + action:[MPActionHelper actionOfType:MPActionShowGroupInOutline] + keyEquivalent:@""]; + [items addObject:showGroupInOutline]; + } } return items; diff --git a/MacPass/MPDocument.h b/MacPass/MPDocument.h index 03824982c..469e2a59e 100644 --- a/MacPass/MPDocument.h +++ b/MacPass/MPDocument.h @@ -92,6 +92,8 @@ FOUNDATION_EXPORT NSString *const MPDocumentGroupKey; /* Search - see MPDocument+Search for further details + + FIXME: Document is pinned to mode bases search. Wrong design! */ @property (nonatomic, readonly) BOOL hasSearch; @property (nonatomic, copy) MPEntrySearchContext *searchContext; @@ -163,7 +165,6 @@ FOUNDATION_EXPORT NSString *const MPDocumentGroupKey; - (void)deleteNode:(KPKNode *)node; - (void)duplicateEntryWithOptions:(KPKCopyOptions)options; - #pragma mark Actions /** * Empties the Trash group. Removing all Groups and Entries inside. This action is not undo-able @@ -177,6 +178,7 @@ FOUNDATION_EXPORT NSString *const MPDocumentGroupKey; */ - (IBAction)createEntryFromTemplate:(id)sender; - (IBAction)duplicateEntry:(id)sender; +- (IBAction)duplicateGroup:(id)sender; @end diff --git a/MacPass/MPDocument.m b/MacPass/MPDocument.m index df8c6a035..2b2cb0ec8 100644 --- a/MacPass/MPDocument.m +++ b/MacPass/MPDocument.m @@ -116,7 +116,7 @@ + (NSString *)fileTypeForVersion:(KPKDatabaseFormat)format { } + (BOOL)autosavesInPlace { - return YES; + return [NSUserDefaults.standardUserDefaults boolForKey:kMPSettingsKeyEnableAutosave]; } - (instancetype)init { @@ -168,11 +168,20 @@ - (BOOL)checkAutosavingSafetyAndReturnError:(NSError **)outError { NSRecoveryAttempterErrorKey : recovery }; if(outError != NULL) { - *outError = [NSError errorWithDomain:MPErrorDomain code:MPErrorNoPasswordOrKeyFile userInfo:userInfo]; + *outError = [NSError errorWithDomain:MPDefaultErrorDomain code:MPErrorNoPasswordOrKeyFile userInfo:userInfo]; } return NO; } +- (NSString *)fileNameExtensionForType:(NSString *)typeName saveOperation:(NSSaveOperationType)saveOperation { + NSString *proposedExtension = [super fileNameExtensionForType:typeName saveOperation:saveOperation]; + if(!self.fileURL) { + return proposedExtension; + } + NSString *actualExtension = self.fileURL.pathExtension; + return actualExtension; +} + - (NSData *)dataOfType:(NSString *)typeName error:(NSError * _Nullable __autoreleasing *)outError { if(self.encrypted) { NSLog(@"%@ should not be called on locked databases!", NSStringFromSelector(_cmd)); @@ -181,7 +190,7 @@ - (NSData *)dataOfType:(NSString *)typeName error:(NSError * _Nullable __autorel if(!self.compositeKey.hasPasswordOrKeyFile) { if(outError != NULL) { NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET", "") }; - *outError = [NSError errorWithDomain:MPErrorDomain code:0 userInfo:userInfo]; + *outError = [NSError errorWithDomain:MPDefaultErrorDomain code:0 userInfo:userInfo]; } return nil; // Saving without a password/key is not possible } @@ -190,7 +199,7 @@ - (NSData *)dataOfType:(NSString *)typeName error:(NSError * _Nullable __autorel if(format == KPKDatabaseFormatUnknown) { if(outError != NULL) { NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"UNKNOWN_FILE_VERSION", "") }; - *outError = [NSError errorWithDomain:MPErrorDomain code:0 userInfo:userInfo]; + *outError = [NSError errorWithDomain:MPDefaultErrorDomain code:0 userInfo:userInfo]; } return nil; // We do not know what version to save! } @@ -828,7 +837,16 @@ - (void)duplicateEntryWithOptions:(KPKCopyOptions)options { KPKEntry *duplicate = [entry copyWithTitle:nil options:options]; [duplicate addToGroup:entry.parent]; } - [self.undoManager setActionName:[NSString stringWithFormat:NSLocalizedString(@"DUPLICATE_ENTRIES_%ld", @"Action name for duplicating entries"), self.selectedEntries.count]]; + [self.undoManager setActionName:[NSString stringWithFormat:NSLocalizedString(@"DUPLICATE_ENTRIES_ACTION_NAME", @"Action name for duplicating entries"), self.selectedEntries.count]]; +} + +- (void)duplicateGroup:(id)sender { + for(KPKGroup *group in self.selectedGroups) { + KPKGroup *duplicate = [group copyWithTitle:nil options:kKPKCopyOptionNone]; + /* if group is root group, add the duplicate below */ + [duplicate addToGroup:(group.parent ? group.parent : group)]; + } + [self.undoManager setActionName:[NSString stringWithFormat:NSLocalizedString(@"DUPLICATE_GROUPS_ACTION_NAME", @"Action name for duplicating groups"), self.selectedGroups.count]]; } #pragma mark Validation @@ -886,6 +904,9 @@ - (BOOL)validateUserInterfaceItem:(id)anItem { valid &= targetEntries.count > 0; valid &= !self.historyEntry; break; + case MPActionDuplicateGroup: + valid &= targetGroups.count > 0; + break; case MPActionEmptyTrash: valid &= (self.trash.groups.count + self.trash.entries.count) > 0; break; @@ -915,6 +936,10 @@ - (BOOL)validateUserInterfaceItem:(id)anItem { case MPActionCopyAsReference: valid &= (nil != targetEntry); break; + case MPActionShowGroupInOutline: + valid &= (nil != targetEntry); + valid &= self.hasSearch; + break; default: break; } diff --git a/MacPass/MPDocumentWindowController.h b/MacPass/MPDocumentWindowController.h index 1750ad3fc..2b51042ca 100644 --- a/MacPass/MPDocumentWindowController.h +++ b/MacPass/MPDocumentWindowController.h @@ -31,7 +31,7 @@ @class MPOutlineViewController; @class MPToolbarDelegate; -@interface MPDocumentWindowController : NSWindowController +@interface MPDocumentWindowController : NSWindowController @property (readonly, strong) MPPasswordInputController *passwordInputController; @property (readonly, strong) MPEntryViewController *entryViewController; @@ -39,8 +39,7 @@ @property (readonly, strong) MPInspectorViewController *inspectorViewController; @property (readonly, strong) MPToolbarDelegate *toolbarDelegate; -#pragma mark Search -- (NSSearchField *)searchField; +@property (readonly, nonatomic, strong) NSSearchField *searchField; - (void)showEntries; - (void)showPasswordInput; @@ -67,11 +66,11 @@ - (IBAction)delete:(id)sender; - (IBAction)duplicateEntryWithOptions:(id)sender; - - (IBAction)pickExpiryDate:(id)sender; - - (IBAction)performAutotypeForEntry:(id)sender; +- (IBAction)showGroupInOutline:(id)sender; + /* actions relayed to MPEntryViewController */ - (IBAction)copyUsername:(id)sender; - (IBAction)copyPassword:(id)sender; diff --git a/MacPass/MPDocumentWindowController.m b/MacPass/MPDocumentWindowController.m index 4e83993d8..87f9fd678 100644 --- a/MacPass/MPDocumentWindowController.m +++ b/MacPass/MPDocumentWindowController.m @@ -39,6 +39,8 @@ #import "MPSettingsHelper.h" #import "MPToolbarDelegate.h" #import "MPTitlebarColorAccessoryViewController.h" +#import "MPTouchBarButtonCreator.h" +#import "MPIconHelper.h" #import "MPPluginHost.h" #import "MPPlugin.h" @@ -543,6 +545,14 @@ - (void)showEntries { [contentView layoutSubtreeIfNeeded]; } +- (void)showGroupInOutline:(id)sender { + NSArray *targetEntries = self.entryViewController.currentTargetEntries; + if(targetEntries.count != 1) { + return; + } + [self.outlineViewController selectGroup:targetEntries.lastObject.parent]; +} + #pragma mark - #pragma mark Actions forwarded to MPEntryViewController - (void)copyUsername:(id)sender { @@ -652,4 +662,97 @@ - (BOOL)_isInspectorVisible { return (nil != inspectorView.superview); } +- (NSTouchBar *)makeTouchBar { + NSTouchBar *touchBar = [[NSTouchBar alloc] init]; + touchBar.delegate = self; + touchBar.customizationIdentifier = MPTouchBarCustomizationIdentifierDocument; + NSArray *defaultItemIdentifiers = @[MPTouchBarItemIdentifierSearch, MPTouchBarItemIdentifierEditPopover, MPTouchBarItemIdentifierCopyUsername, MPTouchBarItemIdentifierCopyPassword, MPTouchBarItemIdentifierPerformAutotype, NSTouchBarItemIdentifierFlexibleSpace, MPTouchBarItemIdentifierLock]; + touchBar.defaultItemIdentifiers = defaultItemIdentifiers; + touchBar.customizationAllowedItemIdentifiers = defaultItemIdentifiers; + return touchBar; +} + +- (NSTouchBarItem *)touchBar:(NSTouchBar *)touchBar makeItemForIdentifier:(NSTouchBarItemIdentifier)identifier API_AVAILABLE(macos(10.12.2)) { +#pragma mark primary touchbar elements + if([identifier isEqualToString:MPTouchBarItemIdentifierSearch]) { + return [MPTouchBarButtonCreator touchBarButtonWithImage:[NSImage imageNamed:NSImageNameTouchBarSearchTemplate] + identifier:MPTouchBarItemIdentifierSearch + target:self + selector:@selector(focusSearchField) + customizationLabel:NSLocalizedString(@"TOUCHBAR_SEARCH","Touchbar button label for searching the database")]; + } + + if([identifier isEqualToString:MPTouchBarItemIdentifierEditPopover]) { + NSTouchBar *secondaryTouchBar = [[NSTouchBar alloc] init]; + secondaryTouchBar.delegate = self; + secondaryTouchBar.defaultItemIdentifiers = @[MPTouchBarItemIdentifierNewEntry, MPTouchBarItemIdentifierNewGroup, MPTouchBarItemIdentifierDelete]; + return [MPTouchBarButtonCreator popoverTouchBarButton:NSLocalizedString(@"TOUCHBAR_EDIT","Touchbar button label for opening the popover to edit") + identifier:MPTouchBarItemIdentifierEditPopover + popoverTouchBar:secondaryTouchBar + customizationLabel:NSLocalizedString(@"TOUCHBAR_EDIT","Touchbar button label for opening the popover to edit")]; + } + + if([identifier isEqualToString:MPTouchBarItemIdentifierCopyUsername]) { + return [MPTouchBarButtonCreator touchBarButtonWithTitle:NSLocalizedString(@"TOUCHBAR_COPY_USERNAME","Touchbar button label for copying the username") + identifier:MPTouchBarItemIdentifierCopyUsername + target:self + selector:@selector(copyUsername:) + customizationLabel:NSLocalizedString(@"TOUCHBAR_COPY_USERNAME","Touchbar button label for copying the username")]; + } + + if([identifier isEqualToString:MPTouchBarItemIdentifierCopyPassword]) { + return [MPTouchBarButtonCreator touchBarButtonWithTitle:NSLocalizedString(@"TOUCHBAR_COPY_PASSWORD","Touchbar button label for copying the password") + identifier:MPTouchBarItemIdentifierCopyPassword + target:self + selector:@selector(copyPassword:) + customizationLabel:NSLocalizedString(@"TOUCHBAR_COPY_PASSWORD","Touchbar button label for copying the password")]; + } + + if([identifier isEqualToString:MPTouchBarItemIdentifierPerformAutotype]) { + return [MPTouchBarButtonCreator touchBarButtonWithTitle:NSLocalizedString(@"TOUCHBAR_PERFORM_AUTOTYPE","Touchbar button label for performing autotype") + identifier:MPTouchBarItemIdentifierPerformAutotype + target:self + selector:@selector(performAutotypeForEntry:) + customizationLabel:NSLocalizedString(@"TOUCHBAR_PERFORM_AUTOTYPE","Touchbar button label for performing autotype")]; + } + if([identifier isEqualToString:MPTouchBarItemIdentifierLock]) { + return [MPTouchBarButtonCreator touchBarButtonWithImage:[NSImage imageNamed:NSImageNameLockLockedTemplate] + identifier:MPTouchBarItemIdentifierLock + target:self + selector:@selector(lock:) + customizationLabel:NSLocalizedString(@"TOUCHBAR_LOCK_DATABASE","Touchbar button label for locking the database")]; + } +#pragma mark secondary/popover touchbar elements + if([identifier isEqualToString:MPTouchBarItemIdentifierNewEntry]) { + return [MPTouchBarButtonCreator touchBarButtonWithTitleAndImage:NSLocalizedString(@"TOUCHBAR_NEW_ENTRY","Touchbar button label for creating a new item") + identifier:MPTouchBarItemIdentifierNewEntry + image:[MPIconHelper icon:MPIconAddEntry] + target:self + selector:@selector(createEntry:) + customizationLabel:NSLocalizedString(@"TOUCHBAR_NEW_ENTRY","Touchbar button label for creating a new item")]; + } + if([identifier isEqualToString:MPTouchBarItemIdentifierNewGroup]) { + return [MPTouchBarButtonCreator touchBarButtonWithTitleAndImage:NSLocalizedString(@"TOUCHBAR_NEW_GROUP","Touchbar button label for creating a new group") + identifier:MPTouchBarItemIdentifierNewGroup + image:[MPIconHelper icon:MPIconAddFolder] + target:self + selector:@selector(createGroup:) + customizationLabel:NSLocalizedString(@"TOUCHBAR_NEW_GROUP","Touchbar button label for creating a new group")]; + } + if([identifier isEqualToString:MPTouchBarItemIdentifierDelete]) { + return [MPTouchBarButtonCreator touchBarButtonWithTitleAndImageAndColor:NSLocalizedString(@"TOUCHBAR_DELETE","Touchbar button label for deleting elements") + identifier:MPTouchBarItemIdentifierDelete + image:[MPIconHelper icon:MPIconTrash] + color:NSColor.systemRedColor + target:self + selector:@selector(delete:) + customizationLabel:NSLocalizedString(@"TOUCHBAR_DELETE","Touchbar button label for deleting elements")]; + } + return nil; +} + +- (void)focusSearchField { + [self.window makeFirstResponder:self.searchField]; +} + @end diff --git a/MacPass/MPEntryContextMenuDelegate.h b/MacPass/MPEntryContextMenuDelegate.h index bd7add5f7..726009155 100644 --- a/MacPass/MPEntryContextMenuDelegate.h +++ b/MacPass/MPEntryContextMenuDelegate.h @@ -23,7 +23,7 @@ #import /** - Delegate is used for context menus that are show in the entries table + Delegate is used for context menus that are show in the entries table as well as the items menu in the main menu */ @interface MPEntryContextMenuDelegate : NSObject diff --git a/MacPass/MPEntryInspectorViewController.m b/MacPass/MPEntryInspectorViewController.m index b256e4df2..ec49f3b25 100644 --- a/MacPass/MPEntryInspectorViewController.m +++ b/MacPass/MPEntryInspectorViewController.m @@ -201,7 +201,7 @@ - (void)addCustomField:(id)sender { } - (void)removeCustomField:(id)sender { NSInteger rowIndex = [self.customFieldsTableView rowForView:sender]; - NSAssert(rowIndex > 0 && rowIndex < self.representedEntry.customAttributes.count, @"Invalid custom attribute index."); + NSAssert(rowIndex >= 0 && rowIndex < self.representedEntry.customAttributes.count, @"Invalid custom attribute index."); KPKAttribute *attribute = self.representedEntry.customAttributes[rowIndex]; [self.observer willChangeModelProperty]; [self.representedEntry removeCustomAttribute:attribute]; diff --git a/MacPass/MPEntryViewController.m b/MacPass/MPEntryViewController.m index ed68a8632..d072d8c5f 100644 --- a/MacPass/MPEntryViewController.m +++ b/MacPass/MPEntryViewController.m @@ -463,6 +463,7 @@ - (void)_didBecomFirstResponder:(NSNotification *)notification { - (void)_didAddItem:(NSNotification *)notification { MPDocument *document = notification.object; + // FIXME: UI should know search state not document! if(document.hasSearch) { return; // Search should not react to new Entries as it's displaying search results } @@ -601,7 +602,7 @@ - (BOOL)validateMenuItem:(NSMenuItem *)menuItem { - (void)_setupEntryMenu { NSMenu *menu = [[NSMenu alloc] init]; - NSArray *items = [MPContextMenuHelper contextMenuItemsWithItems:MPContextMenuFull]; + NSArray *items = [MPContextMenuHelper contextMenuItemsWithItems:MPContextMenuFull|MPContextMenuShowGroupInOutline]; for(NSMenuItem *item in items) { [menu addItem:item]; } @@ -748,14 +749,14 @@ - (void)revertToHistoryEntry:(id)sender { } - (void)_columnDoubleClick:(id)sender { - if(0 == [[self.entryArrayController arrangedObjects] count]) { + if(0 == [self.entryArrayController.arrangedObjects count]) { return; // No data available } - NSInteger columnIndex = [self.entryTable clickedColumn]; + NSInteger columnIndex = self.entryTable.clickedColumn; if(columnIndex < 0 || columnIndex >= self.entryTable.tableColumns.count) { return; // No Column to use } - NSTableColumn *column = self.entryTable.tableColumns[self.entryTable.clickedColumn]; + NSTableColumn *column = self.entryTable.tableColumns[columnIndex]; NSString *identifier = column.identifier; if([identifier isEqualToString:MPEntryTableTitleColumnIdentifier]) { [self _executeTitleColumnDoubleClick]; @@ -769,9 +770,17 @@ - (void)_columnDoubleClick:(id)sender { else if([identifier isEqualToString:MPEntryTableURLColumnIdentifier]) { [self _executeURLColumnDoubleClick]; } + else if([identifier isEqualToString:MPEntryTableParentColumnIdentifier]) { + [self _executeGroupColumnDoubleClick]; + } // TODO: Add more actions for new columns } +- (void)_executeGroupColumnDoubleClick { + id target = [NSApp targetForAction:@selector(showGroupInOutline:)]; + [target showGroupInOutline:self]; +} + - (void)_executeTitleColumnDoubleClick { MPDoubleClickTitleAction action = [NSUserDefaults.standardUserDefaults integerForKey:kMPSettingsKeyDoubleClickTitleAction]; switch(action) { @@ -799,4 +808,5 @@ - (void)_executeURLColumnDoubleClick { break; } } + @end diff --git a/MacPass/MPGeneralSettingsController.h b/MacPass/MPGeneralPreferencesController.h similarity index 60% rename from MacPass/MPGeneralSettingsController.h rename to MacPass/MPGeneralPreferencesController.h index c7e5da847..f216249be 100644 --- a/MacPass/MPGeneralSettingsController.h +++ b/MacPass/MPGeneralPreferencesController.h @@ -24,17 +24,17 @@ #import "MPViewController.h" #import "MPPreferencesTab.h" -@interface MPGeneralSettingsController : MPViewController +@interface MPGeneralPreferencesController : MPViewController -@property (weak) IBOutlet NSButton *clearPasteboardOnQuitCheckButton; -@property (weak) IBOutlet NSPopUpButton *clearPasteboardTimeoutPopup; +@property (strong) IBOutlet NSButton *clearPasteboardOnQuitCheckButton; +@property (strong) IBOutlet NSPopUpButton *clearPasteboardTimeoutPopup; @property (strong) IBOutlet NSButton *preventUniversalClipboardSupportCheckButton; -@property (weak) IBOutlet NSPopUpButton *idleTimeOutPopup; -@property (weak) IBOutlet NSButton *lockOnSleepCheckButton; -@property (weak) IBOutlet NSButton *lockOnLogoutCheckButton; -@property (weak) IBOutlet NSButton *reopenLastDatabase; -@property (weak) IBOutlet NSButton *createUntitledOnActivation; -@property (weak) IBOutlet NSButton *rememberKeyFileCheckButton; -@property (weak) IBOutlet NSPopUpButton *fileChangeStrategyPopup; +@property (strong) IBOutlet NSPopUpButton *idleTimeOutPopup; +@property (strong) IBOutlet NSButton *lockOnSleepCheckButton; +@property (strong) IBOutlet NSButton *lockOnLogoutCheckButton; +@property (strong) IBOutlet NSButton *reopenLastDatabase; +@property (strong) IBOutlet NSButton *enableAutosaveCheckButton; +@property (strong) IBOutlet NSButton *rememberKeyFileCheckButton; +@property (strong) IBOutlet NSPopUpButton *fileChangeStrategyPopup; @end diff --git a/MacPass/MPGeneralSettingsController.m b/MacPass/MPGeneralPreferencesController.m similarity index 90% rename from MacPass/MPGeneralSettingsController.m rename to MacPass/MPGeneralPreferencesController.m index 88137907e..20428a82d 100644 --- a/MacPass/MPGeneralSettingsController.m +++ b/MacPass/MPGeneralPreferencesController.m @@ -20,20 +20,18 @@ // along with this program. If not, see . // -#import "MPGeneralSettingsController.h" +#import "MPGeneralPreferencesController.h" #import "MPSettingsHelper.h" #import "MPIconHelper.h" -NSString *const MPGeneralSetingsIdentifier = @"GeneralSettingsTab"; - -@implementation MPGeneralSettingsController +@implementation MPGeneralPreferencesController - (NSString *)nibName { - return @"GeneralSettings"; + return @"GeneralPreferences"; } - (NSString *)identifier { - return MPGeneralSetingsIdentifier; + return @"GeneralPreferences"; } - (NSImage *)image { @@ -41,7 +39,7 @@ - (NSImage *)image { } - (NSString *)label { - return NSLocalizedString(@"GENERAL_SETTINGS", @"General Settings Label"); + return NSLocalizedString(@"GENERAL_PREFERENCES", @"General Settings Label"); } - (void)viewDidLoad { @@ -54,8 +52,8 @@ - (void)viewDidLoad { [self.lockOnLogoutCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingskeyLockOnLogout] 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.enableAutosaveCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyEnableAutosave] 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", @"External file change strategy option: ask what to do"), diff --git a/MacPass/MPIntegrationSettingsController.h b/MacPass/MPIntegrationPreferencesController.h similarity index 91% rename from MacPass/MPIntegrationSettingsController.h rename to MacPass/MPIntegrationPreferencesController.h index c4e58e05c..2deb2b5ad 100644 --- a/MacPass/MPIntegrationSettingsController.h +++ b/MacPass/MPIntegrationPreferencesController.h @@ -25,7 +25,7 @@ @class DDHotKeyTextField; -@interface MPIntegrationSettingsController : MPViewController +@interface MPIntegrationPreferencesController : MPViewController /* Autotype */ @property (strong) IBOutlet NSButton *enableGlobalAutotypeCheckBox; @property (strong) IBOutlet DDHotKeyTextField *hotKeyTextField; @@ -44,6 +44,6 @@ /* Preview */ @property (strong) IBOutlet NSButton *enableQuicklookCheckBox; -- (IBAction)openAccessibiltyPreferences:(id)sender; +- (IBAction)runAutotypeDoctor:(id)sender; @end diff --git a/MacPass/MPIntegrationSettingsController.m b/MacPass/MPIntegrationPreferencesController.m similarity index 91% rename from MacPass/MPIntegrationSettingsController.m rename to MacPass/MPIntegrationPreferencesController.m index a081f42a5..c4ccdfbc1 100644 --- a/MacPass/MPIntegrationSettingsController.m +++ b/MacPass/MPIntegrationPreferencesController.m @@ -20,25 +20,25 @@ // along with this program. If not, see . // -#import "MPIntegrationSettingsController.h" +#import "MPIntegrationPreferencesController.h" #import "MPSettingsHelper.h" #import "MPIconHelper.h" -#import "MPAutotypeDaemon.h" +#import "MPAutotypeDoctor.h" #import "DDHotKeyCenter.h" #import "DDHotKey+MacPassAdditions.h" #import "DDHotKeyTextField.h" -@interface MPIntegrationSettingsController () +@interface MPIntegrationPreferencesController () @property (nonatomic, strong) DDHotKey *hotKey; @end -@implementation MPIntegrationSettingsController +@implementation MPIntegrationPreferencesController - (NSString *)nibName { - return @"IntegrationSettings"; + return @"IntegrationPreferences"; } - (NSString *)identifier { @@ -105,7 +105,8 @@ - (void)_showKeyCodeMissingKeyWarning:(BOOL)show { } - (void)_updateAccessabilityWarning { - BOOL hasAutotypeSupport = MPAutotypeDaemon.defaultDaemon.autotypeSupported; + + BOOL hasAutotypeSupport = MPAutotypeDoctor.defaultDoctor.hasNecessaryAutotypePermissions; if(hasAutotypeSupport) { [self.autotypeStackView setVisibilityPriority:NSStackViewVisibilityPriorityNotVisible forView:self.autotypeWarningTextField]; @@ -117,7 +118,7 @@ - (void)_updateAccessabilityWarning { } } -- (void)openAccessibiltyPreferences:(id)sender { - [MPAutotypeDaemon.defaultDaemon openAccessibiltyPreferences]; +- (void)runAutotypeDoctor:(id)sender { + [MPAutotypeDoctor.defaultDoctor runChecksAndPresentResults]; } @end diff --git a/MacPass/MPOutlineContextMenuDelegate.m b/MacPass/MPOutlineContextMenuDelegate.m index 5f1ce530a..0165b19b5 100644 --- a/MacPass/MPOutlineContextMenuDelegate.m +++ b/MacPass/MPOutlineContextMenuDelegate.m @@ -57,7 +57,7 @@ - (void)menuNeedsUpdate:(NSMenu *)menu { if( [item isKindOfClass:KPKGroup.class]) { KPKGroup *group = (KPKGroup *)item; - MPDocument *document = [NSDocumentController sharedDocumentController].currentDocument; + MPDocument *document = NSDocumentController.sharedDocumentController.currentDocument; if(group && document.root == group ) { } diff --git a/MacPass/MPOutlineViewController.h b/MacPass/MPOutlineViewController.h index bd64098b6..7fd8492c3 100644 --- a/MacPass/MPOutlineViewController.h +++ b/MacPass/MPOutlineViewController.h @@ -26,12 +26,14 @@ APPKIT_EXTERN NSString *const MPOutlineViewDidChangeGroupSelection; @class MPDocument; +@class KPKGroup; @interface MPOutlineViewController : MPViewController - (void)clearSelection; - (void)showOutline; - (void)registerNotificationsForDocument:(MPDocument *)document; +- (void)selectGroup:(KPKGroup *)group; /** * Retrieves the current item for the current mouse location diff --git a/MacPass/MPOutlineViewController.m b/MacPass/MPOutlineViewController.m index 0c6512758..6ca321357 100644 --- a/MacPass/MPOutlineViewController.m +++ b/MacPass/MPOutlineViewController.m @@ -143,6 +143,23 @@ - (void)showOutline { } } +- (void)selectGroup:(KPKGroup *)group { + NSMutableArray *parents = [[NSMutableArray alloc] init]; + NSUUID *groupUUID = group.uuid; + while(group.parent) { + [parents insertObject:group.parent atIndex:0]; + group = group.parent; + } + NSTreeNode *node = [self.outlineView itemAtRow:0]; + for(KPKGroup *group in parents) { + NSUInteger row = [self _rowForUUID:group.uuid node:node]; + [self.outlineView expandItem:[self.outlineView itemAtRow:row]]; + } + NSUInteger rowToSelect = [self _rowForUUID:groupUUID node:node]; + [self.outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:rowToSelect] byExtendingSelection:NO]; + [self.outlineView scrollRowToVisible:rowToSelect]; +} + - (void)_expandItems:(NSTreeNode *)node { id nodeItem = node.representedObject; if([nodeItem isKindOfClass:KPKTree.class]) { diff --git a/MacPass/MPPasswordCreatorViewController.m b/MacPass/MPPasswordCreatorViewController.m index b68c5ac66..8c73ea278 100644 --- a/MacPass/MPPasswordCreatorViewController.m +++ b/MacPass/MPPasswordCreatorViewController.m @@ -241,6 +241,7 @@ - (IBAction)_setDefault:(id)sender { [NSUserDefaults.standardUserDefaults setInteger:self.characterFlags forKey:kMPSettingsKeyPasswordCharacterFlags]; [NSUserDefaults.standardUserDefaults setBool:self.useCustomString forKey:kMPSettingsKeyPasswordUseCustomString]; [NSUserDefaults.standardUserDefaults setObject:self.customCharactersTextField.stringValue forKey:kMPSettingsKeyPasswordCustomString]; + [NSUserDefaults.standardUserDefaults setBool:self.ensureOccurance forKey:kMPSettingsKeyPasswordEnsureOccurance]; } else { NSLog(@"Cannot set password generator defaults. Inconsistent state. Aborting."); @@ -274,10 +275,8 @@ - (void)setUseEntryDefaults:(BOOL)useEntryDefaults { } - (void)setRepresentedObject:(id)representedObject { - if(self.representedObject != representedObject) { - self.useEntryDefaults = [self _hasValidDefaultsForCurrentEntry]; - } [super setRepresentedObject:representedObject]; + self.useEntryDefaults = [self _hasValidDefaultsForCurrentEntry]; } - (void)setPassword:(NSString *)password { @@ -307,6 +306,7 @@ - (void)setPasswordLength:(NSUInteger)passwordLength { - (void)setEnsureOccurance:(BOOL)useCharacterFromEachGroup { if(self.ensureOccurance != useCharacterFromEachGroup) { + self.setDefaultButton.enabled = YES; _ensureOccurance = useCharacterFromEachGroup; [self _resetCharacters]; [self _generatePassword:nil]; diff --git a/MacPass/MPPasswordInputController.h b/MacPass/MPPasswordInputController.h index 7eb7d5d5a..26ffd2b18 100644 --- a/MacPass/MPPasswordInputController.h +++ b/MacPass/MPPasswordInputController.h @@ -24,7 +24,7 @@ @class KPKCompositeKey; -@interface MPPasswordInputController : MPViewController +@interface MPPasswordInputController : MPViewController typedef BOOL (^passwordInputCompletionBlock)(NSString *password, NSURL *keyURL, BOOL didCancel, NSError *__autoreleasing*error); diff --git a/MacPass/MPPasswordInputController.m b/MacPass/MPPasswordInputController.m index 891a97857..024386649 100644 --- a/MacPass/MPPasswordInputController.m +++ b/MacPass/MPPasswordInputController.m @@ -26,6 +26,7 @@ #import "MPDocument.h" #import "MPSettingsHelper.h" #import "MPPathControl.h" +#import "MPTouchBarButtonCreator.h" #import "HNHUi/HNHUi.h" @@ -33,6 +34,7 @@ @interface MPPasswordInputController () +@property (strong) NSButton *showPasswordButton; @property (weak) IBOutlet HNHUISecureTextField *passwordTextField; @property (weak) IBOutlet MPPathControl *keyPathControl; @property (weak) IBOutlet NSImageView *messageImageView; @@ -177,4 +179,36 @@ - (void)_showError:(NSError *)error { self.messageInfoTextField.hidden = NO; } + +- (NSTouchBar *)makeTouchBar { + NSTouchBar *touchBar = [[NSTouchBar alloc] init]; + touchBar.delegate = self; + touchBar.customizationIdentifier = MPTouchBarCustomizationIdentifierPasswordInput; + NSArray *defaultItemIdentifiers = @[MPTouchBarItemIdentifierShowPassword, MPTouchBarItemIdentifierChooseKeyfile, NSTouchBarItemIdentifierFlexibleSpace,MPTouchBarItemIdentifierUnlock]; + touchBar.defaultItemIdentifiers = defaultItemIdentifiers; + touchBar.customizationAllowedItemIdentifiers = defaultItemIdentifiers; + return touchBar; +} + +- (NSTouchBarItem *)touchBar:(NSTouchBar *)touchBar makeItemForIdentifier:(NSTouchBarItemIdentifier)identifier API_AVAILABLE(macos(10.12.2)) { + if (identifier == MPTouchBarItemIdentifierChooseKeyfile) { + return [MPTouchBarButtonCreator touchBarButtonWithTitleAndImage:NSLocalizedString(@"TOUCHBAR_CHOOSE_KEYFILE","Touchbar button label for choosing the keyfile") identifier:MPTouchBarItemIdentifierChooseKeyfile image:[NSImage imageNamed:NSImageNameTouchBarFolderTemplate] target:self.keyPathControl selector:@selector(showOpenPanel:) customizationLabel:NSLocalizedString(@"TOUCHBAR_CHOOSE_KEYFILE","Touchbar button label for choosing the keyfile")]; + } else if (identifier == MPTouchBarItemIdentifierShowPassword) { + NSTouchBarItem *item = [MPTouchBarButtonCreator touchBarButtonWithTitleAndImage:NSLocalizedString(@"TOUCHBAR_SHOW_PASSWORD","Touchbar button label for showing the password") identifier:MPTouchBarItemIdentifierShowPassword image:[NSImage imageNamed:NSImageNameTouchBarQuickLookTemplate] target:self selector:@selector(toggleShowPassword) customizationLabel:NSLocalizedString(@"TOUCHBAR_SHOW_PASSWORD","Touchbar button label for showing the password")]; + _showPasswordButton = (NSButton *) item.view; + return item; + } else if (identifier == MPTouchBarItemIdentifierUnlock) { + return [MPTouchBarButtonCreator touchBarButtonWithImage:[NSImage imageNamed:NSImageNameLockUnlockedTemplate] identifier:MPTouchBarItemIdentifierUnlock target:self selector:@selector(_submit:) customizationLabel:NSLocalizedString(@"TOUCHBAR_UNLOCK_DATABASE","Touchbar button label for unlocking the database")]; + } else { + return nil; + } +} + +- (void)toggleShowPassword { + self.showPassword = !self.showPassword; + if (@available(macOS 10.12.2, *)) { + _showPasswordButton.bezelColor = self.showPassword ? [NSColor selectedControlColor] : [NSColor controlColor]; + } +} + @end diff --git a/MacPass/MPPasteBoardController.h b/MacPass/MPPasteBoardController.h index 4e012d197..6d026feff 100644 --- a/MacPass/MPPasteBoardController.h +++ b/MacPass/MPPasteBoardController.h @@ -58,6 +58,18 @@ FOUNDATION_EXPORT NSString *const MPPasteBoardControllerDidClearClipboard; - (void)copyObjects:(NSArray> *)objects; - (void)copyObjectsWithoutTimeout:(NSArray> *)objects; +/** + The pastboard controller will copy the object to the clipboard, display an appropriate overlay image + and text and will set the clear time out if any is set. Additinally it will hide the application if + the user has set this option. This call should always be used when a user is directly copying anything + to the clipboard. If the clipboard is used internally (e.g. for autotype) you should call copyObjects: + or even copyObjectsWithoutTimeout: + + @param objects object so be copied + @param overlayInfoType infotype discribing what is copied + @param name a custom name + @param view the view that initiated the copy action + */ - (void)copyObjects:(NSArray> *)objects overlayInfo:(MPPasteboardOverlayInfoType)overlayInfoType name:(NSString *)name atView:(NSView *)view; @end diff --git a/MacPass/MPPasteBoardController.m b/MacPass/MPPasteBoardController.m index 3e3d0f13f..f3588d49d 100644 --- a/MacPass/MPPasteBoardController.m +++ b/MacPass/MPPasteBoardController.m @@ -143,7 +143,7 @@ - (void)copyObjects:(NSArray> *)objects overlayInfo:(MPP infoImage = [NSBundle.mainBundle imageForResource:@"00_PasswordTemplate"]; infoText = [NSString stringWithFormat:NSLocalizedString(@"COPIED_FIELD_%@", "Field name that was copied to the pasteboard"), name]; break; - + case MPPasteboardOverlayInfoReference: infoImage = [NSBundle.mainBundle imageForResource:@"04_KlipperTemplate"]; infoText = name; @@ -151,6 +151,13 @@ - (void)copyObjects:(NSArray> *)objects overlayInfo:(MPP } [MPOverlayWindowController.sharedController displayOverlayImage:infoImage label:infoText atView:view]; + + BOOL hide = [NSUserDefaults.standardUserDefaults boolForKey:kMPSettingsKeyHideAfterCopyToClipboard]; + if(hide) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(400 * NSEC_PER_MSEC)), dispatch_get_main_queue(), ^{ + [NSApplication.sharedApplication hide:nil]; + }); + } } - (void)_clearPasteboardContents { diff --git a/MacPass/MPPathControl.m b/MacPass/MPPathControl.m index b579ba94a..77018ac30 100644 --- a/MacPass/MPPathControl.m +++ b/MacPass/MPPathControl.m @@ -10,6 +10,18 @@ @implementation MPPathControl +- (BOOL)canBecomeKeyView { + return YES; +} + +- (BOOL)acceptsFirstResponder { + /* + documentation state YES is required when canBecomeKeyView is YES but setting to YES + causes NSWindow to use this as first responder when closing the password generator popover + */ + return NO; +} + - (instancetype)initWithFrame:(NSRect)frameRect { self = [super initWithFrame:frameRect]; self.delegate = self; @@ -35,11 +47,10 @@ - (void)showOpenPanel:(id)sender { if([self.delegate respondsToSelector:@selector(pathControl:willDisplayOpenPanel:)]) { [self.delegate pathControl:self willDisplayOpenPanel:panel]; } - [panel beginWithCompletionHandler:^(NSModalResponse result) { - if(result == NSModalResponseOK) { - self.URL = panel.URLs.firstObject; - } - }]; + NSModalResponse result = [panel runModal]; + if(result == NSModalResponseOK) { + self.URL = panel.URLs.firstObject; + } } - (void)pathControl:(NSPathControl *)pathControl willPopUpMenu:(NSMenu *)menu { diff --git a/MacPass/MPPlugin.h b/MacPass/MPPlugin.h index 905849015..6ed402d45 100644 --- a/MacPass/MPPlugin.h +++ b/MacPass/MPPlugin.h @@ -30,6 +30,7 @@ NS_ASSUME_NONNULL_BEGIN @class KPKTree; FOUNDATION_EXPORT NSString *const MPPluginUnkownVersion; +FOUNDATION_EXPORT NSString *const MPPluginDescriptionInfoDictionaryKey; @interface MPPlugin : NSObject @@ -37,8 +38,10 @@ FOUNDATION_EXPORT NSString *const MPPluginUnkownVersion; @property (copy, readonly) NSString *name; @property (nonatomic, copy, readonly, nullable) NSString *shortVersionString; @property (nonatomic, copy, readonly) NSString *versionString; +@property (nonatomic, copy, readonly) NSString *localizedDescription; @property (nonatomic, strong, readonly) NSBundle *bundle; + /** If your plugin needs initalization override this method but you have to call [super initWithPluginHost:] Otherwise your plugin might not get registered correctly @@ -53,6 +56,13 @@ FOUNDATION_EXPORT NSString *const MPPluginUnkownVersion; @end +#pragma mark Supported Plugin Protocolls + +/* + Adopting this protocolls allows for custom settings in the Plugin settings pane. + MacPass will load your view controller and place it inside the settings window + when a user has selected your plugin in the list + */ @protocol MPPluginSettings @required @@ -60,6 +70,20 @@ FOUNDATION_EXPORT NSString *const MPPluginUnkownVersion; @end +/* + Adopt this protocoll if you plugin can extract window title information for a set of applications + This way, MacPass might yield better results for autotype. Beware that his might break interoparbility + */ +@protocol MPAutotypeWindowTitleResolverPlugin +@required + +- (BOOL)acceptsRunningApplication:(NSRunningApplication *)runningApplication; +- (NSString *)windowTitleForRunningApplication:(NSRunningApplication *)runningApplication; +@end + + +#pragma mark Proposed Plugin Protocolls + /* Adopt this protocoll if your plugin supports actions on entries. Actions will get listed in various places in menues. @@ -111,13 +135,18 @@ FOUNDATION_EXPORT NSString *const MPPluginUnkownVersion; This will get called when the open panel is closed by the user. You should retrieve any results from the panel and act accordingly. + If you need custom UI in the process, you can show them here. + For example, if a CVS import might need user input on how to handle the parsed files this is the place to show it. + @param panel The open panel used for selecting what file(s) to import @param response The response for of the user for running the panel - @return The tree constructed from the selected input file(s) + @return The KPKTree constructed from the selected input file(s) */ - (KPKTree *)treeForRunningOpenPanel:(NSOpenPanel *)panel withResponse:(NSModalResponse)response; @end +#pragma mark Deprecated + @interface MPPlugin (Deprecated) - (instancetype)initWithPluginManager:(id)manager; diff --git a/MacPass/MPPlugin.m b/MacPass/MPPlugin.m index 1a84dbb33..5a69df185 100644 --- a/MacPass/MPPlugin.m +++ b/MacPass/MPPlugin.m @@ -28,6 +28,7 @@ #import "MPPluginVersionComparator.h" NSString *const MPPluginUnkownVersion = @"unkown.plugin.version"; +NSString *const MPPluginDescriptionInfoDictionaryKey = @"MPPluginDescription"; @implementation MPPlugin @@ -90,6 +91,16 @@ - (NSString *)versionString { return MPPluginUnkownVersion; } +- (NSString *)localizedDescription { + if([self.bundle.localizedInfoDictionary objectForKey:MPPluginDescriptionInfoDictionaryKey]) { + return self.bundle.localizedInfoDictionary[MPPluginDescriptionInfoDictionaryKey]; + } + if([self.bundle.infoDictionary objectForKey:MPPluginDescriptionInfoDictionaryKey]) { + return self.bundle.infoDictionary[MPPluginDescriptionInfoDictionaryKey]; + } + return @""; +} + - (void)didLoadPlugin { diff --git a/MacPass/MPPluginHost.h b/MacPass/MPPluginHost.h index 80127091a..94e101808 100644 --- a/MacPass/MPPluginHost.h +++ b/MacPass/MPPluginHost.h @@ -32,6 +32,7 @@ FOUNDATION_EXPORT NSString *const MPPluginHostPluginBundleIdentifiyerKey; @class MPPlugin; @class KPKEntry; @protocol MPImportPlugin; +@protocol MPAutotypeWindowTitleResolverPlugin; @interface MPPluginHost : NSObject @@ -57,3 +58,9 @@ FOUNDATION_EXPORT NSString *const MPPluginHostPluginBundleIdentifiyerKey; @property (readonly, copy) NSArray __kindof*> *importPlugins; @end + +@interface MPPluginHost (MPWindowTitleResolverSupport) + +- (NSArray __kindof*> *)windowTitleResolverForRunningApplication:(NSRunningApplication *)runningApplication; + +@end diff --git a/MacPass/MPPluginHost.m b/MacPass/MPPluginHost.m index 0558d84b1..e85366e73 100644 --- a/MacPass/MPPluginHost.m +++ b/MacPass/MPPluginHost.m @@ -282,7 +282,7 @@ - (void)_loadPlugins { } } if(incompatiblePlugins.count > 0) { - BOOL hideAlert = NO; + BOOL hideAlert = NSApplication.sharedApplication.isRunningTests ? YES : NO; if(nil != [NSUserDefaults.standardUserDefaults objectForKey:kMPSettingsKeyHideIncopatiblePluginsWarning]) { hideAlert = [NSUserDefaults.standardUserDefaults boolForKey:kMPSettingsKeyHideIncopatiblePluginsWarning]; } @@ -447,6 +447,13 @@ - (void)_performEntryAction:(id)sender { [context.plugin performActionForMenuItem:item withEntries:context.entries]; } +- (NSArray *)_pluginsConformingToProtocoll:(Protocol *)protocol { + NSPredicate *filterPredicate = [NSPredicate predicateWithBlock:^BOOL(id _Nullable evaluatedObject, NSDictionary * _Nullable bindings) { + return ([evaluatedObject conformsToProtocol:protocol]); + }]; + return [self.mutablePlugins filteredArrayUsingPredicate:filterPredicate]; +} + @end NSString *const MPPluginBundleIdentifierKey = @"MPPluginBundleIdentifierKey"; @@ -455,10 +462,23 @@ - (void)_performEntryAction:(id)sender { @implementation MPPluginHost (MPImportPluginSupport) - (NSArray *)importPlugins { - NSPredicate *filterPredicate = [NSPredicate predicateWithBlock:^BOOL(id _Nullable evaluatedObject, NSDictionary * _Nullable bindings) { - return ([evaluatedObject conformsToProtocol:@protocol(MPImportPlugin)]); - }]; - return [self.mutablePlugins filteredArrayUsingPredicate:filterPredicate]; + return [self _pluginsConformingToProtocoll:@protocol(MPImportPlugin)]; } + @end +@implementation MPPluginHost (MPWindowTitleResolverSupport) + +- (NSArray *)windowTitleResolverForRunningApplication:(NSRunningApplication *)runningApplication { + NSArray *> *plugins = [self _pluginsConformingToProtocoll:@protocol(MPAutotypeWindowTitleResolverPlugin)]; + NSMutableArray *resolver = [[NSMutableArray alloc] init]; + for(MPPlugin *plugin in plugins) { + if([plugin acceptsRunningApplication:runningApplication]) { + [resolver addObject:plugin]; + } + } + return [resolver copy]; +} + + +@end diff --git a/MacPass/MPPluginPreferencesController.m b/MacPass/MPPluginPreferencesController.m index 02c71f9ec..6aec8f57d 100644 --- a/MacPass/MPPluginPreferencesController.m +++ b/MacPass/MPPluginPreferencesController.m @@ -42,6 +42,7 @@ typedef NS_ENUM(NSUInteger, MPPluginSegmentType) { @interface MPPluginPreferencesController () +@property (strong) IBOutlet NSButton *allowRemoteConnectionCheckButton; @property (strong) IBOutlet NSTableView *pluginTableView; @property (strong) IBOutlet NSView *settingsView; @property (strong) IBOutlet NSView *fallbackSettingsView; @@ -83,6 +84,10 @@ - (void)viewDidLoad { toObject:NSUserDefaultsController.sharedUserDefaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyLoadIncompatiblePlugins] options:nil]; + [self.allowRemoteConnectionCheckButton bind:NSValueBinding + toObject:NSUserDefaultsController.sharedUserDefaultsController + withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyAllowRemoteFetchOfPluginRepository] + options:nil]; [self.pluginTableView registerForDraggedTypes:@[(NSString *)kUTTypeFileURL]]; } @@ -119,22 +124,29 @@ - (void)showSettingsForPlugin:(MPPlugin *)plugin { [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[view]|" options:0 metrics:nil views:dict]]; [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view]|" options:0 metrics:nil views:dict]]; } + else { + [self _showInfoMessageForPlugin:plugin.localizedDescription]; + } } else if(nil != plugin) { - [self.settingsView addSubview:self.fallbackSettingsView]; - NSDictionary *dict = @{ @"view" : self.fallbackSettingsView, - @"table" : self.pluginTableView.enclosingScrollView }; - [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[view]|" options:0 metrics:nil views:dict]]; - [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view]|" options:0 metrics:nil views:dict]]; if(plugin.errorMessage.length > 0) { - self.fallbackDescriptionTextField.stringValue = plugin.errorMessage; + [self _showInfoMessageForPlugin:plugin.errorMessage]; } else { - self.fallbackDescriptionTextField.stringValue = NSLocalizedString(@"PLUGIN_SETTINGS_GENERIC_ERROR_MESSAGE", "Generic message displayed if no details are know why a plugin was not loaded."); + [self _showInfoMessageForPlugin:NSLocalizedString(@"PLUGIN_SETTINGS_GENERIC_ERROR_MESSAGE", "Generic message displayed if no details are know why a plugin was not loaded.")]; } } } +- (void)_showInfoMessageForPlugin:(NSString *)message { + [self.settingsView addSubview:self.fallbackSettingsView]; + NSDictionary *dict = @{ @"view" : self.fallbackSettingsView, + @"table" : self.pluginTableView.enclosingScrollView }; + [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[view]|" options:0 metrics:nil views:dict]]; + [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view]|" options:0 metrics:nil views:dict]]; + self.fallbackDescriptionTextField.stringValue = message.length > 0 ? message : @""; +} + - (MPPlugin *)pluginForRow:(NSInteger)row { NSArray *plugins = [MPPluginHost sharedHost].plugins; if(0 > row || row >= plugins.count) { diff --git a/MacPass/MPPluginRepository.m b/MacPass/MPPluginRepository.m index 09268b09c..deaaa64c8 100644 --- a/MacPass/MPPluginRepository.m +++ b/MacPass/MPPluginRepository.m @@ -23,6 +23,7 @@ #import "MPPluginRepository.h" #import "MPConstants.h" #import "MPPluginRepositoryItem.h" +#import "MPSettingsHelper.h" NSString *const MPPluginRepositoryDidUpdateAvailablePluginsNotification = @"com.hicknhack.macpass.MPPluginRepositoryDidInitializeAvailablePluginsNotification"; @@ -56,7 +57,7 @@ - (instancetype)init { if(self) { _isInitialized = NO; _lastDataFetchTime = NSDate.distantPast.timeIntervalSinceReferenceDate; - [self fetchRepositoryDataCompletionHandler:^(NSArray * _Nonnull availablePlugins) { + [self _fetchAppropriateRepositoryDataCompletionHandler:^(NSArray * _Nonnull availablePlugins) { self.availablePlugins = availablePlugins; self.isInitialized = YES; }]; @@ -65,10 +66,12 @@ - (instancetype)init { } - (NSArray *)availablePlugins { - /* update cache on every read if it's older than 5 minutes */ + /* FIXME: Invalidate fetch when settings have changed! + update cache on every read if it's older than 5 minutes + */ if((NSDate.timeIntervalSinceReferenceDate - self.lastDataFetchTime) > 60*5 ) { NSLog(@"%@: updating available plugins cache.", self.className); - [self fetchRepositoryDataCompletionHandler:^(NSArray * _Nonnull availablePlugins) { + [self _fetchAppropriateRepositoryDataCompletionHandler:^(NSArray * _Nonnull availablePlugins) { self.availablePlugins = availablePlugins; }]; } @@ -87,59 +90,99 @@ - (void)setAvailablePlugins:(NSArray *)availablePlugin } } -- (void)fetchRepositoryDataCompletionHandler:(void (^)(NSArray * _Nonnull))completionHandler { +- (void)_fetchAppropriateRepositoryDataCompletionHandler:(void (^)(NSArray * _Nonnull))completionHandler { + /* dispatch the call to allow for direct return and handle result later on */ + dispatch_async(dispatch_get_main_queue(), ^{ + BOOL allowRemoteConnection = [self _askForPluginRepositoryPermission]; + if(!allowRemoteConnection) { + [self _fetchLocalFallbackRepositoryData:completionHandler]; + } + else { + [self _fetchRepositoryDataCompletionHandler:completionHandler]; + } + }); +} + +- (void)_fetchRepositoryDataCompletionHandler:(void (^)(NSArray * _Nonnull))completionHandler { NSString *urlString = NSBundle.mainBundle.infoDictionary[MPBundlePluginRepositoryURLKey]; if(!urlString) { - if(completionHandler) { - completionHandler(@[]); - } + [self _fetchLocalFallbackRepositoryData:completionHandler]; return; } NSURL *jsonURL = [NSURL URLWithString:urlString]; if(!jsonURL) { - if(completionHandler) { - completionHandler(@[]); - } + [self _fetchLocalFallbackRepositoryData:completionHandler]; return; } NSURLSessionTask *downloadTask = [NSURLSession.sharedSession dataTaskWithURL:jsonURL completionHandler:^(NSData * _Nullable jsonData, NSURLResponse * _Nullable response, NSError * _Nullable error) { if(![response isKindOfClass:NSHTTPURLResponse.class]) { - if(completionHandler) { - completionHandler(@[]); - } + [self _fetchLocalFallbackRepositoryData:completionHandler]; return; } NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response; if(httpResponse.statusCode != 200 || jsonData.length == 0) { - if(completionHandler) { - completionHandler(@[]); - } - return; - } - id jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; - if(!jsonRoot || ![jsonRoot isKindOfClass:NSArray.class]) { - if(completionHandler) { - completionHandler(@[]); - } + [self _fetchLocalFallbackRepositoryData:completionHandler]; return; } - NSMutableArray *items = [[NSMutableArray alloc] init]; - for(id item in jsonRoot) { - if(![item isKindOfClass:NSDictionary.class]) { - continue; - } - MPPluginRepositoryItem *pluginItem = [MPPluginRepositoryItem pluginItemFromDictionary:item]; - if(pluginItem.isVaid) { - [items addObject:pluginItem]; - } - } + + NSArray *items = [self _parseJSONData:jsonData]; + if(completionHandler) { completionHandler([items copy]); } }]; - [downloadTask resume]; } +- (void)_fetchLocalFallbackRepositoryData:(void (^)(NSArray * _Nonnull))completionHandler { + NSURL *jsonURL = [NSBundle.mainBundle URLForResource:@"plugins" withExtension:@"json"]; + NSData *localJsonData = [NSData dataWithContentsOfURL:jsonURL]; + if(!localJsonData) { + if(completionHandler) { + completionHandler(@[]); + } + } + NSArray *items = [self _parseJSONData:localJsonData]; + if(completionHandler) { + completionHandler(items); + } +} + +- (NSArray *)_parseJSONData:(NSData *)jsonData { + NSError *error; + id jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; + if(!jsonRoot || ![jsonRoot isKindOfClass:NSArray.class]) { + return @[]; + } + NSMutableArray *items = [[NSMutableArray alloc] init]; + for(id item in jsonRoot) { + if(![item isKindOfClass:NSDictionary.class]) { + continue; + } + MPPluginRepositoryItem *pluginItem = [MPPluginRepositoryItem pluginItemFromDictionary:item]; + if(pluginItem.isVaid) { + [items addObject:pluginItem]; + } + } + return [items copy]; +} + +- (BOOL)_askForPluginRepositoryPermission { + if(![NSUserDefaults.standardUserDefaults objectForKey:kMPSettingsKeyAllowRemoteFetchOfPluginRepository]) { + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleWarning; + alert.informativeText = NSLocalizedString(@"ALERT_ASK_FOR_PLUGIN_REPOSITORY_CONNECTION_PERMISSION_INFORMATIVE_TEXT", @"Informative text displayed on the alert that shows up when MacPass asks for permssion to download the plugin repository JSON file"); + alert.messageText = NSLocalizedString(@"ALERT_ASK_FOR_PLUGIN_REPOSITORY_CONNECTION_PERMISSION_MESSAGE", @"Message displayed on the alert that asks for permission to download the plugin repository JSON file"); + alert.showsSuppressionButton = YES; + [alert addButtonWithTitle:NSLocalizedString(@"ALERT_ASK_FOR_PLUGIN_REPOSITORY_ALLOW_DOWNLOAD", @"Allow the download of the plugin repository file")]; + [alert addButtonWithTitle:NSLocalizedString(@"ALERT_ASK_FOR_PLUGIN_REPOSITORY_DISALLOW_DOWNLOAD", @"Disallow the download of the plugin repository file")]; + NSModalResponse repsonse = [alert runModal]; + BOOL allow = (repsonse == NSAlertFirstButtonReturn); + [NSUserDefaults.standardUserDefaults setBool:allow forKey:kMPSettingsKeyAllowRemoteFetchOfPluginRepository]; + return allow; + } + return [NSUserDefaults.standardUserDefaults boolForKey:kMPSettingsKeyAllowRemoteFetchOfPluginRepository]; +} + @end diff --git a/MacPass/MPPreferencesWindowController.m b/MacPass/MPPreferencesWindowController.m index 9d296d254..1d2804189 100644 --- a/MacPass/MPPreferencesWindowController.m +++ b/MacPass/MPPreferencesWindowController.m @@ -24,10 +24,10 @@ #import "MPPreferencesTab.h" -#import "MPGeneralSettingsController.h" -#import "MPIntegrationSettingsController.h" -#import "MPWorkflowSettingsController.h" -#import "MPUpdateSettingsController.h" +#import "MPGeneralPreferencesController.h" +#import "MPIntegrationPreferencesController.h" +#import "MPWorkflowPreferencesController.h" +#import "MPUpdatePreferencesController.h" #import "MPPluginPreferencesController.h" @interface MPPreferencesWindowController () { @@ -121,14 +121,14 @@ - (void)showPreferencesTab:(MPPreferencesTab)tab { tabClass = MPPluginPreferencesController.class; break; case MPPreferencesTabUpdate: - tabClass = MPUpdateSettingsController.class; + tabClass = MPUpdatePreferencesController.class; break; case MPPreferencesTabWorkflow: - tabClass = MPWorkflowSettingsController.class; + tabClass = MPWorkflowPreferencesController.class; break; case MPPreferencesTabGeneral: default: - tabClass = MPGeneralSettingsController.class; + tabClass = MPGeneralPreferencesController.class; break; } NSString *identifier; @@ -164,10 +164,10 @@ - (void)_addSettingsTab:(id)tabController { } - (void)_setupDefaultPreferencesTabs { - NSArray *controllers = @[ [[MPGeneralSettingsController alloc] init], - [[MPIntegrationSettingsController alloc] init], - [[MPWorkflowSettingsController alloc] init], - [[MPUpdateSettingsController alloc] init], + NSArray *controllers = @[ [[MPGeneralPreferencesController alloc] init], + [[MPIntegrationPreferencesController alloc] init], + [[MPWorkflowPreferencesController alloc] init], + [[MPUpdatePreferencesController alloc] init], [[MPPluginPreferencesController alloc] init] ]; NSMutableArray *identifier = [[NSMutableArray alloc] initWithCapacity:controllers.count]; for(id controller in controllers) { diff --git a/MacPass/MPReferenceBuilderViewController.m b/MacPass/MPReferenceBuilderViewController.m index dcad0f146..864cbdc1e 100644 --- a/MacPass/MPReferenceBuilderViewController.m +++ b/MacPass/MPReferenceBuilderViewController.m @@ -37,8 +37,8 @@ - (NSString *)nibName { } - (void)viewDidLoad { - self.searchKeyPopUpButton.menu = [self _allocateAttributeItemMenu:YES withTitle:NSLocalizedString(@"SEARCH_VALUE", "")]; - self.valuePopUpButton.menu = [self _allocateAttributeItemMenu:NO withTitle:NSLocalizedString(@"OUTPUT_VALUE", "")]; + self.searchKeyPopUpButton.menu = [self _allocateAttributeItemMenu:YES withTitle:NSLocalizedString(@"SEARCH_VALUE", "Search field for references lookup")]; + self.valuePopUpButton.menu = [self _allocateAttributeItemMenu:NO withTitle:NSLocalizedString(@"OUTPUT_VALUE", "Value field for reference lookup")]; [self.searchStringTextField bind:NSValueBinding toObject:self withKeyPath:NSStringFromSelector(@selector(searchString)) options:nil]; [self _updateReferenceString]; } diff --git a/MacPass/MPSettingsHelper.h b/MacPass/MPSettingsHelper.h index e3c830aec..9c366a877 100644 --- a/MacPass/MPSettingsHelper.h +++ b/MacPass/MPSettingsHelper.h @@ -33,6 +33,7 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch; APPKIT_EXTERN NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch; APPKIT_EXTERN NSString *const kMPSettingsKeyQuitOnLastWindowClose; // Quit MacPass when the user closes the last window APPKIT_EXTERN NSString *const kMPSettingsKeyFileChangeStrategy; +APPKIT_EXTERN NSString *const kMPSettingsKeyEnableAutosave; // if set to YES MacPass support Autosaving for documents /* URL handling */ APPKIT_EXTERN NSString *const kMPSettingsKeyBrowserBundleId; @@ -67,7 +68,7 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeMatchTitle; // APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeMatchURL; // Autotype lookup includes entry URL APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeMatchHost; // Autotype lookup includes host part of entry URL APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeMatchTags; // Autotype lookup includes tags for entries -APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeHideAccessibiltyWarning; // Do not show an alert, when MacPass has no support for Autotype +APPKIT_EXTERN NSString *const kMPSettingsKeyAutotpyeHideMissingPermissionsWarning; /* Search */ APPKIT_EXTERN NSString *const kMPSettingsKeyEntrySearchFilterContext; @@ -79,12 +80,15 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyEnableQuicklookPreview; APPKIT_EXTERN NSString *const kMPSettingsKeyDoubleClickURLAction; APPKIT_EXTERN NSString *const kMPSettingsKeyDoubleClickTitleAction; APPKIT_EXTERN NSString *const kMPSettingsKeyUpdatePasswordOnTemplateEntries; +APPKIT_EXTERN NSString *const kMPSettingsKeyHideAfterCopyToClipboard; /* Plugins */ APPKIT_EXTERN NSString *const kMPSettingsKeyLoadUnsecurePlugins; // If set to YES this will load all plugins regardless of their codesignature status APPKIT_EXTERN NSString *const kMPSettingsKeyDisabledPlugins; // NSArray of bundle identifiers of disabled plugins APPKIT_EXTERN NSString *const kMPSettingsKeyLoadIncompatiblePlugins; // If set to YES incompatible plugins (no version info, marked as incompatible, etc) will be loaded regardless APPKIT_EXTERN NSString *const kMPSettingsKeyHideIncopatiblePluginsWarning; // Do not show an alert, when MacPass encounteres incompatible plugins +APPKIT_EXTERN NSString *const kMPSettingsKeyAllowRemoteFetchOfPluginRepository; // Allow the download of the plugin repository file +APPKIT_EXTERN NSString *const kMPSettingsKeyPluginHideAksForRemoveConnectionPermission; typedef NS_ENUM(NSUInteger, MPFileChangeStrategy) { MPFileChangeStrategyAsk, diff --git a/MacPass/MPSettingsHelper.m b/MacPass/MPSettingsHelper.m index 100de3254..336e001bd 100644 --- a/MacPass/MPSettingsHelper.m +++ b/MacPass/MPSettingsHelper.m @@ -34,6 +34,7 @@ NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch = @"ReopenLastDatabaseOnLaunch"; NSString *const kMPSettingsKeyQuitOnLastWindowClose = @"QuitOnLastWindowClose"; NSString *const kMPSettingsKeyFileChangeStrategy = @"FileChangeStrategy"; +NSString *const kMPSettingsKeyEnableAutosave = @"EnableAutosave"; NSString *const kMPSettingsKeyLockOnSleep = @"LockOnSleep"; NSString *const kMPSettingskeyLockOnLogout = @"LockOnLogout"; NSString *const kMPSettingsKeyIdleLockTimeOut = @"IdleLockTimeOut"; @@ -58,7 +59,7 @@ NSString *const kMPSettingsKeyAutotypeMatchURL = @"AutotypeMatchURL"; NSString *const kMPSettingsKeyAutotypeMatchHost = @"AutotypeMatchHost"; NSString *const kMPSettingsKeyAutotypeMatchTags = @"AutotypeMatchTags"; -NSString *const kMPSettingsKeyAutotypeHideAccessibiltyWarning = @"AutotypeHideAccessibiltyWarning"; +NSString *const kMPSettingsKeyAutotpyeHideMissingPermissionsWarning = @"AutotpyeHideMissingPermissionsWarning"; NSString *const kMPSettingsKeyEntrySearchFilterContext = @"EntrySearchFilterContext"; @@ -77,11 +78,13 @@ NSString *const kMPSettingsKeyDoubleClickURLAction = @"DoubleClickURLAction"; NSString *const kMPSettingsKeyDoubleClickTitleAction = @"DoubleClickTitleAction"; NSString *const kMPSettingsKeyUpdatePasswordOnTemplateEntries = @"UpdatePasswordOnTemplateEntries"; +NSString *const kMPSettingsKeyHideAfterCopyToClipboard = @"HideAfterCopyToClipboard"; NSString *const kMPSettingsKeyLoadUnsecurePlugins = @"LoadUnsecurePlugins"; NSString *const kMPSettingsKeyLoadIncompatiblePlugins = @"LoadIncompatiblePlugins"; NSString *const kMPSettingsKeyDisabledPlugins = @"DisabledPlugins"; NSString *const kMPSettingsKeyHideIncopatiblePluginsWarning = @"HideIncopatiblePluginsWarning"; +NSString *const kMPSettingsKeyAllowRemoteFetchOfPluginRepository = @"AllowRemoteFetchOfPluginRepository"; /* Deprecated */ NSString *const kMPDeprecatedSettingsKeyRememberKeyFilesForDatabases = @"kMPSettingsKeyRememberKeyFilesForDatabases"; @@ -94,7 +97,7 @@ NSString *const kMPDeprecatedSettingsKeyShowMenuItem = @"ShowMenuItem"; NSString *const kMPDeprecatedSettingsKeyDefaultPasswordRounds = @"KeyDefaultPasswordRounds"; NSString *const kMPDepricatedSettingsKeyLoadUnsecurePlugins = @"MPLoadUnsecurePlugins"; - +NSString *const kMPDepricatedSettingsKeyAutotypeHideAccessibiltyWarning = @"AutotypeHideAccessibiltyWarning"; @implementation MPSettingsHelper @@ -157,7 +160,9 @@ + (NSDictionary *)_standardDefaults { kMPSettingsKeyUpdatePasswordOnTemplateEntries: @YES, kMPSettingsKeyDisabledPlugins: @[], kMPSettingsKeyLoadIncompatiblePlugins: @NO, - kMPSettingsKeyQuitOnLastWindowClose: @NO + kMPSettingsKeyQuitOnLastWindowClose: @NO, + kMPSettingsKeyEnableAutosave: @YES, + kMPSettingsKeyHideAfterCopyToClipboard: @NO }; }); return standardDefaults; @@ -177,7 +182,8 @@ + (NSArray *)_deprecatedSettingsKeys { kMPDeprecatedSettingsKeyHttpPort, kMPDeprecatedSettingsKeyEnableHttpServer, kMPDeprecatedSettingsKeyShowMenuItem, - kMPDepricatedSettingsKeyLoadUnsecurePlugins + kMPDepricatedSettingsKeyLoadUnsecurePlugins, + kMPDepricatedSettingsKeyAutotypeHideAccessibiltyWarning ]; }); return deprecatedSettings; diff --git a/MacPass/MPToolbarButton.m b/MacPass/MPToolbarButton.m index 32b53a6b9..ae9d55140 100644 --- a/MacPass/MPToolbarButton.m +++ b/MacPass/MPToolbarButton.m @@ -30,7 +30,7 @@ - (id)initWithFrame:(NSRect)frameRect { if(self) { self.focusRingType = NSFocusRingTypeNone; self.bezelStyle = NSTexturedRoundedBezelStyle; - [self.cell setImageScaling:NSImageScaleProportionallyDown]; + ((NSButtonCell *)(self.cell)).imageScaling = NSImageScaleProportionallyDown; [self setButtonType:NSMomentaryPushInButton]; self.imagePosition = NSImageOnly; } diff --git a/MacPass/MPToolbarDelegate.m b/MacPass/MPToolbarDelegate.m index f03444c78..098ef5b08 100644 --- a/MacPass/MPToolbarDelegate.m +++ b/MacPass/MPToolbarDelegate.m @@ -111,6 +111,7 @@ - (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString item = [[MPToolbarItem alloc] initWithItemIdentifier:itemIdentifier]; NSString *itemLabel = [self _localizedLabelForToolbarItemIdentifier:itemIdentifier]; item.label = itemLabel; + item.paletteLabel = itemLabel; if([itemIdentifier isEqualToString:MPToolbarItemAction]) { NSPopUpButton *popupButton = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(0, 0, 50, 32) pullsDown:YES]; @@ -127,7 +128,7 @@ - (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString NSMenuItem *actionImageItem = [[NSMenuItem alloc] initWithTitle:@"" action:NULL keyEquivalent:@""]; actionImageItem.image = self.toolbarImages[MPToolbarItemAction]; [menu addItem:actionImageItem]; - NSArray *menuItems = [MPContextMenuHelper contextMenuItemsWithItems:MPContextMenuExtended]; + NSArray *menuItems = [MPContextMenuHelper contextMenuItemsWithItems:MPContextMenuExtended|MPContextMenuShowGroupInOutline]; for(NSMenuItem *item in menuItems) { [menu addItem:item]; } @@ -215,7 +216,7 @@ - (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar*)toolbar { } - (NSDictionary *)createToolbarImages { - NSDictionary *imageDict = @{ MPToolbarItemLock: [NSImage imageNamed:NSImageNameLockUnlockedTemplate], + NSDictionary *imageDict = @{ MPToolbarItemLock: [NSImage imageNamed:NSImageNameLockLockedTemplate], MPToolbarItemAddEntry: [MPIconHelper icon:MPIconAddEntry], MPToolbarItemAddGroup: [MPIconHelper icon:MPIconAddFolder], MPToolbarItemCopyUsername : [MPIconHelper icon:MPIconIdentity], diff --git a/MacPass/MPTouchBarButtonCreator.h b/MacPass/MPTouchBarButtonCreator.h new file mode 100644 index 000000000..ab6fbdf49 --- /dev/null +++ b/MacPass/MPTouchBarButtonCreator.h @@ -0,0 +1,40 @@ +// +// MPTouchBarButtonCreator.h +// MacPass +// +// Created by Veit-Hendrik Schlenker on 25.12.18. +// Copyright © 2018 HicknHack Software GmbH. All rights reserved. +// +#import "MPPasswordInputController.h" + +@interface MPTouchBarButtonCreator: NSObject + +APPKIT_EXTERN NSTouchBarCustomizationIdentifier MPTouchBarCustomizationIdentifierPasswordInput; +APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierChooseKeyfile; +APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierShowPassword; +APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierUnlock; + +APPKIT_EXTERN NSTouchBarCustomizationIdentifier MPTouchBarCustomizationIdentifierDocument; +APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierSearch; +APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierEditPopover; +APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierCopyUsername; +APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierCopyPassword; +APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierPerformAutotype; +APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierLock; + +APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierNewEntry; +APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierNewGroup; +APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierDelete; + + ++ (NSTouchBarItem *)touchBarButtonWithTitle:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)); + ++ (NSTouchBarItem *)touchBarButtonWithTitleAndImage:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier image:(NSImage *)image target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)); + ++ (NSTouchBarItem *)touchBarButtonWithTitleAndImageAndColor:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier image:(NSImage *)image color:(NSColor *)color target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)); + ++ (NSTouchBarItem *)touchBarButtonWithImage:(NSImage *)image identifier:(NSTouchBarItemIdentifier)identifier target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)); + ++ (NSPopoverTouchBarItem *)popoverTouchBarButton:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier popoverTouchBar:(NSTouchBar *)popoverTouchBar customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)); + +@end diff --git a/MacPass/MPTouchBarButtonCreator.m b/MacPass/MPTouchBarButtonCreator.m new file mode 100644 index 000000000..06cdeb579 --- /dev/null +++ b/MacPass/MPTouchBarButtonCreator.m @@ -0,0 +1,68 @@ +// +// MPTouchBarButtonCreator.m +// MacPass +// +// Created by Veit-Hendrik Schlenker on 25.12.18. +// Copyright © 2018 HicknHack Software GmbH. All rights reserved. +// + +#import "MPTouchBarButtonCreator.h" + +NSTouchBarCustomizationIdentifier MPTouchBarCustomizationIdentifierPasswordInput = @"com.hicknhacksoftware.MacPass.TouchBar.passwordInput"; +NSTouchBarItemIdentifier MPTouchBarItemIdentifierChooseKeyfile = @"com.hicknhacksoftware.MacPass.TouchBar.passwordInput.chooseKeyfile"; +NSTouchBarItemIdentifier MPTouchBarItemIdentifierShowPassword = @"com.hicknhacksoftware.MacPass.TouchBar.passwordInput.showPassword"; +NSTouchBarItemIdentifier MPTouchBarItemIdentifierUnlock = @"com.hicknhacksoftware.MacPass.TouchBar.passwordInput.unlock"; + +NSTouchBarCustomizationIdentifier MPTouchBarCustomizationIdentifierDocument = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow"; +NSTouchBarItemIdentifier MPTouchBarItemIdentifierSearch = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.search"; +NSTouchBarItemIdentifier MPTouchBarItemIdentifierEditPopover = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.editPopover"; +NSTouchBarItemIdentifier MPTouchBarItemIdentifierCopyUsername = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.copyUsername"; +NSTouchBarItemIdentifier MPTouchBarItemIdentifierCopyPassword = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.copyPassword"; +NSTouchBarItemIdentifier MPTouchBarItemIdentifierPerformAutotype = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.performAutotype"; +NSTouchBarItemIdentifier MPTouchBarItemIdentifierLock = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.lock"; + +NSTouchBarItemIdentifier MPTouchBarItemIdentifierNewEntry = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.newEntry"; +NSTouchBarItemIdentifier MPTouchBarItemIdentifierNewGroup = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.newGroup"; +NSTouchBarItemIdentifier MPTouchBarItemIdentifierDelete = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.delete"; + + +@implementation MPTouchBarButtonCreator + ++ (NSTouchBarItem *)touchBarButtonWithTitle:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)){ + NSCustomTouchBarItem *item = [[NSCustomTouchBarItem alloc] initWithIdentifier:identifier]; + NSButton *button = [NSButton buttonWithTitle:title target:target action:selector]; + item.view = button; + item.customizationLabel = customizationLabel; + return item; +} + ++ (NSTouchBarItem *)touchBarButtonWithTitleAndImage:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier image:(NSImage *)image target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)){ + return [self touchBarButtonWithTitleAndImageAndColor:title identifier:identifier image:image color:nil target:target selector:selector customizationLabel:customizationLabel]; +} + ++ (NSTouchBarItem *)touchBarButtonWithTitleAndImageAndColor:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier image:(NSImage *)image color:(NSColor *)color target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)){ + NSCustomTouchBarItem *item = [[NSCustomTouchBarItem alloc] initWithIdentifier:identifier]; + NSButton *button = [NSButton buttonWithTitle:title image:image target:target action:selector]; + button.bezelColor = color; + item.view = button; + item.customizationLabel = customizationLabel; + return item; +} + ++ (NSTouchBarItem *)touchBarButtonWithImage:(NSImage *)image identifier:(NSTouchBarItemIdentifier)identifier target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)){ + NSCustomTouchBarItem *item = [[NSCustomTouchBarItem alloc] initWithIdentifier:identifier]; + NSButton *button = [NSButton buttonWithImage:image target:target action:selector]; + item.view = button; + item.customizationLabel = customizationLabel; + return item; +} + ++ (NSPopoverTouchBarItem *)popoverTouchBarButton:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier popoverTouchBar:(NSTouchBar *)popoverTouchBar customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)){ + NSPopoverTouchBarItem *item = [[NSPopoverTouchBarItem alloc] initWithIdentifier:identifier]; + item.collapsedRepresentationLabel = title; + item.popoverTouchBar = popoverTouchBar; + item.customizationLabel = customizationLabel; + return item; +} + +@end diff --git a/MacPass/MPTreeDelegate.m b/MacPass/MPTreeDelegate.m index 7a373eedc..d35b640d9 100644 --- a/MacPass/MPTreeDelegate.m +++ b/MacPass/MPTreeDelegate.m @@ -99,10 +99,9 @@ - (NSString *)tree:(KPKTree *)tree resolvePickFieldPlaceholderForEntry:(KPKEntry return (response == NSModalResponseOK) ? pickFieldViewController.pickedValue : @""; } -- (NSString *)tree:(KPKTree *)tree resolvePickCharsPlaceholderForEntry:(KPKEntry *)entry field:(NSString *)field options:(NSString *)options { - NSString *value = [[entry valueForAttributeWithKey:field] kpk_finalValueForEntry:entry]; +- (NSString *)tree:(KPKTree *)tree resolvePickCharsPlaceholderForValue:(NSString *)value options:(NSString *)options { if(value.length == 0) { - return @""; // error while retrieving source value + return @""; } MPPickcharsParser *parser = [[MPPickcharsParser alloc] initWithOptions:options]; MPPickcharsViewController *pickCharViewController = [[MPPickcharsViewController alloc] init]; diff --git a/MacPass/MPUpdateSettingsController.h b/MacPass/MPUpdatePreferencesController.h similarity index 91% rename from MacPass/MPUpdateSettingsController.h rename to MacPass/MPUpdatePreferencesController.h index 41e1cc4dd..305f4b267 100644 --- a/MacPass/MPUpdateSettingsController.h +++ b/MacPass/MPUpdatePreferencesController.h @@ -23,6 +23,6 @@ #import "MPViewController.h" #import "MPPreferencesTab.h" -@interface MPUpdateSettingsController : MPViewController +@interface MPUpdatePreferencesController : MPViewController @end diff --git a/MacPass/MPUpdateSettingsController.m b/MacPass/MPUpdatePreferencesController.m similarity index 87% rename from MacPass/MPUpdateSettingsController.m rename to MacPass/MPUpdatePreferencesController.m index 6e413f170..9a1c9c1ee 100644 --- a/MacPass/MPUpdateSettingsController.m +++ b/MacPass/MPUpdatePreferencesController.m @@ -20,23 +20,23 @@ // along with this program. If not, see . // -#import "MPUpdateSettingsController.h" +#import "MPUpdatePreferencesController.h" #import -@interface MPUpdateSettingsController () +@interface MPUpdatePreferencesController () @property (weak) IBOutlet NSButton *automaticallyCheckForUpdatesCheckButton; @property (weak) IBOutlet NSPopUpButton *checkIntervallPopupButton; @end -@implementation MPUpdateSettingsController +@implementation MPUpdatePreferencesController - (NSString *)nibName { - return @"UpdateSettings"; + return @"UpdatePreferences"; } - (NSString *)identifier { - return @"UpdateSettings"; + return @"UpdatePreferences"; } - (NSImage *)image { @@ -44,7 +44,7 @@ - (NSImage *)image { } - (NSString *)label { - return NSLocalizedString(@"UPDATE_SETTINGS", @"Update Settings Label"); + return NSLocalizedString(@"UPDATE_PREFERENCES", @"Update Settings Label"); } - (void)awakeFromNib { diff --git a/MacPass/MPUserNotificationCenterDelegate.h b/MacPass/MPUserNotificationCenterDelegate.h index 0eadfd6b7..f1c6b6497 100644 --- a/MacPass/MPUserNotificationCenterDelegate.h +++ b/MacPass/MPUserNotificationCenterDelegate.h @@ -25,7 +25,7 @@ FOUNDATION_EXTERN NSString *const MPUserNotificationTypeKey; FOUNDATION_EXTERN NSString *const MPUserNotificationTypeAutotypeFeedback; FOUNDATION_EXTERN NSString *const MPUserNotificationTypeAutotypeOpenDocumentRequest; -FOUNDATION_EXTERN NSString *const MPUserNotificationTypeShowAccessibiltyPreferences; +FOUNDATION_EXTERN NSString *const MPUserNotificationTypeRunAutotypeDoctor; @interface MPUserNotificationCenterDelegate : NSObject diff --git a/MacPass/MPUserNotificationCenterDelegate.m b/MacPass/MPUserNotificationCenterDelegate.m index 307276bd7..be3de3561 100644 --- a/MacPass/MPUserNotificationCenterDelegate.m +++ b/MacPass/MPUserNotificationCenterDelegate.m @@ -22,12 +22,12 @@ #import "MPUserNotificationCenterDelegate.h" #import "MPDocumentController.h" -#import "MPAutotypeDaemon.h" +#import "MPAutotypeDoctor.h" NSString *const MPUserNotificationTypeKey = @"MPUserNotificationTypeKey"; NSString *const MPUserNotificationTypeAutotypeFeedback = @"MPUserNotificationTypeAutotypeFeedback"; NSString *const MPUserNotificationTypeAutotypeOpenDocumentRequest = @"MPUserNotificationTypeAutotypeOpenDocumentRequest"; -NSString *const MPUserNotificationTypeShowAccessibiltyPreferences = @"MPUserNotificationTypeShowAccessibiltyPreferences"; +NSString *const MPUserNotificationTypeRunAutotypeDoctor = @"MPUserNotificationTypeRunAutotypeDoctor"; @implementation MPUserNotificationCenterDelegate @@ -45,8 +45,8 @@ - (void)userNotificationCenter:(NSUserNotificationCenter *)center didActivateNot if([notificationType isEqualToString:MPUserNotificationTypeAutotypeOpenDocumentRequest]) { [((MPDocumentController*)NSDocumentController.sharedDocumentController) reopenLastDocument]; } - else if([notificationType isEqualToString:MPUserNotificationTypeShowAccessibiltyPreferences]) { - [MPAutotypeDaemon.defaultDaemon openAccessibiltyPreferences]; + else if([notificationType isEqualToString:MPUserNotificationTypeRunAutotypeDoctor]) { + [MPAutotypeDoctor.defaultDoctor runChecksAndPresentResults]; } } @@ -55,7 +55,7 @@ - (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentN if([notificationType isEqualToString:MPUserNotificationTypeAutotypeFeedback]) { return YES; } - if([notificationType isEqualToString:MPUserNotificationTypeShowAccessibiltyPreferences]) { + if([notificationType isEqualToString:MPUserNotificationTypeRunAutotypeDoctor]) { return YES; } return NO; diff --git a/MacPass/MPWorkflowSettingsController.h b/MacPass/MPWorkflowPreferencesController.h similarity index 69% rename from MacPass/MPWorkflowSettingsController.h rename to MacPass/MPWorkflowPreferencesController.h index 50b6b5a6d..ff8a19cad 100644 --- a/MacPass/MPWorkflowSettingsController.h +++ b/MacPass/MPWorkflowPreferencesController.h @@ -23,12 +23,13 @@ #import "MPViewController.h" #import "MPPreferencesTab.h" -@interface MPWorkflowSettingsController : MPViewController +@interface MPWorkflowPreferencesController : MPViewController -@property (weak) IBOutlet NSPopUpButton *browserPopup; -@property (weak) IBOutlet NSPopUpButton *doubleClickURLPopup; -@property (weak) IBOutlet NSPopUpButton *doubleClickTitlePopup; -@property (weak) IBOutlet NSButton *updatePasswordOnTemplateEntriesCheckButton; +@property (strong) IBOutlet NSPopUpButton *browserPopup; +@property (strong) IBOutlet NSPopUpButton *doubleClickURLPopup; +@property (strong) IBOutlet NSPopUpButton *doubleClickTitlePopup; +@property (strong) IBOutlet NSButton *updatePasswordOnTemplateEntriesCheckButton; +@property (strong) IBOutlet NSButton *hideAfterCopyToClipboardCheckButton; - (IBAction)_showCustomBrowserSelection:(id)sender; diff --git a/MacPass/MPWorkflowSettingsController.m b/MacPass/MPWorkflowPreferencesController.m similarity index 94% rename from MacPass/MPWorkflowSettingsController.m rename to MacPass/MPWorkflowPreferencesController.m index 36ef57937..09d133025 100644 --- a/MacPass/MPWorkflowSettingsController.m +++ b/MacPass/MPWorkflowPreferencesController.m @@ -20,18 +20,18 @@ // along with this program. If not, see . // -#import "MPWorkflowSettingsController.h" +#import "MPWorkflowPreferencesController.h" #import "MPSettingsHelper.h" -@interface MPWorkflowSettingsController () +@interface MPWorkflowPreferencesController () @end -@implementation MPWorkflowSettingsController +@implementation MPWorkflowPreferencesController - (NSString *)nibName { - return @"WorkflowSettings"; + return @"WorkflowPreferences"; } - (void)viewDidLoad { @@ -40,6 +40,7 @@ - (void)viewDidLoad { [self.doubleClickURLPopup bind:NSSelectedIndexBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyDoubleClickURLAction] options:nil]; [self.doubleClickTitlePopup bind:NSSelectedIndexBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyDoubleClickTitleAction] options:nil]; [self.updatePasswordOnTemplateEntriesCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyUpdatePasswordOnTemplateEntries] options:nil]; + [self.hideAfterCopyToClipboardCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyHideAfterCopyToClipboard] options:nil]; [self _updateBrowserSelection]; } diff --git a/MacPass/MacPass-Info.plist b/MacPass/MacPass-Info.plist index c1a050721..20edb8a23 100644 --- a/MacPass/MacPass-Info.plist +++ b/MacPass/MacPass-Info.plist @@ -69,6 +69,8 @@ https://github.com/MacPass/MacPass MPPluginRepositoryURL https://macpassapp.org/data/plugins.json + NSAppleEventsUsageDescription + MacPass might use AppleEvents to perform Autotype functionality NSHumanReadableCopyright Copyright © 2012-2019 HicknHack Software GmbH. All rights reserved. NSMainNibFile @@ -90,6 +92,8 @@ UTTypeDescription KDBX Database + UTTypeIconFile + FileTypeIcon UTTypeIdentifier com.hicknhack.macpass.kdbx UTTypeTagSpecification @@ -107,6 +111,8 @@ UTTypeDescription KDB Database + UTTypeIconFile + FileTypeIcon UTTypeIdentifier com.hicknhack.macpass.kdb UTTypeTagSpecification diff --git a/MacPass/NSApplication+MPAdditions.h b/MacPass/NSApplication+MPAdditions.h index 2f7a1c9a7..f5c86482e 100644 --- a/MacPass/NSApplication+MPAdditions.h +++ b/MacPass/NSApplication+MPAdditions.h @@ -31,6 +31,7 @@ NS_ASSUME_NONNULL_BEGIN @property (copy, readonly) NSString *applicationName; @property (copy, readonly, nullable) NSURL *applicationSupportDirectoryURL; @property (nullable, readonly, weak) MPAppDelegate *mp_delegate; +@property (readonly, nonatomic) BOOL isRunningTests; - (NSURL *_Nullable)applicationSupportDirectoryURL:(BOOL)create; - (void)relaunchAfterDelay:(CGFloat)seconds; diff --git a/MacPass/NSApplication+MPAdditions.m b/MacPass/NSApplication+MPAdditions.m index c9cc6915c..0970cbdfc 100644 --- a/MacPass/NSApplication+MPAdditions.m +++ b/MacPass/NSApplication+MPAdditions.m @@ -66,4 +66,13 @@ - (MPAppDelegate *)mp_delegate { return (MPAppDelegate *)self.delegate; } +- (BOOL)isRunningTests { + NSProcessInfo *processInfo = [NSProcessInfo processInfo]; + NSString *testEnv = processInfo.environment[@"MPIsRunningTests"]; + if(testEnv) { + return [testEnv isEqualToString:@"YES"]; + } + return NO; +} + @end diff --git a/MacPass/NSError+Messages.h b/MacPass/NSError+Messages.h index a7d2cbdfe..30e4c0280 100644 --- a/MacPass/NSError+Messages.h +++ b/MacPass/NSError+Messages.h @@ -22,16 +22,20 @@ #import -FOUNDATION_EXPORT NSString *const MPErrorDomain; +FOUNDATION_EXPORT NSString *const MPDefaultErrorDomain; +FOUNDATION_EXPORT NSString *const MPAutotypeErrorDomain; typedef NS_ENUM(NSInteger, MPErrorCodes) { MPErrorNoPasswordOrKeyFile = 10000, - MPErrorInvalidPlugin + MPErrorInvalidPlugin, + MPErrorAutotypeIsMissingAccessibiltyPermissions, + MPErrorAutotypeIsMissingScreenRecordingPermissions }; @interface NSError (Messages) + (NSError *)errorWithCode:(NSInteger)code description:(NSString *)description; ++ (NSError *)errorInDomain:(NSString *)domain withCode:(NSInteger)code description:(NSString *)description; @property (nonatomic, readonly, copy) NSString *descriptionForErrorCode; diff --git a/MacPass/NSError+Messages.m b/MacPass/NSError+Messages.m index 22fade7d1..bfbed7940 100644 --- a/MacPass/NSError+Messages.m +++ b/MacPass/NSError+Messages.m @@ -22,7 +22,8 @@ #import "NSError+Messages.h" -NSString *const MPErrorDomain = @"com.hicknhack.macpass.error"; +NSString *const MPDefaultErrorDomain = @"com.hicknhack.macpass.error"; +NSString *const MPAutotypeErrorDomain = @"com.hicknhack.macpass.error.autotype"; @implementation NSError (Messages) @@ -30,7 +31,12 @@ - (NSString *)descriptionForErrorCode { return [NSString stringWithFormat:@"%@ (%ld)", self.localizedDescription, self.code ]; } ++ (NSError *)errorInDomain:(NSString *)domain withCode:(NSInteger)code description:(NSString *)description { + return [[NSError alloc] initWithDomain:domain code:code userInfo:@{ NSLocalizedDescriptionKey: description }]; +} + + (NSError *)errorWithCode:(NSInteger)code description:(NSString *)description { - return [[NSError alloc] initWithDomain:MPErrorDomain code:code userInfo:@{ NSLocalizedDescriptionKey: description }]; + return [NSError errorInDomain:MPDefaultErrorDomain withCode:code description:description]; + } @end diff --git a/MacPass/NSTextView+MPTouchBarExtension.h b/MacPass/NSTextView+MPTouchBarExtension.h new file mode 100644 index 000000000..5b604ec73 --- /dev/null +++ b/MacPass/NSTextView+MPTouchBarExtension.h @@ -0,0 +1,13 @@ +// +// NSTextView+MPNSTextView_TouchBarExtension_h.h +// MacPass +// +// Created by Veit-Hendrik Schlenker on 23.12.18. +// Copyright © 2018 HicknHack Software GmbH. All rights reserved. +// + +#import + +@interface NSTextView (TouchBarExtension) + +@end diff --git a/MacPass/NSTextView+MPTouchBarExtension.m b/MacPass/NSTextView+MPTouchBarExtension.m new file mode 100644 index 000000000..d85c67bdb --- /dev/null +++ b/MacPass/NSTextView+MPTouchBarExtension.m @@ -0,0 +1,17 @@ +// +// MP.m +// MacPass +// +// Created by Veit-Hendrik Schlenker on 23.12.18. +// Copyright © 2018 HicknHack Software GmbH. All rights reserved. +// + +#import "NSTextView+MPTouchBarExtension.h" + +@implementation NSTextView (TouchBarExtension) + +- (NSTouchBar *) makeTouchBar { + return [self.window makeTouchBar]; +} + +@end diff --git a/MacPass/Icons/00_PasswordTemplate.pdf b/MacPass/Resources/Icons/00_PasswordTemplate.pdf similarity index 100% rename from MacPass/Icons/00_PasswordTemplate.pdf rename to MacPass/Resources/Icons/00_PasswordTemplate.pdf diff --git a/MacPass/Icons/01_PackageNetworkTemplate.pdf b/MacPass/Resources/Icons/01_PackageNetworkTemplate.pdf similarity index 100% rename from MacPass/Icons/01_PackageNetworkTemplate.pdf rename to MacPass/Resources/Icons/01_PackageNetworkTemplate.pdf diff --git a/MacPass/Icons/02_MessageBoxWarningTemplate.pdf b/MacPass/Resources/Icons/02_MessageBoxWarningTemplate.pdf similarity index 100% rename from MacPass/Icons/02_MessageBoxWarningTemplate.pdf rename to MacPass/Resources/Icons/02_MessageBoxWarningTemplate.pdf diff --git a/MacPass/Icons/03_ServerTemplate.pdf b/MacPass/Resources/Icons/03_ServerTemplate.pdf similarity index 100% rename from MacPass/Icons/03_ServerTemplate.pdf rename to MacPass/Resources/Icons/03_ServerTemplate.pdf diff --git a/MacPass/Icons/04_KlipperTemplate.pdf b/MacPass/Resources/Icons/04_KlipperTemplate.pdf similarity index 100% rename from MacPass/Icons/04_KlipperTemplate.pdf rename to MacPass/Resources/Icons/04_KlipperTemplate.pdf diff --git a/MacPass/Icons/05_LanguagesTemplate.pdf b/MacPass/Resources/Icons/05_LanguagesTemplate.pdf similarity index 100% rename from MacPass/Icons/05_LanguagesTemplate.pdf rename to MacPass/Resources/Icons/05_LanguagesTemplate.pdf diff --git a/MacPass/Icons/06_BlockDeviceTemplate.pdf b/MacPass/Resources/Icons/06_BlockDeviceTemplate.pdf similarity index 100% rename from MacPass/Icons/06_BlockDeviceTemplate.pdf rename to MacPass/Resources/Icons/06_BlockDeviceTemplate.pdf diff --git a/MacPass/Icons/07_NotepadTemplate.pdf b/MacPass/Resources/Icons/07_NotepadTemplate.pdf similarity index 100% rename from MacPass/Icons/07_NotepadTemplate.pdf rename to MacPass/Resources/Icons/07_NotepadTemplate.pdf diff --git a/MacPass/Icons/08_SocketTemplate.pdf b/MacPass/Resources/Icons/08_SocketTemplate.pdf similarity index 100% rename from MacPass/Icons/08_SocketTemplate.pdf rename to MacPass/Resources/Icons/08_SocketTemplate.pdf diff --git a/MacPass/Icons/09_IdentityTemplate.pdf b/MacPass/Resources/Icons/09_IdentityTemplate.pdf similarity index 100% rename from MacPass/Icons/09_IdentityTemplate.pdf rename to MacPass/Resources/Icons/09_IdentityTemplate.pdf diff --git a/MacPass/Icons/100.pdf b/MacPass/Resources/Icons/100.pdf similarity index 100% rename from MacPass/Icons/100.pdf rename to MacPass/Resources/Icons/100.pdf diff --git a/MacPass/Icons/10_ContactTemplate.pdf b/MacPass/Resources/Icons/10_ContactTemplate.pdf similarity index 100% rename from MacPass/Icons/10_ContactTemplate.pdf rename to MacPass/Resources/Icons/10_ContactTemplate.pdf diff --git a/MacPass/Icons/11_CameraTemplate.pdf b/MacPass/Resources/Icons/11_CameraTemplate.pdf similarity index 100% rename from MacPass/Icons/11_CameraTemplate.pdf rename to MacPass/Resources/Icons/11_CameraTemplate.pdf diff --git a/MacPass/Icons/12_RemoteTemplate.pdf b/MacPass/Resources/Icons/12_RemoteTemplate.pdf similarity index 100% rename from MacPass/Icons/12_RemoteTemplate.pdf rename to MacPass/Resources/Icons/12_RemoteTemplate.pdf diff --git a/MacPass/Icons/13_KeysTemplate.pdf b/MacPass/Resources/Icons/13_KeysTemplate.pdf similarity index 100% rename from MacPass/Icons/13_KeysTemplate.pdf rename to MacPass/Resources/Icons/13_KeysTemplate.pdf diff --git a/MacPass/Icons/14_BatteryTemplate.pdf b/MacPass/Resources/Icons/14_BatteryTemplate.pdf similarity index 100% rename from MacPass/Icons/14_BatteryTemplate.pdf rename to MacPass/Resources/Icons/14_BatteryTemplate.pdf diff --git a/MacPass/Icons/15_ScannerTemplate.pdf b/MacPass/Resources/Icons/15_ScannerTemplate.pdf similarity index 100% rename from MacPass/Icons/15_ScannerTemplate.pdf rename to MacPass/Resources/Icons/15_ScannerTemplate.pdf diff --git a/MacPass/Icons/16_BrowserTemplate.pdf b/MacPass/Resources/Icons/16_BrowserTemplate.pdf similarity index 100% rename from MacPass/Icons/16_BrowserTemplate.pdf rename to MacPass/Resources/Icons/16_BrowserTemplate.pdf diff --git a/MacPass/Icons/17_CDRomTemplate.pdf b/MacPass/Resources/Icons/17_CDRomTemplate.pdf similarity index 100% rename from MacPass/Icons/17_CDRomTemplate.pdf rename to MacPass/Resources/Icons/17_CDRomTemplate.pdf diff --git a/MacPass/Icons/18_DisplayTemplate.pdf b/MacPass/Resources/Icons/18_DisplayTemplate.pdf similarity index 100% rename from MacPass/Icons/18_DisplayTemplate.pdf rename to MacPass/Resources/Icons/18_DisplayTemplate.pdf diff --git a/MacPass/Icons/19_EmailTemplate.pdf b/MacPass/Resources/Icons/19_EmailTemplate.pdf similarity index 100% rename from MacPass/Icons/19_EmailTemplate.pdf rename to MacPass/Resources/Icons/19_EmailTemplate.pdf diff --git a/MacPass/Icons/20_MiscTemplate.pdf b/MacPass/Resources/Icons/20_MiscTemplate.pdf similarity index 100% rename from MacPass/Icons/20_MiscTemplate.pdf rename to MacPass/Resources/Icons/20_MiscTemplate.pdf diff --git a/MacPass/Icons/21_OrganizerTemplate.pdf b/MacPass/Resources/Icons/21_OrganizerTemplate.pdf similarity index 100% rename from MacPass/Icons/21_OrganizerTemplate.pdf rename to MacPass/Resources/Icons/21_OrganizerTemplate.pdf diff --git a/MacPass/Icons/22_ASCIITemplate.pdf b/MacPass/Resources/Icons/22_ASCIITemplate.pdf similarity index 100% rename from MacPass/Icons/22_ASCIITemplate.pdf rename to MacPass/Resources/Icons/22_ASCIITemplate.pdf diff --git a/MacPass/Icons/23_IconsTemplate.pdf b/MacPass/Resources/Icons/23_IconsTemplate.pdf similarity index 100% rename from MacPass/Icons/23_IconsTemplate.pdf rename to MacPass/Resources/Icons/23_IconsTemplate.pdf diff --git a/MacPass/Icons/24_EstablishedConnectionTemplate.pdf b/MacPass/Resources/Icons/24_EstablishedConnectionTemplate.pdf similarity index 100% rename from MacPass/Icons/24_EstablishedConnectionTemplate.pdf rename to MacPass/Resources/Icons/24_EstablishedConnectionTemplate.pdf diff --git a/MacPass/Icons/25_MailFolderTemplate.pdf b/MacPass/Resources/Icons/25_MailFolderTemplate.pdf similarity index 100% rename from MacPass/Icons/25_MailFolderTemplate.pdf rename to MacPass/Resources/Icons/25_MailFolderTemplate.pdf diff --git a/MacPass/Icons/26_FileSaveTemplate.pdf b/MacPass/Resources/Icons/26_FileSaveTemplate.pdf similarity index 100% rename from MacPass/Icons/26_FileSaveTemplate.pdf rename to MacPass/Resources/Icons/26_FileSaveTemplate.pdf diff --git a/MacPass/Icons/27_NFSUnmountTemplate.pdf b/MacPass/Resources/Icons/27_NFSUnmountTemplate.pdf similarity index 100% rename from MacPass/Icons/27_NFSUnmountTemplate.pdf rename to MacPass/Resources/Icons/27_NFSUnmountTemplate.pdf diff --git a/MacPass/Icons/28_QuickTimeTemplate.pdf b/MacPass/Resources/Icons/28_QuickTimeTemplate.pdf similarity index 100% rename from MacPass/Icons/28_QuickTimeTemplate.pdf rename to MacPass/Resources/Icons/28_QuickTimeTemplate.pdf diff --git a/MacPass/Icons/29_SecureTerminalTemplate.pdf b/MacPass/Resources/Icons/29_SecureTerminalTemplate.pdf similarity index 100% rename from MacPass/Icons/29_SecureTerminalTemplate.pdf rename to MacPass/Resources/Icons/29_SecureTerminalTemplate.pdf diff --git a/MacPass/Icons/30_TerminalTemplate.pdf b/MacPass/Resources/Icons/30_TerminalTemplate.pdf similarity index 100% rename from MacPass/Icons/30_TerminalTemplate.pdf rename to MacPass/Resources/Icons/30_TerminalTemplate.pdf diff --git a/MacPass/Icons/31_PrintTemplate.pdf b/MacPass/Resources/Icons/31_PrintTemplate.pdf similarity index 100% rename from MacPass/Icons/31_PrintTemplate.pdf rename to MacPass/Resources/Icons/31_PrintTemplate.pdf diff --git a/MacPass/Icons/32_FileSystemViewTemplate.pdf b/MacPass/Resources/Icons/32_FileSystemViewTemplate.pdf similarity index 100% rename from MacPass/Icons/32_FileSystemViewTemplate.pdf rename to MacPass/Resources/Icons/32_FileSystemViewTemplate.pdf diff --git a/MacPass/Icons/33_RunTemplate.pdf b/MacPass/Resources/Icons/33_RunTemplate.pdf similarity index 100% rename from MacPass/Icons/33_RunTemplate.pdf rename to MacPass/Resources/Icons/33_RunTemplate.pdf diff --git a/MacPass/Icons/34_ConfigureTemplate.pdf b/MacPass/Resources/Icons/34_ConfigureTemplate.pdf similarity index 100% rename from MacPass/Icons/34_ConfigureTemplate.pdf rename to MacPass/Resources/Icons/34_ConfigureTemplate.pdf diff --git a/MacPass/Icons/35_BrowserWindowTemplate.pdf b/MacPass/Resources/Icons/35_BrowserWindowTemplate.pdf similarity index 100% rename from MacPass/Icons/35_BrowserWindowTemplate.pdf rename to MacPass/Resources/Icons/35_BrowserWindowTemplate.pdf diff --git a/MacPass/Icons/36_ArchiveTemplate.pdf b/MacPass/Resources/Icons/36_ArchiveTemplate.pdf similarity index 100% rename from MacPass/Icons/36_ArchiveTemplate.pdf rename to MacPass/Resources/Icons/36_ArchiveTemplate.pdf diff --git a/MacPass/Icons/37_PercentageTemplate.pdf b/MacPass/Resources/Icons/37_PercentageTemplate.pdf similarity index 100% rename from MacPass/Icons/37_PercentageTemplate.pdf rename to MacPass/Resources/Icons/37_PercentageTemplate.pdf diff --git a/MacPass/Icons/38_SambaUnmountTemplate.pdf b/MacPass/Resources/Icons/38_SambaUnmountTemplate.pdf similarity index 100% rename from MacPass/Icons/38_SambaUnmountTemplate.pdf rename to MacPass/Resources/Icons/38_SambaUnmountTemplate.pdf diff --git a/MacPass/Icons/39_HistoryTemplate.pdf b/MacPass/Resources/Icons/39_HistoryTemplate.pdf similarity index 100% rename from MacPass/Icons/39_HistoryTemplate.pdf rename to MacPass/Resources/Icons/39_HistoryTemplate.pdf diff --git a/MacPass/Icons/40_FindMailTemplate.pdf b/MacPass/Resources/Icons/40_FindMailTemplate.pdf similarity index 100% rename from MacPass/Icons/40_FindMailTemplate.pdf rename to MacPass/Resources/Icons/40_FindMailTemplate.pdf diff --git a/MacPass/Icons/41_VectorTemplate.pdf b/MacPass/Resources/Icons/41_VectorTemplate.pdf similarity index 100% rename from MacPass/Icons/41_VectorTemplate.pdf rename to MacPass/Resources/Icons/41_VectorTemplate.pdf diff --git a/MacPass/Icons/42_MemoryTemplate.pdf b/MacPass/Resources/Icons/42_MemoryTemplate.pdf similarity index 100% rename from MacPass/Icons/42_MemoryTemplate.pdf rename to MacPass/Resources/Icons/42_MemoryTemplate.pdf diff --git a/MacPass/Icons/43_TrashTemplate.pdf b/MacPass/Resources/Icons/43_TrashTemplate.pdf similarity index 100% rename from MacPass/Icons/43_TrashTemplate.pdf rename to MacPass/Resources/Icons/43_TrashTemplate.pdf diff --git a/MacPass/Icons/44_NotesTemplate.pdf b/MacPass/Resources/Icons/44_NotesTemplate.pdf similarity index 100% rename from MacPass/Icons/44_NotesTemplate.pdf rename to MacPass/Resources/Icons/44_NotesTemplate.pdf diff --git a/MacPass/Icons/45_CancelTemplate.pdf b/MacPass/Resources/Icons/45_CancelTemplate.pdf similarity index 100% rename from MacPass/Icons/45_CancelTemplate.pdf rename to MacPass/Resources/Icons/45_CancelTemplate.pdf diff --git a/MacPass/Icons/46_HelpTemplate.pdf b/MacPass/Resources/Icons/46_HelpTemplate.pdf similarity index 100% rename from MacPass/Icons/46_HelpTemplate.pdf rename to MacPass/Resources/Icons/46_HelpTemplate.pdf diff --git a/MacPass/Icons/47_PackageTemplate.pdf b/MacPass/Resources/Icons/47_PackageTemplate.pdf similarity index 100% rename from MacPass/Icons/47_PackageTemplate.pdf rename to MacPass/Resources/Icons/47_PackageTemplate.pdf diff --git a/MacPass/Icons/48_FolderTemplate.pdf b/MacPass/Resources/Icons/48_FolderTemplate.pdf similarity index 100% rename from MacPass/Icons/48_FolderTemplate.pdf rename to MacPass/Resources/Icons/48_FolderTemplate.pdf diff --git a/MacPass/Icons/49_FolderOpenTemplate.pdf b/MacPass/Resources/Icons/49_FolderOpenTemplate.pdf similarity index 100% rename from MacPass/Icons/49_FolderOpenTemplate.pdf rename to MacPass/Resources/Icons/49_FolderOpenTemplate.pdf diff --git a/MacPass/Icons/50_FolderTarTemplate.pdf b/MacPass/Resources/Icons/50_FolderTarTemplate.pdf similarity index 100% rename from MacPass/Icons/50_FolderTarTemplate.pdf rename to MacPass/Resources/Icons/50_FolderTarTemplate.pdf diff --git a/MacPass/Icons/51_DecryptedTemplate.pdf b/MacPass/Resources/Icons/51_DecryptedTemplate.pdf similarity index 100% rename from MacPass/Icons/51_DecryptedTemplate.pdf rename to MacPass/Resources/Icons/51_DecryptedTemplate.pdf diff --git a/MacPass/Icons/52_EncryptedTemplate.pdf b/MacPass/Resources/Icons/52_EncryptedTemplate.pdf similarity index 100% rename from MacPass/Icons/52_EncryptedTemplate.pdf rename to MacPass/Resources/Icons/52_EncryptedTemplate.pdf diff --git a/MacPass/Icons/53_ApplyTemplate.pdf b/MacPass/Resources/Icons/53_ApplyTemplate.pdf similarity index 100% rename from MacPass/Icons/53_ApplyTemplate.pdf rename to MacPass/Resources/Icons/53_ApplyTemplate.pdf diff --git a/MacPass/Icons/54_SignatureTemplate.pdf b/MacPass/Resources/Icons/54_SignatureTemplate.pdf similarity index 100% rename from MacPass/Icons/54_SignatureTemplate.pdf rename to MacPass/Resources/Icons/54_SignatureTemplate.pdf diff --git a/MacPass/Icons/55_ThumbnailTemplate.pdf b/MacPass/Resources/Icons/55_ThumbnailTemplate.pdf similarity index 100% rename from MacPass/Icons/55_ThumbnailTemplate.pdf rename to MacPass/Resources/Icons/55_ThumbnailTemplate.pdf diff --git a/MacPass/Icons/56_AddressBookTemplate.pdf b/MacPass/Resources/Icons/56_AddressBookTemplate.pdf similarity index 100% rename from MacPass/Icons/56_AddressBookTemplate.pdf rename to MacPass/Resources/Icons/56_AddressBookTemplate.pdf diff --git a/MacPass/Icons/57_TextViewTemplate.pdf b/MacPass/Resources/Icons/57_TextViewTemplate.pdf similarity index 100% rename from MacPass/Icons/57_TextViewTemplate.pdf rename to MacPass/Resources/Icons/57_TextViewTemplate.pdf diff --git a/MacPass/Icons/58_SecureAccountTemplate.pdf b/MacPass/Resources/Icons/58_SecureAccountTemplate.pdf similarity index 100% rename from MacPass/Icons/58_SecureAccountTemplate.pdf rename to MacPass/Resources/Icons/58_SecureAccountTemplate.pdf diff --git a/MacPass/Icons/59_DevelopmentTemplate.pdf b/MacPass/Resources/Icons/59_DevelopmentTemplate.pdf similarity index 100% rename from MacPass/Icons/59_DevelopmentTemplate.pdf rename to MacPass/Resources/Icons/59_DevelopmentTemplate.pdf diff --git a/MacPass/Icons/60_HomeTemplate.pdf b/MacPass/Resources/Icons/60_HomeTemplate.pdf similarity index 100% rename from MacPass/Icons/60_HomeTemplate.pdf rename to MacPass/Resources/Icons/60_HomeTemplate.pdf diff --git a/MacPass/Icons/61_ServicesTemplate.pdf b/MacPass/Resources/Icons/61_ServicesTemplate.pdf similarity index 100% rename from MacPass/Icons/61_ServicesTemplate.pdf rename to MacPass/Resources/Icons/61_ServicesTemplate.pdf diff --git a/MacPass/Icons/62_TuxTemplate.pdf b/MacPass/Resources/Icons/62_TuxTemplate.pdf similarity index 100% rename from MacPass/Icons/62_TuxTemplate.pdf rename to MacPass/Resources/Icons/62_TuxTemplate.pdf diff --git a/MacPass/Icons/63_FeatherTemplate.pdf b/MacPass/Resources/Icons/63_FeatherTemplate.pdf similarity index 100% rename from MacPass/Icons/63_FeatherTemplate.pdf rename to MacPass/Resources/Icons/63_FeatherTemplate.pdf diff --git a/MacPass/Icons/64_AppleTemplate.pdf b/MacPass/Resources/Icons/64_AppleTemplate.pdf similarity index 100% rename from MacPass/Icons/64_AppleTemplate.pdf rename to MacPass/Resources/Icons/64_AppleTemplate.pdf diff --git a/MacPass/Icons/65_WikiTemplate.pdf b/MacPass/Resources/Icons/65_WikiTemplate.pdf similarity index 100% rename from MacPass/Icons/65_WikiTemplate.pdf rename to MacPass/Resources/Icons/65_WikiTemplate.pdf diff --git a/MacPass/Icons/66_MoneyTemplate.pdf b/MacPass/Resources/Icons/66_MoneyTemplate.pdf similarity index 100% rename from MacPass/Icons/66_MoneyTemplate.pdf rename to MacPass/Resources/Icons/66_MoneyTemplate.pdf diff --git a/MacPass/Icons/67_CertificatTemplate.pdf b/MacPass/Resources/Icons/67_CertificatTemplate.pdf similarity index 100% rename from MacPass/Icons/67_CertificatTemplate.pdf rename to MacPass/Resources/Icons/67_CertificatTemplate.pdf diff --git a/MacPass/Icons/68_PhoneTemplate.pdf b/MacPass/Resources/Icons/68_PhoneTemplate.pdf similarity index 100% rename from MacPass/Icons/68_PhoneTemplate.pdf rename to MacPass/Resources/Icons/68_PhoneTemplate.pdf diff --git a/MacPass/Icons/94.pdf b/MacPass/Resources/Icons/94.pdf similarity index 100% rename from MacPass/Icons/94.pdf rename to MacPass/Resources/Icons/94.pdf diff --git a/MacPass/Icons/95.pdf b/MacPass/Resources/Icons/95.pdf similarity index 100% rename from MacPass/Icons/95.pdf rename to MacPass/Resources/Icons/95.pdf diff --git a/MacPass/Icons/96.pdf b/MacPass/Resources/Icons/96.pdf similarity index 100% rename from MacPass/Icons/96.pdf rename to MacPass/Resources/Icons/96.pdf diff --git a/MacPass/Icons/addEntryTemplate.pdf b/MacPass/Resources/Icons/addEntryTemplate.pdf similarity index 100% rename from MacPass/Icons/addEntryTemplate.pdf rename to MacPass/Resources/Icons/addEntryTemplate.pdf diff --git a/MacPass/Icons/addFolderTemplate.pdf b/MacPass/Resources/Icons/addFolderTemplate.pdf similarity index 100% rename from MacPass/Icons/addFolderTemplate.pdf rename to MacPass/Resources/Icons/addFolderTemplate.pdf diff --git a/MacPass/Icons/contextTriangleTemplate.pdf b/MacPass/Resources/Icons/contextTriangleTemplate.pdf similarity index 100% rename from MacPass/Icons/contextTriangleTemplate.pdf rename to MacPass/Resources/Icons/contextTriangleTemplate.pdf diff --git a/MacPass/Icons/createdTemplate.pdf b/MacPass/Resources/Icons/createdTemplate.pdf similarity index 100% rename from MacPass/Icons/createdTemplate.pdf rename to MacPass/Resources/Icons/createdTemplate.pdf diff --git a/MacPass/Icons/downloadTemplate.pdf b/MacPass/Resources/Icons/downloadTemplate.pdf similarity index 100% rename from MacPass/Icons/downloadTemplate.pdf rename to MacPass/Resources/Icons/downloadTemplate.pdf diff --git a/MacPass/Icons/downloadToDiskTemplate.pdf b/MacPass/Resources/Icons/downloadToDiskTemplate.pdf similarity index 100% rename from MacPass/Icons/downloadToDiskTemplate.pdf rename to MacPass/Resources/Icons/downloadToDiskTemplate.pdf diff --git a/MacPass/Icons/harddiskTemplate.pdf b/MacPass/Resources/Icons/harddiskTemplate.pdf similarity index 100% rename from MacPass/Icons/harddiskTemplate.pdf rename to MacPass/Resources/Icons/harddiskTemplate.pdf diff --git a/MacPass/Icons/infoTemplate.pdf b/MacPass/Resources/Icons/infoTemplate.pdf similarity index 100% rename from MacPass/Icons/infoTemplate.pdf rename to MacPass/Resources/Icons/infoTemplate.pdf diff --git a/MacPass/Icons/keyboardTemplate.pdf b/MacPass/Resources/Icons/keyboardTemplate.pdf similarity index 100% rename from MacPass/Icons/keyboardTemplate.pdf rename to MacPass/Resources/Icons/keyboardTemplate.pdf diff --git a/MacPass/Resources/plugins.json b/MacPass/Resources/plugins.json new file mode 100644 index 000000000..92010e23f --- /dev/null +++ b/MacPass/Resources/plugins.json @@ -0,0 +1,45 @@ +[ + { + "name": "AutotypeURL", + "description": "Extract URLs from Browsers to enhance Global Autotype", + "download": "https://github.com/MacPass/AutotypeURL/releases/download/1.0/AutotypeURL-1.0.mpplugin.zip", + "source": "https://github.com/MacPass/AutotypeURL", + "currentVersion": "1.0", + "bundleIdentifier": "com.hicknhacksoftware.AutotypeURL", + "compatibilty" : [ + { + "pluginVersion": "1.0", + "minimumHostVersion" : "0.7.10" + } + ] + }, + { + "name": "MacPassHTTP", + "description": "KeePassHTTP support for MacPass", + "download": "https://github.com/MacPass/MacPassHTTP/releases/download/0.3.1/MacPassHTTP.mpplugin-0.3.2.zip", + "source": "https://github.com/MacPass/MacPassHTTP", + "currentVersion": "0.3.2", + "bundleIdentifier": "com.hicknhacksoftware.MacPassHTTP", + "compatibilty" : [ + { + "pluginVersion": "0.2.*", + "minimumHostVersion" : "0.6.1", + "maximumHostVersion" : "0.6.2" + }, + { + "pluginVersion": "0.3", + "minimumHostVersion" : "0.7", + "maximumHostVersion" : "0.7.3" + }, + { + "pluginVersion": "0.3.1", + "minimumHostVersion" : "0.7.4" + }, + { + "pluginVersion": "0.3.2", + "minimumHostVersion" : "0.7.4" + } + + ] + } +] diff --git a/MacPass/de.lproj/AutotypeDoctorReportViewController.strings b/MacPass/de.lproj/AutotypeDoctorReportViewController.strings new file mode 100644 index 000000000..f9a0d5925 --- /dev/null +++ b/MacPass/de.lproj/AutotypeDoctorReportViewController.strings @@ -0,0 +1,18 @@ +/* Class = "NSTextFieldCell"; title = "MacPass will send key press events to the system when Autotype or Global Autotype is executed. Since macOS 10.14 Mojave this is only possible, if Accessibility permissions are granted to the application."; ObjectID = "6GI-KJ-Xue"; */ +"6GI-KJ-Xue.title" = "MacPass sendet Tastendrücke an das System, wenn Autotype oder Global Autotype ausgeführt wird. Seit macOS 10.14 Mojave ist dies nur noch möglich, wenn der Anwendung Berechtigung zur Bedienungshilfe erteilt wurden."; + +/* Class = "NSTextFieldCell"; title = "MacPass will read every window title when Global Autotype is executed to find a match. Since macOS 10.15 Catalina it is not possible to read any window title, if the user has not granted permissions to record the screen. If you are running macOS 10.15 or higher, MacPass will check if it can read every window title of currently visible windows. This test will not read the actual title. The titles aren't stored or processed in any way."; ObjectID = "7of-1z-Nfk"; */ +"7of-1z-Nfk.title" = "MacPass liest jeden Fenstertitel, wenn Global Autotype ausgeführt wird, um eine Übereinstimmung zu finden. Seit macOS 10.15 Catalina ist es nicht mehr möglich, einen Fenstertitel zu lesen, wenn der Benutzer keine Berechtigung zur Aufzeichnung des Bildschirms erteilt hat. Wenn Sie macOS 10.15 oder höher verwenden, wird MacPass prüfen, ob es jeden Fenstertitel der aktuell sichtbaren Fenster lesen kann. Dieser Test liest weder den aktuellen Titel, noch wird dieser gespeichert oder verarbeitet."; + +/* Class = "NSButtonCell"; title = "Open Accessibilty Preferences…"; ObjectID = "8m1-vs-pd5"; */ +"8m1-vs-pd5.title" = "Einstellungen zu Bedienungshilfen öffnen …"; + +/* Class = "NSTextFieldCell"; title = "Screen Recording"; ObjectID = "9gr-mz-2I4"; */ +"9gr-mz-2I4.title" = "Bildschirmaufzeichnung"; + +/* Class = "NSTextFieldCell"; title = "Accessibility"; ObjectID = "aIL-8W-63g"; */ +"aIL-8W-63g.title" = "Bedienungshilfen"; + +/* Class = "NSButtonCell"; title = "Open Screen Recording Preferences…"; ObjectID = "lgB-Ys-L9R"; */ +"lgB-Ys-L9R.title" = "Bildschirmaufzeichnungseinstellungen öffnen …"; + diff --git a/MacPass/de.lproj/Credits.rtf b/MacPass/de.lproj/Credits.rtf deleted file mode 100644 index c31c211fc..000000000 --- a/MacPass/de.lproj/Credits.rtf +++ /dev/null @@ -1,108 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 -{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red52\green110\blue183;\red38\green38\blue38;} -{\*\expandedcolortbl;;\csgenericrgb\c20392\c43137\c71765;\csgenericrgb\c14902\c14902\c14902;} -\paperw11900\paperh16840\vieww19440\viewh16600\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b\fs24 \cf0 Projekt Webseite:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt -\f1\b0 \cf0 MacPass}} -\f1\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \ -Lizenz:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf0 MacPass KeePass compatible client for OS X\ -Copyright (c) 2012-2019 Michael Starke, HicknHack Software GmbH\ - \ -This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by\ -the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\ -\ -This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\ -\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\ -\ -You should have received a copy of the GNU General Public License along with this program. If not, see {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt http://www.gnu.org/licenses/}}.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 Credits:\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf0 Chinesische(Kurzzeichen) \'dcbersetzung von {\field{\*\fldinst{HYPERLINK "mailto:patchao2000@gmail.com"}}{\fldrslt Zhao Peng}} -\f0\b \ -\ - -\f1\b0 Franz\'f6sische \'dcbersetzung von {\field{\*\fldinst{HYPERLINK "mailto:gil@panix.com"}}{\fldrslt Gil Andr\'e9}}\ -\ -Italienische \'dcbersetzung von {\field{\*\fldinst{HYPERLINK "mailto:info@francescoservida.ch"}}{\fldrslt Francesco Servida}}\ -\ -Niederl\'e4ndische \'dcbersetzung von {\field{\*\fldinst{HYPERLINK "https://github.com/clone1612"}}{\fldrslt Jannick Hemelhof}}\ -\ -Polnische \'dcbersetzung von {\field{\*\fldinst{HYPERLINK "http://www.webii.pl/"}}{\fldrslt Micha\uc0\u322 Jaglewicz}}\ -\ -Russische \'dcbersetzung von {\field{\*\fldinst{HYPERLINK "mailto:alex@mrdoggy.info"}}{\fldrslt Aliaksandr Piatkevich}}\ -\ -Spanische \'dcbersetzung von {\field{\*\fldinst{HYPERLINK "https://github.com/m0yP"}}{\fldrslt \expnd0\expndtw0\kerning0 -Moises Perez}}\ -\ -MacPass Icon von {\field{\*\fldinst{HYPERLINK "http://iiro.jappinen.me"}}{\fldrslt Iiro J\'e4ppinen}} -\f0\b \ - -\f1\b0 \ -Database Icons von {\field{\*\fldinst{HYPERLINK "https://github.com/JoannaOlsen"}}{\fldrslt Joanna Olsen}}\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt -\f1\b0 \cf2 KissXML}} -\f1\b0 \cf3 \ -Copyright \'a9 2012 Robbie Hanson. Alle Rechte vorbehalten.\ - \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf2 MiniKeePass}}\ -Copyright \'a9 2011 Jason Rush und John Flanagan. Alle Rechte vorbehalten.\ - \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt \cf2 KeePass Database Library}}\ -Copyright \'a9 2010 Qiang Yu. Alle Rechte vorbehalten.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/Perspx/PXSourceList"}}{\fldrslt \cf3 PXSourceList}}\ -Copyright \'a9 2011, Alex Rozanski. Alle Rechte vorbehalten.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org"}}{\fldrslt \cf3 Sparkl\kerning1\expnd0\expndtw3 -e}}\kerning1\expnd0\expndtw3 -\ -Copyright \'a9 2006 Andy Matuschak. \kerning1\expnd0\expndtw0 Alle Rechte vorbehalten.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/questions/11386876/how-to-encode-and-decode-files-as-base64-in-cocoa-objective-c"}}{\fldrslt \cf3 Base64 Encoding Category}}\ -Copyright \'a92013, {\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/users/200321/denis2342"}}{\fldrslt denis2342}}\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://www.cocoadev.com/index.pl?NSDataCategory"}}{\fldrslt \cf3 NSData+Gzip}}\ -Basierend auf dem Code im CocoaDev Wiki\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/karelia/SecurityInterface"}}{\fldrslt \cf3 KSPasswordField}}\kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf3 \kerning1\expnd0\expndtw0 Quelltext wird in HNHUISecureTextField verwendet\kerning1\expnd0\expndtw3 -\ -\kerning1\expnd0\expndtw0 Copyright \'a92012 Mike Abdullah, Karelia Software. Alle Rechte vorbehalten.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/AlanQuatermain/aqtoolkit"}}{\fldrslt \cf3 NSData+CommonCrypto}}\ -Copyright \'a92008-2009 Jim Dovey, Alle Rechte vorbehalten.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mattt/TransformerKit"}}{\fldrslt \cf3 TransformerKit}}\ -Copyright \'a92012 Mattt Thompson. Alle Rechte vorbehalten.} \ No newline at end of file diff --git a/MacPass/de.lproj/DuplicateEntryOptionsWindow.strings b/MacPass/de.lproj/DuplicateEntryOptionsWindow.strings index 4d66cab8c..ab2a5cc8f 100644 --- a/MacPass/de.lproj/DuplicateEntryOptionsWindow.strings +++ b/MacPass/de.lproj/DuplicateEntryOptionsWindow.strings @@ -5,10 +5,10 @@ "dXl-KS-4rE.title" = "Historie duplizieren"; /* Class = "NSButtonCell"; title = "Reference username instead of copying it"; ObjectID = "O9X-XH-n8o"; */ -"O9X-XH-n8o.title" = "Nutzernamen als Referenz statt Kopie "; +"O9X-XH-n8o.title" = "Nutzernamen als Referenz statt Kopie"; /* Class = "NSWindow"; title = "Duplicate Entry Options"; ObjectID = "QvC-M9-y7g"; */ -"QvC-M9-y7g.title" = "Window"; +"QvC-M9-y7g.title" = "Optionen zum Duplizieren des Eintrags"; /* Class = "NSButtonCell"; title = "Duplicate Entry"; ObjectID = "WqI-qH-ARf"; */ "WqI-qH-ARf.title" = "Eintrag duplizieren"; diff --git a/MacPass/de.lproj/GeneralSettings.strings b/MacPass/de.lproj/GeneralPreferences.strings similarity index 85% rename from MacPass/de.lproj/GeneralSettings.strings rename to MacPass/de.lproj/GeneralPreferences.strings index acc13397b..1535c89a1 100644 --- a/MacPass/de.lproj/GeneralSettings.strings +++ b/MacPass/de.lproj/GeneralPreferences.strings @@ -32,7 +32,7 @@ "531.title" = "Letzte Datenbank beim Start wieder öffnen"; /* Class = "NSMenu"; title = "LockTimes"; ObjectID = "586"; */ -"586.title" = "LockTimes"; +"586.title" = "Sperrzeiten"; /* Class = "NSMenuItem"; title = "for 1 Minute"; ObjectID = "588"; */ "588.title" = "für 1 Minute"; @@ -65,7 +65,7 @@ "fNy-mS-phi.title" = "Universelle Zwischenablage"; /* Class = "NSTextFieldCell"; title = "Disabling this compromises security. If enabled, anything copied to the Clipboard in MacPass will be available on your connected iOS devices. You should clear the clipboard on those devices manually."; ObjectID = "JGX-Tp-KJk"; */ -"JGX-Tp-KJk.title" = "Das Ausschalten dieser Option beeinträchtigt die Sicherheit. Wird diese Option deaktiviert, werden alle Daten, die von MacPass in die Zwischenablage kopiert werden it verbundenen iOS Geräten synchronisiert. Die Zwischenablage sollte dann manuell auf diesen Geräten geleert werden."; +"JGX-Tp-KJk.title" = "Das Ausschalten dieser Option beeinträchtigt die Sicherheit. Wird diese Option deaktiviert, werden alle Daten, die von MacPass in die Zwischenablage kopiert werden mit verbundenen iOS Geräten synchronisiert. Die Zwischenablage sollte dann manuell auf diesen Geräten geleert werden."; /* Class = "NSTextFieldCell"; title = "If file changes:"; ObjectID = "QrK-hM-Xt1"; */ "QrK-hM-Xt1.title" = "Bei Dateiänderungen:"; @@ -73,3 +73,9 @@ /* Class = "NSButtonCell"; title = "Remember Keyfile for Databases"; ObjectID = "r6q-He-nYU"; */ "r6q-He-nYU.title" = "Schlüsseldatei merken"; +/* Class = "NSButtonCell"; title = "Enable Autosave"; ObjectID = "wG7-bi-2fi"; */ +"wG7-bi-2fi.title" = "Automatisches Speichern aktivieren"; + +/* Class = "NSTextFieldCell"; title = "Close and open all documents for changes to take effect"; ObjectID = "ya5-ps-c4W"; */ +"ya5-ps-c4W.title" = "Die Änderungen werden erst für Dokumente wirksam, welche geschlossen und erneut geöffnet werden."; + diff --git a/MacPass/de.lproj/InfoPlist.strings b/MacPass/de.lproj/InfoPlist.strings index 56323c87c..b89aecef4 100644 --- a/MacPass/de.lproj/InfoPlist.strings +++ b/MacPass/de.lproj/InfoPlist.strings @@ -1,3 +1,6 @@ +/* Bundle name */ +"CFBundleName" = "MacPass"; + /* (No Comment) */ "KDB Database" = "KDB Datenbank"; diff --git a/MacPass/de.lproj/IntegrationSettings.strings b/MacPass/de.lproj/IntegrationPreferences.strings similarity index 75% rename from MacPass/de.lproj/IntegrationSettings.strings rename to MacPass/de.lproj/IntegrationPreferences.strings index 857b8826a..7b08a00b1 100644 --- a/MacPass/de.lproj/IntegrationSettings.strings +++ b/MacPass/de.lproj/IntegrationPreferences.strings @@ -8,16 +8,16 @@ "B1D-j9-L8x.title" = "URL-Host beim Suchen von Einträgen berücksichtigen"; /* Class = "NSButtonCell"; title = "Enable Quicklook Preview"; ObjectID = "ERs-ct-Eyx"; */ -"ERs-ct-Eyx.title" = "Quicklook Preview aktivieren"; +"ERs-ct-Eyx.title" = "Quicklook-Vorschau aktivieren"; -/* Class = "NSTextFieldCell"; title = "Autotype is not available, because MacPass is not allowed to control your computer. To enable Autotype, go to the Security and Privacy Preferences and add MacPass to the Accessibilty group. Changes require a restart of MacPass."; ObjectID = "H37-ku-aTc"; */ +/* Class = "NSTextFieldCell"; title = "Autotype might not work properly. Some issues where found that prevent Autotype or Global Autotype to work. Please run the Autotype Doctor to fix those issues."; ObjectID = "H37-ku-aTc"; */ "H37-ku-aTc.title" = "Autotype steht nicht zur Verfügung, da MacPass den Computer nicht steuern darf. Um Autotype zu ermöglichen, fügen Sie MacPass in den Einstellungen zur Privatsphäre zu den Bedienungshilfen hinzu."; /* Class = "NSTextFieldCell"; title = "Shortcut is missing Key"; ObjectID = "Lxp-wI-yQy"; */ "Lxp-wI-yQy.title" = "Der Kurzbefehl ist unvollständig"; -/* Class = "NSButtonCell"; title = "Open Preferences…"; ObjectID = "NP0-R3-m6n"; */ -"NP0-R3-m6n.title" = "Systemeinstellungen öffnen…"; +/* Class = "NSButtonCell"; title = "Run Autotype Doctor…"; ObjectID = "NP0-R3-m6n"; */ +"NP0-R3-m6n.title" = "Systemeinstellungen öffnen …"; /* Class = "NSBox"; title = "Autotype"; ObjectID = "P9N-HM-wER"; */ "P9N-HM-wER.title" = "Autotype"; @@ -26,7 +26,7 @@ "QfO-yG-l3F.title" = "^ als ⌘ interpretieren"; /* Class = "NSTextFieldCell"; title = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to."; ObjectID = "QRy-CY-ENC"; */ -"QRy-CY-ENC.title" = "Wenn aktiviert, werden {CONTROL} Befehle als ⌘ gesendet. Deaktivieren Sie diese Option nur wenn Sie sich dessen sicher sind."; +"QRy-CY-ENC.title" = "Wenn aktiviert, werden {CONTROL} Befehle als ⌘ gesendet. Deaktivieren Sie diese Option nur, wenn Sie sich dessen sicher sind."; /* Class = "NSButtonCell"; title = "Include Entry Tags for matches"; ObjectID = "rbu-G7-MT8"; */ "rbu-G7-MT8.title" = "Tags beim Suchen von Einträgen berücksichtigen"; @@ -41,5 +41,5 @@ "VVs-b5-cX9.title" = "Vorschau"; /* Class = "NSTextFieldCell"; title = "If enabled attached files will be copied to a temporary location for preview and deleted after the preview is closed."; ObjectID = "WmI-IB-Aso"; */ -"WmI-IB-Aso.title" = "Die Daten werden zur Vorschau in einen temporären Ordern entschlüsselt und beim Beenden der Vorschau wieder gelöscht. Diese Feature ist eine potentielle Sicherheitslücke!"; +"WmI-IB-Aso.title" = "Die Daten werden zur Vorschau in einem temporären Ordern entschlüsselt und beim Beenden der Vorschau wieder gelöscht. Dieses Feature ist eine potenzielle Sicherheitslücke!"; diff --git a/MacPass/de.lproj/Localizable.strings b/MacPass/de.lproj/Localizable.strings index cfb83c9f6..1f6ca2d9e 100644 --- a/MacPass/de.lproj/Localizable.strings +++ b/MacPass/de.lproj/Localizable.strings @@ -37,17 +37,17 @@ /* Action to add an entry via template */ "ADD_TREMPLATE_ENTRY" = "Vorgabeeintrag erstellen"; -/* Button in dialog to leave autotype disabled and continiue! */ -"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OK" = "Autotype deaktiviert lassen."; +/* Allow the download of the plugin repository file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_ALLOW_DOWNLOAD" = "Aktualisiere Daten online."; -/* Button in dialog to open accessibilty preferences pane! */ -"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OPEN_PREFERENCES" = "Systemeinstellung Bedienungshilfen öffnen …"; +/* Informative text displayed on the alert that shows up when MacPass asks for permssion to download the plugin repository JSON file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_CONNECTION_PERMISSION_INFORMATIVE_TEXT" = "Das Verzeichnis ist auf https://macpassapp.org hinterlegt. MacPass lädt die Definitionen herunter, um sicher zu stellen, dass alle Daten auf dem neusten Stand sind."; -/* Alert informative text displayed when Autotype performs self check and lacks accessibilty permissions */ -"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_INFORMATIVE_TEXT" = "Das System erlaubt MacPass nicht, Autotype-Tastenbefehle an andere Anwendungen zu schicken. Um Autotype zu ermöglichen fügen Sie MacPass zu den Bedienungshilfen in den Datenschutzeinstellung hinzu. "; +/* Message displayed on the alert that asks for permission to download the plugin repository JSON file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_CONNECTION_PERMISSION_MESSAGE" = "MacPass möchte das Pluginverzeichnis aktualisieren."; -/* Alert message displayed when Autotype performs self check and lacks accessibilty permissions */ -"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_MESSAGE_TEXT" = "MacPass kann Autotype nicht ausführen."; +/* Disallow the download of the plugin repository file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_DISALLOW_DOWNLOAD" = "Keine Daten herunterladen."; /* Button in dialog to leave plugin ds disabled and continiue! */ "ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OK" = "OK"; @@ -77,7 +77,7 @@ "ALERT_MERGE_KDB_FILE_INFO_TEXT" = "KDB Datenbanken enthalten nicht alle notwendigen Informationen für eine eindeutige Synchronisation. Einzelne Einträgen werden korrekt synchronisiert. Gruppen werden jedoch nur durch den Namens zugeordnet werden, was zu unerwarteten Ergebnissen führen kann. Etwa können lokal bewegte Einträge wieder in alte Gruppen geschoben werden, unbenannte Gruppen können leer werden und die Einträge unter einer Gruppe mit dem vorherigen Namen wieder auftauchen. Weiterhin können gelöschte Einträge wieder auftauchen, da keine Informationen über diese gespeichert wird. Soll mit der Synchronisation fortgefahren werden?"; /* Alert message warning user about KDB file merge */ -"ALERT_MERGE_KDB_FILE_MESSAGE" = "Es werden KDB Datenbanken synchronisiert! "; +"ALERT_MERGE_KDB_FILE_MESSAGE" = "Es werden KDB Datenbanken synchronisiert!"; /* Alert message text when plugins or their settings change and require a restart */ "ALERT_MESSAGE_PLUGINS_CHANGED_SUGGEST_RESTART" = "Die globalen Plugineinstellungen haben sich geändert."; @@ -85,7 +85,7 @@ /* Alert message text to ask the user if he really want to uninstall the plugin. Include %@ placeholder for plugin name */ "ALERT_MESSAGE_TEXT_REALLY_UNINSTALL_PLUGIN_%@" = "Möchten Sie das Plugin %@ wirklich deinstallieren?"; -/* Infromative text of the disabled updates alert! */ +/* Informative text of the disabled updates alert! */ "ALERT_UPDATES_DISABLED_INFORMATIVE_TEXT_%@!" = "Aktualisierungen von %@ sind für diese Version deaktivert!"; /* Message text for disabled updates alert! */ @@ -101,6 +101,12 @@ /* Menu item for automatic trash creation */ "AUTOCREATE_TRASH_FOLDER" = "Automatisch erstellen"; +/* Message text in the autotype selection window. Placeholder is %1 - windowTitle */ +"AUTOTYPE_CANDIDATE_SELECTION_WINDOW_MESSAGE_%@" = "Es gibt mehrere Treffer für den aktuellen Fenstertitel: %@. Bitte wählen Sie den Eintrag aus der Liste aus, welcher verwendet werden soll."; + +/* Window title for the stand-alone password creator window */ +"AUTOTYPE_DOCTOR_RESULTS_WINDOW_TITLE" = "Autotype Doktor"; + /* Inherit autotype settings menu item */ "AUTOTYPE_INHERIT" = "Autotype Einstellungen vererben"; @@ -110,8 +116,8 @@ /* Disable autotype menu item */ "AUTOTYPE_NO" = "Autotype deaktivieren"; -/* Notification: Autotype failed, MacPass has no permission to send key strokes */ -"AUTOTYPE_NOTIFICATION_MACPASS_HAS_NO_ACCESSIBILTY_PERMISSIONS" = "Autotype ist deaktivert, weil keine Rechte zum Steuern des Computers vorhanden sind."; +/* Notification: Autotype failed, MacPass has not enough permissions to perform autotype */ +"AUTOTYPE_NOTIFICATION_MACPASS_IS_MISSING_PERMISSIONS" = "MacPass hat nicht alle notwendigen Berechtigungen um Autotype ausführen zu können"; /* Notification: Autotype failed, no documents are open */ "AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Bitte öffnen Sie eine Datei, um Global-Autotype zu nutzen!"; @@ -122,6 +128,18 @@ /* Notification: Autotype found a single match for %@ (string placeholder). */ "AUTOTYPE_OVERLAY_SINGLE_MATCH_FOR_%@" = "Treffer für %@!"; +/* Status lable when no issue were found in accessibilty */ +"AUTOTYPE_STATUS_ACCESSIBILTY_PERMISSIONS_OK" = "MacPass hat die Berechtigung den Computer zu steuern (Eingabehilfe)"; + +/* Status MacPass has no accessibilty permissions */ +"AUTOTYPE_STATUS_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass hat keine Berechtigung den Computer zu steuern (Eingabehilfe)"; + +/* Status MacPass has no screen recording permissions */ +"AUTOTYPE_STATUS_NO_SCREEN_RECORDING_PERMISSIONS" = "MacPass hat keine Berechtigung den Bildschirminhalt aufzuzeichnen"; + +/* Status lable when no issue were found in screen recording permissions */ +"AUTOTYPE_STATUS_SCREEN_RECORDING_PERMISSIONS_OK" = "MacPass hat die Berechtigung den Bildschirminhalt aufzuzeichnen"; + /* Notficication: Autotype timed out */ "AUTOTYPE_TIMED_OUT" = "Autotype wegen zu langer Wartezeit abgebrochen"; @@ -285,15 +303,15 @@ Actiontitle for copying groups via drag and drop to antother database */ "DRAG_GROUP" = "Gruppe verschieben"; -/* Action name for duplicating entries */ -"DUPLICATE_ENTRIES_%ld" = "Einträge duplizieren %ld"; - /* Menu item to directly diplicate an entry */ "DUPLICATE_ENTRY" = "Eintrag duplizieren"; /* Menu item to duplicate an entry with options how to duplicate. Will present a dialog. */ "DUPLICATE_ENTRY_WITH_OPTIONS" = "Eintrag duplizieren …"; +/* Menu item to directly diplicate a group */ +"DUPLICATE_GROUP" = "Gruppe duplizieren"; + /* Menu item in the database outline context menu to change the template group Menu item on the add entry context menu to edit template groups */ "EDIT_TEMPLATE_GROUP" = "Vorlagengruppe bearbeiten"; @@ -325,15 +343,18 @@ /* Error description given when adding an invalid plugin */ "ERROR_INVALID_PLUGIN" = "Kein MacPass-Plugin"; +/* Error description for missing accessibilty permissions */ +"ERROR_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass hat keine Berechtigung den Bildschirminhalt aufzuzeichnen."; + +/* Error description for missing screen recording permissions */ +"ERROR_NO_PERMISSION_TO_RECORD_SCREEN" = "MacPass hat keine Berechtigungen den Bildschirminhalt aufzuzeichnen"; + /* Passwords do not match */ "ERROR_PASSWORD_MISSMATCH" = "Passwörter stimmen nicht überein"; /* Passwords do not match, keyfile is invalid */ "ERROR_PASSWORD_MISSMATCH_INVALID_KEYFILE" = "Passwörter stimmen nicht überein oder die Schlüsseldatei ist ungültig!"; -/* Recommend/Enforce key change intervall format */ -"EVERY_%ld_DAYS" = "alle %ld Tage"; - /* Format to returen the date an item expires. Includes %@ placehoder for date */ "EXPIRES_AT_DATE_%@" = "verfällt: %@"; @@ -363,7 +384,7 @@ "FILE_OPEN_ERROR" = "Fehler beim Öffnen der Datei."; /* General Settings Label */ -"GENERAL_SETTINGS" = "Allgemein"; +"GENERAL_PREFERENCES" = "Allgemein"; /* Group column title */ "GROUP" = "Gruppe"; @@ -433,7 +454,7 @@ "NEW_ENTRY" = "Neuer Eintrag"; /* Submenu to add an entry via template */ -"NEW_ENTRY_WITH_TEMPLATE_%@" = "Neuer Eintrag aus Vorlage %@"; +"NEW_ENTRY_WITH_TEMPLATE_%@" = "mit %@"; /* Action name for a newly created group Menu item to create a new group @@ -486,16 +507,13 @@ /* Action button in Notification to open a document */ "OPEN_DOCUMENT" = "Datei öffnen"; -/* Action button in Notification to show the Accessibilty preferences */ -"OPEN_PREFERENCES" = "Systemeinstellung Bedienungshilfen öffnen …"; - /* Menu item to open the URL with the default application */ "OPEN_URL" = "Adresse öffnen"; /* Select Browser */ "OTHER_BROWSER" = "Browser wählen …"; -/* No comment provided by engineer. */ +/* Value field for reference lookup */ "OUTPUT_VALUE" = "Ausgabewert"; /* Menu item to toggle display of password column in entry table @@ -527,20 +545,14 @@ /* Menu item to perform autotype with the selected entry */ "PERFORM_AUTOTYPE_FOR_ENTRY" = "Auto-Type ausführen"; -/* Info about how many character has to pick in pickchar dialog */ -"PICKCHAR_INFO_MESSAGE_PICK_CHARACTERS_%ld" = "Bitte wählen Sie %ld Zeichen aus"; - /* Window displayed to the user to pick an amout of characters */ "PICKCHAR_WINDOW_TITLE" = "Zeichen auswählen"; -/* Count of picked characters in pickchars dialog if no limit is set */ -"PICKED_%ld_CHARACTERS" = "%ld Zeichen ausgewählt"; - /* Window displayed to the user to pick an amout of characters */ "PICKFIELD_WINDOW_TITLE" = "Wert auswählen"; /* Label for the button when a download is in progress! */ -"PLUGIN_BROWSER_ACTION_DOWNLOAD_IN_PROGRESS" = "Wird heruntergeladen…"; +"PLUGIN_BROWSER_ACTION_DOWNLOAD_IN_PROGRESS" = "Wird heruntergeladen …"; /* Label for the button when a download did not succeed */ "PLUGIN_BROWSER_ACTION_RETRY_FAILED_DOWNLOAD" = "Fehler. Erneut herunterladen."; @@ -636,7 +648,7 @@ /* Disable search menu item */ "SEARCH_NO" = "Nicht durchsuchbar"; -/* No comment provided by engineer. */ +/* Search field for references lookup */ "SEARCH_VALUE" = "Suche nach"; /* Enable search menu item */ @@ -660,6 +672,12 @@ /* Checkbox in dialog to 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."; +/* Action button in Notification to show the Autotype Doctor */ +"SHOW_AUTOTYPE_DOCTOR" = "Autotype Doktor anzeigen"; + +/* Menu item to show the entries group in the outline view */ +"SHOW_GROUP_IN_OUTLINE" = "Gruppe in Übersicht anzeigen"; + /* Menu item to show the history of the selected entry Toolbar item to toggle history display */ "SHOW_HISTORY" = "Historie anzeigen"; @@ -676,6 +694,42 @@ /* Toolbar item to perform autotype */ "TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "Autotype"; +/* Touchbar button label for choosing the keyfile */ +"TOUCHBAR_CHOOSE_KEYFILE" = "Schlüsseldatei wählen"; + +/* Touchbar button label for copying the password */ +"TOUCHBAR_COPY_PASSWORD" = "Passwort kopieren"; + +/* Touchbar button label for copying the username */ +"TOUCHBAR_COPY_USERNAME" = "Benutzername kopieren"; + +/* Touchbar button label for deleting elements */ +"TOUCHBAR_DELETE" = "Löschen"; + +/* Touchbar button label for opening the popover to edit */ +"TOUCHBAR_EDIT" = "Bearbeiten"; + +/* Touchbar button label for locking the database */ +"TOUCHBAR_LOCK_DATABASE" = "Datenbank sperren"; + +/* Touchbar button label for creating a new item */ +"TOUCHBAR_NEW_ENTRY" = "Neuer Eintrag"; + +/* Touchbar button label for creating a new group */ +"TOUCHBAR_NEW_GROUP" = "Neue Gruppe"; + +/* Touchbar button label for performing autotype */ +"TOUCHBAR_PERFORM_AUTOTYPE" = "Autotype ausführen"; + +/* Touchbar button label for searching the database */ +"TOUCHBAR_SEARCH" = "Datenbank durchsuchen"; + +/* Touchbar button label for showing the password */ +"TOUCHBAR_SHOW_PASSWORD" = "Passwort anzeigen"; + +/* Touchbar button label for unlocking the database */ +"TOUCHBAR_UNLOCK_DATABASE" = "Datenbank entsperren"; + /* Move Entry to Trash */ "TRASH_ENTRY" = "Eintrag löschen"; @@ -698,7 +752,7 @@ "UNKNOWN_TOOLBAR_ITEM" = "Unbekanntes Toolbar-Element"; /* Update Settings Label */ -"UPDATE_SETTINGS" = "Aktualisierung"; +"UPDATE_PREFERENCES" = "Aktualisierung"; /* Menu item to toggle display of url column in entry table Submenu with options what to do with the URL of an entry diff --git a/MacPass/de.lproj/Localizable.stringsdict b/MacPass/de.lproj/Localizable.stringsdict index 37d23e104..3c491ef9a 100644 --- a/MacPass/de.lproj/Localizable.stringsdict +++ b/MacPass/de.lproj/Localizable.stringsdict @@ -20,7 +20,7 @@ alle Zeichen ausgewählt - DUPLICATE_ENTRIES_%ld + DUPLICATE_ENTRIES_ACTION_NAME NSStringLocalizedFormatKey %#@entries@ @@ -38,6 +38,22 @@ Einträge duplizieren + DUPLICATE_GROUPS_ACTION_NAME + + NSStringLocalizedFormatKey + %#@groups@ + groups + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + Gruppe duplizieren + other + Gruppen duplizieren + + EVERY_%ld_DAYS NSStringLocalizedFormatKey diff --git a/MacPass/de.lproj/MainMenu.strings b/MacPass/de.lproj/MainMenu.strings index 1f414b412..77d01d01f 100644 --- a/MacPass/de.lproj/MainMenu.strings +++ b/MacPass/de.lproj/MainMenu.strings @@ -139,11 +139,11 @@ /* Class = "NSMenuItem"; title = "Toggle Inspector"; ObjectID = "1181"; */ "1181.title" = "Inspector ein/ausblenden"; -/* Class = "NSMenuItem"; title = "Show Password Generator"; ObjectID = "1200"; */ +/* Class = "NSMenuItem"; title = "Password Generator"; ObjectID = "1200"; */ "1200.title" = "Passwortgenerator anzeigen"; /* Class = "NSMenuItem"; title = "Change Master Password…"; ObjectID = "1203"; */ -"1203.title" = "Datenbankpassword ändern …"; +"1203.title" = "Datenbankpasswort ändern …"; /* Class = "NSMenuItem"; title = "Database Settings…"; ObjectID = "1231"; */ "1231.title" = "Datenbankeinstellungen …"; @@ -193,3 +193,6 @@ /* Class = "NSMenuItem"; title = "Merge With…"; ObjectID = "zvE-0h-UxI"; */ "zvE-0h-UxI.title" = "Synchronisieren…"; +/* Class = "NSMenuItem"; title = "Autotype Doctor"; ObjectID = "zWx-Re-iuJ"; */ +"zWx-Re-iuJ.title" = "Autotype Doktor"; + diff --git a/MacPass/de.lproj/PasswordCreatorView.strings b/MacPass/de.lproj/PasswordCreatorView.strings index 3e39f8c3e..514ed8f96 100644 --- a/MacPass/de.lproj/PasswordCreatorView.strings +++ b/MacPass/de.lproj/PasswordCreatorView.strings @@ -44,5 +44,5 @@ "CMc-Uh-Fo5.title" = "Mindestens ein Zeichen aus jeder Gruppe"; /* Class = "NSButtonCell"; title = "Set Default"; ObjectID = "Wvs-Md-Ob8"; */ -"Wvs-Md-Ob8.title" = "Als Standard festelegen"; +"Wvs-Md-Ob8.title" = "Als Standard festlegen"; diff --git a/MacPass/de.lproj/PluginPreferences.strings b/MacPass/de.lproj/PluginPreferences.strings index 385b15b18..31bbbc8c2 100644 --- a/MacPass/de.lproj/PluginPreferences.strings +++ b/MacPass/de.lproj/PluginPreferences.strings @@ -7,6 +7,9 @@ /* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "fug-79-n9g"; */ "fug-79-n9g.title" = "Table View Cell"; +/* Class = "NSTextFieldCell"; title = "If enabled, a remote connection is established to macpassapp.org"; ObjectID = "i3S-9b-Bpf"; */ +"i3S-9b-Bpf.title" = "Sofern aktiviert, wird eine Verbindung zu macpassapp.org hergestellt"; + /* Class = "NSTextFieldCell"; title = "Plugin Settings Info"; ObjectID = "OOr-SW-jZb"; */ "OOr-SW-jZb.title" = "Informationen zu Plugin-Einstellungen"; @@ -16,6 +19,9 @@ /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "STt-PQ-Szr"; */ "STt-PQ-Szr.title" = "Text Cell"; +/* Class = "NSButtonCell"; title = "Download current plugin information"; ObjectID = "uHR-uL-Ddm"; */ +"uHR-uL-Ddm.title" = "Aktuelle Plugin-Informationen herunterladen"; + /* Class = "NSBox"; title = "Box"; ObjectID = "vBs-Ga-aq0"; */ "vBs-Ga-aq0.title" = "Box"; diff --git a/MacPass/de.lproj/PluginRepositoryBrowserView.strings b/MacPass/de.lproj/PluginRepositoryBrowserView.strings new file mode 100644 index 000000000..957318ead --- /dev/null +++ b/MacPass/de.lproj/PluginRepositoryBrowserView.strings @@ -0,0 +1,42 @@ +/* Class = "NSButtonCell"; title = "Action"; ObjectID = "6jQ-Uk-uqD"; */ +"6jQ-Uk-uqD.title" = "Aktion"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "cFE-KE-Xjx"; */ +"cFE-KE-Xjx.title" = "Text Cell"; + +/* Class = "NSTextFieldCell"; title = "Updated at"; ObjectID = "DhR-ED-6gV"; */ +"DhR-ED-6gV.title" = "Aktualisiert am"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "DRt-Gz-DUm"; */ +"DRt-Gz-DUm.title" = "Table View Cell"; + +/* Class = "NSTableColumn"; headerCell.title = "Status"; ObjectID = "g1Q-BS-vCR"; */ +"g1Q-BS-vCR.headerCell.title" = "Status"; + +/* Class = "NSTableColumn"; headerCell.title = "Latest Version"; ObjectID = "hFg-AD-SqD"; */ +"hFg-AD-SqD.headerCell.title" = "Aktuelle Version"; + +/* Class = "NSButtonCell"; title = "Done"; ObjectID = "j9a-fn-Pye"; */ +"j9a-fn-Pye.title" = "Fertig"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "nc9-mo-2e5"; */ +"nc9-mo-2e5.title" = "Table View Cell"; + +/* Class = "NSTextFieldCell"; title = "Last updated:"; ObjectID = "ntD-sJ-NRw"; */ +"ntD-sJ-NRw.title" = "Letzte Aktualisierung:"; + +/* Class = "NSTableColumn"; headerCell.title = "Plugin"; ObjectID = "Nzo-rR-Hfx"; */ +"Nzo-rR-Hfx.headerCell.title" = "Plugin"; + +/* Class = "NSButtonCell"; title = "Refresh"; ObjectID = "NZw-nO-lZ3"; */ +"NZw-nO-lZ3.title" = "Aktualisieren"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "Pl1-4o-5uY"; */ +"Pl1-4o-5uY.title" = "Text Cell"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "QPj-W1-su1"; */ +"QPj-W1-su1.title" = "Text Cell"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "ZIf-CU-gh7"; */ +"ZIf-CU-gh7.title" = "Table View Cell"; + diff --git a/MacPass/de.lproj/SavePanelAccessoryView.strings b/MacPass/de.lproj/SavePanelAccessoryView.strings new file mode 100644 index 000000000..42f4e45fa --- /dev/null +++ b/MacPass/de.lproj/SavePanelAccessoryView.strings @@ -0,0 +1,15 @@ +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "4"; */ +"4.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "KeePass 1 (KDB)"; ObjectID = "5"; */ +"5.title" = "KeePass 1 (KDB)"; + +/* Class = "NSMenuItem"; title = "KeePass 2 (KDBX)"; ObjectID = "6"; */ +"6.title" = "KeePass 2 (KDBX)"; + +/* Class = "NSTextFieldCell"; title = "Format:"; ObjectID = "12"; */ +"12.title" = "Format:"; + +/* Class = "NSTextFieldCell"; title = "Not all Information inside your current database can be stored with this format."; ObjectID = "52"; */ +"52.title" = "Es können nicht alle Informationen der Datenbank in diesem Format gespeichert werden."; + diff --git a/MacPass/de.lproj/UpdateSettings.strings b/MacPass/de.lproj/UpdatePreferences.strings similarity index 100% rename from MacPass/de.lproj/UpdateSettings.strings rename to MacPass/de.lproj/UpdatePreferences.strings diff --git a/MacPass/de.lproj/WelcomeView.strings b/MacPass/de.lproj/WelcomeView.strings index a007a51b5..35fc39cec 100644 --- a/MacPass/de.lproj/WelcomeView.strings +++ b/MacPass/de.lproj/WelcomeView.strings @@ -1,9 +1,15 @@ +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "Fbl-HT-XIu"; */ +"Fbl-HT-XIu.title" = "Text Cell"; + /* Class = "NSButtonCell"; title = "Open Database…"; ObjectID = "Jj3-zy-gaz"; */ "Jj3-zy-gaz.title" = "Datenbank öffnen…"; /* Class = "NSButtonCell"; title = "Create new Database"; ObjectID = "Vxx-Ql-eI5"; */ "Vxx-Ql-eI5.title" = "Neue Datenbank erstellen"; +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "vzM-ly-CYn"; */ +"vzM-ly-CYn.title" = "Table View Cell"; + /* Class = "NSTextFieldCell"; title = "Welcome to MacPass"; ObjectID = "zdv-z8-khG"; */ "zdv-z8-khG.title" = "Willkommen zu MacPass"; diff --git a/MacPass/de.lproj/WorkflowSettings.strings b/MacPass/de.lproj/WorkflowPreferences.strings similarity index 83% rename from MacPass/de.lproj/WorkflowSettings.strings rename to MacPass/de.lproj/WorkflowPreferences.strings index 544907292..ce961108c 100644 --- a/MacPass/de.lproj/WorkflowSettings.strings +++ b/MacPass/de.lproj/WorkflowPreferences.strings @@ -1,3 +1,6 @@ +/* Class = "NSButtonCell"; title = "Hide application after copying to clipboard "; ObjectID = "1Vr-nY-Ogv"; */ +"1Vr-nY-Ogv.title" = "MacPass nach dem jedem Kopieren in die Zwischenablage ausblenden"; + /* Class = "NSBox"; title = "Entry Table"; ObjectID = "2"; */ "2.title" = "Passwort-Tabelle"; @@ -26,11 +29,14 @@ "43.title" = "ignorieren"; /* Class = "NSMenuItem"; title = "Opens Inspector"; ObjectID = "44"; */ -"44.title" = "Inspector öffnen"; +"44.title" = "Inspektor öffnen"; /* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "gej-kA-GzQ"; */ "gej-kA-GzQ.title" = "Item 2"; +/* Class = "NSBox"; title = "Clipboard"; ObjectID = "Kff-Xp-hAT"; */ +"Kff-Xp-hAT.title" = "Zwischenablage"; + /* Class = "NSButtonCell"; title = "Update password for new entries"; ObjectID = "RaM-t2-DVR"; */ "RaM-t2-DVR.title" = "Passwörter für neue Einträge aktualisieren"; diff --git a/MacPass/en.lproj/ContextBar.strings b/MacPass/en.lproj/ContextBar.strings deleted file mode 100644 index fe2e757f9..000000000 --- a/MacPass/en.lproj/ContextBar.strings +++ /dev/null @@ -1,57 +0,0 @@ -/* Class = "NSTextFieldCell"; title = "Search:"; ObjectID = "7"; */ -"7.title" = "Search:"; - -/* Class = "NSButtonCell"; title = "Empty Trash"; ObjectID = "8Ok-oe-6AB"; */ -"8Ok-oe-6AB.title" = "Empty Trash"; - -/* Class = "NSTextFieldCell"; title = "Trash"; ObjectID = "8P1-Rp-sF4"; */ -"8P1-Rp-sF4.title" = "Trash"; - -/* Class = "NSButtonCell"; title = "Title"; ObjectID = "53D-ne-nv6"; */ -"53D-ne-nv6.title" = "Title"; - -/* Class = "NSButtonCell"; title = "URL"; ObjectID = "92o-gN-Psj"; */ -"92o-gN-Psj.title" = "URL"; - -/* Class = "NSMenuItem"; title = "Item 3"; ObjectID = "CFk-71-NYQ"; */ -"CFk-71-NYQ.title" = "Item 3"; - -/* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "cpr-p6-YAY"; */ -"cpr-p6-YAY.title" = "Item 2"; - -/* Class = "NSTextFieldCell"; title = "History"; ObjectID = "ER3-Ic-v0N"; */ -"ER3-Ic-v0N.title" = "History"; - -/* Class = "NSButtonCell"; title = "Exit History"; ObjectID = "ewQ-8F-e1E"; */ -"ewQ-8F-e1E.title" = "Exit History"; - -/* Class = "NSButtonCell"; title = "Notes"; ObjectID = "iDN-2E-hwt"; */ -"iDN-2E-hwt.title" = "Notes"; - -/* Class = "NSButtonCell"; title = "Username"; ObjectID = "jfQ-Jh-2gl"; */ -"jfQ-Jh-2gl.title" = "Username"; - -/* Class = "NSMenuItem"; title = "Item 1"; ObjectID = "LRm-iZ-XrA"; */ -"LRm-iZ-XrA.title" = "Item 1"; - -/* Class = "NSTabViewItem"; label = "Trash"; ObjectID = "na6-h9-r9q"; */ -"na6-h9-r9q.label" = "Trash"; - -/* Class = "NSButtonCell"; title = "Password"; ObjectID = "rvQ-4V-SsS"; */ -"rvQ-4V-SsS.title" = "Password"; - -/* Class = "NSTabViewItem"; label = "Filter"; ObjectID = "Ud6-Nz-6PS"; */ -"Ud6-Nz-6PS.label" = "Filter"; - -/* Class = "NSButtonCell"; title = "Restore Entry"; ObjectID = "UTg-y9-4DN"; */ -"UTg-y9-4DN.title" = "Restore Entry"; - -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "wC4-fF-dLW"; */ -"wC4-fF-dLW.title" = "OtherViews"; - -/* Class = "NSButtonCell"; title = "Everywhere"; ObjectID = "WMK-bb-ESj"; */ -"WMK-bb-ESj.title" = "Everywhere"; - -/* Class = "NSTabViewItem"; label = "History"; ObjectID = "z4I-cp-nhf"; */ -"z4I-cp-nhf.label" = "History"; - diff --git a/MacPass/en.lproj/Credits.rtf b/MacPass/en.lproj/Credits.rtf deleted file mode 100644 index b2dfe9119..000000000 --- a/MacPass/en.lproj/Credits.rtf +++ /dev/null @@ -1,103 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 -{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red52\green110\blue183;\red38\green38\blue38;} -{\*\expandedcolortbl;;\csgenericrgb\c20392\c43137\c71765;\csgenericrgb\c14902\c14902\c14902;} -\paperw11900\paperh16840\vieww25780\viewh19380\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b\fs24 \cf0 Project Website:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt -\f1\b0 \cf0 MacPass}} -\f1\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \ -License:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf0 MacPass KeePass compatible client for OS X\ -Copyright (c) 2012-2019 Michael Starke, HicknHack Software GmbH\ - \ -This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by\ -the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\ -\ -This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\ -\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\ -\ -You should have received a copy of the GNU General Public License along with this program. If not, see {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt http://www.gnu.org/licenses/}}.\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 \kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \kerning1\expnd0\expndtw0 Credits:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf2 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 Dutch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/clone1612"}}{\fldrslt Jannick Hemelhof}}\ -\ -French translation: {\field{\*\fldinst{HYPERLINK "mailto:gil@panix.com"}}{\fldrslt Gil Andr\'e9}}\ -\ -Italian translation: {\field{\*\fldinst{HYPERLINK "mailto:info@francescoservida.ch"}}{\fldrslt Francesco Servida}}\ -\ -Polish translation: {\field{\*\fldinst{HYPERLINK "http://www.webii.pl/"}}{\fldrslt Micha\uc0\u322 Jaglewicz}}\ -\ -Russian translation: {\field{\*\fldinst{HYPERLINK "mailto:alex@mrdoggy.info"}}{\fldrslt Aliaksandr Piatkevich}}\ -\ -Simplified Chinese translation: {\field{\*\fldinst{HYPERLINK "mailto:patchao2000@gmail.com"}}{\fldrslt Zhao Peng}}\ -\ -Spanisch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/m0yP"}}{\fldrslt \expnd0\expndtw0\kerning0 -Moises Perez}}\ -\ -MacPass\kerning1\expnd0\expndtw3 - \kerning1\expnd0\expndtw0 Icon: {\field{\*\fldinst{HYPERLINK "http://iiro.jappinen.me"}}{\fldrslt Iiro J\'e4ppinen}}\ -\ -Database Icons: {\field{\*\fldinst{HYPERLINK "https://github.com/JoannaOlsen"}}{\fldrslt Joanna Olsen}}\cf2 \ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt \cf2 KissXML}}\cf3 \ -Copyright \'a9 2012 Robbie Hanson. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf2 MiniKeePass}}\ -Copyright \'a9 2011 Jason Rush and John Flanagan. All rights reserved.\ - \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt \cf2 KeePass Database Library}}\ -Copyright \'a9 2010 Qiang Yu. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/Perspx/PXSourceList"}}{\fldrslt \cf3 PXSourceList}}\ -Copyright \'a9 2011, Alex Rozanski. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org"}}{\fldrslt \cf3 Sparkl\kerning1\expnd0\expndtw3 -e}}\kerning1\expnd0\expndtw3 -\ -Copyright \'a9 2006 Andy Matuschak. \kerning1\expnd0\expndtw0 All rights reserved.\kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf3 \kerning1\expnd0\expndtw0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/questions/11386876/how-to-encode-and-decode-files-as-base64-in-cocoa-objective-c"}}{\fldrslt \cf3 NSData+Base64}}\ -Copyright \'a92013, {\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/users/200321/denis2342"}}{\fldrslt denis2342}}\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://www.cocoadev.com/index.pl?NSDataCategory"}}{\fldrslt \cf3 NSData+Gzip}}\ -Extracted from code on the CocoaDev Wiki\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/karelia/SecurityInterface"}}{\fldrslt \cf3 KSPasswordField}}\ -Code reused in HNHUISecureTextField\ -Copyright \'a92012 Mike Abdullah, Karelia Software. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/AlanQuatermain/aqtoolkit"}}{\fldrslt \cf3 NSData+CommonCrypto}}\ -Copyright \'a92008-2009 Jim Dovey, All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mattt/TransformerKit"}}{\fldrslt \cf3 TransformerKit}}\ -Copyright \'a92012 Mattt Thompson. All rights reserved} \ No newline at end of file diff --git a/MacPass/en.lproj/DatabaseSettingsWindow.strings b/MacPass/en.lproj/DatabaseSettingsWindow.strings deleted file mode 100644 index 235ca5b0a..000000000 --- a/MacPass/en.lproj/DatabaseSettingsWindow.strings +++ /dev/null @@ -1,117 +0,0 @@ -/* Class = "NSWindow"; title = "Window"; ObjectID = "1"; */ -"1.title" = "Window"; - -/* Class = "NSTextFieldCell"; title = "Threads"; ObjectID = "2QI-ne-N5d"; */ -"2QI-ne-N5d.title" = "Threads"; - -/* Class = "NSTextFieldCell"; title = "Iterations"; ObjectID = "2ZA-Gc-JdZ"; */ -"2ZA-Gc-JdZ.title" = "Iterations"; - -/* Class = "NSTextFieldCell"; title = "Enforce key change"; ObjectID = "5QH-N1-FHK"; */ -"5QH-N1-FHK.title" = "Enforce key change"; - -/* Class = "NSTabViewItem"; label = "Argon2"; ObjectID = "6qB-sH-9FI"; */ -"6qB-sH-9FI.label" = "Argon2"; - -/* Class = "NSTextFieldCell"; title = "Database name:"; ObjectID = "190"; */ -"190.title" = "Database name:"; - -/* Class = "NSTextFieldCell"; title = "Description:"; ObjectID = "257"; */ -"257.title" = "Description:"; - -/* Class = "NSButtonCell"; title = "OK"; ObjectID = "289"; */ -"289.title" = "OK"; - -/* Class = "NSTabViewItem"; label = "General"; ObjectID = "358"; */ -"358.label" = "General"; - -/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "368"; */ -"368.label" = "Advanced"; - -/* Class = "NSTabViewItem"; label = "Security"; ObjectID = "370"; */ -"370.label" = "Security"; - -/* Class = "NSButtonCell"; title = "Enable Entry History"; ObjectID = "532"; */ -"532.title" = "Enable Entry History"; - -/* Class = "NSButtonCell"; title = "Enable Recycle Bin"; ObjectID = "536"; */ -"536.title" = "Enable Recycle Bin"; - -/* Class = "NSTextFieldCell"; title = "Maximum items in history:"; ObjectID = "558"; */ -"558.title" = "Maximum items in history:"; - -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "680"; */ -"680.title" = "OtherViews"; - -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "957"; */ -"957.title" = "Cancel"; - -/* Class = "NSTextFieldCell"; title = "Maximum history size:"; ObjectID = "1269"; */ -"1269.title" = "Maximum history size:"; - -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "1396"; */ -"1396.title" = "OtherViews"; - -/* Class = "NSMenuItem"; title = "None"; ObjectID = "1397"; */ -"1397.title" = "None"; - -/* Class = "NSMenuItem"; title = "GZip"; ObjectID = "1398"; */ -"1398.title" = "GZip"; - -/* Class = "NSTextFieldCell"; title = "Compression:"; ObjectID = "1405"; */ -"1405.title" = "Compression:"; - -/* Class = "NSTextFieldCell"; title = "Color:"; ObjectID = "1435"; */ -"1435.title" = "Color:"; - -/* Class = "NSTextFieldCell"; title = "Template Group:"; ObjectID = "1588"; */ -"1588.title" = "Template Group:"; - -/* Class = "NSTextFieldCell"; title = "Default Username:"; ObjectID = "1591"; */ -"1591.title" = "Default Username:"; - -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "1740"; */ -"1740.title" = "OtherViews"; - -/* Class = "NSTextFieldCell"; title = "File format:"; ObjectID = "bTk-YZ-x0G"; */ -"bTk-YZ-x0G.title" = "File format:"; - -/* Class = "NSButtonCell"; title = "Recommend key change"; ObjectID = "CtU-Eq-dgy"; */ -"CtU-Eq-dgy.title" = "Recommend key change"; - -/* Class = "NSTabViewItem"; label = "Aes"; ObjectID = "ft1-pl-lpO"; */ -"ft1-pl-lpO.label" = "Aes"; - -/* Class = "NSTextFieldCell"; title = "Algorithm"; ObjectID = "GVd-KH-pHc"; */ -"GVd-KH-pHc.title" = "Algorithm"; - -/* Class = "NSTextFieldCell"; title = "Encryption:"; ObjectID = "gxY-UL-bEG"; */ -"gxY-UL-bEG.title" = "Encryption:"; - -/* Class = "NSTextFieldCell"; title = "Memory"; ObjectID = "iRY-If-Kwn"; */ -"iRY-If-Kwn.title" = "Memory"; - -/* Class = "NSTextFieldCell"; title = "Recyclebin Group:"; ObjectID = "kI5-Kp-byE"; */ -"kI5-Kp-byE.title" = "Recyclebin Group:"; - -/* Class = "NSButtonCell"; title = "Force key change once after unlocking"; ObjectID = "pA1-aL-KjT"; */ -"pA1-aL-KjT.title" = "Force key change once after unlocking"; - -/* Class = "NSBox"; title = "Key derivation"; ObjectID = "pbl-Mb-r8V"; */ -"pbl-Mb-r8V.title" = "Key derivation"; - -/* Class = "NSButtonCell"; title = "Generate Parameters"; ObjectID = "PoI-Er-Y8P"; */ -"PoI-Er-Y8P.title" = "Generate Parameters"; - -/* Class = "NSTextFieldCell"; title = "VersionInfo"; ObjectID = "Ush-4r-A1A"; */ -"Ush-4r-A1A.title" = "VersionInfo"; - -/* Class = "NSTextFieldCell"; title = "Rounds"; ObjectID = "uUQ-9s-M5E"; */ -"uUQ-9s-M5E.title" = "Rounds"; - -/* Class = "NSTextFieldCell"; title = "Recommend key change"; ObjectID = "Xib-Fn-sqx"; */ -"Xib-Fn-sqx.title" = "Recommend key change"; - -/* Class = "NSButtonCell"; title = "Force key change"; ObjectID = "z6u-YT-7LE"; */ -"z6u-YT-7LE.title" = "Force key change"; - diff --git a/MacPass/en.lproj/DatePickingView.strings b/MacPass/en.lproj/DatePickingView.strings deleted file mode 100644 index 59bb3f98c..000000000 --- a/MacPass/en.lproj/DatePickingView.strings +++ /dev/null @@ -1,9 +0,0 @@ -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "17"; */ -"17.title" = "OtherViews"; - -/* Class = "NSButtonCell"; title = "Use Date"; ObjectID = "26"; */ -"26.title" = "Use Date"; - -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "30"; */ -"30.title" = "Cancel"; - diff --git a/MacPass/en.lproj/DuplicateEntryOptionsWindow.strings b/MacPass/en.lproj/DuplicateEntryOptionsWindow.strings deleted file mode 100644 index 60afa4f6d..000000000 --- a/MacPass/en.lproj/DuplicateEntryOptionsWindow.strings +++ /dev/null @@ -1,18 +0,0 @@ -/* Class = "NSButtonCell"; title = "Reference password instead of copying it"; ObjectID = "daA-QV-CDq"; */ -"daA-QV-CDq.title" = "Reference password instead of copying it"; - -/* Class = "NSButtonCell"; title = "Duplicate history"; ObjectID = "dXl-KS-4rE"; */ -"dXl-KS-4rE.title" = "Duplicate history"; - -/* Class = "NSButtonCell"; title = "Reference username instead of copying it"; ObjectID = "O9X-XH-n8o"; */ -"O9X-XH-n8o.title" = "Reference username instead of copying it"; - -/* Class = "NSWindow"; title = "Duplicate Entry Options"; ObjectID = "QvC-M9-y7g"; */ -"QvC-M9-y7g.title" = "Duplicate Entry Options"; - -/* Class = "NSButtonCell"; title = "Duplicate Entry"; ObjectID = "WqI-qH-ARf"; */ -"WqI-qH-ARf.title" = "Duplicate Entry"; - -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "x6e-bE-Y6R"; */ -"x6e-bE-Y6R.title" = "Cancel"; - diff --git a/MacPass/en.lproj/EntryInspectorView.strings b/MacPass/en.lproj/EntryInspectorView.strings deleted file mode 100644 index bfec35523..000000000 --- a/MacPass/en.lproj/EntryInspectorView.strings +++ /dev/null @@ -1,108 +0,0 @@ -/* Class = "NSMenuItem"; title = "Save"; ObjectID = "0ok-MC-QMP"; */ -"0ok-MC-QMP.title" = "Save"; - -/* Class = "NSButtonCell"; title = "Enable Autotype"; ObjectID = "9Nx-mE-DK3"; */ -"9Nx-mE-DK3.title" = "Enable Autotype"; - -/* Class = "NSButtonCell"; title = "Generate"; ObjectID = "64"; */ -"64.title" = "Generate"; - -/* Class = "NSTextFieldCell"; title = "Password"; ObjectID = "65"; */ -"65.title" = "Password"; - -/* Class = "NSTextFieldCell"; title = "URL"; ObjectID = "66"; */ -"66.title" = "URL"; - -/* Class = "NSTextFieldCell"; title = "Username"; ObjectID = "69"; */ -"69.title" = "Username"; - -/* Class = "NSTextFieldCell"; title = "Title"; ObjectID = "71"; */ -"71.title" = "Title"; - -/* Class = "NSButtonCell"; title = "Expires"; ObjectID = "78"; */ -"78.title" = "Expires"; - -/* Class = "NSTextFieldCell"; title = "Tags"; ObjectID = "79"; */ -"79.title" = "Tags"; - -/* Class = "NSTabViewItem"; label = "Attachments"; ObjectID = "109"; */ -"109.label" = "Attachments"; - -/* Class = "NSTabViewItem"; label = "General"; ObjectID = "110"; */ -"110.label" = "General"; - -/* Class = "NSTextFieldCell"; title = "Attachments"; ObjectID = "135"; */ -"135.title" = "Attachments"; - -/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "142"; */ -"142.title" = "Text Cell"; - -/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "151"; */ -"151.title" = "Table View Cell"; - -/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "171"; */ -"171.title" = "Table View Cell"; - -/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "197"; */ -"197.title" = "Text Cell"; - -/* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "211"; */ -"211.placeholderString" = "Title"; - -/* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "214"; */ -"214.placeholderString" = "Value"; - -/* Class = "NSSegmentedCell"; 238.ibShadowedLabels[0] = "General"; ObjectID = "238"; */ -"238.ibShadowedLabels[0]" = "General"; - -/* Class = "NSSegmentedCell"; 238.ibShadowedLabels[1] = "Files"; ObjectID = "238"; */ -"238.ibShadowedLabels[1]" = "Files"; - -/* Class = "NSSegmentedCell"; 238.ibShadowedLabels[2] = "Autotype"; ObjectID = "238"; */ -"238.ibShadowedLabels[2]" = "Autotype"; - -/* Class = "NSMenuItem"; title = "Delete"; ObjectID = "bke-G2-oEf"; */ -"bke-G2-oEf.title" = "Delete"; - -/* Class = "NSTextFieldCell"; title = "Window Title"; ObjectID = "bkO-Bk-AuX"; */ -"bkO-Bk-AuX.title" = "Window Title"; - -/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "bQ5-0E-h3O"; */ -"bQ5-0E-h3O.title" = "Autotype Sequence"; - -/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "dyA-lo-PGa"; */ -"dyA-lo-PGa.title" = "Table View Cell"; - -/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "ep5-bQ-cfZ"; */ -"ep5-bQ-cfZ.title" = "Text Cell"; - -/* Class = "NSTextFieldCell"; placeholderString = "Custom Window Sequence"; ObjectID = "fW9-9p-wwR"; */ -"fW9-9p-wwR.placeholderString" = "Custom Window Sequence"; - -/* Class = "NSTabViewItem"; label = "Autotype"; ObjectID = "hK7-Dx-yjH"; */ -"hK7-Dx-yjH.label" = "Autotype"; - -/* Class = "NSTextFieldCell"; title = "Window Associations"; ObjectID = "ned-1Q-FXA"; */ -"ned-1Q-FXA.title" = "Window Associations"; - -/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "NtM-y3-l4D"; */ -"NtM-y3-l4D.title" = "Quicklook"; - -/* Class = "NSButtonCell"; title = "Obfuscate Autotype"; ObjectID = "oNq-kB-3eb"; */ -"oNq-kB-3eb.title" = "Obfuscate Autotype"; - -/* Class = "NSTextFieldCell"; placeholderString = "Custom Entry Sequence"; ObjectID = "R2X-Ex-c6q"; */ -"R2X-Ex-c6q.placeholderString" = "Custom Entry Sequence"; - -/* Class = "NSTextFieldCell"; title = "Window Sequence"; ObjectID = "RQB-bR-MC0"; */ -"RQB-bR-MC0.title" = "Window Sequence"; - -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "sNS-o1-pD7"; */ -"sNS-o1-pD7.title" = "OtherViews"; - -/* Class = "NSTextFieldCell"; title = "UUID"; ObjectID = "vTq-N1-5oa"; */ -"vTq-N1-5oa.title" = "UUID"; - -/* Class = "NSButtonCell"; title = "Show Plugin Data"; ObjectID = "X9y-K7-lix"; */ -"X9y-K7-lix.title" = "Show Plugin Data"; - diff --git a/MacPass/en.lproj/GeneralSettings.strings b/MacPass/en.lproj/GeneralSettings.strings deleted file mode 100644 index 9e2b5acd6..000000000 --- a/MacPass/en.lproj/GeneralSettings.strings +++ /dev/null @@ -1,75 +0,0 @@ - -/* Class = "NSMenu"; title = "ClipboardClearInterval"; ObjectID = "421"; */ -"421.title" = "ClipboardClearInterval"; - -/* Class = "NSMenuItem"; title = "after 10 Seconds"; ObjectID = "422"; */ -"422.title" = "after 10 Seconds"; - -/* Class = "NSMenuItem"; title = "after 30 Seconds"; ObjectID = "423"; */ -"423.title" = "after 30 Seconds"; - -/* Class = "NSMenuItem"; title = "after 1 Minute"; ObjectID = "424"; */ -"424.title" = "after 1 Minute"; - -/* Class = "NSMenuItem"; title = "Never"; ObjectID = "429"; */ -"429.title" = "Never"; - -/* Class = "NSTextFieldCell"; title = "Clear Copied Items"; ObjectID = "432"; */ -"432.title" = "Clear Copied Items"; - -/* Class = "NSButtonCell"; title = "Clear Clipboard on Quit"; ObjectID = "448"; */ -"448.title" = "Clear Clipboard on Quit"; - -/* Class = "NSBox"; title = "Security"; ObjectID = "465"; */ -"465.title" = "Security"; - -/* Class = "NSButtonCell"; title = "Reopen last Database after Launch"; ObjectID = "531"; */ -"531.title" = "Reopen last Database after Launch"; - -/* Class = "NSMenu"; title = "LockTimes"; ObjectID = "586"; */ -"586.title" = "LockTimes"; - -/* Class = "NSMenuItem"; title = "for 1 Minute"; ObjectID = "588"; */ -"588.title" = "for 1 Minute"; - -/* Class = "NSMenuItem"; title = "for 5 Minutes"; ObjectID = "589"; */ -"589.title" = "for 5 Minutes"; - -/* Class = "NSMenuItem"; title = "for 15 Minutes"; ObjectID = "603"; */ -"603.title" = "for 15 Minutes"; - -/* Class = "NSButtonCell"; title = "Lock after sleep"; ObjectID = "631"; */ -"631.title" = "Lock after sleep"; - -/* Class = "NSMenuItem"; title = "Never"; ObjectID = "804"; */ -"804.title" = "Never"; - -/* Class = "NSTextFieldCell"; title = "Lock while idle"; ObjectID = "806"; */ -"806.title" = "Lock while idle"; - -/* Class = "NSBox"; title = "File Handling"; ObjectID = "888"; */ -"888.title" = "File Handling"; - -/* Class = "NSMenuItem"; title = "after 5 Minutes"; ObjectID = "5gh-b6-cmG"; */ -"5gh-b6-cmG.title" = "after 5 Minutes"; - -/* Class = "NSButtonCell"; title = "Clear all stored locations"; ObjectID = "8Ri-2s-c39"; */ -"8Ri-2s-c39.title" = "Clear all stored locations"; - -/* Class = "NSTextFieldCell"; title = "Enabling this compromises security. If enabled, your preferences will contain mappings from database to keyfile. Key locations for databases without a password will not be saved."; ObjectID = "ACh-7H-42N"; */ -"ACh-7H-42N.title" = "Enabling this compromises security. If enabled, your preferences will contain mappings from database to keyfile. Key locations for databases without a password will not be saved."; - -/* Class = "NSButtonCell"; title = "Lock after log out"; ObjectID = "Dzn-9R-JjE"; */ -"Dzn-9R-JjE.title" = "Lock after log out"; - -/* Class = "NSTextFieldCell"; title = "Disabling this compromises security. If disabled, anything copied to the Clipboard in MacPass will be available on your connected iOS devices. You should clear the clipboard on those devices manually."; ObjectID = "JGX-Tp-KJk"; */ -"JGX-Tp-KJk.title" = "Disabling this compromises security. If disabled, anything copied to the Clipboard in MacPass will be available on your connected iOS devices. You should clear the clipboard on those devices manually."; - -/* Class = "NSTextFieldCell"; title = "If file changes:"; ObjectID = "QrK-hM-Xt1"; */ -"QrK-hM-Xt1.title" = "If file changes:"; - -/* Class = "NSButtonCell"; title = "Prevent Universal Clipboard support"; ObjectID = "fNy-mS-phi"; */ -"fNy-mS-phi.title" = "Prevent Universal Clipboard support"; - -/* Class = "NSButtonCell"; title = "Remember Keyfile for Databases"; ObjectID = "r6q-He-nYU"; */ -"r6q-He-nYU.title" = "Remember Keyfile for Databases"; diff --git a/MacPass/en.lproj/GroupInspectorView.strings b/MacPass/en.lproj/GroupInspectorView.strings deleted file mode 100644 index e643759e4..000000000 --- a/MacPass/en.lproj/GroupInspectorView.strings +++ /dev/null @@ -1,24 +0,0 @@ -/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "6FG-UZ-Adh"; */ -"6FG-UZ-Adh.title" = "Autotype Sequence"; - -/* Class = "NSTextFieldCell"; title = "Name"; ObjectID = "25"; */ -"25.title" = "Name"; - -/* Class = "NSButtonCell"; title = "Expires"; ObjectID = "32"; */ -"32.title" = "Expires"; - -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "231"; */ -"231.title" = "OtherViews"; - -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "243"; */ -"243.title" = "OtherViews"; - -/* Class = "NSTextFieldCell"; title = "Search"; ObjectID = "265"; */ -"265.title" = "Search"; - -/* Class = "NSTextFieldCell"; title = "Autotype"; ObjectID = "277"; */ -"277.title" = "Autotype"; - -/* Class = "NSButtonCell"; title = "Show Plugin Data"; ObjectID = "qGr-oT-WjP"; */ -"qGr-oT-WjP.title" = "Show Plugin Data"; - diff --git a/MacPass/en.lproj/IconSelection.strings b/MacPass/en.lproj/IconSelection.strings deleted file mode 100644 index 6055741a2..000000000 --- a/MacPass/en.lproj/IconSelection.strings +++ /dev/null @@ -1,9 +0,0 @@ -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "1kM-cI-P1o"; */ -"1kM-cI-P1o.title" = "Cancel"; - -/* Class = "NSButtonCell"; title = "Use Default Icon"; ObjectID = "102"; */ -"102.title" = "Use Default Icon"; - -/* Class = "NSButtonCell"; title = "Download Icon"; ObjectID = "iaf-XW-XUo"; */ -"iaf-XW-XUo.title" = "Download Icon"; - diff --git a/MacPass/en.lproj/InfoPlist.strings b/MacPass/en.lproj/InfoPlist.strings deleted file mode 100644 index 913eca4be..000000000 --- a/MacPass/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,15 +0,0 @@ -/* (No Comment) */ -"KDB Database" = "KDB Database"; - -/* (No Comment) */ -"KDBX Database" = "KDBX Database"; - -/* (No Comment) */ -"MacPass Plugin" = "MacPass Plugin"; - -/* (No Comment) */ -"NSHumanReadableCopyright" = "Copyright ©2012-2019 HicknHack Software GmbH. All rights reserved."; - -/* (No Comment) */ -"XML" = "XML"; - diff --git a/MacPass/en.lproj/InspectorView.strings b/MacPass/en.lproj/InspectorView.strings deleted file mode 100644 index 400d63f60..000000000 --- a/MacPass/en.lproj/InspectorView.strings +++ /dev/null @@ -1,24 +0,0 @@ -/* Class = "NSTabViewItem"; label = "Group"; ObjectID = "2896"; */ -"2896.label" = "Group"; - -/* Class = "NSTabViewItem"; label = "Entry"; ObjectID = "2897"; */ -"2897.label" = "Entry"; - -/* Class = "NSTabViewItem"; label = "NoSelection"; ObjectID = "2974"; */ -"2974.label" = "NoSelection"; - -/* Class = "NSTextFieldCell"; title = "No Selection"; ObjectID = "2986"; */ -"2986.title" = "No Selection"; - -/* Class = "NSTextFieldCell"; title = "Label"; ObjectID = "3014"; */ -"3014.title" = "Label"; - -/* Class = "NSTextFieldCell"; title = "Notes"; ObjectID = "hwn-UY-9Cr"; */ -"hwn-UY-9Cr.title" = "Notes"; - -/* Class = "CocoaBindingsConnection"; ibShadowedIsNilPlaceholder = "None"; ObjectID = "Xpb-G8-gXl"; */ -"Xpb-G8-gXl.ibShadowedIsNilPlaceholder" = "None"; - -/* Class = "CocoaBindingsConnection"; ibShadowedNoSelectionPlaceholder = "No Selection"; ObjectID = "Xpb-G8-gXl"; */ -"Xpb-G8-gXl.ibShadowedNoSelectionPlaceholder" = "No Selection"; - diff --git a/MacPass/en.lproj/Localizable.strings b/MacPass/en.lproj/Localizable.strings index c2ef6a8ba..f34cb98bc 100644 --- a/MacPass/en.lproj/Localizable.strings +++ b/MacPass/en.lproj/Localizable.strings @@ -37,17 +37,17 @@ /* Action to add an entry via template */ "ADD_TREMPLATE_ENTRY" = "Create Template Entry"; -/* Button in dialog to leave autotype disabled and continiue! */ -"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OK" = "Keep Autotype disabled."; +/* Allow the download of the plugin repository file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_ALLOW_DOWNLOAD" = "Update definitions online"; -/* Button in dialog to open accessibilty preferences pane! */ -"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OPEN_PREFERENCES" = "Open Accessibilty Preferences…"; +/* Informative text displayed on the alert that shows up when MacPass asks for permssion to download the plugin repository JSON file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_CONNECTION_PERMISSION_INFORMATIVE_TEXT" = "The plugin defintions are hosted online at https://macpassapp.org. MacPass would like to download those files to ensure the data is up to date."; -/* Alert informative text displayed when Autotype performs self check and lacks accessibilty permissions */ -"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_INFORMATIVE_TEXT" = "The system prevents MacPass from sending key strokes to other Applications. To enable Autotype please grant MacPass Accessibilty rights in the privacy preferences."; +/* Message displayed on the alert that askf for permission to download the plugin repository JSON file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_CONNECTION_PERMISSION_MESSAGE" = "MacPass would like to check for updates of plugin definitions online"; -/* Alert message displayed when Autotype performs self check and lacks accessibilty permissions */ -"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_MESSAGE_TEXT" = "MacPass cannot perform Autotype"; +/* Disallow the download of the plugin repository file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_DISALLOW_DOWNLOAD" = "Do not update defintions"; /* Button in dialog to leave plugin ds disabled and continiue! */ "ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OK" = "OK"; @@ -56,10 +56,10 @@ "ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OPEN_PREFERENCES" = "Show Plugin Preferences…"; /* Informative text of the alert displayed when plugins where disabled due to incompatibilty */ -"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_INFORMATIVE_TEXT" = "Some plugins where disabled, because they are not compatible with this version of MacPass. Open the plugin settings for details."; +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_INFORMATIVE_TEXT" = "Some plugins were disabled, because they are not compatible with this version of MacPass. Open the plugin settings for details."; /* Message text of the alert displayed when plugins where disabled due to incompatibilty */ -"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_MESSAGE" = "Incompatible Plugins deteced."; +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_MESSAGE" = "Incompatible Plugins detected."; /* Alert informative text when plugins or their settings change and require a restart */ "ALERT_INFORMATIVE_TEXT_PLUGINS_CHANGED_SUGGEST_RESTART" = "Changes to plugins and global plugin settings take only effect after restart. Restart MacPass now?"; @@ -85,7 +85,7 @@ /* Alert message text to ask the user if he really want to uninstall the plugin. Include %@ placeholder for plugin name */ "ALERT_MESSAGE_TEXT_REALLY_UNINSTALL_PLUGIN_%@" = "Should the Plugin %@ really be uninstalled?"; -/* Infromative text of the disabled updates alert! */ +/* Informative text of the disabled updates alert! */ "ALERT_UPDATES_DISABLED_INFORMATIVE_TEXT_%@!" = "Updates for this build of %@ are disabled!"; /* Message text for disabled updates alert! */ @@ -101,6 +101,12 @@ /* Menu item for automatic trash creation */ "AUTOCREATE_TRASH_FOLDER" = "Create Automatically"; +/* Message text in the autotype selection window. Placeholder is %1 - windowTitle */ +"AUTOTYPE_CANDIDATE_SELECTION_WINDOW_MESSAGE_%@" = "There are multiple matches for the current window: %@. Please select which match should be used."; + +/* Window title for the stand-alone password creator window */ +"AUTOTYPE_DOCTOR_RESULTS_WINDOW_TITLE" = "Autotype Doctor"; + /* Inherit autotype settings menu item */ "AUTOTYPE_INHERIT" = "Inherit Autotype Settings"; @@ -110,8 +116,8 @@ /* Disable autotype menu item */ "AUTOTYPE_NO" = "Disable Autotype"; -/* Notification: Autotype failed, MacPass has no permission to send key strokes */ -"AUTOTYPE_NOTIFICATION_MACPASS_HAS_NO_ACCESSIBILTY_PERMISSIONS" = "Autotype disabled because of missing accessibilty access."; +/* Notification: Autotype failed, MacPass has not enough permissions to perform autotype */ +"AUTOTYPE_NOTIFICATION_MACPASS_IS_MISSING_PERMISSIONS" = "MacPass does not have all necessary permissions to perform Autotype."; /* Notification: Autotype failed, no documents are open */ "AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Please open a database file to use Global Autotype!"; @@ -122,6 +128,18 @@ /* Notification: Autotype found a single match for %@ (string placeholder). */ "AUTOTYPE_OVERLAY_SINGLE_MATCH_FOR_%@" = "Found Match for %@!"; +/* Status label when no issue were found in accessibilty */ +"AUTOTYPE_STATUS_ACCESSIBILTY_PERMISSIONS_OK" = "MacPass has permission to control your computer (Accessibility)"; + +/* Status MacPass has no accessibilty permissions */ +"AUTOTYPE_STATUS_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass has no permission to control your computer (Accessibility)"; + +/* Status MacPass has no screen recording permissions */ +"AUTOTYPE_STATUS_NO_SCREEN_RECORDING_PERMISSIONS" = "MacPass has no permission to record your screen"; + +/* Status lable when no issue were found in screen recording permissions */ +"AUTOTYPE_STATUS_SCREEN_RECORDING_PERMISSIONS_OK" = "MacPass has permission to record your screen"; + /* Notficication: Autotype timed out */ "AUTOTYPE_TIMED_OUT" = "Autotype timed out."; @@ -231,7 +249,7 @@ /* Context menu that copies reference to username */ "COPY_USERNAME_REFERENCE" = "Username"; -/* Curstom attribute reference item */ +/* Custom attribute reference item */ "CUSTOM_ATTRIBUTE" = "Custom Attribute"; /* Title for menu for custom search filters */ @@ -286,7 +304,7 @@ "DRAG_GROUP" = "Drag Group"; /* Action name for duplicating entries */ -"DUPLICATE_ENTRIES_%ld" = "Duplicate Entries %ld"; +"DUPLICATE_ENTRIES_ACTION_NAME" = "Duplicate Entries"; /* Menu item to directly diplicate an entry */ "DUPLICATE_ENTRY" = "Duplicate Entry"; @@ -294,6 +312,12 @@ /* Menu item to duplicate an entry with options how to duplicate. Will present a dialog. */ "DUPLICATE_ENTRY_WITH_OPTIONS" = "Duplicate Entry…"; +/* Menu item to directly diplicate a group */ +"DUPLICATE_GROUP" = "Duplicate Group"; + +/* Action name for duplicating groups */ +"DUPLICATE_GROUPS_ACTION_NAME" = "Duplicate Group"; + /* Menu item in the database outline context menu to change the template group Menu item on the add entry context menu to edit template groups */ "EDIT_TEMPLATE_GROUP" = "Edit Entry Template Group"; @@ -325,6 +349,12 @@ /* Error description given when adding an invalid plugin */ "ERROR_INVALID_PLUGIN" = "Invalid plugin"; +/* Error description for missing accessibility permissions */ +"ERROR_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass has no permission to control your computer (Accessibility)"; + +/* Error description for missing screen recording permissions */ +"ERROR_NO_PERMISSION_TO_RECORD_SCREEN" = "MacPass has no permission to record your screen"; + /* Passwords do not match */ "ERROR_PASSWORD_MISSMATCH" = "Passwords do not match!"; @@ -363,7 +393,7 @@ "FILE_OPEN_ERROR" = "Error opening file."; /* General Settings Label */ -"GENERAL_SETTINGS" = "General"; +"GENERAL_PREFERENCES" = "General"; /* Group column title */ "GROUP" = "Group"; @@ -433,7 +463,7 @@ "NEW_ENTRY" = "New Entry"; /* Submenu to add an entry via template */ -"NEW_ENTRY_WITH_TEMPLATE_%@" = "Create Entry with Template %@"; +"NEW_ENTRY_WITH_TEMPLATE_%@" = "from %@"; /* Action name for a newly created group Menu item to create a new group @@ -486,9 +516,6 @@ /* Action button in Notification to open a document */ "OPEN_DOCUMENT" = "Open Document"; -/* Action button in Notification to show the Accessibilty preferences */ -"OPEN_PREFERENCES" = "Open Accessiblity Preferences…"; - /* Menu item to open the URL with the default application */ "OPEN_URL" = "Open URL"; @@ -575,7 +602,7 @@ /* Error for a plugin that was not signed properly */ "PLUGIN_ERROR_UNSECURE_PLUGIN" = "Plugin is not properly signed"; -/* Plugin specifies the wrong principla class! */ +/* Plugin specifies the wrong principal class! */ "PLUGIN_ERROR_WRONG_PRINCIPAL_CLASS" = "Unexpected principal class in plugin"; /* name for disabled unloaded plugin */ @@ -608,7 +635,7 @@ /* Restart */ "RESTART" = "Restart"; -/* Action to restore and Entry to a previous state of it's history */ +/* Action to restore an Entry to a previous state of its history */ "RESTORE_HISTORY_ENTRY" = "Restore History Entry"; /* Menu item to save the selected attached file. @@ -660,6 +687,12 @@ /* Checkbox in dialog to 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."; +/* Action button in Notification to show the Autotype Doctor */ +"SHOW_AUTOTYPE_DOCTOR" = "Show Autotype Doctor"; + +/* Menu item to show the entries group in the outline view */ +"SHOW_GROUP_IN_OUTLINE" = "Show Group in Outline"; + /* Menu item to show the history of the selected entry Toolbar item to toggle history display */ "SHOW_HISTORY" = "Show History"; @@ -676,6 +709,42 @@ /* Toolbar item to perform autotype */ "TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "Autotype"; +/* Touchbar button label for choosing the keyfile */ +"TOUCHBAR_CHOOSE_KEYFILE" = "Choose Keyfile"; + +/* Touchbar button label for copying the password */ +"TOUCHBAR_COPY_PASSWORD" = "Copy Password"; + +/* Touchbar button label for copying the username */ +"TOUCHBAR_COPY_USERNAME" = "Copy Username"; + +/* Touchbar button label for deleting elements */ +"TOUCHBAR_DELETE" = "Delete"; + +/* Touchbar button label for opening the popover to edit */ +"TOUCHBAR_EDIT" = "Edit"; + +/* Touchbar button label for locking the database */ +"TOUCHBAR_LOCK_DATABASE" = "Lock Database"; + +/* Touchbar button label for creating a new item */ +"TOUCHBAR_NEW_ENTRY" = "New Entry"; + +/* Touchbar button label for creating a new group */ +"TOUCHBAR_NEW_GROUP" = "New Group"; + +/* Touchbar button label for performing autotype */ +"TOUCHBAR_PERFORM_AUTOTYPE" = "Perform Autotype"; + +/* Touchbar button label for searching the database */ +"TOUCHBAR_SEARCH" = "Search Database"; + +/* Touchbar button label for showing the password */ +"TOUCHBAR_SHOW_PASSWORD" = "Show Password"; + +/* Touchbar button label for unlocking the database */ +"TOUCHBAR_UNLOCK_DATABASE" = "Unlock Database"; + /* Move Entry to Trash */ "TRASH_ENTRY" = "Trash Entry"; @@ -698,7 +767,7 @@ "UNKNOWN_TOOLBAR_ITEM" = "Unknown Toolbar Item"; /* Update Settings Label */ -"UPDATE_SETTINGS" = "Updates"; +"UPDATE_PREFERENCES" = "Updates"; /* Menu item to toggle display of url column in entry table Submenu with options what to do with the URL of an entry diff --git a/MacPass/en.lproj/Localizable.stringsdict b/MacPass/en.lproj/Localizable.stringsdict index e3db31f3f..2d22e8554 100644 --- a/MacPass/en.lproj/Localizable.stringsdict +++ b/MacPass/en.lproj/Localizable.stringsdict @@ -2,6 +2,22 @@ + DUPLICATE_GROUPS_ACTION_NAME + + NSStringLocalizedFormatKey + %#@groups@ + groups + + NSStringFormatValueTypeKey + ld + NSStringFormatSpecTypeKey + NSStringPluralRuleType + one + Duplicate Group + other + Duplicate Groups + + %ld_CHARACTERS_TO_PICK_REMAINING NSStringLocalizedFormatKey @@ -20,7 +36,7 @@ All characters picked - DUPLICATE_ENTRIES_%ld + DUPLICATE_ENTRIES_ACTION_NAME NSStringLocalizedFormatKey %#@entries@ diff --git a/MacPass/en.lproj/MainMenu.strings b/MacPass/en.lproj/MainMenu.strings deleted file mode 100644 index d98009fcc..000000000 --- a/MacPass/en.lproj/MainMenu.strings +++ /dev/null @@ -1,195 +0,0 @@ -/* Class = "NSMenuItem"; title = "Focus Entries"; ObjectID = "2VP-vB-IeX"; */ -"2VP-vB-IeX.title" = "Focus Entries"; - -/* Class = "NSMenuItem"; title = "Item"; ObjectID = "3st-rv-EeQ"; */ -"3st-rv-EeQ.title" = "Item"; - -/* Class = "NSMenu"; title = "Import"; ObjectID = "4q9-u1-pcm"; */ -"4q9-u1-pcm.title" = "Import"; - -/* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "5"; */ -"5.title" = "Bring All to Front"; - -/* Class = "NSMenuItem"; title = "Window"; ObjectID = "19"; */ -"19.title" = "Window"; - -/* Class = "NSMenuItem"; title = "Minimize"; ObjectID = "23"; */ -"23.title" = "Minimize"; - -/* Class = "NSMenu"; title = "Window"; ObjectID = "24"; */ -"24.title" = "Window"; - -/* Class = "NSMenu"; title = "AMainMenu"; ObjectID = "29"; */ -"29.title" = "AMainMenu"; - -/* Class = "NSMenuItem"; title = "MacPass"; ObjectID = "56"; */ -"56.title" = "MacPass"; - -/* Class = "NSMenu"; title = "MacPass"; ObjectID = "57"; */ -"57.title" = "MacPass"; - -/* Class = "NSMenuItem"; title = "About MacPass"; ObjectID = "58"; */ -"58.title" = "About MacPass"; - -/* Class = "NSMenuItem"; title = "Open…"; ObjectID = "72"; */ -"72.title" = "Open…"; - -/* Class = "NSMenuItem"; title = "Close"; ObjectID = "73"; */ -"73.title" = "Close"; - -/* Class = "NSMenuItem"; title = "Save…"; ObjectID = "75"; */ -"75.title" = "Save…"; - -/* Class = "NSMenu"; title = "File"; ObjectID = "81"; */ -"81.title" = "File"; - -/* Class = "NSMenuItem"; title = "New Database"; ObjectID = "82"; */ -"82.title" = "New Database"; - -/* Class = "NSMenuItem"; title = "File"; ObjectID = "83"; */ -"83.title" = "File"; - -/* Class = "NSMenuItem"; title = "Revert to Saved"; ObjectID = "112"; */ -"112.title" = "Revert to Saved"; - -/* Class = "NSMenuItem"; title = "Open Recent"; ObjectID = "124"; */ -"124.title" = "Open Recent"; - -/* Class = "NSMenu"; title = "Open Recent"; ObjectID = "125"; */ -"125.title" = "Open Recent"; - -/* Class = "NSMenuItem"; title = "Clear Menu"; ObjectID = "126"; */ -"126.title" = "Clear Menu"; - -/* Class = "NSMenuItem"; title = "Preferences…"; ObjectID = "129"; */ -"129.title" = "Preferences…"; - -/* Class = "NSMenu"; title = "Services"; ObjectID = "130"; */ -"130.title" = "Services"; - -/* Class = "NSMenuItem"; title = "Services"; ObjectID = "131"; */ -"131.title" = "Services"; - -/* Class = "NSMenuItem"; title = "Hide MacPass"; ObjectID = "134"; */ -"134.title" = "Hide MacPass"; - -/* Class = "NSMenuItem"; title = "Quit MacPass"; ObjectID = "136"; */ -"136.title" = "Quit MacPass"; - -/* Class = "NSMenuItem"; title = "Hide Others"; ObjectID = "145"; */ -"145.title" = "Hide Others"; - -/* Class = "NSMenuItem"; title = "Show All"; ObjectID = "150"; */ -"150.title" = "Show All"; - -/* Class = "NSMenuItem"; title = "Copy"; ObjectID = "197"; */ -"197.title" = "Copy"; - -/* Class = "NSMenuItem"; title = "Select All"; ObjectID = "198"; */ -"198.title" = "Select All"; - -/* Class = "NSMenuItem"; title = "Cut"; ObjectID = "199"; */ -"199.title" = "Cut"; - -/* Class = "NSMenuItem"; title = "Delete"; ObjectID = "202"; */ -"202.title" = "Delete"; - -/* Class = "NSMenuItem"; title = "Paste"; ObjectID = "203"; */ -"203.title" = "Paste"; - -/* Class = "NSMenu"; title = "Edit"; ObjectID = "205"; */ -"205.title" = "Edit"; - -/* Class = "NSMenuItem"; title = "Undo"; ObjectID = "207"; */ -"207.title" = "Undo"; - -/* Class = "NSMenuItem"; title = "Find…"; ObjectID = "209"; */ -"209.title" = "Find…"; - -/* Class = "NSMenuItem"; title = "Redo"; ObjectID = "215"; */ -"215.title" = "Redo"; - -/* Class = "NSMenuItem"; title = "Edit"; ObjectID = "217"; */ -"217.title" = "Edit"; - -/* Class = "NSMenuItem"; title = "Zoom"; ObjectID = "239"; */ -"239.title" = "Zoom"; - -/* Class = "NSMenuItem"; title = "View"; ObjectID = "295"; */ -"295.title" = "View"; - -/* Class = "NSMenu"; title = "View"; ObjectID = "296"; */ -"296.title" = "View"; - -/* Class = "NSMenuItem"; title = "Show Toolbar"; ObjectID = "297"; */ -"297.title" = "Show Toolbar"; - -/* Class = "NSMenuItem"; title = "Customize Toolbar…"; ObjectID = "298"; */ -"298.title" = "Customize Toolbar…"; - -/* Class = "NSMenuItem"; title = "Help"; ObjectID = "490"; */ -"490.title" = "Help"; - -/* Class = "NSMenu"; title = "Help"; ObjectID = "491"; */ -"491.title" = "Help"; - -/* Class = "NSMenuItem"; title = "MacPass Help"; ObjectID = "492"; */ -"492.title" = "MacPass Help"; - -/* Class = "NSMenuItem"; title = "Toggle Inspector"; ObjectID = "1181"; */ -"1181.title" = "Toggle Inspector"; - -/* Class = "NSMenuItem"; title = "Show Password Generator"; ObjectID = "1200"; */ -"1200.title" = "Show Password Generator"; - -/* Class = "NSMenuItem"; title = "Change Master Password…"; ObjectID = "1203"; */ -"1203.title" = "Change Master Password…"; - -/* Class = "NSMenuItem"; title = "Database Settings…"; ObjectID = "1231"; */ -"1231.title" = "Database Settings…"; - -/* Class = "NSMenuItem"; title = "Save As…"; ObjectID = "1243"; */ -"1243.title" = "Save As…"; - -/* Class = "NSMenuItem"; title = "XML…"; ObjectID = "1259"; */ -"1259.title" = "XML…"; - -/* Class = "NSMenuItem"; title = "Lock"; ObjectID = "1261"; */ -"1261.title" = "Lock"; - -/* Class = "NSMenuItem"; title = "Import"; ObjectID = "aTb-sW-nUd"; */ -"aTb-sW-nUd.title" = "Import"; - -/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "aVO-9F-Lwc"; */ -"aVO-9F-Lwc.title" = "Quicklook"; - -/* Class = "NSMenuItem"; title = "Focus Groups"; ObjectID = "HxM-dV-LIH"; */ -"HxM-dV-LIH.title" = "Focus Groups"; - -/* Class = "NSMenuItem"; title = "Save a Copy…"; ObjectID = "i24-Gn-j9c"; */ -"i24-Gn-j9c.title" = "Save a Copy…"; - -/* Class = "NSMenuItem"; title = "Fix Autotype…"; ObjectID = "nx7-Vf-LiD"; */ -"nx7-Vf-LiD.title" = "Fix Autotype…"; - -/* Class = "NSMenu"; title = "Export"; ObjectID = "p8h-Fg-h1O"; */ -"p8h-Fg-h1O.title" = "Export"; - -/* Class = "NSMenuItem"; title = "XML…"; ObjectID = "rW0-r1-QYL"; */ -"rW0-r1-QYL.title" = "XML…"; - -/* Class = "NSMenu"; title = "Item"; ObjectID = "Ttt-tR-emo"; */ -"Ttt-tR-emo.title" = "Item"; - -/* Class = "NSMenuItem"; title = "Export"; ObjectID = "tz9-yK-pOf"; */ -"tz9-yK-pOf.title" = "Export"; - -/* Class = "NSMenuItem"; title = "Focus Inspector"; ObjectID = "Zje-Me-5c8"; */ -"Zje-Me-5c8.title" = "Focus Inspector"; - -/* Class = "NSMenuItem"; title = "Check for Updates…"; ObjectID = "zMO-8r-g5v"; */ -"zMO-8r-g5v.title" = "Check for Updates…"; - -/* Class = "NSMenuItem"; title = "Merge With…"; ObjectID = "zvE-0h-UxI"; */ -"zvE-0h-UxI.title" = "Merge With…"; - diff --git a/MacPass/en.lproj/PasswordCreatorView.strings b/MacPass/en.lproj/PasswordCreatorView.strings deleted file mode 100644 index 07c47bdb5..000000000 --- a/MacPass/en.lproj/PasswordCreatorView.strings +++ /dev/null @@ -1,45 +0,0 @@ -/* Class = "NSTextFieldCell"; title = "Password:"; ObjectID = "149"; */ -"149.title" = "Password:"; - -/* Class = "NSTextFieldCell"; title = "Length:"; ObjectID = "179"; */ -"179.title" = "Length:"; - -/* Class = "NSBox"; title = "Allowed Characters"; ObjectID = "332"; */ -"332.title" = "Character options"; - -/* Class = "NSButtonCell"; title = "A-Z"; ObjectID = "453"; */ -"453.title" = "A-Z"; - -/* Class = "NSButtonCell"; title = "a-z"; ObjectID = "457"; */ -"457.title" = "a-z"; - -/* Class = "NSButtonCell"; title = "0-9"; ObjectID = "461"; */ -"461.title" = "0-9"; - -/* Class = "NSButtonCell"; title = "#!?"; ObjectID = "465"; */ -"465.title" = "#!?"; - -/* Class = "NSButtonCell"; title = "Custom"; ObjectID = "469"; */ -"469.title" = "Custom"; - -/* Class = "NSButtonCell"; title = "Use Password"; ObjectID = "495"; */ -"495.title" = "Use Password"; - -/* Class = "NSButtonCell"; title = "Copy password to pasteboard"; ObjectID = "501"; */ -"501.title" = "Copy password to pasteboard"; - -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "614"; */ -"614.title" = "Cancel"; - -/* Class = "NSTextFieldCell"; title = "Entropy:"; ObjectID = "647"; */ -"647.title" = "Entropy:"; - -/* Class = "NSTextFieldCell"; title = "25000 bit"; ObjectID = "653"; */ -"653.title" = "25000 bit"; - -/* Class = "NSButtonCell"; title = "Use default only for selected entry"; ObjectID = "cfZ-5F-Nge"; */ -"cfZ-5F-Nge.title" = "Use default only for selected entry"; - -/* Class = "NSButtonCell"; title = "Set Default"; ObjectID = "Wvs-Md-Ob8"; */ -"Wvs-Md-Ob8.title" = "Set Default"; - diff --git a/MacPass/en.lproj/PasswordEditWindow.strings b/MacPass/en.lproj/PasswordEditWindow.strings deleted file mode 100644 index 76a18782e..000000000 --- a/MacPass/en.lproj/PasswordEditWindow.strings +++ /dev/null @@ -1,30 +0,0 @@ -/* Class = "NSWindow"; title = "Change Password"; ObjectID = "1"; */ -"1.title" = "Change Password"; - -/* Class = "NSTextFieldCell"; title = "Missmatching Passwords"; ObjectID = "14"; */ -"14.title" = "Missmatching Passwords"; - -/* Class = "NSSecureTextFieldCell"; placeholderString = "Repeat Password"; ObjectID = "15"; */ -"15.placeholderString" = "Repeat Password"; - -/* Class = "NSTextFieldCell"; title = "Repeat:"; ObjectID = "16"; */ -"16.title" = "Repeat:"; - -/* Class = "NSSecureTextFieldCell"; placeholderString = "Enter Password"; ObjectID = "18"; */ -"18.placeholderString" = "Enter Password"; - -/* Class = "NSButtonCell"; title = "Generate Keyfile"; ObjectID = "21"; */ -"21.title" = "Generate Keyfile"; - -/* Class = "NSTextFieldCell"; title = "Keyfile:"; ObjectID = "22"; */ -"22.title" = "Keyfile:"; - -/* Class = "NSButtonCell"; title = "Change Password"; ObjectID = "69"; */ -"69.title" = "Change Password"; - -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "73"; */ -"73.title" = "Cancel"; - -/* Class = "NSButtonCell"; title = "Password:"; ObjectID = "OQz-DA-SoY"; */ -"OQz-DA-SoY.title" = "Password:"; - diff --git a/MacPass/en.lproj/PasswordInputView.strings b/MacPass/en.lproj/PasswordInputView.strings deleted file mode 100644 index d8a7a3fc8..000000000 --- a/MacPass/en.lproj/PasswordInputView.strings +++ /dev/null @@ -1,18 +0,0 @@ -/* Class = "NSButtonCell"; title = "Unlock"; ObjectID = "3"; */ -"3.title" = "Unlock"; - -/* Class = "NSTextFieldCell"; title = "Keyfile"; ObjectID = "18"; */ -"18.title" = "Keyfile"; - -/* Class = "NSTextFieldCell"; title = "Wrong password!"; ObjectID = "269"; */ -"269.title" = "Wrong password!"; - -/* Class = "NSSecureTextFieldCell"; placeholderString = "Enter Password"; ObjectID = "339"; */ -"339.placeholderString" = "Enter Password"; - -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "erj-mR-UyO"; */ -"erj-mR-UyO.title" = "Cancel"; - -/* Class = "NSButtonCell"; title = "Password"; ObjectID = "IU9-5u-jn9"; */ -"IU9-5u-jn9.title" = "Password"; - diff --git a/MacPass/en.lproj/PluginPreferences.strings b/MacPass/en.lproj/PluginPreferences.strings deleted file mode 100644 index dcb14790b..000000000 --- a/MacPass/en.lproj/PluginPreferences.strings +++ /dev/null @@ -1,27 +0,0 @@ - -/* Class = "NSTextFieldCell"; title = "If enabled, Plugins without proper signatures will be allowed to load. 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, Plugins without proper signatures will be allowed to load. 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 = "Plugin Settings Info"; ObjectID = "OOr-SW-jZb"; */ -"OOr-SW-jZb.title" = "Plugin Settings Info"; - -/* 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 = "NSButtonCell"; title = "Browse Available Plugins…"; ObjectID = "sqO-8H-n1y"; */ -"sqO-8H-n1y.title" = "Browse Available Plugins…"; - -/* Class = "NSBox"; title = "Box"; ObjectID = "vBs-Ga-aq0"; */ -"vBs-Ga-aq0.title" = "Box"; - -/* Class = "NSButtonCell"; title = "Force loading of incompatible Plugins"; ObjectID = "yak-fS-jtA"; */ -"yak-fS-jtA.title" = "Force loading of incompatible Plugins"; - -/* Class = "NSTextFieldCell"; title = "Label"; ObjectID = "yuK-qH-jxx"; */ -"yuK-qH-jxx.title" = "Label"; diff --git a/MacPass/en.lproj/UpdateSettings.strings b/MacPass/en.lproj/UpdateSettings.strings deleted file mode 100644 index e6a1601d5..000000000 --- a/MacPass/en.lproj/UpdateSettings.strings +++ /dev/null @@ -1,21 +0,0 @@ -/* Class = "NSMenuItem"; title = "every Week"; ObjectID = "3FR-Va-iau"; */ -"3FR-Va-iau.title" = "every Week"; - -/* Class = "NSTextFieldCell"; title = "Check for Updates"; ObjectID = "9tL-CA-Vdg"; */ -"9tL-CA-Vdg.title" = "Check for Updates"; - -/* Class = "NSMenuItem"; title = "every Hour"; ObjectID = "DjF-1I-6Nq"; */ -"DjF-1I-6Nq.title" = "every Hour"; - -/* Class = "NSMenuItem"; title = "every Day"; ObjectID = "o9E-hk-H1T"; */ -"o9E-hk-H1T.title" = "every Day"; - -/* Class = "NSButtonCell"; title = "Automatically Check for Updates"; ObjectID = "RFg-q1-AwJ"; */ -"RFg-q1-AwJ.title" = "Automatically Check for Updates"; - -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "RKd-H8-eCF"; */ -"RKd-H8-eCF.title" = "OtherViews"; - -/* Class = "NSMenuItem"; title = "every Month"; ObjectID = "Uo3-kv-1ro"; */ -"Uo3-kv-1ro.title" = "every Month"; - diff --git a/MacPass/en.lproj/WelcomeView.strings b/MacPass/en.lproj/WelcomeView.strings deleted file mode 100644 index 92e48994e..000000000 --- a/MacPass/en.lproj/WelcomeView.strings +++ /dev/null @@ -1,12 +0,0 @@ -/* Class = "NSTextFieldCell"; title = "Welcome to MacPass"; ObjectID = "24"; */ -"24.title" = "Welcome to MacPass"; - -/* Class = "NSButtonCell"; title = "Open Database…"; ObjectID = "44"; */ -"44.title" = "Open Database…"; - -/* Class = "NSButtonCell"; title = "Create new Database"; ObjectID = "48"; */ -"48.title" = "Create new Database"; - -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "70"; */ -"70.title" = "Cancel"; - diff --git a/MacPass/en.lproj/WorkflowSettings.strings b/MacPass/en.lproj/WorkflowSettings.strings deleted file mode 100644 index 8ee4dc0ea..000000000 --- a/MacPass/en.lproj/WorkflowSettings.strings +++ /dev/null @@ -1,48 +0,0 @@ -/* Class = "NSBox"; title = "Entry Table"; ObjectID = "2"; */ -"2.title" = "Entry Table"; - -/* Class = "NSMenuItem"; title = "Default Browser"; ObjectID = "7YX-EA-9KA"; */ -"7YX-EA-9KA.title" = "Default Browser"; - -/* Class = "NSTextFieldCell"; title = "Double-click on URL:"; ObjectID = "10"; */ -"10.title" = "Double-click on URL:"; - -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "15"; */ -"15.title" = "OtherViews"; - -/* Class = "NSMenuItem"; title = "Copies URL"; ObjectID = "16"; */ -"16.title" = "Copies URL"; - -/* Class = "NSMenuItem"; title = "Opens URL"; ObjectID = "17"; */ -"17.title" = "Opens URL"; - -/* Class = "NSTextFieldCell"; title = "Double-click on Title:"; ObjectID = "37"; */ -"37.title" = "Double-click on Title:"; - -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "42"; */ -"42.title" = "OtherViews"; - -/* Class = "NSMenuItem"; title = "Is Ignored"; ObjectID = "43"; */ -"43.title" = "Is Ignored"; - -/* Class = "NSMenuItem"; title = "Opens Inspector"; ObjectID = "44"; */ -"44.title" = "Opens Inspector"; - -/* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "gej-kA-GzQ"; */ -"gej-kA-GzQ.title" = "Item 2"; - -/* Class = "NSButtonCell"; title = "Update password for new entries"; ObjectID = "RaM-t2-DVR"; */ -"RaM-t2-DVR.title" = "Update password for new entries"; - -/* Class = "NSTextFieldCell"; title = "Open URLs in:"; ObjectID = "soD-wI-YOH"; */ -"soD-wI-YOH.title" = "Open URLs in:"; - -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "XgO-Tj-QjO"; */ -"XgO-Tj-QjO.title" = "OtherViews"; - -/* Class = "NSBox"; title = "Templates"; ObjectID = "Xvt-tP-TbR"; */ -"Xvt-tP-TbR.title" = "Templates"; - -/* Class = "NSMenuItem"; title = "Item 3"; ObjectID = "zC2-cM-KDv"; */ -"zC2-cM-KDv.title" = "Item 3"; - diff --git a/MacPass/es.lproj/AutotypeBuilderView.strings b/MacPass/es.lproj/AutotypeBuilderView.strings new file mode 100644 index 000000000..7cb5886b2 --- /dev/null +++ b/MacPass/es.lproj/AutotypeBuilderView.strings @@ -0,0 +1,9 @@ +/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "8ny-Qk-Jvo"; */ +"8ny-Qk-Jvo.title" = "Secuencia de Autotecleo"; + +/* Class = "NSButtonCell"; title = "Set Autotype Sequence"; ObjectID = "aOD-Ih-Sft"; */ +"aOD-Ih-Sft.title" = "Establecer secuencia de autotecleo"; + +/* Class = "NSTextFieldCell"; title = "Available Commands and Placeholders"; ObjectID = "lug-97-H9D"; */ +"lug-97-H9D.title" = "Comandos disponibles y referencias"; + diff --git a/MacPass/es.lproj/AutotypeCandidateSelectionView.strings b/MacPass/es.lproj/AutotypeCandidateSelectionView.strings new file mode 100644 index 000000000..0e073a76e --- /dev/null +++ b/MacPass/es.lproj/AutotypeCandidateSelectionView.strings @@ -0,0 +1,15 @@ +/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "60p-7v-Nje"; */ +"60p-7v-Nje.title" = "Cancelar"; + +/* Class = "NSTextFieldCell"; title = "There are multiple matches for the current window. Please select which match should be used."; ObjectID = "gcf-gb-ZsF"; */ +"gcf-gb-ZsF.title" = "Hay múltiples coincidencias para la ventana actual. Por favor seleccione cual usar."; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "PKW-gr-yqN"; */ +"PKW-gr-yqN.title" = "Celda de texto"; + +/* Class = "NSTextFieldCell"; title = "Content"; ObjectID = "TN3-3a-LaA"; */ +"TN3-3a-LaA.title" = "Contenido"; + +/* Class = "NSButtonCell"; title = "Perform Autotype"; ObjectID = "w7H-hx-CUF"; */ +"w7H-hx-CUF.title" = "Autoteclear"; + diff --git a/MacPass/es.lproj/ContextBar.strings b/MacPass/es.lproj/ContextBar.strings index eb8ae97b3..4040f8ff0 100644 --- a/MacPass/es.lproj/ContextBar.strings +++ b/MacPass/es.lproj/ContextBar.strings @@ -1,37 +1,27 @@ - /* Class = "NSTextFieldCell"; title = "Search:"; ObjectID = "7"; */ "7.title" = "Buscar:"; -/* Class = "NSButtonCell"; title = "Title"; ObjectID = "53D-ne-nv6"; */ -"53D-ne-nv6.title" = "Título"; - /* Class = "NSButtonCell"; title = "Empty Trash"; ObjectID = "8Ok-oe-6AB"; */ "8Ok-oe-6AB.title" = "Vaciar Papelera"; /* Class = "NSTextFieldCell"; title = "Trash"; ObjectID = "8P1-Rp-sF4"; */ "8P1-Rp-sF4.title" = "Papelera"; +/* Class = "NSButtonCell"; title = "Title"; ObjectID = "53D-ne-nv6"; */ +"53D-ne-nv6.title" = "Título"; + /* Class = "NSButtonCell"; title = "URL"; ObjectID = "92o-gN-Psj"; */ "92o-gN-Psj.title" = "URL"; /* Class = "NSMenuItem"; title = "Item 3"; ObjectID = "CFk-71-NYQ"; */ "CFk-71-NYQ.title" = "Item 3"; -/* Class = "NSTextFieldCell"; title = "History"; ObjectID = "ER3-Ic-v0N"; */ -"ER3-Ic-v0N.title" = "Historial"; - -/* Class = "NSMenuItem"; title = "Item 1"; ObjectID = "LRm-iZ-XrA"; */ -"LRm-iZ-XrA.title" = "Item 1"; - -/* Class = "NSButtonCell"; title = "Restore Entry"; ObjectID = "UTg-y9-4DN"; */ -"UTg-y9-4DN.title" = "Restaurar Entrada"; - -/* Class = "NSTabViewItem"; label = "Filter"; ObjectID = "Ud6-Nz-6PS"; */ -"Ud6-Nz-6PS.label" = "Filtro"; - /* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "cpr-p6-YAY"; */ "cpr-p6-YAY.title" = "Item 2"; +/* Class = "NSTextFieldCell"; title = "History"; ObjectID = "ER3-Ic-v0N"; */ +"ER3-Ic-v0N.title" = "Historial"; + /* Class = "NSButtonCell"; title = "Exit History"; ObjectID = "ewQ-8F-e1E"; */ "ewQ-8F-e1E.title" = "Salir de Historial"; @@ -41,14 +31,27 @@ /* Class = "NSButtonCell"; title = "Username"; ObjectID = "jfQ-Jh-2gl"; */ "jfQ-Jh-2gl.title" = "Usuario"; +/* Class = "NSMenuItem"; title = "Item 1"; ObjectID = "LRm-iZ-XrA"; */ +"LRm-iZ-XrA.title" = "Item 1"; + /* Class = "NSTabViewItem"; label = "Trash"; ObjectID = "na6-h9-r9q"; */ "na6-h9-r9q.label" = "Papelera"; /* Class = "NSButtonCell"; title = "Password"; ObjectID = "rvQ-4V-SsS"; */ "rvQ-4V-SsS.title" = "Contraseña"; +/* Class = "NSTabViewItem"; label = "Filter"; ObjectID = "Ud6-Nz-6PS"; */ +"Ud6-Nz-6PS.label" = "Filtro"; + +/* Class = "NSButtonCell"; title = "Restore Entry"; ObjectID = "UTg-y9-4DN"; */ +"UTg-y9-4DN.title" = "Restaurar Entrada"; + /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "wC4-fF-dLW"; */ "wC4-fF-dLW.title" = "Otras Vistas"; +/* Class = "NSButtonCell"; title = "Everywhere"; ObjectID = "WMK-bb-ESj"; */ +"WMK-bb-ESj.title" = "Todos los lugares"; + /* Class = "NSTabViewItem"; label = "History"; ObjectID = "z4I-cp-nhf"; */ "z4I-cp-nhf.label" = "Historial"; + diff --git a/MacPass/es.lproj/Credits.rtf b/MacPass/es.lproj/Credits.rtf deleted file mode 100644 index e5f0f1c26..000000000 --- a/MacPass/es.lproj/Credits.rtf +++ /dev/null @@ -1,98 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 -{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red52\green110\blue183;\red38\green38\blue38;} -{\*\expandedcolortbl;;\csgenericrgb\c20392\c43137\c71765;\csgenericrgb\c14902\c14902\c14902;} -\paperw11900\paperh16840\vieww25780\viewh19380\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b\fs24 \cf0 Project Website:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt -\f1\b0 \cf0 MacPass}} -\f1\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \ -License:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf0 MacPass KeePass compatible client for OS X\ -Copyright (c) 2012-2019 Michael Starke, HicknHack Software GmbH\ - \ -This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by\ -the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\ -\ -This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\ -\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\ -\ -You should have received a copy of the GNU General Public License along with this program. If not, see {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt http://www.gnu.org/licenses/}}.\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 \kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \kerning1\expnd0\expndtw0 Credits:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf2 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 French Translation by {\field{\*\fldinst{HYPERLINK "mailto:gil@panix.com"}}{\fldrslt Gil Andr\'e9}}\ -\ -Simplified Chinese by {\field{\*\fldinst{HYPERLINK "mailto:patchao2000@gmail.com"}}{\fldrslt Zhao Peng}}\ -\ -Russian Translation by {\field{\*\fldinst{HYPERLINK "mailto:alex@mrdoggy.info"}}{\fldrslt Aliaksandr Piatkevich}}\ -\ -Italian Translation by {\field{\*\fldinst{HYPERLINK "mailto:info@francescoservida.ch"}}{\fldrslt Francesco Servida}}\ -\ -Spanish Translation by {\field{\*\fldinst{HYPERLINK "https://github.com/m0yP"}}{\fldrslt Moises Perez}}\ -\ -MacPass\kerning1\expnd0\expndtw3 - \kerning1\expnd0\expndtw0 Icon by {\field{\*\fldinst{HYPERLINK "http://iiro.jappinen.me"}}{\fldrslt Iiro J\'e4ppinen}}\ -\ -Database Icons by {\field{\*\fldinst{HYPERLINK "https://github.com/JoannaOlsen"}}{\fldrslt Joanna Olsen}}\cf2 \ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt \cf2 KissXML}}\cf3 \ -Copyright \'a9 2012 Robbie Hanson. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf2 MiniKeePass}}\ -Copyright \'a9 2011 Jason Rush and John Flanagan. All rights reserved.\ - \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt \cf2 KeePass Database Library}}\ -Copyright \'a9 2010 Qiang Yu. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/Perspx/PXSourceList"}}{\fldrslt \cf3 PXSourceList}}\ -Copyright \'a9 2011, Alex Rozanski. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org"}}{\fldrslt \cf3 Sparkl\kerning1\expnd0\expndtw3 -e}}\kerning1\expnd0\expndtw3 -\ -Copyright \'a9 2006 Andy Matuschak. \kerning1\expnd0\expndtw0 All rights reserved.\kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf3 \kerning1\expnd0\expndtw0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/questions/11386876/how-to-encode-and-decode-files-as-base64-in-cocoa-objective-c"}}{\fldrslt \cf3 NSData+Base64}}\ -Copyright \'a92013, {\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/users/200321/denis2342"}}{\fldrslt denis2342}}\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://www.cocoadev.com/index.pl?NSDataCategory"}}{\fldrslt \cf3 NSData+Gzip}}\ -Extracted from code on the CocoaDev Wiki\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/karelia/SecurityInterface"}}{\fldrslt \cf3 KSPasswordField}}\ -Code reused in HNHUISecureTextField\ -Copyright \'a92012 Mike Abdullah, Karelia Software. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/AlanQuatermain/aqtoolkit"}}{\fldrslt \cf3 NSData+CommonCrypto}}\ -Copyright \'a92008-2009 Jim Dovey, All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mattt/TransformerKit"}}{\fldrslt \cf3 TransformerKit}}\ -Copyright \'a92012 Mattt Thompson. All rights reseverd} \ No newline at end of file diff --git a/MacPass/es.lproj/DatabaseSettingsWindow.strings b/MacPass/es.lproj/DatabaseSettingsWindow.strings index 1e6d87280..81d121c21 100644 --- a/MacPass/es.lproj/DatabaseSettingsWindow.strings +++ b/MacPass/es.lproj/DatabaseSettingsWindow.strings @@ -1,7 +1,18 @@ - /* Class = "NSWindow"; title = "Window"; ObjectID = "1"; */ "1.title" = "Ventana"; +/* Class = "NSTextFieldCell"; title = "Threads"; ObjectID = "2QI-ne-N5d"; */ +"2QI-ne-N5d.title" = "Hilos"; + +/* Class = "NSTextFieldCell"; title = "Iterations"; ObjectID = "2ZA-Gc-JdZ"; */ +"2ZA-Gc-JdZ.title" = "Iteraciones"; + +/* Class = "NSTextFieldCell"; title = "Enforce key change"; ObjectID = "5QH-N1-FHK"; */ +"5QH-N1-FHK.title" = "Obligar a cambiar de contraseña"; + +/* Class = "NSTabViewItem"; label = "Argon2"; ObjectID = "6qB-sH-9FI"; */ +"6qB-sH-9FI.label" = "Argon2"; + /* Class = "NSTextFieldCell"; title = "Database name:"; ObjectID = "190"; */ "190.title" = "Base:"; @@ -26,10 +37,7 @@ /* Class = "NSButtonCell"; title = "Enable Recycle Bin"; ObjectID = "536"; */ "536.title" = "Habilitar Papelera de Reciclaje"; -/* Class = "NSButtonCell"; title = "Empty Recycle Bin on Quit"; ObjectID = "540"; */ -"540.title" = "Vaciar Papelera de Reciclaje al Salir"; - -/* Class = "NSTextFieldCell"; title = "Maximum Items:"; ObjectID = "558"; */ +/* Class = "NSTextFieldCell"; title = "Maximum items in history:"; ObjectID = "558"; */ "558.title" = "Entradas Máximas:"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "680"; */ @@ -38,7 +46,7 @@ /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "957"; */ "957.title" = "Cancelar"; -/* Class = "NSTextFieldCell"; title = "Maximum Size:"; ObjectID = "1269"; */ +/* Class = "NSTextFieldCell"; title = "Maximum history size:"; ObjectID = "1269"; */ "1269.title" = "Tamaño Máximo:"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "1396"; */ @@ -62,11 +70,48 @@ /* Class = "NSTextFieldCell"; title = "Default Username:"; ObjectID = "1591"; */ "1591.title" = "Usuario por Defecto:"; -/* Class = "NSTextFieldCell"; title = "Key encryption rounds:"; ObjectID = "1644"; */ -"1644.title" = "Rondas de Clave de Cifrado:"; - /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "1740"; */ "1740.title" = "Otras Vistas"; -/* Class = "NSButtonCell"; title = "Benchmark"; ObjectID = "1775"; */ -"1775.title" = "Referencia"; +/* Class = "NSTextFieldCell"; title = "File format:"; ObjectID = "bTk-YZ-x0G"; */ +"bTk-YZ-x0G.title" = "Formato de archivo:"; + +/* Class = "NSButtonCell"; title = "Recommend key change"; ObjectID = "CtU-Eq-dgy"; */ +"CtU-Eq-dgy.title" = "Recomendar cambio de contraseña"; + +/* Class = "NSTabViewItem"; label = "Aes"; ObjectID = "ft1-pl-lpO"; */ +"ft1-pl-lpO.label" = "AES"; + +/* Class = "NSTextFieldCell"; title = "Algorithm"; ObjectID = "GVd-KH-pHc"; */ +"GVd-KH-pHc.title" = "Algoritmo"; + +/* Class = "NSTextFieldCell"; title = "Encryption:"; ObjectID = "gxY-UL-bEG"; */ +"gxY-UL-bEG.title" = "Cifrado:"; + +/* Class = "NSTextFieldCell"; title = "Memory"; ObjectID = "iRY-If-Kwn"; */ +"iRY-If-Kwn.title" = "Memoria"; + +/* Class = "NSTextFieldCell"; title = "Recyclebin Group:"; ObjectID = "kI5-Kp-byE"; */ +"kI5-Kp-byE.title" = "Grupo de papelera:"; + +/* Class = "NSButtonCell"; title = "Force key change once after unlocking"; ObjectID = "pA1-aL-KjT"; */ +"pA1-aL-KjT.title" = "Obligar a cambiar de contraseña una vez desbloqueado"; + +/* Class = "NSBox"; title = "Key derivation"; ObjectID = "pbl-Mb-r8V"; */ +"pbl-Mb-r8V.title" = "Derivación de contraseña"; + +/* Class = "NSButtonCell"; title = "Generate Parameters"; ObjectID = "PoI-Er-Y8P"; */ +"PoI-Er-Y8P.title" = "Generar parámetros"; + +/* Class = "NSTextFieldCell"; title = "VersionInfo"; ObjectID = "Ush-4r-A1A"; */ +"Ush-4r-A1A.title" = "Información de versión"; + +/* Class = "NSTextFieldCell"; title = "Rounds"; ObjectID = "uUQ-9s-M5E"; */ +"uUQ-9s-M5E.title" = "Rondas"; + +/* Class = "NSTextFieldCell"; title = "Recommend key change"; ObjectID = "Xib-Fn-sqx"; */ +"Xib-Fn-sqx.title" = "Recomendar cambio de contraseña"; + +/* Class = "NSButtonCell"; title = "Force key change"; ObjectID = "z6u-YT-7LE"; */ +"z6u-YT-7LE.title" = "Obligar a cambiar de contraseña"; + diff --git a/MacPass/es.lproj/DatePickingView.strings b/MacPass/es.lproj/DatePickingView.strings index 00de0f2eb..c7ebd60e6 100644 --- a/MacPass/es.lproj/DatePickingView.strings +++ b/MacPass/es.lproj/DatePickingView.strings @@ -1,4 +1,3 @@ - /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "17"; */ "17.title" = "Otras vistas"; @@ -7,3 +6,4 @@ /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "30"; */ "30.title" = "Cancelar"; + diff --git a/MacPass/es.lproj/DuplicateEntryOptionsWindow.strings b/MacPass/es.lproj/DuplicateEntryOptionsWindow.strings index afec26850..29822a0d8 100644 --- a/MacPass/es.lproj/DuplicateEntryOptionsWindow.strings +++ b/MacPass/es.lproj/DuplicateEntryOptionsWindow.strings @@ -1,18 +1,18 @@ +/* Class = "NSButtonCell"; title = "Reference password instead of copying it"; ObjectID = "daA-QV-CDq"; */ +"daA-QV-CDq.title" = "Referenciar contraseña en vez de copiarla"; + +/* Class = "NSButtonCell"; title = "Duplicate history"; ObjectID = "dXl-KS-4rE"; */ +"dXl-KS-4rE.title" = "Duplicar historial"; /* Class = "NSButtonCell"; title = "Reference username instead of copying it"; ObjectID = "O9X-XH-n8o"; */ "O9X-XH-n8o.title" = "Referenciar Usuario en vez de copiarlo"; -/* Class = "NSWindow"; title = "Window"; ObjectID = "QvC-M9-y7g"; */ +/* Class = "NSWindow"; title = "Duplicate Entry Options"; ObjectID = "QvC-M9-y7g"; */ "QvC-M9-y7g.title" = "Ventana"; /* Class = "NSButtonCell"; title = "Duplicate Entry"; ObjectID = "WqI-qH-ARf"; */ "WqI-qH-ARf.title" = "Duplicar Entrada"; -/* Class = "NSButtonCell"; title = "Duplicate history"; ObjectID = "dXl-KS-4rE"; */ -"dXl-KS-4rE.title" = "Duplicar historial"; - -/* Class = "NSButtonCell"; title = "Reference password instead of copying it"; ObjectID = "daA-QV-CDq"; */ -"daA-QV-CDq.title" = "Referenciar contraseña en vez de copiarla"; - /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "x6e-bE-Y6R"; */ "x6e-bE-Y6R.title" = "Cancelar"; + diff --git a/MacPass/es.lproj/EntryInspectorView.strings b/MacPass/es.lproj/EntryInspectorView.strings index aa68c7ca9..ad8d52f22 100644 --- a/MacPass/es.lproj/EntryInspectorView.strings +++ b/MacPass/es.lproj/EntryInspectorView.strings @@ -1,3 +1,8 @@ +/* Class = "NSMenuItem"; title = "Save"; ObjectID = "0ok-MC-QMP"; */ +"0ok-MC-QMP.title" = "Guardar"; + +/* Class = "NSButtonCell"; title = "Enable Autotype"; ObjectID = "9Nx-mE-DK3"; */ +"9Nx-mE-DK3.title" = "Habilitar Autollenado"; /* Class = "NSButtonCell"; title = "Generate"; ObjectID = "64"; */ "64.title" = "Generar"; @@ -20,9 +25,6 @@ /* Class = "NSTextFieldCell"; title = "Tags"; ObjectID = "79"; */ "79.title" = "Tags"; -/* Class = "NSTabViewItem"; label = "Fields"; ObjectID = "108"; */ -"108.label" = "Campos"; - /* Class = "NSTabViewItem"; label = "Attachments"; ObjectID = "109"; */ "109.label" = "Adjuntos"; @@ -41,9 +43,6 @@ /* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "171"; */ "171.title" = "Campo de Vista de Tabla"; -/* Class = "NSTextFieldCell"; title = "Custom Fields"; ObjectID = "190"; */ -"190.title" = "Campos Personalizados"; - /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "197"; */ "197.title" = "Campo de Texto"; @@ -53,47 +52,23 @@ /* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "214"; */ "214.placeholderString" = "Valor"; -/* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "225"; */ -"225.placeholderString" = "Valor"; - -/* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "228"; */ -"228.placeholderString" = "Título"; - /* Class = "NSSegmentedCell"; 238.ibShadowedLabels[0] = "General"; ObjectID = "238"; */ "238.ibShadowedLabels[0]" = "General"; /* Class = "NSSegmentedCell"; 238.ibShadowedLabels[1] = "Files"; ObjectID = "238"; */ "238.ibShadowedLabels[1]" = "Archivos"; -/* Class = "NSSegmentedCell"; 238.ibShadowedLabels[2] = "Custom"; ObjectID = "238"; */ +/* Class = "NSSegmentedCell"; 238.ibShadowedLabels[2] = "Autotype"; ObjectID = "238"; */ "238.ibShadowedLabels[2]" = "Personalizado"; -/* Class = "NSSegmentedCell"; 238.ibShadowedLabels[3] = "Autotype"; ObjectID = "238"; */ -"238.ibShadowedLabels[3]" = "Autollenado"; - -/* Class = "NSMenuItem"; title = "Save"; ObjectID = "0ok-MC-QMP"; */ -"0ok-MC-QMP.title" = "Guardar"; - -/* Class = "NSButtonCell"; title = "Enable Autotype"; ObjectID = "9Nx-mE-DK3"; */ -"9Nx-mE-DK3.title" = "Habilitar Autollenado"; - -/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "NtM-y3-l4D"; */ -"NtM-y3-l4D.title" = "Vista Rápida"; - -/* Class = "NSTextFieldCell"; placeholderString = "Custom Entry Sequence"; ObjectID = "R2X-Ex-c6q"; */ -"R2X-Ex-c6q.placeholderString" = "Entrada de Secuecia Personalizada"; - -/* Class = "NSTextFieldCell"; title = "Window Sequence"; ObjectID = "RQB-bR-MC0"; */ -"RQB-bR-MC0.title" = "Secuencia de Ventana"; - -/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "bQ5-0E-h3O"; */ -"bQ5-0E-h3O.title" = "Secuencia Autollenado"; +/* Class = "NSMenuItem"; title = "Delete"; ObjectID = "bke-G2-oEf"; */ +"bke-G2-oEf.title" = "Eliminar"; /* Class = "NSTextFieldCell"; title = "Window Title"; ObjectID = "bkO-Bk-AuX"; */ "bkO-Bk-AuX.title" = "Título de Ventana"; -/* Class = "NSMenuItem"; title = "Delete"; ObjectID = "bke-G2-oEf"; */ -"bke-G2-oEf.title" = "Eliminar"; +/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "bQ5-0E-h3O"; */ +"bQ5-0E-h3O.title" = "Secuencia Autollenado"; /* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "dyA-lo-PGa"; */ "dyA-lo-PGa.title" = "Campo de Vista de Tabla"; @@ -110,5 +85,24 @@ /* Class = "NSTextFieldCell"; title = "Window Associations"; ObjectID = "ned-1Q-FXA"; */ "ned-1Q-FXA.title" = "Asociaciones de Ventana"; +/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "NtM-y3-l4D"; */ +"NtM-y3-l4D.title" = "Vista Rápida"; + +/* Class = "NSButtonCell"; title = "Obfuscate Autotype"; ObjectID = "oNq-kB-3eb"; */ +"oNq-kB-3eb.title" = "Ofuscar Autotecleo"; + +/* Class = "NSTextFieldCell"; placeholderString = "Custom Entry Sequence"; ObjectID = "R2X-Ex-c6q"; */ +"R2X-Ex-c6q.placeholderString" = "Entrada de Secuecia Personalizada"; + +/* Class = "NSTextFieldCell"; title = "Window Sequence"; ObjectID = "RQB-bR-MC0"; */ +"RQB-bR-MC0.title" = "Secuencia de Ventana"; + /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "sNS-o1-pD7"; */ "sNS-o1-pD7.title" = "Otras Vistas"; + +/* Class = "NSTextFieldCell"; title = "UUID"; ObjectID = "vTq-N1-5oa"; */ +"vTq-N1-5oa.title" = "UUID"; + +/* Class = "NSButtonCell"; title = "Show Plugin Data"; ObjectID = "X9y-K7-lix"; */ +"X9y-K7-lix.title" = "Mostrar los datos del plugin"; + diff --git a/MacPass/es.lproj/GeneralSettings.strings b/MacPass/es.lproj/GeneralPreferences.strings similarity index 62% rename from MacPass/es.lproj/GeneralSettings.strings rename to MacPass/es.lproj/GeneralPreferences.strings index 19692917c..a8b8e51d1 100644 --- a/MacPass/es.lproj/GeneralSettings.strings +++ b/MacPass/es.lproj/GeneralPreferences.strings @@ -1,3 +1,8 @@ +/* Class = "NSMenuItem"; title = "after 5 Minutes"; ObjectID = "5gh-b6-cmG"; */ +"5gh-b6-cmG.title" = "después de 5 minutos"; + +/* Class = "NSButtonCell"; title = "Clear all stored locations"; ObjectID = "8Ri-2s-c39"; */ +"8Ri-2s-c39.title" = "Eliminar las ubicaciones guardadas"; /* Class = "NSMenu"; title = "ClipboardClearInterval"; ObjectID = "421"; */ "421.title" = "Intervalo de vaciado de Portapapeles"; @@ -26,12 +31,6 @@ /* Class = "NSButtonCell"; title = "Reopen last Database after Launch"; ObjectID = "531"; */ "531.title" = "Reabrir Base más reciente al Iniciar"; -/* Class = "NSBox"; title = "General"; ObjectID = "928"; */ -"928.title" = "General"; - -/* Class = "NSButtonCell"; title = "Double-click entry URL to Launch"; ObjectID = "937"; */ -"937.title" = "Abrir URL al dar doble clic"; - /* Class = "NSMenu"; title = "LockTimes"; ObjectID = "586"; */ "586.title" = "Tiempos de Bloqueo"; @@ -53,11 +52,30 @@ /* Class = "NSTextFieldCell"; title = "Lock while idle"; ObjectID = "806"; */ "806.title" = "Bloquear al estar inactivo"; +/* Class = "NSBox"; title = "File Handling"; ObjectID = "888"; */ +"888.title" = "Gestión de ficheros"; + /* Class = "NSTextFieldCell"; title = "Enabling this compromises security. If enabled, your preferences will contain mappings from database to keyfile. Key locations for databases without a password will not be saved."; ObjectID = "ACh-7H-42N"; */ "ACh-7H-42N.title" = "Habilitando esta opción se compromete la seguridad. Si está habilitado, tus preferencias contendrán mapeos de bases al keyfile. Las ubicaciones para bases sin contraseña no serán guardadas.."; +/* Class = "NSButtonCell"; title = "Lock after log out"; ObjectID = "Dzn-9R-JjE"; */ +"Dzn-9R-JjE.title" = "Bloquear después de cerrar sesión"; + +/* Class = "NSButtonCell"; title = "Prevent Universal Clipboard support"; ObjectID = "fNy-mS-phi"; */ +"fNy-mS-phi.title" = "Evitar soporte de portapapeles universal"; + +/* Class = "NSTextFieldCell"; title = "Disabling this compromises security. If enabled, anything copied to the Clipboard in MacPass will be available on your connected iOS devices. You should clear the clipboard on those devices manually."; ObjectID = "JGX-Tp-KJk"; */ +"JGX-Tp-KJk.title" = "Deshabilitar esto compromete la seguridad . Si está habilitado, cualquier elemento copiado en el portapapeles en MacPass estará disponible en los dispositivos iOS conectados. Se debería limpiar el portapapeles de esos dispositivos manualmente."; + +/* Class = "NSTextFieldCell"; title = "If file changes:"; ObjectID = "QrK-hM-Xt1"; */ +"QrK-hM-Xt1.title" = "Si el archivo cambia:"; + /* Class = "NSButtonCell"; title = "Remember Keyfile for Databases"; ObjectID = "r6q-He-nYU"; */ "r6q-He-nYU.title" = "Recordar el Keyfile para las Bases de Datos"; -/* Class = "NSButtonCell"; title = "Clear all stored locations"; ObjectID = "8Ri-2s-c39"; */ -"8Ri-2s-c39.title" = "Eliminar las ubicaciones guardadas"; +/* Class = "NSButtonCell"; title = "Enable Autosave"; ObjectID = "wG7-bi-2fi"; */ +"wG7-bi-2fi.title" = "Habilitar auto guardado"; + +/* Class = "NSTextFieldCell"; title = "Close and open all documents for changes to take effect"; ObjectID = "ya5-ps-c4W"; */ +"ya5-ps-c4W.title" = "Cerrar y abrir todos los documentos para que los cambios surtan efecto"; + diff --git a/MacPass/es.lproj/GroupInspectorView.strings b/MacPass/es.lproj/GroupInspectorView.strings index 7395773fc..8c943f90a 100644 --- a/MacPass/es.lproj/GroupInspectorView.strings +++ b/MacPass/es.lproj/GroupInspectorView.strings @@ -1,3 +1,5 @@ +/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "6FG-UZ-Adh"; */ +"6FG-UZ-Adh.title" = "Secuencia de Auto tecleo"; /* Class = "NSTextFieldCell"; title = "Name"; ObjectID = "25"; */ "25.title" = "Nombre"; @@ -15,4 +17,8 @@ "265.title" = "Buscar"; /* Class = "NSTextFieldCell"; title = "Autotype"; ObjectID = "277"; */ -"277.title" = "Autollenado"; +"277.title" = "Autotecleo"; + +/* Class = "NSButtonCell"; title = "Show Plugin Data"; ObjectID = "qGr-oT-WjP"; */ +"qGr-oT-WjP.title" = "Mostrar datos del plugin"; + diff --git a/MacPass/es.lproj/IconSelection.strings b/MacPass/es.lproj/IconSelection.strings index 77aa07582..27cb82af4 100644 --- a/MacPass/es.lproj/IconSelection.strings +++ b/MacPass/es.lproj/IconSelection.strings @@ -1,6 +1,9 @@ +/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "1kM-cI-P1o"; */ +"1kM-cI-P1o.title" = "Cancelar"; /* Class = "NSButtonCell"; title = "Use Default Icon"; ObjectID = "102"; */ "102.title" = "Usar Ícono por Defecto"; -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "1kM-cI-P1o"; */ -"1kM-cI-P1o.title" = "Cancelar"; +/* Class = "NSButtonCell"; title = "Download Icon"; ObjectID = "iaf-XW-XUo"; */ +"iaf-XW-XUo.title" = "Descargar icono"; + diff --git a/MacPass/es.lproj/InfoPlist.strings b/MacPass/es.lproj/InfoPlist.strings index 477b28ff8..1768710c1 100644 --- a/MacPass/es.lproj/InfoPlist.strings +++ b/MacPass/es.lproj/InfoPlist.strings @@ -1,2 +1,18 @@ -/* Localized versions of Info.plist keys */ +/* Bundle name */ +"CFBundleName" = "MacPass"; + +/* (No Comment) */ +"KDB Database" = "Base de datos KDB"; + +/* (No Comment) */ +"KDBX Database" = "Base de datos KDBX"; + +/* (No Comment) */ +"MacPass Plugin" = "Plugin MacPass"; + +/* (No Comment) */ +"NSHumanReadableCopyright" = "Copyright ©2012-2019 HicknHack Software GmbH. All rights reserved. "; + +/* (No Comment) */ +"XML" = "XML"; diff --git a/MacPass/es.lproj/InspectorView.strings b/MacPass/es.lproj/InspectorView.strings index 0ea820c93..4714a01c4 100644 --- a/MacPass/es.lproj/InspectorView.strings +++ b/MacPass/es.lproj/InspectorView.strings @@ -1,69 +1,24 @@ +/* Class = "NSTabViewItem"; label = "Group"; ObjectID = "2896"; */ +"2896.label" = "Grupo"; -/* Class = "NSTextFieldCell"; title = "Name"; ObjectID = "101"; */ -"101.title" = "Nombre"; +/* Class = "NSTabViewItem"; label = "Entry"; ObjectID = "2897"; */ +"2897.label" = "Entrada"; -/* Class = "NSTextFieldCell"; title = "Name"; ObjectID = "1266"; */ -"1266.title" = "Nombre"; +/* Class = "NSTabViewItem"; label = "NoSelection"; ObjectID = "2974"; */ +"2974.label" = "Sin selección"; -/* Class = "NSTextFieldCell"; title = "Username"; ObjectID = "1267"; */ -"1267.title" = "Nombre de Usuario"; +/* Class = "NSTextFieldCell"; title = "No Selection"; ObjectID = "2986"; */ +"2986.title" = "Sin selección"; -/* Class = "NSTextFieldCell"; title = "URL"; ObjectID = "1268"; */ -"1268.title" = "URL"; +/* Class = "NSTextFieldCell"; title = "Label"; ObjectID = "3014"; */ +"3014.title" = "Etiqueta"; -/* Class = "NSTextFieldCell"; title = "Password"; ObjectID = "1269"; */ -"1269.title" = "Contaseña"; +/* Class = "NSTextFieldCell"; title = "Notes"; ObjectID = "hwn-UY-9Cr"; */ +"hwn-UY-9Cr.title" = "Notas"; -/* Class = "NSButtonCell"; title = "Generate"; ObjectID = "1274"; */ -"1274.title" = "Generar"; +/* Class = "CocoaBindingsConnection"; ibShadowedIsNilPlaceholder = "None"; ObjectID = "Xpb-G8-gXl"; */ +"Xpb-G8-gXl.ibShadowedIsNilPlaceholder" = "Ninguno"; -/* Class = "NSTabViewItem"; label = "General"; ObjectID = "1394"; */ -"1394.label" = "General"; +/* Class = "CocoaBindingsConnection"; ibShadowedNoSelectionPlaceholder = "No Selection"; ObjectID = "Xpb-G8-gXl"; */ +"Xpb-G8-gXl.ibShadowedNoSelectionPlaceholder" = "Sin selección"; -/* Class = "NSTabViewItem"; label = "Notes"; ObjectID = "1395"; */ -"1395.label" = "Notas"; - -/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "1481"; */ -"1481.title" = "Campo de Texto"; - -/* Class = "NSTextFieldCell"; title = "Attachments"; ObjectID = "1513"; */ -"1513.title" = "Adjuntos"; - -/* Class = "NSTextFieldCell"; title = "Notes"; ObjectID = "1529"; */ -"1529.title" = "Notas"; - -/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "1568"; */ -"1568.title" = "Campo de Vista de Tabla"; - -/* Class = "NSButtonCell"; title = "Add File"; ObjectID = "1581"; */ -"1581.title" = "Agregar Archivo"; - -/* Class = "NSButtonCell"; title = "Save File"; ObjectID = "1586"; */ -"1586.title" = "Guardar Archivo"; - -/* Class = "NSTextFieldCell"; title = "Quality"; ObjectID = "1605"; */ -"1605.title" = "Calidad"; - -/* Class = "NSTextFieldCell"; title = "Created"; ObjectID = "1885"; */ -"1885.title" = "Creado"; - -/* Class = "NSTextFieldCell"; title = "Modified"; ObjectID = "1930"; */ -"1930.title" = "Modificado"; - -/* Class = "NSTabViewItem"; label = "Attachments"; ObjectID = "1945"; */ -"1945.label" = "Aduntos"; - -/* Class = "NSTabViewItem"; label = "Fields"; ObjectID = "1947"; */ -"1947.label" = "Campos"; - -/* Class = "NSTextFieldCell"; title = "Custom Fields"; ObjectID = "1991"; */ -"1991.title" = "Campos Personalizados"; - -/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "2017"; */ -"2017.title" = "Campo de Texto"; - -/* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "2043"; */ -"2043.placeholderString" = "Valor"; - -/* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "2049"; */ -"2049.placeholderString" = "Título"; diff --git a/MacPass/es.lproj/IntegrationPreferences.strings b/MacPass/es.lproj/IntegrationPreferences.strings new file mode 100644 index 000000000..45aa140f8 --- /dev/null +++ b/MacPass/es.lproj/IntegrationPreferences.strings @@ -0,0 +1,45 @@ +/* Class = "NSButtonCell"; title = "Enable global Autotype"; ObjectID = "1qb-Rd-jYu"; */ +"1qb-Rd-jYu.title" = "Habilitar Autollenado Global"; + +/* Class = "NSTextFieldCell"; title = "Shortcut"; ObjectID = "6oN-CH-T0O"; */ +"6oN-CH-T0O.title" = "Atajo"; + +/* Class = "NSButtonCell"; title = "Include Entry URL Host for matches"; ObjectID = "B1D-j9-L8x"; */ +"B1D-j9-L8x.title" = "Incluir URL de Host en las búsquedas"; + +/* Class = "NSButtonCell"; title = "Enable Quicklook Preview"; ObjectID = "ERs-ct-Eyx"; */ +"ERs-ct-Eyx.title" = "Habilitar Vista Previa"; + +/* Class = "NSTextFieldCell"; title = "Autotype might not work properly. Some issues where found that prevent Autotype or Global Autotype to work. Please run the Autotype Doctor to fix those issues."; ObjectID = "H37-ku-aTc"; */ +"H37-ku-aTc.title" = "Autotecleo podría no funcionar correctamente. Se detecto algún problema que puede evitar que Autotecleo o Autotecleo global funcione. Por favor ejecute el Doctor de Autotecleo para solucionar el problema."; + +/* Class = "NSTextFieldCell"; title = "Shortcut is missing Key"; ObjectID = "Lxp-wI-yQy"; */ +"Lxp-wI-yQy.title" = "El atajo no está definido"; + +/* Class = "NSButtonCell"; title = "Run Autotype Doctor…"; ObjectID = "NP0-R3-m6n"; */ +"NP0-R3-m6n.title" = "Ejecutar el Doctor de Autotecleo"; + +/* Class = "NSBox"; title = "Autotype"; ObjectID = "P9N-HM-wER"; */ +"P9N-HM-wER.title" = "Autotecleo"; + +/* Class = "NSButtonCell"; title = "Interpret ⌃ as ⌘"; ObjectID = "QfO-yG-l3F"; */ +"QfO-yG-l3F.title" = "Intérprete ⌃ as ⌘"; + +/* Class = "NSTextFieldCell"; title = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to."; ObjectID = "QRy-CY-ENC"; */ +"QRy-CY-ENC.title" = "Si se habilita, cada comando {CONTROL} será enviado como ⌘. Only disable this if you are sure you need to."; + +/* Class = "NSButtonCell"; title = "Include Entry Tags for matches"; ObjectID = "rbu-G7-MT8"; */ +"rbu-G7-MT8.title" = "Incluir etiquetas de la entrada en las búsquedas"; + +/* Class = "NSButtonCell"; title = "Include Entry Title for matches"; ObjectID = "tmL-dT-D0G"; */ +"tmL-dT-D0G.title" = "Incluir el título de las entradas en las búsquedas"; + +/* Class = "NSButtonCell"; title = "Include Entry URL for matches"; ObjectID = "TzR-00-Vp3"; */ +"TzR-00-Vp3.title" = "Incluir la URL de la entrada en las búsquedas"; + +/* Class = "NSBox"; title = "Preview"; ObjectID = "VVs-b5-cX9"; */ +"VVs-b5-cX9.title" = "Vista Previa"; + +/* Class = "NSTextFieldCell"; title = "If enabled attached files will be copied to a temporary location for preview and deleted after the preview is closed."; ObjectID = "WmI-IB-Aso"; */ +"WmI-IB-Aso.title" = "Si se habilita, los archivos adjuntos serán copiados a una carpeta temporal para generar la vista previa y serán elimiandos al cerrarla. Esto es un riesgo de seguridad."; + diff --git a/MacPass/es.lproj/IntegrationSettings.strings b/MacPass/es.lproj/IntegrationSettings.strings deleted file mode 100644 index 437d02c3c..000000000 --- a/MacPass/es.lproj/IntegrationSettings.strings +++ /dev/null @@ -1,30 +0,0 @@ - -/* Class = "NSButtonCell"; title = "Enable KeePassHttp server"; ObjectID = "3"; */ -"3.title" = "Habilitar Servidor KeePassHttp"; - -/* Class = "NSButtonCell"; title = "Enable global Autotype"; ObjectID = "1qb-Rd-jYu"; */ -"1qb-Rd-jYu.title" = "Habilitar Autollenado Global"; - -/* Class = "NSTextFieldCell"; title = "Shortcut"; ObjectID = "6oN-CH-T0O"; */ -"6oN-CH-T0O.title" = "Atajo"; - -/* Class = "NSButtonCell"; title = "Enabel Quicklook Preview"; ObjectID = "ERs-ct-Eyx"; */ -"ERs-ct-Eyx.title" = "Habilitar Vista Previa"; - -/* Class = "NSBox"; title = "Keepass HTTP"; ObjectID = "KbH-0Q-5Tw"; */ -"KbH-0Q-5Tw.title" = "Keepass HTTP"; - -/* Class = "NSBox"; title = "Autotype"; ObjectID = "P9N-HM-wER"; */ -"P9N-HM-wER.title" = "Autollenado"; - -/* Class = "NSBox"; title = "Preview"; ObjectID = "VVs-b5-cX9"; */ -"VVs-b5-cX9.title" = "Vista Previa"; - -/* Class = "NSTextFieldCell"; title = "If enabled attached files will be copied to a temporary location for preview and deleted after the preview is closed."; ObjectID = "WmI-IB-Aso"; */ -"WmI-IB-Aso.title" = "Si se habilita, los archivos adjuntos serán copiados a una carpeta temporal para generar la vista previa y serán elimiandos al cerrarla. Esto es un riesgo de seguridad."; - -/* Class = "NSButtonCell"; title = "Interpret ⌃ as ⌘"; ObjectID = "QfO-yG-l3F"; */ -"QfO-yG-l3F.title" = "Intérprete ⌃ as ⌘"; - -/* Class = "NSTextFieldCell"; title = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to."; ObjectID = "QRy-CY-ENC"; */ -"QRy-CY-ENC.title" = "Si se habilita, cada comando {CONTROL} será enviado como ⌘. Only disable this if you are sure you need to."; diff --git a/MacPass/es.lproj/Localizable.strings b/MacPass/es.lproj/Localizable.strings index 3c590e7e4..9b8d51925 100644 --- a/MacPass/es.lproj/Localizable.strings +++ b/MacPass/es.lproj/Localizable.strings @@ -1,198 +1,816 @@ -/* Formatted Times */ +/* Count of characters remaining in pickchars dialog */ +"%ld_CHARACTERS_TO_PICK_REMAINING" = "%ld caracteres disponibles para seleccionar"; + +/* Display format for days. Should contain a long decimal placeholder! */ +"%ld_DAYS" = "%ld días"; + +/* % days ago */ "%ld_DAYS_AGO" = "hace %ld días"; + +/* % Hours ago */ "%ld_HOURS_AGO" = "hace aproximadamente %ld horas"; + +/* % Minutes ago */ "%ld_MINUTES_AGO" = "hace %ld minutos"; + +/* % Weeks ago */ "%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"; + +/* preset to expire after 90 days from now */ "90_DAYS" = "en 90 días"; -"ONE_YEAR" = "en un año"; -/* Date Picker */ -"SELECT_DATE_PRESET" = "Usar predefinido…"; +/* Button label to abort a merge on a file with changed master key! */ +"ABORT_MERGE_KEEP_MINE" = "Cancelar fusión. Mantener el mío."; -/* Menu item for automatic trash creation */ -"AUTOCREATE_TRASH_FOLDER" = "Crear automáticamente"; +/* Toolbar item with action menu */ +"ACTION" = "Acción"; -/* - Actions - */ -"NEW_ENTRY" = "Agregar Entrada"; -"NEW_GROUP" = "Agregar Grupo"; -"DUPLICATE_ENTRY" = "Duplicar Entrada"; -"DUPLICATE_ENTRY_WITH_OPTIONS" = "Duplicar Entrada…"; -"COPY_ENTRY" = "Copiar Entrada"; -"COPY_GROUP" = "Copiar Grupo"; +/* Menu item title for adding an hmacotp config attribute */ +"ADD_CUSTOM_ATTRIBUTE_HMACOTP_CONFIG" = "Añadir configuración HMACOTP"; + +/* Menu item title for adding an hmacotp seed attribute */ +"ADD_CUSTOM_ATTRIBUTE_HMACOTP_SEED" = "Añadir semilla HMACOTP"; + +/* Menu displayed for adding special custom keys */ +"ADD_CUSTOM_FIELD_CONTEXT_MENU" = "Añadir campo personalizado al menú"; + +/* Action to add an entry via template */ "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 Autollenado"; -"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"; -"SHOW_HISTORY" = "Mostrar Historial"; -/* - 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…"; +/* Allow the download of the plugin repository file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_ALLOW_DOWNLOAD" = "Actualizar las definiciones online"; -/* - Direct Translations - */ -"ACTION" = "Acción"; +/* Informative text displayed on the alert that shows up when MacPass asks for permssion to download the plugin repository JSON file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_CONNECTION_PERMISSION_INFORMATIVE_TEXT" = "Las definiciones de los plugin están almacenadas online en https://macpassapp.org. A MacPass le gustaría descargar los archivos para asegurar que los datos están actualizados"; + +/* Message displayed on the alert that asks for permission to download the plugin repository JSON file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_CONNECTION_PERMISSION_MESSAGE" = "A MacPass le gustaría comprobar las actualizaciones de las definiciones de los plugin online"; + +/* Disallow the download of the plugin repository file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_DISALLOW_DOWNLOAD" = "No actualizar definiciones"; + +/* Button in dialog to leave autotype disabled and continiue! */ +"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OK" = "Mantener Autotecleo deshabilitado."; + +/* Button in dialog to open accessibilty preferences pane! */ +"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OPEN_PREFERENCES" = "Abrir las preferencias de accesibilidad..."; + +/* Alert informative text displayed when Autotype performs self check and lacks accessibilty permissions */ +"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_INFORMATIVE_TEXT" = "El sistema evita que MacPass envíe las pulsaciones de las teclas a otras aplicaciones. Para habilitar el Autotecleo por favor concede permisos de accesibilidad a MacPass en las preferencias de privacidad."; + +/* Alert message displayed when Autotype performs self check and lacks accessibilty permissions */ +"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_MESSAGE_TEXT" = "MacPass no puede realizar el Autotecleo"; + +/* Button in dialog to leave plugin ds disabled and continiue! */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OK" = "OK"; + +/* Button in dialog to open plugin preferences pane! */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OPEN_PREFERENCES" = "Mostrar preferencias del plugin…"; + +/* Informative text of the alert displayed when plugins where disabled due to incompatibilty */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_INFORMATIVE_TEXT" = "Algunos plugins fueron deshabilitados porque no son compatibles con esta version de MacPass. Abra la configuración del plugin para obtener detalles."; + +/* Message text of the alert displayed when plugins where disabled due to incompatibilty */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_MESSAGE" = "Plugins incompatibles detectados."; + +/* Alert informative text when plugins or their settings change and require a restart */ +"ALERT_INFORMATIVE_TEXT_PLUGINS_CHANGED_SUGGEST_RESTART" = "Los cambios a los plugins y sus configuraciones globales sólo tienen efecto tras reiniciar ¿Reiniciar MacPass ahora?"; + +/* Alert informative text to ask the user if he really want to uninstall the plugin */ +"ALERT_INFORMATIVE_TEXT_REALLY_UNINSTALL_PLUGIN" = "Se moverá el plugin a la papelera."; + +/* Button in dialog to cancel merge of KDB file changes! */ +"ALERT_MERGE_CANCEL" = "Cancelar"; + +/* Button in dialog to merge KDB changes into file! */ +"ALERT_MERGE_CONTINUE" = "¡Fusionar archivos!"; + +/* Informative text displayed when merging KDB files */ +"ALERT_MERGE_KDB_FILE_INFO_TEXT" = "Las bases de datos KDB no contienen suficiente información para una fusión perfecta. Las entradas se fusionarán y no se perderá información, pero debido a que los grupos se fusionan únicamente por nombre pueden ocurrir cambios inesperados. Las entradas migradas podrían moverse a sus antiguos grupos o los grupos renombrados podrían no fusionarse. Además las entradas eliminadas podrían reaparecer debido a que no se almacena información sobre los objetos eliminados. ¿Proceder de todas formas?"; + +/* Alert message warning user about KDB file merge */ +"ALERT_MERGE_KDB_FILE_MESSAGE" = "Está fusionando una base de datos KDB"; + +/* Alert message text when plugins or their settings change and require a restart */ +"ALERT_MESSAGE_PLUGINS_CHANGED_SUGGEST_RESTART" = "Configuración de plugin modificada. Reinicie por favor."; + +/* Alert message text to ask the user if he really want to uninstall the plugin. Include %@ placeholder for plugin name */ +"ALERT_MESSAGE_TEXT_REALLY_UNINSTALL_PLUGIN_%@" = "¿Debe desinstalarse realmente el plugin %@?"; + +/* Infromative text of the disabled updates alert! */ +"ALERT_UPDATES_DISABLED_INFORMATIVE_TEXT_%@!" = "¡Las actualizaciones para este Build de %@ están deshabilitadas!"; + +/* Message text for disabled updates alert! */ +"ALERT_UPDATES_DISABLED_MESSAGE_TEXT" = "¡Las actualizaciones están deshabilitadas!"; + +/* Attachments column title (shows counts) + Menu item to toggle display of attachment count column in entry table */ "ATTACHMENTS" = "Adjuntos"; -"CANCEL" = "Cancelar"; -"DATABASE" = "Base de Datos"; -"DELETE" = "Eliminar"; -"EDIT" = "Editar"; -"GROUP" = "Grupo"; -"INSPECTOR" = "Inspector"; -"LOCK" = "Bloquear"; -"MODIFIED" = "Modificado"; -"NONE" = "Ninguno"; -"NOTES" = "Notas"; -"PASSWORD" = "Contraseña"; -"SAVE" = "Guardar"; -"SAVE_WITH_DOTS" = "Guardar…"; -"SEARCH" = "Buscar"; -"TITLE" = "Título"; -"URL" = "URL"; -"USERNAME" = "Nombre de usuario"; -"WINDOWS" = "Ventanas"; +/* Sucessfully merged external changes */ +"AUTO_MERGE_NOTIFICATION_TEXT" = "¡Éxito en la fusión automática!"; + +/* Menu item for automatic trash creation */ +"AUTOCREATE_TRASH_FOLDER" = "Crear automáticamente"; + +/* Message text in the autotype selection window. Placeholder is %1 - windowTitle */ +"AUTOTYPE_CANDIDATE_SELECTION_WINDOW_MESSAGE_%@" = "Hay coincidencias múltiples para la ventana actual: %@. Por favor selecciona cual usar."; + +/* Window title for the stand-alone password creator window */ +"AUTOTYPE_DOCTOR_RESULTS_WINDOW_TITLE" = "Doctor de Autotecleo"; + +/* Inherit autotype settings menu item */ +"AUTOTYPE_INHERIT" = "Heredar Configuración de Autotecleo"; + +/* Message displayed to the user to unlock the database to perform global autotype */ +"AUTOTYPE_MESSAGE_UNLOCK_DATABASE" = "Por favor desbloquee la base de datos para usar el Autotecleo global"; + +/* Disable autotype menu item */ +"AUTOTYPE_NO" = "Deshabilitar Autotecleo"; + +/* Notification: Autotype failed, MacPass has not enough permissions to perform autotype */ +"AUTOTYPE_NOTIFICATION_MACPASS_IS_MISSING_PERMISSIONS" = "Autotecleo no tiene los permisos necesarios"; + +/* Notification: Autotype failed, no documents are open */ +"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Debes abrir un archivo para usar Autotecleo Global"; +/* Noticiation: Autotype failed to find a match for %@ (string placeholder) */ +"AUTOTYPE_OVERLAY_NO_MATCH_FOR_%@" = "¡No hay entradas para %@!"; + +/* Notification: Autotype found a single match for %@ (string placeholder). */ +"AUTOTYPE_OVERLAY_SINGLE_MATCH_FOR_%@" = "¡%@ Encontrado!"; + +/* Status lable when no issue were found in accessibilty */ +"AUTOTYPE_STATUS_ACCESSIBILTY_PERMISSIONS_OK" = "MacPass tiene permiso para controlar su ordenador (Accesibilidad)"; + +/* Status MacPass has no accessibilty permissions */ +"AUTOTYPE_STATUS_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass no tiene permiso para controlar su ordenador (Accesibilidad)"; + +/* Status MacPass has no screen recording permissions */ +"AUTOTYPE_STATUS_NO_SCREEN_RECORDING_PERMISSIONS" = "MacPass no tiene permiso para grabar su pantalla"; + +/* Status lable when no issue were found in screen recording permissions */ +"AUTOTYPE_STATUS_SCREEN_RECORDING_PERMISSIONS_OK" = "MacPass tiene permiso para grabar su pantalla"; + +/* Notficication: Autotype timed out */ +"AUTOTYPE_TIMED_OUT" = "El tiempo de autotecleo expiró."; + +/* Enable autotype menu item */ +"AUTOTYPE_YES" = "Habilitar Autotecleo"; + +/* Cancel */ +"CANCEL" = "Cancelar"; + +/* Menu item in the database outline context menu to change the database name */ "CHANGE_DATABASE_NAME" = "Cambiar Nombre de Base"; + +/* Button to postpone the password change */ +"CHANGE_LATER" = "Cambiar más tarde"; + +/* Button to show the password change dialog + Single button to show the password change dialog */ +"CHANGE_PASSWORD_WITH_DOTS" = "Cambiar Contraseña…"; + +/* Menu item in the database outline context menu to change the trash group */ "CHANGE_TRASH_GROUP" = "Cambiar Grupo de Papelera"; -/* Field nam that was copied to the pasteboard */ +/* Button title in the key file selection dialog for selecting a key */ +"CHOOSE_FILE_BUTTON_TITLE" = "Abrir"; + +/* Clear Autotype Button */ +"CLEAR_AUTOTYPE" = "Limpiar Autotecleo"; + +/* Menu to clear recent searches */ +"CLEAR_RECENT_SEARCHES" = "Limpiar búsquedas recientes"; + +/* String displayed at dock badge when clipboard is about to be cleared */ +"CLEARING_PASTEBOARD" = "Vaciado"; + +/* Field name that was copied to the pasteboard */ "COPIED_FIELD_%@" = "%@ copiado"; + +/* Context menu that copies reference to note */ +"COPIED_NOTES_REFERENCE" = "¡Referencia a notas copiada!"; + +/* Password was copied to the pasteboard */ "COPIED_PASSWORD" = "Contraseña copiada"; + +/* Context menu that copies reference to password */ +"COPIED_PASSWORD_REFERENCE" = "¡Referencia a contraseña copiada!"; + +/* Context menu that copies reference to title */ +"COPIED_TITLE_REFERENCE" = "¡Referencia a título copiada!"; + +/* URL was copied to the pasteboard */ "COPIED_URL" = "URL copiada"; + +/* Context menu that copies reference to URL */ +"COPIED_URL_REFERENCE" = "¡Referencia a URL copiada!"; + +/* Username was copied to the pasteboard */ "COPIED_USERNAME" = "Nombre de usuario copiado"; + +/* Context menu that copies reference to username */ +"COPIED_USERNAME_REFERENCE" = "¡Referencia a nombre de usuario copiado!"; + +/* Submenu to copy attributes as reference */ +"COPY_AS_REFERENCE" = "Copiar referencia a…"; + +/* Context menu sub-menu to copy attributes as reference */ +"COPY_AS_REFERENCE_MENU" = "Menú copiar como referencia"; + +/* Submenu to Copy custom fields */ "COPY_CUSTOM_FIELDS" = "Copiar Campos Personalizados"; + +/* Context menu sub-menu to copy custom fields to clipboard */ +"COPY_CUSTOM_FIELDS_MENU" = "Copiar Campo Personalizado…"; + +/* Action name when an entry was moved + Action title for copying an entry via drag and drop */ +"COPY_ENTRY" = "Copiar Entrada"; + +/* Mask for title to copy field value */ "COPY_FIELD_%@" = "Copiar %@"; + +/* Action title for copying a group via drag and drop */ +"COPY_GROUP" = "Copiar Grupo"; + +/* Context menu that copies reference to note */ +"COPY_NOTES_REFERENCE" = "Notas"; + +/* Menu item to copy the password of an entry + Toolbar item copy password */ "COPY_PASSWORD" = "Copiar Contraseña"; -"COPY_URL" = "Copy URL"; + +/* Context menu that copies reference to password */ +"COPY_PASSWORD_REFERENCE" = "Contraseña"; + +/* Context menu that copies reference to title */ +"COPY_TITLE_REFERENCE" = "Título"; + +/* Menu item to copy the URL of an entry */ +"COPY_URL" = "Copiar URL"; + +/* Context menu that copies reference to URL */ +"COPY_URL_REFERENCE" = "URL"; + +/* Menu item to copy the username of an entry + Toolbar item copy username */ "COPY_USERNAME" = "Copiar Nombre de Usuario"; -/* Dock Badge */ -"CLEARING_PASTEBOARD" = "…"; +/* Context menu that copies reference to username */ +"COPY_USERNAME_REFERENCE" = "Nombre de usuario"; -/* Group Inspector */ -/* Autotype Combobox */ -"AUTOTYPE_NO" = "Deshabilitar Autollenado"; -"AUTOTYPE_YES" = "Habilitar Autollenado"; -"AUTOTYPE_INHERIT" = "Heredar Configuración de Autollenado"; +/* Curstom attribute reference item */ +"CUSTOM_ATTRIBUTE" = "Atributo personalizado"; -/* Search Combobox */ -"SEARCH_INHERIT" = "Heredar Configuración de Búsqueda"; -"SEARCH_YES" = "Incluir en Búsqueda"; -"SEARCH_NO" = "Exluir de Búsqueda"; +/* Title for menu for custom search filters */ +"CUSTOM_SEARCH_FILTER_MENU" = "Filtro de búsqueda personalizado…"; -/* - 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: %@"; +/* Default display name for KDB databases */ +"DATABASE" = "Base de Datos"; -"EXPIRES_AT_DATE_%@" = "Expira: %@"; -"NO_EXPIRE_DATE_SET" = "No expira."; +/* Default Browser */ +"DEFAULT_BROWSER" = "Navegador Predeterminado"; -/* - Defaults for new objects - */ +/* Default Titel for new Custom-Fields */ "DEFAULT_CUSTOM_FIELD_TITLE" = "Personalizado"; + +/* Default Value for new Custom-Fields */ "DEFAULT_CUSTOM_FIELD_VALUE" = "Valor"; + +/* Title for a newly created entry */ "DEFAULT_ENTRY_TITLE" = "Nueva Entrada"; + +/* Title for a newly created group */ "DEFAULT_GROUP_NAME" = "Nuevo Grupo"; + +/* Default window title for a new window association */ "DEFAULT_WINDOW_TITLE" = "Título de Ventana"; -/* Settings */ -"GENERAL_SETTINGS" = "General"; +/* Menu item in the database outline context menu to delete the node from the trash + Menu item to delete an entry + Menu item to delete the selected attached file + Menu item to delete the selected custom icon + Toolbar item delete item */ +"DELETE" = "Eliminar"; + +/* Delete Entry */ +"DELETE_ENTRY" = "Eliminar Entrada"; + +/* Delete Group */ +"DELETE_GROUP" = "Eliminar Grupo"; + +/* Empty Trash */ +"DELETE_TRASHED_ENTRY" = "Eliminar entrada definitivamente"; + +/* Empty Trash */ +"DELETE_TRASHED_GROUP" = "Eliminar grupo definitivamente"; + +/* Action title for copying an entry via drag and drop to another database + Action title for moving an entry via drag and drop */ +"DRAG_ENTRY" = "Arrastrar entrada"; + +/* Action title for moving a group via drag and drop + Actiontitle for copying groups via drag and drop to antother database */ +"DRAG_GROUP" = "Arrastrar grupo"; + +/* Action name for duplicating entries */ +"DUPLICATE_ENTRIES_%ld" = "%ld entradas duplicadas"; + +/* Menu item to directly diplicate an entry */ +"DUPLICATE_ENTRY" = "Duplicar Entrada"; + +/* Menu item to duplicate an entry with options how to duplicate. Will present a dialog. */ +"DUPLICATE_ENTRY_WITH_OPTIONS" = "Duplicar Entrada…"; + +/* Menu item in the database outline context menu to change the template group + Menu item on the add entry context menu to edit template groups */ +"EDIT_TEMPLATE_GROUP" = "Editar Grupo de Plantilla"; + +/* Empty Trash + Menu item in the database outline context menu to empyt the trash + Menu item in the database outline to empty the trash + Menu item to empty the trash */ +"EMPTY_TRASH" = "Vaciar Papelera"; + +/* Informative text for the enforce password change alert */ +"ENFORCE_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "No será posible guardar cambios hsata que la contraseña o el keyfile sean modificados."; + +/* Message text for the enforce password change alert */ +"ENFORCE_PASSWORD_CHANGE_ALERT_TITLE" = "La contraseña de la base de datos ha caducado"; + +/* Group row for entry attributes */ +"ENTRY_CUSTOM_ATTRIBUTES" = "Atributos personalizados"; + +/* Group row for entry attributes */ +"ENTRY_DEFAULT_ATTRIBUTES" = "Atributos por defecto"; + +/* Tooltip displayed on the index header cell */ +"ENTRY_INDEX_COLUMN_TOOLTIP" = "Columna para ordenar definida por usuario"; + +/* Keyfile not valid */ +"ERROR_INVALID_KEYFILE" = "¡El Keyfile no es válido!"; + +/* Error description given when adding an invalid plugin */ +"ERROR_INVALID_PLUGIN" = "Plugin inválido"; + +/* Error description for missing accessibilty permissions */ +"ERROR_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass no tiene permiso para controlar su ordenador (Accesibilidad)"; + +/* Error description for missing screen recording permissions */ +"ERROR_NO_PERMISSION_TO_RECORD_SCREEN" = "MacPass no tiene permiso para grabar su pantalla"; + +/* Passwords do not match */ +"ERROR_PASSWORD_MISSMATCH" = "¡Las contraseñas no coinciden!"; + +/* Passwords do not match, keyfile is invalid */ +"ERROR_PASSWORD_MISSMATCH_INVALID_KEYFILE" = "Las contraseñas no coinciden y el keyfile no es válido"; + +/* Recommend/Enforce key change intervall format */ +"EVERY_%ld_DAYS" = "Cada %ld días"; + +/* Format to returen the date an item expires. Includes %@ placehoder for date */ +"EXPIRES_AT_DATE_%@" = "Caduca: %@"; + +/* The master key was changed by an external program! */ +"EXTERN_CHANGE_OF_MASTERKEY" = "La contraseña maestra se modifico por otro programa"; + +/* External file change strategy option: ask what to do */ +"FILE_CHANGE_STRATEGY_ASK" = "Preguntar"; + +/* External file change strategy option: Keep local file an ignore external changes */ +"FILE_CHANGE_STRATEGY_KEEP_MINE" = "Mantener mi versión e ignorar otros cambios"; + +/* Button in dialog to merge changes into file! + External file change strategy option: Merge external changes into local file. */ +"FILE_CHANGE_STRATEGY_MERGE" = "Fusionar cambios"; + +/* External file change strategy option: Use the changed file and discard local changes */ +"FILE_CHANGE_STRATEGY_USE_OTHER" = "Cargar la versión modificada y descartar la mía"; + +/* Informative text displayed when the file was change from another application */ +"FILE_CHANGED_BY_OTHERS_INFO_TEXT" = "El archivo cargado no coincide con el guardado en el disco. ¿Cómo deseas continuar?"; + +/* 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!"; + +/* Error while reopening last known documents */ +"FILE_OPEN_ERROR" = "¡Error al abrir el archivo!"; + +/* General Settings Label */ +"GENERAL_PREFERENCES" = "General"; + +/* Group column title */ +"GROUP" = "Grupo"; + +/* History count column title + Menu item to toggle display of history count column in entry table */ +"HISTORY" = "Historial"; + +/* Imports a dragged URL for a new entry */ +"IMPORT_URL" = "Importar URL"; + +/* Toolbar item toggle inspector */ +"INSPECTOR" = "Inspector"; + +/* Label for the integration settings tab */ "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 */ +/* Just now */ +"JUST_NOW" = "Justo ahora"; + +/* Feature only available in kdbx databases */ "KDBX_ONLY_FEATURE" = "Caraterística no soportada en archivos KDB"; -/* Template */ +/* Button in dialog to ignore the changes to an open file! */ +"KEEP_MINE_DISCARD_OTHER" = "Mantener mis cambios, descartar los cambios externos"; + +/* Button in dialog to reopen the file! */ +"KEEP_OTHER_DISCARD_MINE" = "Descartar mis cambios, recargar archivo"; + +/* Do not install the plugin */ +"KEEP_PLUGIN" = "Mantener el Plugin"; + +/* Do not restart MacPass */ +"KEEP_RUNNING" = "No reiniciar"; + +/* last week */ +"LAST_WEEK" = "La semana pasada"; + +/* Toolbar item to Lock the database */ +"LOCK" = "Bloquear"; + +/* Message in the open panel to add attachments to an entry */ +"MESSAGE_ADD_ATTACHMENT_OPEN_PANEL" = "Seleccionar el archivo a adjuntar"; + +/* Message in the add plugin open panel */ +"MESSAGE_ADD_PLUGIN_OPEN_PANEL" = "Seleccionar el plugin a instalar"; + +/* Message in the open panel to import an XML file */ +"MESSAGE_XML_OPEN_PANEL" = "Seleccionar el archivo XML a importar"; + +/* Menu item to toggle display of modified date column in entry table + Modification date column title */ +"MODIFIED" = "Modificado"; + +/* Action name when an entry was moved */ +"MOVE_ENTRY" = "Mover Entrada"; + +/* Menu displayed as popup selection for search options when multiple items are selected */ +"MULTIPLE_FILTERS_ACTIVE_WITH_DOTS" = "Multiple…"; + +/* Name for a newly created Database */ +"NEW_DATABASE" = "Base de Datos"; + +/* Action name for a newly created entry + Menu item to create a new entry + Toolbar item new entry */ +"NEW_ENTRY" = "Agregar Entrada"; + +/* Submenu to add an entry via template */ +"NEW_ENTRY_WITH_TEMPLATE_%@" = "Crear Entrada con Plantilla %@"; + +/* Action name for a newly created group + Menu item to create a new group + Toolbar item new group */ +"NEW_GROUP" = "Agregar Grupo"; + +/* Expiration date format, when item does not expire */ +"NO_EXPIRE_DATE_SET" = "No caduca."; + +/* Menu item to reset the template groups */ "NO_TEMPLATE_GROUP" = "Sin plantillas"; + +/* Menu item added to show that no templates are defined */ "NO_TEMPLATES" = "No se han encontrado Plantillas"; -/* Kefile */ -"SAVE_KEYFILE" = "Guardar Keyfile"; +/* Null placeholder for item input field + Placeholder text for input fields if no entry or group is selected */ +"NONE" = "Ninguno"; -/* Autoype */ -/* Candiate dialog */ -"SELECT_AUTOTYPE_CANDIDATE" = "Seleccionar candidato"; -"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Debes abrir un archivo para usar Autollenado Global"; -"AUTOTYPE_OVERLAY_NO_MATCH_FOR_%@" = "No hay registros para %@!"; -"AUTOTYPE_OVERLAY_SINGLE_MATCH" = "Encontrado"; +/* Displayed name when notes or part of notes was copied + Menu item to toggle display of notes column in entry table + Notes column title + Notes reference item */ +"NOTES" = "Notas"; -/* 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"; +/* Ok Button to dismiss disabled updates alert */ +"OK" = "OK"; -"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."; +/* preset to expire after one montch from now */ +"ONE_MONTH" = "en un mes"; -"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…"; +/* preset to expire after one week from now */ +"ONE_WEEK" = "en una semana"; -"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."; +/* one week ago */ +"ONE_WEEK_AGO" = "Hace una semana"; -/* 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" = "Utilizar la estrategia seleccionada y no volverme a preguntar."; -/* Always show a dialog after an external file change */ -"FILE_CHANGE_STRATEGY_ASK" = "Preguntarme qué hacer"; -/* Button to ignore the changes */ -"KEEP_MINE" = "Conservar versión actual y descartar cambios"; -/* Merge changes into file! */ -"MERGE_CHANGES" = "Unir cambios"; - -/* Password Input Messages, Errors and Warning */ +/* preset to expire after one year from now */ +"ONE_YEAR" = "en un año"; + +/* Open button in the open panel to add attachments to an entry */ +"OPEN_BUTTON_ADD_ATTACHMENT_OPEN_PANEL" = "Adjuntar"; + +/* Open button in the add plugin open panel */ +"OPEN_BUTTON_ADD_PLUGIN_OPEN_PANEL" = "Instalar"; + +/* Open button in the open panel to import an XML file */ +"OPEN_BUTTON_IMPORT_XML_OPEN_PANEL" = "Importar"; + +/* Action button in Notification to open a document */ +"OPEN_DOCUMENT" = "Abrir Documento"; + +/* Menu item to open the URL with the default application */ +"OPEN_URL" = "Abrir URL"; + +/* Select Browser */ +"OTHER_BROWSER" = "Seleccionar Navegador…"; + +/* No comment provided by engineer. */ +"OUTPUT_VALUE" = "Valor de salida"; + +/* Menu item to toggle display of password column in entry table + Password column title + Password reference item */ +"PASSWORD" = "Contraseña"; + +/* Window title for the stand-alone password creator window */ +"PASSWORD_CREATOR_WINDOW_TITLE" = "Generador de contraseña"; + +/* Button to reset the password defaults for a single entry */ +"PASSWORD_GENERATOR_RESET_ENTRY_DEFAULTS" = "Reiniciar"; + +/* Button to set the defaults of the password generator */ +"PASSWORD_GENERATOR_SET_DEFAULTS" = "Configurar Predeterminados"; + +/* Placeholder for the password field to aks for password + Placeholder in the unlock-password input field if password is enabled */ +"PASSWORD_INPUT_ENTER_PASSWORD" = "Introducir Contraseña"; + +/* Placeholder for the password input field if passwords are disabled + Placeholder for the repeat password input if passwords are disabled + Placeholder in the unlock-password input field if password is disabled */ "PASSWORD_INPUT_NO_PASSWORD" = "Sin Contraseña"; -"PASSWORD_INPUT_ENTER_PASSWORD" = "Ingresar Contraseña"; + +/* Placeholder for the repeat password field to aks for the repeated password */ "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 Autollenado..."; -"FILE_OPEN_ERROR" = "Error al abrir el archivo."; +/* Menu item to perform autotype with the selected entry */ +"PERFORM_AUTOTYPE_FOR_ENTRY" = "Generar Autotecleo"; + +/* Info about how many character has to pick in pickchar dialog */ +"PICKCHAR_INFO_MESSAGE_PICK_CHARACTERS_%ld" = "Por favor seleccione %ld caracteres"; + +/* Window displayed to the user to pick an amout of characters */ +"PICKCHAR_WINDOW_TITLE" = "Selector de caracteres"; + +/* Count of picked characters in pickchars dialog if no limit is set */ +"PICKED_%ld_CHARACTERS" = "Seleccionados %ld caracteres"; + +/* Window displayed to the user to pick an amout of characters */ +"PICKFIELD_WINDOW_TITLE" = "Selector de campo"; + +/* Label for the button when a download is in progress! */ +"PLUGIN_BROWSER_ACTION_DOWNLOAD_IN_PROGRESS" = "Descargando…"; + +/* Label for the button when a download did not succeed */ +"PLUGIN_BROWSER_ACTION_RETRY_FAILED_DOWNLOAD" = "Error. Volver a descargar"; + +/* Label for the button to show a downloaded file */ +"PLUGIN_BROWSER_ACTION_SHOW_DOWNLOADED_FILE" = "Mostrar en el Finder…"; + +/* Button to download the Plugin */ +"PLUGIN_BROWSER_DOWNLOAD_PLUGIN_BUTTON" = "Descargar"; + +/* Status for an up-to-date plugin in the plugin browser */ +"PLUGIN_BROWSER_LATEST_VERSION_INSTALLED" = "Última versión instalada"; + +/* Status for an outdated plugin version in the plugin browser */ +"PLUGIN_BROWSER_NEWER_VERSION_%@_AVAILABLE" = "Disponible nueva versión(%@)."; + +/* Status for an uninstalled plugin in the plugin browser */ +"PLUGIN_BROWSER_PLUGIN_NOT_INSTALLED" = "No instalado"; + +/* Status for an unkonw plugin version in the plugin browser */ +"PLUGIN_BROWSER_UNKNOWN_PLUGIN_VERSION_INSTALLED_%@" = "Instalada versión(%@) desconocida"; + +/* Error for a plugin that is disabled. */ +"PLUGIN_ERROR_DISABLED_PLUGIN" = "El plugin está deshabilitado por el usuario"; + +/* Plugin is not with this version of MacPass */ +"PLUGIN_ERROR_HOST_VERSION_NOT_SUPPORTED" = "El plugin no es compatible con esta versión de MacPass"; + +/* The plugin could not be initalized */ +"PLUGIN_ERROR_INTILIZATION_FAILED" = "El plugin no puede ser inicializado"; + +/* Error for a plugin that was not signed properly */ +"PLUGIN_ERROR_UNSECURE_PLUGIN" = "El plugin no está firmado correctamente"; + +/* Plugin specifies the wrong principla class! */ +"PLUGIN_ERROR_WRONG_PRINCIPAL_CLASS" = "Clase principal en el plugin inesperada"; + +/* name for disabled unloaded plugin */ +"PLUGIN_NAME_DISABLED_%@" = "🚫 %@"; + +/* Name for unloaded plugin with errors */ +"PLUGIN_NAME_ERROR_%@" = "⚠️ %@"; + +/* Label for plugin settings tab */ +"PLUGIN_SETTINGS" = "Plugins"; + +/* Generic message displayed if no details are know why a plugin was not loaded. */ +"PLUGIN_SETTINGS_GENERIC_ERROR_MESSAGE" = "El plugin no puede ser cargado."; + +/* Plugin version. Include a %@ placeholder for version string */ +"PLUGIN_VERSION_%@" = "Versión: %@"; + +/* Menu item to preview the selected attached file. */ +"PREVIEW" = "Vista Previa"; + +/* Recent searches menu item */ +"RECENT_SEARCHES" = "Búsquedas recientes"; + +/* Informative text for the recommend password change alert */ +"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Se recomienda cambiar la contraseña y/o el keyfile."; + +/* Message text for the recommend password change alert */ +"RECOMMEND_PASSWORD_CHANGE_ALERT_TITLE" = "¡Por favor, cambia la contraseña de la base de datos!"; + +/* Restart */ +"RESTART" = "Reiniciar"; + +/* Action to restore and Entry to a previous state of it's history */ +"RESTORE_HISTORY_ENTRY" = "Restablecer entrada de historial"; + +/* Menu item to save the selected attached file. + Save file menu item title when save will just save the file */ +"SAVE" = "Guardar"; + +/* Button title to save the generated key file */ +"SAVE_KEYFILE" = "Guardar Keyfile"; + +/* Save file menu item title when save will prompt for a location to save or ask for a password/key */ +"SAVE_WITH_DOTS" = "Guardar…"; + +/* Search input in Toolbar */ +"SEARCH" = "Buscar"; + +/* Search option: Find duplicate passwords */ +"SEARCH_DUPLICATE_PASSWORDS" = "Contraseñas duplicadas"; + +/* Search option: Find expired entries */ +"SEARCH_EXPIRED_ENTRIES" = "Caducados"; + +/* Inherit search settings menu item */ +"SEARCH_INHERIT" = "Heredar Configuración de Búsqueda"; + +/* Disable search menu item */ +"SEARCH_NO" = "Exluir de Búsqueda"; + +/* No comment provided by engineer. */ +"SEARCH_VALUE" = "Search Value"; + +/* Enable search menu item */ +"SEARCH_YES" = "Incluir en Búsqueda"; + +/* Menu item title for the expiry preset selection menu in the date picker */ +"SELECT_DATE_PRESET" = "Usar predefinido…"; + +/* Message on the open panel for selecting which browser to use for opening URLs */ +"SELECT_DEFAULT_BROWSER_OPEN_PANEL_MESSAGE" = "Seleccionar el navegador por defecto para abrir URLs."; + +/* Label for the select browser button on the open panel for selecting which browser to use for opening URLs */ +"SELECT_DEFAULT_BROWSER_OPEN_PANEL_SELECT_BUTTON" = "Seleccionar"; + +/* Message for the dialog to open a file for merge */ +"SELECT_FILE_TO_MERGE" = "Seleccionar fichero a fusionar"; + +/* Menu displayed as popup selection for search options if no filter is selected */ +"SELECT_FILTER_WITH_DOTS" = "Seleccionar…"; + +/* Checkbox in dialog to set the selection as default file change strategy! */ +"SET_AS_DEFAULT_FILE_CHANGE_STRATEGY" = "Utilizar la estrategia seleccionada por defecto. Se puede modificar en cualquier momento en preferencias"; + +/* Action button in Notification to show the Autotype Doctor */ +"SHOW_AUTOTYPE_DOCTOR" = "Mostrar Doctor de Autotecleo"; + +/* Menu item to show the history of the selected entry + Toolbar item to toggle history display */ +"SHOW_HISTORY" = "Mostrar Historial"; + +/* Displayed name when title field was copied + Menu item to toggle display of title column in entry table + Title column title + Title reference item */ +"TITLE" = "Título"; + +/* preset to expire tomorrow */ +"TOMORROW" = "Mañana"; + +/* Toolbar item to perform autotype */ +"TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "Autotecleo"; + +/* Touchbar button label for choosing the keyfile */ +"TOUCHBAR_CHOOSE_KEYFILE" = "Seleccionar Keyfile"; + +/* Touchbar button label for copying the password */ +"TOUCHBAR_COPY_PASSWORD" = "Copiar Contraseña"; + +/* Touchbar button label for copying the username */ +"TOUCHBAR_COPY_USERNAME" = "Copiar Nombre de usuario"; + +/* Touchbar button label for deleting elements */ +"TOUCHBAR_DELETE" = "Eliminar"; + +/* Touchbar button label for opening the popover to edit */ +"TOUCHBAR_EDIT" = "Editar"; + +/* Touchbar button label for locking the database */ +"TOUCHBAR_LOCK_DATABASE" = "Bloquear Base de datos"; + +/* Touchbar button label for creating a new item */ +"TOUCHBAR_NEW_ENTRY" = "Nueva Entrada"; + +/* Touchbar button label for creating a new group */ +"TOUCHBAR_NEW_GROUP" = "Nuevo Grupo"; + +/* Touchbar button label for performing autotype */ +"TOUCHBAR_PERFORM_AUTOTYPE" = "Autoteclear"; + +/* Touchbar button label for searching the database */ +"TOUCHBAR_SEARCH" = "Buscar Base de datos"; + +/* Touchbar button label for showing the password */ +"TOUCHBAR_SHOW_PASSWORD" = "Mostrar Contraseña"; + +/* Touchbar button label for unlocking the database */ +"TOUCHBAR_UNLOCK_DATABASE" = "Desbloquear Base de datos"; + +/* Move Entry to Trash */ +"TRASH_ENTRY" = "Entrada a Papelera"; + +/* Move Group to Trash */ +"TRASH_GROUP" = "Grupo a Papelera"; + +/* Uninstall plugin */ +"UNINSTALL" = "Desinstalar"; + +/* No comment provided by engineer. */ +"UNKNOWN_FILE_VERSION" = "Versión de base de datos desconocida"; + +/* Unknown database format. */ +"UNKNOWN_FORMAT" = "Formato de archivo desconocido"; + +/* Database format is unknown since the file is not saved yet */ +"UNKNOWN_FORMAT_FILE_NOT_SAVED_YET" = "Desconocido, la base de datos no se ha guardado todavía"; + +/* No comment provided by engineer. */ +"UNKNOWN_TOOLBAR_ITEM" = "Item de barra de herramientas desconocido"; + +/* Update Settings Label */ +"UPDATE_PREFERENCES" = "Actualizaciones"; + +/* Menu item to toggle display of url column in entry table + Submenu with options what to do with the URL of an entry + Url column title + URL reference item */ +"URL" = "URL"; + +/* Menu item to toggle display of username column in entry table + Username column title + Username reference item */ +"USERNAME" = "Nombre de usuario"; + +/* Displayed name when uuid field was copied + UUID reference item */ +"UUID" = "UUID"; + +/* No Key or Password */ +"WARNING_NO_PASSWORD_OR_KEYFILE" = "¡Sin contraseña o keyfile!"; + +/* Informative Text displayed when clearing the Trash */ +"WARNING_ON_DELETE_TRASHED_NODE_DESCRIPTION" = "¡Los elementos de la papelera se eliminarán definitivamente!"; + +/* Message text for the alert displayed when deleting a node */ +"WARNING_ON_DELETE_TRASHED_NODE_TITLE" = "Eliminando elementos de la papelera"; + +/* Informative Text displayed when clearing the Trash */ +"WARNING_ON_EMPTY_TRASH_DESCRIPTION" = "Vaciar la Papelera es una acción irreversible."; + +/* Message text for the alert displayed when clearing the Trash */ +"WARNING_ON_EMPTY_TRASH_TITLE" = "¿Vaciar Papelera?"; + +/* No comment provided by engineer. */ +"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET" = "No hay contraseña o keyfile establecido."; + +/* No comment provided by engineer. */ +"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET_SUGGESTION" = "Por favor genera una contraseña o un keyfile para esta base de datos. Si cancela, se perderán todos los cambios y el documento quedará bloqueado."; + +/* Label for the workflow settings tab */ +"WORKFLOW_SETTINGS" = "Flujo de Trabajo"; + +/* Yesterday */ +"YESTERDAY" = "Ayer"; + diff --git a/MacPass/es.lproj/Localizable.stringsdict b/MacPass/es.lproj/Localizable.stringsdict new file mode 100644 index 000000000..e15d340a5 --- /dev/null +++ b/MacPass/es.lproj/Localizable.stringsdict @@ -0,0 +1,96 @@ + + + + + %ld_CHARACTERS_TO_PICK_REMAINING + + NSStringLocalizedFormatKey + %#@characters@ + characters + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + Queda un carácter + other + %ld caracteres restantes + zero + Todos los caracteres seleccionados + + + DUPLICATE_ENTRIES_ACTION_NAME + + NSStringLocalizedFormatKey + %#@entries@ + entries + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + Entrada duplicada + other + Entradas duplicadas + zero + Entradas duplicadas + + + EVERY_%ld_DAYS + + NSStringLocalizedFormatKey + %#@days@ + days + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + todos los días + other + cada %ld días + zero + después de cada desbloqueo + + + PICKCHAR_INFO_MESSAGE_PICK_CHARACTERS_%ld + + NSStringLocalizedFormatKey + %#@characters@ + characters + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + Por favor seleccione un único carácter + other + Por favor seleccione %ld caracteres + zero + Por favor seleccione los caracteres a usar + + + PICKED_%ld_CHARACTERS + + NSStringLocalizedFormatKey + %#@characters@ + characters + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + %ld carácter seleccionados + other + %ld caracteres seleccionados + zero + No se han seleccionado caracteres + + + + diff --git a/MacPass/es.lproj/MainMenu.strings b/MacPass/es.lproj/MainMenu.strings index 34602c2d6..e6dfb27ef 100644 --- a/MacPass/es.lproj/MainMenu.strings +++ b/MacPass/es.lproj/MainMenu.strings @@ -1,3 +1,11 @@ +/* Class = "NSMenuItem"; title = "Focus Entries"; ObjectID = "2VP-vB-IeX"; */ +"2VP-vB-IeX.title" = "Resaltar Entradas"; + +/* Class = "NSMenuItem"; title = "Item"; ObjectID = "3st-rv-EeQ"; */ +"3st-rv-EeQ.title" = "Item"; + +/* Class = "NSMenu"; title = "Import"; ObjectID = "4q9-u1-pcm"; */ +"4q9-u1-pcm.title" = "Importar"; /* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "5"; */ "5.title" = "Mandar al Frente"; @@ -35,7 +43,7 @@ /* Class = "NSMenu"; title = "File"; ObjectID = "81"; */ "81.title" = "Archivo"; -/* Class = "NSMenuItem"; title = "New"; ObjectID = "82"; */ +/* Class = "NSMenuItem"; title = "New Database"; ObjectID = "82"; */ "82.title" = "Nuevo"; /* Class = "NSMenuItem"; title = "File"; ObjectID = "83"; */ @@ -131,7 +139,7 @@ /* Class = "NSMenuItem"; title = "Toggle Inspector"; ObjectID = "1181"; */ "1181.title" = "Mostrar Inspector"; -/* Class = "NSMenuItem"; title = "Show Password Creator"; ObjectID = "1200"; */ +/* Class = "NSMenuItem"; title = "Password Generator"; ObjectID = "1200"; */ "1200.title" = "Mostrar Generador de Contraseñas"; /* Class = "NSMenuItem"; title = "Change Master Password…"; ObjectID = "1203"; */ @@ -143,29 +151,48 @@ /* Class = "NSMenuItem"; title = "Save As…"; ObjectID = "1243"; */ "1243.title" = "Guardar Como…"; -/* Class = "NSMenuItem"; title = "Export As XML…"; ObjectID = "1259"; */ +/* Class = "NSMenuItem"; title = "XML…"; ObjectID = "1259"; */ "1259.title" = "Exportar como XML…"; /* Class = "NSMenuItem"; title = "Lock"; ObjectID = "1261"; */ "1261.title" = "Bloquear"; -/* Class = "NSMenuItem"; title = "Focus Entries"; ObjectID = "2VP-vB-IeX"; */ -"2VP-vB-IeX.title" = "Resaltar Entradas"; +/* Class = "NSMenuItem"; title = "Import"; ObjectID = "aTb-sW-nUd"; */ +"aTb-sW-nUd.title" = "Importar"; + +/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "aVO-9F-Lwc"; */ +"aVO-9F-Lwc.title" = "Vista Rápida"; /* Class = "NSMenuItem"; title = "Focus Groups"; ObjectID = "HxM-dV-LIH"; */ "HxM-dV-LIH.title" = "Resaltar Grupos"; -/* Class = "NSMenuItem"; title = "Focus Inspector"; ObjectID = "Zje-Me-5c8"; */ -"Zje-Me-5c8.title" = "Restaltar Inspector"; - -/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "aVO-9F-Lwc"; */ -"aVO-9F-Lwc.title" = "Vista Rápida"; +/* Class = "NSMenuItem"; title = "Save a Copy…"; ObjectID = "i24-Gn-j9c"; */ +"i24-Gn-j9c.title" = "Guardar una copia..."; /* Class = "NSMenuItem"; title = "Fix Autotype…"; ObjectID = "nx7-Vf-LiD"; */ "nx7-Vf-LiD.title" = "Corregir Autollenado…"; -/* Class = "NSMenuItem"; title = "Import XML…"; ObjectID = "rW0-r1-QYL"; */ +/* Class = "NSMenu"; title = "Export"; ObjectID = "p8h-Fg-h1O"; */ +"p8h-Fg-h1O.title" = "Exportar"; + +/* Class = "NSMenuItem"; title = "XML…"; ObjectID = "rW0-r1-QYL"; */ "rW0-r1-QYL.title" = "Importar XML…"; +/* Class = "NSMenu"; title = "Item"; ObjectID = "Ttt-tR-emo"; */ +"Ttt-tR-emo.title" = "Item"; + +/* Class = "NSMenuItem"; title = "Export"; ObjectID = "tz9-yK-pOf"; */ +"tz9-yK-pOf.title" = "Exportar"; + +/* Class = "NSMenuItem"; title = "Focus Inspector"; ObjectID = "Zje-Me-5c8"; */ +"Zje-Me-5c8.title" = "Restaltar Inspector"; + /* Class = "NSMenuItem"; title = "Check for Updates…"; ObjectID = "zMO-8r-g5v"; */ "zMO-8r-g5v.title" = "Buscar Actualizaciones…"; + +/* Class = "NSMenuItem"; title = "Merge With…"; ObjectID = "zvE-0h-UxI"; */ +"zvE-0h-UxI.title" = "Fusionar con..."; + +/* Class = "NSMenuItem"; title = "Autotype Doctor"; ObjectID = "zWx-Re-iuJ"; */ +"zWx-Re-iuJ.title" = "Doctor de Autotecleo"; + diff --git a/MacPass/en.lproj/OpenPanelAccessoryView.strings b/MacPass/es.lproj/OpenPanelAccessoryView.strings similarity index 62% rename from MacPass/en.lproj/OpenPanelAccessoryView.strings rename to MacPass/es.lproj/OpenPanelAccessoryView.strings index fc2b6fec4..89bb579ba 100644 --- a/MacPass/en.lproj/OpenPanelAccessoryView.strings +++ b/MacPass/es.lproj/OpenPanelAccessoryView.strings @@ -1,6 +1,6 @@ /* Class = "NSButtonCell"; title = "Show hidden files"; ObjectID = "FfY-KA-8IC"; */ -"FfY-KA-8IC.title" = "Show hidden files"; +"FfY-KA-8IC.title" = "Mostrar archivos ocultos"; /* Class = "NSButtonCell"; title = "Allow all files"; ObjectID = "tvV-1s-Be3"; */ -"tvV-1s-Be3.title" = "Allow all files"; +"tvV-1s-Be3.title" = "Permitir todos los archivos"; diff --git a/MacPass/es.lproj/PasswordCreatorView.strings b/MacPass/es.lproj/PasswordCreatorView.strings index 86dcd3de7..a0e9bc7d2 100644 --- a/MacPass/es.lproj/PasswordCreatorView.strings +++ b/MacPass/es.lproj/PasswordCreatorView.strings @@ -1,11 +1,10 @@ - /* Class = "NSTextFieldCell"; title = "Password:"; ObjectID = "149"; */ "149.title" = "Contraseña:"; /* Class = "NSTextFieldCell"; title = "Length:"; ObjectID = "179"; */ "179.title" = "Longitud:"; -/* Class = "NSBox"; title = "Allowed Characters"; ObjectID = "332"; */ +/* Class = "NSBox"; title = "Character options"; ObjectID = "332"; */ "332.title" = "Caracteres Permitidos"; /* Class = "NSButtonCell"; title = "A-Z"; ObjectID = "453"; */ @@ -37,3 +36,13 @@ /* Class = "NSTextFieldCell"; title = "25000 bit"; ObjectID = "653"; */ "653.title" = "25000 bit"; + +/* Class = "NSButtonCell"; title = "Use default only for selected entry"; ObjectID = "cfZ-5F-Nge"; */ +"cfZ-5F-Nge.title" = "Establecer por defecto solo para la entrada seleccionada"; + +/* Class = "NSButtonCell"; title = "Use characters from every group"; ObjectID = "CMc-Uh-Fo5"; */ +"CMc-Uh-Fo5.title" = "Usar caracteres de todos los grupos"; + +/* Class = "NSButtonCell"; title = "Set Default"; ObjectID = "Wvs-Md-Ob8"; */ +"Wvs-Md-Ob8.title" = "Establecer por defecto"; + diff --git a/MacPass/es.lproj/PasswordEditWindow.strings b/MacPass/es.lproj/PasswordEditWindow.strings index 26465282c..b62b293d2 100644 --- a/MacPass/es.lproj/PasswordEditWindow.strings +++ b/MacPass/es.lproj/PasswordEditWindow.strings @@ -1,5 +1,4 @@ - -/* Class = "NSWindow"; title = "Window"; ObjectID = "1"; */ +/* Class = "NSWindow"; title = "Change Password"; ObjectID = "1"; */ "1.title" = "Ventana"; /* Class = "NSTextFieldCell"; title = "Missmatching Passwords"; ObjectID = "14"; */ @@ -28,3 +27,4 @@ /* Class = "NSButtonCell"; title = "Password:"; ObjectID = "OQz-DA-SoY"; */ "OQz-DA-SoY.title" = "Contraseña:"; + diff --git a/MacPass/es.lproj/PasswordInputView.strings b/MacPass/es.lproj/PasswordInputView.strings index fb39d812a..39ff27139 100644 --- a/MacPass/es.lproj/PasswordInputView.strings +++ b/MacPass/es.lproj/PasswordInputView.strings @@ -1,12 +1,18 @@ - /* Class = "NSButtonCell"; title = "Unlock"; ObjectID = "3"; */ "3.title" = "Desbloquear"; /* Class = "NSTextFieldCell"; title = "Keyfile"; ObjectID = "18"; */ "18.title" = "Keyfile"; -/* Class = "NSTextFieldCell"; title = "Password"; ObjectID = "IU9-5u-jn9"; */ -"IU9-5u-jn9.title" = "Contraseña"; - /* Class = "NSTextFieldCell"; title = "Wrong password!"; ObjectID = "269"; */ "269.title" = "Contraseña Incorrecta"; + +/* Class = "NSSecureTextFieldCell"; placeholderString = "Enter Password"; ObjectID = "339"; */ +"339.placeholderString" = "Introducir contraseña"; + +/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "erj-mR-UyO"; */ +"erj-mR-UyO.title" = "Cancelar"; + +/* Class = "NSButtonCell"; title = "Password"; ObjectID = "IU9-5u-jn9"; */ +"IU9-5u-jn9.title" = "Contraseña"; + diff --git a/MacPass/es.lproj/PickcharsView.strings b/MacPass/es.lproj/PickcharsView.strings new file mode 100644 index 000000000..157f1ce7e --- /dev/null +++ b/MacPass/es.lproj/PickcharsView.strings @@ -0,0 +1,18 @@ +/* Class = "NSButtonCell"; title = "Submit"; ObjectID = "8vP-Ka-vsA"; */ +"8vP-Ka-vsA.title" = "Enviar"; + +/* Class = "NSButtonCell"; title = "Reset"; ObjectID = "Emo-pg-Mfe"; */ +"Emo-pg-Mfe.title" = "Resetear"; + +/* Class = "NSTextFieldCell"; title = "StatusLabel"; ObjectID = "M3h-q8-FLO"; */ +"M3h-q8-FLO.title" = "Etiqueta de estado"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "pUG-4c-rTt"; */ +"pUG-4c-rTt.title" = "Celda de texto"; + +/* Class = "NSTextFieldCell"; title = "MessageLabel"; ObjectID = "sHz-kg-YJQ"; */ +"sHz-kg-YJQ.title" = "Etiqueta de mensaje"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "v3T-2f-yWm"; */ +"v3T-2f-yWm.title" = "Celda de tabla"; + diff --git a/MacPass/es.lproj/PickfieldView.strings b/MacPass/es.lproj/PickfieldView.strings new file mode 100644 index 000000000..2cf72d168 --- /dev/null +++ b/MacPass/es.lproj/PickfieldView.strings @@ -0,0 +1,24 @@ +/* Class = "NSTableColumn"; headerCell.title = "Field"; ObjectID = "0H9-DW-Jyj"; */ +"0H9-DW-Jyj.headerCell.title" = "Campo"; + +/* Class = "NSButtonCell"; title = "Select"; ObjectID = "6Wi-9i-Tcb"; */ +"6Wi-9i-Tcb.title" = "Seleccionar"; + +/* Class = "NSTextFieldCell"; title = "Please pick a field value to be inserted"; ObjectID = "aJS-22-6Va"; */ +"aJS-22-6Va.title" = "Por favor selecciona un valor para insertar"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "e8U-mE-mZh"; */ +"e8U-mE-mZh.title" = "Celda de tabla"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "fil-tT-GXX"; */ +"fil-tT-GXX.title" = "Celda de texto"; + +/* Class = "NSTextFieldCell"; title = "Header View Cell"; ObjectID = "kTy-VO-Xlg"; */ +"kTy-VO-Xlg.title" = "Celda de cabecera"; + +/* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "rVo-ud-5fs"; */ +"rVo-ud-5fs.headerCell.title" = "Valor"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "z1F-Bi-PBg"; */ +"z1F-Bi-PBg.title" = "Celda de texto"; + diff --git a/MacPass/es.lproj/PluginDataView.strings b/MacPass/es.lproj/PluginDataView.strings new file mode 100644 index 000000000..340af2f96 --- /dev/null +++ b/MacPass/es.lproj/PluginDataView.strings @@ -0,0 +1,15 @@ +/* Class = "NSButtonCell"; title = "Remove All"; ObjectID = "6hH-Hc-gf4"; */ +"6hH-Hc-gf4.title" = "Eliminar todo"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "bG1-Sb-Xyp"; */ +"bG1-Sb-Xyp.title" = "Celda de texto"; + +/* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "MaV-TP-92X"; */ +"MaV-TP-92X.placeholderString" = "Título"; + +/* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "mLw-O5-6D3"; */ +"mLw-O5-6D3.placeholderString" = "Valor"; + +/* Class = "NSTextFieldCell"; title = "Plugin data"; ObjectID = "unO-bO-8v0"; */ +"unO-bO-8v0.title" = "Datos del plugin"; + diff --git a/MacPass/es.lproj/PluginPreferences.strings b/MacPass/es.lproj/PluginPreferences.strings index 2e5f8f562..5441f4020 100644 --- a/MacPass/es.lproj/PluginPreferences.strings +++ b/MacPass/es.lproj/PluginPreferences.strings @@ -1,15 +1,33 @@ - -/* 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"; */ +/* Class = "NSTextFieldCell"; title = "If enabled, Plugins without proper signatures will be allowed to load. Keep in mind, that Plugins have full access to your data! Changes take affect on restart."; ObjectID = "2bX-8S-9XM"; */ "2bX-8S-9XM.title" = "Si se habilita, solo los Plugins propiamente firmados serán cargados. Ten en mente que los Plugins tenrán acceso a tu información. Es necesario reiniciar para aplicar los cambios."; /* Class = "NSButtonCell"; title = "Load unsecure Plugins"; ObjectID = "C4B-6z-ZqX"; */ "C4B-6z-ZqX.title" = "Cargar Plugins no seguros"; +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "fug-79-n9g"; */ +"fug-79-n9g.title" = "Vista de tabla de campos"; + +/* Class = "NSTextFieldCell"; title = "If enabled, a remote connection is established to macpassapp.org"; ObjectID = "i3S-9b-Bpf"; */ +"i3S-9b-Bpf.title" = "Si se habilita, se establece una conexión a macpassapp.org"; + +/* Class = "NSTextFieldCell"; title = "Plugin Settings Info"; ObjectID = "OOr-SW-jZb"; */ +"OOr-SW-jZb.title" = "Información de configuración del plugin"; + +/* Class = "NSButtonCell"; title = "Browse Available Plugins…"; ObjectID = "sqO-8H-n1y"; */ +"sqO-8H-n1y.title" = "Navegar por los plugins disponibles..."; + /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "STt-PQ-Szr"; */ "STt-PQ-Szr.title" = "Campo de Texto"; -/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "fug-79-n9g"; */ -"fug-79-n9g.title" = "Vista de tabla de campos"; +/* Class = "NSButtonCell"; title = "Download current plugin information"; ObjectID = "uHR-uL-Ddm"; */ +"uHR-uL-Ddm.title" = "Descargar la información del plugin actual"; /* Class = "NSBox"; title = "Box"; ObjectID = "vBs-Ga-aq0"; */ "vBs-Ga-aq0.title" = "Caja"; + +/* Class = "NSButtonCell"; title = "Force loading of incompatible Plugins"; ObjectID = "yak-fS-jtA"; */ +"yak-fS-jtA.title" = "Forzar la carga de los plugins incompatibles"; + +/* Class = "NSTextFieldCell"; title = "Label"; ObjectID = "yuK-qH-jxx"; */ +"yuK-qH-jxx.title" = "Etiqueta"; + diff --git a/MacPass/es.lproj/PluginRepositoryBrowserView.strings b/MacPass/es.lproj/PluginRepositoryBrowserView.strings new file mode 100644 index 000000000..254b18850 --- /dev/null +++ b/MacPass/es.lproj/PluginRepositoryBrowserView.strings @@ -0,0 +1,42 @@ +/* Class = "NSButtonCell"; title = "Action"; ObjectID = "6jQ-Uk-uqD"; */ +"6jQ-Uk-uqD.title" = "Acción"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "cFE-KE-Xjx"; */ +"cFE-KE-Xjx.title" = "Celda de texto"; + +/* Class = "NSTextFieldCell"; title = "Updated at"; ObjectID = "DhR-ED-6gV"; */ +"DhR-ED-6gV.title" = "Actualizado el"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "DRt-Gz-DUm"; */ +"DRt-Gz-DUm.title" = "Celda de tabla"; + +/* Class = "NSTableColumn"; headerCell.title = "Status"; ObjectID = "g1Q-BS-vCR"; */ +"g1Q-BS-vCR.headerCell.title" = "Estado"; + +/* Class = "NSTableColumn"; headerCell.title = "Latest Version"; ObjectID = "hFg-AD-SqD"; */ +"hFg-AD-SqD.headerCell.title" = "Última versión"; + +/* Class = "NSButtonCell"; title = "Done"; ObjectID = "j9a-fn-Pye"; */ +"j9a-fn-Pye.title" = "Hecho"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "nc9-mo-2e5"; */ +"nc9-mo-2e5.title" = "Celda de tabla"; + +/* Class = "NSTextFieldCell"; title = "Last updated:"; ObjectID = "ntD-sJ-NRw"; */ +"ntD-sJ-NRw.title" = "Última actualización:"; + +/* Class = "NSTableColumn"; headerCell.title = "Plugin"; ObjectID = "Nzo-rR-Hfx"; */ +"Nzo-rR-Hfx.headerCell.title" = "Plugin"; + +/* Class = "NSButtonCell"; title = "Refresh"; ObjectID = "NZw-nO-lZ3"; */ +"NZw-nO-lZ3.title" = "Refrescar"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "Pl1-4o-5uY"; */ +"Pl1-4o-5uY.title" = "Celda de texto"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "QPj-W1-su1"; */ +"QPj-W1-su1.title" = "Celda de texto"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "ZIf-CU-gh7"; */ +"ZIf-CU-gh7.title" = "Celda de tabla"; + diff --git a/MacPass/es.lproj/ReferenceBuilderView.strings b/MacPass/es.lproj/ReferenceBuilderView.strings index 673b20262..bd66a22c7 100644 --- a/MacPass/es.lproj/ReferenceBuilderView.strings +++ b/MacPass/es.lproj/ReferenceBuilderView.strings @@ -1,15 +1,8 @@ - -/* Class = "NSMenuItem"; title = "Get"; ObjectID = "142-bE-IMZ"; */ -"142-bE-IMZ.title" = "Obtener"; - /* Class = "NSTextFieldCell"; title = "Match"; ObjectID = "9ce-da-syF"; */ "9ce-da-syF.title" = "Coincidir"; -/* Class = "NSTextFieldCell"; title = "Key"; ObjectID = "K1t-OZ-ACe"; */ -"K1t-OZ-ACe.title" = "Llave"; - -/* Class = "NSButtonCell"; title = "Use"; ObjectID = "Kqx-qm-nMG"; */ -"Kqx-qm-nMG.title" = "Usar"; +/* Class = "NSMenuItem"; title = "Get"; ObjectID = "142-bE-IMZ"; */ +"142-bE-IMZ.title" = "Obtener"; /* Class = "NSTextFieldCell"; placeholderString = "Reference"; ObjectID = "dr9-x8-kKk"; */ "dr9-x8-kKk.placeholderString" = "Referencia"; @@ -20,8 +13,15 @@ /* Class = "NSTextFieldCell"; title = "Reference String"; ObjectID = "gik-Ha-hRd"; */ "gik-Ha-hRd.title" = "Valor Referencial"; +/* Class = "NSTextFieldCell"; title = "Key"; ObjectID = "K1t-OZ-ACe"; */ +"K1t-OZ-ACe.title" = "Llave"; + +/* Class = "NSButtonCell"; title = "Use"; ObjectID = "Kqx-qm-nMG"; */ +"Kqx-qm-nMG.title" = "Usar"; + /* Class = "NSTextFieldCell"; title = "Reference"; ObjectID = "r1V-VE-ngy"; */ "r1V-VE-ngy.title" = "Referencia"; /* Class = "NSMenuItem"; title = "Matching"; ObjectID = "yT1-XL-k6a"; */ "yT1-XL-k6a.title" = "Coincidente"; + diff --git a/MacPass/es.lproj/SavePanelAccessoryView.strings b/MacPass/es.lproj/SavePanelAccessoryView.strings new file mode 100644 index 000000000..6fd7d18a2 --- /dev/null +++ b/MacPass/es.lproj/SavePanelAccessoryView.strings @@ -0,0 +1,15 @@ +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "4"; */ +"4.title" = "Otras vistas"; + +/* Class = "NSMenuItem"; title = "KeePass 1 (KDB)"; ObjectID = "5"; */ +"5.title" = "KeePass 1 (KDB)"; + +/* Class = "NSMenuItem"; title = "KeePass 2 (KDBX)"; ObjectID = "6"; */ +"6.title" = "KeePass 2 (KDBX)"; + +/* Class = "NSTextFieldCell"; title = "Format:"; ObjectID = "12"; */ +"12.title" = "Formato:"; + +/* Class = "NSTextFieldCell"; title = "Not all Information inside your current database can be stored with this format."; ObjectID = "52"; */ +"52.title" = "No toda la información de tu base de datos puede ser guardada en este formato."; + diff --git a/MacPass/es.lproj/UpdateSettings.strings b/MacPass/es.lproj/UpdatePreferences.strings similarity index 95% rename from MacPass/es.lproj/UpdateSettings.strings rename to MacPass/es.lproj/UpdatePreferences.strings index f46571adc..dbdf846df 100644 --- a/MacPass/es.lproj/UpdateSettings.strings +++ b/MacPass/es.lproj/UpdatePreferences.strings @@ -1,4 +1,3 @@ - /* Class = "NSMenuItem"; title = "every Week"; ObjectID = "3FR-Va-iau"; */ "3FR-Va-iau.title" = "cada semana"; @@ -8,14 +7,15 @@ /* Class = "NSMenuItem"; title = "every Hour"; ObjectID = "DjF-1I-6Nq"; */ "DjF-1I-6Nq.title" = "cada hora"; +/* Class = "NSMenuItem"; title = "every Day"; ObjectID = "o9E-hk-H1T"; */ +"o9E-hk-H1T.title" = "cada día"; + /* Class = "NSButtonCell"; title = "Automatically Check for Updates"; ObjectID = "RFg-q1-AwJ"; */ "RFg-q1-AwJ.title" = "Buscar Actualizaciones Automáticamente"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "RKd-H8-eCF"; */ -"RKd-H8-eCF.title" = "Otras Vistas"; +"RKd-H8-eCF.title" = "Otras vistas"; /* Class = "NSMenuItem"; title = "every Month"; ObjectID = "Uo3-kv-1ro"; */ "Uo3-kv-1ro.title" = "cada mes"; -/* Class = "NSMenuItem"; title = "every Day"; ObjectID = "o9E-hk-H1T"; */ -"o9E-hk-H1T.title" = "cada día"; diff --git a/MacPass/es.lproj/WelcomeView.strings b/MacPass/es.lproj/WelcomeView.strings index 1138d836a..c8bf54681 100644 --- a/MacPass/es.lproj/WelcomeView.strings +++ b/MacPass/es.lproj/WelcomeView.strings @@ -1,11 +1,15 @@ -/* Class = "NSTextFieldCell"; title = "Welcome to MacPass"; ObjectID = "24"; */ -"24.title" = "Bienvenido a MacPass"; +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "Fbl-HT-XIu"; */ +"Fbl-HT-XIu.title" = "Celda de texto"; -/* Class = "NSButtonCell"; title = "Open Database…"; ObjectID = "44"; */ -"44.title" = "Abrir Base de Datos…"; +/* Class = "NSButtonCell"; title = "Open Database…"; ObjectID = "Jj3-zy-gaz"; */ +"Jj3-zy-gaz.title" = "Abrir base de datos..."; -/* Class = "NSButtonCell"; title = "Create new Database"; ObjectID = "48"; */ -"48.title" = "Crear Nueva Base de Datos"; +/* Class = "NSButtonCell"; title = "Create new Database"; ObjectID = "Vxx-Ql-eI5"; */ +"Vxx-Ql-eI5.title" = "Crear nueva base de datos"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "vzM-ly-CYn"; */ +"vzM-ly-CYn.title" = "Celda de tabla"; + +/* Class = "NSTextFieldCell"; title = "Welcome to MacPass"; ObjectID = "zdv-z8-khG"; */ +"zdv-z8-khG.title" = "Bienvenido a MacPass"; -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "70"; */ -"70.title" = "Cancelar"; diff --git a/MacPass/es.lproj/WorkflowSettings.strings b/MacPass/es.lproj/WorkflowPreferences.strings similarity index 62% rename from MacPass/es.lproj/WorkflowSettings.strings rename to MacPass/es.lproj/WorkflowPreferences.strings index 058f598a8..b92e3f271 100644 --- a/MacPass/es.lproj/WorkflowSettings.strings +++ b/MacPass/es.lproj/WorkflowPreferences.strings @@ -1,7 +1,12 @@ +/* Class = "NSButtonCell"; title = "Hide application after copying to clipboard "; ObjectID = "1Vr-nY-Ogv"; */ +"1Vr-nY-Ogv.title" = "Oculta la aplicación tras copiar al portapapeles"; /* Class = "NSBox"; title = "Entry Table"; ObjectID = "2"; */ "2.title" = "Tabla de Entradas"; +/* Class = "NSMenuItem"; title = "Default Browser"; ObjectID = "7YX-EA-9KA"; */ +"7YX-EA-9KA.title" = "Navegador Predeterminado"; + /* Class = "NSTextFieldCell"; title = "Double-click on URL:"; ObjectID = "10"; */ "10.title" = "Doble clic en URL:"; @@ -26,12 +31,24 @@ /* Class = "NSMenuItem"; title = "Opens Inspector"; ObjectID = "44"; */ "44.title" = "Abre Inspector"; -/* Class = "NSMenuItem"; title = "Default Browser"; ObjectID = "7YX-EA-9KA"; */ -"7YX-EA-9KA.title" = "Navegador Predeterminado"; +/* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "gej-kA-GzQ"; */ +"gej-kA-GzQ.title" = "Item 2"; -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "XgO-Tj-QjO"; */ -"XgO-Tj-QjO.title" = "Otras Vistas"; +/* Class = "NSBox"; title = "Clipboard"; ObjectID = "Kff-Xp-hAT"; */ +"Kff-Xp-hAT.title" = "Portapapeles"; + +/* Class = "NSButtonCell"; title = "Update password for new entries"; ObjectID = "RaM-t2-DVR"; */ +"RaM-t2-DVR.title" = "Actualiza la contraseña para las entradas nuevas"; /* Class = "NSTextFieldCell"; title = "Open URLs in:"; ObjectID = "soD-wI-YOH"; */ "soD-wI-YOH.title" = "Abre URLs en:"; +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "XgO-Tj-QjO"; */ +"XgO-Tj-QjO.title" = "Otras Vistas"; + +/* Class = "NSBox"; title = "Templates"; ObjectID = "Xvt-tP-TbR"; */ +"Xvt-tP-TbR.title" = "Plantillas"; + +/* Class = "NSMenuItem"; title = "Item 3"; ObjectID = "zC2-cM-KDv"; */ +"zC2-cM-KDv.title" = "Item 3"; + diff --git a/MacPass/fr.lproj/AutotypeBuilderView.strings b/MacPass/fr.lproj/AutotypeBuilderView.strings new file mode 100644 index 000000000..ce068050c --- /dev/null +++ b/MacPass/fr.lproj/AutotypeBuilderView.strings @@ -0,0 +1,3 @@ +/* Class = "NSTextFieldCell"; title = "Available Commands and Placeholders"; ObjectID = "lug-97-H9D"; */ +"lug-97-H9D.title" = "Commandes et emplacements disponibles"; + diff --git a/MacPass/fr.lproj/AutotypeCandidateSelectionView.strings b/MacPass/fr.lproj/AutotypeCandidateSelectionView.strings new file mode 100644 index 000000000..23c787d28 --- /dev/null +++ b/MacPass/fr.lproj/AutotypeCandidateSelectionView.strings @@ -0,0 +1,15 @@ +/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "60p-7v-Nje"; */ +"60p-7v-Nje.title" = "Annuler"; + +/* Class = "NSTextFieldCell"; title = "There are multiple matches for the current window. Please select which match should be used."; ObjectID = "gcf-gb-ZsF"; */ +"gcf-gb-ZsF.title" = "Il existe plusieurs possibilités pour la fenêtre courante. Sélectionner celui qui doit être utilisé"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "PKW-gr-yqN"; */ +"PKW-gr-yqN.title" = "Libellé de la cellule"; + +/* Class = "NSTextFieldCell"; title = "Content"; ObjectID = "TN3-3a-LaA"; */ +"TN3-3a-LaA.title" = "Contenu"; + +/* Class = "NSButtonCell"; title = "Perform Autotype"; ObjectID = "w7H-hx-CUF"; */ +"w7H-hx-CUF.title" = "Lancer la saisie automatique"; + diff --git a/MacPass/fr.lproj/ContextBar.strings b/MacPass/fr.lproj/ContextBar.strings index 035c43095..772e2463e 100644 --- a/MacPass/fr.lproj/ContextBar.strings +++ b/MacPass/fr.lproj/ContextBar.strings @@ -1,15 +1,14 @@ - /* Class = "NSTextFieldCell"; title = "Search:"; ObjectID = "7"; */ -"7.title" = "Search:"; - -/* Class = "NSButtonCell"; title = "Title"; ObjectID = "53D-ne-nv6"; */ -"53D-ne-nv6.title" = "Title"; +"7.title" = "Rechercher :"; /* Class = "NSButtonCell"; title = "Empty Trash"; ObjectID = "8Ok-oe-6AB"; */ -"8Ok-oe-6AB.title" = "Empty Trash"; +"8Ok-oe-6AB.title" = "Vider la corbeille"; /* Class = "NSTextFieldCell"; title = "Trash"; ObjectID = "8P1-Rp-sF4"; */ -"8P1-Rp-sF4.title" = "Trash"; +"8P1-Rp-sF4.title" = "Corbeille"; + +/* Class = "NSButtonCell"; title = "Title"; ObjectID = "53D-ne-nv6"; */ +"53D-ne-nv6.title" = "Titre"; /* Class = "NSButtonCell"; title = "URL"; ObjectID = "92o-gN-Psj"; */ "92o-gN-Psj.title" = "URL"; @@ -17,38 +16,39 @@ /* Class = "NSMenuItem"; title = "Item 3"; ObjectID = "CFk-71-NYQ"; */ "CFk-71-NYQ.title" = "Item 3"; -/* Class = "NSTextFieldCell"; title = "History"; ObjectID = "ER3-Ic-v0N"; */ -"ER3-Ic-v0N.title" = "History"; - -/* Class = "NSMenuItem"; title = "Item 1"; ObjectID = "LRm-iZ-XrA"; */ -"LRm-iZ-XrA.title" = "Item 1"; - -/* Class = "NSButtonCell"; title = "Restore Entry"; ObjectID = "UTg-y9-4DN"; */ -"UTg-y9-4DN.title" = "Restore Entry"; - -/* Class = "NSTabViewItem"; label = "Filter"; ObjectID = "Ud6-Nz-6PS"; */ -"Ud6-Nz-6PS.label" = "Filter"; - /* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "cpr-p6-YAY"; */ "cpr-p6-YAY.title" = "Item 2"; +/* Class = "NSTextFieldCell"; title = "History"; ObjectID = "ER3-Ic-v0N"; */ +"ER3-Ic-v0N.title" = "Historique"; + /* Class = "NSButtonCell"; title = "Exit History"; ObjectID = "ewQ-8F-e1E"; */ -"ewQ-8F-e1E.title" = "Exit History"; +"ewQ-8F-e1E.title" = "Quitter l'historique"; /* Class = "NSButtonCell"; title = "Notes"; ObjectID = "iDN-2E-hwt"; */ "iDN-2E-hwt.title" = "Notes"; /* Class = "NSButtonCell"; title = "Username"; ObjectID = "jfQ-Jh-2gl"; */ -"jfQ-Jh-2gl.title" = "Username"; +"jfQ-Jh-2gl.title" = "Nom d'utilisateur"; + +/* Class = "NSMenuItem"; title = "Item 1"; ObjectID = "LRm-iZ-XrA"; */ +"LRm-iZ-XrA.title" = "Item 1"; /* Class = "NSTabViewItem"; label = "Trash"; ObjectID = "na6-h9-r9q"; */ -"na6-h9-r9q.label" = "Trash"; +"na6-h9-r9q.label" = "Corbeille"; /* Class = "NSButtonCell"; title = "Password"; ObjectID = "rvQ-4V-SsS"; */ -"rvQ-4V-SsS.title" = "Password"; +"rvQ-4V-SsS.title" = "Mot de passe"; + +/* Class = "NSTabViewItem"; label = "Filter"; ObjectID = "Ud6-Nz-6PS"; */ +"Ud6-Nz-6PS.label" = "Filtre"; + +/* Class = "NSButtonCell"; title = "Restore Entry"; ObjectID = "UTg-y9-4DN"; */ +"UTg-y9-4DN.title" = "Restaurer l'entrée"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "wC4-fF-dLW"; */ -"wC4-fF-dLW.title" = "OtherViews"; +"wC4-fF-dLW.title" = "Autres vues"; /* Class = "NSTabViewItem"; label = "History"; ObjectID = "z4I-cp-nhf"; */ -"z4I-cp-nhf.label" = "History"; +"z4I-cp-nhf.label" = "Historique"; + diff --git a/MacPass/fr.lproj/Credits.rtf b/MacPass/fr.lproj/Credits.rtf deleted file mode 100644 index 4108aaa49..000000000 --- a/MacPass/fr.lproj/Credits.rtf +++ /dev/null @@ -1,103 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 -{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red52\green110\blue183;\red38\green38\blue38;} -{\*\expandedcolortbl;;\csgenericrgb\c20392\c43137\c71765;\csgenericrgb\c14902\c14902\c14902;} -\paperw11900\paperh16840\vieww25780\viewh13880\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b\fs24 \cf0 Project Website:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt -\f1\b0 \cf0 MacPass}} -\f1\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \ -License:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf0 MacPass KeePass compatible client for OS X\ -Copyright (c) 2012-2019 Michael Starke, HicknHack Software GmbH\ - \ -This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by\ -the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\ -\ -This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\ -\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\ -\ -You should have received a copy of the GNU General Public License along with this program. If not, see {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt http://www.gnu.org/licenses/}}.\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 \kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \kerning1\expnd0\expndtw0 Credits:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf2 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 Dutch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/clone1612"}}{\fldrslt Jannick Hemelhof}}\ -\ -French translation: {\field{\*\fldinst{HYPERLINK "mailto:gil@panix.com"}}{\fldrslt Gil Andr\'e9}}\ -\ -Italian translation: {\field{\*\fldinst{HYPERLINK "mailto:info@francescoservida.ch"}}{\fldrslt Francesco Servida}}\ -\ -Polish translation: {\field{\*\fldinst{HYPERLINK "http://www.webii.pl/"}}{\fldrslt Micha\uc0\u322 Jaglewicz}}\ -\ -Russian translation: {\field{\*\fldinst{HYPERLINK "mailto:alex@mrdoggy.info"}}{\fldrslt Aliaksandr Piatkevich}}\ -\ -Simplified Chinese translation: {\field{\*\fldinst{HYPERLINK "mailto:patchao2000@gmail.com"}}{\fldrslt Zhao Peng}}\ -\ -Spanisch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/m0yP"}}{\fldrslt \expnd0\expndtw0\kerning0 -Moises Perez}}\ -\ -MacPass\kerning1\expnd0\expndtw3 - \kerning1\expnd0\expndtw0 Icon: {\field{\*\fldinst{HYPERLINK "http://iiro.jappinen.me"}}{\fldrslt Iiro J\'e4ppinen}}\ -\ -Database Icons: {\field{\*\fldinst{HYPERLINK "https://github.com/JoannaOlsen"}}{\fldrslt Joanna Olsen}}\cf2 \ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt \cf2 KissXML}}\cf3 \ -Copyright \'a9 2012 Robbie Hanson. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf2 MiniKeePass}}\ -Copyright \'a9 2011 Jason Rush and John Flanagan. All rights reserved.\ - \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt \cf2 KeePass Database Library}}\ -Copyright \'a9 2010 Qiang Yu. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/Perspx/PXSourceList"}}{\fldrslt \cf3 PXSourceList}}\ -Copyright \'a9 2011, Alex Rozanski. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org"}}{\fldrslt \cf3 Sparkl\kerning1\expnd0\expndtw3 -e}}\kerning1\expnd0\expndtw3 -\ -Copyright \'a9 2006 Andy Matuschak. \kerning1\expnd0\expndtw0 All rights reserved.\kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf3 \kerning1\expnd0\expndtw0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/questions/11386876/how-to-encode-and-decode-files-as-base64-in-cocoa-objective-c"}}{\fldrslt \cf3 NSData+Base64}}\ -Copyright \'a92013, {\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/users/200321/denis2342"}}{\fldrslt denis2342}}\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://www.cocoadev.com/index.pl?NSDataCategory"}}{\fldrslt \cf3 NSData+Gzip}}\ -Extracted from code on the CocoaDev Wiki\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/karelia/SecurityInterface"}}{\fldrslt \cf3 KSPasswordField}}\ -Code reused in HNHUISecureTextField\ -Copyright \'a92012 Mike Abdullah, Karelia Software. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/AlanQuatermain/aqtoolkit"}}{\fldrslt \cf3 NSData+CommonCrypto}}\ -Copyright \'a92008-2009 Jim Dovey, All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mattt/TransformerKit"}}{\fldrslt \cf3 TransformerKit}}\ -Copyright \'a92012 Mattt Thompson. All rights reseverd} \ No newline at end of file diff --git a/MacPass/fr.lproj/DatabaseSettingsWindow.strings b/MacPass/fr.lproj/DatabaseSettingsWindow.strings index 27a50b258..6212817f0 100644 --- a/MacPass/fr.lproj/DatabaseSettingsWindow.strings +++ b/MacPass/fr.lproj/DatabaseSettingsWindow.strings @@ -1,6 +1,14 @@ - /* Class = "NSWindow"; title = "Window"; ObjectID = "1"; */ -"1.title" = "Window"; +"1.title" = "Fenêtre"; + +/* Class = "NSTextFieldCell"; title = "Threads"; ObjectID = "2QI-ne-N5d"; */ +"2QI-ne-N5d.title" = "Fils"; + +/* Class = "NSTextFieldCell"; title = "Iterations"; ObjectID = "2ZA-Gc-JdZ"; */ +"2ZA-Gc-JdZ.title" = "Itérations"; + +/* Class = "NSTextFieldCell"; title = "Enforce key change"; ObjectID = "5QH-N1-FHK"; */ +"5QH-N1-FHK.title" = "Forcer le changement de clé"; /* Class = "NSTextFieldCell"; title = "Database name:"; ObjectID = "190"; */ "190.title" = "Nom de la base de données :"; @@ -26,23 +34,20 @@ /* Class = "NSButtonCell"; title = "Enable Recycle Bin"; ObjectID = "536"; */ "536.title" = "Activer la corbeille"; -/* Class = "NSButtonCell"; title = "Empty Recycle Bin on Quit"; ObjectID = "540"; */ -"540.title" = "Vider la corbeille à la fermeture"; - -/* Class = "NSTextFieldCell"; title = "Maximum Items:"; ObjectID = "558"; */ -"558.title" = "Nombre maximum d'items :"; +/* Class = "NSTextFieldCell"; title = "Maximum items in history:"; ObjectID = "558"; */ +"558.title" = "Nombre maximum d'éléments :"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "680"; */ -"680.title" = "OtherViews"; +"680.title" = "Autres vues"; /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "957"; */ "957.title" = "Annuler"; -/* Class = "NSTextFieldCell"; title = "Maximum Size:"; ObjectID = "1269"; */ +/* Class = "NSTextFieldCell"; title = "Maximum history size:"; ObjectID = "1269"; */ "1269.title" = "Taille maximum :"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "1396"; */ -"1396.title" = "OtherViews"; +"1396.title" = "Autres vues"; /* Class = "NSMenuItem"; title = "None"; ObjectID = "1397"; */ "1397.title" = "Aucune"; @@ -62,26 +67,42 @@ /* Class = "NSTextFieldCell"; title = "Default Username:"; ObjectID = "1591"; */ "1591.title" = "Nom d'utilisateur par défaut :"; -/* Class = "NSTextFieldCell"; title = "Key encryption rounds:"; ObjectID = "1644"; */ -"1644.title" = "Tours de chiffrement :"; - /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "1740"; */ -"1740.title" = "OtherViews"; +"1740.title" = "Autres vues"; -/* Class = "NSButtonCell"; title = "Benchmark"; ObjectID = "1775"; */ -"1775.title" = "Benchmark"; +/* Class = "NSTextFieldCell"; title = "File format:"; ObjectID = "bTk-YZ-x0G"; */ +"bTk-YZ-x0G.title" = "Format de fichier :"; -/* Class = "NSButtonCell"; title = "Recommend key change every:"; ObjectID = "CtU-Eq-dgy"; */ +/* Class = "NSButtonCell"; title = "Recommend key change"; ObjectID = "CtU-Eq-dgy"; */ "CtU-Eq-dgy.title" = "Recommander le changement de la clé tous les :"; -/* Class = "NSTextFieldCell"; placeholderString = "days"; ObjectID = "M9G-Yy-1s4"; */ -"M9G-Yy-1s4.placeholderString" = "jours"; +/* Class = "NSTextFieldCell"; title = "Algorithm"; ObjectID = "GVd-KH-pHc"; */ +"GVd-KH-pHc.title" = "Algorithme"; + +/* Class = "NSTextFieldCell"; title = "Encryption:"; ObjectID = "gxY-UL-bEG"; */ +"gxY-UL-bEG.title" = "Chiffrement :"; -/* Class = "NSTextFieldCell"; placeholderString = "days"; ObjectID = "Nca-aw-6rR"; */ -"Nca-aw-6rR.placeholderString" = "jours"; +/* Class = "NSTextFieldCell"; title = "Memory"; ObjectID = "iRY-If-Kwn"; */ +"iRY-If-Kwn.title" = "Mémoire"; -/* Class = "NSTextFieldCell"; title = "Disabling password protection will remove unallowed characters in passwords. This will cause data loss after saving."; ObjectID = "iZR-sj-MHg"; */ -"iZR-sj-MHg.title" = "Désactiver la protection du mot de passe va supprimer les caractères non autorisés dans les mots de passe. Ceci va causer une perte de données après la sauvegarde."; +/* Class = "NSTextFieldCell"; title = "Recyclebin Group:"; ObjectID = "kI5-Kp-byE"; */ +"kI5-Kp-byE.title" = "Groupe corbeille"; -/* Class = "NSButtonCell"; title = "Force key change every:"; ObjectID = "z6u-YT-7LE"; */ +/* Class = "NSButtonCell"; title = "Force key change once after unlocking"; ObjectID = "pA1-aL-KjT"; */ +"pA1-aL-KjT.title" = "Forcer le changement de clé une fois déverrouillé"; + +/* Class = "NSBox"; title = "Key derivation"; ObjectID = "pbl-Mb-r8V"; */ +"pbl-Mb-r8V.title" = "Dérivation de clé"; + +/* Class = "NSButtonCell"; title = "Generate Parameters"; ObjectID = "PoI-Er-Y8P"; */ +"PoI-Er-Y8P.title" = "Générer les paramètres"; + +/* Class = "NSTextFieldCell"; title = "VersionInfo"; ObjectID = "Ush-4r-A1A"; */ +"Ush-4r-A1A.title" = "Information de version"; + +/* Class = "NSTextFieldCell"; title = "Recommend key change"; ObjectID = "Xib-Fn-sqx"; */ +"Xib-Fn-sqx.title" = "Recommander le changement de clé"; + +/* Class = "NSButtonCell"; title = "Force key change"; ObjectID = "z6u-YT-7LE"; */ "z6u-YT-7LE.title" = "Forcer le changement de la clé tous les :"; + diff --git a/MacPass/fr.lproj/DatePickingView.strings b/MacPass/fr.lproj/DatePickingView.strings index f49ac1a78..8eeeb6043 100644 --- a/MacPass/fr.lproj/DatePickingView.strings +++ b/MacPass/fr.lproj/DatePickingView.strings @@ -1,9 +1,9 @@ - /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "17"; */ -"17.title" = "OtherViews"; +"17.title" = "Autres vues"; /* Class = "NSButtonCell"; title = "Use Date"; ObjectID = "26"; */ "26.title" = "Utiliser cette date"; /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "30"; */ "30.title" = "Annuler"; + diff --git a/MacPass/fr.lproj/DuplicateEntryOptionsWindow.strings b/MacPass/fr.lproj/DuplicateEntryOptionsWindow.strings index 59e0aa059..3e23db94b 100644 --- a/MacPass/fr.lproj/DuplicateEntryOptionsWindow.strings +++ b/MacPass/fr.lproj/DuplicateEntryOptionsWindow.strings @@ -1,18 +1,18 @@ +/* Class = "NSButtonCell"; title = "Reference password instead of copying it"; ObjectID = "daA-QV-CDq"; */ +"daA-QV-CDq.title" = "Référencer le mot de passe au lieu de le copier"; + +/* Class = "NSButtonCell"; title = "Duplicate history"; ObjectID = "dXl-KS-4rE"; */ +"dXl-KS-4rE.title" = "Dupliquer l'historique"; /* Class = "NSButtonCell"; title = "Reference username instead of copying it"; ObjectID = "O9X-XH-n8o"; */ -"O9X-XH-n8o.title" = "Reference username instead of copying it"; +"O9X-XH-n8o.title" = "Référencer le nom d'utilisateur au lieu de le copier"; -/* Class = "NSWindow"; title = "Window"; ObjectID = "QvC-M9-y7g"; */ -"QvC-M9-y7g.title" = "Window"; +/* Class = "NSWindow"; title = "Duplicate Entry Options"; ObjectID = "QvC-M9-y7g"; */ +"QvC-M9-y7g.title" = "Options de Duplication Entrées"; /* Class = "NSButtonCell"; title = "Duplicate Entry"; ObjectID = "WqI-qH-ARf"; */ -"WqI-qH-ARf.title" = "Duplicate Entry"; - -/* Class = "NSButtonCell"; title = "Duplicate history"; ObjectID = "dXl-KS-4rE"; */ -"dXl-KS-4rE.title" = "Duplicate history"; - -/* Class = "NSButtonCell"; title = "Reference password instead of copying it"; ObjectID = "daA-QV-CDq"; */ -"daA-QV-CDq.title" = "Reference password instead of copying it"; +"WqI-qH-ARf.title" = "Dupliquer l'entrée"; /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "x6e-bE-Y6R"; */ -"x6e-bE-Y6R.title" = "Cancel"; +"x6e-bE-Y6R.title" = "Annuler"; + diff --git a/MacPass/fr.lproj/EntryInspectorView.strings b/MacPass/fr.lproj/EntryInspectorView.strings index f0a3d44dc..ee10cecad 100644 --- a/MacPass/fr.lproj/EntryInspectorView.strings +++ b/MacPass/fr.lproj/EntryInspectorView.strings @@ -1,3 +1,8 @@ +/* Class = "NSMenuItem"; title = "Save"; ObjectID = "0ok-MC-QMP"; */ +"0ok-MC-QMP.title" = "Sauvegarder"; + +/* Class = "NSButtonCell"; title = "Enable Autotype"; ObjectID = "9Nx-mE-DK3"; */ +"9Nx-mE-DK3.title" = "Activer la saisie automatique"; /* Class = "NSButtonCell"; title = "Generate"; ObjectID = "64"; */ "64.title" = "Générer"; @@ -20,9 +25,6 @@ /* Class = "NSTextFieldCell"; title = "Tags"; ObjectID = "79"; */ "79.title" = "Tags"; -/* Class = "NSTabViewItem"; label = "Fields"; ObjectID = "108"; */ -"108.label" = "Champs"; - /* Class = "NSTabViewItem"; label = "Attachments"; ObjectID = "109"; */ "109.label" = "Fichiers joints"; @@ -33,19 +35,16 @@ "135.title" = "Fichiers joints"; /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "142"; */ -"142.title" = "Text Cell"; +"142.title" = "Libellé de la cellule"; /* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "151"; */ -"151.title" = "Table View Cell"; +"151.title" = "Vue en tableau"; /* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "171"; */ -"171.title" = "Table View Cell"; - -/* Class = "NSTextFieldCell"; title = "Custom Fields"; ObjectID = "190"; */ -"190.title" = "Champs personnalisés"; +"171.title" = "Vue en tableau"; /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "197"; */ -"197.title" = "Text Cell"; +"197.title" = "Libellé de la cellule"; /* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "211"; */ "211.placeholderString" = "Titre"; @@ -53,50 +52,29 @@ /* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "214"; */ "214.placeholderString" = "Valeur"; -/* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "225"; */ -"225.placeholderString" = "Valeur"; - -/* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "228"; */ -"228.placeholderString" = "Titre"; - /* Class = "NSSegmentedCell"; 238.ibShadowedLabels[0] = "General"; ObjectID = "238"; */ "238.ibShadowedLabels[0]" = "Général"; /* Class = "NSSegmentedCell"; 238.ibShadowedLabels[1] = "Files"; ObjectID = "238"; */ "238.ibShadowedLabels[1]" = "Fichiers"; -/* Class = "NSSegmentedCell"; 238.ibShadowedLabels[3] = "Autotype"; ObjectID = "238"; */ +/* Class = "NSSegmentedCell"; 238.ibShadowedLabels[2] = "Autotype"; ObjectID = "238"; */ "238.ibShadowedLabels[2]" = "Saisie automatique"; -/* Class = "NSMenuItem"; title = "Save"; ObjectID = "0ok-MC-QMP"; */ -"0ok-MC-QMP.title" = "Sauvegarder"; - -/* Class = "NSButtonCell"; title = "Enable Autotype"; ObjectID = "9Nx-mE-DK3"; */ -"9Nx-mE-DK3.title" = "Activer la saisie automatique"; - -/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "NtM-y3-l4D"; */ -"NtM-y3-l4D.title" = "Coup d'œil"; - -/* Class = "NSTextFieldCell"; placeholderString = "Custom Entry Sequence"; ObjectID = "R2X-Ex-c6q"; */ -"R2X-Ex-c6q.placeholderString" = "Séquence personnalisée"; - -/* Class = "NSTextFieldCell"; title = "Window Sequence"; ObjectID = "RQB-bR-MC0"; */ -"RQB-bR-MC0.title" = "Séquence personnalisée pour cette fenêtre"; - -/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "bQ5-0E-h3O"; */ -"bQ5-0E-h3O.title" = "Séquence de saisie automatique"; +/* Class = "NSMenuItem"; title = "Delete"; ObjectID = "bke-G2-oEf"; */ +"bke-G2-oEf.title" = "Supprimer"; /* Class = "NSTextFieldCell"; title = "Window Title"; ObjectID = "bkO-Bk-AuX"; */ "bkO-Bk-AuX.title" = "Titre de la fenêtre"; -/* Class = "NSMenuItem"; title = "Delete"; ObjectID = "bke-G2-oEf"; */ -"bke-G2-oEf.title" = "Supprimer"; +/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "bQ5-0E-h3O"; */ +"bQ5-0E-h3O.title" = "Séquence de saisie automatique"; /* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "dyA-lo-PGa"; */ -"dyA-lo-PGa.title" = "Table View Cell"; +"dyA-lo-PGa.title" = "Vue en tableau"; /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "ep5-bQ-cfZ"; */ -"ep5-bQ-cfZ.title" = "Text Cell"; +"ep5-bQ-cfZ.title" = "Libellé de la cellule"; /* Class = "NSTextFieldCell"; placeholderString = "Custom Window Sequence"; ObjectID = "fW9-9p-wwR"; */ "fW9-9p-wwR.placeholderString" = "Séquence personnalisée pour cette fenêtre"; @@ -107,8 +85,21 @@ /* Class = "NSTextFieldCell"; title = "Window Associations"; ObjectID = "ned-1Q-FXA"; */ "ned-1Q-FXA.title" = "Séquences personnalisées"; -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "sNS-o1-pD7"; */ -"sNS-o1-pD7.title" = "OtherViews"; +/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "NtM-y3-l4D"; */ +"NtM-y3-l4D.title" = "Coup d'œil"; /* Class = "NSButtonCell"; title = "Obfuscate Autotype"; ObjectID = "oNq-kB-3eb"; */ "oNq-kB-3eb.title" = "Dissimuler la saisie automatique (simule une saisie humaine)"; + +/* Class = "NSTextFieldCell"; placeholderString = "Custom Entry Sequence"; ObjectID = "R2X-Ex-c6q"; */ +"R2X-Ex-c6q.placeholderString" = "Séquence personnalisée"; + +/* Class = "NSTextFieldCell"; title = "Window Sequence"; ObjectID = "RQB-bR-MC0"; */ +"RQB-bR-MC0.title" = "Séquence personnalisée pour cette fenêtre"; + +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "sNS-o1-pD7"; */ +"sNS-o1-pD7.title" = "Autres vues"; + +/* Class = "NSButtonCell"; title = "Show Plugin Data"; ObjectID = "X9y-K7-lix"; */ +"X9y-K7-lix.title" = "Afficher les données du plugin"; + diff --git a/MacPass/fr.lproj/GeneralSettings.strings b/MacPass/fr.lproj/GeneralPreferences.strings similarity index 71% rename from MacPass/fr.lproj/GeneralSettings.strings rename to MacPass/fr.lproj/GeneralPreferences.strings index d6d97a054..64cc78fbc 100644 --- a/MacPass/fr.lproj/GeneralSettings.strings +++ b/MacPass/fr.lproj/GeneralPreferences.strings @@ -1,6 +1,11 @@ +/* Class = "NSMenuItem"; title = "after 5 Minutes"; ObjectID = "5gh-b6-cmG"; */ +"5gh-b6-cmG.title" = "après 5 minutes"; + +/* Class = "NSButtonCell"; title = "Clear all stored locations"; ObjectID = "8Ri-2s-c39"; */ +"8Ri-2s-c39.title" = "Effacer les emplacements mémorisés"; /* Class = "NSMenu"; title = "ClipboardClearInterval"; ObjectID = "421"; */ -"421.title" = "EffacementPressePapiers"; +"421.title" = "Effacement de presse-papiers"; /* Class = "NSMenuItem"; title = "after 10 Seconds"; ObjectID = "422"; */ "422.title" = "après 10 secondes"; @@ -26,12 +31,6 @@ /* Class = "NSButtonCell"; title = "Reopen last Database after Launch"; ObjectID = "531"; */ "531.title" = "Ouvrir la dernière base de données au lancement"; -/* Class = "NSBox"; title = "General"; ObjectID = "928"; */ -"928.title" = "Général"; - -/* Class = "NSButtonCell"; title = "Double-click entry URL to Launch"; ObjectID = "937"; */ -"937.title" = "Cliquer deux fois sur une URL pour ouvrir"; - /* Class = "NSMenu"; title = "LockTimes"; ObjectID = "586"; */ "586.title" = "Verrouillage"; @@ -53,14 +52,24 @@ /* Class = "NSTextFieldCell"; title = "Lock while idle"; ObjectID = "806"; */ "806.title" = "Verrouillage si inactif"; -/* Class = "NSButtonCell"; title = "Create new Database if activated"; ObjectID = "880"; */ -"880.title" = "Créer une nouvelle base de données si activé"; +/* Class = "NSBox"; title = "File Handling"; ObjectID = "888"; */ +"888.title" = "Gestion des fichiers"; /* Class = "NSTextFieldCell"; title = "Enabling this compromises security. If enabled, your preferences will contain mappings from database to keyfile. Key locations for databases without a password will not be saved."; ObjectID = "ACh-7H-42N"; */ "ACh-7H-42N.title" = "Cocher cette case compromet la sécurité. Si activé, les associations base de données / fichiers clé seront enregistrées. La localisation des clés pour les bases de données sans mot de passe n'est pas sauvegardée."; +/* Class = "NSButtonCell"; title = "Lock after log out"; ObjectID = "Dzn-9R-JjE"; */ +"Dzn-9R-JjE.title" = "Verrouiller après déconnexion"; + +/* Class = "NSTextFieldCell"; title = "If file changes:"; ObjectID = "QrK-hM-Xt1"; */ +"QrK-hM-Xt1.title" = "Si modifications du fichier :"; + /* Class = "NSButtonCell"; title = "Remember Keyfile for Databases"; ObjectID = "r6q-He-nYU"; */ "r6q-He-nYU.title" = "Enregistrer la localisation des fichiers clé"; -/* Class = "NSButtonCell"; title = "Clear all stored locations"; ObjectID = "8Ri-2s-c39"; */ -"8Ri-2s-c39.title" = "Effacer les localisations stockées"; +/* Class = "NSButtonCell"; title = "Enable Autosave"; ObjectID = "wG7-bi-2fi"; */ +"wG7-bi-2fi.title" = "Activer l'enregistrement automatique"; + +/* Class = "NSTextFieldCell"; title = "Close and open all documents for changes to take effect"; ObjectID = "ya5-ps-c4W"; */ +"ya5-ps-c4W.title" = "Fermer et ré-ouvrir tous les documents pour que les modifications prennent effet"; + diff --git a/MacPass/fr.lproj/GroupInspectorView.strings b/MacPass/fr.lproj/GroupInspectorView.strings index c67661a78..54481866f 100644 --- a/MacPass/fr.lproj/GroupInspectorView.strings +++ b/MacPass/fr.lproj/GroupInspectorView.strings @@ -1,3 +1,5 @@ +/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "6FG-UZ-Adh"; */ +"6FG-UZ-Adh.title" = "Séquence de saisie automatique"; /* Class = "NSTextFieldCell"; title = "Name"; ObjectID = "25"; */ "25.title" = "Nom"; @@ -6,13 +8,17 @@ "32.title" = "Expiration"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "231"; */ -"231.title" = "OtherViews"; +"231.title" = "Autres vues"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "243"; */ -"243.title" = "OtherViews"; +"243.title" = "Autres vues"; /* Class = "NSTextFieldCell"; title = "Search"; ObjectID = "265"; */ "265.title" = "Rechercher"; /* Class = "NSTextFieldCell"; title = "Autotype"; ObjectID = "277"; */ "277.title" = "Saisie automatique"; + +/* Class = "NSButtonCell"; title = "Show Plugin Data"; ObjectID = "qGr-oT-WjP"; */ +"qGr-oT-WjP.title" = "Afficher les données du plugin"; + diff --git a/MacPass/fr.lproj/IconSelection.strings b/MacPass/fr.lproj/IconSelection.strings index b209734ab..9186178aa 100644 --- a/MacPass/fr.lproj/IconSelection.strings +++ b/MacPass/fr.lproj/IconSelection.strings @@ -1,6 +1,9 @@ +/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "1kM-cI-P1o"; */ +"1kM-cI-P1o.title" = "Annuler"; /* Class = "NSButtonCell"; title = "Use Default Icon"; ObjectID = "102"; */ "102.title" = "Utiliser l'icône par défaut"; -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "1kM-cI-P1o"; */ -"1kM-cI-P1o.title" = "Annuler"; +/* Class = "NSButtonCell"; title = "Download Icon"; ObjectID = "iaf-XW-XUo"; */ +"iaf-XW-XUo.title" = "Télécharger l'icône"; + diff --git a/MacPass/fr.lproj/InfoPlist.strings b/MacPass/fr.lproj/InfoPlist.strings index 477b28ff8..c0af3d847 100644 --- a/MacPass/fr.lproj/InfoPlist.strings +++ b/MacPass/fr.lproj/InfoPlist.strings @@ -1,2 +1,9 @@ -/* Localized versions of Info.plist keys */ +/* (No Comment) */ +"KDB Database" = "Base de données KDB"; + +/* (No Comment) */ +"KDBX Database" = "Base de données KDBX"; + +/* (No Comment) */ +"MacPass Plugin" = "Plugin MacPass"; diff --git a/MacPass/fr.lproj/InspectorView.strings b/MacPass/fr.lproj/InspectorView.strings index 01ba097f6..c05de9a8a 100644 --- a/MacPass/fr.lproj/InspectorView.strings +++ b/MacPass/fr.lproj/InspectorView.strings @@ -1,75 +1,24 @@ +/* Class = "NSTabViewItem"; label = "Group"; ObjectID = "2896"; */ +"2896.label" = "Groupe"; -/* Class = "NSTextFieldCell"; title = "Name"; ObjectID = "101"; */ -"101.title" = "Nom"; +/* Class = "NSTabViewItem"; label = "Entry"; ObjectID = "2897"; */ +"2897.label" = "Entrée"; -/* Class = "NSTextFieldCell"; title = "Name"; ObjectID = "1266"; */ -"1266.title" = "Nom"; - -/* Class = "NSTextFieldCell"; title = "Username"; ObjectID = "1267"; */ -"1267.title" = "Utilisateur"; - -/* Class = "NSTextFieldCell"; title = "URL"; ObjectID = "1268"; */ -"1268.title" = "URL"; - -/* Class = "NSTextFieldCell"; title = "Password"; ObjectID = "1269"; */ -"1269.title" = "Mot de passe"; - -/* Class = "NSButtonCell"; title = "Generate"; ObjectID = "1274"; */ -"1274.title" = "Créer"; - -/* Class = "NSTabViewItem"; label = "General"; ObjectID = "1394"; */ -"1394.label" = "Général"; - -/* Class = "NSTabViewItem"; label = "Notes"; ObjectID = "1395"; */ -"1395.label" = "Notes"; - -/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "1481"; */ -"1481.title" = "Texte"; - -/* Class = "NSTextFieldCell"; title = "Attachments"; ObjectID = "1513"; */ -"1513.title" = "Fichiers joints"; - -/* Class = "NSTextFieldCell"; title = "Notes"; ObjectID = "1529"; */ -"1529.title" = "Notes"; - -/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "1568"; */ -"1568.title" = "Vue en table"; - -/* Class = "NSButtonCell"; title = "Add File"; ObjectID = "1581"; */ -"1581.title" = "Ajouter fichier"; - -/* Class = "NSButtonCell"; title = "Save File"; ObjectID = "1586"; */ -"1586.title" = "Sauver fichier"; - -/* Class = "NSTextFieldCell"; title = "Quality"; ObjectID = "1605"; */ -"1605.title" = "Qualité"; - -/* Class = "NSTextFieldCell"; title = "Created"; ObjectID = "1885"; */ -"1885.title" = "Créé"; - -/* Class = "NSTextFieldCell"; title = "Modified"; ObjectID = "1930"; */ -"1930.title" = "Modifié"; - -/* Class = "NSTabViewItem"; label = "Attachments"; ObjectID = "1945"; */ -"1945.label" = "Fichiers joints"; - -/* Class = "NSTabViewItem"; label = "Fields"; ObjectID = "1947"; */ -"1947.label" = "Champs"; +/* Class = "NSTabViewItem"; label = "NoSelection"; ObjectID = "2974"; */ +"2974.label" = "Pas de sélection"; -/* Class = "NSTextFieldCell"; title = "Custom Fields"; ObjectID = "1991"; */ -"1991.title" = "Champs personnalisés"; +/* Class = "NSTextFieldCell"; title = "No Selection"; ObjectID = "2986"; */ +"2986.title" = "Pas de sélection"; -/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "2017"; */ -"2017.title" = "Cellule de texte"; +/* Class = "NSTextFieldCell"; title = "Label"; ObjectID = "3014"; */ +"3014.title" = "Label"; -/* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "2043"; */ -"2043.placeholderString" = "Valeur"; +/* Class = "NSTextFieldCell"; title = "Notes"; ObjectID = "hwn-UY-9Cr"; */ +"hwn-UY-9Cr.title" = "Notes"; -/* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "2049"; */ -"2049.placeholderString" = "Titre"; +/* Class = "CocoaBindingsConnection"; ibShadowedIsNilPlaceholder = "None"; ObjectID = "Xpb-G8-gXl"; */ +"Xpb-G8-gXl.ibShadowedIsNilPlaceholder" = "Aucun"; -/* Class = "NSTabViewItem"; label = "NoSelection"; ObjectID = "2974"; */ -"2974.label" = "Pas de sélection"; +/* Class = "CocoaBindingsConnection"; ibShadowedNoSelectionPlaceholder = "No Selection"; ObjectID = "Xpb-G8-gXl"; */ +"Xpb-G8-gXl.ibShadowedNoSelectionPlaceholder" = "Aucune sélection"; -/* Class = "NSTextFieldCell"; title = "No Selection"; ObjectID = "2986"; */ -"2986.title" = "Pas de sélection"; diff --git a/MacPass/en.lproj/IntegrationSettings.strings b/MacPass/fr.lproj/IntegrationPreferences.strings similarity index 55% rename from MacPass/en.lproj/IntegrationSettings.strings rename to MacPass/fr.lproj/IntegrationPreferences.strings index cc5838e31..a821fbed2 100644 --- a/MacPass/en.lproj/IntegrationSettings.strings +++ b/MacPass/fr.lproj/IntegrationPreferences.strings @@ -1,45 +1,45 @@ /* Class = "NSButtonCell"; title = "Enable global Autotype"; ObjectID = "1qb-Rd-jYu"; */ -"1qb-Rd-jYu.title" = "Enable global Autotype"; +"1qb-Rd-jYu.title" = "Activer la saisie automatique"; /* Class = "NSTextFieldCell"; title = "Shortcut"; ObjectID = "6oN-CH-T0O"; */ -"6oN-CH-T0O.title" = "Shortcut"; +"6oN-CH-T0O.title" = "Raccourci"; /* Class = "NSButtonCell"; title = "Include Entry URL Host for matches"; ObjectID = "B1D-j9-L8x"; */ -"B1D-j9-L8x.title" = "Include Entry URL Host for matches"; +"B1D-j9-L8x.title" = "Inclure l'hôte pour la correspondance"; /* Class = "NSButtonCell"; title = "Enable Quicklook Preview"; ObjectID = "ERs-ct-Eyx"; */ -"ERs-ct-Eyx.title" = "Enable Quicklook Preview"; +"ERs-ct-Eyx.title" = "Autoriser la prévisualisation coup d'œil"; /* Class = "NSTextFieldCell"; title = "Autotype is not available, because MacPass is not allowed to control your computer. To enable Autotype, go to the Security and Privacy Preferences and add MacPass to the Accessibilty group. Changes require a restart of MacPass."; ObjectID = "H37-ku-aTc"; */ -"H37-ku-aTc.title" = "Autotype is not available, because MacPass is not allowed to control your computer. To enable Autotype, go to the Security and Privacy Preferences and add MacPass to the Accessibilty group. Changes require a restart of MacPass."; +"H37-ku-aTc.title" = "La saisie automatique n'est pas disponible, car MacPass n'est autorisé à contrôler votre ordinateur. Pour activer la saisie automatique, allez dans les Préférences Système, Sécurité et Confidentialité, et ajoutez MacPass dans les applications autorisées à contrôler votre ordinateur. Ces modifications requièrent un redémarrage de MacPass."; /* Class = "NSTextFieldCell"; title = "Shortcut is missing Key"; ObjectID = "Lxp-wI-yQy"; */ -"Lxp-wI-yQy.title" = "Shortcut is missing Key"; +"Lxp-wI-yQy.title" = "Aucune touche n'est affectée au raccourci"; /* Class = "NSButtonCell"; title = "Open Preferences…"; ObjectID = "NP0-R3-m6n"; */ -"NP0-R3-m6n.title" = "Open Preferences…"; +"NP0-R3-m6n.title" = "Ouvrir les Préférences…"; /* Class = "NSBox"; title = "Autotype"; ObjectID = "P9N-HM-wER"; */ -"P9N-HM-wER.title" = "Autotype"; +"P9N-HM-wER.title" = "Saisie automatique"; /* Class = "NSButtonCell"; title = "Interpret ⌃ as ⌘"; ObjectID = "QfO-yG-l3F"; */ -"QfO-yG-l3F.title" = "Interpret ⌃ as ⌘"; +"QfO-yG-l3F.title" = "Interpréter ⌃ en ⌘"; /* Class = "NSTextFieldCell"; title = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to."; ObjectID = "QRy-CY-ENC"; */ -"QRy-CY-ENC.title" = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to."; +"QRy-CY-ENC.title" = "Si activé, chaque commande {CONTROL} sera envoyée comme ⌘. Ne décochez que si vous êtes sûr d'en avoir besoin."; /* Class = "NSButtonCell"; title = "Include Entry Tags for matches"; ObjectID = "rbu-G7-MT8"; */ -"rbu-G7-MT8.title" = "Include Entry Tags for matches"; +"rbu-G7-MT8.title" = "Inclure les Tags pour la correspondance"; /* Class = "NSButtonCell"; title = "Include Entry Title for matches"; ObjectID = "tmL-dT-D0G"; */ -"tmL-dT-D0G.title" = "Include Entry Title for matches"; +"tmL-dT-D0G.title" = "Inclure le titre pour la correspondance"; /* Class = "NSButtonCell"; title = "Include Entry URL for matches"; ObjectID = "TzR-00-Vp3"; */ -"TzR-00-Vp3.title" = "Include Entry URL for matches"; +"TzR-00-Vp3.title" = "Inclure l'URL pour la correspondance"; /* Class = "NSBox"; title = "Preview"; ObjectID = "VVs-b5-cX9"; */ -"VVs-b5-cX9.title" = "Preview"; +"VVs-b5-cX9.title" = "Prévisualisation"; /* Class = "NSTextFieldCell"; title = "If enabled attached files will be copied to a temporary location for preview and deleted after the preview is closed."; ObjectID = "WmI-IB-Aso"; */ -"WmI-IB-Aso.title" = "If enabled attached files will be copied to a temporary location for preview and deleted after the preview is closed."; +"WmI-IB-Aso.title" = "Si activé les fichiers joints seront copiés dans une localisation temporaire pour la prévisualisation puis supprimés quand la fenêtre sera fermée. Il s'agit d'un risque de sécurité potentiel !"; diff --git a/MacPass/fr.lproj/IntegrationSettings.strings b/MacPass/fr.lproj/IntegrationSettings.strings deleted file mode 100644 index d6ad534ba..000000000 --- a/MacPass/fr.lproj/IntegrationSettings.strings +++ /dev/null @@ -1,42 +0,0 @@ - -/* Class = "NSButtonCell"; title = "Enable KeePassHttp server"; ObjectID = "3"; */ -"3.title" = "Enable KeePassHttp server"; - -/* Class = "NSButtonCell"; title = "Enable global Autotype"; ObjectID = "1qb-Rd-jYu"; */ -"1qb-Rd-jYu.title" = "Activer la saisie automatique"; - -/* Class = "NSTextFieldCell"; title = "Shortcut"; ObjectID = "6oN-CH-T0O"; */ -"6oN-CH-T0O.title" = "Raccourci"; - -/* Class = "NSButtonCell"; title = "Enabel Quicklook Preview"; ObjectID = "ERs-ct-Eyx"; */ -"ERs-ct-Eyx.title" = "Autoriser la prévisualisation coup d'œil"; - -/* Class = "NSBox"; title = "Keepass HTTP"; ObjectID = "KbH-0Q-5Tw"; */ -"KbH-0Q-5Tw.title" = "Keepass HTTP"; - -/* Class = "NSBox"; title = "Autotype"; ObjectID = "P9N-HM-wER"; */ -"P9N-HM-wER.title" = "Saisie automatique"; - -/* Class = "NSBox"; title = "Preview"; ObjectID = "VVs-b5-cX9"; */ -"VVs-b5-cX9.title" = "Prévisualisation"; - -/* Class = "NSTextFieldCell"; title = "If enabled attached files will be copied to a temporary location for preview and deleted after the preview is closed."; ObjectID = "WmI-IB-Aso"; */ -"WmI-IB-Aso.title" = "Si activé les fichiers joints seront copiés dans une localisation temporaire pour la prévisualisation puis supprimés quand la fenêtre sera fermée. Il s'agit d'un risque de sécurité potentiel !"; - -/* Class = "NSButtonCell"; title = "Interpret ⌃ as ⌘"; ObjectID = "QfO-yG-l3F"; */ -"QfO-yG-l3F.title" = "Interpréter ⌃ en ⌘"; - -/* Class = "NSTextFieldCell"; title = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to."; ObjectID = "QRy-CY-ENC"; */ -"QRy-CY-ENC.title" = "Si activé, chaque commande {CONTROL} sera envoyée comme ⌘. Ne décochez que si vous êtes sûr d'en avoir besoin."; - -/* Class = "NSButtonCell"; title = "Include Host for matches"; ObjectID = "B1D-j9-L8x"; */ -"B1D-j9-L8x.title" = "Inclure l'hôte pour la correspondance"; - -/* Class = "NSButtonCell"; title = "Include URL for matches"; ObjectID = "TzR-00-Vp3"; */ -"TzR-00-Vp3.title" = "Inclure l'URL pour la correspondance"; - -/* Class = "NSButtonCell"; title = "Include Tags for matches"; ObjectID = "rbu-G7-MT8"; */ -"rbu-G7-MT8.title" = "Inclure les Tags pour la correspondance"; - -/* Class = "NSButtonCell"; title = "Include Title for matches"; ObjectID = "tmL-dT-D0G"; */ -"tmL-dT-D0G.title" = "Inclure le titre pour la correspondance"; diff --git a/MacPass/fr.lproj/Localizable.strings b/MacPass/fr.lproj/Localizable.strings index 906ffeffd..01feead3b 100644 --- a/MacPass/fr.lproj/Localizable.strings +++ b/MacPass/fr.lproj/Localizable.strings @@ -1,199 +1,607 @@ -/* Formatted Times */ +/* % days ago */ "%ld_DAYS_AGO" = "Depuis %ld jours"; + +/* % Hours ago */ "%ld_HOURS_AGO" = "Depuis %ld heures"; + +/* % Minutes ago */ "%ld_MINUTES_AGO" = "Depuis %ld minutes"; + +/* % Weeks ago */ "%ld_WEEKS_AGO" = "Depuis %ld semaines"; -"JUST_NOW" = "Maintenant"; -"LAST_WEEK" = "La semaine dernière"; -"ONE_WEEK_AGO" = "Il y a une semaine"; -"YESTERDAY" = "Hier"; -"TOMORROW" = "Demain"; -"ONE_WEEK" = "dans une semaine"; -"ONE_MONTH" = "dans un mois"; + +/* preset to expire after 90 days from now */ "90_DAYS" = "dans 90 jours"; -"ONE_YEAR" = "dans un an"; -/* Date Picker */ -"SELECT_DATE_PRESET" = "Date relative…"; +/* Button label to abort a merge on a file with changed master key! */ +"ABORT_MERGE_KEEP_MINE" = "Annuler la fusion"; + +/* Toolbar item with action menu */ +"ACTION" = "Action"; + +/* Action to add an entry via template */ +"ADD_TREMPLATE_ENTRY" = "Créer un modèle"; + +/* Attachments column title (shows counts) + Menu item to toggle display of attachment count column in entry table */ +"ATTACHMENTS" = "Fichiers joints"; /* Menu item for automatic trash creation */ "AUTOCREATE_TRASH_FOLDER" = "Créer automatiquement"; -/* - Actions - */ -"NEW_ENTRY" = "Ajouter entrée"; -"NEW_GROUP" = "Ajouter groupe"; -"DUPLICATE_ENTRY" = "Dupliquer entrée"; -"DUPLICATE_ENTRY_WITH_OPTIONS" = "Dupliquer entrée…"; -"COPY_ENTRY" = "Copier entrée"; -"COPY_GROUP" = "Copier groupe"; -"ADD_TREMPLATE_ENTRY" = "Créer un modèle"; -"DELETE_GROUP" = "Effacer groupe"; -"DELETE_ENTRY" = "Effacer entrée"; -"EDIT_TEMPLATE_GROUP" = "Modifier le groupe par défaut"; -"EMPTY_TRASH" = "Vider la corbeille"; -"MOVE_ENTRY" = "Déplacer entrée"; -"MOVE_GROUP" = "Déplacer groupe"; -"NEW_ENTRY_WITH_TEMPLATE_%@" = "Créer entrée depuis modèle %@"; -"NEW_DATABASE" = "Base de données"; -"OPEN_URL" = "Ouvrir URL"; -"PERFORM_AUTOTYPE_FOR_ENTRY" = "Saisie automatique"; -"TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "Saisie automatique"; -"PREVIEW" = "Aperçu"; -"PASSWORD_GENERATOR_SET_DEFAULTS" = "Utiliser par défaut"; -"PASSWORD_GENERATOR_RESET_ENTRY_DEFAULTS" = "Réinitialiser"; -"TRASH_ENTRY" = "Effacer entrée"; -"TRASH_GROUP" = "Effacer groupe"; -"SHOW_HISTORY" = "Afficher l'historique"; +/* Inherit autotype settings menu item */ +"AUTOTYPE_INHERIT" = "Réglages par défaut"; +/* Disable autotype menu item */ +"AUTOTYPE_NO" = "Désactiver la saisie automatique"; -/* - Search - */ -"CLEAR_RECENT_SEARCHES" = "Effacer les recherches récentes"; -"RECENT_SEARCHES" = "Recherches récentes"; -"SEARCH_DUPLICATE_PASSWORDS" = "Mots de passe dupliqués"; -"SEARCH_EXPIRED_ENTRIES" = "Expirées"; -"SELECT_FILTER_WITH_DOTS" = "Sélectionner…"; +/* Notification: Autotype failed, MacPass has no permission to send key strokes */ +"AUTOTYPE_NOTIFICATION_MACPASS_HAS_NO_ACCESSIBILTY_PERMISSIONS" = "Autorisation accessibilité manquant, saisie automatique désactivé."; -/* - Direct Translations - */ -"ACTION" = "Action"; -"ATTACHMENTS" = "Fichiers joints"; +/* Notification: Autotype failed, no documents are open */ +"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Aucun document n'est ouvert"; + +/* Noticiation: Autotype failed to find a match for %@ (string placeholder) */ +"AUTOTYPE_OVERLAY_NO_MATCH_FOR_%@" = "Pas de correspondance %@ !"; + +/* Enable autotype menu item */ +"AUTOTYPE_YES" = "Activer la saisie automatique"; + +/* Cancel */ "CANCEL" = "Annuler"; -"DATABASE" = "Base de données"; -"DELETE" = "Effacer"; -"EDIT" = "Modifier"; -"GROUP" = "Groupe"; -"INSPECTOR" = "Inspecteur"; -"LOCK" = "Verrouiller"; -"MODIFIED" = "Modifié"; -"NONE" = "NONE"; -"NOTES" = "Notes"; -"PASSWORD" = "Mot de passe"; -"SAVE" = "Enregistrer"; -"SAVE_WITH_DOTS" = "Enregistrer…"; -"SEARCH" = "Rechercher"; -"TITLE" = "Titre"; -"URL" = "URL"; -"USERNAME" = "Utilisateur"; -"WINDOWS" = "Windows"; +/* Menu item in the database outline context menu to change the database name */ +"CHANGE_DATABASE_NAME" = "Modifier le nom de la base de données"; + +/* Button to show the password change dialog + Single button to show the password change dialog */ +"CHANGE_PASSWORD_WITH_DOTS" = "Modifier le mot de passe…"; -"CHANGE_DATABASE_NAME" = "Modifier nom base de données"; +/* Menu item in the database outline context menu to change the trash group */ "CHANGE_TRASH_GROUP" = "Modifier le groupe corbeille"; -/* Field nam that was copied to the pasteboard */ +/* Button title in the key file selection dialog for selecting a key */ +"CHOOSE_FILE_BUTTON_TITLE" = "Sélectionner"; + +/* Menu to clear recent searches */ +"CLEAR_RECENT_SEARCHES" = "Effacer les recherches récentes"; + +/* String displayed at dock badge when clipboard is about to be cleared */ +"CLEARING_PASTEBOARD" = "…"; + +/* Field name that was copied to the pasteboard */ "COPIED_FIELD_%@" = "Copie de %@"; + +/* Context menu that copies reference to note */ +"COPIED_NOTES_REFERENCE" = "Copier les notes en tant que référence"; + +/* Password was copied to the pasteboard */ "COPIED_PASSWORD" = "Mot de passe copié !"; + +/* Context menu that copies reference to password */ +"COPIED_PASSWORD_REFERENCE" = "Copier le mot de passe en tant que référence"; + +/* Context menu that copies reference to title */ +"COPIED_TITLE_REFERENCE" = "Copier le titre en tant que référence"; + +/* URL was copied to the pasteboard */ "COPIED_URL" = "URL copiée !"; + +/* Context menu that copies reference to URL */ +"COPIED_URL_REFERENCE" = "Copier l'URL en tant que référence"; + +/* Username was copied to the pasteboard */ "COPIED_USERNAME" = "Nom d'utilisateur copié !"; + +/* Context menu that copies reference to username */ +"COPIED_USERNAME_REFERENCE" = "Copier l'utilisateur en tant que référence"; + +/* Submenu to copy attributes as reference */ +"COPY_AS_REFERENCE" = "Copier en tant que référence"; + +/* Context menu sub-menu to copy attributes as reference */ +"COPY_AS_REFERENCE_MENU" = "Copier en tant que référence"; + +/* Submenu to Copy custom fields */ "COPY_CUSTOM_FIELDS" = "Copier les champs personnalisés"; + +/* Context menu sub-menu to copy custom fields to clipboard */ +"COPY_CUSTOM_FIELDS_MENU" = "Copier les champs personnalisés dans le presse-papiers"; + +/* Action name when an entry was moved + Action title for copying an entry via drag and drop */ +"COPY_ENTRY" = "Copier l'entrée"; + +/* Mask for title to copy field value */ "COPY_FIELD_%@" = "Copier %@"; -"COPY_PASSWORD" = "Copier mot de passe"; -"COPY_URL" = "Copier URL"; -"COPY_USERNAME" = "Copier nom d'utilisateur"; -/* Dock Badge */ -"CLEARING_PASTEBOARD" = "…"; +/* Action title for copying a group via drag and drop */ +"COPY_GROUP" = "Copier groupe"; -/* Notification: Autotype failed, MacPass has no permission to send key strokes */ -"AUTOTYPE_NOTIFICATION_MACPASS_HAS_NO_ACCESSIBILTY_PERMISSIONS" = "Autorisation accessibilité manquant, saisie automatique désactivé."; +/* Context menu that copies reference to note */ +"COPY_NOTES_REFERENCE" = "Copier la référence des notes"; -/* Group Inspector */ -/* Autotype Combobox */ -"AUTOTYPE_NO" = "Désactiver la saisie automatique"; -"AUTOTYPE_YES" = "Activer la saisie automatique"; -"AUTOTYPE_INHERIT" = "Réglages par défaut"; +/* Menu item to copy the password of an entry + Toolbar item copy password */ +"COPY_PASSWORD" = "Copier le mot de passe"; -/* Search Combobox */ -"SEARCH_INHERIT" = "Réglages par défaut"; -"SEARCH_YES" = "Inclure dans la recherche"; -"SEARCH_NO" = "Exclure de la recherche"; +/* Context menu that copies reference to password */ +"COPY_PASSWORD_REFERENCE" = "Copier la référence du mot de passe"; -/* - Date/Time Displays - */ -/* Created at template string. %@ is replaced by locaized date and time */ -"CREATED_AT_%@" = "Création : %@"; -/* Modifed at template string. %@ is replaced by locaized date and time */ -"MODIFED_AT_%@" = "Modification : %@"; +/* Context menu that copies reference to title */ +"COPY_TITLE_REFERENCE" = "Copier la référence du titre"; -"EXPIRES_AT_DATE_%@" = "Expiration : %@"; -"NO_EXPIRE_DATE_SET" = "N'expire jamais."; +/* Menu item to copy the URL of an entry */ +"COPY_URL" = "Copier l'URL"; + +/* Context menu that copies reference to URL */ +"COPY_URL_REFERENCE" = "Copier la référence de l'URL"; + +/* Menu item to copy the username of an entry + Toolbar item copy username */ +"COPY_USERNAME" = "Copier le nom d'utilisateur"; -/* - Defaults for new objects - */ +/* Context menu that copies reference to username */ +"COPY_USERNAME_REFERENCE" = "Copier la référence du nom d'utilisateur"; + +/* Curstom attribute reference item */ +"CUSTOM_ATTRIBUTE" = "Attribut personnalisé"; + +/* Title for menu for custom search filters */ +"CUSTOM_SEARCH_FILTER_MENU" = "Filtre de recherche personnalisé"; + +/* Default display name for KDB databases */ +"DATABASE" = "Base de données"; + +/* Default Browser */ +"DEFAULT_BROWSER" = "Navigateur par défaut"; + +/* Default Titel for new Custom-Fields */ "DEFAULT_CUSTOM_FIELD_TITLE" = "Personnalisé"; + +/* Default Value for new Custom-Fields */ "DEFAULT_CUSTOM_FIELD_VALUE" = "Valeur"; + +/* Title for a newly created entry */ "DEFAULT_ENTRY_TITLE" = "Nouvelle entrée"; + +/* Title for a newly created group */ "DEFAULT_GROUP_NAME" = "Nouveau groupe"; + +/* Default window title for a new window association */ "DEFAULT_WINDOW_TITLE" = "Titre de la fenêtre"; +/* Menu item in the database outline context menu to delete the node from the trash + Menu item to delete an entry + Menu item to delete the selected attached file + Menu item to delete the selected custom icon + Toolbar item delete item */ +"DELETE" = "Effacer"; + +/* Delete Entry */ +"DELETE_ENTRY" = "Effacer l'entrée"; + +/* Delete Group */ +"DELETE_GROUP" = "Effacer le groupe"; + +/* Empty Trash */ +"DELETE_TRASHED_ENTRY" = "Supprimer définitivement l'entrée"; + +/* Empty Trash */ +"DELETE_TRASHED_GROUP" = "Supprimer définitivement le groupe"; + +/* Action title for copying an entry via drag and drop to another database + Action title for moving an entry via drag and drop */ +"DRAG_ENTRY" = "Glisser-déposer l'entrée"; + +/* Action title for moving a group via drag and drop + Actiontitle for copying groups via drag and drop to antother database */ +"DRAG_GROUP" = "Glisser-déposer le groupe"; + +/* Action name for duplicating entries */ +"DUPLICATE_ENTRIES_%ld" = "Entrées dupliquées %ld"; + +/* Menu item to directly diplicate an entry */ +"DUPLICATE_ENTRY" = "Dupliquer l'entrée"; + +/* Menu item to duplicate an entry with options how to duplicate. Will present a dialog. */ +"DUPLICATE_ENTRY_WITH_OPTIONS" = "Dupliquer l'entrée…"; + +/* Menu item in the database outline context menu to change the template group + Menu item on the add entry context menu to edit template groups */ +"EDIT_TEMPLATE_GROUP" = "Modifier le groupe par défaut"; + +/* Empty Trash + Menu item in the database outline context menu to empyt the trash + Menu item in the database outline to empty the trash + Menu item to empty the trash */ +"EMPTY_TRASH" = "Vider la corbeille"; + +/* Informative text for the enforce password change alert */ +"ENFORCE_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Vous ne pourrez pas sauvegarder tant que le mot de passe et/ou le fichier clé n'auront pas été modifiés."; + +/* Message text for the enforce password change alert */ +"ENFORCE_PASSWORD_CHANGE_ALERT_TITLE" = "Le mot de passe de la base de données a expiré !"; + +/* Group row for entry attributes */ +"ENTRY_CUSTOM_ATTRIBUTES" = "Attributs personnalisés de l'entrée"; + +/* Group row for entry attributes */ +"ENTRY_DEFAULT_ATTRIBUTES" = "Attributs personnalisés de l'entrée"; + +/* Tooltip displayed on the index header cell */ +"ENTRY_INDEX_COLUMN_TOOLTIP" = "Index de l'entrée"; + +/* Keyfile not valid */ +"ERROR_INVALID_KEYFILE" = "Clé incorrecte !"; + +/* Error description given when adding an invalid plugin */ +"ERROR_INVALID_PLUGIN" = "Plugin invalide"; + +/* Passwords do not match */ +"ERROR_PASSWORD_MISSMATCH" = "Mot de passe incorrect !"; + +/* Passwords do not match, keyfile is invalid */ +"ERROR_PASSWORD_MISSMATCH_INVALID_KEYFILE" = "Mot de passe ou clé incorrect(e) !"; + +/* Recommend/Enforce key change intervall format */ +"EVERY_%ld_DAYS" = "Tous les %ld jours"; + +/* Format to returen the date an item expires. Includes %@ placehoder for date */ +"EXPIRES_AT_DATE_%@" = "Expiration : %@"; + +/* The master key was changed by an external program! */ +"EXTERN_CHANGE_OF_MASTERKEY" = "La clé principale a été changée par un programme externe"; + +/* Informative text displayed when the file was change from another application */ +"FILE_CHANGED_BY_OTHERS_INFO_TEXT" = "Le fichier chargé n'est pas le même que celui sur le disque. Comment voulez-vous continuer ?"; + +/* Message displayed when an open file was changed from another application */ +"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "Le fichier de la base de données a été modifié !"; + +/* Error while reopening last known documents */ +"FILE_OPEN_ERROR" = "Erreur lors de l'ouverture du fichier"; + /* General Settings Label */ -"GENERAL_SETTINGS" = "Général"; +"GENERAL_PREFERENCES" = "Général"; + +/* Group column title */ +"GROUP" = "Groupe"; + +/* History count column title + Menu item to toggle display of history count column in entry table */ +"HISTORY" = "Historique"; + +/* Imports a dragged URL for a new entry */ +"IMPORT_URL" = "Importation de l'URL"; + +/* Toolbar item toggle inspector */ +"INSPECTOR" = "Inspecteur"; + +/* Label for the integration settings tab */ "INTEGRATION_SETTINGS" = "Intégration"; -"UPDATE_SETTINGS" = "Mises à jour"; -"WORKFLOW_SETTINGS" = "Workflow"; -"DEFAULT_BROWSER" = "Navigateur par défaut"; -"OTHER_BROWSER" = "Sélectionner le navigateur"; -"PLUGIN_SETTINGS" = "Plugins"; -/* Feature not supported in Version */ +/* Just now */ +"JUST_NOW" = "Maintenant"; + +/* Feature only available in kdbx databases */ "KDBX_ONLY_FEATURE" = "Fonction non supportée par la base KDB"; -/* Template */ +/* Button in dialog to ignore the changes to an open file! */ +"KEEP_MINE_DISCARD_OTHER" = "Conserver mon fichier, ignorer les autres"; + +/* Button in dialog to reopen the file! */ +"KEEP_OTHER_DISCARD_MINE" = "Conserver le nouveau fichier, ignorer le mien"; + +/* Do not install the plugin */ +"KEEP_PLUGIN" = "Ne pas installer le plugin"; + +/* Do not restart MacPass */ +"KEEP_RUNNING" = "Ne pas redémarrer MacPass"; + +/* last week */ +"LAST_WEEK" = "La semaine dernière"; + +/* Toolbar item to Lock the database */ +"LOCK" = "Verrouiller"; + +/* Message in the open panel to add attachments to an entry */ +"MESSAGE_ADD_ATTACHMENT_OPEN_PANEL" = "Ajouter le fichier sélectionné"; + +/* Message in the add plugin open panel */ +"MESSAGE_ADD_PLUGIN_OPEN_PANEL" = "Ajouter le plugin sélectionné"; + +/* Message in the open panel to import an XML file */ +"MESSAGE_XML_OPEN_PANEL" = "Importer le fichier sélectionné"; + +/* Menu item to toggle display of modified date column in entry table + Modification date column title */ +"MODIFIED" = "Modifié"; + +/* Action name when an entry was moved */ +"MOVE_ENTRY" = "Déplacer entrée"; + +/* Name for a newly created Database */ +"NEW_DATABASE" = "Base de données"; + +/* Action name for a newly created entry + Menu item to create a new entry + Toolbar item new entry */ +"NEW_ENTRY" = "Ajouter entrée"; + +/* Submenu to add an entry via template */ +"NEW_ENTRY_WITH_TEMPLATE_%@" = "Créer l'entrée depuis le modèle %@"; + +/* Action name for a newly created group + Menu item to create a new group + Toolbar item new group */ +"NEW_GROUP" = "Ajouter un groupe"; + +/* Expiration date format, when item does not expire */ +"NO_EXPIRE_DATE_SET" = "N'expire jamais."; + +/* Menu item to reset the template groups */ "NO_TEMPLATE_GROUP" = "Pas de modèle"; + +/* Menu item added to show that no templates are defined */ "NO_TEMPLATES" = "Pas de modèle trouvé"; -/* Kefile */ -"SAVE_KEYFILE" = "Sauver la clé"; +/* Null placeholder for item input field + Placeholder text for input fields if no entry or group is selected */ +"NONE" = "Aucun"; -/* Autoype Dialog */ -/* Candiate dialog */ -"SELECT_AUTOTYPE_CANDIDATE" = "Sélectionnez une entrée"; -"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "AUTOTYPE_OVERLAY_NO_DOCUMENTS"; -"AUTOTYPE_OVERLAY_NO_MATCH_FOR_%@" = "Pas de correspondance %@!"; -"AUTOTYPE_OVERLAY_SINGLE_MATCH" = "Trouvé !"; +/* Displayed name when notes or part of notes was copied + Menu item to toggle display of notes column in entry table + Notes column title + Notes reference item */ +"NOTES" = "Notes"; -/* Alert Dialogs */ -"WARNING_ON_EMPTY_TRASH_DESCRIPTION" = "Vider la corbeille est définitif."; -"WARNING_ON_EMPTY_TRASH_TITLE" = "Vider la corbeille ?"; -"WARNING_ON_LOSSY_SAVE" = "Enregistrer au format KDB, peut entrainer une perte de données."; -"WARNING_ON_LOSSY_SAVE_DESCRIPTION" = "Le format de fichier KDB ne contient pas toutes les informations."; -"CHANGE_FORMAT" = "Convertir le fichier au format KDBX"; +/* preset to expire after one montch from now */ +"ONE_MONTH" = "dans un mois"; -"ENFORCE_PASSWORD_CHANGE_ALERT_TITLE" = "Le mot de passe de la base de données a expiré !"; -"ENFORCE_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Vous ne pourrez pas sauvegarder tant que le mot de passe et/ou le fichier clé n'auront pas été modifiés."; +/* preset to expire after one week from now */ +"ONE_WEEK" = "dans une semaine"; -"RECOMMEND_PASSWORD_CHANGE_ALERT_TITLE" = "Changez le mot de passe de la base de données !"; -"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Il est recommandé de changer le mot de passe et/ou le fichier clé."; -"CHANGE_PASSWORD_WITH_DOTS" = "Modifier le mot de passe…"; +/* one week ago */ +"ONE_WEEK_AGO" = "Il y a une semaine"; -"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"; +/* preset to expire after one year from now */ +"ONE_YEAR" = "dans un an"; -/* Message displayed when an open file was changed from another application */ -"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "Le fichier de la base de données a été modifié !"; -/* Informative text displayed when the file was change form another application */ -"FILE_CHANGED_BY_OTHERS_INFO_TEXT" = "Le fichier chargé n'est pas le même que celui sur le disque. Comment voulez-vous continuer ?"; -/* Button to ignore the changes */ -"KEEP_MINE" = "Conserver la version actuelle et ignorer les modifications"; -/* Merge changes into file! */ -"MERGE_CHANGES" = "Merge changes!"; +/* Open button in the open panel to add attachments to an entry */ +"OPEN_BUTTON_ADD_ATTACHMENT_OPEN_PANEL" = "Ajouter le fichier sélectionné"; -/* Password Input Errors and Warning */ -"PASSWORD_INPUT_NO_PASSWORD" = "Pas de mot de passe"; +/* Open button in the add plugin open panel */ +"OPEN_BUTTON_ADD_PLUGIN_OPEN_PANEL" = "Ajouter le plugin sélectionné"; + +/* Open button in the open panel to import an XML file */ +"OPEN_BUTTON_IMPORT_XML_OPEN_PANEL" = "Ajouter le fichier sélectionné"; + +/* Action button in Notification to open a document */ +"OPEN_DOCUMENT" = "Ouvrir"; + +/* Action button in Notification to show the Accessibilty preferences */ +"OPEN_PREFERENCES" = "Ouvrir les préférences"; + +/* Menu item to open the URL with the default application */ +"OPEN_URL" = "Ouvrir l'URL"; + +/* Select Browser */ +"OTHER_BROWSER" = "Sélectionner le navigateur"; + +/* Menu item to toggle display of password column in entry table + Password column title + Password reference item */ +"PASSWORD" = "Mot de passe"; + +/* Window title for the stand-alone password creator window */ +"PASSWORD_CREATOR_WINDOW_TITLE" = "Générateur de mot de passe"; + +/* Button to reset the password defaults for a single entry */ +"PASSWORD_GENERATOR_RESET_ENTRY_DEFAULTS" = "Réinitialiser"; + +/* Button to set the defaults of the password generator */ +"PASSWORD_GENERATOR_SET_DEFAULTS" = "Utiliser par défaut"; + +/* Placeholder for the password field to aks for password + Placeholder in the unlock-password input field if password is enabled */ "PASSWORD_INPUT_ENTER_PASSWORD" = "Entrer le mot de passe"; + +/* Placeholder for the password input field if passwords are disabled + Placeholder for the repeat password input if passwords are disabled + Placeholder in the unlock-password input field if password is disabled */ +"PASSWORD_INPUT_NO_PASSWORD" = "Pas de mot de passe"; + +/* Placeholder for the repeat password field to aks for the repeated password */ "PASSWORD_INPUT_REPEAT_PASSWORD" = "Répéter le mot de passe"; + +/* Menu item to perform autotype with the selected entry */ +"PERFORM_AUTOTYPE_FOR_ENTRY" = "Saisie automatique"; + +/* Window displayed to the user to pick an amout of characters */ +"PICKCHAR_WINDOW_TITLE" = "Choix du nombre de caractères"; + +/* Count of picked characters in pickchars dialog if no limit is set */ +"PICKED_%ld_CHARACTERS" = "%ld caractères sélectionnés"; + +/* Window displayed to the user to pick an amout of characters */ +"PICKFIELD_WINDOW_TITLE" = "Choix du nombre de caractères"; + +/* Label for the button when a download is in progress! */ +"PLUGIN_BROWSER_ACTION_DOWNLOAD_IN_PROGRESS" = "Téléchargement en cours"; + +/* Label for the button when a download did not succeed */ +"PLUGIN_BROWSER_ACTION_RETRY_FAILED_DOWNLOAD" = "Le téléchargement a échoué"; + +/* Label for the button to show a downloaded file */ +"PLUGIN_BROWSER_ACTION_SHOW_DOWNLOADED_FILE" = "Fichier téléchargé"; + +/* Button to download the Plugin */ +"PLUGIN_BROWSER_DOWNLOAD_PLUGIN_BUTTON" = "Téléchargement du plugin"; + +/* Status for an up-to-date plugin in the plugin browser */ +"PLUGIN_BROWSER_LATEST_VERSION_INSTALLED" = "Plugin à jour"; + +/* Status for an outdated plugin version in the plugin browser */ +"PLUGIN_BROWSER_NEWER_VERSION_%@_AVAILABLE" = "Nouvelle version du plugin disponible : %@"; + +/* Status for an uninstalled plugin in the plugin browser */ +"PLUGIN_BROWSER_PLUGIN_NOT_INSTALLED" = "Plugin désinstallé"; + +/* Status for an unkonw plugin version in the plugin browser */ +"PLUGIN_BROWSER_UNKNOWN_PLUGIN_VERSION_INSTALLED_%@" = "Version du plugin %@ inconnue"; + +/* Error for a plugin that is disabled. */ +"PLUGIN_ERROR_DISABLED_PLUGIN" = "Plugin désactivé"; + +/* Plugin is not with this version of MacPass */ +"PLUGIN_ERROR_HOST_VERSION_NOT_SUPPORTED" = "Version courant de MacPass incompatible avec ce plugin"; + +/* The plugin could not be initalized */ +"PLUGIN_ERROR_INTILIZATION_FAILED" = "Le plugin n'a pas pu être initialisé"; + +/* Error for a plugin that was not signed properly */ +"PLUGIN_ERROR_UNSECURE_PLUGIN" = "Ce plugin n'est pas fiable"; + +/* Plugin specifies the wrong principla class! */ +"PLUGIN_ERROR_WRONG_PRINCIPAL_CLASS" = "Classe principale du plugin incorrecte"; + +/* name for disabled unloaded plugin */ +"PLUGIN_NAME_DISABLED_%@" = "Plugin %@ désactivé"; + +/* Name for unloaded plugin with errors */ +"PLUGIN_NAME_ERROR_%@" = "Plugin %@ désactivé avec des erreurs"; + +/* Label for plugin settings tab */ +"PLUGIN_SETTINGS" = "Plugins"; + +/* Plugin version. Include a %@ placeholder for version string */ +"PLUGIN_VERSION_%@" = "Version du plugin : %@"; + +/* Menu item to preview the selected attached file. */ +"PREVIEW" = "Aperçu"; + +/* Recent searches menu item */ +"RECENT_SEARCHES" = "Recherches récentes"; + +/* Informative text for the recommend password change alert */ +"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Il est recommandé de changer le mot de passe et/ou le fichier clé."; + +/* Message text for the recommend password change alert */ +"RECOMMEND_PASSWORD_CHANGE_ALERT_TITLE" = "Changez le mot de passe de la base de données !"; + +/* Restart */ +"RESTART" = "Redémarrage"; + +/* Action to restore and Entry to a previous state of it's history */ +"RESTORE_HISTORY_ENTRY" = "Rétablir l'historique de l'entrée"; + +/* Menu item to save the selected attached file. + Save file menu item title when save will just save the file */ +"SAVE" = "Enregistrer"; + +/* Button title to save the generated key file */ +"SAVE_KEYFILE" = "Sauvegarder la clé"; + +/* Save file menu item title when save will prompt for a location to save or ask for a password/key */ +"SAVE_WITH_DOTS" = "Enregistrer…"; + +/* Search input in Toolbar */ +"SEARCH" = "Rechercher"; + +/* Search option: Find duplicate passwords */ +"SEARCH_DUPLICATE_PASSWORDS" = "Mots de passe dupliqués"; + +/* Search option: Find expired entries */ +"SEARCH_EXPIRED_ENTRIES" = "Expirées"; + +/* Inherit search settings menu item */ +"SEARCH_INHERIT" = "Réglages par défaut"; + +/* Disable search menu item */ +"SEARCH_NO" = "Exclure de la recherche"; + +/* Enable search menu item */ +"SEARCH_YES" = "Inclure dans la recherche"; + +/* Menu item title for the expiry preset selection menu in the date picker */ +"SELECT_DATE_PRESET" = "Date relative…"; + +/* Message on the open panel for selecting which browser to use for opening URLs */ +"SELECT_DEFAULT_BROWSER_OPEN_PANEL_MESSAGE" = "Navigateur par défaut"; + +/* Label for the select browser button on the open panel for selecting which browser to use for opening URLs */ +"SELECT_DEFAULT_BROWSER_OPEN_PANEL_SELECT_BUTTON" = "Choix du navigateur"; + +/* Message for the dialog to open a file for merge */ +"SELECT_FILE_TO_MERGE" = "Fichier à fusionner"; + +/* Menu displayed as popup selection for search options if no filter is selected */ +"SELECT_FILTER_WITH_DOTS" = "Sélectionner…"; + +/* Menu item to show the history of the selected entry + Toolbar item to toggle history display */ +"SHOW_HISTORY" = "Afficher l'historique"; + +/* Displayed name when title field was copied + Menu item to toggle display of title column in entry table + Title column title + Title reference item */ +"TITLE" = "Titre"; + +/* preset to expire tomorrow */ +"TOMORROW" = "Demain"; + +/* Toolbar item to perform autotype */ +"TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "Saisie automatique"; + +/* Move Entry to Trash */ +"TRASH_ENTRY" = "Effacer entrée"; + +/* Move Group to Trash */ +"TRASH_GROUP" = "Effacer groupe"; + +/* Uninstall plugin */ +"UNINSTALL" = "Désinstaller le plugin"; + +/* No comment provided by engineer. */ +"UNKNOWN_FILE_VERSION" = "Version du fichier inconnue"; + +/* Unknown database format. */ +"UNKNOWN_FORMAT" = "Format inconnu"; + +/* Update Settings Label */ +"UPDATE_PREFERENCES" = "Mises à jour"; + +/* Menu item to toggle display of url column in entry table + Submenu with options what to do with the URL of an entry + Url column title + URL reference item */ +"URL" = "URL"; + +/* Menu item to toggle display of username column in entry table + Username column title + Username reference item */ +"USERNAME" = "Utilisateur"; + +/* No Key or Password */ "WARNING_NO_PASSWORD_OR_KEYFILE" = "Aucun mot de passe ou clé !"; -"ERROR_PASSWORD_MISSMATCH_INVALID_KEYFILE" = "Mot de passe ou clé incorrect(e) !"; -"ERROR_PASSWORD_MISSMATCH" = "Mot de passe incorrect !"; -"ERROR_INVALID_KEYFILE" = "Clé incorrecte !"; -/* Misc */ -"DOCUMENT_AUTOTYPE_CORRUPTION_WARNING" = "Lancez la réparation de la saisie automatique"; -"FILE_OPEN_ERROR" = "Erreur lors de l'ouverture du fichier"; +/* Informative Text displayed when clearing the Trash */ +"WARNING_ON_EMPTY_TRASH_DESCRIPTION" = "Vider la corbeille est définitif."; + +/* Message text for the alert displayed when clearing the Trash */ +"WARNING_ON_EMPTY_TRASH_TITLE" = "Vider la corbeille ?"; + +/* No comment provided by engineer. */ +"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET" = "Aucun mot de passe ou clé n'est défini."; + +/* No comment provided by engineer. */ +"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET_SUGGESTION" = "Veuillez définir un mot de passe ou une clé pour cette base de données. Quitter cette opération va annuler tous les changements et verrouiller le document"; + +/* Label for the workflow settings tab */ +"WORKFLOW_SETTINGS" = "Workflow"; + +/* Yesterday */ +"YESTERDAY" = "Hier"; + diff --git a/MacPass/fr.lproj/Localizable.stringsdict b/MacPass/fr.lproj/Localizable.stringsdict new file mode 100644 index 000000000..ba5b773ce --- /dev/null +++ b/MacPass/fr.lproj/Localizable.stringsdict @@ -0,0 +1,96 @@ + + + + + %ld_CHARACTERS_TO_PICK_REMAINING + + NSStringLocalizedFormatKey + %#@characters@ + characters + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + Un seul caractère restant + other + %ld caractères restants + zero + Tous les caractères ont été choisis + + + DUPLICATE_ENTRIES_ACTION_NAME + + NSStringLocalizedFormatKey + %#@entries@ + entries + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + Dupliquer l'entrée + other + Dupliquer les entrées + zero + Dupliquer les entrées + + + EVERY_%ld_DAYS + + NSStringLocalizedFormatKey + %#@days@ + days + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + tous les jours + other + tous les %ld jours + zero + après chaque déverrouillage + + + PICKCHAR_INFO_MESSAGE_PICK_CHARACTERS_%ld + + NSStringLocalizedFormatKey + %#@characters@ + characters + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + Sélectionner un caractère à utiliser + other + Sélectionner %ld caractères à utiliser + zero + Sélectionner le caractère à utiliser + + + PICKED_%ld_CHARACTERS + + NSStringLocalizedFormatKey + %#@characters@ + characters + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + %ld caractère choisi + other + %ld caractères choisis + zero + Aucun caractère choisi + + + + diff --git a/MacPass/fr.lproj/MainMenu.strings b/MacPass/fr.lproj/MainMenu.strings index 9ba4b3323..9784bed19 100644 --- a/MacPass/fr.lproj/MainMenu.strings +++ b/MacPass/fr.lproj/MainMenu.strings @@ -1,3 +1,11 @@ +/* Class = "NSMenuItem"; title = "Focus Entries"; ObjectID = "2VP-vB-IeX"; */ +"2VP-vB-IeX.title" = "Sélectionner les entrées"; + +/* Class = "NSMenuItem"; title = "Item"; ObjectID = "3st-rv-EeQ"; */ +"3st-rv-EeQ.title" = "Elément"; + +/* Class = "NSMenu"; title = "Import"; ObjectID = "4q9-u1-pcm"; */ +"4q9-u1-pcm.title" = "Importer"; /* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "5"; */ "5.title" = "Afficher tout en avant-plan"; @@ -35,7 +43,7 @@ /* Class = "NSMenu"; title = "File"; ObjectID = "81"; */ "81.title" = "Fichier"; -/* Class = "NSMenuItem"; title = "New"; ObjectID = "82"; */ +/* Class = "NSMenuItem"; title = "New Database"; ObjectID = "82"; */ "82.title" = "Nouveau"; /* Class = "NSMenuItem"; title = "File"; ObjectID = "83"; */ @@ -63,13 +71,13 @@ "131.title" = "Services"; /* Class = "NSMenuItem"; title = "Hide MacPass"; ObjectID = "134"; */ -"134.title" = "Cacher MacPass"; +"134.title" = "Masquer MacPass"; /* Class = "NSMenuItem"; title = "Quit MacPass"; ObjectID = "136"; */ "136.title" = "Quitter"; /* Class = "NSMenuItem"; title = "Hide Others"; ObjectID = "145"; */ -"145.title" = "Cacher les autres"; +"145.title" = "Masquer les autres"; /* Class = "NSMenuItem"; title = "Show All"; ObjectID = "150"; */ "150.title" = "Tout afficher"; @@ -131,11 +139,11 @@ /* Class = "NSMenuItem"; title = "Toggle Inspector"; ObjectID = "1181"; */ "1181.title" = "Afficher l'inspecteur"; -/* Class = "NSMenuItem"; title = "Show Password Creator"; ObjectID = "1200"; */ -"1200.title" = "Afficher créateur de mot de passe"; +/* Class = "NSMenuItem"; title = "Show Password Generator"; ObjectID = "1200"; */ +"1200.title" = "Afficher le générateur de mot de passe"; /* Class = "NSMenuItem"; title = "Change Master Password…"; ObjectID = "1203"; */ -"1203.title" = "Modifier le mot de passe maître…"; +"1203.title" = "Modifier le mot de passe principal…"; /* Class = "NSMenuItem"; title = "Database Settings…"; ObjectID = "1231"; */ "1231.title" = "Paramètres de la base de données…"; @@ -143,29 +151,45 @@ /* Class = "NSMenuItem"; title = "Save As…"; ObjectID = "1243"; */ "1243.title" = "Sauvegarder sous…"; -/* Class = "NSMenuItem"; title = "Export As XML…"; ObjectID = "1259"; */ +/* Class = "NSMenuItem"; title = "XML…"; ObjectID = "1259"; */ "1259.title" = "Exporter en XML…"; /* Class = "NSMenuItem"; title = "Lock"; ObjectID = "1261"; */ "1261.title" = "Verrouiller"; -/* Class = "NSMenuItem"; title = "Focus Entries"; ObjectID = "2VP-vB-IeX"; */ -"2VP-vB-IeX.title" = "Sélectionner les entrées"; +/* Class = "NSMenuItem"; title = "Import"; ObjectID = "aTb-sW-nUd"; */ +"aTb-sW-nUd.title" = "Importer"; + +/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "aVO-9F-Lwc"; */ +"aVO-9F-Lwc.title" = "Coup d'œil"; /* Class = "NSMenuItem"; title = "Focus Groups"; ObjectID = "HxM-dV-LIH"; */ "HxM-dV-LIH.title" = "Sélectionner les groupes"; -/* Class = "NSMenuItem"; title = "Focus Inspector"; ObjectID = "Zje-Me-5c8"; */ -"Zje-Me-5c8.title" = "Sélectionner l'inspecteur"; - -/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "aVO-9F-Lwc"; */ -"aVO-9F-Lwc.title" = "Coup d'œil"; +/* Class = "NSMenuItem"; title = "Save a Copy…"; ObjectID = "i24-Gn-j9c"; */ +"i24-Gn-j9c.title" = "Enregistrer une copie…"; /* Class = "NSMenuItem"; title = "Fix Autotype…"; ObjectID = "nx7-Vf-LiD"; */ "nx7-Vf-LiD.title" = "Réparer la saisie automatique…"; -/* Class = "NSMenuItem"; title = "Import XML…"; ObjectID = "rW0-r1-QYL"; */ +/* Class = "NSMenu"; title = "Export"; ObjectID = "p8h-Fg-h1O"; */ +"p8h-Fg-h1O.title" = "Exporter"; + +/* Class = "NSMenuItem"; title = "XML…"; ObjectID = "rW0-r1-QYL"; */ "rW0-r1-QYL.title" = "Importer un fichier XML…"; +/* Class = "NSMenu"; title = "Item"; ObjectID = "Ttt-tR-emo"; */ +"Ttt-tR-emo.title" = "Elément"; + +/* Class = "NSMenuItem"; title = "Export"; ObjectID = "tz9-yK-pOf"; */ +"tz9-yK-pOf.title" = "Exporter"; + +/* Class = "NSMenuItem"; title = "Focus Inspector"; ObjectID = "Zje-Me-5c8"; */ +"Zje-Me-5c8.title" = "Sélectionner l'inspecteur"; + /* Class = "NSMenuItem"; title = "Check for Updates…"; ObjectID = "zMO-8r-g5v"; */ "zMO-8r-g5v.title" = "Vérifier les mises à jour…"; + +/* Class = "NSMenuItem"; title = "Merge With…"; ObjectID = "zvE-0h-UxI"; */ +"zvE-0h-UxI.title" = "Fusionner avec…"; + diff --git a/MacPass/fr.lproj/OpenPanelAccessoryView.strings b/MacPass/fr.lproj/OpenPanelAccessoryView.strings new file mode 100644 index 000000000..a6ae4023d --- /dev/null +++ b/MacPass/fr.lproj/OpenPanelAccessoryView.strings @@ -0,0 +1,6 @@ +/* Class = "NSButtonCell"; title = "Show hidden files"; ObjectID = "FfY-KA-8IC"; */ +"FfY-KA-8IC.title" = "Masquer les fichiers cachés"; + +/* Class = "NSButtonCell"; title = "Allow all files"; ObjectID = "tvV-1s-Be3"; */ +"tvV-1s-Be3.title" = "Autoriser tous les fichiers"; + diff --git a/MacPass/fr.lproj/PasswordCreatorView.strings b/MacPass/fr.lproj/PasswordCreatorView.strings index 104273b9a..315753db9 100644 --- a/MacPass/fr.lproj/PasswordCreatorView.strings +++ b/MacPass/fr.lproj/PasswordCreatorView.strings @@ -1,11 +1,10 @@ - /* Class = "NSTextFieldCell"; title = "Password:"; ObjectID = "149"; */ "149.title" = "Mot de passe :"; /* Class = "NSTextFieldCell"; title = "Length:"; ObjectID = "179"; */ "179.title" = "Longueur :"; -/* Class = "NSBox"; title = "Allowed Characters"; ObjectID = "332"; */ +/* Class = "NSBox"; title = "Character options"; ObjectID = "332"; */ "332.title" = "Cacactères autorisés"; /* Class = "NSButtonCell"; title = "A-Z"; ObjectID = "453"; */ @@ -38,8 +37,9 @@ /* Class = "NSTextFieldCell"; title = "25000 bit"; ObjectID = "653"; */ "653.title" = "25000 bit"; +/* Class = "NSButtonCell"; title = "Use default only for selected entry"; ObjectID = "cfZ-5F-Nge"; */ +"cfZ-5F-Nge.title" = "Utiliser par défaut uniquement pour l'entrée sélectionnée"; + /* Class = "NSButtonCell"; title = "Set Default"; ObjectID = "Wvs-Md-Ob8"; */ "Wvs-Md-Ob8.title" = "Utiliser par défaut"; -/* Class = "NSButtonCell"; title = "Use default only for selected entry"; ObjectID = "cfZ-5F-Nge"; */ -"cfZ-5F-Nge.title" = "Utiliser par défaut uniquement pour l'entrée sélectionnée"; diff --git a/MacPass/fr.lproj/PasswordEditWindow.strings b/MacPass/fr.lproj/PasswordEditWindow.strings index a316143f9..bdf273e1a 100644 --- a/MacPass/fr.lproj/PasswordEditWindow.strings +++ b/MacPass/fr.lproj/PasswordEditWindow.strings @@ -1,6 +1,5 @@ - -/* Class = "NSWindow"; title = "Window"; ObjectID = "1"; */ -"1.title" = "Window"; +/* Class = "NSWindow"; title = "Change Password"; ObjectID = "1"; */ +"1.title" = "Modifier le mot de passe"; /* Class = "NSTextFieldCell"; title = "Missmatching Passwords"; ObjectID = "14"; */ "14.title" = "Les mots de passe ne correspondent pas"; @@ -21,10 +20,11 @@ "22.title" = "Fichier clé :"; /* Class = "NSButtonCell"; title = "Change Password"; ObjectID = "69"; */ -"69.title" = "Modifier mot de passe"; +"69.title" = "Modifier le mot de passe"; /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "73"; */ "73.title" = "Annuler"; /* Class = "NSButtonCell"; title = "Password:"; ObjectID = "OQz-DA-SoY"; */ "OQz-DA-SoY.title" = "Mot de passe :"; + diff --git a/MacPass/fr.lproj/PasswordInputView.strings b/MacPass/fr.lproj/PasswordInputView.strings index cc291a4a6..d139440f5 100644 --- a/MacPass/fr.lproj/PasswordInputView.strings +++ b/MacPass/fr.lproj/PasswordInputView.strings @@ -1,12 +1,18 @@ - /* Class = "NSButtonCell"; title = "Unlock"; ObjectID = "3"; */ "3.title" = "Déverrouiller"; /* Class = "NSTextFieldCell"; title = "Keyfile"; ObjectID = "18"; */ "18.title" = "Clé"; -/* Class = "NSTextFieldCell"; title = "Password"; ObjectID = "IU9-5u-jn9"; */ -"IU9-5u-jn9.title" = "Mot de passe"; - /* Class = "NSTextFieldCell"; title = "Wrong password!"; ObjectID = "269"; */ "269.title" = "Mot de passe incorrect !"; + +/* Class = "NSSecureTextFieldCell"; placeholderString = "Enter Password"; ObjectID = "339"; */ +"339.placeholderString" = "Saisir le mot de passe"; + +/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "erj-mR-UyO"; */ +"erj-mR-UyO.title" = "Annuler"; + +/* Class = "NSButtonCell"; title = "Password"; ObjectID = "IU9-5u-jn9"; */ +"IU9-5u-jn9.title" = "Mot de passe"; + diff --git a/MacPass/fr.lproj/PickcharsView.strings b/MacPass/fr.lproj/PickcharsView.strings new file mode 100644 index 000000000..46476b372 --- /dev/null +++ b/MacPass/fr.lproj/PickcharsView.strings @@ -0,0 +1,18 @@ +/* Class = "NSButtonCell"; title = "Submit"; ObjectID = "8vP-Ka-vsA"; */ +"8vP-Ka-vsA.title" = "Soumettre"; + +/* Class = "NSButtonCell"; title = "Reset"; ObjectID = "Emo-pg-Mfe"; */ +"Emo-pg-Mfe.title" = "Remise à zéro"; + +/* Class = "NSTextFieldCell"; title = "StatusLabel"; ObjectID = "M3h-q8-FLO"; */ +"M3h-q8-FLO.title" = "Label d'état"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "pUG-4c-rTt"; */ +"pUG-4c-rTt.title" = "Libellé de cellule"; + +/* Class = "NSTextFieldCell"; title = "MessageLabel"; ObjectID = "sHz-kg-YJQ"; */ +"sHz-kg-YJQ.title" = "Libellé du message"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "v3T-2f-yWm"; */ +"v3T-2f-yWm.title" = "Vue en tableau"; + diff --git a/MacPass/fr.lproj/PickfieldView.strings b/MacPass/fr.lproj/PickfieldView.strings new file mode 100644 index 000000000..debd73007 --- /dev/null +++ b/MacPass/fr.lproj/PickfieldView.strings @@ -0,0 +1,21 @@ +/* Class = "NSTableColumn"; headerCell.title = "Field"; ObjectID = "0H9-DW-Jyj"; */ +"0H9-DW-Jyj.headerCell.title" = "Champ"; + +/* Class = "NSButtonCell"; title = "Select"; ObjectID = "6Wi-9i-Tcb"; */ +"6Wi-9i-Tcb.title" = "Sélectionner"; + +/* Class = "NSTextFieldCell"; title = "Please pick a field value to be inserted"; ObjectID = "aJS-22-6Va"; */ +"aJS-22-6Va.title" = "Choisir une valeur de champ à insérer"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "e8U-mE-mZh"; */ +"e8U-mE-mZh.title" = "Vue en tableau"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "fil-tT-GXX"; */ +"fil-tT-GXX.title" = "Libellé de cellule"; + +/* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "rVo-ud-5fs"; */ +"rVo-ud-5fs.headerCell.title" = "Valeur"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "z1F-Bi-PBg"; */ +"z1F-Bi-PBg.title" = "Libellé de cellule"; + diff --git a/MacPass/fr.lproj/PluginDataView.strings b/MacPass/fr.lproj/PluginDataView.strings new file mode 100644 index 000000000..a954da863 --- /dev/null +++ b/MacPass/fr.lproj/PluginDataView.strings @@ -0,0 +1,15 @@ +/* Class = "NSButtonCell"; title = "Remove All"; ObjectID = "6hH-Hc-gf4"; */ +"6hH-Hc-gf4.title" = "Tout supprimer"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "bG1-Sb-Xyp"; */ +"bG1-Sb-Xyp.title" = "Libellé de cellule"; + +/* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "MaV-TP-92X"; */ +"MaV-TP-92X.placeholderString" = "Titre"; + +/* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "mLw-O5-6D3"; */ +"mLw-O5-6D3.placeholderString" = "Valeur"; + +/* Class = "NSTextFieldCell"; title = "Plugin data"; ObjectID = "unO-bO-8v0"; */ +"unO-bO-8v0.title" = "Données du plugin"; + diff --git a/MacPass/fr.lproj/PluginPreferences.strings b/MacPass/fr.lproj/PluginPreferences.strings index c536c89df..88b2fb1a0 100644 --- a/MacPass/fr.lproj/PluginPreferences.strings +++ b/MacPass/fr.lproj/PluginPreferences.strings @@ -1,15 +1,27 @@ - -/* 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"; */ +/* Class = "NSTextFieldCell"; title = "If enabled, Plugins without proper signatures will be allowed to load. Keep in mind, that Plugins have full access to your data! Changes take affect on restart."; ObjectID = "2bX-8S-9XM"; */ "2bX-8S-9XM.title" = "Si activé, seul les plugins signés correctement seront chargés. Souvenez-vous que les plugins ont un accès complet à vos données ! Les changements prendront effet après un redémarrage."; /* Class = "NSButtonCell"; title = "Load unsecure Plugins"; ObjectID = "C4B-6z-ZqX"; */ "C4B-6z-ZqX.title" = "Charger les plugins non sécurisés"; -/* 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"; +"fug-79-n9g.title" = "Vue en tableau"; + +/* Class = "NSTextFieldCell"; title = "Plugin Settings Info"; ObjectID = "OOr-SW-jZb"; */ +"OOr-SW-jZb.title" = "Paramètres du plugin"; + +/* Class = "NSButtonCell"; title = "Browse Available Plugins…"; ObjectID = "sqO-8H-n1y"; */ +"sqO-8H-n1y.title" = "Parcourir les plugins disponibles…"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "STt-PQ-Szr"; */ +"STt-PQ-Szr.title" = "Libellé de la cellule"; /* Class = "NSBox"; title = "Box"; ObjectID = "vBs-Ga-aq0"; */ -"vBs-Ga-aq0.title" = "Box"; +"vBs-Ga-aq0.title" = "Case"; + +/* Class = "NSButtonCell"; title = "Force loading of incompatible Plugins"; ObjectID = "yak-fS-jtA"; */ +"yak-fS-jtA.title" = "Forcer le chargement des plugins incompatibles"; + +/* Class = "NSTextFieldCell"; title = "Label"; ObjectID = "yuK-qH-jxx"; */ +"yuK-qH-jxx.title" = "Label"; + diff --git a/MacPass/fr.lproj/PluginRepositoryBrowserView.strings b/MacPass/fr.lproj/PluginRepositoryBrowserView.strings new file mode 100644 index 000000000..a3e1517e7 --- /dev/null +++ b/MacPass/fr.lproj/PluginRepositoryBrowserView.strings @@ -0,0 +1,36 @@ +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "cFE-KE-Xjx"; */ +"cFE-KE-Xjx.title" = "Libellé de cellule"; + +/* Class = "NSTextFieldCell"; title = "Updated at"; ObjectID = "DhR-ED-6gV"; */ +"DhR-ED-6gV.title" = "Mis à jour le"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "DRt-Gz-DUm"; */ +"DRt-Gz-DUm.title" = "Vue en tableau"; + +/* Class = "NSTableColumn"; headerCell.title = "Status"; ObjectID = "g1Q-BS-vCR"; */ +"g1Q-BS-vCR.headerCell.title" = "Etat"; + +/* Class = "NSTableColumn"; headerCell.title = "Latest Version"; ObjectID = "hFg-AD-SqD"; */ +"hFg-AD-SqD.headerCell.title" = "Dernière version"; + +/* Class = "NSButtonCell"; title = "Done"; ObjectID = "j9a-fn-Pye"; */ +"j9a-fn-Pye.title" = "Fait"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "nc9-mo-2e5"; */ +"nc9-mo-2e5.title" = "Vue en tableau"; + +/* Class = "NSTextFieldCell"; title = "Last updated:"; ObjectID = "ntD-sJ-NRw"; */ +"ntD-sJ-NRw.title" = "Dernière mise à jour :"; + +/* Class = "NSButtonCell"; title = "Refresh"; ObjectID = "NZw-nO-lZ3"; */ +"NZw-nO-lZ3.title" = "Rafraîchir"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "Pl1-4o-5uY"; */ +"Pl1-4o-5uY.title" = "Libellé de cellule"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "QPj-W1-su1"; */ +"QPj-W1-su1.title" = "Libellé de cellule"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "ZIf-CU-gh7"; */ +"ZIf-CU-gh7.title" = "Vue en tableau"; + diff --git a/MacPass/en.lproj/ReferenceBuilderView.strings b/MacPass/fr.lproj/ReferenceBuilderView.strings similarity index 67% rename from MacPass/en.lproj/ReferenceBuilderView.strings rename to MacPass/fr.lproj/ReferenceBuilderView.strings index ab32c3a33..0ab5e9584 100644 --- a/MacPass/en.lproj/ReferenceBuilderView.strings +++ b/MacPass/fr.lproj/ReferenceBuilderView.strings @@ -1,27 +1,27 @@ /* Class = "NSTextFieldCell"; title = "Match"; ObjectID = "9ce-da-syF"; */ -"9ce-da-syF.title" = "Match"; +"9ce-da-syF.title" = "Correspondance"; /* Class = "NSMenuItem"; title = "Get"; ObjectID = "142-bE-IMZ"; */ -"142-bE-IMZ.title" = "Get"; +"142-bE-IMZ.title" = "Acquérir"; /* Class = "NSTextFieldCell"; placeholderString = "Reference"; ObjectID = "dr9-x8-kKk"; */ -"dr9-x8-kKk.placeholderString" = "Reference"; +"dr9-x8-kKk.placeholderString" = "Référence"; /* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "fNP-ye-2bD"; */ -"fNP-ye-2bD.placeholderString" = "Value"; +"fNP-ye-2bD.placeholderString" = "Valeur"; /* Class = "NSTextFieldCell"; title = "Reference String"; ObjectID = "gik-Ha-hRd"; */ -"gik-Ha-hRd.title" = "Reference String"; +"gik-Ha-hRd.title" = "Chaîne de référence"; /* Class = "NSTextFieldCell"; title = "Key"; ObjectID = "K1t-OZ-ACe"; */ -"K1t-OZ-ACe.title" = "Key"; +"K1t-OZ-ACe.title" = "Clé"; /* Class = "NSButtonCell"; title = "Use"; ObjectID = "Kqx-qm-nMG"; */ -"Kqx-qm-nMG.title" = "Use"; +"Kqx-qm-nMG.title" = "Utiliser"; /* Class = "NSTextFieldCell"; title = "Reference"; ObjectID = "r1V-VE-ngy"; */ -"r1V-VE-ngy.title" = "Reference"; +"r1V-VE-ngy.title" = "Référence"; /* Class = "NSMenuItem"; title = "Matching"; ObjectID = "yT1-XL-k6a"; */ -"yT1-XL-k6a.title" = "Matching"; +"yT1-XL-k6a.title" = "Correspondance"; diff --git a/MacPass/fr.lproj/SavePanelAccessoryView.strings b/MacPass/fr.lproj/SavePanelAccessoryView.strings new file mode 100644 index 000000000..96f28ed76 --- /dev/null +++ b/MacPass/fr.lproj/SavePanelAccessoryView.strings @@ -0,0 +1,6 @@ +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "4"; */ +"4.title" = "Autres vues"; + +/* Class = "NSTextFieldCell"; title = "Not all Information inside your current database can be stored with this format."; ObjectID = "52"; */ +"52.title" = "Certaines informations de votre base de données courante ne peuvent être enregistrées avec ce format."; + diff --git a/MacPass/fr.lproj/UpdateSettings.strings b/MacPass/fr.lproj/UpdatePreferences.strings similarity index 95% rename from MacPass/fr.lproj/UpdateSettings.strings rename to MacPass/fr.lproj/UpdatePreferences.strings index 96183ea41..035674962 100644 --- a/MacPass/fr.lproj/UpdateSettings.strings +++ b/MacPass/fr.lproj/UpdatePreferences.strings @@ -1,4 +1,3 @@ - /* Class = "NSMenuItem"; title = "every Week"; ObjectID = "3FR-Va-iau"; */ "3FR-Va-iau.title" = "toutes les semaines"; @@ -8,14 +7,15 @@ /* Class = "NSMenuItem"; title = "every Hour"; ObjectID = "DjF-1I-6Nq"; */ "DjF-1I-6Nq.title" = "toutes les heures"; +/* Class = "NSMenuItem"; title = "every Day"; ObjectID = "o9E-hk-H1T"; */ +"o9E-hk-H1T.title" = "tous les jours"; + /* Class = "NSButtonCell"; title = "Automatically Check for Updates"; ObjectID = "RFg-q1-AwJ"; */ "RFg-q1-AwJ.title" = "Vérifier automatiquement les mises à jour"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "RKd-H8-eCF"; */ -"RKd-H8-eCF.title" = "OtherViews"; +"RKd-H8-eCF.title" = "Autres vues"; /* Class = "NSMenuItem"; title = "every Month"; ObjectID = "Uo3-kv-1ro"; */ "Uo3-kv-1ro.title" = "tous les mois"; -/* Class = "NSMenuItem"; title = "every Day"; ObjectID = "o9E-hk-H1T"; */ -"o9E-hk-H1T.title" = "tous les jours"; diff --git a/MacPass/fr.lproj/WelcomeView.strings b/MacPass/fr.lproj/WelcomeView.strings index 569649bed..f4d5a659e 100644 --- a/MacPass/fr.lproj/WelcomeView.strings +++ b/MacPass/fr.lproj/WelcomeView.strings @@ -1,11 +1,15 @@ -/* Class = "NSTextFieldCell"; title = "Welcome to MacPass"; ObjectID = "24"; */ -"24.title" = "Bienvenue dans MacPass"; +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "Fbl-HT-XIu"; */ +"Fbl-HT-XIu.title" = "Libellé de cellule"; -/* Class = "NSButtonCell"; title = "Open Database…"; ObjectID = "44"; */ -"44.title" = "Ouvrir une base de données…"; +/* Class = "NSButtonCell"; title = "Open Database…"; ObjectID = "Jj3-zy-gaz"; */ +"Jj3-zy-gaz.title" = "Ouvrir la base de données…"; -/* Class = "NSButtonCell"; title = "Create new Database"; ObjectID = "48"; */ -"48.title" = "Créer une nouvelle base de données"; +/* Class = "NSButtonCell"; title = "Create new Database"; ObjectID = "Vxx-Ql-eI5"; */ +"Vxx-Ql-eI5.title" = "Créer une nouvelle base de données"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "vzM-ly-CYn"; */ +"vzM-ly-CYn.title" = "Vue en tableau"; + +/* Class = "NSTextFieldCell"; title = "Welcome to MacPass"; ObjectID = "zdv-z8-khG"; */ +"zdv-z8-khG.title" = "Bienvenue sur MacPass"; -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "70"; */ -"70.title" = "Annuler"; diff --git a/MacPass/fr.lproj/WorkflowSettings.strings b/MacPass/fr.lproj/WorkflowPreferences.strings similarity index 63% rename from MacPass/fr.lproj/WorkflowSettings.strings rename to MacPass/fr.lproj/WorkflowPreferences.strings index cf6e6753a..31b4fa995 100644 --- a/MacPass/fr.lproj/WorkflowSettings.strings +++ b/MacPass/fr.lproj/WorkflowPreferences.strings @@ -1,12 +1,17 @@ +/* Class = "NSButtonCell"; title = "Hide application after copying to clipboard "; ObjectID = "1Vr-nY-Ogv"; */ +"1Vr-nY-Ogv.title" = "Masquer l'application après copie dans le presse-papiers"; /* Class = "NSBox"; title = "Entry Table"; ObjectID = "2"; */ "2.title" = "Liste des entrées"; +/* Class = "NSMenuItem"; title = "Default Browser"; ObjectID = "7YX-EA-9KA"; */ +"7YX-EA-9KA.title" = "Navigateur par défaut"; + /* Class = "NSTextFieldCell"; title = "Double-click on URL:"; ObjectID = "10"; */ -"10.title" = "Double clic sur l'URL :"; +"10.title" = "Double cliquer sur l'URL :"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "15"; */ -"15.title" = "OtherViews"; +"15.title" = "Autres vues"; /* Class = "NSMenuItem"; title = "Copies URL"; ObjectID = "16"; */ "16.title" = "Copie l'URL"; @@ -15,10 +20,10 @@ "17.title" = "Ouvre l'URL"; /* Class = "NSTextFieldCell"; title = "Double-click on Title:"; ObjectID = "37"; */ -"37.title" = "Double clic sur le titre :"; +"37.title" = "Double cliquer sur le titre :"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "42"; */ -"42.title" = "OtherViews"; +"42.title" = "Autres vues"; /* Class = "NSMenuItem"; title = "Is Ignored"; ObjectID = "43"; */ "43.title" = "Est ignoré"; @@ -26,17 +31,24 @@ /* Class = "NSMenuItem"; title = "Opens Inspector"; ObjectID = "44"; */ "44.title" = "Ouvre l'inspecteur"; -/* Class = "NSMenuItem"; title = "Default Browser"; ObjectID = "7YX-EA-9KA"; */ -"7YX-EA-9KA.title" = "Navigateur par défaut"; - -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "XgO-Tj-QjO"; */ -"XgO-Tj-QjO.title" = "OtherViews"; - /* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "gej-kA-GzQ"; */ "gej-kA-GzQ.title" = "Item 2"; +/* Class = "NSBox"; title = "Clipboard"; ObjectID = "Kff-Xp-hAT"; */ +"Kff-Xp-hAT.title" = "Presse-papiers"; + +/* Class = "NSButtonCell"; title = "Update password for new entries"; ObjectID = "RaM-t2-DVR"; */ +"RaM-t2-DVR.title" = "Mettre à jour le mot de passe pour les nouvelles entrées"; + /* Class = "NSTextFieldCell"; title = "Open URLs in:"; ObjectID = "soD-wI-YOH"; */ "soD-wI-YOH.title" = "Ouvrir les URLs dans :"; +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "XgO-Tj-QjO"; */ +"XgO-Tj-QjO.title" = "Autres vues"; + +/* Class = "NSBox"; title = "Templates"; ObjectID = "Xvt-tP-TbR"; */ +"Xvt-tP-TbR.title" = "Modèles"; + /* Class = "NSMenuItem"; title = "Item 3"; ObjectID = "zC2-cM-KDv"; */ "zC2-cM-KDv.title" = "Item 3"; + diff --git a/MacPass/en.lproj/AutotypeBuilderView.strings b/MacPass/it.lproj/AutotypeBuilderView.strings similarity index 65% rename from MacPass/en.lproj/AutotypeBuilderView.strings rename to MacPass/it.lproj/AutotypeBuilderView.strings index 0fb596017..cfd8fa862 100644 --- a/MacPass/en.lproj/AutotypeBuilderView.strings +++ b/MacPass/it.lproj/AutotypeBuilderView.strings @@ -1,9 +1,9 @@ + /* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "8ny-Qk-Jvo"; */ -"8ny-Qk-Jvo.title" = "Autotype Sequence"; +"8ny-Qk-Jvo.title" = "Sequenza Autotype"; /* Class = "NSButtonCell"; title = "Set Autotype Sequence"; ObjectID = "aOD-Ih-Sft"; */ -"aOD-Ih-Sft.title" = "Set Autotype Sequence"; +"aOD-Ih-Sft.title" = "Imposta Sequenza Autotype"; /* Class = "NSTextFieldCell"; title = "Available Commands and Placeholders"; ObjectID = "lug-97-H9D"; */ -"lug-97-H9D.title" = "Available Commands and Placeholders"; - +"lug-97-H9D.title" = "Commandi e Segnaposti Disponibili"; diff --git a/MacPass/en.lproj/AutotypeCandidateSelectionView.strings b/MacPass/it.lproj/AutotypeCandidateSelectionView.strings similarity index 68% rename from MacPass/en.lproj/AutotypeCandidateSelectionView.strings rename to MacPass/it.lproj/AutotypeCandidateSelectionView.strings index 67348f19d..4d00d02c9 100644 --- a/MacPass/en.lproj/AutotypeCandidateSelectionView.strings +++ b/MacPass/it.lproj/AutotypeCandidateSelectionView.strings @@ -1,15 +1,15 @@ -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "60p-7v-Nje"; */ -"60p-7v-Nje.title" = "Cancel"; -/* Class = "NSTextFieldCell"; title = "There are multiple matches for the current window. Please select which match should be used."; ObjectID = "gcf-gb-ZsF"; */ -"gcf-gb-ZsF.title" = "There are multiple matches for the current window. Please select which match should be used."; +/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "60p-7v-Nje"; */ +"60p-7v-Nje.title" = "Annulla"; /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "PKW-gr-yqN"; */ "PKW-gr-yqN.title" = "Text Cell"; /* Class = "NSTextFieldCell"; title = "Content"; ObjectID = "TN3-3a-LaA"; */ -"TN3-3a-LaA.title" = "Content"; +"TN3-3a-LaA.title" = "Contenuto"; -/* Class = "NSButtonCell"; title = "Perform Autotype"; ObjectID = "w7H-hx-CUF"; */ -"w7H-hx-CUF.title" = "Perform Autotype"; +/* Class = "NSTextFieldCell"; title = "There are multiple matches for the current window. Please select which match should be used."; ObjectID = "gcf-gb-ZsF"; */ +"gcf-gb-ZsF.title" = "Ci sono più corrispondenze per la finestra attuale. Prego selezionare la corrispondeza da utilizzare."; +/* Class = "NSButtonCell"; title = "Perform Autotype"; ObjectID = "w7H-hx-CUF"; */ +"w7H-hx-CUF.title" = "Esegui Autotype"; diff --git a/MacPass/it.lproj/AutotypeDoctorReportViewController.strings b/MacPass/it.lproj/AutotypeDoctorReportViewController.strings new file mode 100644 index 000000000..8d5bf0231 --- /dev/null +++ b/MacPass/it.lproj/AutotypeDoctorReportViewController.strings @@ -0,0 +1,18 @@ + +/* Class = "NSTextFieldCell"; title = "MacPass will send key press events to the system when Autotype or Global Autotype is executed. Since macOS 10.14 Mojave this is only possible, if Accessibility permissions are granted to the application."; ObjectID = "6GI-KJ-Xue"; */ +"6GI-KJ-Xue.title" = "MacPass manderà eventi di tastiera al sistema quando viene eseguito Autotype o Autotype Globale. A partire da macOS 10.14 Mojave, questo è possibile solo se i permessi di accessibilità sono concesse all'applicazione."; + +/* Class = "NSTextFieldCell"; title = "MacPass will read every window title when Global Autotype is executed to find a match. Since macOS 10.15 Catalina it is not possible to read any window title, if the user has not granted permissions to record the screen. If you are running macOS 10.15 or higher, MacPass will check if it can read every window title of currently visible windows. This test will not read the actual title. The titles aren't stored or processed in any way."; ObjectID = "7of-1z-Nfk"; */ +"7of-1z-Nfk.title" = "MacPass leggerà ogni titolo di finestra quando viene eseguito Autotype Globale per trovare una corrispondenza. A partire da macOS 10.15 Catalina, non è possibile di leggere alcun titolo di finestra se l'utente non ha concesso all'applicazione il permesso di registrare lo schermo. Con macOS 10.15 o più nuovo, MacPass controllerà se può leggere tutti i titoli delle finestre attualmente visibili. Questo controllo non leggerà i titoli stessi. I titoli non vengono salvate o processate in alcun modo."; + +/* Class = "NSButtonCell"; title = "Open Accessibilty Preferences…"; ObjectID = "8m1-vs-pd5"; */ +"8m1-vs-pd5.title" = "Apri Impostazioni Accessibilità…"; + +/* Class = "NSTextFieldCell"; title = "Screen Recording"; ObjectID = "9gr-mz-2I4"; */ +"9gr-mz-2I4.title" = "Registrazione Schermo"; + +/* Class = "NSTextFieldCell"; title = "Accessibility"; ObjectID = "aIL-8W-63g"; */ +"aIL-8W-63g.title" = "Accessibilità"; + +/* Class = "NSButtonCell"; title = "Open Screen Recording Preferences…"; ObjectID = "lgB-Ys-L9R"; */ +"lgB-Ys-L9R.title" = "Apri Impostazioni Registrazione Schermo…"; diff --git a/MacPass/it.lproj/ContextBar.strings b/MacPass/it.lproj/ContextBar.strings index 035c43095..5c48132ab 100644 --- a/MacPass/it.lproj/ContextBar.strings +++ b/MacPass/it.lproj/ContextBar.strings @@ -1,15 +1,15 @@ /* Class = "NSTextFieldCell"; title = "Search:"; ObjectID = "7"; */ -"7.title" = "Search:"; +"7.title" = "Cerca:"; /* Class = "NSButtonCell"; title = "Title"; ObjectID = "53D-ne-nv6"; */ -"53D-ne-nv6.title" = "Title"; +"53D-ne-nv6.title" = "Titolo"; /* Class = "NSButtonCell"; title = "Empty Trash"; ObjectID = "8Ok-oe-6AB"; */ -"8Ok-oe-6AB.title" = "Empty Trash"; +"8Ok-oe-6AB.title" = "Svuota Cestino"; /* Class = "NSTextFieldCell"; title = "Trash"; ObjectID = "8P1-Rp-sF4"; */ -"8P1-Rp-sF4.title" = "Trash"; +"8P1-Rp-sF4.title" = "Cestino"; /* Class = "NSButtonCell"; title = "URL"; ObjectID = "92o-gN-Psj"; */ "92o-gN-Psj.title" = "URL"; @@ -18,31 +18,31 @@ "CFk-71-NYQ.title" = "Item 3"; /* Class = "NSTextFieldCell"; title = "History"; ObjectID = "ER3-Ic-v0N"; */ -"ER3-Ic-v0N.title" = "History"; +"ER3-Ic-v0N.title" = "Cronologia"; /* Class = "NSMenuItem"; title = "Item 1"; ObjectID = "LRm-iZ-XrA"; */ "LRm-iZ-XrA.title" = "Item 1"; /* Class = "NSButtonCell"; title = "Restore Entry"; ObjectID = "UTg-y9-4DN"; */ -"UTg-y9-4DN.title" = "Restore Entry"; +"UTg-y9-4DN.title" = "Ripristina Voce"; /* Class = "NSTabViewItem"; label = "Filter"; ObjectID = "Ud6-Nz-6PS"; */ -"Ud6-Nz-6PS.label" = "Filter"; +"Ud6-Nz-6PS.label" = "Filtro"; /* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "cpr-p6-YAY"; */ "cpr-p6-YAY.title" = "Item 2"; /* Class = "NSButtonCell"; title = "Exit History"; ObjectID = "ewQ-8F-e1E"; */ -"ewQ-8F-e1E.title" = "Exit History"; +"ewQ-8F-e1E.title" = "Esci dalla cronologia"; /* Class = "NSButtonCell"; title = "Notes"; ObjectID = "iDN-2E-hwt"; */ -"iDN-2E-hwt.title" = "Notes"; +"iDN-2E-hwt.title" = "Note"; /* Class = "NSButtonCell"; title = "Username"; ObjectID = "jfQ-Jh-2gl"; */ -"jfQ-Jh-2gl.title" = "Username"; +"jfQ-Jh-2gl.title" = "Nome Utente"; /* Class = "NSTabViewItem"; label = "Trash"; ObjectID = "na6-h9-r9q"; */ -"na6-h9-r9q.label" = "Trash"; +"na6-h9-r9q.label" = "Cestino"; /* Class = "NSButtonCell"; title = "Password"; ObjectID = "rvQ-4V-SsS"; */ "rvQ-4V-SsS.title" = "Password"; @@ -51,4 +51,4 @@ "wC4-fF-dLW.title" = "OtherViews"; /* Class = "NSTabViewItem"; label = "History"; ObjectID = "z4I-cp-nhf"; */ -"z4I-cp-nhf.label" = "History"; +"z4I-cp-nhf.label" = "Cronologia"; diff --git a/MacPass/it.lproj/Credits.rtf b/MacPass/it.lproj/Credits.rtf deleted file mode 100644 index a39835a87..000000000 --- a/MacPass/it.lproj/Credits.rtf +++ /dev/null @@ -1,103 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 -{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red52\green110\blue183;\red38\green38\blue38;} -{\*\expandedcolortbl;;\csgenericrgb\c20392\c43137\c71765;\csgenericrgb\c14902\c14902\c14902;} -\paperw11900\paperh16840\vieww25780\viewh19380\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b\fs24 \cf0 Project Website:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt -\f1\b0 \cf0 MacPass}} -\f1\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \ -License:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf0 MacPass KeePass compatible client for OS X\ -Copyright (c) 2012-2019 Michael Starke, HicknHack Software GmbH\ - \ -This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by\ -the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\ -\ -This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\ -\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\ -\ -You should have received a copy of the GNU General Public License along with this program. If not, see {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt http://www.gnu.org/licenses/}}.\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 \kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \kerning1\expnd0\expndtw0 Credits:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf2 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 Dutch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/clone1612"}}{\fldrslt Jannick Hemelhof}}\ -\ -French translation: {\field{\*\fldinst{HYPERLINK "mailto:gil@panix.com"}}{\fldrslt Gil Andr\'e9}}\ -\ -Italian translation: {\field{\*\fldinst{HYPERLINK "mailto:info@francescoservida.ch"}}{\fldrslt Francesco Servida}}\ -\ -Polish translation: {\field{\*\fldinst{HYPERLINK "http://www.webii.pl/"}}{\fldrslt Micha\uc0\u322 Jaglewicz}}\ -\ -Russian translation: {\field{\*\fldinst{HYPERLINK "mailto:alex@mrdoggy.info"}}{\fldrslt Aliaksandr Piatkevich}}\ -\ -Simplified Chinese translation: {\field{\*\fldinst{HYPERLINK "mailto:patchao2000@gmail.com"}}{\fldrslt Zhao Peng}}\ -\ -Spanisch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/m0yP"}}{\fldrslt \expnd0\expndtw0\kerning0 -Moises Perez}}\ -\ -MacPass\kerning1\expnd0\expndtw3 - \kerning1\expnd0\expndtw0 Icon: {\field{\*\fldinst{HYPERLINK "http://iiro.jappinen.me"}}{\fldrslt Iiro J\'e4ppinen}}\ -\ -Database Icons: {\field{\*\fldinst{HYPERLINK "https://github.com/JoannaOlsen"}}{\fldrslt Joanna Olsen}}\cf2 \ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt \cf2 KissXML}}\cf3 \ -Copyright \'a9 2012 Robbie Hanson. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf2 MiniKeePass}}\ -Copyright \'a9 2011 Jason Rush and John Flanagan. All rights reserved.\ - \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt \cf2 KeePass Database Library}}\ -Copyright \'a9 2010 Qiang Yu. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/Perspx/PXSourceList"}}{\fldrslt \cf3 PXSourceList}}\ -Copyright \'a9 2011, Alex Rozanski. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org"}}{\fldrslt \cf3 Sparkl\kerning1\expnd0\expndtw3 -e}}\kerning1\expnd0\expndtw3 -\ -Copyright \'a9 2006 Andy Matuschak. \kerning1\expnd0\expndtw0 All rights reserved.\kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf3 \kerning1\expnd0\expndtw0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/questions/11386876/how-to-encode-and-decode-files-as-base64-in-cocoa-objective-c"}}{\fldrslt \cf3 NSData+Base64}}\ -Copyright \'a92013, {\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/users/200321/denis2342"}}{\fldrslt denis2342}}\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://www.cocoadev.com/index.pl?NSDataCategory"}}{\fldrslt \cf3 NSData+Gzip}}\ -Extracted from code on the CocoaDev Wiki\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/karelia/SecurityInterface"}}{\fldrslt \cf3 KSPasswordField}}\ -Code reused in HNHUISecureTextField\ -Copyright \'a92012 Mike Abdullah, Karelia Software. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/AlanQuatermain/aqtoolkit"}}{\fldrslt \cf3 NSData+CommonCrypto}}\ -Copyright \'a92008-2009 Jim Dovey, All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mattt/TransformerKit"}}{\fldrslt \cf3 TransformerKit}}\ -Copyright \'a92012 Mattt Thompson. All rights reseverd} \ No newline at end of file diff --git a/MacPass/it.lproj/DuplicateEntryOptionsWindow.strings b/MacPass/it.lproj/DuplicateEntryOptionsWindow.strings index 59e0aa059..8d3745762 100644 --- a/MacPass/it.lproj/DuplicateEntryOptionsWindow.strings +++ b/MacPass/it.lproj/DuplicateEntryOptionsWindow.strings @@ -1,18 +1,18 @@ /* Class = "NSButtonCell"; title = "Reference username instead of copying it"; ObjectID = "O9X-XH-n8o"; */ -"O9X-XH-n8o.title" = "Reference username instead of copying it"; +"O9X-XH-n8o.title" = "Riferire al nome utente invece di copiarlo"; /* Class = "NSWindow"; title = "Window"; ObjectID = "QvC-M9-y7g"; */ -"QvC-M9-y7g.title" = "Window"; +"QvC-M9-y7g.title" = "Opzioni Duplicazione Voci"; /* Class = "NSButtonCell"; title = "Duplicate Entry"; ObjectID = "WqI-qH-ARf"; */ -"WqI-qH-ARf.title" = "Duplicate Entry"; +"WqI-qH-ARf.title" = "Duplica Voce"; /* Class = "NSButtonCell"; title = "Duplicate history"; ObjectID = "dXl-KS-4rE"; */ -"dXl-KS-4rE.title" = "Duplicate history"; +"dXl-KS-4rE.title" = "Duplica cronologia"; /* Class = "NSButtonCell"; title = "Reference password instead of copying it"; ObjectID = "daA-QV-CDq"; */ -"daA-QV-CDq.title" = "Reference password instead of copying it"; +"daA-QV-CDq.title" = "Riferire alla password invece di copiarla"; /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "x6e-bE-Y6R"; */ -"x6e-bE-Y6R.title" = "Cancel"; +"x6e-bE-Y6R.title" = "Annulla"; diff --git a/MacPass/it.lproj/GeneralSettings.strings b/MacPass/it.lproj/GeneralPreferences.strings similarity index 100% rename from MacPass/it.lproj/GeneralSettings.strings rename to MacPass/it.lproj/GeneralPreferences.strings diff --git a/MacPass/it.lproj/InfoPlist.strings b/MacPass/it.lproj/InfoPlist.strings index 477b28ff8..d155012ec 100644 --- a/MacPass/it.lproj/InfoPlist.strings +++ b/MacPass/it.lproj/InfoPlist.strings @@ -1,2 +1,15 @@ -/* Localized versions of Info.plist keys */ +/* (No Comment) */ +"KDB Database" = "Database KDB"; + +/* (No Comment) */ +"KDBX Database" = "Database KDBX"; + +/* (No Comment) */ +"MacPass Plugin" = "Plugin MacPass"; + +/* (No Comment) */ +"NSHumanReadableCopyright" = "Copyright ©2012-2019 HicknHack Software GmbH. Tutti i diritti riservati."; + +/* (No Comment) */ +"XML" = "XML"; diff --git a/MacPass/it.lproj/IntegrationSettings.strings b/MacPass/it.lproj/IntegrationPreferences.strings similarity index 100% rename from MacPass/it.lproj/IntegrationSettings.strings rename to MacPass/it.lproj/IntegrationPreferences.strings diff --git a/MacPass/it.lproj/Localizable.strings b/MacPass/it.lproj/Localizable.strings index ea0322072..c1accab2a 100644 --- a/MacPass/it.lproj/Localizable.strings +++ b/MacPass/it.lproj/Localizable.strings @@ -1,194 +1,813 @@ -/* Formatted Times */ +/* Count of characters remaining in pickchars dialog */ +"%ld_CHARACTERS_TO_PICK_REMAINING" = "%ld caratteri rimanenti da scegliere"; + +/* Display format for days. Should contain a long decimal placeholder! */ +"%ld_DAYS" = "%ld giorni"; + +/* % days ago */ "%ld_DAYS_AGO" = "%ld giorni fa"; + +/* % Hours ago */ "%ld_HOURS_AGO" = "circa %ld ore fa"; + +/* % Minutes ago */ "%ld_MINUTES_AGO" = "%ld minuti fa"; + +/* % Weeks ago */ "%ld_WEEKS_AGO" = "%ld settimane fa"; -"JUST_NOW" = "Ora"; -"LAST_WEEK" = "Settimana scorsa"; -"ONE_WEEK_AGO" = "Una settimana fa"; -"YESTERDAY" = "Ieri"; -"TOMORROW" = "Domani"; -"ONE_WEEK" = "tra una settimana"; -"ONE_MONTH" = "tra un mese"; -"90_DAYS" = "tra 90 giorni"; -"ONE_YEAR" = "tra un anno"; -/* Date Picker */ -"SELECT_DATE_PRESET" = "Usa data predefinita…"; +/* preset to expire after 90 days from now */ +"90_DAYS" = "in 90 giorni"; + +/* Button label to abort a merge on a file with changed master key! */ +"ABORT_MERGE_KEEP_MINE" = "Annulla incorporamento. Tenere la mia versione."; + +/* Toolbar item with action menu */ +"ACTION" = "Azione"; + +/* Menu item title for adding an hmacotp config attribute */ +"ADD_CUSTOM_ATTRIBUTE_HMACOTP_CONFIG" = "Aggiungere Configurazione HMACOTP"; + +/* Menu item title for adding an hmacotp seed attribute */ +"ADD_CUSTOM_ATTRIBUTE_HMACOTP_SEED" = "Impostare Seme HMACOTP"; + +/* Menu displayed for adding special custom keys */ +"ADD_CUSTOM_FIELD_CONTEXT_MENU" = "Aggiungere Menù Campo Personalizzato"; + +/* Action to add an entry via template */ +"ADD_TREMPLATE_ENTRY" = "Aggiungi Modello"; + +/* Allow the download of the plugin repository file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_ALLOW_DOWNLOAD" = "Aggiornare definizioni in linea"; + +/* Informative text displayed on the alert that shows up when MacPass asks for permssion to download the plugin repository JSON file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_CONNECTION_PERMISSION_INFORMATIVE_TEXT" = "Le definizioni plugin si trovano in linea a https://macpassapp.org. MacPass vorebbe scaricare questi documenti per assicurare che i dati siano aggiornati."; + +/* Message displayed on the alert that askf for permission to download the plugin repository JSON file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_CONNECTION_PERMISSION_MESSAGE" = "MacPass vorebbe controllare la disponibilità di aggiornamenti per definizioni plugin in linea"; + +/* Disallow the download of the plugin repository file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_DISALLOW_DOWNLOAD" = "Non aggiornare definizioni"; + +/* Button in dialog to leave plugin ds disabled and continiue! */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OK" = "OK"; + +/* Button in dialog to open plugin preferences pane! */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OPEN_PREFERENCES" = "Mostra Impostazioni Plugin…"; + +/* Informative text of the alert displayed when plugins where disabled due to incompatibilty */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_INFORMATIVE_TEXT" = "Alcuni plugin sono stati disattivati perché non sono compatibili con questa versione di MacPass. Aprire le impostazioni plugin per ulteriori dettagli."; + +/* Message text of the alert displayed when plugins where disabled due to incompatibilty */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_MESSAGE" = "Plugin Incompatibili trovati."; + +/* Alert informative text when plugins or their settings change and require a restart */ +"ALERT_INFORMATIVE_TEXT_PLUGINS_CHANGED_SUGGEST_RESTART" = "Cambiamenti ai plugin e alle impostazioni globali plugin entrano in vigore solo dopo un riavvio. Riavviare adesso MacPass?"; + +/* Alert informative text to ask the user if he really want to uninstall the plugin */ +"ALERT_INFORMATIVE_TEXT_REALLY_UNINSTALL_PLUGIN" = "Il plugin verrà messo nel cestino."; + +/* Button in dialog to cancel merge of KDB file changes! */ +"ALERT_MERGE_CANCEL" = "Annulla"; + +/* Button in dialog to merge KDB changes into file! */ +"ALERT_MERGE_CONTINUE" = "Unire documenti!"; + +/* Informative text displayed when merging KDB files */ +"ALERT_MERGE_KDB_FILE_INFO_TEXT" = "I database KDB non contengono abbastanza informazioni per unirli facilmente. Le voci verranno unite e non vengono persi i dati. Però, visto che vengono controllati solo i nomi dei gruppi, potrebbero esserci dei cambiamenti inaspettati. Voci spostati potrebbero essere spostati nel loro gruppo precedente o gruppi renominati potrebbero non essere uniti. Inoltre, voci eliminate potrebbero riapparire a causa di mancanza di dati riguardo oggetti eliminati. Vuole sicuramente procedere?"; + +/* Alert message warning user about KDB file merge */ +"ALERT_MERGE_KDB_FILE_MESSAGE" = "Sta per unire un database KDB"; + +/* Alert message text when plugins or their settings change and require a restart */ +"ALERT_MESSAGE_PLUGINS_CHANGED_SUGGEST_RESTART" = "Sono stati cambiate la impostazioni plugin. Prego riavviare."; + +/* Alert message text to ask the user if he really want to uninstall the plugin. Include %@ placeholder for plugin name */ +"ALERT_MESSAGE_TEXT_REALLY_UNINSTALL_PLUGIN_%@" = "Il plugin %@ deve veramente essere deinstallato?"; + +/* Informative text of the disabled updates alert! */ +"ALERT_UPDATES_DISABLED_INFORMATIVE_TEXT_%@!" = "Aggiornamenti per questa versione di %@ sono disattivate!"; + +/* Message text for disabled updates alert! */ +"ALERT_UPDATES_DISABLED_MESSAGE_TEXT" = "Aggiornamenti Disattivati!"; + +/* Attachments column title (shows counts) + Menu item to toggle display of attachment count column in entry table */ +"ATTACHMENTS" = "Allegati"; + +/* Sucessfully merged external changes */ +"AUTO_MERGE_NOTIFICATION_TEXT" = "Unione automatica riuscita!"; /* Menu item for automatic trash creation */ "AUTOCREATE_TRASH_FOLDER" = "Crea Automaticamente"; -/* - Actions - */ -"NEW_ENTRY" = "Aggiungi elemento"; -"NEW_GROUP" = "Aggiungi gruppo"; -"DUPLICATE_ENTRY" = "Duplica elemento"; -"DUPLICATE_ENTRY_WITH_OPTIONS" = "Duplica elemento…"; -"COPY_ENTRY" = "Copia elemento"; -"COPY_GROUP" = "Copia gruppo"; -"ADD_TREMPLATE_ENTRY" = "Aggiungi Modello"; -"DELETE_GROUP" = "Elimina Gruppo"; -"DELETE_ENTRY" = "Elimina elemento"; -"EDIT_TEMPLATE_GROUP" = "Modifica Gruppo Modello"; -"EMPTY_TRASH" = "Svuota Cestino"; -"MOVE_ENTRY" = "Sposta Elemento"; -"MOVE_GROUP" = "Sposta Gruppo"; -"NEW_ENTRY_WITH_TEMPLATE_%@" = "Crea Elemento con Template %@"; -"NEW_DATABASE" = "Database"; -"OPEN_URL" = "Apri URL"; -"PERFORM_AUTOTYPE_FOR_ENTRY" = "Esegui Autotype"; -"PREVIEW" = "Anteprima"; -"PASSWORD_GENERATOR_SET_DEFAULTS" = "Imposta Default"; -"PASSWORD_GENERATOR_RESET_ENTRY_DEFAULTS" = "Reimposta"; -"TRASH_ENTRY" = "Cestina Elemento"; -"TRASH_GROUP" = "Cestina Gruppo"; -"SHOW_HISTORY" = "SHOW_HISTORY"; - -/* - Search - */ -"CLEAR_RECENT_SEARCHES" = "Svuota ricerche recenti"; -"RECENT_SEARCHES" = "Ricerche recenti"; -"SEARCH_DUPLICATE_PASSWORDS" = "Password Duplicate"; -"SEARCH_EXPIRED_ENTRIES" = "Scaduto"; -"SELECT_FILTER_WITH_DOTS" = "Seleziona…"; +/* Message text in the autotype selection window. Placeholder is %1 - windowTitle */ +"AUTOTYPE_CANDIDATE_SELECTION_WINDOW_MESSAGE_%@" = "Ci sono più risultati per la finestra attuale: %@. Prego scegliere quale deve essere utilizzata."; -/* - Direct Translations - */ -"ACTION" = "Azione"; -"ATTACHMENTS" = "Allegato"; +/* Window title for the stand-alone password creator window */ +"AUTOTYPE_DOCTOR_RESULTS_WINDOW_TITLE" = "Dottore Autotype"; + +/* Inherit autotype settings menu item */ +"AUTOTYPE_INHERIT" = "Eredita Impostazioni Autotype"; + +/* Message displayed to the user to unlock the database to perform global autotype */ +"AUTOTYPE_MESSAGE_UNLOCK_DATABASE" = "Prego sbloccare il database per utilizzare Autotype Globale"; + +/* Disable autotype menu item */ +"AUTOTYPE_NO" = "Disabilita Autotype"; + +/* Notification: Autotype failed, MacPass has not enough permissions to perform autotype */ +"AUTOTYPE_NOTIFICATION_MACPASS_IS_MISSING_PERMISSIONS" = "MacPass non possiede tutti i permessi necessari per eseguire Autotype."; + +/* Notification: Autotype failed, no documents are open */ +"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Prego aprire un database per utilizzare Autotype Globale!"; + +/* Noticiation: Autotype failed to find a match for %@ (string placeholder) */ +"AUTOTYPE_OVERLAY_NO_MATCH_FOR_%@" = "Nessuna corrispondenza %@!"; + +/* Notification: Autotype found a single match for %@ (string placeholder). */ +"AUTOTYPE_OVERLAY_SINGLE_MATCH_FOR_%@" = "Trovato corrispondenza per %@!"; + +/* Status label when no issue were found in accessibilty */ +"AUTOTYPE_STATUS_ACCESSIBILTY_PERMISSIONS_OK" = "MacPass ha il permesso per controllare il suo computer (Accessibilità)"; + +/* Status MacPass has no accessibilty permissions */ +"AUTOTYPE_STATUS_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass non ha il permesso per controllare il suo computer (Accessibilità)"; + +/* Status MacPass has no screen recording permissions */ +"AUTOTYPE_STATUS_NO_SCREEN_RECORDING_PERMISSIONS" = "MacPass non ha il permesso per registrare lo schermo"; + +/* Status lable when no issue were found in screen recording permissions */ +"AUTOTYPE_STATUS_SCREEN_RECORDING_PERMISSIONS_OK" = "MacPass ha il permesso per registrare lo schermo"; + +/* Notficication: Autotype timed out */ +"AUTOTYPE_TIMED_OUT" = "È scaduto il tempo per Autotype."; + +/* Enable autotype menu item */ +"AUTOTYPE_YES" = "Abilita Autotype"; + +/* Cancel */ "CANCEL" = "Annulla"; -"DATABASE" = "Database"; -"DELETE" = "Elimina"; -"EDIT" = "Modifica"; -"GROUP" = "Gruppo"; -"INSPECTOR" = "Inspector"; -"LOCK" = "Blocca"; -"MODIFIED" = "Modificato"; -"NONE" = "Nessun"; -"NOTES" = "Note"; -"PASSWORD" = "Password"; -"SAVE" = "Salva"; -"SAVE_WITH_DOTS" = "Salva…"; -"SEARCH" = "Cerca"; -"TITLE" = "Titolo"; -"URL" = "URL"; -"USERNAME" = "Nome Utente"; -"WINDOWS" = "Windows"; +/* Menu item in the database outline context menu to change the database name */ +"CHANGE_DATABASE_NAME" = "Rinomina Database"; + +/* Button to postpone the password change */ +"CHANGE_LATER" = "Cambiare più tardi"; + +/* Button to show the password change dialog + Single button to show the password change dialog */ +"CHANGE_PASSWORD_WITH_DOTS" = "Cambiare Password…"; -"CHANGE_DATABASE_NAME" = "Cambia Nome Database"; -"CHANGE_TRASH_GROUP" = "Cambia Gruppo Cestino"; +/* Menu item in the database outline context menu to change the trash group */ +"CHANGE_TRASH_GROUP" = "Cambiare Gruppo Cestino"; -/* Field nam that was copied to the pasteboard */ +/* Button title in the key file selection dialog for selecting a key */ +"CHOOSE_FILE_BUTTON_TITLE" = "Aprire"; + +/* Clear Autotype Button */ +"CLEAR_AUTOTYPE" = "Elimina Autotype"; + +/* Menu to clear recent searches */ +"CLEAR_RECENT_SEARCHES" = "Svuota ricerche recenti"; + +/* String displayed at dock badge when clipboard is about to be cleared */ +"CLEARING_PASTEBOARD" = "Cancellato"; + +/* Field name that was copied to the pasteboard */ "COPIED_FIELD_%@" = "Copiato %@"; + +/* Context menu that copies reference to note */ +"COPIED_NOTES_REFERENCE" = "Copiato riferimento agli appunti!"; + +/* Password was copied to the pasteboard */ "COPIED_PASSWORD" = "Password copiata!"; -"COPIED_URL" = "URL copiata!"; + +/* Context menu that copies reference to password */ +"COPIED_PASSWORD_REFERENCE" = "Copiato riferimento alla password!"; + +/* Context menu that copies reference to title */ +"COPIED_TITLE_REFERENCE" = "Copiato riferimento al titolo!"; + +/* URL was copied to the pasteboard */ +"COPIED_URL" = "URL copiato!"; + +/* Context menu that copies reference to URL */ +"COPIED_URL_REFERENCE" = "Copiato riferimento al URL!"; + +/* Username was copied to the pasteboard */ "COPIED_USERNAME" = "Nome utente copiato!"; -"COPY_CUSTOM_FIELDS" = "Copia Campo Personalizzato"; + +/* Context menu that copies reference to username */ +"COPIED_USERNAME_REFERENCE" = "Copiato riferimento al nome utente!"; + +/* Submenu to copy attributes as reference */ +"COPY_AS_REFERENCE" = "Copiare riferimento a…"; + +/* Context menu sub-menu to copy attributes as reference */ +"COPY_AS_REFERENCE_MENU" = "Menu Copia come Riferimento"; + +/* Submenu to Copy custom fields */ +"COPY_CUSTOM_FIELDS" = "Copia Campi Personalizzati"; + +/* Context menu sub-menu to copy custom fields to clipboard */ +"COPY_CUSTOM_FIELDS_MENU" = "Copia Campo Personalizzato…"; + +/* Action name when an entry was moved + Action title for copying an entry via drag and drop */ +"COPY_ENTRY" = "Copia Voce"; + +/* Mask for title to copy field value */ "COPY_FIELD_%@" = "Copia %@"; + +/* Action title for copying a group via drag and drop */ +"COPY_GROUP" = "Copia Gruppo"; + +/* Context menu that copies reference to note */ +"COPY_NOTES_REFERENCE" = "Appunti"; + +/* Menu item to copy the password of an entry + Toolbar item copy password */ "COPY_PASSWORD" = "Copia Password"; + +/* Context menu that copies reference to password */ +"COPY_PASSWORD_REFERENCE" = "Password"; + +/* Context menu that copies reference to title */ +"COPY_TITLE_REFERENCE" = "Titolo"; + +/* Menu item to copy the URL of an entry */ "COPY_URL" = "Copia URL"; -"COPY_USERNAME" = "Copia Nome Utente"; -/* Dock Badge */ -"CLEARING_PASTEBOARD" = "…"; +/* Context menu that copies reference to URL */ +"COPY_URL_REFERENCE" = "URL"; -/* Group Inspector */ -/* Autotype Combobox */ -"AUTOTYPE_NO" = "Disabilita Autotype"; -"AUTOTYPE_YES" = "Abilita Autotype"; -"AUTOTYPE_INHERIT" = "Eredita Impostazioni Autotype"; +/* Menu item to copy the username of an entry + Toolbar item copy username */ +"COPY_USERNAME" = "Copia nome utente"; -/* Search Combobox */ -"SEARCH_INHERIT" = "Eredita Impostazioni Ricerca"; -"SEARCH_YES" = "Includi nella Ricerca"; -"SEARCH_NO" = "Escludi dalla Ricerca"; +/* Context menu that copies reference to username */ +"COPY_USERNAME_REFERENCE" = "Nome utente"; -/* - Date/Time Displays - */ -/* Created at template string. %@ is replaced by localized date and time */ -"CREATED_AT_%@" = "Creato: %@"; -/* Modifed at template string. %@ is replaced by localized date and time */ -"MODIFED_AT_%@" = "Modificato: %@"; +/* Custom attribute reference item */ +"CUSTOM_ATTRIBUTE" = "Attributo Personalizzato"; -"EXPIRES_AT_DATE_%@" = "Scade: %@"; -"NO_EXPIRE_DATE_SET" = "Nessuna scadenza."; +/* Title for menu for custom search filters */ +"CUSTOM_SEARCH_FILTER_MENU" = "Filtro di ricerca personalizzato…"; + +/* Default display name for KDB databases */ +"DATABASE" = "Database"; + +/* Default Browser */ +"DEFAULT_BROWSER" = "Browser Predefinito"; -/* - Defaults for new objects - */ +/* Default Titel for new Custom-Fields */ "DEFAULT_CUSTOM_FIELD_TITLE" = "Personalizzato"; + +/* Default Value for new Custom-Fields */ "DEFAULT_CUSTOM_FIELD_VALUE" = "Valore"; -"DEFAULT_ENTRY_TITLE" = "Nuovo Elemento"; + +/* Title for a newly created entry */ +"DEFAULT_ENTRY_TITLE" = "Nuova Voce"; + +/* Title for a newly created group */ "DEFAULT_GROUP_NAME" = "Nuovo Gruppo"; + +/* Default window title for a new window association */ "DEFAULT_WINDOW_TITLE" = "Titolo Finestra"; -/* Settings */ -"GENERAL_SETTINGS" = "Generale"; +/* Menu item in the database outline context menu to delete the node from the trash + Menu item to delete an entry + Menu item to delete the selected attached file + Menu item to delete the selected custom icon + Toolbar item delete item */ +"DELETE" = "Elimina"; + +/* Delete Entry */ +"DELETE_ENTRY" = "Elimina Voce"; + +/* Delete Group */ +"DELETE_GROUP" = "Elimina Gruppo"; + +/* Empty Trash */ +"DELETE_TRASHED_ENTRY" = "Elimina Voce nel Cestino"; + +/* Empty Trash */ +"DELETE_TRASHED_GROUP" = "Elimina Gruppo Cestino"; + +/* Action title for copying an entry via drag and drop to another database + Action title for moving an entry via drag and drop */ +"DRAG_ENTRY" = "Trascina Voce"; + +/* Action title for moving a group via drag and drop + Actiontitle for copying groups via drag and drop to antother database */ +"DRAG_GROUP" = "Trascina Gruppo"; + +/* Action name for duplicating entries */ +"DUPLICATE_ENTRIES_ACTION_NAME" = "Duplica Voci"; + +/* Menu item to directly diplicate an entry */ +"DUPLICATE_ENTRY" = "Duplica Voce"; + +/* Menu item to duplicate an entry with options how to duplicate. Will present a dialog. */ +"DUPLICATE_ENTRY_WITH_OPTIONS" = "Duplica Voce…"; + +/* Menu item to directly diplicate a group */ +"DUPLICATE_GROUP" = "Duplica Gruppo"; + +/* Action name for duplicating groups */ +"DUPLICATE_GROUPS_ACTION_NAME" = "Duplica Gruppo"; + +/* Menu item in the database outline context menu to change the template group + Menu item on the add entry context menu to edit template groups */ +"EDIT_TEMPLATE_GROUP" = "Modifica Gruppo Modello"; + +/* Empty Trash + Menu item in the database outline context menu to empyt the trash + Menu item in the database outline to empty the trash + Menu item to empty the trash */ +"EMPTY_TRASH" = "Svuota Cestino"; + +/* Informative text for the enforce password change alert */ +"ENFORCE_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Non sarà possibile salvare il database fintanto che la password e/o la chiave sono cambiate."; + +/* Message text for the enforce password change alert */ +"ENFORCE_PASSWORD_CHANGE_ALERT_TITLE" = "La password del database è scaduta!"; + +/* Group row for entry attributes */ +"ENTRY_CUSTOM_ATTRIBUTES" = "Attributi Personalizzati"; + +/* Group row for entry attributes */ +"ENTRY_DEFAULT_ATTRIBUTES" = "Attributi Predefiniti"; + +/* Tooltip displayed on the index header cell */ +"ENTRY_INDEX_COLUMN_TOOLTIP" = "Colonna da ordinare per ordine definito dall'utente"; + +/* Keyfile not valid */ +"ERROR_INVALID_KEYFILE" = "Chiave invalida!"; + +/* Error description given when adding an invalid plugin */ +"ERROR_INVALID_PLUGIN" = "Plugin invalido"; + +/* Error description for missing accessibility permissions */ +"ERROR_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass non ha il permesso per controllare il suo computer (Accessibilità)"; + +/* Error description for missing screen recording permissions */ +"ERROR_NO_PERMISSION_TO_RECORD_SCREEN" = "MacPass non ha il permesso per registrare lo schermo"; + +/* Passwords do not match */ +"ERROR_PASSWORD_MISSMATCH" = "Le password non corrispondono!"; + +/* Passwords do not match, keyfile is invalid */ +"ERROR_PASSWORD_MISSMATCH_INVALID_KEYFILE" = "Le password non corrispondono e la chiave non é valida!"; + +/* Recommend/Enforce key change intervall format */ +"EVERY_%ld_DAYS" = "Ogni %ld giorni"; + +/* Format to returen the date an item expires. Includes %@ placehoder for date */ +"EXPIRES_AT_DATE_%@" = "Scade: %@"; + +/* The master key was changed by an external program! */ +"EXTERN_CHANGE_OF_MASTERKEY" = "La chiave principale è stata cambiata da un'altro programma"; + +/* External file change strategy option: ask what to do */ +"FILE_CHANGE_STRATEGY_ASK" = "Chiedere"; + +/* External file change strategy option: Keep local file an ignore external changes */ +"FILE_CHANGE_STRATEGY_KEEP_MINE" = "Tenere La Mia Versione e Scartare Altri Cambiamenti"; + +/* Button in dialog to merge changes into file! + External file change strategy option: Merge external changes into local file. */ +"FILE_CHANGE_STRATEGY_MERGE" = "Unire Cambiamenti"; + +/* External file change strategy option: Use the changed file and discard local changes */ +"FILE_CHANGE_STRATEGY_USE_OTHER" = "Caricare la Versione Cambiata e Scartare la Mia"; + +/* Informative text displayed when the file was change from another application */ +"FILE_CHANGED_BY_OTHERS_INFO_TEXT" = "Il file in uso è diverso da quello sul disco, come vuole procedere?"; + +/* Message displayed when an open file was changed from another application */ +"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "Il file del database è stato modificato!"; + +/* Error while reopening last known documents */ +"FILE_OPEN_ERROR" = "Errore durante l'apertura del file."; + +/* General Settings Label */ +"GENERAL_PREFERENCES" = "Generale"; + +/* Group column title */ +"GROUP" = "Gruppo"; + +/* History count column title + Menu item to toggle display of history count column in entry table */ +"HISTORY" = "Cronologia"; + +/* Imports a dragged URL for a new entry */ +"IMPORT_URL" = "Carica URL"; + +/* Toolbar item toggle inspector */ +"INSPECTOR" = "Ispettore"; + +/* Label for the integration settings tab */ "INTEGRATION_SETTINGS" = "Integrazione"; -"UPDATE_SETTINGS" = "Aggiornamenti"; -"WORKFLOW_SETTINGS" = "Flusso di Lavoro"; -"DEFAULT_BROWSER" = "Browser Predefinito"; -"OTHER_BROWSER" = "Seleziona Browser…"; -"PLUGIN_SETTINGS" = "Plugins"; -/* Feature not supported in Version */ +/* Just now */ +"JUST_NOW" = "Ora"; + +/* Feature only available in kdbx databases */ "KDBX_ONLY_FEATURE" = "Funzionalità non supportata da database KDB"; -/* Template */ +/* Button in dialog to ignore the changes to an open file! */ +"KEEP_MINE_DISCARD_OTHER" = "Tenere la Mia Versione, Scartare l'Altra"; + +/* Button in dialog to reopen the file! */ +"KEEP_OTHER_DISCARD_MINE" = "Tenere l'Altra Versione, Scartare la Mia"; + +/* Do not install the plugin */ +"KEEP_PLUGIN" = "Tenere Plugin"; + +/* Do not restart MacPass */ +"KEEP_RUNNING" = "Non Riavviare"; + +/* last week */ +"LAST_WEEK" = "Settimana scorsa"; + +/* Toolbar item to Lock the database */ +"LOCK" = "Bloccare"; + +/* Message in the open panel to add attachments to an entry */ +"MESSAGE_ADD_ATTACHMENT_OPEN_PANEL" = "Scegliere il documento da allegare"; + +/* Message in the add plugin open panel */ +"MESSAGE_ADD_PLUGIN_OPEN_PANEL" = "Scegliere il plugin da installare"; + +/* Message in the open panel to import an XML file */ +"MESSAGE_XML_OPEN_PANEL" = "Scegliere il documento XML da caricare"; + +/* Menu item to toggle display of modified date column in entry table + Modification date column title */ +"MODIFIED" = "Modificato"; + +/* Action name when an entry was moved */ +"MOVE_ENTRY" = "Sposta Voce"; + +/* Menu displayed as popup selection for search options when multiple items are selected */ +"MULTIPLE_FILTERS_ACTIVE_WITH_DOTS" = "Più di uno…"; + +/* Name for a newly created Database */ +"NEW_DATABASE" = "Database"; + +/* Action name for a newly created entry + Menu item to create a new entry + Toolbar item new entry */ +"NEW_ENTRY" = "Nuova Voce"; + +/* Submenu to add an entry via template */ +"NEW_ENTRY_WITH_TEMPLATE_%@" = "da %@"; + +/* Action name for a newly created group + Menu item to create a new group + Toolbar item new group */ +"NEW_GROUP" = "Nuovo Gruppo"; + +/* Expiration date format, when item does not expire */ +"NO_EXPIRE_DATE_SET" = "Non scade mai."; + +/* Menu item to reset the template groups */ "NO_TEMPLATE_GROUP" = "Nessun Template"; + +/* Menu item added to show that no templates are defined */ "NO_TEMPLATES" = "Nessun Template Trovato"; -/* Kefile */ -"SAVE_KEYFILE" = "Salva chiave"; +/* Null placeholder for item input field + Placeholder text for input fields if no entry or group is selected */ +"NONE" = "Nessuno"; -/* Autoype */ -/* Candiate dialog */ -"SELECT_AUTOTYPE_CANDIDATE" = "Seleziona candidato!"; -"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "AUTOTYPE_OVERLAY_NO_DOCUMENTS"; -"AUTOTYPE_OVERLAY_NO_MATCH_FOR_%@" = "Nessuna corrispondenza %@!"; -"AUTOTYPE_OVERLAY_SINGLE_MATCH" = "Corrispondenza!"; +/* Displayed name when notes or part of notes was copied + Menu item to toggle display of notes column in entry table + Notes column title + Notes reference item */ +"NOTES" = "Appunti"; -/* Alert Dialogs */ -"WARNING_ON_EMPTY_TRASH_DESCRIPTION" = "Svuotare il cestino é definitivo."; -"WARNING_ON_EMPTY_TRASH_TITLE" = "Svuota il cestino?"; -"WARNING_ON_LOSSY_SAVE" = "Salvare in formato KDB comporterà una perdita di dati."; -"WARNING_ON_LOSSY_SAVE_DESCRIPTION" = "Il file KDB non può contenere tutte le informazioni."; -"CHANGE_FORMAT" = "Cambia formato a KDBX"; +/* Ok Button to dismiss disabled updates alert */ +"OK" = "OK"; -"ENFORCE_PASSWORD_CHANGE_ALERT_TITLE" = "La password del database é scaduta!"; -"ENFORCE_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Non sarà possibile salvare il database fintanto che la password e/o la chiave sono cambiate."; +/* preset to expire after one montch from now */ +"ONE_MONTH" = "in un mese"; -"RECOMMEND_PASSWORD_CHANGE_ALERT_TITLE" = "Cambiare la password del database!"; -"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "É raccomandato cambiare la password e/o la chiave."; -"CHANGE_PASSWORD_WITH_DOTS" = "Cambia Password…"; +/* preset to expire after one week from now */ +"ONE_WEEK" = "in una settimana"; -"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"; +/* one week ago */ +"ONE_WEEK_AGO" = "Una settimana fa"; -/* Message displayed when an open file was changed from another application */ -"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "Il file del database é stato modificato!"; -/* Informative text displayed when the file was change form another application */ -"FILE_CHANGED_BY_OTHERS_INFO_TEXT" = "Il file in uso é diverso da quello sul disco, come vuoi procedere?"; -/* Button to ignore the changes */ -"KEEP_MINE" = "Mantieni la versione corrente e ignora le modifiche."; -/* Merge changes into file! */ -"MERGE_CHANGES" = "Merge changes!"; - -/* Password Input Messages, Errors and Warning */ -"PASSWORD_INPUT_NO_PASSWORD" = "Nessuna Password"; +/* preset to expire after one year from now */ +"ONE_YEAR" = "in un anno"; + +/* Open button in the open panel to add attachments to an entry */ +"OPEN_BUTTON_ADD_ATTACHMENT_OPEN_PANEL" = "Allega"; + +/* Open button in the add plugin open panel */ +"OPEN_BUTTON_ADD_PLUGIN_OPEN_PANEL" = "Installa"; + +/* Open button in the open panel to import an XML file */ +"OPEN_BUTTON_IMPORT_XML_OPEN_PANEL" = "Carica"; + +/* Action button in Notification to open a document */ +"OPEN_DOCUMENT" = "Apri Documento"; + +/* Menu item to open the URL with the default application */ +"OPEN_URL" = "Apri URL"; + +/* Select Browser */ +"OTHER_BROWSER" = "Selezionare Browser…"; + +/* No comment provided by engineer. */ +"OUTPUT_VALUE" = "Valore Uscita"; + +/* Menu item to toggle display of password column in entry table + Password column title + Password reference item */ +"PASSWORD" = "Password"; + +/* Window title for the stand-alone password creator window */ +"PASSWORD_CREATOR_WINDOW_TITLE" = "Generatore Password"; + +/* Button to reset the password defaults for a single entry */ +"PASSWORD_GENERATOR_RESET_ENTRY_DEFAULTS" = "Ripristina"; + +/* Button to set the defaults of the password generator */ +"PASSWORD_GENERATOR_SET_DEFAULTS" = "Imposta Defaults"; + +/* Placeholder for the password field to aks for password + Placeholder in the unlock-password input field if password is enabled */ "PASSWORD_INPUT_ENTER_PASSWORD" = "Inserisci Password"; + +/* Placeholder for the password input field if passwords are disabled + Placeholder for the repeat password input if passwords are disabled + Placeholder in the unlock-password input field if password is disabled */ +"PASSWORD_INPUT_NO_PASSWORD" = "Nessuna Password"; + +/* Placeholder for the repeat password field to aks for the repeated password */ "PASSWORD_INPUT_REPEAT_PASSWORD" = "Ripeti Password"; + +/* Menu item to perform autotype with the selected entry */ +"PERFORM_AUTOTYPE_FOR_ENTRY" = "Eseguire Autotype"; + +/* Info about how many character has to pick in pickchar dialog */ +"PICKCHAR_INFO_MESSAGE_PICK_CHARACTERS_%ld" = "Prego scegliere %ld caratteri"; + +/* Window displayed to the user to pick an amout of characters */ +"PICKCHAR_WINDOW_TITLE" = "Selezionamento Caratteri"; + +/* Count of picked characters in pickchars dialog if no limit is set */ +"PICKED_%ld_CHARACTERS" = "Selezionato %ld caratteri"; + +/* Window displayed to the user to pick an amout of characters */ +"PICKFIELD_WINDOW_TITLE" = "Selezionamento Campo"; + +/* Label for the button when a download is in progress! */ +"PLUGIN_BROWSER_ACTION_DOWNLOAD_IN_PROGRESS" = "Scaricando…"; + +/* Label for the button when a download did not succeed */ +"PLUGIN_BROWSER_ACTION_RETRY_FAILED_DOWNLOAD" = "Errore. Scaricare di nuovo."; + +/* Label for the button to show a downloaded file */ +"PLUGIN_BROWSER_ACTION_SHOW_DOWNLOADED_FILE" = "Mostra in Finder…"; + +/* Button to download the Plugin */ +"PLUGIN_BROWSER_DOWNLOAD_PLUGIN_BUTTON" = "Scarica"; + +/* Status for an up-to-date plugin in the plugin browser */ +"PLUGIN_BROWSER_LATEST_VERSION_INSTALLED" = "Installata la versione attuale"; + +/* Status for an outdated plugin version in the plugin browser */ +"PLUGIN_BROWSER_NEWER_VERSION_%@_AVAILABLE" = "Versiona più nuova (%@) disponibile."; + +/* Status for an uninstalled plugin in the plugin browser */ +"PLUGIN_BROWSER_PLUGIN_NOT_INSTALLED" = "Non installato"; + +/* Status for an unkonw plugin version in the plugin browser */ +"PLUGIN_BROWSER_UNKNOWN_PLUGIN_VERSION_INSTALLED_%@" = "Versione sconosciuta %@ installata"; + +/* Error for a plugin that is disabled. */ +"PLUGIN_ERROR_DISABLED_PLUGIN" = "Il plugin è disattivato dall'utente"; + +/* Plugin is not with this version of MacPass */ +"PLUGIN_ERROR_HOST_VERSION_NOT_SUPPORTED" = "Il plugin non è compatibile con questa versione di MacPass"; + +/* The plugin could not be initalized */ +"PLUGIN_ERROR_INTILIZATION_FAILED" = "Non è riuscito l'inizializzazione del plugin"; + +/* Error for a plugin that was not signed properly */ +"PLUGIN_ERROR_UNSECURE_PLUGIN" = "Il plugin non è correttamente firmato"; + +/* Plugin specifies the wrong principal class! */ +"PLUGIN_ERROR_WRONG_PRINCIPAL_CLASS" = "Classe principale inaspettata nel plugin"; + +/* name for disabled unloaded plugin */ +"PLUGIN_NAME_DISABLED_%@" = "🚫 %@"; + +/* Name for unloaded plugin with errors */ +"PLUGIN_NAME_ERROR_%@" = "⚠️ %@"; + +/* Label for plugin settings tab */ +"PLUGIN_SETTINGS" = "Plugin"; + +/* Generic message displayed if no details are know why a plugin was not loaded. */ +"PLUGIN_SETTINGS_GENERIC_ERROR_MESSAGE" = "Non è riuscito il caricamento del plugin."; + +/* Plugin version. Include a %@ placeholder for version string */ +"PLUGIN_VERSION_%@" = "Versione: %@"; + +/* Menu item to preview the selected attached file. */ +"PREVIEW" = "Anteprima"; + +/* Recent searches menu item */ +"RECENT_SEARCHES" = "Ricerche recenti"; + +/* Informative text for the recommend password change alert */ +"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "È consigliato cambiare la password e/o la chiave."; + +/* Message text for the recommend password change alert */ +"RECOMMEND_PASSWORD_CHANGE_ALERT_TITLE" = "Cambiare la password del database!"; + +/* Restart */ +"RESTART" = "Riavviare"; + +/* Action to restore an Entry to a previous state of its history */ +"RESTORE_HISTORY_ENTRY" = "Ripristina Voce Cronologia"; + +/* Menu item to save the selected attached file. + Save file menu item title when save will just save the file */ +"SAVE" = "Salva"; + +/* Button title to save the generated key file */ +"SAVE_KEYFILE" = "Salva Chiave"; + +/* Save file menu item title when save will prompt for a location to save or ask for a password/key */ +"SAVE_WITH_DOTS" = "Salva…"; + +/* Search input in Toolbar */ +"SEARCH" = "Cerca"; + +/* Search option: Find duplicate passwords */ +"SEARCH_DUPLICATE_PASSWORDS" = "Password Duplicate"; + +/* Search option: Find expired entries */ +"SEARCH_EXPIRED_ENTRIES" = "Scaduto"; + +/* Inherit search settings menu item */ +"SEARCH_INHERIT" = "Eredita Impostazioni Ricerca"; + +/* Disable search menu item */ +"SEARCH_NO" = "Escludi dalla Ricerca"; + +/* No comment provided by engineer. */ +"SEARCH_VALUE" = "Risultato della Ricerca"; + +/* Enable search menu item */ +"SEARCH_YES" = "Includi nella Ricerca"; + +/* Menu item title for the expiry preset selection menu in the date picker */ +"SELECT_DATE_PRESET" = "Usa data predefinita…"; + +/* Message on the open panel for selecting which browser to use for opening URLs */ +"SELECT_DEFAULT_BROWSER_OPEN_PANEL_MESSAGE" = "Selezionare il browser con quale aprire il URL."; + +/* Label for the select browser button on the open panel for selecting which browser to use for opening URLs */ +"SELECT_DEFAULT_BROWSER_OPEN_PANEL_SELECT_BUTTON" = "Seleziona"; + +/* Message for the dialog to open a file for merge */ +"SELECT_FILE_TO_MERGE" = "Selezionare il documento da unire"; + +/* Menu displayed as popup selection for search options if no filter is selected */ +"SELECT_FILTER_WITH_DOTS" = "Seleziona…"; + +/* Checkbox in dialog to set the selection as default file change strategy! */ +"SET_AS_DEFAULT_FILE_CHANGE_STRATEGY" = "Utilizzare questo metodo come il default. Questo può essere modificato a qualsiasi punto nelle impostazioni."; + +/* Action button in Notification to show the Autotype Doctor */ +"SHOW_AUTOTYPE_DOCTOR" = "Mostra Dottore Autotype"; + +/* Menu item to show the entries group in the outline view */ +"SHOW_GROUP_IN_OUTLINE" = "Mostra Gruppo nello Schema"; + +/* Menu item to show the history of the selected entry + Toolbar item to toggle history display */ +"SHOW_HISTORY" = "Mostra Cronologia"; + +/* Displayed name when title field was copied + Menu item to toggle display of title column in entry table + Title column title + Title reference item */ +"TITLE" = "Titolo"; + +/* preset to expire tomorrow */ +"TOMORROW" = "Domani"; + +/* Toolbar item to perform autotype */ +"TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "Autotype"; + +/* Touchbar button label for choosing the keyfile */ +"TOUCHBAR_CHOOSE_KEYFILE" = "Seleziona Chiave"; + +/* Touchbar button label for copying the password */ +"TOUCHBAR_COPY_PASSWORD" = "Copia Password"; + +/* Touchbar button label for copying the username */ +"TOUCHBAR_COPY_USERNAME" = "Copia Nome Utente"; + +/* Touchbar button label for deleting elements */ +"TOUCHBAR_DELETE" = "Elimina"; + +/* Touchbar button label for opening the popover to edit */ +"TOUCHBAR_EDIT" = "Modifica"; + +/* Touchbar button label for locking the database */ +"TOUCHBAR_LOCK_DATABASE" = "Bloccare Database"; + +/* Touchbar button label for creating a new item */ +"TOUCHBAR_NEW_ENTRY" = "Nuova Voce"; + +/* Touchbar button label for creating a new group */ +"TOUCHBAR_NEW_GROUP" = "Nuovo Gruppo"; + +/* Touchbar button label for performing autotype */ +"TOUCHBAR_PERFORM_AUTOTYPE" = "Esegui Autotype"; + +/* Touchbar button label for searching the database */ +"TOUCHBAR_SEARCH" = "Ricerca nel Database"; + +/* Touchbar button label for showing the password */ +"TOUCHBAR_SHOW_PASSWORD" = "Mostra Password"; + +/* Touchbar button label for unlocking the database */ +"TOUCHBAR_UNLOCK_DATABASE" = "Sbloccare Database"; + +/* Move Entry to Trash */ +"TRASH_ENTRY" = "Cestinare Voce"; + +/* Move Group to Trash */ +"TRASH_GROUP" = "Cestinare il Gruppo"; + +/* Uninstall plugin */ +"UNINSTALL" = "Deinstalla"; + +/* No comment provided by engineer. */ +"UNKNOWN_FILE_VERSION" = "Versione database sconosciuta"; + +/* Unknown database format. */ +"UNKNOWN_FORMAT" = "Formato documento sconosciuto"; + +/* Database format is unknown since the file is not saved yet */ +"UNKNOWN_FORMAT_FILE_NOT_SAVED_YET" = "Sconosciuto, il database non è ancora stato salvato"; + +/* No comment provided by engineer. */ +"UNKNOWN_TOOLBAR_ITEM" = "Elemento Toolbar Sconosciuto"; + +/* Update Settings Label */ +"UPDATE_PREFERENCES" = "Aggiornamenti"; + +/* Menu item to toggle display of url column in entry table + Submenu with options what to do with the URL of an entry + Url column title + URL reference item */ +"URL" = "URL"; + +/* Menu item to toggle display of username column in entry table + Username column title + Username reference item */ +"USERNAME" = "Nome Utente"; + +/* Displayed name when uuid field was copied + UUID reference item */ +"UUID" = "UUID"; + +/* No Key or Password */ "WARNING_NO_PASSWORD_OR_KEYFILE" = "Nessuna password o chiave fornita!"; -"ERROR_PASSWORD_MISSMATCH_INVALID_KEYFILE" = "Le password non corrispondono e la chiave non é valida!"; -"ERROR_PASSWORD_MISSMATCH" = "Le password non corrispondono!"; -"ERROR_INVALID_KEYFILE" = "Chiave non valida!"; -/* Misc */ -"DOCUMENT_AUTOTYPE_CORRUPTION_WARNING" = "Eseguire Fix Autotype..."; -"FILE_OPEN_ERROR" = "Errore durante l'apertura del file."; +/* Informative Text displayed when clearing the Trash */ +"WARNING_ON_DELETE_TRASHED_NODE_DESCRIPTION" = "L'elemento/Gli elemnti nel cestino verranno eliminati!"; + +/* Message text for the alert displayed when deleting a node */ +"WARNING_ON_DELETE_TRASHED_NODE_TITLE" = "Eliminando Elemento nel Cestino"; + +/* Informative Text displayed when clearing the Trash */ +"WARNING_ON_EMPTY_TRASH_DESCRIPTION" = "Svuotare il cestino é definitivo."; + +/* Message text for the alert displayed when clearing the Trash */ +"WARNING_ON_EMPTY_TRASH_TITLE" = "Svuota cestino?"; + +/* No comment provided by engineer. */ +"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET" = "Non è impostata nessuna password o chiave."; + +/* No comment provided by engineer. */ +"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET_SUGGESTION" = "Prego impostare una password e/o una chiave per questo database. Annullare questa operatione annullerà tutti i cambiamenti e bloccherà il documento"; + +/* Label for the workflow settings tab */ +"WORKFLOW_SETTINGS" = "Flusso di Lavoro"; + +/* Yesterday */ +"YESTERDAY" = "Ieri"; + diff --git a/MacPass/it.lproj/OpenPanelAccessoryView.strings b/MacPass/it.lproj/OpenPanelAccessoryView.strings new file mode 100644 index 000000000..b2ed27281 --- /dev/null +++ b/MacPass/it.lproj/OpenPanelAccessoryView.strings @@ -0,0 +1,6 @@ + +/* Class = "NSButtonCell"; title = "Show hidden files"; ObjectID = "FfY-KA-8IC"; */ +"FfY-KA-8IC.title" = "Mostra documenti nascosti"; + +/* Class = "NSButtonCell"; title = "Allow all files"; ObjectID = "tvV-1s-Be3"; */ +"tvV-1s-Be3.title" = "Permetti tutti i documenti"; diff --git a/MacPass/it.lproj/PasswordInputView.strings b/MacPass/it.lproj/PasswordInputView.strings index de7bd0b4a..a2a6ab594 100644 --- a/MacPass/it.lproj/PasswordInputView.strings +++ b/MacPass/it.lproj/PasswordInputView.strings @@ -3,7 +3,7 @@ "3.title" = "Sblocca"; /* Class = "NSTextFieldCell"; title = "Keyfile"; ObjectID = "18"; */ -"18.title" = "File chiave"; +"18.title" = "Documento chiave"; /* Class = "NSTextFieldCell"; title = "Wrong password!"; ObjectID = "269"; */ "269.title" = "Password errata!"; diff --git a/MacPass/en.lproj/PickcharsView.strings b/MacPass/it.lproj/PickcharsView.strings similarity index 90% rename from MacPass/en.lproj/PickcharsView.strings rename to MacPass/it.lproj/PickcharsView.strings index ccbcc0be2..3a3916815 100644 --- a/MacPass/en.lproj/PickcharsView.strings +++ b/MacPass/it.lproj/PickcharsView.strings @@ -1,8 +1,9 @@ + /* Class = "NSButtonCell"; title = "Submit"; ObjectID = "8vP-Ka-vsA"; */ -"8vP-Ka-vsA.title" = "Submit"; +"8vP-Ka-vsA.title" = "Seleziona"; /* Class = "NSButtonCell"; title = "Reset"; ObjectID = "Emo-pg-Mfe"; */ -"Emo-pg-Mfe.title" = "Reset"; +"Emo-pg-Mfe.title" = "Ripristina"; /* Class = "NSTextFieldCell"; title = "StatusLabel"; ObjectID = "M3h-q8-FLO"; */ "M3h-q8-FLO.title" = "StatusLabel"; @@ -15,4 +16,3 @@ /* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "v3T-2f-yWm"; */ "v3T-2f-yWm.title" = "Table View Cell"; - diff --git a/MacPass/it.lproj/PickfieldView.strings b/MacPass/it.lproj/PickfieldView.strings new file mode 100644 index 000000000..4e732609b --- /dev/null +++ b/MacPass/it.lproj/PickfieldView.strings @@ -0,0 +1,24 @@ + +/* Class = "NSTableColumn"; headerCell.title = "Field"; ObjectID = "0H9-DW-Jyj"; */ +"0H9-DW-Jyj.headerCell.title" = "Campo"; + +/* Class = "NSButtonCell"; title = "Select"; ObjectID = "6Wi-9i-Tcb"; */ +"6Wi-9i-Tcb.title" = "Seleziona"; + +/* Class = "NSTextFieldCell"; title = "Please pick a field value to be inserted"; ObjectID = "aJS-22-6Va"; */ +"aJS-22-6Va.title" = "Prego selezionare un valore da inserire"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "e8U-mE-mZh"; */ +"e8U-mE-mZh.title" = "Table View Cell"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "fil-tT-GXX"; */ +"fil-tT-GXX.title" = "Text Cell"; + +/* Class = "NSTextFieldCell"; title = "Header View Cell"; ObjectID = "kTy-VO-Xlg"; */ +"kTy-VO-Xlg.title" = "Header View Cell"; + +/* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "rVo-ud-5fs"; */ +"rVo-ud-5fs.headerCell.title" = "Valore"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "z1F-Bi-PBg"; */ +"z1F-Bi-PBg.title" = "Text Cell"; diff --git a/MacPass/en.lproj/PluginDataView.strings b/MacPass/it.lproj/PluginDataView.strings similarity index 73% rename from MacPass/en.lproj/PluginDataView.strings rename to MacPass/it.lproj/PluginDataView.strings index 6ea66b5ea..60396e827 100644 --- a/MacPass/en.lproj/PluginDataView.strings +++ b/MacPass/it.lproj/PluginDataView.strings @@ -1,15 +1,15 @@ + /* Class = "NSButtonCell"; title = "Remove All"; ObjectID = "6hH-Hc-gf4"; */ -"6hH-Hc-gf4.title" = "Remove All"; +"6hH-Hc-gf4.title" = "Elimina Tutti"; + +/* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "MaV-TP-92X"; */ +"MaV-TP-92X.placeholderString" = "Titolo"; /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "bG1-Sb-Xyp"; */ "bG1-Sb-Xyp.title" = "Text Cell"; -/* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "MaV-TP-92X"; */ -"MaV-TP-92X.placeholderString" = "Title"; - /* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "mLw-O5-6D3"; */ -"mLw-O5-6D3.placeholderString" = "Value"; +"mLw-O5-6D3.placeholderString" = "Valore"; /* Class = "NSTextFieldCell"; title = "Plugin data"; ObjectID = "unO-bO-8v0"; */ -"unO-bO-8v0.title" = "Plugin data"; - +"unO-bO-8v0.title" = "Dati plugin"; diff --git a/MacPass/it.lproj/PluginPreferences.strings b/MacPass/it.lproj/PluginPreferences.strings index e95d240d4..233f086c6 100644 --- a/MacPass/it.lproj/PluginPreferences.strings +++ b/MacPass/it.lproj/PluginPreferences.strings @@ -1,9 +1,8 @@ - /* 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" = "Se abilitato, solo i plugin correttamente firmati saranno caricati. Tieni a mente che i plugin hanno pieno accesso ai tuoi dati! Ogni cambiamento ha effetto dopo un riavvio dell'applicazione."; /* Class = "NSButtonCell"; title = "Load unsecure Plugins"; ObjectID = "C4B-6z-ZqX"; */ -"C4B-6z-ZqX.title" = "Carica Plugin non sicuri"; +"C4B-6z-ZqX.title" = "Carica plugin non sicuri"; /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "STt-PQ-Szr"; */ "STt-PQ-Szr.title" = "Text Cell"; @@ -13,3 +12,18 @@ /* Class = "NSBox"; title = "Box"; ObjectID = "vBs-Ga-aq0"; */ "vBs-Ga-aq0.title" = "Box"; + +/* Class = "NSTextFieldCell"; title = "If enabled, a remote connection is established to macpassapp.org"; ObjectID = "i3S-9b-Bpf"; */ +"i3S-9b-Bpf.title" = "Se abilitato, viene stabilita una connessione a macpassapp.org"; + +/* Class = "NSTextFieldCell"; title = "Plugin Settings Info"; ObjectID = "OOr-SW-jZb"; */ +"OOr-SW-jZb.title" = "Informazioni riguardo impostazioni plugin"; + +/* Class = "NSButtonCell"; title = "Browse Available Plugins…"; ObjectID = "sqO-8H-n1y"; */ +"sqO-8H-n1y.title" = "Cerca plugin…"; + +/* Class = "NSButtonCell"; title = "Download current plugin information"; ObjectID = "uHR-uL-Ddm"; */ +"uHR-uL-Ddm.title" = "Scarica informazioni plugin attuali"; + +/* Class = "NSButtonCell"; title = "Force loading of incompatible Plugins"; ObjectID = "yak-fS-jtA"; */ +"yak-fS-jtA.title" = "Sforzare caricamento di plugin incompatibili"; diff --git a/MacPass/it.lproj/PluginRepositoryBrowserView.strings b/MacPass/it.lproj/PluginRepositoryBrowserView.strings new file mode 100644 index 000000000..6e3708c35 --- /dev/null +++ b/MacPass/it.lproj/PluginRepositoryBrowserView.strings @@ -0,0 +1,42 @@ + +/* Class = "NSButtonCell"; title = "Action"; ObjectID = "6jQ-Uk-uqD"; */ +"6jQ-Uk-uqD.title" = "Azione"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "DRt-Gz-DUm"; */ +"DRt-Gz-DUm.title" = "Table View Cell"; + +/* Class = "NSTextFieldCell"; title = "Updated at"; ObjectID = "DhR-ED-6gV"; */ +"DhR-ED-6gV.title" = "Aggiornato il"; + +/* Class = "NSButtonCell"; title = "Refresh"; ObjectID = "NZw-nO-lZ3"; */ +"NZw-nO-lZ3.title" = "Ricarica"; + +/* Class = "NSTableColumn"; headerCell.title = "Plugin"; ObjectID = "Nzo-rR-Hfx"; */ +"Nzo-rR-Hfx.headerCell.title" = "Plugin"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "Pl1-4o-5uY"; */ +"Pl1-4o-5uY.title" = "Text Cell"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "QPj-W1-su1"; */ +"QPj-W1-su1.title" = "Text Cell"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "ZIf-CU-gh7"; */ +"ZIf-CU-gh7.title" = "Table View Cell"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "cFE-KE-Xjx"; */ +"cFE-KE-Xjx.title" = "Text Cell"; + +/* Class = "NSTableColumn"; headerCell.title = "Status"; ObjectID = "g1Q-BS-vCR"; */ +"g1Q-BS-vCR.headerCell.title" = "Stato"; + +/* Class = "NSTableColumn"; headerCell.title = "Latest Version"; ObjectID = "hFg-AD-SqD"; */ +"hFg-AD-SqD.headerCell.title" = "Ultima Versione"; + +/* Class = "NSButtonCell"; title = "Done"; ObjectID = "j9a-fn-Pye"; */ +"j9a-fn-Pye.title" = "Fatto"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "nc9-mo-2e5"; */ +"nc9-mo-2e5.title" = "Table View Cell"; + +/* Class = "NSTextFieldCell"; title = "Last updated:"; ObjectID = "ntD-sJ-NRw"; */ +"ntD-sJ-NRw.title" = "Ultimo aggiornamento:"; diff --git a/MacPass/it.lproj/SavePanelAccessoryView.strings b/MacPass/it.lproj/SavePanelAccessoryView.strings new file mode 100644 index 000000000..e3678e61d --- /dev/null +++ b/MacPass/it.lproj/SavePanelAccessoryView.strings @@ -0,0 +1,15 @@ + +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "4"; */ +"4.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "KeePass 1 (KDB)"; ObjectID = "5"; */ +"5.title" = "KeePass 1 (KDB)"; + +/* Class = "NSMenuItem"; title = "KeePass 2 (KDBX)"; ObjectID = "6"; */ +"6.title" = "KeePass 2 (KDBX)"; + +/* Class = "NSTextFieldCell"; title = "Format:"; ObjectID = "12"; */ +"12.title" = "Formato:"; + +/* Class = "NSTextFieldCell"; title = "Not all Information inside your current database can be stored with this format."; ObjectID = "52"; */ +"52.title" = "Non tutte le informazioni nel database attuale possono essere salvati con questo formato."; diff --git a/MacPass/it.lproj/UpdateSettings.strings b/MacPass/it.lproj/UpdatePreferences.strings similarity index 100% rename from MacPass/it.lproj/UpdateSettings.strings rename to MacPass/it.lproj/UpdatePreferences.strings diff --git a/MacPass/it.lproj/WorkflowSettings.strings b/MacPass/it.lproj/WorkflowPreferences.strings similarity index 100% rename from MacPass/it.lproj/WorkflowSettings.strings rename to MacPass/it.lproj/WorkflowPreferences.strings diff --git a/MacPass/nl.lproj/AutotypeCandidateSelectionView.strings b/MacPass/nl.lproj/AutotypeCandidateSelectionView.strings index 07a52ba95..47f19a48a 100644 --- a/MacPass/nl.lproj/AutotypeCandidateSelectionView.strings +++ b/MacPass/nl.lproj/AutotypeCandidateSelectionView.strings @@ -2,7 +2,7 @@ "60p-7v-Nje.title" = "Annuleer"; /* Class = "NSTextFieldCell"; title = "There are multiple matches for the current window. Please select which match should be used."; ObjectID = "gcf-gb-ZsF"; */ -"gcf-gb-ZsF.title" = "MacPass heeft meerdere overeenkomsten gevonden voor deze website. Selecteer de identiteit waarmee je automatisch wilt inloggen."; +"gcf-gb-ZsF.title" = "MacPass heeft meerdere overeenkomsten gevonden voor deze website. Selecteer de identiteit waarmee je wilt inloggen."; /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "PKW-gr-yqN"; */ "PKW-gr-yqN.title" = ""; diff --git a/MacPass/nl.lproj/ContextBar.strings b/MacPass/nl.lproj/ContextBar.strings index e5b3c8b5d..6a7463d34 100644 --- a/MacPass/nl.lproj/ContextBar.strings +++ b/MacPass/nl.lproj/ContextBar.strings @@ -50,7 +50,7 @@ "wC4-fF-dLW.title" = "Overige weergaven"; /* Class = "NSButtonCell"; title = "Everywhere"; ObjectID = "WMK-bb-ESj"; */ -"WMK-bb-ESj.title" = "Overal"; +"WMK-bb-ESj.title" = "Alles"; /* Class = "NSTabViewItem"; label = "History"; ObjectID = "z4I-cp-nhf"; */ "z4I-cp-nhf.label" = "Geschiedenis"; diff --git a/MacPass/nl.lproj/Credits.rtf b/MacPass/nl.lproj/Credits.rtf deleted file mode 100644 index 821456415..000000000 --- a/MacPass/nl.lproj/Credits.rtf +++ /dev/null @@ -1,103 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 -{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red52\green110\blue183;\red38\green38\blue38;} -{\*\expandedcolortbl;;\csgenericrgb\c20392\c43137\c71765;\csgenericrgb\c14902\c14902\c14902;} -\paperw11900\paperh16840\vieww25400\viewh14580\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b\fs24 \cf0 Project Website:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt -\f1\b0 \cf0 MacPass}} -\f1\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \ -License:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf0 MacPass KeePass compatible client for OS X\ -Copyright (c) 2012-2019 Michael Starke, HicknHack Software GmbH\ - \ -This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by\ -the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\ -\ -This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\ -\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\ -\ -You should have received a copy of the GNU General Public License along with this program. If not, see {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt http://www.gnu.org/licenses/}}.\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 \kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \kerning1\expnd0\expndtw0 Credits:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf2 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 Dutch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/frankkooij"}}{\fldrslt Frank Kooij}}, {\field{\*\fldinst{HYPERLINK "https://github.com/clone1612"}}{\fldrslt Jannick Hemelhof}}\ -\ -French translation: {\field{\*\fldinst{HYPERLINK "mailto:gil@panix.com"}}{\fldrslt Gil Andr\'e9}}\ -\ -Italian translation: {\field{\*\fldinst{HYPERLINK "mailto:info@francescoservida.ch"}}{\fldrslt Francesco Servida}}\ -\ -Polish translation: {\field{\*\fldinst{HYPERLINK "http://www.webii.pl/"}}{\fldrslt Micha\uc0\u322 Jaglewicz}}\ -\ -Russian translation: {\field{\*\fldinst{HYPERLINK "mailto:alex@mrdoggy.info"}}{\fldrslt Aliaksandr Piatkevich}}\ -\ -Simplified Chinese translation: {\field{\*\fldinst{HYPERLINK "mailto:patchao2000@gmail.com"}}{\fldrslt Zhao Peng}}\ -\ -Spanisch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/m0yP"}}{\fldrslt \expnd0\expndtw0\kerning0 -Moises Perez}}\ -\ -MacPass\kerning1\expnd0\expndtw3 - \kerning1\expnd0\expndtw0 Icon: {\field{\*\fldinst{HYPERLINK "http://iiro.jappinen.me"}}{\fldrslt Iiro J\'e4ppinen}}\ -\ -Database Icons: {\field{\*\fldinst{HYPERLINK "https://github.com/JoannaOlsen"}}{\fldrslt Joanna Olsen}}\cf2 \ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt \cf2 KissXML}}\cf3 \ -Copyright \'a9 2012 Robbie Hanson. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf2 MiniKeePass}}\ -Copyright \'a9 2011 Jason Rush and John Flanagan. All rights reserved.\ - \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt \cf2 KeePass Database Library}}\ -Copyright \'a9 2010 Qiang Yu. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/Perspx/PXSourceList"}}{\fldrslt \cf3 PXSourceList}}\ -Copyright \'a9 2011, Alex Rozanski. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org"}}{\fldrslt \cf3 Sparkl\kerning1\expnd0\expndtw3 -e}}\kerning1\expnd0\expndtw3 -\ -Copyright \'a9 2006 Andy Matuschak. \kerning1\expnd0\expndtw0 All rights reserved.\kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf3 \kerning1\expnd0\expndtw0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/questions/11386876/how-to-encode-and-decode-files-as-base64-in-cocoa-objective-c"}}{\fldrslt \cf3 NSData+Base64}}\ -Copyright \'a92013, {\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/users/200321/denis2342"}}{\fldrslt denis2342}}\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://www.cocoadev.com/index.pl?NSDataCategory"}}{\fldrslt \cf3 NSData+Gzip}}\ -Extracted from code on the CocoaDev Wiki\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/karelia/SecurityInterface"}}{\fldrslt \cf3 KSPasswordField}}\ -Code reused in HNHUISecureTextField\ -Copyright \'a92012 Mike Abdullah, Karelia Software. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/AlanQuatermain/aqtoolkit"}}{\fldrslt \cf3 NSData+CommonCrypto}}\ -Copyright \'a92008-2009 Jim Dovey, All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mattt/TransformerKit"}}{\fldrslt \cf3 TransformerKit}}\ -Copyright \'a92012 Mattt Thompson. All rights reserved} \ No newline at end of file diff --git a/MacPass/nl.lproj/DatabaseSettingsWindow.strings b/MacPass/nl.lproj/DatabaseSettingsWindow.strings index e9fafeaea..e2c9670e5 100644 --- a/MacPass/nl.lproj/DatabaseSettingsWindow.strings +++ b/MacPass/nl.lproj/DatabaseSettingsWindow.strings @@ -14,7 +14,7 @@ "6qB-sH-9FI.label" = "Argon2"; /* Class = "NSTextFieldCell"; title = "Database name:"; ObjectID = "190"; */ -"190.title" = "Naam van de wachtwoordenkluis:"; +"190.title" = "Naam:"; /* Class = "NSTextFieldCell"; title = "Description:"; ObjectID = "257"; */ "257.title" = "Beschrijving:"; @@ -83,7 +83,7 @@ "ft1-pl-lpO.label" = "AES"; /* Class = "NSTextFieldCell"; title = "Algorithm"; ObjectID = "GVd-KH-pHc"; */ -"GVd-KH-pHc.title" = "Algoritme"; +"GVd-KH-pHc.title" = "Algoritme:"; /* Class = "NSTextFieldCell"; title = "Encryption:"; ObjectID = "gxY-UL-bEG"; */ "gxY-UL-bEG.title" = "Versleuteling:"; @@ -98,7 +98,7 @@ "pA1-aL-KjT.title" = "Eenmalig na ontgrendeling"; /* Class = "NSBox"; title = "Key derivation"; ObjectID = "pbl-Mb-r8V"; */ -"pbl-Mb-r8V.title" = "Versleuteling"; +"pbl-Mb-r8V.title" = "Sleutelafleiding"; /* Class = "NSButtonCell"; title = "Generate Parameters"; ObjectID = "PoI-Er-Y8P"; */ "PoI-Er-Y8P.title" = "Genereer parameters"; diff --git a/MacPass/nl.lproj/EntryInspectorView.strings b/MacPass/nl.lproj/EntryInspectorView.strings index a50fb5225..382874089 100644 --- a/MacPass/nl.lproj/EntryInspectorView.strings +++ b/MacPass/nl.lproj/EntryInspectorView.strings @@ -95,13 +95,13 @@ "R2X-Ex-c6q.placeholderString" = "Aangepaste onderdeelsequentie"; /* Class = "NSTextFieldCell"; title = "Window Sequence"; ObjectID = "RQB-bR-MC0"; */ -"RQB-bR-MC0.title" = "Tekenreeks voor dit venster"; +"RQB-bR-MC0.title" = "Specifieke tekenreeks voor dit venster"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "sNS-o1-pD7"; */ "sNS-o1-pD7.title" = "Overige weergaven"; /* Class = "NSTextFieldCell"; title = "UUID"; ObjectID = "vTq-N1-5oa"; */ -"vTq-N1-5oa.title" = "Identificatie (UUID)"; +"vTq-N1-5oa.title" = "Identificatiesleutel (UUID)"; /* Class = "NSButtonCell"; title = "Show Plugin Data"; ObjectID = "X9y-K7-lix"; */ "X9y-K7-lix.title" = "Toon extensiegegevens"; diff --git a/MacPass/nl.lproj/GeneralSettings.strings b/MacPass/nl.lproj/GeneralPreferences.strings similarity index 68% rename from MacPass/nl.lproj/GeneralSettings.strings rename to MacPass/nl.lproj/GeneralPreferences.strings index 21f62fcd7..cbb3d1c0d 100644 --- a/MacPass/nl.lproj/GeneralSettings.strings +++ b/MacPass/nl.lproj/GeneralPreferences.strings @@ -20,7 +20,7 @@ "429.title" = "nooit"; /* Class = "NSTextFieldCell"; title = "Clear Copied Items"; ObjectID = "432"; */ -"432.title" = "Klembord wissen"; +"432.title" = "Klembord wissen:"; /* Class = "NSButtonCell"; title = "Clear Clipboard on Quit"; ObjectID = "448"; */ "448.title" = "Wis klembord bij het stoppen van MacPass"; @@ -29,7 +29,7 @@ "465.title" = "Beveiliging"; /* Class = "NSButtonCell"; title = "Reopen last Database after Launch"; ObjectID = "531"; */ -"531.title" = "Open wachtwoordenkluis bij het starten van MacPass"; +"531.title" = "Open MacPass met de meest recente wachtwoordenkluis"; /* Class = "NSMenu"; title = "LockTimes"; ObjectID = "586"; */ "586.title" = "Vergrendeltijden"; @@ -50,10 +50,10 @@ "804.title" = "nooit"; /* Class = "NSTextFieldCell"; title = "Lock while idle"; ObjectID = "806"; */ -"806.title" = "Automatisch vergrendelen"; +"806.title" = "Automatisch vergrendelen:"; /* Class = "NSBox"; title = "File Handling"; ObjectID = "888"; */ -"888.title" = "MacPass starten"; +"888.title" = "MacPass openen"; /* Class = "NSTextFieldCell"; title = "Enabling this compromises security. If enabled, your preferences will contain mappings from database to keyfile. Key locations for databases without a password will not be saved."; ObjectID = "ACh-7H-42N"; */ "ACh-7H-42N.title" = "Als MacPass voor je onthoudt welk sleutelbestand bij een wachtwoordenkluis hoort, gaat dat ten koste van de veiligheid. Deze instelling werkt alleen bij een wachtwoordenkluis met een hoofdwachtwoord."; @@ -61,9 +61,21 @@ /* Class = "NSButtonCell"; title = "Lock after log out"; ObjectID = "Dzn-9R-JjE"; */ "Dzn-9R-JjE.title" = "Vergrendel na uitloggen"; +/* Class = "NSButtonCell"; title = "Prevent Universal Clipboard support"; ObjectID = "fNy-mS-phi"; */ +"fNy-mS-phi.title" = "Geef Universeel klembord geen toegang tot MacPass"; + +/* Class = "NSTextFieldCell"; title = "Disabling this compromises security. If enabled, anything copied to the Clipboard in MacPass will be available on your connected iOS devices. You should clear the clipboard on those devices manually."; ObjectID = "JGX-Tp-KJk"; */ +"JGX-Tp-KJk.title" = "Deze instelling beschermt je inloggegevens. Als je deze uitschakelt, kopieert Universeel klembord de wachtwoorden en andere inloggegevens die je gebruikt, naar al je Apple apparaten. Je moet dan het klembord op elk van deze apparaten steeds handmatig wissen om je wachtwoorden te beschermen."; + /* Class = "NSTextFieldCell"; title = "If file changes:"; ObjectID = "QrK-hM-Xt1"; */ "QrK-hM-Xt1.title" = "Als wachtwoordenkluis wijzigt:"; /* Class = "NSButtonCell"; title = "Remember Keyfile for Databases"; ObjectID = "r6q-He-nYU"; */ "r6q-He-nYU.title" = "Onthoud het sleutelbestand"; +/* Class = "NSButtonCell"; title = "Enable Autosave"; ObjectID = "wG7-bi-2fi"; */ +"wG7-bi-2fi.title" = "Bewaar wijzigingen automatisch in wachtwoordenkluis"; + +/* Class = "NSTextFieldCell"; title = "Close and open all documents for changes to take effect"; ObjectID = "ya5-ps-c4W"; */ +"ya5-ps-c4W.title" = "Stop en open MacPass opnieuw om de wijziging door te voeren."; + diff --git a/MacPass/nl.lproj/InfoPlist.strings b/MacPass/nl.lproj/InfoPlist.strings index 2aab96060..3d619c087 100644 --- a/MacPass/nl.lproj/InfoPlist.strings +++ b/MacPass/nl.lproj/InfoPlist.strings @@ -1,8 +1,11 @@ +/* Bundle name */ +"CFBundleName" = "MacPass"; + /* (No Comment) */ -"KDB Database" = "Wachtwoordenkluis met de indeling KDB"; +"KDB Database" = "Wachtwoordenkluis met een betere achterwaartse compatibiliteit"; /* (No Comment) */ -"KDBX Database" = "Wachtwoordenkluis met de indeling KDBX"; +"KDBX Database" = "Wachtwoordenkluis met meer mogelijkheden"; /* (No Comment) */ "MacPass Plugin" = "Extensie voor MacPass"; diff --git a/MacPass/nl.lproj/IntegrationSettings.strings b/MacPass/nl.lproj/IntegrationPreferences.strings similarity index 96% rename from MacPass/nl.lproj/IntegrationSettings.strings rename to MacPass/nl.lproj/IntegrationPreferences.strings index db4fedc0c..91e31e686 100644 --- a/MacPass/nl.lproj/IntegrationSettings.strings +++ b/MacPass/nl.lproj/IntegrationPreferences.strings @@ -2,7 +2,7 @@ "1qb-Rd-jYu.title" = "Activeer automatisch inloggen"; /* Class = "NSTextFieldCell"; title = "Shortcut"; ObjectID = "6oN-CH-T0O"; */ -"6oN-CH-T0O.title" = "Snelkoppeling"; +"6oN-CH-T0O.title" = "Toetscombinatie:"; /* Class = "NSButtonCell"; title = "Include Entry URL Host for matches"; ObjectID = "B1D-j9-L8x"; */ "B1D-j9-L8x.title" = "Controleer of de domeinnaam overeenkomt"; @@ -23,7 +23,7 @@ "P9N-HM-wER.title" = "Automatisch inloggen"; /* Class = "NSButtonCell"; title = "Interpret ⌃ as ⌘"; ObjectID = "QfO-yG-l3F"; */ -"QfO-yG-l3F.title" = "Interpreteer ⌃ als ⌘"; +"QfO-yG-l3F.title" = "Interpreteer ⌃ Control als ⌘ Command"; /* Class = "NSTextFieldCell"; title = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to."; ObjectID = "QRy-CY-ENC"; */ "QRy-CY-ENC.title" = "Verstuur ⌃ Control als ⌘ Command. Zet dit alleen uit als je er zeker van bent dat dit nodig is."; diff --git a/MacPass/nl.lproj/Localizable.strings b/MacPass/nl.lproj/Localizable.strings index 4387d27ac..0c49e7197 100644 --- a/MacPass/nl.lproj/Localizable.strings +++ b/MacPass/nl.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* Count of characters remaining in pickchars dialog */ +"%ld_CHARACTERS_TO_PICK_REMAINING" = "%ld tekens over om te kiezen"; + /* Display format for days. Should contain a long decimal placeholder! */ "%ld_DAYS" = "%ld dagen"; @@ -25,6 +28,9 @@ /* Action to add an entry via template */ "ADD_TREMPLATE_ENTRY" = "Creëer onderdeel met sjabloon"; +/* Button in dialog to leave autotype disabled and continiue! */ +"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OK" = "Log niet automatisch in"; + /* Button in dialog to open accessibilty preferences pane! */ "ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OPEN_PREFERENCES" = "Open toegankelijkheidsopties…"; @@ -34,6 +40,9 @@ /* Alert message displayed when Autotype performs self check and lacks accessibilty permissions */ "ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_MESSAGE_TEXT" = "Bevoegdheid om automatisch in te loggen ontbreekt"; +/* Button in dialog to leave plugin ds disabled and continiue! */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OK" = "OK"; + /* Button in dialog to open plugin preferences pane! */ "ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OPEN_PREFERENCES" = "Toon extensievoorkeuren…"; @@ -56,10 +65,10 @@ "ALERT_MERGE_CONTINUE" = "Voeg samen"; /* Informative text displayed when merging KDB files */ -"ALERT_MERGE_KDB_FILE_INFO_TEXT" = "Wachtwoordenkluizen met de indeling KDB bevatten niet altijd genoeg informatie om ze zorgvuldig te kunnen samenvoegen. Er gaat geen informatie verloren, maar omdat groepen alleen worden herkend aan hun naam, kunnen er onverwachte veranderingen optreden. Onderdelen die waren verplaatst, komen misschien terecht in de oude groep of groepen die waren hernoemd, worden niet samengevoegd. Ook kunnen onderdelen terugkeren die waren verwijderd. Weet je zeker dat je wilt samenvoegen?"; +"ALERT_MERGE_KDB_FILE_INFO_TEXT" = "Wachtwoordenkluizen met de indeling .kdb bevatten niet altijd genoeg informatie om ze naadloos te kunnen samenvoegen. Er gaat geen informatie verloren, maar omdat groepen alleen worden herkend aan hun naam, kunnen er onverwachte veranderingen optreden. Onderdelen die waren verplaatst, komen misschien terecht in de oude groep of groepen die waren hernoemd, worden niet samengevoegd. Ook kunnen onderdelen terugkeren die waren verwijderd. Weet je zeker dat je wilt samenvoegen?"; /* Alert message warning user about KDB file merge */ -"ALERT_MERGE_KDB_FILE_MESSAGE" = "Je voegt een wachtwoordenkluis met de indeling KDB samen"; +"ALERT_MERGE_KDB_FILE_MESSAGE" = "Je voegt een wachtwoordenkluis met de indeling .kdb samen"; /* Alert message text when plugins or their settings change and require a restart */ "ALERT_MESSAGE_PLUGINS_CHANGED_SUGGEST_RESTART" = "Wil je MacPass nu stoppen en opnieuw openen om de wijziging door te voeren?"; @@ -67,8 +76,11 @@ /* Alert message text to ask the user if he really want to uninstall the plugin. Include %@ placeholder for plugin name */ "ALERT_MESSAGE_TEXT_REALLY_UNINSTALL_PLUGIN_%@" = "Wil je de extensie %@ verwijderen?"; +/* Informative text of the disabled updates alert! */ +"ALERT_UPDATES_DISABLED_INFORMATIVE_TEXT_%@!" = "Bijwerken is uitgeschakeld voor deze versie van %@"; + /* Message text for disabled updates alert! */ -"ALERT_UPDATES_DISABLED_MESSAGE_TEXT" = "Automatisch bijwerken uitgeschakeld"; +"ALERT_UPDATES_DISABLED_MESSAGE_TEXT" = "Automatisch bijwerken is uitgeschakeld"; /* Attachments column title (shows counts) Menu item to toggle display of attachment count column in entry table */ @@ -84,7 +96,7 @@ "AUTOTYPE_INHERIT" = "Erf voorkeuren voor automatisch inloggen"; /* Message displayed to the user to unlock the database to perform global autotype */ -"AUTOTYPE_MESSAGE_UNLOCK_DATABASE" = "Ontgrendel de wachtwoordenkluis om automatisch in te loggen"; +"AUTOTYPE_MESSAGE_UNLOCK_DATABASE" = "Ontgrendel de wachtwoordenkluis om in te loggen."; /* Disable autotype menu item */ "AUTOTYPE_NO" = "Deactiveer automatisch inloggen"; @@ -93,11 +105,17 @@ "AUTOTYPE_NOTIFICATION_MACPASS_HAS_NO_ACCESSIBILTY_PERMISSIONS" = "Automatisch inloggen is niet beschikbaar, omdat MacPass geen toestemming heeft om je computer te besturen. Kies Apple-menu >'Systeemvoorkeuren', klik op 'Beveiliging en privacy', klik vervolgens op 'Privacy' en voeg MacPass toe aan de groep Toegankelijkheid om automatisch inloggen aan te zetten. Stop en open MacPass opnieuw om de wijziging door te voeren."; /* Notification: Autotype failed, no documents are open */ -"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Open een wachtwoordenkluis om automatisch in te kunnen loggen"; +"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Open een wachtwoordenkluis om automatisch te kunnen inloggen."; /* Noticiation: Autotype failed to find a match for %@ (string placeholder) */ "AUTOTYPE_OVERLAY_NO_MATCH_FOR_%@" = "Geen overeenkomst gevonden voor %@"; +/* Notification: Autotype found a single match for %@ (string placeholder). */ +"AUTOTYPE_OVERLAY_SINGLE_MATCH_FOR_%@" = "Automatisch ingelogd op %@."; + +/* Notficication: Autotype timed out */ +"AUTOTYPE_TIMED_OUT" = "Automatisch inloggen mislukt door te lang wachten."; + /* Enable autotype menu item */ "AUTOTYPE_YES" = "Activeer automatisch inloggen"; @@ -132,15 +150,33 @@ /* Field name that was copied to the pasteboard */ "COPIED_FIELD_%@" = "%@ gekopieerd"; +/* Context menu that copies reference to note */ +"COPIED_NOTES_REFERENCE" = "Verwijzing naar notities gekopieerd"; + /* Password was copied to the pasteboard */ "COPIED_PASSWORD" = "Wachtwoord gekopieerd"; +/* Context menu that copies reference to password */ +"COPIED_PASSWORD_REFERENCE" = "Verwijzing naar wachtwoord gekopieerd"; + +/* Context menu that copies reference to title */ +"COPIED_TITLE_REFERENCE" = "Verwijzing naar naam gekopieerd"; + /* URL was copied to the pasteboard */ "COPIED_URL" = "Koppeling met webpagina gekopieerd"; +/* Context menu that copies reference to URL */ +"COPIED_URL_REFERENCE" = "Verwijzing naar koppeling met webpagina gekopieerd"; + /* Username was copied to the pasteboard */ "COPIED_USERNAME" = "Gebruikersnaam gekopieerd"; +/* Context menu that copies reference to username */ +"COPIED_USERNAME_REFERENCE" = "Verwijzing naar gebruikersnaam gekopieerd"; + +/* Submenu to copy attributes as reference */ +"COPY_AS_REFERENCE" = "Kopieer verwijzing…"; + /* Submenu to Copy custom fields */ "COPY_CUSTOM_FIELDS" = "Kopieer aangepaste velden"; @@ -157,19 +193,34 @@ /* Action title for copying a group via drag and drop */ "COPY_GROUP" = "Kopieer groep"; +/* Context menu that copies reference to note */ +"COPY_NOTES_REFERENCE" = "notities"; + /* Menu item to copy the password of an entry Toolbar item copy password */ "COPY_PASSWORD" = "Kopieer wachtwoord"; +/* Context menu that copies reference to password */ +"COPY_PASSWORD_REFERENCE" = "wachtwoord"; + +/* Context menu that copies reference to title */ +"COPY_TITLE_REFERENCE" = "naam"; + /* Menu item to copy the URL of an entry */ "COPY_URL" = "Kopieer koppeling"; +/* Context menu that copies reference to URL */ +"COPY_URL_REFERENCE" = "webpagina"; + /* Menu item to copy the username of an entry Toolbar item copy username */ "COPY_USERNAME" = "Kopieer gebruikersnaam"; +/* Context menu that copies reference to username */ +"COPY_USERNAME_REFERENCE" = "gebruikersnaam"; + /* Curstom attribute reference item */ -"CUSTOM_ATTRIBUTE" = ""; +"CUSTOM_ATTRIBUTE" = "aangepast veld"; /* Title for menu for custom search filters */ "CUSTOM_SEARCH_FILTER_MENU" = "Aangepast zoekfilter…"; @@ -244,6 +295,9 @@ /* Message text for the enforce password change alert */ "ENFORCE_PASSWORD_CHANGE_ALERT_TITLE" = "Het hoofdwachtwoord is verlopen"; +/* Group row for entry attributes */ +"ENTRY_CUSTOM_ATTRIBUTES" = "Aangepaste velden"; + /* Group row for entry attributes */ "ENTRY_DEFAULT_ATTRIBUTES" = "Standaardattributen"; @@ -291,7 +345,7 @@ "FILE_OPEN_ERROR" = "Openen mislukt."; /* General Settings Label */ -"GENERAL_SETTINGS" = "Algemeen"; +"GENERAL_PREFERENCES" = "Algemeen"; /* Group column title */ "GROUP" = "Groep"; @@ -313,7 +367,7 @@ "JUST_NOW" = "Zojuist"; /* Feature only available in kdbx databases */ -"KDBX_ONLY_FEATURE" = "Niet beschikbaar in een wachtwoordenkluis met de indeling KDB"; +"KDBX_ONLY_FEATURE" = "Niet beschikbaar in een wachtwoordenkluis met de indeling .kdb"; /* Button in dialog to ignore the changes to an open file! */ "KEEP_MINE_DISCARD_OTHER" = "Behoud huidige, negeer andere"; @@ -334,13 +388,13 @@ "LOCK" = "Vergrendel"; /* Message in the open panel to add attachments to an entry */ -"MESSAGE_ADD_ATTACHMENT_OPEN_PANEL" = "Selecteer het toe te voegen bestand"; +"MESSAGE_ADD_ATTACHMENT_OPEN_PANEL" = "Kies het toe te voegen bestand"; /* Message in the add plugin open panel */ -"MESSAGE_ADD_PLUGIN_OPEN_PANEL" = "Selecteer de extensie die je wilt installeren"; +"MESSAGE_ADD_PLUGIN_OPEN_PANEL" = "Kies de extensie die je wilt installeren"; /* Message in the open panel to import an XML file */ -"MESSAGE_XML_OPEN_PANEL" = "Selecteer het te importeren XML-bestand"; +"MESSAGE_XML_OPEN_PANEL" = "Kies het te importeren XML-bestand"; /* Menu item to toggle display of modified date column in entry table Modification date column title */ @@ -388,7 +442,7 @@ "NOTES" = "Notities"; /* Ok Button to dismiss disabled updates alert */ -"OK" = ""; +"OK" = "OK"; /* preset to expire after one montch from now */ "ONE_MONTH" = "één maand"; @@ -452,6 +506,15 @@ /* Menu item to perform autotype with the selected entry */ "PERFORM_AUTOTYPE_FOR_ENTRY" = "Log automatisch in"; +/* Info about how many character has to pick in pickchar dialog */ +"PICKCHAR_INFO_MESSAGE_PICK_CHARACTERS_%ld" = "Kies %ld tekens"; + +/* Window displayed to the user to pick an amout of characters */ +"PICKCHAR_WINDOW_TITLE" = "Tekens"; + +/* Count of picked characters in pickchars dialog if no limit is set */ +"PICKED_%ld_CHARACTERS" = "%ld tekens gekozen"; + /* Label for the button when a download did not succeed */ "PLUGIN_BROWSER_ACTION_RETRY_FAILED_DOWNLOAD" = "Mislukt. Probeer opnieuw."; @@ -470,6 +533,12 @@ /* Status for an uninstalled plugin in the plugin browser */ "PLUGIN_BROWSER_PLUGIN_NOT_INSTALLED" = "Niet geïnstalleerd"; +/* Status for an unkonw plugin version in the plugin browser */ +"PLUGIN_BROWSER_UNKNOWN_PLUGIN_VERSION_INSTALLED_%@" = "Onbekende versie %@ geïnstalleerd"; + +/* Error for a plugin that is disabled. */ +"PLUGIN_ERROR_DISABLED_PLUGIN" = "De extensie is uitgeschakeld door de gebruiker"; + /* Plugin is not with this version of MacPass */ "PLUGIN_ERROR_HOST_VERSION_NOT_SUPPORTED" = "De extensie is niet compatibel met deze versie van MacPass"; @@ -544,7 +613,7 @@ "SELECT_DATE_PRESET" = "Verloopt over…"; /* Message on the open panel for selecting which browser to use for opening URLs */ -"SELECT_DEFAULT_BROWSER_OPEN_PANEL_MESSAGE" = "Selecteer de browser om een webpagina mee te openen"; +"SELECT_DEFAULT_BROWSER_OPEN_PANEL_MESSAGE" = "Kies de browser om een webpagina mee te openen"; /* Label for the select browser button on the open panel for selecting which browser to use for opening URLs */ "SELECT_DEFAULT_BROWSER_OPEN_PANEL_SELECT_BUTTON" = "Kies"; @@ -553,7 +622,7 @@ "SELECT_FILE_TO_MERGE" = "Kies een wachtwoordenkluis om mee samen te voegen"; /* Menu displayed as popup selection for search options if no filter is selected */ -"SELECT_FILTER_WITH_DOTS" = "Selecteer…"; +"SELECT_FILTER_WITH_DOTS" = "Filter…"; /* Menu item to show the history of the selected entry Toolbar item to toggle history display */ @@ -593,7 +662,7 @@ "UNKNOWN_TOOLBAR_ITEM" = "Onbekend knoppenbalkonderdeel"; /* Update Settings Label */ -"UPDATE_SETTINGS" = "Updates"; +"UPDATE_PREFERENCES" = "Updates"; /* Menu item to toggle display of url column in entry table Submenu with options what to do with the URL of an entry @@ -608,7 +677,7 @@ /* Displayed name when uuid field was copied UUID reference item */ -"UUID" = "Identificatie"; +"UUID" = "Identificatiesleutel"; /* No Key or Password */ "WARNING_NO_PASSWORD_OR_KEYFILE" = "Stel een hoofdwachtwoord en/of sleutelbestand in"; diff --git a/MacPass/nl.lproj/Localizable.stringsdict b/MacPass/nl.lproj/Localizable.stringsdict index 9ad873b81..440b6eee2 100644 --- a/MacPass/nl.lproj/Localizable.stringsdict +++ b/MacPass/nl.lproj/Localizable.stringsdict @@ -13,17 +13,17 @@ NSStringFormatValueTypeKey ld one - One character remaining + Eén teken over other - %ld characters remaining + %ld tekens over zero - All characters picked + Alle tekens gekozen - DUPLICATE_ENTRIES_%ld + DUPLICATE_ENTRIES_ACTION_NAME NSStringLocalizedFormatKey - + %#@entries@ entries NSStringFormatSpecTypeKey @@ -41,7 +41,7 @@ EVERY_%ld_DAYS NSStringLocalizedFormatKey - + %#@days@ days NSStringFormatSpecTypeKey @@ -67,11 +67,11 @@ NSStringFormatValueTypeKey ld one - Please pick a single character to use + Kies één teken om te gebruiken other - Please pick %ld characters to use + Kies %ld tekens om te gebruiken zero - Please pick the characters to use + Kies de tekens om te gebruiken PICKED_%ld_CHARACTERS @@ -85,11 +85,11 @@ NSStringFormatValueTypeKey ld one - %ld character picked + %ld teken gekozen other - %ld characters picked + %ld tekens gekozen zero - No characters picked + Geen tekens gekozen diff --git a/MacPass/nl.lproj/MainMenu.strings b/MacPass/nl.lproj/MainMenu.strings index 90759186b..487aa7130 100644 --- a/MacPass/nl.lproj/MainMenu.strings +++ b/MacPass/nl.lproj/MainMenu.strings @@ -2,7 +2,7 @@ "2VP-vB-IeX.title" = "Blader door onderdelen"; /* Class = "NSMenuItem"; title = "Item"; ObjectID = "3st-rv-EeQ"; */ -"3st-rv-EeQ.title" = ""; +"3st-rv-EeQ.title" = "Onderdeel"; /* Class = "NSMenu"; title = "Import"; ObjectID = "4q9-u1-pcm"; */ "4q9-u1-pcm.title" = "Importeer"; @@ -179,7 +179,7 @@ "rW0-r1-QYL.title" = "Importeer XML…"; /* Class = "NSMenu"; title = "Item"; ObjectID = "Ttt-tR-emo"; */ -"Ttt-tR-emo.title" = ""; +"Ttt-tR-emo.title" = "Onderdeel"; /* Class = "NSMenuItem"; title = "Export"; ObjectID = "tz9-yK-pOf"; */ "tz9-yK-pOf.title" = "Exporteer"; diff --git a/MacPass/nl.lproj/PasswordCreatorView.strings b/MacPass/nl.lproj/PasswordCreatorView.strings index acde421f2..75e11d46b 100644 --- a/MacPass/nl.lproj/PasswordCreatorView.strings +++ b/MacPass/nl.lproj/PasswordCreatorView.strings @@ -35,13 +35,13 @@ "647.title" = "Entropie:"; /* Class = "NSTextFieldCell"; title = "25000 bit"; ObjectID = "653"; */ -"653.title" = "25.000 bit"; +"653.title" = "25.000 bits"; /* Class = "NSButtonCell"; title = "Use default only for selected entry"; ObjectID = "cfZ-5F-Nge"; */ "cfZ-5F-Nge.title" = "Gebruik deze toegestane tekens eenmalig"; /* Class = "NSButtonCell"; title = "Use characters from every group"; ObjectID = "CMc-Uh-Fo5"; */ -"CMc-Uh-Fo5.title" = "Gebruik tekens uit elke groep"; +"CMc-Uh-Fo5.title" = "Gebruik tekens uit elke toegestane groep"; /* Class = "NSButtonCell"; title = "Set Default"; ObjectID = "Wvs-Md-Ob8"; */ "Wvs-Md-Ob8.title" = "Stel de standaardwaarde in"; diff --git a/MacPass/nl.lproj/PickfieldView.strings b/MacPass/nl.lproj/PickfieldView.strings index d987ac17c..79902d4ed 100644 --- a/MacPass/nl.lproj/PickfieldView.strings +++ b/MacPass/nl.lproj/PickfieldView.strings @@ -1,6 +1,9 @@ /* Class = "NSButtonCell"; title = "Select"; ObjectID = "6Wi-9i-Tcb"; */ "6Wi-9i-Tcb.title" = "Kies"; +/* Class = "NSTextFieldCell"; title = "Please pick a field value to be inserted"; ObjectID = "aJS-22-6Va"; */ +"aJS-22-6Va.title" = "Kies een waarde om in te voegen"; + /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "rVo-ud-5fs"; */ "rVo-ud-5fs.headerCell.title" = "Waarde"; diff --git a/MacPass/nl.lproj/SavePanelAccessoryView.strings b/MacPass/nl.lproj/SavePanelAccessoryView.strings new file mode 100644 index 000000000..aefe02164 --- /dev/null +++ b/MacPass/nl.lproj/SavePanelAccessoryView.strings @@ -0,0 +1,15 @@ +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "4"; */ +"4.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "KeePass 1 (KDB)"; ObjectID = "5"; */ +"5.title" = "KeePass 1 (.kdb)"; + +/* Class = "NSMenuItem"; title = "KeePass 2 (KDBX)"; ObjectID = "6"; */ +"6.title" = "KeePass 2 (.kdbx)"; + +/* Class = "NSTextFieldCell"; title = "Format:"; ObjectID = "12"; */ +"12.title" = "Indeling:"; + +/* Class = "NSTextFieldCell"; title = "Not all Information inside your current database can be stored with this format."; ObjectID = "52"; */ +"52.title" = "Bij deze indeling kan niet alle informatie uit de huidige wachtwoordenkluis worden bewaard."; + diff --git a/MacPass/nl.lproj/UpdateSettings.strings b/MacPass/nl.lproj/UpdatePreferences.strings similarity index 94% rename from MacPass/nl.lproj/UpdateSettings.strings rename to MacPass/nl.lproj/UpdatePreferences.strings index 9f2d22abc..219cef398 100644 --- a/MacPass/nl.lproj/UpdateSettings.strings +++ b/MacPass/nl.lproj/UpdatePreferences.strings @@ -2,7 +2,7 @@ "3FR-Va-iau.title" = "elke week"; /* Class = "NSTextFieldCell"; title = "Check for Updates"; ObjectID = "9tL-CA-Vdg"; */ -"9tL-CA-Vdg.title" = "Controleer op updates"; +"9tL-CA-Vdg.title" = "Controleer op updates:"; /* Class = "NSMenuItem"; title = "every Hour"; ObjectID = "DjF-1I-6Nq"; */ "DjF-1I-6Nq.title" = "elk uur"; diff --git a/MacPass/nl.lproj/WorkflowSettings.strings b/MacPass/nl.lproj/WorkflowPreferences.strings similarity index 96% rename from MacPass/nl.lproj/WorkflowSettings.strings rename to MacPass/nl.lproj/WorkflowPreferences.strings index 9365580d5..bd3199210 100644 --- a/MacPass/nl.lproj/WorkflowSettings.strings +++ b/MacPass/nl.lproj/WorkflowPreferences.strings @@ -5,7 +5,7 @@ "7YX-EA-9KA.title" = "Standaardwebbrowser"; /* Class = "NSTextFieldCell"; title = "Double-click on URL:"; ObjectID = "10"; */ -"10.title" = "Dubbelklik op koppeling met webpagina:"; +"10.title" = "Dubbelklik op koppeling:"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "15"; */ "15.title" = "Overige weergaven"; diff --git a/MacPass/pl.lproj/GeneralSettings.strings b/MacPass/pl.lproj/GeneralPreferences.strings similarity index 100% rename from MacPass/pl.lproj/GeneralSettings.strings rename to MacPass/pl.lproj/GeneralPreferences.strings diff --git a/MacPass/pl.lproj/IntegrationSettings.strings b/MacPass/pl.lproj/IntegrationPreferences.strings similarity index 100% rename from MacPass/pl.lproj/IntegrationSettings.strings rename to MacPass/pl.lproj/IntegrationPreferences.strings diff --git a/MacPass/pl.lproj/Localizable.strings b/MacPass/pl.lproj/Localizable.strings index 1266d8d2d..03e2262cb 100644 --- a/MacPass/pl.lproj/Localizable.strings +++ b/MacPass/pl.lproj/Localizable.strings @@ -252,7 +252,7 @@ "FILE_OPEN_ERROR" = "Błąd! Nie można otworzyć pliku."; /* General Settings Label */ -"GENERAL_SETTINGS" = "Ogólne"; +"GENERAL_PREFERENCES" = "Ogólne"; /* Group column title */ "GROUP" = "Grupa"; @@ -545,7 +545,7 @@ "UNKNOWN_TOOLBAR_ITEM" = ""; /* Update Settings Label */ -"UPDATE_SETTINGS" = "Uaktualnienia"; +"UPDATE_PREFERENCES" = "Uaktualnienia"; /* Message text for disabled updates alert! */ "Updates are disabled!" = "Aktualizacje są wyłączone!"; diff --git a/MacPass/pl.lproj/Localizable.stringsdict b/MacPass/pl.lproj/Localizable.stringsdict index 041de5fb4..f79ae1b8f 100644 --- a/MacPass/pl.lproj/Localizable.stringsdict +++ b/MacPass/pl.lproj/Localizable.stringsdict @@ -24,7 +24,7 @@ Wybrano wszystkie znaki - DUPLICATE_ENTRIES_%ld + DUPLICATE_ENTRIES_ACTION_NAME NSStringLocalizedFormatKey %#@wpisów@ diff --git a/MacPass/pl.lproj/UpdateSettings.strings b/MacPass/pl.lproj/UpdatePreferences.strings similarity index 100% rename from MacPass/pl.lproj/UpdateSettings.strings rename to MacPass/pl.lproj/UpdatePreferences.strings diff --git a/MacPass/pl.lproj/WorkflowSettings.strings b/MacPass/pl.lproj/WorkflowPreferences.strings similarity index 100% rename from MacPass/pl.lproj/WorkflowSettings.strings rename to MacPass/pl.lproj/WorkflowPreferences.strings diff --git a/MacPass/ru.lproj/AutotypeBuilderView.strings b/MacPass/ru.lproj/AutotypeBuilderView.strings new file mode 100644 index 000000000..9af680901 --- /dev/null +++ b/MacPass/ru.lproj/AutotypeBuilderView.strings @@ -0,0 +1,9 @@ + +/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "8ny-Qk-Jvo"; */ +"8ny-Qk-Jvo.title" = "Последовательность автоввода"; + +/* Class = "NSButtonCell"; title = "Set Autotype Sequence"; ObjectID = "aOD-Ih-Sft"; */ +"aOD-Ih-Sft.title" = "Установить"; + +/* Class = "NSTextFieldCell"; title = "Available Commands and Placeholders"; ObjectID = "lug-97-H9D"; */ +"lug-97-H9D.title" = "Доступные команды и подстановки"; diff --git a/MacPass/ru.lproj/AutotypeCandidateSelectionView.strings b/MacPass/ru.lproj/AutotypeCandidateSelectionView.strings new file mode 100644 index 000000000..ef27e744a --- /dev/null +++ b/MacPass/ru.lproj/AutotypeCandidateSelectionView.strings @@ -0,0 +1,15 @@ +/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "60p-7v-Nje"; */ +"60p-7v-Nje.title" = "Отмена"; + +/* Class = "NSTextFieldCell"; title = "There are multiple matches for the current window. Please select which match should be used."; ObjectID = "gcf-gb-ZsF"; */ +"gcf-gb-ZsF.title" = "Есть несколько совпадений для текущего окна. Пожалуйста, выберите, какое совпадение следует использовать."; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "PKW-gr-yqN"; */ +"PKW-gr-yqN.title" = "Text Cell"; + +/* Class = "NSTextFieldCell"; title = "Content"; ObjectID = "TN3-3a-LaA"; */ +"TN3-3a-LaA.title" = "Content"; + +/* Class = "NSButtonCell"; title = "Perform Autotype"; ObjectID = "w7H-hx-CUF"; */ +"w7H-hx-CUF.title" = "Выполнить автоввод"; + diff --git a/MacPass/ru.lproj/AutotypeDoctorReportViewController.strings b/MacPass/ru.lproj/AutotypeDoctorReportViewController.strings new file mode 100644 index 000000000..83dbcfc22 --- /dev/null +++ b/MacPass/ru.lproj/AutotypeDoctorReportViewController.strings @@ -0,0 +1,18 @@ +/* Class = "NSTextFieldCell"; title = "MacPass will send key press events to the system when Autotype or Global Autotype is executed. Since macOS 10.14 Mojave this is only possible, if Accessibility permissions are granted to the application."; ObjectID = "6GI-KJ-Xue"; */ +"6GI-KJ-Xue.title" = "MacPass будет отправлять события нажатия клавиш в систему при выполнении Автоввода или Глобального Автоввода. Начиная с macOS 10.14 Mojave это возможно только в том случае, если приложению разрешено управление копьютером через универсальный доступ."; + +/* Class = "NSTextFieldCell"; title = "MacPass will read every window title when Global Autotype is executed to find a match. Since macOS 10.15 Catalina it is not possible to read any window title, if the user has not granted permissions to record the screen. If you are running macOS 10.15 or higher, MacPass will try to capture the left top most pixel on your screen to initate a request to record the screen. This pixel will not be stored and processed in any way."; ObjectID = "7of-1z-Nfk"; */ +"7of-1z-Nfk.title" = "MacPass будет читать заголовки окон чтобы найти совпадения при выполнении Глобального Автоввода. Начиная с macOS 10.15 Catalina невозможно прочитать заголовок окна, если пользователь не предоставил разрешения на запись экрана. Если вы используете MacOS 10.15 или выше, MacPass попытается захватить левый верхний пиксель на вашем экране, чтобы инициировать запрос на запись экрана. Этот пиксель не будет сохранен и обработан каким-либо образом."; + +/* Class = "NSButtonCell"; title = "Open Accessibilty Preferences…"; ObjectID = "8m1-vs-pd5"; */ +"8m1-vs-pd5.title" = "Открыть настройки универсального доступа…"; + +/* Class = "NSTextFieldCell"; title = "Screen Recording"; ObjectID = "9gr-mz-2I4"; */ +"9gr-mz-2I4.title" = "Запись экрана"; + +/* Class = "NSTextFieldCell"; title = "Accessibility"; ObjectID = "aIL-8W-63g"; */ +"aIL-8W-63g.title" = "Универсальный доступ"; + +/* Class = "NSButtonCell"; title = "Open Screen Sharing Preferences…"; ObjectID = "lgB-Ys-L9R"; */ +"lgB-Ys-L9R.title" = "Открыть настройки безопасности…"; + diff --git a/MacPass/ru.lproj/ContextBar.strings b/MacPass/ru.lproj/ContextBar.strings index 035c43095..12c945088 100644 --- a/MacPass/ru.lproj/ContextBar.strings +++ b/MacPass/ru.lproj/ContextBar.strings @@ -1,15 +1,14 @@ - /* Class = "NSTextFieldCell"; title = "Search:"; ObjectID = "7"; */ -"7.title" = "Search:"; - -/* Class = "NSButtonCell"; title = "Title"; ObjectID = "53D-ne-nv6"; */ -"53D-ne-nv6.title" = "Title"; +"7.title" = "Поиск:"; /* Class = "NSButtonCell"; title = "Empty Trash"; ObjectID = "8Ok-oe-6AB"; */ -"8Ok-oe-6AB.title" = "Empty Trash"; +"8Ok-oe-6AB.title" = "Очистить корзину"; /* Class = "NSTextFieldCell"; title = "Trash"; ObjectID = "8P1-Rp-sF4"; */ -"8P1-Rp-sF4.title" = "Trash"; +"8P1-Rp-sF4.title" = "Корзина"; + +/* Class = "NSButtonCell"; title = "Title"; ObjectID = "53D-ne-nv6"; */ +"53D-ne-nv6.title" = "Заголовок"; /* Class = "NSButtonCell"; title = "URL"; ObjectID = "92o-gN-Psj"; */ "92o-gN-Psj.title" = "URL"; @@ -17,38 +16,42 @@ /* Class = "NSMenuItem"; title = "Item 3"; ObjectID = "CFk-71-NYQ"; */ "CFk-71-NYQ.title" = "Item 3"; -/* Class = "NSTextFieldCell"; title = "History"; ObjectID = "ER3-Ic-v0N"; */ -"ER3-Ic-v0N.title" = "History"; - -/* Class = "NSMenuItem"; title = "Item 1"; ObjectID = "LRm-iZ-XrA"; */ -"LRm-iZ-XrA.title" = "Item 1"; - -/* Class = "NSButtonCell"; title = "Restore Entry"; ObjectID = "UTg-y9-4DN"; */ -"UTg-y9-4DN.title" = "Restore Entry"; - -/* Class = "NSTabViewItem"; label = "Filter"; ObjectID = "Ud6-Nz-6PS"; */ -"Ud6-Nz-6PS.label" = "Filter"; - /* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "cpr-p6-YAY"; */ "cpr-p6-YAY.title" = "Item 2"; +/* Class = "NSTextFieldCell"; title = "History"; ObjectID = "ER3-Ic-v0N"; */ +"ER3-Ic-v0N.title" = "История изменений"; + /* Class = "NSButtonCell"; title = "Exit History"; ObjectID = "ewQ-8F-e1E"; */ -"ewQ-8F-e1E.title" = "Exit History"; +"ewQ-8F-e1E.title" = "Закрыть историю"; /* Class = "NSButtonCell"; title = "Notes"; ObjectID = "iDN-2E-hwt"; */ -"iDN-2E-hwt.title" = "Notes"; +"iDN-2E-hwt.title" = "Заметки"; /* Class = "NSButtonCell"; title = "Username"; ObjectID = "jfQ-Jh-2gl"; */ -"jfQ-Jh-2gl.title" = "Username"; +"jfQ-Jh-2gl.title" = "Имя пользователя"; + +/* Class = "NSMenuItem"; title = "Item 1"; ObjectID = "LRm-iZ-XrA"; */ +"LRm-iZ-XrA.title" = "Item 1"; /* Class = "NSTabViewItem"; label = "Trash"; ObjectID = "na6-h9-r9q"; */ -"na6-h9-r9q.label" = "Trash"; +"na6-h9-r9q.label" = "Корзина"; /* Class = "NSButtonCell"; title = "Password"; ObjectID = "rvQ-4V-SsS"; */ -"rvQ-4V-SsS.title" = "Password"; +"rvQ-4V-SsS.title" = "Пароль"; + +/* Class = "NSTabViewItem"; label = "Filter"; ObjectID = "Ud6-Nz-6PS"; */ +"Ud6-Nz-6PS.label" = "Фильтр"; + +/* Class = "NSButtonCell"; title = "Restore Entry"; ObjectID = "UTg-y9-4DN"; */ +"UTg-y9-4DN.title" = "Восстановить запись"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "wC4-fF-dLW"; */ "wC4-fF-dLW.title" = "OtherViews"; +/* Class = "NSButtonCell"; title = "Everywhere"; ObjectID = "WMK-bb-ESj"; */ +"WMK-bb-ESj.title" = "Искать везде"; + /* Class = "NSTabViewItem"; label = "History"; ObjectID = "z4I-cp-nhf"; */ -"z4I-cp-nhf.label" = "History"; +"z4I-cp-nhf.label" = "История изменений"; + diff --git a/MacPass/ru.lproj/Credits.rtf b/MacPass/ru.lproj/Credits.rtf deleted file mode 100644 index 71e38d963..000000000 --- a/MacPass/ru.lproj/Credits.rtf +++ /dev/null @@ -1,103 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 -{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red52\green110\blue183;\red38\green38\blue38;} -{\*\expandedcolortbl;;\csgenericrgb\c20392\c43137\c71765;\csgenericrgb\c14902\c14902\c14902;} -\paperw11900\paperh16840\vieww25780\viewh16280\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b\fs24 \cf0 Project Website:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt -\f1\b0 \cf0 MacPass}} -\f1\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \ -License:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf0 MacPass KeePass compatible client for OS X\ -Copyright (c) 2012-2019 Michael Starke, HicknHack Software GmbH\ - \ -This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by\ -the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\ -\ -This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\ -\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\ -\ -You should have received a copy of the GNU General Public License along with this program. If not, see {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt http://www.gnu.org/licenses/}}.\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 \kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \kerning1\expnd0\expndtw0 Credits:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf2 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 Dutch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/clone1612"}}{\fldrslt Jannick Hemelhof}}\ -\ -French translation: {\field{\*\fldinst{HYPERLINK "mailto:gil@panix.com"}}{\fldrslt Gil Andr\'e9}}\ -\ -Italian translation: {\field{\*\fldinst{HYPERLINK "mailto:info@francescoservida.ch"}}{\fldrslt Francesco Servida}}\ -\ -Polish translation: {\field{\*\fldinst{HYPERLINK "http://www.webii.pl/"}}{\fldrslt Micha\uc0\u322 Jaglewicz}}\ -\ -Russian translation: {\field{\*\fldinst{HYPERLINK "mailto:alex@mrdoggy.info"}}{\fldrslt Aliaksandr Piatkevich}}\ -\ -Simplified Chinese translation: {\field{\*\fldinst{HYPERLINK "mailto:patchao2000@gmail.com"}}{\fldrslt Zhao Peng}}\ -\ -Spanisch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/m0yP"}}{\fldrslt \expnd0\expndtw0\kerning0 -Moises Perez}}\ -\ -MacPass\kerning1\expnd0\expndtw3 - \kerning1\expnd0\expndtw0 Icon: {\field{\*\fldinst{HYPERLINK "http://iiro.jappinen.me"}}{\fldrslt Iiro J\'e4ppinen}}\ -\ -Database Icons: {\field{\*\fldinst{HYPERLINK "https://github.com/JoannaOlsen"}}{\fldrslt Joanna Olsen}}\cf2 \ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt \cf2 KissXML}}\cf3 \ -Copyright \'a9 2012 Robbie Hanson. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf2 MiniKeePass}}\ -Copyright \'a9 2011 Jason Rush and John Flanagan. All rights reserved.\ - \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt \cf2 KeePass Database Library}}\ -Copyright \'a9 2010 Qiang Yu. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/Perspx/PXSourceList"}}{\fldrslt \cf3 PXSourceList}}\ -Copyright \'a9 2011, Alex Rozanski. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org"}}{\fldrslt \cf3 Sparkl\kerning1\expnd0\expndtw3 -e}}\kerning1\expnd0\expndtw3 -\ -Copyright \'a9 2006 Andy Matuschak. \kerning1\expnd0\expndtw0 All rights reserved.\kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf3 \kerning1\expnd0\expndtw0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/questions/11386876/how-to-encode-and-decode-files-as-base64-in-cocoa-objective-c"}}{\fldrslt \cf3 NSData+Base64}}\ -Copyright \'a92013, {\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/users/200321/denis2342"}}{\fldrslt denis2342}}\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://www.cocoadev.com/index.pl?NSDataCategory"}}{\fldrslt \cf3 NSData+Gzip}}\ -Extracted from code on the CocoaDev Wiki\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/karelia/SecurityInterface"}}{\fldrslt \cf3 KSPasswordField}}\ -Code reused in HNHUISecureTextField\ -Copyright \'a92012 Mike Abdullah, Karelia Software. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/AlanQuatermain/aqtoolkit"}}{\fldrslt \cf3 NSData+CommonCrypto}}\ -Copyright \'a92008-2009 Jim Dovey, All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mattt/TransformerKit"}}{\fldrslt \cf3 TransformerKit}}\ -Copyright \'a92012 Mattt Thompson. All rights reseverd} \ No newline at end of file diff --git a/MacPass/ru.lproj/DatabaseSettingsWindow.strings b/MacPass/ru.lproj/DatabaseSettingsWindow.strings index d1d8dcb0c..00d1f5200 100644 --- a/MacPass/ru.lproj/DatabaseSettingsWindow.strings +++ b/MacPass/ru.lproj/DatabaseSettingsWindow.strings @@ -1,7 +1,15 @@ - /* Class = "NSWindow"; title = "Window"; ObjectID = "1"; */ "1.title" = "Окно"; +/* Class = "NSTextFieldCell"; title = "Threads"; ObjectID = "2QI-ne-N5d"; */ +"2QI-ne-N5d.title" = "Потоков"; + +/* Class = "NSTextFieldCell"; title = "Iterations"; ObjectID = "2ZA-Gc-JdZ"; */ +"2ZA-Gc-JdZ.title" = "Повторений"; + +/* Class = "NSTextFieldCell"; title = "Enforce key change"; ObjectID = "5QH-N1-FHK"; */ +"5QH-N1-FHK.title" = "Смена ключа:"; + /* Class = "NSTextFieldCell"; title = "Database name:"; ObjectID = "190"; */ "190.title" = "Имя базы данных:"; @@ -21,15 +29,12 @@ "370.label" = "Безопасность"; /* Class = "NSButtonCell"; title = "Enable Entry History"; ObjectID = "532"; */ -"532.title" = "Включить Историю Записи"; +"532.title" = "Включить историю записи"; /* Class = "NSButtonCell"; title = "Enable Recycle Bin"; ObjectID = "536"; */ "536.title" = "Включить Корзину"; -/* Class = "NSButtonCell"; title = "Empty Recycle Bin on Quit"; ObjectID = "540"; */ -"540.title" = "Очищать корзину при выходе"; - -/* Class = "NSTextFieldCell"; title = "Maximum Items:"; ObjectID = "558"; */ +/* Class = "NSTextFieldCell"; title = "Maximum items in history:"; ObjectID = "558"; */ "558.title" = "Максимум элементов:"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "680"; */ @@ -38,7 +43,7 @@ /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "957"; */ "957.title" = "Отмена"; -/* Class = "NSTextFieldCell"; title = "Maximum Size:"; ObjectID = "1269"; */ +/* Class = "NSTextFieldCell"; title = "Maximum history size:"; ObjectID = "1269"; */ "1269.title" = "Максимальный размер:"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "1396"; */ @@ -62,26 +67,39 @@ /* Class = "NSTextFieldCell"; title = "Default Username:"; ObjectID = "1591"; */ "1591.title" = "Имя пользователя по умолчанию:"; -/* Class = "NSTextFieldCell"; title = "Key encryption rounds:"; ObjectID = "1644"; */ -"1644.title" = "Проходов шифрования ключа:"; - /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "1740"; */ "1740.title" = "OtherViews"; -/* Class = "NSButtonCell"; title = "Benchmark"; ObjectID = "1775"; */ -"1775.title" = "Тест"; +/* Class = "NSTextFieldCell"; title = "File format:"; ObjectID = "bTk-YZ-x0G"; */ +"bTk-YZ-x0G.title" = "Формат файла"; + +/* Class = "NSButtonCell"; title = "Recommend key change"; ObjectID = "CtU-Eq-dgy"; */ +"CtU-Eq-dgy.title" = "Рекомендовать смену ключа"; + +/* Class = "NSTextFieldCell"; title = "Algorithm"; ObjectID = "GVd-KH-pHc"; */ +"GVd-KH-pHc.title" = "Алгоритм"; + +/* Class = "NSTextFieldCell"; title = "Encryption:"; ObjectID = "gxY-UL-bEG"; */ +"gxY-UL-bEG.title" = "Шифрование:"; + +/* Class = "NSTextFieldCell"; title = "Memory"; ObjectID = "iRY-If-Kwn"; */ +"iRY-If-Kwn.title" = "Память"; + +/* Class = "NSTextFieldCell"; title = "Recyclebin Group:"; ObjectID = "kI5-Kp-byE"; */ +"kI5-Kp-byE.title" = "Группа для корзины:"; + +/* Class = "NSButtonCell"; title = "Force key change once after unlocking"; ObjectID = "pA1-aL-KjT"; */ +"pA1-aL-KjT.title" = "Принудительная смена ключа после разблокировки"; -/* Class = "NSButtonCell"; title = "Recommend key change every:"; ObjectID = "CtU-Eq-dgy"; */ -"CtU-Eq-dgy.title" = "Рекомендовать сменую ключа каждые:"; +/* Class = "NSBox"; title = "Key derivation"; ObjectID = "pbl-Mb-r8V"; */ +"pbl-Mb-r8V.title" = "Функция формирования ключа"; -/* Class = "NSTextFieldCell"; placeholderString = "days"; ObjectID = "M9G-Yy-1s4"; */ -"M9G-Yy-1s4.placeholderString" = "дней"; +/* Class = "NSTextFieldCell"; title = "Rounds"; ObjectID = "uUQ-9s-M5E"; */ +"uUQ-9s-M5E.title" = "Раунды"; -/* Class = "NSTextFieldCell"; placeholderString = "days"; ObjectID = "Nca-aw-6rR"; */ -"Nca-aw-6rR.placeholderString" = "дней"; +/* Class = "NSTextFieldCell"; title = "Recommend key change"; ObjectID = "Xib-Fn-sqx"; */ +"Xib-Fn-sqx.title" = "Рекомендация смены ключа:"; -/* Class = "NSTextFieldCell"; title = "Disabling password protection will remove unallowed characters in passwords. This will cause data loss after saving."; ObjectID = "iZR-sj-MHg"; */ -"iZR-sj-MHg.title" = "Отключение защиты пароля удалит все недопустимые символы в уже сохраненных паролях. Это может вызвать потерю данных после сохранения."; +/* Class = "NSButtonCell"; title = "Force key change"; ObjectID = "z6u-YT-7LE"; */ +"z6u-YT-7LE.title" = "Требовать смену ключа"; -/* Class = "NSButtonCell"; title = "Force key change every:"; ObjectID = "z6u-YT-7LE"; */ -"z6u-YT-7LE.title" = "Требовать сменую ключа каждые:"; diff --git a/MacPass/ru.lproj/DuplicateEntryOptionsWindow.strings b/MacPass/ru.lproj/DuplicateEntryOptionsWindow.strings index 59e0aa059..b760312c7 100644 --- a/MacPass/ru.lproj/DuplicateEntryOptionsWindow.strings +++ b/MacPass/ru.lproj/DuplicateEntryOptionsWindow.strings @@ -1,18 +1,18 @@ +/* Class = "NSButtonCell"; title = "Reference password instead of copying it"; ObjectID = "daA-QV-CDq"; */ +"daA-QV-CDq.title" = "Создать ссылку на пароль вместо копирования"; + +/* Class = "NSButtonCell"; title = "Duplicate history"; ObjectID = "dXl-KS-4rE"; */ +"dXl-KS-4rE.title" = "Скопировать историю"; /* Class = "NSButtonCell"; title = "Reference username instead of copying it"; ObjectID = "O9X-XH-n8o"; */ -"O9X-XH-n8o.title" = "Reference username instead of copying it"; +"O9X-XH-n8o.title" = "Создать ссылку на имя пользователя вместо копирования"; -/* Class = "NSWindow"; title = "Window"; ObjectID = "QvC-M9-y7g"; */ -"QvC-M9-y7g.title" = "Window"; +/* Class = "NSWindow"; title = "Duplicate Entry Options"; ObjectID = "QvC-M9-y7g"; */ +"QvC-M9-y7g.title" = "Опции копирования"; /* Class = "NSButtonCell"; title = "Duplicate Entry"; ObjectID = "WqI-qH-ARf"; */ -"WqI-qH-ARf.title" = "Duplicate Entry"; - -/* Class = "NSButtonCell"; title = "Duplicate history"; ObjectID = "dXl-KS-4rE"; */ -"dXl-KS-4rE.title" = "Duplicate history"; - -/* Class = "NSButtonCell"; title = "Reference password instead of copying it"; ObjectID = "daA-QV-CDq"; */ -"daA-QV-CDq.title" = "Reference password instead of copying it"; +"WqI-qH-ARf.title" = "Скопировать запись"; /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "x6e-bE-Y6R"; */ -"x6e-bE-Y6R.title" = "Cancel"; +"x6e-bE-Y6R.title" = "Отмена"; + diff --git a/MacPass/ru.lproj/EntryInspectorView.strings b/MacPass/ru.lproj/EntryInspectorView.strings index ad9517c67..6e29cf2fa 100644 --- a/MacPass/ru.lproj/EntryInspectorView.strings +++ b/MacPass/ru.lproj/EntryInspectorView.strings @@ -1,3 +1,8 @@ +/* Class = "NSMenuItem"; title = "Save"; ObjectID = "0ok-MC-QMP"; */ +"0ok-MC-QMP.title" = "Сохранить"; + +/* Class = "NSButtonCell"; title = "Enable Autotype"; ObjectID = "9Nx-mE-DK3"; */ +"9Nx-mE-DK3.title" = "Включить Автоввод"; /* Class = "NSButtonCell"; title = "Generate"; ObjectID = "64"; */ "64.title" = "Генерировать"; @@ -20,9 +25,6 @@ /* Class = "NSTextFieldCell"; title = "Tags"; ObjectID = "79"; */ "79.title" = "Тэги"; -/* Class = "NSTabViewItem"; label = "Fields"; ObjectID = "108"; */ -"108.label" = "Поля"; - /* Class = "NSTabViewItem"; label = "Attachments"; ObjectID = "109"; */ "109.label" = "Файлы"; @@ -41,9 +43,6 @@ /* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "171"; */ "171.title" = "Табличный вид"; -/* Class = "NSTextFieldCell"; title = "Custom Fields"; ObjectID = "190"; */ -"190.title" = "Пользовательские поля"; - /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "197"; */ "197.title" = "Текст"; @@ -53,44 +52,23 @@ /* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "214"; */ "214.placeholderString" = "Значение"; -/* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "225"; */ -"225.placeholderString" = "Значение"; - -/* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "228"; */ -"228.placeholderString" = "Заголовок"; - /* Class = "NSSegmentedCell"; 238.ibShadowedLabels[0] = "General"; ObjectID = "238"; */ "238.ibShadowedLabels[0]" = "Общие"; /* Class = "NSSegmentedCell"; 238.ibShadowedLabels[1] = "Files"; ObjectID = "238"; */ "238.ibShadowedLabels[1]" = "Файлы"; -/* Class = "NSSegmentedCell"; 238.ibShadowedLabels[3] = "Autotype"; ObjectID = "238"; */ +/* Class = "NSSegmentedCell"; 238.ibShadowedLabels[2] = "Autotype"; ObjectID = "238"; */ "238.ibShadowedLabels[2]" = "Автоввод"; -/* Class = "NSMenuItem"; title = "Save"; ObjectID = "0ok-MC-QMP"; */ -"0ok-MC-QMP.title" = "Сохранить"; - -/* Class = "NSButtonCell"; title = "Enable Autotype"; ObjectID = "9Nx-mE-DK3"; */ -"9Nx-mE-DK3.title" = "Включить Автоввод"; - -/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "NtM-y3-l4D"; */ -"NtM-y3-l4D.title" = "Быстрый просмотр"; - -/* Class = "NSTextFieldCell"; placeholderString = "Custom Entry Sequence"; ObjectID = "R2X-Ex-c6q"; */ -"R2X-Ex-c6q.placeholderString" = "Пользовательская запись"; - -/* Class = "NSTextFieldCell"; title = "Window Sequence"; ObjectID = "RQB-bR-MC0"; */ -"RQB-bR-MC0.title" = "Окно"; - -/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "bQ5-0E-h3O"; */ -"bQ5-0E-h3O.title" = "Автоввод"; +/* Class = "NSMenuItem"; title = "Delete"; ObjectID = "bke-G2-oEf"; */ +"bke-G2-oEf.title" = "Удалить"; /* Class = "NSTextFieldCell"; title = "Window Title"; ObjectID = "bkO-Bk-AuX"; */ "bkO-Bk-AuX.title" = "Заголовок Окна"; -/* Class = "NSMenuItem"; title = "Delete"; ObjectID = "bke-G2-oEf"; */ -"bke-G2-oEf.title" = "Удалить"; +/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "bQ5-0E-h3O"; */ +"bQ5-0E-h3O.title" = "Автоввод"; /* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "dyA-lo-PGa"; */ "dyA-lo-PGa.title" = "Табличный просмотр"; @@ -107,11 +85,23 @@ /* Class = "NSTextFieldCell"; title = "Window Associations"; ObjectID = "ned-1Q-FXA"; */ "ned-1Q-FXA.title" = "Ассоциации для окон"; +/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "NtM-y3-l4D"; */ +"NtM-y3-l4D.title" = "Быстрый просмотр"; + /* Class = "NSButtonCell"; title = "Obfuscate Autotype"; ObjectID = "oNq-kB-3eb"; */ "oNq-kB-3eb.title" = "Шифровать Автоввод"; +/* Class = "NSTextFieldCell"; placeholderString = "Custom Entry Sequence"; ObjectID = "R2X-Ex-c6q"; */ +"R2X-Ex-c6q.placeholderString" = "Пользовательская запись"; + +/* Class = "NSTextFieldCell"; title = "Window Sequence"; ObjectID = "RQB-bR-MC0"; */ +"RQB-bR-MC0.title" = "Окно"; + /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "sNS-o1-pD7"; */ "sNS-o1-pD7.title" = "OtherViews"; /* Class = "NSTextFieldCell"; title = "UUID"; ObjectID = "vTq-N1-5oa"; */ "vTq-N1-5oa.title" = "UUID"; + +/* Class = "NSButtonCell"; title = "Show Plugin Data"; ObjectID = "X9y-K7-lix"; */ +"X9y-K7-lix.title" = "Показать данные плагинов"; diff --git a/MacPass/ru.lproj/GeneralSettings.strings b/MacPass/ru.lproj/GeneralPreferences.strings similarity index 57% rename from MacPass/ru.lproj/GeneralSettings.strings rename to MacPass/ru.lproj/GeneralPreferences.strings index 82c723736..3c4c7b086 100644 --- a/MacPass/ru.lproj/GeneralSettings.strings +++ b/MacPass/ru.lproj/GeneralPreferences.strings @@ -1,15 +1,20 @@ +/* Class = "NSMenuItem"; title = "after 5 Minutes"; ObjectID = "5gh-b6-cmG"; */ +"5gh-b6-cmG.title" = "через 5 минут"; + +/* Class = "NSButtonCell"; title = "Clear all stored locations"; ObjectID = "8Ri-2s-c39"; */ +"8Ri-2s-c39.title" = "Очистить все сохраненные пути"; /* Class = "NSMenu"; title = "ClipboardClearInterval"; ObjectID = "421"; */ "421.title" = "ClipboardClearInterval"; /* Class = "NSMenuItem"; title = "after 10 Seconds"; ObjectID = "422"; */ -"422.title" = "после 10 Секунд"; +"422.title" = "через 10 секунд"; /* Class = "NSMenuItem"; title = "after 30 Seconds"; ObjectID = "423"; */ -"423.title" = "после 30 Секунд"; +"423.title" = "через 30 секунд"; /* Class = "NSMenuItem"; title = "after 1 Minute"; ObjectID = "424"; */ -"424.title" = "после 1 Минуты"; +"424.title" = "через 1 минуту"; /* Class = "NSMenuItem"; title = "Never"; ObjectID = "429"; */ "429.title" = "Никогда"; @@ -30,13 +35,13 @@ "586.title" = "LockTimes"; /* Class = "NSMenuItem"; title = "for 1 Minute"; ObjectID = "588"; */ -"588.title" = "через 1 Минуту"; +"588.title" = "через 1 минуту"; /* Class = "NSMenuItem"; title = "for 5 Minutes"; ObjectID = "589"; */ -"589.title" = "через 5 Минут"; +"589.title" = "через 5 минут"; /* Class = "NSMenuItem"; title = "for 15 Minutes"; ObjectID = "603"; */ -"603.title" = "через 15 Минут"; +"603.title" = "через 15 минут"; /* Class = "NSButtonCell"; title = "Lock after sleep"; ObjectID = "631"; */ "631.title" = "Заблокировать после засыпания"; @@ -47,17 +52,30 @@ /* Class = "NSTextFieldCell"; title = "Lock while idle"; ObjectID = "806"; */ "806.title" = "Блокировать при простое"; -/* Class = "NSButtonCell"; title = "Create new Database if activated"; ObjectID = "880"; */ -"880.title" = "Создать новую базу данных при активации"; - -/* Class = "NSBox"; title = "Startup"; ObjectID = "888"; */ +/* Class = "NSBox"; title = "File Handling"; ObjectID = "888"; */ "888.title" = "Запуск"; -/* Class = "NSButtonCell"; title = "Clear all stored locations"; ObjectID = "8Ri-2s-c39"; */ -"8Ri-2s-c39.title" = "Очистить все сохраненные пути"; - /* Class = "NSTextFieldCell"; title = "Enabling this compromises security. If enabled, your preferences will contain mappings from database to keyfile. Key locations for databases without a password will not be saved."; ObjectID = "ACh-7H-42N"; */ "ACh-7H-42N.title" = "Включение этой опции уменьшает безопасность. Если включено, ваши настройки будут содержать привязку базы данных к файлу ключей. Пути к ключу для баз данных без пароля сохранены не будут."; +/* Class = "NSButtonCell"; title = "Lock after log out"; ObjectID = "Dzn-9R-JjE"; */ +"Dzn-9R-JjE.title" = "Заблокировать при выходе из сиситемы"; + +/* Class = "NSButtonCell"; title = "Prevent Universal Clipboard support"; ObjectID = "fNy-mS-phi"; */ +"fNy-mS-phi.title" = "Запретить Universal Clipboard"; + +/* Class = "NSTextFieldCell"; title = "Disabling this compromises security. If enabled, anything copied to the Clipboard in MacPass will be available on your connected iOS devices. You should clear the clipboard on those devices manually."; ObjectID = "JGX-Tp-KJk"; */ +"JGX-Tp-KJk.title" = "Отключение этой опции уменьшает безопасность. Если отключено, информация скопированная в буфер обмена в MacPass будет доступна на всех устройствах вашего Apple ID аккаунта. Вы должны очистить буфер обмена вручную."; + +/* Class = "NSTextFieldCell"; title = "If file changes:"; ObjectID = "QrK-hM-Xt1"; */ +"QrK-hM-Xt1.title" = "Если файл изменился:"; + /* Class = "NSButtonCell"; title = "Remember Keyfile for Databases"; ObjectID = "r6q-He-nYU"; */ "r6q-He-nYU.title" = "Запомнить файл ключей для базы данных"; + +/* Class = "NSButtonCell"; title = "Enable Autosave"; ObjectID = "wG7-bi-2fi"; */ +"wG7-bi-2fi.title" = "Включить автосохранение"; + +/* Class = "NSTextFieldCell"; title = "Close and open all documents for changes to take effect"; ObjectID = "ya5-ps-c4W"; */ +"ya5-ps-c4W.title" = "Закройте и откройте заново все документы, чтобы применить изменения"; + diff --git a/MacPass/ru.lproj/GroupInspectorView.strings b/MacPass/ru.lproj/GroupInspectorView.strings index 40c450e31..e1289fb3b 100644 --- a/MacPass/ru.lproj/GroupInspectorView.strings +++ b/MacPass/ru.lproj/GroupInspectorView.strings @@ -1,3 +1,5 @@ +/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "6FG-UZ-Adh"; */ +"6FG-UZ-Adh.title" = "Последовательность автоввода"; /* Class = "NSTextFieldCell"; title = "Name"; ObjectID = "25"; */ "25.title" = "Имя"; @@ -17,5 +19,6 @@ /* Class = "NSTextFieldCell"; title = "Autotype"; ObjectID = "277"; */ "277.title" = "Автоввод"; -/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "6FG-UZ-Adh"; */ -"6FG-UZ-Adh.title" = "Последовательность автоввода"; +/* Class = "NSButtonCell"; title = "Show Plugin Data"; ObjectID = "qGr-oT-WjP"; */ +"qGr-oT-WjP.title" = "Показать данные плагинов"; + diff --git a/MacPass/ru.lproj/IconSelection.strings b/MacPass/ru.lproj/IconSelection.strings index 0b4971004..e0d1009f8 100644 --- a/MacPass/ru.lproj/IconSelection.strings +++ b/MacPass/ru.lproj/IconSelection.strings @@ -1,6 +1,9 @@ +/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "1kM-cI-P1o"; */ +"1kM-cI-P1o.title" = "Отмена"; /* Class = "NSButtonCell"; title = "Use Default Icon"; ObjectID = "102"; */ "102.title" = "Использовать иконку по умолчанию"; -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "1kM-cI-P1o"; */ -"1kM-cI-P1o.title" = "Отмена"; +/* Class = "NSButtonCell"; title = "Download Icon"; ObjectID = "iaf-XW-XUo"; */ +"iaf-XW-XUo.title" = "Скачать иконку"; + diff --git a/MacPass/ru.lproj/InspectorView.strings b/MacPass/ru.lproj/InspectorView.strings index bf6a7dca9..570962c0e 100644 --- a/MacPass/ru.lproj/InspectorView.strings +++ b/MacPass/ru.lproj/InspectorView.strings @@ -1,4 +1,3 @@ - /* Class = "NSTabViewItem"; label = "Group"; ObjectID = "2896"; */ "2896.label" = "Группа"; @@ -14,14 +13,9 @@ /* Class = "NSTextFieldCell"; title = "Label"; ObjectID = "3014"; */ "3014.title" = "Ярлык"; -/* Class = "NSButtonCell"; title = "Edit"; ObjectID = "3110"; */ -"3110.title" = "Изменить"; - -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "3127"; */ -"3127.title" = "Отметка"; - /* Class = "NSTextFieldCell"; title = "Notes"; ObjectID = "hwn-UY-9Cr"; */ "hwn-UY-9Cr.title" = "Заметки"; -/* Class = "NSButtonCell"; title = "History"; ObjectID = "w1z-1n-b0m"; */ -"w1z-1n-b0m.title" = "История"; +/* Class = "CocoaBindingsConnection"; ibShadowedIsNilPlaceholder = "None"; ObjectID = "Xpb-G8-gXl"; */ +"Xpb-G8-gXl.ibShadowedIsNilPlaceholder" = "Нет"; + diff --git a/MacPass/ru.lproj/IntegrationSettings.strings b/MacPass/ru.lproj/IntegrationPreferences.strings similarity index 61% rename from MacPass/ru.lproj/IntegrationSettings.strings rename to MacPass/ru.lproj/IntegrationPreferences.strings index 93b6b10dd..aa3625117 100644 --- a/MacPass/ru.lproj/IntegrationSettings.strings +++ b/MacPass/ru.lproj/IntegrationPreferences.strings @@ -1,29 +1,40 @@ - /* Class = "NSButtonCell"; title = "Enable global Autotype"; ObjectID = "1qb-Rd-jYu"; */ -"1qb-Rd-jYu.title" = "Включить глобальный Автоввод"; +"1qb-Rd-jYu.title" = "Включить глобальный автоввод"; /* Class = "NSTextFieldCell"; title = "Shortcut"; ObjectID = "6oN-CH-T0O"; */ -"6oN-CH-T0O.title" = "Ярлык"; +"6oN-CH-T0O.title" = "Хоткей"; -/* Class = "NSButtonCell"; title = "Inlcude Host for matches"; ObjectID = "B1D-j9-L8x"; */ +/* Class = "NSButtonCell"; title = "Include Entry URL Host for matches"; ObjectID = "B1D-j9-L8x"; */ "B1D-j9-L8x.title" = "Использовать Хост для совпадений"; /* Class = "NSButtonCell"; title = "Enable Quicklook Preview"; ObjectID = "ERs-ct-Eyx"; */ "ERs-ct-Eyx.title" = "Использовать Быстрый Предпросмотр"; +/* Class = "NSTextFieldCell"; title = "Autotype might not work properly. Some issues where found that prevent Autotype or Global Autotype to work. Please run the Autotype Doctor to fix those issues."; ObjectID = "H37-ku-aTc"; */ +"H37-ku-aTc.title" = "Автоввод может не работать. Обнаружены некоторые проблемы, которые мешают работе автоввода. Пожалуйста, запустите Помощник Автоввода, чтобы исправить эти проблемы."; + /* Class = "NSTextFieldCell"; title = "Shortcut is missing Key"; ObjectID = "Lxp-wI-yQy"; */ -"Lxp-wI-yQy.title" = "Задайте Клавишу для Ярлыка"; +"Lxp-wI-yQy.title" = "Задайте клавишу для хоткея"; + +/* Class = "NSButtonCell"; title = "Run Autotype Doctor…"; ObjectID = "NP0-R3-m6n"; */ +"NP0-R3-m6n.title" = "Запустить Помощник Автоввода…"; /* Class = "NSBox"; title = "Autotype"; ObjectID = "P9N-HM-wER"; */ "P9N-HM-wER.title" = "Автоввод"; +/* Class = "NSButtonCell"; title = "Interpret ⌃ as ⌘"; ObjectID = "QfO-yG-l3F"; */ +"QfO-yG-l3F.title" = "Обрабатывать ⌃ как ⌘"; + /* Class = "NSTextFieldCell"; title = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to."; ObjectID = "QRy-CY-ENC"; */ "QRy-CY-ENC.title" = "Если включено, каждая {CONTROL} комманда будет отправлена как ⌘. Отключайте это только если вы уверены в том, что делаете."; -/* Class = "NSButtonCell"; title = "Interpret ⌃ as ⌘"; ObjectID = "QfO-yG-l3F"; */ -"QfO-yG-l3F.title" = "Обрабатывать ⌃ как ⌘"; +/* Class = "NSButtonCell"; title = "Include Entry Tags for matches"; ObjectID = "rbu-G7-MT8"; */ +"rbu-G7-MT8.title" = "Использовать Тэги для совпадений"; + +/* Class = "NSButtonCell"; title = "Include Entry Title for matches"; ObjectID = "tmL-dT-D0G"; */ +"tmL-dT-D0G.title" = "Использовать Заголовок для совпадений"; -/* Class = "NSButtonCell"; title = "Include URL for matches"; ObjectID = "TzR-00-Vp3"; */ +/* Class = "NSButtonCell"; title = "Include Entry URL for matches"; ObjectID = "TzR-00-Vp3"; */ "TzR-00-Vp3.title" = "Использовать URL для совпадений"; /* Class = "NSBox"; title = "Preview"; ObjectID = "VVs-b5-cX9"; */ @@ -32,8 +43,3 @@ /* Class = "NSTextFieldCell"; title = "If enabled attached files will be copied to a temporary location for preview and deleted after the preview is closed."; ObjectID = "WmI-IB-Aso"; */ "WmI-IB-Aso.title" = "Если включено, прикрепленные файлы будет скопированы во временную папку для предпросмора и удалены, когда предпросмотр будет закрыт."; -/* Class = "NSButtonCell"; title = "Inlcude Tags for matches"; ObjectID = "rbu-G7-MT8"; */ -"rbu-G7-MT8.title" = "Использовать Тэги для совпадений"; - -/* Class = "NSButtonCell"; title = "Inlcude Title for matches"; ObjectID = "tmL-dT-D0G"; */ -"tmL-dT-D0G.title" = "Использовать Заголовок для совпадений"; diff --git a/MacPass/ru.lproj/Localizable.strings b/MacPass/ru.lproj/Localizable.strings index ae83067f5..610053d42 100644 --- a/MacPass/ru.lproj/Localizable.strings +++ b/MacPass/ru.lproj/Localizable.strings @@ -1,85 +1,378 @@ /* Count of characters remaining in pickchars dialog */ "%ld_CHARACTERS_TO_PICK_REMAINING" = "%ld символ(ов) для выбора осталось"; -/* Formatted Times */ +/* Display format for days. Should contain a long decimal placeholder! */ "%ld_DAYS" = "%ld дней"; + +/* % days ago */ "%ld_DAYS_AGO" = "%ld дней назад"; + +/* % Hours ago */ "%ld_HOURS_AGO" = "около %ld часов назад"; + +/* % Minutes ago */ "%ld_MINUTES_AGO" = "%ld минут назад"; + +/* % Weeks ago */ "%ld_WEEKS_AGO" = "%ld недель назад"; -"JUST_NOW" = "Прямо сейчас"; -"LAST_WEEK" = "Прошлая неделя"; -"ONE_WEEK_AGO" = "Одна неделя назад"; -"YESTERDAY" = "Вчера"; -"TOMORROW" = "Завтра"; -"ONE_WEEK" = "Через одну неделю"; -"ONE_MONTH" = "через один месяц"; + +/* preset to expire after 90 days from now */ "90_DAYS" = "через 90 дней"; -"ONE_YEAR" = "через один год"; /* Button label to abort a merge on a file with changed master key! */ "ABORT_MERGE_KEEP_MINE" = "Отменить слияние. Оставить мою."; -/* Date Picker */ -"SELECT_DATE_PRESET" = "Использовать установки…"; +/* Toolbar item with action menu */ +"ACTION" = "Действие"; -/* Menu item for automatic trash creation */ -"AUTOCREATE_TRASH_FOLDER" = "Создать Автоматически"; +/* Menu item title for adding an hmacotp config attribute */ +"ADD_CUSTOM_ATTRIBUTE_HMACOTP_CONFIG" = "Добавить конфигурацию OTP"; + +/* Menu item title for adding an hmacotp seed attribute */ +"ADD_CUSTOM_ATTRIBUTE_HMACOTP_SEED" = "Добавить сид OTP"; /* Menu displayed for adding special custom keys */ "ADD_CUSTOM_FIELD_CONTEXT_MENU" = "Меню добавления пользовательских полей"; +/* Action to add an entry via template */ +"ADD_TREMPLATE_ENTRY" = "Создать шаблонную запись"; + +/* Allow the download of the plugin repository file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_ALLOW_DOWNLOAD" = "Разрешить обновление"; + +/* Informative text displayed on the alert that shows up when MacPass asks for permssion to download the plugin repository JSON file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_CONNECTION_PERMISSION_INFORMATIVE_TEXT" = "Информация о плагинах находится на сайте https://macpassapp.org. MacPass скачает файлы чтобы проверить наличие обновлений."; + +/* Message displayed on the alert that asks for permission to download the plugin repository JSON file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_CONNECTION_PERMISSION_MESSAGE" = "Проверять обновления плагинов?"; + +/* Disallow the download of the plugin repository file */ +"ALERT_ASK_FOR_PLUGIN_REPOSITORY_DISALLOW_DOWNLOAD" = "Запретить обновление"; + +/* Button in dialog to leave autotype disabled and continiue! */ +"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OK" = "Оставить отключенным"; + +/* Button in dialog to open accessibilty preferences pane! */ +"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OPEN_PREFERENCES" = "Открыть настройки универсального доступа"; + +/* Alert informative text displayed when Autotype performs self check and lacks accessibilty permissions */ +"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_INFORMATIVE_TEXT" = "Система запрещает MacPass отправлять нажатия клавиш в другие приложения. Для включения автоввода, пожалуйста, предоставьте универсальный доступ для MacPass в настройках безопасности системы."; + +/* Alert message displayed when Autotype performs self check and lacks accessibilty permissions */ +"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_MESSAGE_TEXT" = "MacPass не может выполнить автоввод"; + +/* Button in dialog to leave plugin ds disabled and continiue! */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OK" = "ОК"; + +/* Button in dialog to open plugin preferences pane! */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OPEN_PREFERENCES" = "Открыть настройки"; + +/* Informative text of the alert displayed when plugins where disabled due to incompatibilty */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_INFORMATIVE_TEXT" = "Некоторые плагины были отключены, так как они не совместимы с текущей версией MacPass. Перейдите в настройки для подробностей."; + +/* Message text of the alert displayed when plugins where disabled due to incompatibilty */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_MESSAGE" = "Обнаружены несовместимые плагины"; + /* Alert informative text when plugins or their settings change and require a restart */ "ALERT_INFORMATIVE_TEXT_PLUGINS_CHANGED_SUGGEST_RESTART" = "Изменения плагинов и глобальных настроек плагинов, будут применены только после перезапуска. Перезапустить MacPass сейчас?"; /* Alert informative text to ask the user if he really want to uninstall the plugin */ "ALERT_INFORMATIVE_TEXT_REALLY_UNINSTALL_PLUGIN" = "Плагин будет перемещен в Корзину"; +/* Button in dialog to cancel merge of KDB file changes! */ +"ALERT_MERGE_CANCEL" = "Отмена"; + +/* Button in dialog to merge KDB changes into file! */ +"ALERT_MERGE_CONTINUE" = "Объединить файлы"; + +/* Informative text displayed when merging KDB files */ +"ALERT_MERGE_KDB_FILE_INFO_TEXT" = "KDB базы не содержат достаточной информации для бесшовного объединения. Записи будут объединены и данные не будут потеряны, но из-за того что группы сравниваются только по имени, могут произойти неожиданные изменения. Перемещённые записи могут быть возвращены обратно в их старую группу, или переименованные группы не будут объединены. Также удалённые записи могут появиться снова из-за того что информация о удалённых объектах не зранится в базе. Вы уверены, что хотите продолжить?"; + +/* Alert message warning user about KDB file merge */ +"ALERT_MERGE_KDB_FILE_MESSAGE" = "Необходимо объединение KDB файлов"; + /* Alert message text when plugins or their settings change and require a restart */ "ALERT_MESSAGE_PLUGINS_CHANGED_SUGGEST_RESTART" = "Настройки плагина изменены. Пожалуйста, перезапустите программу."; /* Alert message text to ask the user if he really want to uninstall the plugin. Include %@ placeholder for plugin name */ "ALERT_MESSAGE_TEXT_REALLY_UNINSTALL_PLUGIN_%@" = "Должен ли плагин %@ быть удален?"; +/* Informative text of the disabled updates alert! */ +"ALERT_UPDATES_DISABLED_INFORMATIVE_TEXT_%@!" = "Обновления для текущей сборки %@ отключены!"; + +/* Message text for disabled updates alert! */ +"ALERT_UPDATES_DISABLED_MESSAGE_TEXT" = "Обновления отключены"; + +/* Attachments column title (shows counts) + Menu item to toggle display of attachment count column in entry table */ +"ATTACHMENTS" = "Файлы"; + /* Sucessfully merged external changes */ "AUTO_MERGE_NOTIFICATION_TEXT" = "Автоматическое слияние успешно завершено!"; +/* Menu item for automatic trash creation */ +"AUTOCREATE_TRASH_FOLDER" = "Создать Автоматически"; + +/* Message text in the autotype selection window. Placeholder is %1 - windowTitle */ +"AUTOTYPE_CANDIDATE_SELECTION_WINDOW_MESSAGE_%@" = "Найдено несколько совпадений для текущего окна: %@. Выберите какое совпадение следует использовать."; + +/* Window title for the stand-alone password creator window */ +"AUTOTYPE_DOCTOR_RESULTS_WINDOW_TITLE" = "Помощник автоввода"; + +/* Inherit autotype settings menu item */ +"AUTOTYPE_INHERIT" = "Наследовать Настройки Автоввода"; + +/* Message displayed to the user to unlock the database to perform global autotype */ +"AUTOTYPE_MESSAGE_UNLOCK_DATABASE" = "Пожалуйста разблокируйте базу для использования глобального автоввода"; + +/* Disable autotype menu item */ +"AUTOTYPE_NO" = "Отключить Автоввод"; + +/* Notification: Autotype failed, MacPass has not enough permissions to perform autotype */ +"AUTOTYPE_NOTIFICATION_MACPASS_IS_MISSING_PERMISSIONS" = "MacPass не имеет необходимых разрешений для выполнения автоввода"; + +/* Notification: Autotype failed, no documents are open */ +"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Откройте файл базы данных для использования глобального автоввода!"; + +/* Noticiation: Autotype failed to find a match for %@ (string placeholder) */ +"AUTOTYPE_OVERLAY_NO_MATCH_FOR_%@" = "Нет соответствий %@!"; + +/* Notification: Autotype found a single match for %@ (string placeholder). */ +"AUTOTYPE_OVERLAY_SINGLE_MATCH_FOR_%@" = "Найдено совпадение с %@"; + +/* Status lable when no issue were found in accessibilty */ +"AUTOTYPE_STATUS_ACCESSIBILTY_PERMISSIONS_OK" = "MacPass имеет разрешение на управление компьютером"; + +/* Status MacPass has no accessibilty permissions */ +"AUTOTYPE_STATUS_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass не имеет разрешения на управление компьютером"; + +/* Status MacPass has no screen recording permissions */ +"AUTOTYPE_STATUS_NO_SCREEN_RECORDING_PERMISSIONS" = "MacPass не имеет разрешения на запись экрана"; + +/* Status lable when no issue were found in screen recording permissions */ +"AUTOTYPE_STATUS_SCREEN_RECORDING_PERMISSIONS_OK" = "MacPass имеет разрешение на запись экрана"; + +/* Notficication: Autotype timed out */ +"AUTOTYPE_TIMED_OUT" = "Истекло время автоввода"; + +/* Enable autotype menu item */ +"AUTOTYPE_YES" = "Включить Автоввод"; + +/* Cancel */ +"CANCEL" = "Отмена"; + +/* Menu item in the database outline context menu to change the database name */ +"CHANGE_DATABASE_NAME" = "Изменить Имя базы данных"; + /* Button to postpone the password change */ "CHANGE_LATER" = "Изменить позже"; +/* Button to show the password change dialog + Single button to show the password change dialog */ +"CHANGE_PASSWORD_WITH_DOTS" = "Изменить пароль…"; + +/* Menu item in the database outline context menu to change the trash group */ +"CHANGE_TRASH_GROUP" = "Изменить группу для мусора"; + +/* Button title in the key file selection dialog for selecting a key */ +"CHOOSE_FILE_BUTTON_TITLE" = "Открыть"; + /* Clear Autotype Button */ -"CLEAR_AUTOTYPE" = "Очистить Авто-ввод"; +"CLEAR_AUTOTYPE" = "Очистить Автоввод"; + +/* Menu to clear recent searches */ +"CLEAR_RECENT_SEARCHES" = "Очистить последние запросы"; + +/* String displayed at dock badge when clipboard is about to be cleared */ +"CLEARING_PASTEBOARD" = "…"; + +/* Field name that was copied to the pasteboard */ +"COPIED_FIELD_%@" = "Скопировано %@"; + +/* Context menu that copies reference to note */ +"COPIED_NOTES_REFERENCE" = "Ссылка на заметку скопирована!"; + +/* Password was copied to the pasteboard */ +"COPIED_PASSWORD" = "Пароль скопирован!"; + +/* Context menu that copies reference to password */ +"COPIED_PASSWORD_REFERENCE" = "Ссылка на пароль скопирована!"; + +/* Context menu that copies reference to title */ +"COPIED_TITLE_REFERENCE" = "Ссылка на заголовок скопирована!"; + +/* URL was copied to the pasteboard */ +"COPIED_URL" = "URL скопирован!"; + +/* Context menu that copies reference to URL */ +"COPIED_URL_REFERENCE" = "Ссылка на URL скопирована!"; + +/* Username was copied to the pasteboard */ +"COPIED_USERNAME" = "Имя пользователя скопировано!"; + +/* Context menu that copies reference to username */ +"COPIED_USERNAME_REFERENCE" = "Ссылка на имя пользователя скопирована!"; + +/* Submenu to copy attributes as reference */ +"COPY_AS_REFERENCE" = "Скопировать ссылку на..."; + +/* Context menu sub-menu to copy attributes as reference */ +"COPY_AS_REFERENCE_MENU" = "Скопировать ссылку на..."; + +/* Submenu to Copy custom fields */ +"COPY_CUSTOM_FIELDS" = "Копировать поля"; /* Context menu sub-menu to copy custom fields to clipboard */ "COPY_CUSTOM_FIELDS_MENU" = "Копировать пользовательское поле…"; +/* Action name when an entry was moved + Action title for copying an entry via drag and drop */ +"COPY_ENTRY" = "Копировать Запись"; + +/* Mask for title to copy field value */ +"COPY_FIELD_%@" = "Копировать %@"; + +/* Action title for copying a group via drag and drop */ +"COPY_GROUP" = "Копировать Группу"; + +/* Context menu that copies reference to note */ +"COPY_NOTES_REFERENCE" = "Заметки"; + +/* Menu item to copy the password of an entry + Toolbar item copy password */ +"COPY_PASSWORD" = "Копировать Пароль"; + +/* Context menu that copies reference to password */ +"COPY_PASSWORD_REFERENCE" = "Пароль"; + +/* Context menu that copies reference to title */ +"COPY_TITLE_REFERENCE" = "Заголовок"; + +/* Menu item to copy the URL of an entry */ +"COPY_URL" = "Копировать URL"; + +/* Context menu that copies reference to URL */ +"COPY_URL_REFERENCE" = "URL"; + +/* Menu item to copy the username of an entry + Toolbar item copy username */ +"COPY_USERNAME" = "Копировать Имя пользователя"; + +/* Context menu that copies reference to username */ +"COPY_USERNAME_REFERENCE" = "Имя пользователя"; + /* Curstom attribute reference item */ "CUSTOM_ATTRIBUTE" = "Пользовательский атрибут"; /* Title for menu for custom search filters */ "CUSTOM_SEARCH_FILTER_MENU" = "Пользовательский Поисковый фильтр…"; +/* Default display name for KDB databases */ +"DATABASE" = "База данных"; + +/* Default Browser */ +"DEFAULT_BROWSER" = "Браузер по умолчанию"; + +/* Default Titel for new Custom-Fields */ +"DEFAULT_CUSTOM_FIELD_TITLE" = "Поле"; + +/* Default Value for new Custom-Fields */ +"DEFAULT_CUSTOM_FIELD_VALUE" = "Значение"; + +/* Title for a newly created entry */ +"DEFAULT_ENTRY_TITLE" = "Новая Запись"; + +/* Title for a newly created group */ +"DEFAULT_GROUP_NAME" = "Новая Группа"; + +/* Default window title for a new window association */ +"DEFAULT_WINDOW_TITLE" = "Заголовок Окна"; + +/* Menu item in the database outline context menu to delete the node from the trash + Menu item to delete an entry + Menu item to delete the selected attached file + Menu item to delete the selected custom icon + Toolbar item delete item */ +"DELETE" = "Удалить"; + +/* Delete Entry */ +"DELETE_ENTRY" = "Удалить Запись"; + +/* Delete Group */ +"DELETE_GROUP" = "Удалить Группу"; + /* Empty Trash */ "DELETE_TRASHED_ENTRY" = "Удалить запись из корзины"; /* Empty Trash */ "DELETE_TRASHED_GROUP" = "Удалить группу из корзины"; +/* Action title for copying an entry via drag and drop to another database + Action title for moving an entry via drag and drop */ +"DRAG_ENTRY" = "Перетащить запись"; + +/* Action title for moving a group via drag and drop + Actiontitle for copying groups via drag and drop to antother database */ +"DRAG_GROUP" = "Перетащить группу"; + /* Action name for duplicating entries */ "DUPLICATE_ENTRIES_%ld" = "Дублирующиеся записи %ld"; +/* Menu item to directly diplicate an entry */ +"DUPLICATE_ENTRY" = "Скопировать Запись"; + +/* Menu item to duplicate an entry with options how to duplicate. Will present a dialog. */ +"DUPLICATE_ENTRY_WITH_OPTIONS" = "Скопировать Запись…"; + +/* Menu item in the database outline context menu to change the template group + Menu item on the add entry context menu to edit template groups */ +"EDIT_TEMPLATE_GROUP" = "Изменить группу шаблона"; + +/* Empty Trash + Menu item in the database outline context menu to empyt the trash + Menu item in the database outline to empty the trash + Menu item to empty the trash */ +"EMPTY_TRASH" = "Очистить Корзину"; + +/* Informative text for the enforce password change alert */ +"ENFORCE_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Вы не можете ничего сохранять, пока не поменяете пароль базы и/или файл ключа."; + +/* Message text for the enforce password change alert */ +"ENFORCE_PASSWORD_CHANGE_ALERT_TITLE" = "Пароль базы данных истек!"; + /* Group row for entry attributes */ "ENTRY_CUSTOM_ATTRIBUTES" = "Пользовательские атрибуты"; /* Group row for entry attributes */ "ENTRY_DEFAULT_ATTRIBUTES" = "Атрибуты по умолчанию"; +/* Tooltip displayed on the index header cell */ +"ENTRY_INDEX_COLUMN_TOOLTIP" = "Колонка для сортировки по предпочтению пользователя"; + +/* Keyfile not valid */ +"ERROR_INVALID_KEYFILE" = "Неверный файл ключа!"; + /* Error description given when adding an invalid plugin */ "ERROR_INVALID_PLUGIN" = "Недействительный плагин"; +/* Error description for missing accessibilty permissions */ +"ERROR_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass не имеет разрешения на управление компьютером (Универсальный доступ)"; + +/* Error description for missing screen recording permissions */ +"ERROR_NO_PERMISSION_TO_RECORD_SCREEN" = "MacPass не имеет разрешения на запись экрана"; + +/* Passwords do not match */ +"ERROR_PASSWORD_MISSMATCH" = "Пароли не соответствуют!"; + +/* Passwords do not match, keyfile is invalid */ +"ERROR_PASSWORD_MISSMATCH_INVALID_KEYFILE" = "Пароли не соответствуют и файл ключа не верный!"; + /* Recommend/Enforce key change intervall format */ "EVERY_%ld_DAYS" = "Каждые %ld дней"; +/* Format to returen the date an item expires. Includes %@ placehoder for date */ +"EXPIRES_AT_DATE_%@" = "Истекает: %@"; + /* The master key was changed by an external program! */ "EXTERN_CHANGE_OF_MASTERKEY" = "Мастер-ключ был изменен другой программой"; @@ -89,18 +382,47 @@ /* External file change strategy option: Keep local file an ignore external changes */ "FILE_CHANGE_STRATEGY_KEEP_MINE" = "Оставить Мою Версию и Игнорировать Другие Изменения"; -/* External file change strategy option: Merge external changes into local file. */ +/* Button in dialog to merge changes into file! + External file change strategy option: Merge external changes into local file. */ "FILE_CHANGE_STRATEGY_MERGE" = "Слить изменения"; /* External file change strategy option: Use the changed file and discard local changes */ "FILE_CHANGE_STRATEGY_USE_OTHER" = "Загрузить Измененную Версию и Отменить Мои Изменения"; -/* Menu item to toggle display of history count column in entry table */ +/* Informative text displayed when the file was change from another application */ +"FILE_CHANGED_BY_OTHERS_INFO_TEXT" = "Загруженный файл отличается от файла на диске. Что вы хотите делать дальше?"; + +/* Message displayed when an open file was changed from another application */ +"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "Файл базы данных изменен!"; + +/* Error while reopening last known documents */ +"FILE_OPEN_ERROR" = "Ошибка открытия файла."; + +/* General Settings Label */ +"GENERAL_PREFERENCES" = "Общие"; + +/* Group column title */ +"GROUP" = "Группа"; + +/* History count column title + Menu item to toggle display of history count column in entry table */ "HISTORY" = "История"; /* Imports a dragged URL for a new entry */ "IMPORT_URL" = "Импорт по URL"; +/* Toolbar item toggle inspector */ +"INSPECTOR" = "Инспектор"; + +/* Label for the integration settings tab */ +"INTEGRATION_SETTINGS" = "Интеграция"; + +/* Just now */ +"JUST_NOW" = "Прямо сейчас"; + +/* Feature only available in kdbx databases */ +"KDBX_ONLY_FEATURE" = "Функция не поддерживается в KDB базе"; + /* Button in dialog to ignore the changes to an open file! */ "KEEP_MINE_DISCARD_OTHER" = "Оставить Мои, Отменить Другие"; @@ -113,6 +435,12 @@ /* Do not restart MacPass */ "KEEP_RUNNING" = "Оставить Запущеным"; +/* last week */ +"LAST_WEEK" = "Прошлая неделя"; + +/* Toolbar item to Lock the database */ +"LOCK" = "Блокировка"; + /* Message in the open panel to add attachments to an entry */ "MESSAGE_ADD_ATTACHMENT_OPEN_PANEL" = "Выберите файл для вложения"; @@ -122,9 +450,66 @@ /* Message in the open panel to import an XML file */ "MESSAGE_XML_OPEN_PANEL" = "Выберите XML файл для импорта"; -/* Ok button */ +/* Menu item to toggle display of modified date column in entry table + Modification date column title */ +"MODIFIED" = "Дата изменения"; + +/* Action name when an entry was moved */ +"MOVE_ENTRY" = "Переместить Запись"; + +/* Menu displayed as popup selection for search options when multiple items are selected */ +"MULTIPLE_FILTERS_ACTIVE_WITH_DOTS" = "Multiple…"; + +/* Name for a newly created Database */ +"NEW_DATABASE" = "База данных"; + +/* Action name for a newly created entry + Menu item to create a new entry + Toolbar item new entry */ +"NEW_ENTRY" = "Добавить Запись"; + +/* Submenu to add an entry via template */ +"NEW_ENTRY_WITH_TEMPLATE_%@" = "Создать запись из шаблона %@"; + +/* Action name for a newly created group + Menu item to create a new group + Toolbar item new group */ +"NEW_GROUP" = "Добавить Группу"; + +/* Expiration date format, when item does not expire */ +"NO_EXPIRE_DATE_SET" = "Никогда не истекает."; + +/* Menu item to reset the template groups */ +"NO_TEMPLATE_GROUP" = "Нет шаблонов"; + +/* Menu item added to show that no templates are defined */ +"NO_TEMPLATES" = "Шаблоны не найдены"; + +/* Null placeholder for item input field + Placeholder text for input fields if no entry or group is selected */ +"NONE" = "Нет"; + +/* Displayed name when notes or part of notes was copied + Menu item to toggle display of notes column in entry table + Notes column title + Notes reference item */ +"NOTES" = "Заметки"; + +/* Ok Button to dismiss disabled updates alert */ "OK" = "OK"; +/* preset to expire after one montch from now */ +"ONE_MONTH" = "через один месяц"; + +/* preset to expire after one week from now */ +"ONE_WEEK" = "Через одну неделю"; + +/* one week ago */ +"ONE_WEEK_AGO" = "Одна неделя назад"; + +/* preset to expire after one year from now */ +"ONE_YEAR" = "через один год"; + /* Open button in the open panel to add attachments to an entry */ "OPEN_BUTTON_ADD_ATTACHMENT_OPEN_PANEL" = "Приложить"; @@ -137,9 +522,44 @@ /* Action button in Notification to open a document */ "OPEN_DOCUMENT" = "Открыть Документ"; +/* Menu item to open the URL with the default application */ +"OPEN_URL" = "Открыть URL"; + +/* Select Browser */ +"OTHER_BROWSER" = "Выберите браузер…"; + /* No comment provided by engineer. */ "OUTPUT_VALUE" = "Выходящее Значение"; +/* Menu item to toggle display of password column in entry table + Password column title + Password reference item */ +"PASSWORD" = "Пароль"; + +/* Window title for the stand-alone password creator window */ +"PASSWORD_CREATOR_WINDOW_TITLE" = "Генератор паролей"; + +/* Button to reset the password defaults for a single entry */ +"PASSWORD_GENERATOR_RESET_ENTRY_DEFAULTS" = "Сброс"; + +/* Button to set the defaults of the password generator */ +"PASSWORD_GENERATOR_SET_DEFAULTS" = "По умолчанию"; + +/* Placeholder for the password field to aks for password + Placeholder in the unlock-password input field if password is enabled */ +"PASSWORD_INPUT_ENTER_PASSWORD" = "Введите пароль"; + +/* Placeholder for the password input field if passwords are disabled + Placeholder for the repeat password input if passwords are disabled + Placeholder in the unlock-password input field if password is disabled */ +"PASSWORD_INPUT_NO_PASSWORD" = "Нет пароля"; + +/* Placeholder for the repeat password field to aks for the repeated password */ +"PASSWORD_INPUT_REPEAT_PASSWORD" = "Повторите пароль"; + +/* Menu item to perform autotype with the selected entry */ +"PERFORM_AUTOTYPE_FOR_ENTRY" = "Осуществить автоввод"; + /* Info about how many character has to pick in pickchar dialog */ "PICKCHAR_INFO_MESSAGE_PICK_CHARACTERS_%ld" = "Пожалуйста, выберите %ld символов"; @@ -152,6 +572,36 @@ /* Window displayed to the user to pick an amout of characters */ "PICKFIELD_WINDOW_TITLE" = "Выбор полей"; +/* Label for the button when a download is in progress! */ +"PLUGIN_BROWSER_ACTION_DOWNLOAD_IN_PROGRESS" = "Загрузка"; + +/* Label for the button when a download did not succeed */ +"PLUGIN_BROWSER_ACTION_RETRY_FAILED_DOWNLOAD" = "Повторить загрузку"; + +/* Label for the button to show a downloaded file */ +"PLUGIN_BROWSER_ACTION_SHOW_DOWNLOADED_FILE" = "Показать загруженный файл"; + +/* Button to download the Plugin */ +"PLUGIN_BROWSER_DOWNLOAD_PLUGIN_BUTTON" = "Скачать"; + +/* Status for an up-to-date plugin in the plugin browser */ +"PLUGIN_BROWSER_LATEST_VERSION_INSTALLED" = "Установлена последняя версия"; + +/* Status for an outdated plugin version in the plugin browser */ +"PLUGIN_BROWSER_NEWER_VERSION_%@_AVAILABLE" = "Доступна версия %@"; + +/* Status for an uninstalled plugin in the plugin browser */ +"PLUGIN_BROWSER_PLUGIN_NOT_INSTALLED" = "Не установлен"; + +/* Status for an unkonw plugin version in the plugin browser */ +"PLUGIN_BROWSER_UNKNOWN_PLUGIN_VERSION_INSTALLED_%@" = "Неизвестная версия"; + +/* Error for a plugin that is disabled. */ +"PLUGIN_ERROR_DISABLED_PLUGIN" = "Этот плагин отключен пользователем"; + +/* Plugin is not with this version of MacPass */ +"PLUGIN_ERROR_HOST_VERSION_NOT_SUPPORTED" = "Плагин не совместим с текущей версией MacPass"; + /* The plugin could not be initalized */ "PLUGIN_ERROR_INTILIZATION_FAILED" = "Плагин не может быть установлен"; @@ -161,21 +611,73 @@ /* Plugin specifies the wrong principla class! */ "PLUGIN_ERROR_WRONG_PRINCIPAL_CLASS" = "Неподходящий основной класс в плагине"; +/* name for disabled unloaded plugin */ +"PLUGIN_NAME_DISABLED_%@" = "🚫 %@"; + +/* Name for unloaded plugin with errors */ +"PLUGIN_NAME_ERROR_%@" = "⚠️ %@"; + +/* Label for plugin settings tab */ +"PLUGIN_SETTINGS" = "Плагины"; + /* Generic message displayed if no details are know why a plugin was not loaded. */ "PLUGIN_SETTINGS_GENERIC_ERROR_MESSAGE" = "Плагин не может быть загружен."; /* Plugin version. Include a %@ placeholder for version string */ "PLUGIN_VERSION_%@" = "Версия: %@"; +/* Menu item to preview the selected attached file. */ +"PREVIEW" = "Предпросмотр"; + +/* Recent searches menu item */ +"RECENT_SEARCHES" = "Последние запросы"; + +/* Informative text for the recommend password change alert */ +"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Рекомендуется сменить пароль базы данных и/или файл ключа."; + +/* Message text for the recommend password change alert */ +"RECOMMEND_PASSWORD_CHANGE_ALERT_TITLE" = "Пожалуйста, измените пароль базы данных!"; + /* Restart */ "RESTART" = "Перезапустить"; /* Action to restore and Entry to a previous state of it's history */ "RESTORE_HISTORY_ENTRY" = "Восстановить Историческую Запись"; +/* Menu item to save the selected attached file. + Save file menu item title when save will just save the file */ +"SAVE" = "Сохранить"; + +/* Button title to save the generated key file */ +"SAVE_KEYFILE" = "Сохранить файл ключа"; + +/* Save file menu item title when save will prompt for a location to save or ask for a password/key */ +"SAVE_WITH_DOTS" = "Сохранить…"; + +/* Search input in Toolbar */ +"SEARCH" = "Поиск"; + +/* Search option: Find duplicate passwords */ +"SEARCH_DUPLICATE_PASSWORDS" = "Дубли паролей"; + +/* Search option: Find expired entries */ +"SEARCH_EXPIRED_ENTRIES" = "Истекло"; + +/* Inherit search settings menu item */ +"SEARCH_INHERIT" = "Наследовать Настройки Поиска"; + +/* Disable search menu item */ +"SEARCH_NO" = "Исключить из Поиска"; + /* No comment provided by engineer. */ "SEARCH_VALUE" = "Поисковое значение"; +/* Enable search menu item */ +"SEARCH_YES" = "Включить в Поиск"; + +/* Menu item title for the expiry preset selection menu in the date picker */ +"SELECT_DATE_PRESET" = "Использовать установки…"; + /* Message on the open panel for selecting which browser to use for opening URLs */ "SELECT_DEFAULT_BROWSER_OPEN_PANEL_MESSAGE" = "Выберите браузер, которым нужно открывать URL."; @@ -185,212 +687,130 @@ /* Message for the dialog to open a file for merge */ "SELECT_FILE_TO_MERGE" = "Выбор файла для слияния"; +/* Menu displayed as popup selection for search options if no filter is selected */ +"SELECT_FILTER_WITH_DOTS" = "Выбрать…"; + /* Checkbox in dialog to set the selection as default file change strategy! */ "SET_AS_DEFAULT_FILE_CHANGE_STRATEGY" = "Использовать этот способ по умолчанию. Вы сможете поменять это в любое время в настройках."; -/* Menu item to show the reference builder in a text view's context menu */ -"SHOW_REFERENCE_BUILDER" = "Показать конструктор связей"; +/* Action button in Notification to show the Autotype Doctor */ +"SHOW_AUTOTYPE_DOCTOR" = "Показать помощник автоввода"; + +/* Menu item to show the history of the selected entry + Toolbar item to toggle history display */ +"SHOW_HISTORY" = "Показать историю"; + +/* Displayed name when title field was copied + Menu item to toggle display of title column in entry table + Title column title + Title reference item */ +"TITLE" = "Заголовок"; + +/* preset to expire tomorrow */ +"TOMORROW" = "Завтра"; /* Toolbar item to perform autotype */ -"TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "Авто-ввод"; +"TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "Автоввод"; -/* Uninstall plugin */ -"UNINSTALL" = "Удалить"; +/* Touchbar button label for choosing the keyfile */ +"TOUCHBAR_CHOOSE_KEYFILE" = "Выбрать файл ключа"; -/* No comment provided by engineer. */ -"UNKNOWN_FILE_VERSION" = "Неизвестная версия базы"; +/* Touchbar button label for copying the password */ +"TOUCHBAR_COPY_PASSWORD" = "Копировать пароль"; -/* Unknown database format. */ -"UNKNOWN_FORMAT" = "Неизвестный формат файла"; +/* Touchbar button label for copying the username */ +"TOUCHBAR_COPY_USERNAME" = "Копировать имя пользователя"; -/* Database format is unknown since the file is not saved yet */ -"UNKNOWN_FORMAT_FILE_NOT_SAVED_YET" = "Неизвестно, база данных еще не сохранена"; +/* Touchbar button label for deleting elements */ +"TOUCHBAR_DELETE" = "Удалить"; -/* No comment provided by engineer. */ -"UNKNOWN_TOOLBAR_ITEM" = "Неизвестный элемент панели инструментов"; +/* Touchbar button label for opening the popover to edit */ +"TOUCHBAR_EDIT" = "Редактировать"; -/* UUID reference item */ -"UUID" = "UUID"; +/* Touchbar button label for locking the database */ +"TOUCHBAR_LOCK_DATABASE" = "Заблокировать базу данных"; -/* Message text for disabled updates alert! */ -"Updates are disabled!" = "Обновления отключены!"; +/* Touchbar button label for creating a new item */ +"TOUCHBAR_NEW_ENTRY" = "Новая запись"; -/* Informative Text displayed when clearing the Trash */ -"WARNING_ON_DELETE_TRASHED_NODE_DESCRIPTION" = "Все записи из корзины, будут удалены!"; +/* Touchbar button label for creating a new group */ +"TOUCHBAR_NEW_GROUP" = "Новая группа"; -/* Message text for the alert displayed when deleting a node */ -"WARNING_ON_DELETE_TRASHED_NODE_TITLE" = "Удаление записей из корзины"; +/* Touchbar button label for performing autotype */ +"TOUCHBAR_PERFORM_AUTOTYPE" = "Автоввод"; -/* - Actions - */ -"NEW_ENTRY" = "Добавить Запись"; -"NEW_GROUP" = "Добавить Группу"; -"DUPLICATE_ENTRY" = "Скопировать Запись"; -"DUPLICATE_ENTRY_WITH_OPTIONS" = "Скопировать Запись…"; -"COPY_ENTRY" = "Копировать Запись"; -"COPY_GROUP" = "Копировать Группу"; -"ADD_TREMPLATE_ENTRY" = "Создать шаблонную запись"; -"DELETE_GROUP" = "Удалить Группу"; -"DELETE_ENTRY" = "Удалить Запись"; -"EDIT_TEMPLATE_GROUP" = "Изменить группу шаблона"; -"EMPTY_TRASH" = "Очистить Корзину"; -"MOVE_ENTRY" = "Переместить Запись"; -"MOVE_GROUP" = "Переместить Группу"; -"NEW_ENTRY_WITH_TEMPLATE_%@" = "Создать запись из шаблона %@"; -"NEW_DATABASE" = "База данных"; -"OPEN_URL" = "Открыть URL"; -"PERFORM_AUTOTYPE_FOR_ENTRY" = "Осуществить автоввод"; -"PREVIEW" = "Предпросмотр"; -"PASSWORD_GENERATOR_SET_DEFAULTS" = "По умолчанию"; -"PASSWORD_GENERATOR_RESET_ENTRY_DEFAULTS" = "Сброс"; -"TRASH_ENTRY" = "Удалить Запись"; -"TRASH_GROUP" = "Удалить Группу"; -"SHOW_HISTORY" = "Показать историю"; +/* Touchbar button label for searching the database */ +"TOUCHBAR_SEARCH" = "Поиск базы данных"; -/* - Search - */ -"CLEAR_RECENT_SEARCHES" = "Очистить последние запросы"; -"RECENT_SEARCHES" = "Последние запросы"; -"SEARCH_DUPLICATE_PASSWORDS" = "Дубли паролей"; -"SEARCH_EXPIRED_ENTRIES" = "Истекло"; -"SELECT_FILTER_WITH_DOTS" = "Выбрать…"; +/* Touchbar button label for showing the password */ +"TOUCHBAR_SHOW_PASSWORD" = "Показать пароль"; -/* - Direct Translations - */ -"ACTION" = "Действие"; -"ATTACHMENTS" = "Файлы"; -"CANCEL" = "Отмена"; -"DATABASE" = "База данных"; -"DELETE" = "Удалить"; -"EDIT" = "Изменено"; -"GROUP" = "Группа"; -"INSPECTOR" = "Инспектор"; -"LOCK" = "Блокировка"; -"MODIFIED" = "Изменить"; -"NONE" = "Нет"; -"NOTES" = "Заметки"; -"PASSWORD" = "Пароль"; -"SAVE" = "Сохранить"; -"SAVE_WITH_DOTS" = "Сохранить…"; -"SEARCH" = "Поиск"; -"TITLE" = "Заголовок"; -"URL" = "URL"; -"USERNAME" = "Имя пользователя"; -"WINDOWS" = "Окна"; +/* Touchbar button label for unlocking the database */ +"TOUCHBAR_UNLOCK_DATABASE" = "Разблокировать базу данных"; +/* Move Entry to Trash */ +"TRASH_ENTRY" = "Удалить запись"; -"CHANGE_DATABASE_NAME" = "Изменить Имя базы данных"; -"CHANGE_TRASH_GROUP" = "Изменить группу для мусора"; +/* Move Group to Trash */ +"TRASH_GROUP" = "Удалить группу"; -/* Field nam that was copied to the pasteboard */ -"COPIED_FIELD_%@" = "Скопировано %@"; -"COPIED_PASSWORD" = "Пароль скопирован!"; -"COPIED_URL" = "URL скопирован!"; -"COPIED_USERNAME" = "Имя пользователя скопировано!"; -"COPY_CUSTOM_FIELDS" = "Копировать поля"; -"COPY_FIELD_%@" = "Копировать %@"; -"COPY_PASSWORD" = "Копировать Пароль"; -"COPY_URL" = "Копировать URL"; -"COPY_USERNAME" = "Копировать Имя пользователя"; +/* Uninstall plugin */ +"UNINSTALL" = "Удалить"; -/* Dock Badge */ -"CLEARING_PASTEBOARD" = "…"; +/* No comment provided by engineer. */ +"UNKNOWN_FILE_VERSION" = "Неизвестная версия базы"; -/* Group Inspector */ -/* Autotype Combobox */ -"AUTOTYPE_NO" = "Отключить Автоввод"; -"AUTOTYPE_YES" = "Включить Автоввод"; -"AUTOTYPE_INHERIT" = "Наследовать Настройки Автоввода"; +/* Unknown database format. */ +"UNKNOWN_FORMAT" = "Неизвестный формат файла"; -/* Search Combobox */ -"SEARCH_INHERIT" = "Наследовать Настройки Поиска"; -"SEARCH_YES" = "Включить в Поиск"; -"SEARCH_NO" = "Исключить из Поиска"; +/* Database format is unknown since the file is not saved yet */ +"UNKNOWN_FORMAT_FILE_NOT_SAVED_YET" = "Неизвестно, база данных еще не сохранена"; -/* - Date/Time Displays - */ -/* Created at template string. %@ is replaced by localized date and time */ -"CREATED_AT_%@" = "Создано: %@"; -/* Modifed at template string. %@ is replaced by localized date and time */ -"MODIFED_AT_%@" = "Изменено: %@"; +/* No comment provided by engineer. */ +"UNKNOWN_TOOLBAR_ITEM" = "Неизвестный элемент панели инструментов"; -"EXPIRES_AT_DATE_%@" = "Истекает: %@"; -"NO_EXPIRE_DATE_SET" = "Никогда не истекает."; +/* Update Settings Label */ +"UPDATE_PREFERENCES" = "Обновления"; -/* - Defaults for new objects - */ -"DEFAULT_CUSTOM_FIELD_TITLE" = "Поле"; -"DEFAULT_CUSTOM_FIELD_VALUE" = "Значение"; -"DEFAULT_ENTRY_TITLE" = "Новая Запись"; -"DEFAULT_GROUP_NAME" = "Новая Группа"; -"DEFAULT_WINDOW_TITLE" = "Заголовок Окна"; +/* Menu item to toggle display of url column in entry table + Submenu with options what to do with the URL of an entry + Url column title + URL reference item */ +"URL" = "URL"; -/* Settings */ -"GENERAL_SETTINGS" = "Общие"; -"INTEGRATION_SETTINGS" = "Интеграция"; -"UPDATE_SETTINGS" = "Обновления"; -"WORKFLOW_SETTINGS" = "Рабочие настройки"; -"DEFAULT_BROWSER" = "Браузер по умолчанию"; -"OTHER_BROWSER" = "Выберите браузер…"; -"PLUGIN_SETTINGS" = "Плагины"; +/* Menu item to toggle display of username column in entry table + Username column title + Username reference item */ +"USERNAME" = "Имя пользователя"; -/* Feature not supported in Version */ -"KDBX_ONLY_FEATURE" = "Функция не поддерживается в KDB базе"; +/* Displayed name when uuid field was copied + UUID reference item */ +"UUID" = "UUID"; -/* Template */ -"NO_TEMPLATE_GROUP" = "Нет шаблонов"; -"NO_TEMPLATES" = "Шаблоны не найдены"; +/* No Key or Password */ +"WARNING_NO_PASSWORD_OR_KEYFILE" = "Не было применено ни пароля, ни файла ключа!"; -/* Kefile */ -"SAVE_KEYFILE" = "Сохранить файл ключа"; +/* Informative Text displayed when clearing the Trash */ +"WARNING_ON_DELETE_TRASHED_NODE_DESCRIPTION" = "Все записи из корзины, будут удалены!"; -/* Autoype */ -/* Candiate dialog */ -"SELECT_AUTOTYPE_CANDIDATE" = "Выберите кандидата!"; -"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Откройте файл базы данных для использования глобального авто-ввода!"; -"AUTOTYPE_OVERLAY_NO_MATCH_FOR_%@" = "Нет соответствий %@!"; -"AUTOTYPE_OVERLAY_SINGLE_MATCH" = "Соответствие!"; +/* Message text for the alert displayed when deleting a node */ +"WARNING_ON_DELETE_TRASHED_NODE_TITLE" = "Удаление записей из корзины"; -/* Alert Dialogs */ +/* Informative Text displayed when clearing the Trash */ "WARNING_ON_EMPTY_TRASH_DESCRIPTION" = "Очистку корзины отменить нельзя."; -"WARNING_ON_EMPTY_TRASH_TITLE" = "Очистить корзину?"; -"WARNING_ON_LOSSY_SAVE" = "Сохранение базы в KDB формате может вызвать потерю данных."; -"WARNING_ON_LOSSY_SAVE_DESCRIPTION" = "Формат KDB не умеет хранить всю информацию."; -"CHANGE_FORMAT" = "Изменить формат файла на KDBX"; -"ENFORCE_PASSWORD_CHANGE_ALERT_TITLE" = "Пароль базы данных истек!"; -"ENFORCE_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Вы не можете ничего сохранять, пока не поменяете пароль базы и/или файл ключа."; - -"RECOMMEND_PASSWORD_CHANGE_ALERT_TITLE" = "Пожалуйста, измените пароль базы данных!"; -"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "Рекомендуется сменить пароль базы данных и/или файл ключа."; -"CHANGE_PASSWORD_WITH_DOTS" = "Изменить пароль…"; +/* Message text for the alert displayed when clearing the Trash */ +"WARNING_ON_EMPTY_TRASH_TITLE" = "Очистить корзину?"; +/* No comment provided by engineer. */ "WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET" = "Не указан пароль или файл ключей."; + +/* No comment provided by engineer. */ "WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET_SUGGESTION" = "Пожалуйста, укажите пароль и/или файл ключей для этой базы данных. Отмена этого приведет к отмене всех изменений и блокировке документа"; -/* Message displayed when an open file was changed from another application */ -"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "Файл базы данных изменен!"; -/* Informative text displayed when the file was change form another application */ -"FILE_CHANGED_BY_OTHERS_INFO_TEXT" = "Загруженный файл отличается от файла на диске. Что вы хотите делать дальше?"; -/* Button to ignore the changes */ -"KEEP_MINE" = "Сохранить текущую версию и игнорировать изменения на диске!"; -/* Merge changes into file! */ -"MERGE_CHANGES" = "Слияние изменений!"; +/* Label for the workflow settings tab */ +"WORKFLOW_SETTINGS" = "Рабочие настройки"; -/* Password Input Messages, Errors and Warning */ -"PASSWORD_INPUT_NO_PASSWORD" = "Нет пароля"; -"PASSWORD_INPUT_ENTER_PASSWORD" = "Введите пароль"; -"PASSWORD_INPUT_REPEAT_PASSWORD" = "Повторите пароль"; -"WARNING_NO_PASSWORD_OR_KEYFILE" = "Не было применено ни пароля, ни файла ключа!"; -"ERROR_PASSWORD_MISSMATCH_INVALID_KEYFILE" = "Пароли не соответствуют и файл ключа не верный!"; -"ERROR_PASSWORD_MISSMATCH" = "Пароли не соответствуют!"; -"ERROR_INVALID_KEYFILE" = "Неверный файл ключа!"; +/* Yesterday */ +"YESTERDAY" = "Вчера"; -/* Misc */ -"DOCUMENT_AUTOTYPE_CORRUPTION_WARNING" = "Пожалуйста, запустите Исправление Автоввода..."; -"FILE_OPEN_ERROR" = "Ошибка открытия файла."; diff --git a/MacPass/ru.lproj/Localizable.stringsdict b/MacPass/ru.lproj/Localizable.stringsdict new file mode 100644 index 000000000..70f081656 --- /dev/null +++ b/MacPass/ru.lproj/Localizable.stringsdict @@ -0,0 +1,116 @@ + + + + + %ld_CHARACTERS_TO_PICK_REMAINING + + NSStringLocalizedFormatKey + %#@characters@ + characters + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + few + %ld символа осталось + many + %ld символов осталось + one + Остался один символ + other + %ld символов осталось + zero + Выбраны все символы + + + DUPLICATE_ENTRIES_ACTION_NAME + + NSStringLocalizedFormatKey + %#@entries@ + entries + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + few + копирование записей + many + копирование записей + one + копирование записи + other + копирование записей + zero + копирование записей + + + EVERY_%ld_DAYS + + NSStringLocalizedFormatKey + %#@days@ + days + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + few + каждые %ld дня + many + каждые %ld дней + one + каждый день + other + каждые %ld дней + zero + после каждого открытия + + + PICKCHAR_INFO_MESSAGE_PICK_CHARACTERS_%ld + + NSStringLocalizedFormatKey + %#@characters@ + characters + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + few + Выберите %ld символа + many + Выберите %ld символов + one + Выберите %ld символ + other + Выберите %ld символов + zero + Выберите символы + + + PICKED_%ld_CHARACTERS + + NSStringLocalizedFormatKey + %#@characters@ + characters + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + few + %ld символов выбрано + many + %ld символов выбрано + one + %ld символ выбран + other + %ld символов выбрано + zero + Не выбрано ни одного символа + + + + diff --git a/MacPass/ru.lproj/MainMenu.strings b/MacPass/ru.lproj/MainMenu.strings index 9fb96f04a..0811e9b3b 100644 --- a/MacPass/ru.lproj/MainMenu.strings +++ b/MacPass/ru.lproj/MainMenu.strings @@ -1,3 +1,11 @@ +/* Class = "NSMenuItem"; title = "Focus Entries"; ObjectID = "2VP-vB-IeX"; */ +"2VP-vB-IeX.title" = "Записи"; + +/* Class = "NSMenuItem"; title = "Item"; ObjectID = "3st-rv-EeQ"; */ +"3st-rv-EeQ.title" = "Элемент"; + +/* Class = "NSMenu"; title = "Import"; ObjectID = "4q9-u1-pcm"; */ +"4q9-u1-pcm.title" = "Импорт"; /* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "5"; */ "5.title" = "На передний план"; @@ -35,7 +43,7 @@ /* Class = "NSMenu"; title = "File"; ObjectID = "81"; */ "81.title" = "Файл"; -/* Class = "NSMenuItem"; title = "New"; ObjectID = "82"; */ +/* Class = "NSMenuItem"; title = "New Database"; ObjectID = "82"; */ "82.title" = "Новый"; /* Class = "NSMenuItem"; title = "File"; ObjectID = "83"; */ @@ -131,8 +139,8 @@ /* Class = "NSMenuItem"; title = "Toggle Inspector"; ObjectID = "1181"; */ "1181.title" = "Переключить Инспектор"; -/* Class = "NSMenuItem"; title = "Show Password Creator"; ObjectID = "1200"; */ -"1200.title" = "Показать Генератор Паролей"; +/* Class = "NSMenuItem"; title = "Password Generator"; ObjectID = "1200"; */ +"1200.title" = "Генератор паролей"; /* Class = "NSMenuItem"; title = "Change Master Password…"; ObjectID = "1203"; */ "1203.title" = "Изменить Мастер Пароль…"; @@ -143,32 +151,48 @@ /* Class = "NSMenuItem"; title = "Save As…"; ObjectID = "1243"; */ "1243.title" = "Сохранить Как…"; -/* Class = "NSMenuItem"; title = "Export As XML…"; ObjectID = "1259"; */ +/* Class = "NSMenuItem"; title = "XML…"; ObjectID = "1259"; */ "1259.title" = "Экспортировать в XML…"; /* Class = "NSMenuItem"; title = "Lock"; ObjectID = "1261"; */ "1261.title" = "Заблокировать"; -/* Class = "NSMenuItem"; title = "Focus Entries"; ObjectID = "2VP-vB-IeX"; */ -"2VP-vB-IeX.title" = "Записи"; - -/* Class = "NSMenuItem"; title = "Focus Groups"; ObjectID = "HxM-dV-LIH"; */ -"HxM-dV-LIH.title" = "Группы"; - -/* Class = "NSMenuItem"; title = "Focus Inspector"; ObjectID = "Zje-Me-5c8"; */ -"Zje-Me-5c8.title" = "Инспектор"; +/* Class = "NSMenuItem"; title = "Import"; ObjectID = "aTb-sW-nUd"; */ +"aTb-sW-nUd.title" = "Импорт"; /* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "aVO-9F-Lwc"; */ "aVO-9F-Lwc.title" = "Быстрый просмотр"; +/* Class = "NSMenuItem"; title = "Focus Groups"; ObjectID = "HxM-dV-LIH"; */ +"HxM-dV-LIH.title" = "Группы"; + /* Class = "NSMenuItem"; title = "Save a Copy…"; ObjectID = "i24-Gn-j9c"; */ "i24-Gn-j9c.title" = "Сохранить копию…"; /* Class = "NSMenuItem"; title = "Fix Autotype…"; ObjectID = "nx7-Vf-LiD"; */ "nx7-Vf-LiD.title" = "Исправить Автоввод…"; -/* Class = "NSMenuItem"; title = "Import XML…"; ObjectID = "rW0-r1-QYL"; */ +/* Class = "NSMenu"; title = "Export"; ObjectID = "p8h-Fg-h1O"; */ +"p8h-Fg-h1O.title" = "Экспорт"; + +/* Class = "NSMenuItem"; title = "XML…"; ObjectID = "rW0-r1-QYL"; */ "rW0-r1-QYL.title" = "Импортировать XML…"; +/* Class = "NSMenu"; title = "Item"; ObjectID = "Ttt-tR-emo"; */ +"Ttt-tR-emo.title" = "Элемент"; + +/* Class = "NSMenuItem"; title = "Export"; ObjectID = "tz9-yK-pOf"; */ +"tz9-yK-pOf.title" = "Экспорт"; + +/* Class = "NSMenuItem"; title = "Focus Inspector"; ObjectID = "Zje-Me-5c8"; */ +"Zje-Me-5c8.title" = "Инспектор"; + /* Class = "NSMenuItem"; title = "Check for Updates…"; ObjectID = "zMO-8r-g5v"; */ -"zMO-8r-g5v.title" = "Проверить Обновления…"; +"zMO-8r-g5v.title" = "Проверить обновления…"; + +/* Class = "NSMenuItem"; title = "Merge With…"; ObjectID = "zvE-0h-UxI"; */ +"zvE-0h-UxI.title" = "Слияние с…"; + +/* Class = "NSMenuItem"; title = "Autotype Doctor"; ObjectID = "zWx-Re-iuJ"; */ +"zWx-Re-iuJ.title" = "Помощник автоввода"; + diff --git a/MacPass/ru.lproj/OpenPanelAccessoryView.strings b/MacPass/ru.lproj/OpenPanelAccessoryView.strings new file mode 100644 index 000000000..10488be19 --- /dev/null +++ b/MacPass/ru.lproj/OpenPanelAccessoryView.strings @@ -0,0 +1,6 @@ +/* Class = "NSButtonCell"; title = "Show hidden files"; ObjectID = "FfY-KA-8IC"; */ +"FfY-KA-8IC.title" = "Показать скрытые файлы"; + +/* Class = "NSButtonCell"; title = "Allow all files"; ObjectID = "tvV-1s-Be3"; */ +"tvV-1s-Be3.title" = "Разрешить выбор всех файлов"; + diff --git a/MacPass/ru.lproj/PasswordCreatorView.strings b/MacPass/ru.lproj/PasswordCreatorView.strings index 83a6bc3d2..917875ecc 100644 --- a/MacPass/ru.lproj/PasswordCreatorView.strings +++ b/MacPass/ru.lproj/PasswordCreatorView.strings @@ -1,11 +1,10 @@ - /* Class = "NSTextFieldCell"; title = "Password:"; ObjectID = "149"; */ "149.title" = "Пароль:"; /* Class = "NSTextFieldCell"; title = "Length:"; ObjectID = "179"; */ "179.title" = "Длина:"; -/* Class = "NSBox"; title = "Allowed Characters"; ObjectID = "332"; */ +/* Class = "NSBox"; title = "Character options"; ObjectID = "332"; */ "332.title" = "Допустимые символы"; /* Class = "NSButtonCell"; title = "A-Z"; ObjectID = "453"; */ @@ -38,8 +37,12 @@ /* Class = "NSTextFieldCell"; title = "25000 bit"; ObjectID = "653"; */ "653.title" = "25000 бит"; +/* Class = "NSButtonCell"; title = "Use default only for selected entry"; ObjectID = "cfZ-5F-Nge"; */ +"cfZ-5F-Nge.title" = "Использовать умолчания только для выбранной записи"; + +/* Class = "NSButtonCell"; title = "Use characters from every group"; ObjectID = "CMc-Uh-Fo5"; */ +"CMc-Uh-Fo5.title" = "Использовать символы из всех групп"; + /* Class = "NSButtonCell"; title = "Set Default"; ObjectID = "Wvs-Md-Ob8"; */ "Wvs-Md-Ob8.title" = "По умолчанию"; -/* Class = "NSButtonCell"; title = "Use default only for selected entry"; ObjectID = "cfZ-5F-Nge"; */ -"cfZ-5F-Nge.title" = "Использовать умолчания только для выбранной записи"; diff --git a/MacPass/ru.lproj/PasswordEditWindow.strings b/MacPass/ru.lproj/PasswordEditWindow.strings index 7b9f94413..d97f6ae01 100644 --- a/MacPass/ru.lproj/PasswordEditWindow.strings +++ b/MacPass/ru.lproj/PasswordEditWindow.strings @@ -1,5 +1,4 @@ - -/* Class = "NSWindow"; title = "Window"; ObjectID = "1"; */ +/* Class = "NSWindow"; title = "Change Password"; ObjectID = "1"; */ "1.title" = "Окно"; /* Class = "NSTextFieldCell"; title = "Missmatching Passwords"; ObjectID = "14"; */ @@ -28,3 +27,4 @@ /* Class = "NSButtonCell"; title = "Password:"; ObjectID = "OQz-DA-SoY"; */ "OQz-DA-SoY.title" = "Пароль:"; + diff --git a/MacPass/ru.lproj/PasswordInputView.strings b/MacPass/ru.lproj/PasswordInputView.strings index e9bc9ee0a..af74eec75 100644 --- a/MacPass/ru.lproj/PasswordInputView.strings +++ b/MacPass/ru.lproj/PasswordInputView.strings @@ -1,4 +1,3 @@ - /* Class = "NSButtonCell"; title = "Unlock"; ObjectID = "3"; */ "3.title" = "Разблокировать"; @@ -11,5 +10,9 @@ /* Class = "NSSecureTextFieldCell"; placeholderString = "Enter Password"; ObjectID = "339"; */ "339.placeholderString" = "Введите пароль"; +/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "erj-mR-UyO"; */ +"erj-mR-UyO.title" = "Отмена"; + /* Class = "NSButtonCell"; title = "Password"; ObjectID = "IU9-5u-jn9"; */ "IU9-5u-jn9.title" = "Пароль"; + diff --git a/MacPass/ru.lproj/PickcharsView.strings b/MacPass/ru.lproj/PickcharsView.strings new file mode 100644 index 000000000..c2377b263 --- /dev/null +++ b/MacPass/ru.lproj/PickcharsView.strings @@ -0,0 +1,18 @@ +/* Class = "NSButtonCell"; title = "Submit"; ObjectID = "8vP-Ka-vsA"; */ +"8vP-Ka-vsA.title" = "Отправить"; + +/* Class = "NSButtonCell"; title = "Reset"; ObjectID = "Emo-pg-Mfe"; */ +"Emo-pg-Mfe.title" = "Сбросить"; + +/* Class = "NSTextFieldCell"; title = "StatusLabel"; ObjectID = "M3h-q8-FLO"; */ +"M3h-q8-FLO.title" = "StatusLabel"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "pUG-4c-rTt"; */ +"pUG-4c-rTt.title" = "Text Cell"; + +/* Class = "NSTextFieldCell"; title = "MessageLabel"; ObjectID = "sHz-kg-YJQ"; */ +"sHz-kg-YJQ.title" = "MessageLabel"; + +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "v3T-2f-yWm"; */ +"v3T-2f-yWm.title" = "Table View Cell"; + diff --git a/MacPass/en.lproj/PickfieldView.strings b/MacPass/ru.lproj/PickfieldView.strings similarity index 88% rename from MacPass/en.lproj/PickfieldView.strings rename to MacPass/ru.lproj/PickfieldView.strings index c629f33ae..898cfce7a 100644 --- a/MacPass/en.lproj/PickfieldView.strings +++ b/MacPass/ru.lproj/PickfieldView.strings @@ -2,10 +2,10 @@ "0H9-DW-Jyj.headerCell.title" = "Field"; /* Class = "NSButtonCell"; title = "Select"; ObjectID = "6Wi-9i-Tcb"; */ -"6Wi-9i-Tcb.title" = "Select"; +"6Wi-9i-Tcb.title" = "Выбрать"; /* Class = "NSTextFieldCell"; title = "Please pick a field value to be inserted"; ObjectID = "aJS-22-6Va"; */ -"aJS-22-6Va.title" = "Please pick a field value to be inserted"; +"aJS-22-6Va.title" = "Выберите занчение для вставки"; /* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "e8U-mE-mZh"; */ "e8U-mE-mZh.title" = "Table View Cell"; diff --git a/MacPass/ru.lproj/PluginDataView.strings b/MacPass/ru.lproj/PluginDataView.strings new file mode 100644 index 000000000..a68bb4bb1 --- /dev/null +++ b/MacPass/ru.lproj/PluginDataView.strings @@ -0,0 +1,15 @@ +/* Class = "NSButtonCell"; title = "Remove All"; ObjectID = "6hH-Hc-gf4"; */ +"6hH-Hc-gf4.title" = "Удалить все"; + +/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "bG1-Sb-Xyp"; */ +"bG1-Sb-Xyp.title" = "Text Cell"; + +/* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "MaV-TP-92X"; */ +"MaV-TP-92X.placeholderString" = "Заголовок"; + +/* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "mLw-O5-6D3"; */ +"mLw-O5-6D3.placeholderString" = "Значение"; + +/* Class = "NSTextFieldCell"; title = "Plugin data"; ObjectID = "unO-bO-8v0"; */ +"unO-bO-8v0.title" = "Данные плагина"; + diff --git a/MacPass/ru.lproj/PluginPreferences.strings b/MacPass/ru.lproj/PluginPreferences.strings index b44d628d5..c6260ea25 100644 --- a/MacPass/ru.lproj/PluginPreferences.strings +++ b/MacPass/ru.lproj/PluginPreferences.strings @@ -1,15 +1,27 @@ - -/* 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"; */ +/* Class = "NSTextFieldCell"; title = "If enabled, Plugins without proper signatures will be allowed to load. Keep in mind, that Plugins have full access to your data! Changes take affect on restart."; ObjectID = "2bX-8S-9XM"; */ "2bX-8S-9XM.title" = "Если включено, будут загружены только правильно подписанные Плагины. Пожалуйста, помните, что Плагины имеют полный доступ к вашим данным! Изменения вступят в силу после перезагрузки."; /* Class = "NSButtonCell"; title = "Load unsecure Plugins"; ObjectID = "C4B-6z-ZqX"; */ "C4B-6z-ZqX.title" = "Загружать небезопасные Плагины"; +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "fug-79-n9g"; */ +"fug-79-n9g.title" = "Табличная ячейка"; + +/* Class = "NSTextFieldCell"; title = "If enabled, a remote connection is established to macpassapp.org"; ObjectID = "i3S-9b-Bpf"; */ +"i3S-9b-Bpf.title" = "Если включено, будет установлено подключение к macpassapp.org"; + +/* Class = "NSButtonCell"; title = "Browse Available Plugins…"; ObjectID = "sqO-8H-n1y"; */ +"sqO-8H-n1y.title" = "Обзор доступных плагинов"; + /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "STt-PQ-Szr"; */ "STt-PQ-Szr.title" = "Текстовая Ячейка"; -/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "fug-79-n9g"; */ -"fug-79-n9g.title" = "Табличная ячейка"; +/* Class = "NSButtonCell"; title = "Download current plugin information"; ObjectID = "uHR-uL-Ddm"; */ +"uHR-uL-Ddm.title" = "Скачивать информацию об обновлениях плагинов"; /* Class = "NSBox"; title = "Box"; ObjectID = "vBs-Ga-aq0"; */ "vBs-Ga-aq0.title" = "Блок"; + +/* Class = "NSButtonCell"; title = "Force loading of incompatible Plugins"; ObjectID = "yak-fS-jtA"; */ +"yak-fS-jtA.title" = "Принудительно загружать несовместимые плагины"; + diff --git a/MacPass/ru.lproj/PluginRepositoryBrowserView.strings b/MacPass/ru.lproj/PluginRepositoryBrowserView.strings new file mode 100644 index 000000000..1bdfb8b48 --- /dev/null +++ b/MacPass/ru.lproj/PluginRepositoryBrowserView.strings @@ -0,0 +1,18 @@ +/* Class = "NSTableColumn"; headerCell.title = "Status"; ObjectID = "g1Q-BS-vCR"; */ +"g1Q-BS-vCR.headerCell.title" = "Статус"; + +/* Class = "NSTableColumn"; headerCell.title = "Latest Version"; ObjectID = "hFg-AD-SqD"; */ +"hFg-AD-SqD.headerCell.title" = "Последняя версия"; + +/* Class = "NSButtonCell"; title = "Done"; ObjectID = "j9a-fn-Pye"; */ +"j9a-fn-Pye.title" = "Готово"; + +/* Class = "NSTextFieldCell"; title = "Last updated:"; ObjectID = "ntD-sJ-NRw"; */ +"ntD-sJ-NRw.title" = "Последнее обновление:"; + +/* Class = "NSTableColumn"; headerCell.title = "Plugin"; ObjectID = "Nzo-rR-Hfx"; */ +"Nzo-rR-Hfx.headerCell.title" = "Плагин"; + +/* Class = "NSButtonCell"; title = "Refresh"; ObjectID = "NZw-nO-lZ3"; */ +"NZw-nO-lZ3.title" = "Обновить"; + diff --git a/MacPass/ru.lproj/ReferenceBuilderView.strings b/MacPass/ru.lproj/ReferenceBuilderView.strings index 8ee931fba..4ecae7690 100644 --- a/MacPass/ru.lproj/ReferenceBuilderView.strings +++ b/MacPass/ru.lproj/ReferenceBuilderView.strings @@ -1,15 +1,8 @@ - -/* Class = "NSMenuItem"; title = "Get"; ObjectID = "142-bE-IMZ"; */ -"142-bE-IMZ.title" = "Получить"; - /* Class = "NSTextFieldCell"; title = "Match"; ObjectID = "9ce-da-syF"; */ "9ce-da-syF.title" = "Соответствие"; -/* Class = "NSTextFieldCell"; title = "Key"; ObjectID = "K1t-OZ-ACe"; */ -"K1t-OZ-ACe.title" = "Ключ"; - -/* Class = "NSButtonCell"; title = "Use"; ObjectID = "Kqx-qm-nMG"; */ -"Kqx-qm-nMG.title" = "Использовать"; +/* Class = "NSMenuItem"; title = "Get"; ObjectID = "142-bE-IMZ"; */ +"142-bE-IMZ.title" = "Получить"; /* Class = "NSTextFieldCell"; placeholderString = "Reference"; ObjectID = "dr9-x8-kKk"; */ "dr9-x8-kKk.placeholderString" = "Ссылка"; @@ -20,8 +13,15 @@ /* Class = "NSTextFieldCell"; title = "Reference String"; ObjectID = "gik-Ha-hRd"; */ "gik-Ha-hRd.title" = "Ссылающаяся строка"; +/* Class = "NSTextFieldCell"; title = "Key"; ObjectID = "K1t-OZ-ACe"; */ +"K1t-OZ-ACe.title" = "Ключ"; + +/* Class = "NSButtonCell"; title = "Use"; ObjectID = "Kqx-qm-nMG"; */ +"Kqx-qm-nMG.title" = "Использовать"; + /* Class = "NSTextFieldCell"; title = "Reference"; ObjectID = "r1V-VE-ngy"; */ "r1V-VE-ngy.title" = "Ссылка"; /* Class = "NSMenuItem"; title = "Matching"; ObjectID = "yT1-XL-k6a"; */ "yT1-XL-k6a.title" = "Совпадение"; + diff --git a/MacPass/ru.lproj/SavePanelAccessoryView.strings b/MacPass/ru.lproj/SavePanelAccessoryView.strings new file mode 100644 index 000000000..4d0c086ec --- /dev/null +++ b/MacPass/ru.lproj/SavePanelAccessoryView.strings @@ -0,0 +1,15 @@ + +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "4"; */ +"4.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "KeePass 1 (KDB)"; ObjectID = "5"; */ +"5.title" = "KeePass 1 (KDB)"; + +/* Class = "NSMenuItem"; title = "KeePass 2 (KDBX)"; ObjectID = "6"; */ +"6.title" = "KeePass 2 (KDBX)"; + +/* Class = "NSTextFieldCell"; title = "Format:"; ObjectID = "12"; */ +"12.title" = "Формат:"; + +/* Class = "NSTextFieldCell"; title = "Not all Information inside your current database can be stored with this format."; ObjectID = "52"; */ +"52.title" = "Не вся информация из вашей базы может быть сохранена в выбранный формат."; diff --git a/MacPass/ru.lproj/UpdateSettings.strings b/MacPass/ru.lproj/UpdatePreferences.strings similarity index 80% rename from MacPass/ru.lproj/UpdateSettings.strings rename to MacPass/ru.lproj/UpdatePreferences.strings index 9322702c7..035fcddee 100644 --- a/MacPass/ru.lproj/UpdateSettings.strings +++ b/MacPass/ru.lproj/UpdatePreferences.strings @@ -1,12 +1,14 @@ - /* Class = "NSMenuItem"; title = "every Week"; ObjectID = "3FR-Va-iau"; */ -"3FR-Va-iau.title" = "каждую Неделю"; +"3FR-Va-iau.title" = "каждую неделю"; /* Class = "NSTextFieldCell"; title = "Check for Updates"; ObjectID = "9tL-CA-Vdg"; */ "9tL-CA-Vdg.title" = "Проверять обновления"; /* Class = "NSMenuItem"; title = "every Hour"; ObjectID = "DjF-1I-6Nq"; */ -"DjF-1I-6Nq.title" = "каждый Час"; +"DjF-1I-6Nq.title" = "каждый час"; + +/* Class = "NSMenuItem"; title = "every Day"; ObjectID = "o9E-hk-H1T"; */ +"o9E-hk-H1T.title" = "каждый день"; /* Class = "NSButtonCell"; title = "Automatically Check for Updates"; ObjectID = "RFg-q1-AwJ"; */ "RFg-q1-AwJ.title" = "Автоматически проверять обновления"; @@ -15,7 +17,5 @@ "RKd-H8-eCF.title" = "OtherViews"; /* Class = "NSMenuItem"; title = "every Month"; ObjectID = "Uo3-kv-1ro"; */ -"Uo3-kv-1ro.title" = "каждый Месяц"; +"Uo3-kv-1ro.title" = "каждый месяц"; -/* Class = "NSMenuItem"; title = "every Day"; ObjectID = "o9E-hk-H1T"; */ -"o9E-hk-H1T.title" = "каждый День"; diff --git a/MacPass/ru.lproj/WelcomeView.strings b/MacPass/ru.lproj/WelcomeView.strings index 6e46e81bd..2c55b1396 100644 --- a/MacPass/ru.lproj/WelcomeView.strings +++ b/MacPass/ru.lproj/WelcomeView.strings @@ -1,11 +1,9 @@ -/* Class = "NSTextFieldCell"; title = "Welcome to MacPass"; ObjectID = "24"; */ -"24.title" = "Добро пожаловать в MacPass"; +/* Class = "NSButtonCell"; title = "Open Database…"; ObjectID = "Jj3-zy-gaz"; */ +"Jj3-zy-gaz.title" = "Открыть базу..."; -/* Class = "NSButtonCell"; title = "Open Database…"; ObjectID = "44"; */ -"44.title" = "Открыть Базу данных…"; +/* Class = "NSButtonCell"; title = "Create new Database"; ObjectID = "Vxx-Ql-eI5"; */ +"Vxx-Ql-eI5.title" = "Создать новую базу"; -/* Class = "NSButtonCell"; title = "Create new Database"; ObjectID = "48"; */ -"48.title" = "Создать новую Базу данных"; +/* Class = "NSTextFieldCell"; title = "Welcome to MacPass"; ObjectID = "zdv-z8-khG"; */ +"zdv-z8-khG.title" = "Добро пожаловать в MacPass"; -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "70"; */ -"70.title" = "Отмена"; diff --git a/MacPass/ru.lproj/WorkflowSettings.strings b/MacPass/ru.lproj/WorkflowPreferences.strings similarity index 62% rename from MacPass/ru.lproj/WorkflowSettings.strings rename to MacPass/ru.lproj/WorkflowPreferences.strings index 3c00a4326..db3a4449a 100644 --- a/MacPass/ru.lproj/WorkflowSettings.strings +++ b/MacPass/ru.lproj/WorkflowPreferences.strings @@ -1,7 +1,9 @@ - /* Class = "NSBox"; title = "Entry Table"; ObjectID = "2"; */ "2.title" = "Таблица Записей"; +/* Class = "NSMenuItem"; title = "Default Browser"; ObjectID = "7YX-EA-9KA"; */ +"7YX-EA-9KA.title" = "Браузер по умолчанию"; + /* Class = "NSTextFieldCell"; title = "Double-click on URL:"; ObjectID = "10"; */ "10.title" = "Дабл-клик по URL:"; @@ -23,8 +25,17 @@ /* Class = "NSMenuItem"; title = "Opens Inspector"; ObjectID = "44"; */ "44.title" = "Открывает Инспектор"; -/* Class = "NSMenuItem"; title = "Default Browser"; ObjectID = "7YX-EA-9KA"; */ -"7YX-EA-9KA.title" = "Браузер по умолчанию"; +/* Class = "NSBox"; title = "Clipboard"; ObjectID = "Kff-Xp-hAT"; */ +"Kff-Xp-hAT.title" = "Буфер обмена"; + +/* Class = "NSButtonCell"; title = "Update password for new entries"; ObjectID = "RaM-t2-DVR"; */ +"RaM-t2-DVR.title" = "Обновить пароль для новых записей"; /* Class = "NSTextFieldCell"; title = "Open URLs in:"; ObjectID = "soD-wI-YOH"; */ -"soD-wI-YOH.title" = "Открывать URLы в:"; +"soD-wI-YOH.title" = "Открывать ссылки в:"; + +/* Class = "NSBox"; title = "Templates"; ObjectID = "Xvt-tP-TbR"; */ +"Xvt-tP-TbR.title" = "Шаблоны"; + +/* Class = "NSButtonCell"; title = "Hide application after copying to clipboard "; ObjectID = "1Vr-nY-Ogv"; */ +"1Vr-nY-Ogv.title" = "Скрывать MacPass после копирования в буфер обмена"; diff --git a/MacPass/sv-SE.lproj/Credits.rtf b/MacPass/sv-SE.lproj/Credits.rtf deleted file mode 100644 index b2dfe9119..000000000 --- a/MacPass/sv-SE.lproj/Credits.rtf +++ /dev/null @@ -1,103 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 -{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red52\green110\blue183;\red38\green38\blue38;} -{\*\expandedcolortbl;;\csgenericrgb\c20392\c43137\c71765;\csgenericrgb\c14902\c14902\c14902;} -\paperw11900\paperh16840\vieww25780\viewh19380\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b\fs24 \cf0 Project Website:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt -\f1\b0 \cf0 MacPass}} -\f1\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \ -License:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf0 MacPass KeePass compatible client for OS X\ -Copyright (c) 2012-2019 Michael Starke, HicknHack Software GmbH\ - \ -This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by\ -the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\ -\ -This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\ -\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\ -\ -You should have received a copy of the GNU General Public License along with this program. If not, see {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt http://www.gnu.org/licenses/}}.\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 \kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \kerning1\expnd0\expndtw0 Credits:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf2 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 Dutch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/clone1612"}}{\fldrslt Jannick Hemelhof}}\ -\ -French translation: {\field{\*\fldinst{HYPERLINK "mailto:gil@panix.com"}}{\fldrslt Gil Andr\'e9}}\ -\ -Italian translation: {\field{\*\fldinst{HYPERLINK "mailto:info@francescoservida.ch"}}{\fldrslt Francesco Servida}}\ -\ -Polish translation: {\field{\*\fldinst{HYPERLINK "http://www.webii.pl/"}}{\fldrslt Micha\uc0\u322 Jaglewicz}}\ -\ -Russian translation: {\field{\*\fldinst{HYPERLINK "mailto:alex@mrdoggy.info"}}{\fldrslt Aliaksandr Piatkevich}}\ -\ -Simplified Chinese translation: {\field{\*\fldinst{HYPERLINK "mailto:patchao2000@gmail.com"}}{\fldrslt Zhao Peng}}\ -\ -Spanisch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/m0yP"}}{\fldrslt \expnd0\expndtw0\kerning0 -Moises Perez}}\ -\ -MacPass\kerning1\expnd0\expndtw3 - \kerning1\expnd0\expndtw0 Icon: {\field{\*\fldinst{HYPERLINK "http://iiro.jappinen.me"}}{\fldrslt Iiro J\'e4ppinen}}\ -\ -Database Icons: {\field{\*\fldinst{HYPERLINK "https://github.com/JoannaOlsen"}}{\fldrslt Joanna Olsen}}\cf2 \ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt \cf2 KissXML}}\cf3 \ -Copyright \'a9 2012 Robbie Hanson. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf2 MiniKeePass}}\ -Copyright \'a9 2011 Jason Rush and John Flanagan. All rights reserved.\ - \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt \cf2 KeePass Database Library}}\ -Copyright \'a9 2010 Qiang Yu. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/Perspx/PXSourceList"}}{\fldrslt \cf3 PXSourceList}}\ -Copyright \'a9 2011, Alex Rozanski. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org"}}{\fldrslt \cf3 Sparkl\kerning1\expnd0\expndtw3 -e}}\kerning1\expnd0\expndtw3 -\ -Copyright \'a9 2006 Andy Matuschak. \kerning1\expnd0\expndtw0 All rights reserved.\kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf3 \kerning1\expnd0\expndtw0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/questions/11386876/how-to-encode-and-decode-files-as-base64-in-cocoa-objective-c"}}{\fldrslt \cf3 NSData+Base64}}\ -Copyright \'a92013, {\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/users/200321/denis2342"}}{\fldrslt denis2342}}\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://www.cocoadev.com/index.pl?NSDataCategory"}}{\fldrslt \cf3 NSData+Gzip}}\ -Extracted from code on the CocoaDev Wiki\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/karelia/SecurityInterface"}}{\fldrslt \cf3 KSPasswordField}}\ -Code reused in HNHUISecureTextField\ -Copyright \'a92012 Mike Abdullah, Karelia Software. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/AlanQuatermain/aqtoolkit"}}{\fldrslt \cf3 NSData+CommonCrypto}}\ -Copyright \'a92008-2009 Jim Dovey, All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mattt/TransformerKit"}}{\fldrslt \cf3 TransformerKit}}\ -Copyright \'a92012 Mattt Thompson. All rights reserved} \ No newline at end of file diff --git a/MacPass/sv-SE.lproj/GeneralSettings.strings b/MacPass/sv-SE.lproj/GeneralPreferences.strings similarity index 100% rename from MacPass/sv-SE.lproj/GeneralSettings.strings rename to MacPass/sv-SE.lproj/GeneralPreferences.strings diff --git a/MacPass/sv-SE.lproj/IntegrationSettings.strings b/MacPass/sv-SE.lproj/IntegrationPreferences.strings similarity index 100% rename from MacPass/sv-SE.lproj/IntegrationSettings.strings rename to MacPass/sv-SE.lproj/IntegrationPreferences.strings diff --git a/MacPass/sv-SE.lproj/Localizable.strings b/MacPass/sv-SE.lproj/Localizable.strings index d850a5702..991726ca3 100644 --- a/MacPass/sv-SE.lproj/Localizable.strings +++ b/MacPass/sv-SE.lproj/Localizable.strings @@ -264,7 +264,7 @@ "FILE_OPEN_ERROR" = "Problem att öppna filen."; /* General Settings Label */ -"GENERAL_SETTINGS" = "Allmänt"; +"GENERAL_PREFERENCES" = "Allmänt"; /* Group column title */ "GROUP" = "Grupp"; @@ -572,7 +572,7 @@ "UNKNOWN_TOOLBAR_ITEM" = "Okänt verktygsradsföremål"; /* Update Settings Label */ -"UPDATE_SETTINGS" = "Uppdateringar"; +"UPDATE_PREFERENCES" = "Uppdateringar"; /* Menu item to toggle display of url column in entry table Submenu with options what to do with the URL of an entry diff --git a/MacPass/sv-SE.lproj/Localizable.stringsdict b/MacPass/sv-SE.lproj/Localizable.stringsdict index 184de9422..9fd3b2442 100644 --- a/MacPass/sv-SE.lproj/Localizable.stringsdict +++ b/MacPass/sv-SE.lproj/Localizable.stringsdict @@ -20,7 +20,7 @@ Alla tecken valda - DUPLICATE_ENTRIES_%ld + DUPLICATE_ENTRIES_ACTION_NAME NSStringLocalizedFormatKey %#@entries@ diff --git a/MacPass/sv-SE.lproj/UpdateSettings.strings b/MacPass/sv-SE.lproj/UpdatePreferences.strings similarity index 100% rename from MacPass/sv-SE.lproj/UpdateSettings.strings rename to MacPass/sv-SE.lproj/UpdatePreferences.strings diff --git a/MacPass/sv-SE.lproj/WorkflowSettings.strings b/MacPass/sv-SE.lproj/WorkflowPreferences.strings similarity index 100% rename from MacPass/sv-SE.lproj/WorkflowSettings.strings rename to MacPass/sv-SE.lproj/WorkflowPreferences.strings diff --git a/MacPass/zh-Hans.lproj/AutotypeBuilderView.strings b/MacPass/zh-Hans.lproj/AutotypeBuilderView.strings new file mode 100644 index 000000000..ddf16043a --- /dev/null +++ b/MacPass/zh-Hans.lproj/AutotypeBuilderView.strings @@ -0,0 +1,6 @@ +/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "8ny-Qk-Jvo"; */ +"8ny-Qk-Jvo.title" = "自动键入序列"; + +/* Class = "NSButtonCell"; title = "Set Autotype Sequence"; ObjectID = "aOD-Ih-Sft"; */ +"aOD-Ih-Sft.title" = "设置自动键入序列"; + diff --git a/MacPass/zh-Hans.lproj/AutotypeCandidateSelectionView.strings b/MacPass/zh-Hans.lproj/AutotypeCandidateSelectionView.strings new file mode 100644 index 000000000..2fcbb0b01 --- /dev/null +++ b/MacPass/zh-Hans.lproj/AutotypeCandidateSelectionView.strings @@ -0,0 +1,6 @@ +/* Class = "NSTextFieldCell"; title = "There are multiple matches for the current window. Please select which match should be used."; ObjectID = "gcf-gb-ZsF"; */ +"gcf-gb-ZsF.title" = ""; + +/* Class = "NSButtonCell"; title = "Perform Autotype"; ObjectID = "w7H-hx-CUF"; */ +"w7H-hx-CUF.title" = "执行自动键入"; + diff --git a/MacPass/zh-Hans.lproj/AutotypeDoctorReportViewController.strings b/MacPass/zh-Hans.lproj/AutotypeDoctorReportViewController.strings new file mode 100644 index 000000000..3d5b44bbb --- /dev/null +++ b/MacPass/zh-Hans.lproj/AutotypeDoctorReportViewController.strings @@ -0,0 +1,18 @@ +/* Class = "NSTextFieldCell"; title = "MacPass will send key press events to the system when Autotype or Global Autotype is executed. Since macOS 10.14 Mojave this is only possible, if Accessibility permissions are granted to the application."; ObjectID = "6GI-KJ-Xue"; */ +"6GI-KJ-Xue.title" = "当自动键入执行时,MacPass 将会向系统发送按键事件。从 macOS 10.14 Mojave 开始,需要应用有辅助功能的权限,才能进行此操作。"; + +/* Class = "NSTextFieldCell"; title = "MacPass will read every window title when Global Autotype is executed to find a match. Since macOS 10.15 Catalina it is not possible to read any window title, if the user has not granted permissions to record the screen. If you are running macOS 10.15 or higher, MacPass will check if it can read every window title of currently visible windows. This test will not read the actual title. The titles aren't stored or processed in any way."; ObjectID = "7of-1z-Nfk"; */ +"7of-1z-Nfk.title" = "当全局自动键入执行时,MacPass 会试图读取每个窗口的标题来找到匹配的窗口。从 macOS 10.15 Catalina 开始,只有用户赋予应用屏幕录制权限,应用才能读取窗口标题。如果你正在使用 macOS 10.15 或以上,MacPass 将会检查自己是否能够读取当前可见的窗口的标题。这项检查不会读取或者存储真实的标题。"; + +/* Class = "NSButtonCell"; title = "Open Accessibilty Preferences…"; ObjectID = "8m1-vs-pd5"; */ +"8m1-vs-pd5.title" = "打开辅助功能选项..."; + +/* Class = "NSTextFieldCell"; title = "Screen Recording"; ObjectID = "9gr-mz-2I4"; */ +"9gr-mz-2I4.title" = "屏幕录制"; + +/* Class = "NSTextFieldCell"; title = "Accessibility"; ObjectID = "aIL-8W-63g"; */ +"aIL-8W-63g.title" = "辅助功能"; + +/* Class = "NSButtonCell"; title = "Open Screen Recording Preferences…"; ObjectID = "lgB-Ys-L9R"; */ +"lgB-Ys-L9R.title" = "打开屏幕录制选项..."; + diff --git a/MacPass/zh-Hans.lproj/ContextBar.strings b/MacPass/zh-Hans.lproj/ContextBar.strings index 035c43095..0a86159e0 100644 --- a/MacPass/zh-Hans.lproj/ContextBar.strings +++ b/MacPass/zh-Hans.lproj/ContextBar.strings @@ -1,15 +1,14 @@ - /* Class = "NSTextFieldCell"; title = "Search:"; ObjectID = "7"; */ -"7.title" = "Search:"; - -/* Class = "NSButtonCell"; title = "Title"; ObjectID = "53D-ne-nv6"; */ -"53D-ne-nv6.title" = "Title"; +"7.title" = "搜索:"; /* Class = "NSButtonCell"; title = "Empty Trash"; ObjectID = "8Ok-oe-6AB"; */ -"8Ok-oe-6AB.title" = "Empty Trash"; +"8Ok-oe-6AB.title" = "清空废纸篓"; /* Class = "NSTextFieldCell"; title = "Trash"; ObjectID = "8P1-Rp-sF4"; */ -"8P1-Rp-sF4.title" = "Trash"; +"8P1-Rp-sF4.title" = "废纸篓"; + +/* Class = "NSButtonCell"; title = "Title"; ObjectID = "53D-ne-nv6"; */ +"53D-ne-nv6.title" = "标题"; /* Class = "NSButtonCell"; title = "URL"; ObjectID = "92o-gN-Psj"; */ "92o-gN-Psj.title" = "URL"; @@ -17,38 +16,42 @@ /* Class = "NSMenuItem"; title = "Item 3"; ObjectID = "CFk-71-NYQ"; */ "CFk-71-NYQ.title" = "Item 3"; -/* Class = "NSTextFieldCell"; title = "History"; ObjectID = "ER3-Ic-v0N"; */ -"ER3-Ic-v0N.title" = "History"; - -/* Class = "NSMenuItem"; title = "Item 1"; ObjectID = "LRm-iZ-XrA"; */ -"LRm-iZ-XrA.title" = "Item 1"; - -/* Class = "NSButtonCell"; title = "Restore Entry"; ObjectID = "UTg-y9-4DN"; */ -"UTg-y9-4DN.title" = "Restore Entry"; - -/* Class = "NSTabViewItem"; label = "Filter"; ObjectID = "Ud6-Nz-6PS"; */ -"Ud6-Nz-6PS.label" = "Filter"; - /* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "cpr-p6-YAY"; */ "cpr-p6-YAY.title" = "Item 2"; +/* Class = "NSTextFieldCell"; title = "History"; ObjectID = "ER3-Ic-v0N"; */ +"ER3-Ic-v0N.title" = "历史"; + /* Class = "NSButtonCell"; title = "Exit History"; ObjectID = "ewQ-8F-e1E"; */ -"ewQ-8F-e1E.title" = "Exit History"; +"ewQ-8F-e1E.title" = "退出历史"; /* Class = "NSButtonCell"; title = "Notes"; ObjectID = "iDN-2E-hwt"; */ -"iDN-2E-hwt.title" = "Notes"; +"iDN-2E-hwt.title" = "备注"; /* Class = "NSButtonCell"; title = "Username"; ObjectID = "jfQ-Jh-2gl"; */ -"jfQ-Jh-2gl.title" = "Username"; +"jfQ-Jh-2gl.title" = "用户名"; + +/* Class = "NSMenuItem"; title = "Item 1"; ObjectID = "LRm-iZ-XrA"; */ +"LRm-iZ-XrA.title" = "Item 1"; /* Class = "NSTabViewItem"; label = "Trash"; ObjectID = "na6-h9-r9q"; */ "na6-h9-r9q.label" = "Trash"; /* Class = "NSButtonCell"; title = "Password"; ObjectID = "rvQ-4V-SsS"; */ -"rvQ-4V-SsS.title" = "Password"; +"rvQ-4V-SsS.title" = "密码"; + +/* Class = "NSTabViewItem"; label = "Filter"; ObjectID = "Ud6-Nz-6PS"; */ +"Ud6-Nz-6PS.label" = "过滤"; + +/* Class = "NSButtonCell"; title = "Restore Entry"; ObjectID = "UTg-y9-4DN"; */ +"UTg-y9-4DN.title" = "还原项目"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "wC4-fF-dLW"; */ "wC4-fF-dLW.title" = "OtherViews"; +/* Class = "NSButtonCell"; title = "Everywhere"; ObjectID = "WMK-bb-ESj"; */ +"WMK-bb-ESj.title" = "所有项"; + /* Class = "NSTabViewItem"; label = "History"; ObjectID = "z4I-cp-nhf"; */ -"z4I-cp-nhf.label" = "History"; +"z4I-cp-nhf.label" = "历史"; + diff --git a/MacPass/zh-Hans.lproj/Credits.rtf b/MacPass/zh-Hans.lproj/Credits.rtf deleted file mode 100644 index a39835a87..000000000 --- a/MacPass/zh-Hans.lproj/Credits.rtf +++ /dev/null @@ -1,103 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 -{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red52\green110\blue183;\red38\green38\blue38;} -{\*\expandedcolortbl;;\csgenericrgb\c20392\c43137\c71765;\csgenericrgb\c14902\c14902\c14902;} -\paperw11900\paperh16840\vieww25780\viewh19380\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b\fs24 \cf0 Project Website:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt -\f1\b0 \cf0 MacPass}} -\f1\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \ -License:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf0 MacPass KeePass compatible client for OS X\ -Copyright (c) 2012-2019 Michael Starke, HicknHack Software GmbH\ - \ -This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by\ -the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\ -\ -This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\ -\ -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\ -\ -You should have received a copy of the GNU General Public License along with this program. If not, see {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt http://www.gnu.org/licenses/}}.\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 \kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f0\b \cf0 \kerning1\expnd0\expndtw0 Credits:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 - -\f1\b0 \cf2 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf0 Dutch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/clone1612"}}{\fldrslt Jannick Hemelhof}}\ -\ -French translation: {\field{\*\fldinst{HYPERLINK "mailto:gil@panix.com"}}{\fldrslt Gil Andr\'e9}}\ -\ -Italian translation: {\field{\*\fldinst{HYPERLINK "mailto:info@francescoservida.ch"}}{\fldrslt Francesco Servida}}\ -\ -Polish translation: {\field{\*\fldinst{HYPERLINK "http://www.webii.pl/"}}{\fldrslt Micha\uc0\u322 Jaglewicz}}\ -\ -Russian translation: {\field{\*\fldinst{HYPERLINK "mailto:alex@mrdoggy.info"}}{\fldrslt Aliaksandr Piatkevich}}\ -\ -Simplified Chinese translation: {\field{\*\fldinst{HYPERLINK "mailto:patchao2000@gmail.com"}}{\fldrslt Zhao Peng}}\ -\ -Spanisch translation: {\field{\*\fldinst{HYPERLINK "https://github.com/m0yP"}}{\fldrslt \expnd0\expndtw0\kerning0 -Moises Perez}}\ -\ -MacPass\kerning1\expnd0\expndtw3 - \kerning1\expnd0\expndtw0 Icon: {\field{\*\fldinst{HYPERLINK "http://iiro.jappinen.me"}}{\fldrslt Iiro J\'e4ppinen}}\ -\ -Database Icons: {\field{\*\fldinst{HYPERLINK "https://github.com/JoannaOlsen"}}{\fldrslt Joanna Olsen}}\cf2 \ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt \cf2 KissXML}}\cf3 \ -Copyright \'a9 2012 Robbie Hanson. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf2 MiniKeePass}}\ -Copyright \'a9 2011 Jason Rush and John Flanagan. All rights reserved.\ - \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt \cf2 KeePass Database Library}}\ -Copyright \'a9 2010 Qiang Yu. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/Perspx/PXSourceList"}}{\fldrslt \cf3 PXSourceList}}\ -Copyright \'a9 2011, Alex Rozanski. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org"}}{\fldrslt \cf3 Sparkl\kerning1\expnd0\expndtw3 -e}}\kerning1\expnd0\expndtw3 -\ -Copyright \'a9 2006 Andy Matuschak. \kerning1\expnd0\expndtw0 All rights reserved.\kerning1\expnd0\expndtw3 -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -\cf3 \kerning1\expnd0\expndtw0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/questions/11386876/how-to-encode-and-decode-files-as-base64-in-cocoa-objective-c"}}{\fldrslt \cf3 NSData+Base64}}\ -Copyright \'a92013, {\field{\*\fldinst{HYPERLINK "http://stackoverflow.com/users/200321/denis2342"}}{\fldrslt denis2342}}\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://www.cocoadev.com/index.pl?NSDataCategory"}}{\fldrslt \cf3 NSData+Gzip}}\ -Extracted from code on the CocoaDev Wiki\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/karelia/SecurityInterface"}}{\fldrslt \cf3 KSPasswordField}}\ -Code reused in HNHUISecureTextField\ -Copyright \'a92012 Mike Abdullah, Karelia Software. All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/AlanQuatermain/aqtoolkit"}}{\fldrslt \cf3 NSData+CommonCrypto}}\ -Copyright \'a92008-2009 Jim Dovey, All rights reserved.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/mattt/TransformerKit"}}{\fldrslt \cf3 TransformerKit}}\ -Copyright \'a92012 Mattt Thompson. All rights reseverd} \ No newline at end of file diff --git a/MacPass/zh-Hans.lproj/DatabaseSettingsWindow.strings b/MacPass/zh-Hans.lproj/DatabaseSettingsWindow.strings index 1f7108275..d90d475ca 100644 --- a/MacPass/zh-Hans.lproj/DatabaseSettingsWindow.strings +++ b/MacPass/zh-Hans.lproj/DatabaseSettingsWindow.strings @@ -1,7 +1,15 @@ - /* Class = "NSWindow"; title = "Window"; ObjectID = "1"; */ "1.title" = "Window"; +/* Class = "NSTextFieldCell"; title = "Threads"; ObjectID = "2QI-ne-N5d"; */ +"2QI-ne-N5d.title" = "线程"; + +/* Class = "NSTextFieldCell"; title = "Iterations"; ObjectID = "2ZA-Gc-JdZ"; */ +"2ZA-Gc-JdZ.title" = "循环"; + +/* Class = "NSTextFieldCell"; title = "Enforce key change"; ObjectID = "5QH-N1-FHK"; */ +"5QH-N1-FHK.title" = "强制修改密码"; + /* Class = "NSTextFieldCell"; title = "Database name:"; ObjectID = "190"; */ "190.title" = "数据库名称:"; @@ -9,7 +17,7 @@ "257.title" = "描述:"; /* Class = "NSButtonCell"; title = "OK"; ObjectID = "289"; */ -"289.title" = "确定"; +"289.title" = "好"; /* Class = "NSTabViewItem"; label = "General"; ObjectID = "358"; */ "358.label" = "通用"; @@ -26,10 +34,7 @@ /* Class = "NSButtonCell"; title = "Enable Recycle Bin"; ObjectID = "536"; */ "536.title" = "使用废纸篓"; -/* Class = "NSButtonCell"; title = "Empty Recycle Bin on Quit"; ObjectID = "540"; */ -"540.title" = "退出时清空废纸篓"; - -/* Class = "NSTextFieldCell"; title = "Maximum Items:"; ObjectID = "558"; */ +/* Class = "NSTextFieldCell"; title = "Maximum items in history:"; ObjectID = "558"; */ "558.title" = "最多项目数:"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "680"; */ @@ -38,7 +43,7 @@ /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "957"; */ "957.title" = "取消"; -/* Class = "NSTextFieldCell"; title = "Maximum Size:"; ObjectID = "1269"; */ +/* Class = "NSTextFieldCell"; title = "Maximum history size:"; ObjectID = "1269"; */ "1269.title" = "最大大小:"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "1396"; */ @@ -60,13 +65,44 @@ "1588.title" = "模板组:"; /* Class = "NSTextFieldCell"; title = "Default Username:"; ObjectID = "1591"; */ -"1591.title" = "缺省用户名:"; - -/* Class = "NSTextFieldCell"; title = "Key encryption rounds:"; ObjectID = "1644"; */ -"1644.title" = "加密轮次:"; +"1591.title" = "默认用户名:"; /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "1740"; */ "1740.title" = "OtherViews"; -/* Class = "NSButtonCell"; title = "Benchmark"; ObjectID = "1775"; */ -"1775.title" = "测试"; +/* Class = "NSTextFieldCell"; title = "File format:"; ObjectID = "bTk-YZ-x0G"; */ +"bTk-YZ-x0G.title" = "文件格式:"; + +/* Class = "NSButtonCell"; title = "Recommend key change"; ObjectID = "CtU-Eq-dgy"; */ +"CtU-Eq-dgy.title" = "建议修改密码"; + +/* Class = "NSTextFieldCell"; title = "Algorithm"; ObjectID = "GVd-KH-pHc"; */ +"GVd-KH-pHc.title" = "算法"; + +/* Class = "NSTextFieldCell"; title = "Encryption:"; ObjectID = "gxY-UL-bEG"; */ +"gxY-UL-bEG.title" = "加密:"; + +/* Class = "NSTextFieldCell"; title = "Memory"; ObjectID = "iRY-If-Kwn"; */ +"iRY-If-Kwn.title" = "内存"; + +/* Class = "NSTextFieldCell"; title = "Recyclebin Group:"; ObjectID = "kI5-Kp-byE"; */ +"kI5-Kp-byE.title" = "回收站组:"; + +/* Class = "NSButtonCell"; title = "Force key change once after unlocking"; ObjectID = "pA1-aL-KjT"; */ +"pA1-aL-KjT.title" = "下次解锁之后强制修改密码"; + +/* Class = "NSBox"; title = "Key derivation"; ObjectID = "pbl-Mb-r8V"; */ +"pbl-Mb-r8V.title" = "密钥导出"; + +/* Class = "NSButtonCell"; title = "Generate Parameters"; ObjectID = "PoI-Er-Y8P"; */ +"PoI-Er-Y8P.title" = "生成参数"; + +/* Class = "NSTextFieldCell"; title = "Rounds"; ObjectID = "uUQ-9s-M5E"; */ +"uUQ-9s-M5E.title" = "加密轮数"; + +/* Class = "NSTextFieldCell"; title = "Recommend key change"; ObjectID = "Xib-Fn-sqx"; */ +"Xib-Fn-sqx.title" = "建议修改密码"; + +/* Class = "NSButtonCell"; title = "Force key change"; ObjectID = "z6u-YT-7LE"; */ +"z6u-YT-7LE.title" = "强制修改密码"; + diff --git a/MacPass/zh-Hans.lproj/DatePickingView.strings b/MacPass/zh-Hans.lproj/DatePickingView.strings index 0fc10d6c3..fc9dfc302 100644 --- a/MacPass/zh-Hans.lproj/DatePickingView.strings +++ b/MacPass/zh-Hans.lproj/DatePickingView.strings @@ -1,4 +1,3 @@ - /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "17"; */ "17.title" = "OtherViews"; @@ -7,3 +6,4 @@ /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "30"; */ "30.title" = "取消"; + diff --git a/MacPass/zh-Hans.lproj/DuplicateEntryOptionsWindow.strings b/MacPass/zh-Hans.lproj/DuplicateEntryOptionsWindow.strings index 59e0aa059..3948e7830 100644 --- a/MacPass/zh-Hans.lproj/DuplicateEntryOptionsWindow.strings +++ b/MacPass/zh-Hans.lproj/DuplicateEntryOptionsWindow.strings @@ -1,18 +1,18 @@ +/* Class = "NSButtonCell"; title = "Reference password instead of copying it"; ObjectID = "daA-QV-CDq"; */ +"daA-QV-CDq.title" = "引用密码而不是生成副本"; + +/* Class = "NSButtonCell"; title = "Duplicate history"; ObjectID = "dXl-KS-4rE"; */ +"dXl-KS-4rE.title" = "生成历史副本"; /* Class = "NSButtonCell"; title = "Reference username instead of copying it"; ObjectID = "O9X-XH-n8o"; */ -"O9X-XH-n8o.title" = "Reference username instead of copying it"; +"O9X-XH-n8o.title" = "引用用户名而不是生成副本"; -/* Class = "NSWindow"; title = "Window"; ObjectID = "QvC-M9-y7g"; */ +/* Class = "NSWindow"; title = "Duplicate Entry Options"; ObjectID = "QvC-M9-y7g"; */ "QvC-M9-y7g.title" = "Window"; /* Class = "NSButtonCell"; title = "Duplicate Entry"; ObjectID = "WqI-qH-ARf"; */ -"WqI-qH-ARf.title" = "Duplicate Entry"; - -/* Class = "NSButtonCell"; title = "Duplicate history"; ObjectID = "dXl-KS-4rE"; */ -"dXl-KS-4rE.title" = "Duplicate history"; - -/* Class = "NSButtonCell"; title = "Reference password instead of copying it"; ObjectID = "daA-QV-CDq"; */ -"daA-QV-CDq.title" = "Reference password instead of copying it"; +"WqI-qH-ARf.title" = "克隆项目"; /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "x6e-bE-Y6R"; */ -"x6e-bE-Y6R.title" = "Cancel"; +"x6e-bE-Y6R.title" = "取消"; + diff --git a/MacPass/zh-Hans.lproj/EntryInspectorView.strings b/MacPass/zh-Hans.lproj/EntryInspectorView.strings index 87073f54b..b1e468de6 100644 --- a/MacPass/zh-Hans.lproj/EntryInspectorView.strings +++ b/MacPass/zh-Hans.lproj/EntryInspectorView.strings @@ -1,3 +1,8 @@ +/* Class = "NSMenuItem"; title = "Save"; ObjectID = "0ok-MC-QMP"; */ +"0ok-MC-QMP.title" = "保存"; + +/* Class = "NSButtonCell"; title = "Enable Autotype"; ObjectID = "9Nx-mE-DK3"; */ +"9Nx-mE-DK3.title" = "使用自动键入"; /* Class = "NSButtonCell"; title = "Generate"; ObjectID = "64"; */ "64.title" = "生成"; @@ -20,9 +25,6 @@ /* Class = "NSTextFieldCell"; title = "Tags"; ObjectID = "79"; */ "79.title" = "标签"; -/* Class = "NSTabViewItem"; label = "Fields"; ObjectID = "108"; */ -"108.label" = "字段"; - /* Class = "NSTabViewItem"; label = "Attachments"; ObjectID = "109"; */ "109.label" = "附件"; @@ -41,9 +43,6 @@ /* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "171"; */ "171.title" = "表格视图单元"; -/* Class = "NSTextFieldCell"; title = "Custom Fields"; ObjectID = "190"; */ -"190.title" = "自定义字段"; - /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "197"; */ "197.title" = "文本单元"; @@ -53,47 +52,23 @@ /* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "214"; */ "214.placeholderString" = "值"; -/* Class = "NSTextFieldCell"; placeholderString = "Value"; ObjectID = "225"; */ -"225.placeholderString" = "值"; - -/* Class = "NSTextFieldCell"; placeholderString = "Title"; ObjectID = "228"; */ -"228.placeholderString" = "标题"; - /* Class = "NSSegmentedCell"; 238.ibShadowedLabels[0] = "General"; ObjectID = "238"; */ "238.ibShadowedLabels[0]" = "通用"; /* Class = "NSSegmentedCell"; 238.ibShadowedLabels[1] = "Files"; ObjectID = "238"; */ "238.ibShadowedLabels[1]" = "文件"; -/* Class = "NSSegmentedCell"; 238.ibShadowedLabels[3] = "Autotype"; ObjectID = "238"; */ +/* Class = "NSSegmentedCell"; 238.ibShadowedLabels[2] = "Autotype"; ObjectID = "238"; */ "238.ibShadowedLabels[2]" = "自动键入"; -/* Class = "NSMenuItem"; title = "Save"; ObjectID = "0ok-MC-QMP"; */ -"0ok-MC-QMP.title" = "保存"; - -/* Class = "NSButtonCell"; title = "Enable Autotype"; ObjectID = "9Nx-mE-DK3"; */ -"9Nx-mE-DK3.title" = "使用自动键入"; - -/* Class = "NSButtonCell"; title = "Obfuscate Autotype"; ObjectID = "oNq-kB-3eb"; */ -"oNq-kB-3eb.title" = "模糊自动键入"; - -/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "NtM-y3-l4D"; */ -"NtM-y3-l4D.title" = "Quicklook"; - -/* Class = "NSTextFieldCell"; placeholderString = "Custom Entry Sequence"; ObjectID = "R2X-Ex-c6q"; */ -"R2X-Ex-c6q.placeholderString" = "自定义项目序列"; - -/* Class = "NSTextFieldCell"; title = "Window Sequence"; ObjectID = "RQB-bR-MC0"; */ -"RQB-bR-MC0.title" = "窗口序列"; - -/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "bQ5-0E-h3O"; */ -"bQ5-0E-h3O.title" = "自动键入序列"; +/* Class = "NSMenuItem"; title = "Delete"; ObjectID = "bke-G2-oEf"; */ +"bke-G2-oEf.title" = "删除"; /* Class = "NSTextFieldCell"; title = "Window Title"; ObjectID = "bkO-Bk-AuX"; */ "bkO-Bk-AuX.title" = "窗口标题"; -/* Class = "NSMenuItem"; title = "Delete"; ObjectID = "bke-G2-oEf"; */ -"bke-G2-oEf.title" = "删除"; +/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "bQ5-0E-h3O"; */ +"bQ5-0E-h3O.title" = "自动键入序列"; /* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "dyA-lo-PGa"; */ "dyA-lo-PGa.title" = "表格视图单元"; @@ -110,11 +85,23 @@ /* Class = "NSTextFieldCell"; title = "Window Associations"; ObjectID = "ned-1Q-FXA"; */ "ned-1Q-FXA.title" = "窗口关系"; +/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "NtM-y3-l4D"; */ +"NtM-y3-l4D.title" = "Quicklook"; + +/* Class = "NSButtonCell"; title = "Obfuscate Autotype"; ObjectID = "oNq-kB-3eb"; */ +"oNq-kB-3eb.title" = "模糊自动键入"; + +/* Class = "NSTextFieldCell"; placeholderString = "Custom Entry Sequence"; ObjectID = "R2X-Ex-c6q"; */ +"R2X-Ex-c6q.placeholderString" = "自定义项目序列"; + +/* Class = "NSTextFieldCell"; title = "Window Sequence"; ObjectID = "RQB-bR-MC0"; */ +"RQB-bR-MC0.title" = "窗口序列"; + /* Class = "NSMenu"; title = "OtherViews"; ObjectID = "sNS-o1-pD7"; */ "sNS-o1-pD7.title" = "其他视图"; -/* Class = "NSButtonCell"; title = "Add Field"; ObjectID = "232"; */ -"232.title" = "增加字段"; +/* Class = "NSTextFieldCell"; title = "UUID"; ObjectID = "vTq-N1-5oa"; */ +"vTq-N1-5oa.title" = "UUID"; /* Class = "NSButtonCell"; title = "Show Plugin Data"; ObjectID = "X9y-K7-lix"; */ "X9y-K7-lix.title" = "显示插件数据"; diff --git a/MacPass/zh-Hans.lproj/GeneralSettings.strings b/MacPass/zh-Hans.lproj/GeneralPreferences.strings similarity index 62% rename from MacPass/zh-Hans.lproj/GeneralSettings.strings rename to MacPass/zh-Hans.lproj/GeneralPreferences.strings index 51234d1ec..382a4c71b 100644 --- a/MacPass/zh-Hans.lproj/GeneralSettings.strings +++ b/MacPass/zh-Hans.lproj/GeneralPreferences.strings @@ -1,15 +1,20 @@ +/* Class = "NSMenuItem"; title = "after 5 Minutes"; ObjectID = "5gh-b6-cmG"; */ +"5gh-b6-cmG.title" = "5 分钟之后"; + +/* Class = "NSButtonCell"; title = "Clear all stored locations"; ObjectID = "8Ri-2s-c39"; */ +"8Ri-2s-c39.title" = "清除所有储存的位置"; /* Class = "NSMenu"; title = "ClipboardClearInterval"; ObjectID = "421"; */ "421.title" = "ClipboardClearInterval"; /* Class = "NSMenuItem"; title = "after 10 Seconds"; ObjectID = "422"; */ -"422.title" = "10秒之后"; +"422.title" = "10 秒之后"; /* Class = "NSMenuItem"; title = "after 30 Seconds"; ObjectID = "423"; */ -"423.title" = "30秒之后"; +"423.title" = "30 秒之后"; /* Class = "NSMenuItem"; title = "after 1 Minute"; ObjectID = "424"; */ -"424.title" = "1分钟之后"; +"424.title" = "1 分钟之后"; /* Class = "NSMenuItem"; title = "Never"; ObjectID = "429"; */ "429.title" = "从不"; @@ -30,43 +35,47 @@ "586.title" = "锁定次数"; /* Class = "NSMenuItem"; title = "for 1 Minute"; ObjectID = "588"; */ -"588.title" = "1分钟"; +"588.title" = "1 分钟"; /* Class = "NSMenuItem"; title = "for 5 Minutes"; ObjectID = "589"; */ -"589.title" = "5分钟"; +"589.title" = "5 分钟"; /* Class = "NSMenuItem"; title = "for 15 Minutes"; ObjectID = "603"; */ -"603.title" = "15分钟"; +"603.title" = "15 分钟"; /* Class = "NSButtonCell"; title = "Lock after sleep"; ObjectID = "631"; */ "631.title" = "睡眠时锁定"; -/* Class = "NSButtonCell"; title = "Lock after log out"; ObjectID = "Dzn-9R-JjE"; */ -"Dzn-9R-JjE.title" = "登出后锁定"; - /* Class = "NSMenuItem"; title = "Never"; ObjectID = "804"; */ "804.title" = "从不"; /* Class = "NSTextFieldCell"; title = "Lock while idle"; ObjectID = "806"; */ "806.title" = "空闲时锁定"; -/* Class = "NSButtonCell"; title = "Create new Database if activated"; ObjectID = "880"; */ -"880.title" = "激活时创建新的数据库"; - -/* Class = "NSBox"; title = "Startup"; ObjectID = "888"; */ +/* Class = "NSBox"; title = "File Handling"; ObjectID = "888"; */ "888.title" = "启动"; -/* Class = "NSBox"; title = "General"; ObjectID = "928"; */ -"928.title" = "通用"; +/* Class = "NSTextFieldCell"; title = "Enabling this compromises security. If enabled, your preferences will contain mappings from database to keyfile. Key locations for databases without a password will not be saved."; ObjectID = "ACh-7H-42N"; */ +"ACh-7H-42N.title" = "使用此功能将影响安全性。若使用此功能,您的设置将包含从数据库到密钥文件的映射。没有密码的数据库密钥位置将不会保存。"; -/* Class = "NSButtonCell"; title = "Double-click entry URL to Launch"; ObjectID = "937"; */ -"937.title" = "双击项目的 URL 将在浏览器中打开"; +/* Class = "NSButtonCell"; title = "Lock after log out"; ObjectID = "Dzn-9R-JjE"; */ +"Dzn-9R-JjE.title" = "登出后锁定"; -/* Class = "NSButtonCell"; title = "Clear all stored locations"; ObjectID = "8Ri-2s-c39"; */ -"8Ri-2s-c39.title" = "清除所有储存的位置"; +/* Class = "NSButtonCell"; title = "Prevent Universal Clipboard support"; ObjectID = "fNy-mS-phi"; */ +"fNy-mS-phi.title" = "阻止通用剪贴板支持"; -/* Class = "NSTextFieldCell"; title = "Enabling this compromises security. If enabled, your preferences will contain mappings from database to keyfile. Key locations for databases without a password will not be saved."; ObjectID = "ACh-7H-42N"; */ -"ACh-7H-42N.title" = "使用此功能将影响安全性。若使用此功能,您的设置将包含从数据库到密钥文件的映射。没有密码的数据库密钥位置将不会保存。"; +/* Class = "NSTextFieldCell"; title = "Disabling this compromises security. If enabled, anything copied to the Clipboard in MacPass will be available on your connected iOS devices. You should clear the clipboard on those devices manually."; ObjectID = "JGX-Tp-KJk"; */ +"JGX-Tp-KJk.title" = "关闭此功能将影响安全性。若打开此功能,所有在 MacPass 中被复制到剪贴板的内容将出现在连接的 iOS 设备上。您应当手动清理那些设备上剪贴板里的内容"; + +/* Class = "NSTextFieldCell"; title = "If file changes:"; ObjectID = "QrK-hM-Xt1"; */ +"QrK-hM-Xt1.title" = "如果文件改变:"; /* Class = "NSButtonCell"; title = "Remember Keyfile for Databases"; ObjectID = "r6q-He-nYU"; */ "r6q-He-nYU.title" = "记住数据库的密钥文件"; + +/* Class = "NSButtonCell"; title = "Enable Autosave"; ObjectID = "wG7-bi-2fi"; */ +"wG7-bi-2fi.title" = "打开自动保存"; + +/* Class = "NSTextFieldCell"; title = "Close and open all documents for changes to take effect"; ObjectID = "ya5-ps-c4W"; */ +"ya5-ps-c4W.title" = "关闭并重新打开所有文档以使改动生效"; + diff --git a/MacPass/zh-Hans.lproj/GroupInspectorView.strings b/MacPass/zh-Hans.lproj/GroupInspectorView.strings index 4ad5ea2f4..911927f1f 100644 --- a/MacPass/zh-Hans.lproj/GroupInspectorView.strings +++ b/MacPass/zh-Hans.lproj/GroupInspectorView.strings @@ -1,3 +1,5 @@ +/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "6FG-UZ-Adh"; */ +"6FG-UZ-Adh.title" = "自动键入序列"; /* Class = "NSTextFieldCell"; title = "Name"; ObjectID = "25"; */ "25.title" = "名称"; @@ -17,9 +19,6 @@ /* Class = "NSTextFieldCell"; title = "Autotype"; ObjectID = "277"; */ "277.title" = "自动键入"; -/* Class = "NSTextFieldCell"; title = "Autotype Sequence"; ObjectID = "6FG-UZ-Adh"; */ -"6FG-UZ-Adh.title" = "自动键入序列"; - -/* Class = "NSButtonCell"; title = "Edit Plugin Data"; ObjectID = "qGr-oT-WjP"; */ +/* Class = "NSButtonCell"; title = "Show Plugin Data"; ObjectID = "qGr-oT-WjP"; */ "qGr-oT-WjP.title" = "编辑插件数据"; diff --git a/MacPass/zh-Hans.lproj/IconSelection.strings b/MacPass/zh-Hans.lproj/IconSelection.strings index b4c6a8aa5..963431ff3 100644 --- a/MacPass/zh-Hans.lproj/IconSelection.strings +++ b/MacPass/zh-Hans.lproj/IconSelection.strings @@ -1,6 +1,9 @@ +/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "1kM-cI-P1o"; */ +"1kM-cI-P1o.title" = "取消"; /* Class = "NSButtonCell"; title = "Use Default Icon"; ObjectID = "102"; */ "102.title" = "使用默认图标"; -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "1kM-cI-P1o"; */ -"1kM-cI-P1o.title" = "取消"; +/* Class = "NSButtonCell"; title = "Download Icon"; ObjectID = "iaf-XW-XUo"; */ +"iaf-XW-XUo.title" = "下载图标"; + diff --git a/MacPass/zh-Hans.lproj/InfoPlist.strings b/MacPass/zh-Hans.lproj/InfoPlist.strings index 477b28ff8..2f07b707c 100644 --- a/MacPass/zh-Hans.lproj/InfoPlist.strings +++ b/MacPass/zh-Hans.lproj/InfoPlist.strings @@ -1,2 +1,12 @@ -/* Localized versions of Info.plist keys */ +/* (No Comment) */ +"KDB Database" = "KDB 数据库"; + +/* (No Comment) */ +"KDBX Database" = "KDBX 数据库"; + +/* Copyright (human-readable) */ +"NSHumanReadableCopyright" = " Copyright © 2012-2019 HicknHack Software GmbH. 保留一切权利。"; + +/* (No Comment) */ +"XML" = "XML"; diff --git a/MacPass/zh-Hans.lproj/InspectorView.strings b/MacPass/zh-Hans.lproj/InspectorView.strings index 21b861ed3..f85a725cd 100644 --- a/MacPass/zh-Hans.lproj/InspectorView.strings +++ b/MacPass/zh-Hans.lproj/InspectorView.strings @@ -1,4 +1,3 @@ - /* Class = "NSTabViewItem"; label = "Group"; ObjectID = "2896"; */ "2896.label" = "组"; @@ -14,11 +13,9 @@ /* Class = "NSTextFieldCell"; title = "Label"; ObjectID = "3014"; */ "3014.title" = "标记"; -/* Class = "NSButtonCell"; title = "Edit"; ObjectID = "3110"; */ -"3110.title" = "编辑"; +/* Class = "NSTextFieldCell"; title = "Notes"; ObjectID = "hwn-UY-9Cr"; */ +"hwn-UY-9Cr.title" = "备注"; -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "3127"; */ -"3127.title" = "取消"; +/* Class = "CocoaBindingsConnection"; ibShadowedIsNilPlaceholder = "None"; ObjectID = "Xpb-G8-gXl"; */ +"Xpb-G8-gXl.ibShadowedIsNilPlaceholder" = "无"; -/* Class = "NSTextFieldCell"; title = "Notes"; ObjectID = "hwn-UY-9Cr"; */ -"hwn-UY-9Cr.title" = "注释"; diff --git a/MacPass/zh-Hans.lproj/IntegrationSettings.strings b/MacPass/zh-Hans.lproj/IntegrationPreferences.strings similarity index 55% rename from MacPass/zh-Hans.lproj/IntegrationSettings.strings rename to MacPass/zh-Hans.lproj/IntegrationPreferences.strings index 8d8ae31c2..57e77d01b 100644 --- a/MacPass/zh-Hans.lproj/IntegrationSettings.strings +++ b/MacPass/zh-Hans.lproj/IntegrationPreferences.strings @@ -1,45 +1,45 @@ - -/* Class = "NSButtonCell"; title = "Enable KeePassHttp server"; ObjectID = "3"; */ -"3.title" = "使用 KeePassHttp 服务器"; - /* Class = "NSButtonCell"; title = "Enable global Autotype"; ObjectID = "1qb-Rd-jYu"; */ "1qb-Rd-jYu.title" = "使用全局自动键入"; /* Class = "NSTextFieldCell"; title = "Shortcut"; ObjectID = "6oN-CH-T0O"; */ "6oN-CH-T0O.title" = "快捷键"; -/* Class = "NSButtonCell"; title = "Enabel Quicklook Preview"; ObjectID = "ERs-ct-Eyx"; */ -"ERs-ct-Eyx.title" = "使用 Quicklook 预览"; - -/* Class = "NSBox"; title = "Keepass HTTP"; ObjectID = "KbH-0Q-5Tw"; */ -"KbH-0Q-5Tw.title" = "Keepass HTTP"; - -/* Class = "NSBox"; title = "Autotype"; ObjectID = "P9N-HM-wER"; */ -"P9N-HM-wER.title" = "自动键入"; - -/* Class = "NSBox"; title = "Preview"; ObjectID = "VVs-b5-cX9"; */ -"VVs-b5-cX9.title" = "预览"; +/* Class = "NSButtonCell"; title = "Include Entry URL Host for matches"; ObjectID = "B1D-j9-L8x"; */ +"B1D-j9-L8x.title" = "匹配包含 Host"; -/* Class = "NSTextFieldCell"; title = "If enabled attached files will be copied to a tempoary location for preview and deleted after the preview is closed."; ObjectID = "WmI-IB-Aso"; */ -"WmI-IB-Aso.title" = "若使用此功能,预览时附件文件将被拷贝到临时文件夹,并且在预览后将被删除。"; +/* Class = "NSButtonCell"; title = "Enable Quicklook Preview"; ObjectID = "ERs-ct-Eyx"; */ +"ERs-ct-Eyx.title" = "使用 Quicklook 预览"; -/* Class = "NSButtonCell"; title = "Include Host for matches"; ObjectID = "B1D-j9-L8x"; */ -"B1D-j9-L8x.title" = "匹配包含 Host"; +/* Class = "NSTextFieldCell"; title = "Autotype might not work properly. Some issues where found that prevent Autotype or Global Autotype to work. Please run the Autotype Doctor to fix those issues."; ObjectID = "H37-ku-aTc"; */ +"H37-ku-aTc.title" = "自动键入没有正确工作,某些问题阻止了它的使用。请执行自动键入诊断来查看这些问题。"; /* Class = "NSTextFieldCell"; title = "Shortcut is missing Key"; ObjectID = "Lxp-wI-yQy"; */ "Lxp-wI-yQy.title" = "快捷键不完全"; -/* Class = "NSTextFieldCell"; title = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to."; ObjectID = "QRy-CY-ENC"; */ -"QRy-CY-ENC.title" = "若使用此功能,所有 {CONTROL} 命令将被发送为 ⌘。请确认需要时再禁止此功能。"; +/* Class = "NSButtonCell"; title = "Run Autotype Doctor…"; ObjectID = "NP0-R3-m6n"; */ +"NP0-R3-m6n.title" = "自动键入诊断..."; + +/* Class = "NSBox"; title = "Autotype"; ObjectID = "P9N-HM-wER"; */ +"P9N-HM-wER.title" = "自动键入"; /* Class = "NSButtonCell"; title = "Interpret ⌃ as ⌘"; ObjectID = "QfO-yG-l3F"; */ "QfO-yG-l3F.title" = "将 ⌃ 当作 ⌘"; -/* Class = "NSButtonCell"; title = "Include URL for matches"; ObjectID = "TzR-00-Vp3"; */ -"TzR-00-Vp3.title" = "匹配包含 URL"; +/* Class = "NSTextFieldCell"; title = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to."; ObjectID = "QRy-CY-ENC"; */ +"QRy-CY-ENC.title" = "若使用此功能,所有 {CONTROL} 命令将被发送为 ⌘。请确认需要时再禁止此功能。"; -/* Class = "NSButtonCell"; title = "Include Tags for matches"; ObjectID = "rbu-G7-MT8"; */ +/* Class = "NSButtonCell"; title = "Include Entry Tags for matches"; ObjectID = "rbu-G7-MT8"; */ "rbu-G7-MT8.title" = "匹配包含 Tags"; -/* Class = "NSButtonCell"; title = "Include Title for matches"; ObjectID = "tmL-dT-D0G"; */ +/* Class = "NSButtonCell"; title = "Include Entry Title for matches"; ObjectID = "tmL-dT-D0G"; */ "tmL-dT-D0G.title" = "匹配包含 Title"; + +/* Class = "NSButtonCell"; title = "Include Entry URL for matches"; ObjectID = "TzR-00-Vp3"; */ +"TzR-00-Vp3.title" = "匹配包含 URL"; + +/* Class = "NSBox"; title = "Preview"; ObjectID = "VVs-b5-cX9"; */ +"VVs-b5-cX9.title" = "预览"; + +/* Class = "NSTextFieldCell"; title = "If enabled attached files will be copied to a temporary location for preview and deleted after the preview is closed."; ObjectID = "WmI-IB-Aso"; */ +"WmI-IB-Aso.title" = "若打开此功能,预览时附件文件将被拷贝到临时文件夹,并且在预览后将被删除。"; + diff --git a/MacPass/zh-Hans.lproj/Localizable.strings b/MacPass/zh-Hans.lproj/Localizable.strings index 4c070e60d..e9b3abd30 100644 --- a/MacPass/zh-Hans.lproj/Localizable.strings +++ b/MacPass/zh-Hans.lproj/Localizable.strings @@ -1,194 +1,694 @@ -/* Formatted Times */ +/* % days ago */ "%ld_DAYS_AGO" = "%ld 天以前"; + +/* % Hours ago */ "%ld_HOURS_AGO" = "大约 %ld 小时以前"; + +/* % Minutes ago */ "%ld_MINUTES_AGO" = "%ld 分钟以前"; + +/* % Weeks ago */ "%ld_WEEKS_AGO" = "%ld 周以前"; -"JUST_NOW" = "现在"; -"LAST_WEEK" = "上周"; -"ONE_WEEK_AGO" = "一周以前"; -"YESTERDAY" = "昨天"; -"TOMORROW" = "明天"; -"ONE_WEEK" = "一周之后"; -"ONE_MONTH" = "一月之后"; + +/* preset to expire after 90 days from now */ "90_DAYS" = "90 天之后"; -"ONE_YEAR" = "一年之后"; -/* Date Picker */ -"SELECT_DATE_PRESET" = "使用预设值…"; +/* Button label to abort a merge on a file with changed master key! */ +"ABORT_MERGE_KEEP_MINE" = "终止合并,保留我的文件。"; -/* Menu item for automatic trash creation */ -"AUTOCREATE_TRASH_FOLDER" = "自动创建"; +/* Toolbar item with action menu */ +"ACTION" = "动作"; -/* - Actions - */ -"NEW_ENTRY" = "添加项目"; -"NEW_GROUP" = "添加组"; -"DUPLICATE_ENTRY" = "克隆项目"; -"DUPLICATE_ENTRY_WITH_OPTIONS" = "克隆项目…"; -"COPY_ENTRY" = "拷贝项目"; -"COPY_GROUP" = "拷贝组"; +/* Action to add an entry via template */ "ADD_TREMPLATE_ENTRY" = "创建模板项目"; -"DELETE_GROUP" = "删除组"; -"DELETE_ENTRY" = "删除项目"; -"EDIT_TEMPLATE_GROUP" = "编辑项目模板组"; -"EMPTY_TRASH" = "清空废纸篓"; -"MOVE_ENTRY" = "移动项目"; -"MOVE_GROUP" = "移动组"; -"NEW_ENTRY_WITH_TEMPLATE_%@" = "从模板 %@ 创建项目"; -"NEW_DATABASE" = "数据库"; -"OPEN_URL" = "打开 URL"; -"PERFORM_AUTOTYPE_FOR_ENTRY" = "执行自动键入"; -"PREVIEW" = "预览"; -"PASSWORD_GENERATOR_SET_DEFAULTS" = "设为默认值"; -"PASSWORD_GENERATOR_RESET_ENTRY_DEFAULTS" = "重置"; -"TRASH_ENTRY" = "将项目移入废纸篓"; -"TRASH_GROUP" = "将组移入废纸篓"; -"SHOW_HISTORY" = "显示历史"; -/* - Search - */ -"CLEAR_RECENT_SEARCHES" = "清除最近的搜索"; -"RECENT_SEARCHES" = "最近的搜索"; -"SEARCH_DUPLICATE_PASSWORDS" = "重复的密码"; -"SEARCH_EXPIRED_ENTRIES" = "已过期"; -"SELECT_FILTER_WITH_DOTS" = "筛选…"; +/* Button in dialog to leave plugin ds disabled and continiue! */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OK" = "好"; -/* - Direct Translations - */ -"ACTION" = "动作"; +/* Button in dialog to open plugin preferences pane! */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_BUTTON_OPEN_PREFERENCES" = "打开插件设置..."; + +/* Informative text of the alert displayed when plugins where disabled due to incompatibilty */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_INFORMATIVE_TEXT" = ""; + +/* Message text of the alert displayed when plugins where disabled due to incompatibilty */ +"ALERT_INCOMPATIBLE_PLUGINS_ENCOUNTERED_MESSAGE" = "检测到不兼容的插件"; + +/* Alert informative text when plugins or their settings change and require a restart */ +"ALERT_INFORMATIVE_TEXT_PLUGINS_CHANGED_SUGGEST_RESTART" = "对于插件和全局的插件设置改动,需要重启 MacPass 才能有效。现在重启 MacPass 吗?"; + +/* Alert informative text to ask the user if he really want to uninstall the plugin */ +"ALERT_INFORMATIVE_TEXT_REALLY_UNINSTALL_PLUGIN" = "这个插件将会被移动到废纸篓。"; + +/* Button in dialog to cancel merge of KDB file changes! */ +"ALERT_MERGE_CANCEL" = "取消"; + +/* Button in dialog to merge KDB changes into file! */ +"ALERT_MERGE_CONTINUE" = "合并文件"; + +/* Informative text displayed when merging KDB files */ +"ALERT_MERGE_KDB_FILE_INFO_TEXT" = "KDB 数据库没有包含足以进行无缝合并的信息。所有的项目将会被合并,不会有数据丢失。但是由于项目组仅通过名称来进行匹配,可能会有非预期的改变出现。项目可能会被还原到之前的组当中,重命名的组可能不会被合并,被删除的项目可能会重新出现。你确定想继续吗?"; + +/* Alert message warning user about KDB file merge */ +"ALERT_MERGE_KDB_FILE_MESSAGE" = "你正在合并一个 KDB 数据库"; + +/* Attachments column title (shows counts) + Menu item to toggle display of attachment count column in entry table */ "ATTACHMENTS" = "附件"; -"CANCEL" = "取消"; -"DATABASE" = "数据库"; -"DELETE" = "删除"; -"EDIT" = "编辑"; -"GROUP" = "组"; -"INSPECTOR" = "检查器"; -"LOCK" = "锁定"; -"MODIFIED" = "修改时间"; -"NONE" = "无"; -"NOTES" = "注释"; -"PASSWORD" = "密码"; -"SAVE" = "保存"; -"SAVE_WITH_DOTS" = "保存…"; -"SEARCH" = "搜索"; -"TITLE" = "标题"; -"URL" = "URL"; -"USERNAME" = "用户名"; -"WINDOWS" = "Windows"; +/* Sucessfully merged external changes */ +"AUTO_MERGE_NOTIFICATION_TEXT" = "自动合并成功!"; + +/* Menu item for automatic trash creation */ +"AUTOCREATE_TRASH_FOLDER" = "自动创建"; + +/* Message text in the autotype selection window. Placeholder is %1 - windowTitle */ +"AUTOTYPE_CANDIDATE_SELECTION_WINDOW_MESSAGE_%@" = "在当前窗口 %@ 中发现了多个匹配,请选择要使用的匹配。"; + +/* Window title for the stand-alone password creator window */ +"AUTOTYPE_DOCTOR_RESULTS_WINDOW_TITLE" = "自动键入诊断"; + +/* Inherit autotype settings menu item */ +"AUTOTYPE_INHERIT" = "继承自动键入设置"; + +/* Message displayed to the user to unlock the database to perform global autotype */ +"AUTOTYPE_MESSAGE_UNLOCK_DATABASE" = "使用全局自动键入前请先解锁数据库"; + +/* Disable autotype menu item */ +"AUTOTYPE_NO" = "禁用自动键入"; + +/* Notification: Autotype failed, MacPass has not enough permissions to perform autotype */ +"AUTOTYPE_NOTIFICATION_MACPASS_IS_MISSING_PERMISSIONS" = "MacPass 没有执行自动键入的权限。"; + +/* Notification: Autotype failed, no documents are open */ +"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "请打开一个数据库文件以使用全局自动键入!"; + +/* Noticiation: Autotype failed to find a match for %@ (string placeholder) */ +"AUTOTYPE_OVERLAY_NO_MATCH_FOR_%@" = "没有找到匹配 %@!"; + +/* Notification: Autotype found a single match for %@ (string placeholder). */ +"AUTOTYPE_OVERLAY_SINGLE_MATCH_FOR_%@" = "找到匹配 %@!"; + +/* Status lable when no issue were found in accessibilty */ +"AUTOTYPE_STATUS_ACCESSIBILTY_PERMISSIONS_OK" = "MacPass 有权限控制您的计算机(辅助功能)"; + +/* Status MacPass has no accessibilty permissions */ +"AUTOTYPE_STATUS_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass 没有权限控制您的计算机(辅助功能)"; + +/* Status MacPass has no screen recording permissions */ +"AUTOTYPE_STATUS_NO_SCREEN_RECORDING_PERMISSIONS" = "MacPass 没有权限录制您的屏幕"; + +/* Status lable when no issue were found in screen recording permissions */ +"AUTOTYPE_STATUS_SCREEN_RECORDING_PERMISSIONS_OK" = "MacPass 有权限录制您的屏幕"; + +/* Notficication: Autotype timed out */ +"AUTOTYPE_TIMED_OUT" = "自动键入超时"; + +/* Enable autotype menu item */ +"AUTOTYPE_YES" = "打开自动键入"; + +/* Cancel */ +"CANCEL" = "取消"; +/* Menu item in the database outline context menu to change the database name */ "CHANGE_DATABASE_NAME" = "修改数据库名称"; + +/* Button to postpone the password change */ +"CHANGE_LATER" = "稍后修改"; + +/* Button to show the password change dialog + Single button to show the password change dialog */ +"CHANGE_PASSWORD_WITH_DOTS" = "更改密码…"; + +/* Menu item in the database outline context menu to change the trash group */ "CHANGE_TRASH_GROUP" = "修改废纸篓的项目组"; -/* Field nam that was copied to the pasteboard */ +/* Button title in the key file selection dialog for selecting a key */ +"CHOOSE_FILE_BUTTON_TITLE" = "打开"; + +/* Clear Autotype Button */ +"CLEAR_AUTOTYPE" = "清空自动键入"; + +/* Menu to clear recent searches */ +"CLEAR_RECENT_SEARCHES" = "清除最近的搜索"; + +/* String displayed at dock badge when clipboard is about to be cleared */ +"CLEARING_PASTEBOARD" = "…"; + +/* Field name that was copied to the pasteboard */ "COPIED_FIELD_%@" = "%@ 已拷贝到剪贴板"; + +/* Context menu that copies reference to note */ +"COPIED_NOTES_REFERENCE" = "备注引用已拷贝"; + +/* Password was copied to the pasteboard */ "COPIED_PASSWORD" = "密码已拷贝到剪贴板!"; + +/* Context menu that copies reference to password */ +"COPIED_PASSWORD_REFERENCE" = "密码引用已拷贝!"; + +/* Context menu that copies reference to title */ +"COPIED_TITLE_REFERENCE" = "标题引用已拷贝!"; + +/* URL was copied to the pasteboard */ "COPIED_URL" = "URL 已拷贝到剪贴板!"; + +/* Context menu that copies reference to URL */ +"COPIED_URL_REFERENCE" = "URL 引用已拷贝!"; + +/* Username was copied to the pasteboard */ "COPIED_USERNAME" = "用户名已拷贝到剪贴板!"; + +/* Context menu that copies reference to username */ +"COPIED_USERNAME_REFERENCE" = "用户名引用已拷贝!"; + +/* Submenu to copy attributes as reference */ +"COPY_AS_REFERENCE" = "拷贝引用到..."; + +/* Context menu sub-menu to copy attributes as reference */ +"COPY_AS_REFERENCE_MENU" = "复制为引用"; + +/* Submenu to Copy custom fields */ "COPY_CUSTOM_FIELDS" = "拷贝自定义字段"; + +/* Action name when an entry was moved + Action title for copying an entry via drag and drop */ +"COPY_ENTRY" = "拷贝项目"; + +/* Mask for title to copy field value */ "COPY_FIELD_%@" = "拷贝 %@"; + +/* Action title for copying a group via drag and drop */ +"COPY_GROUP" = "拷贝组"; + +/* Context menu that copies reference to note */ +"COPY_NOTES_REFERENCE" = "备注"; + +/* Menu item to copy the password of an entry + Toolbar item copy password */ "COPY_PASSWORD" = "拷贝密码"; + +/* Context menu that copies reference to password */ +"COPY_PASSWORD_REFERENCE" = "密码"; + +/* Context menu that copies reference to title */ +"COPY_TITLE_REFERENCE" = "标题"; + +/* Menu item to copy the URL of an entry */ "COPY_URL" = "拷贝 URL"; -"COPY_USERNAME" = "拷贝用户名"; -/* Dock Badge */ -"CLEARING_PASTEBOARD" = "…"; +/* Context menu that copies reference to URL */ +"COPY_URL_REFERENCE" = "URL"; -/* Group Inspector */ -/* Autotype Combobox */ -"AUTOTYPE_NO" = "禁用自动键入"; -"AUTOTYPE_YES" = "打开自动键入"; -"AUTOTYPE_INHERIT" = "继承自动键入设置"; +/* Menu item to copy the username of an entry + Toolbar item copy username */ +"COPY_USERNAME" = "拷贝用户名"; -/* Search Combobox */ -"SEARCH_INHERIT" = "继承搜索设置"; -"SEARCH_YES" = "包含在搜索中"; -"SEARCH_NO" = "排除在搜索外"; +/* Context menu that copies reference to username */ +"COPY_USERNAME_REFERENCE" = "用户名"; -/* - Date/Time Displays - */ -/* Created at template string. %@ is replaced by locaized date and time */ -"CREATED_AT_%@" = "创建时间: %@"; -/* Modifed at template string. %@ is replaced by locaized date and time */ -"MODIFED_AT_%@" = "修改时间: %@"; +/* Curstom attribute reference item */ +"CUSTOM_ATTRIBUTE" = "自定义属性"; -"EXPIRES_AT_DATE_%@" = "失效时间: %@"; -"NO_EXPIRE_DATE_SET" = "永不失效"; +/* Default display name for KDB databases */ +"DATABASE" = "数据库"; -/* - Defaults for new objects - */ +/* Default Browser */ +"DEFAULT_BROWSER" = "默认浏览器"; + +/* Default Titel for new Custom-Fields */ "DEFAULT_CUSTOM_FIELD_TITLE" = "自定义"; + +/* Default Value for new Custom-Fields */ "DEFAULT_CUSTOM_FIELD_VALUE" = "值"; + +/* Title for a newly created entry */ "DEFAULT_ENTRY_TITLE" = "新项目"; + +/* Title for a newly created group */ "DEFAULT_GROUP_NAME" = "项目组"; + +/* Default window title for a new window association */ "DEFAULT_WINDOW_TITLE" = "Window Title"; -/* Settings */ -"GENERAL_SETTINGS" = "通用"; +/* Menu item in the database outline context menu to delete the node from the trash + Menu item to delete an entry + Menu item to delete the selected attached file + Menu item to delete the selected custom icon + Toolbar item delete item */ +"DELETE" = "删除"; + +/* Delete Entry */ +"DELETE_ENTRY" = "删除项目"; + +/* Delete Group */ +"DELETE_GROUP" = "删除组"; + +/* Empty Trash */ +"DELETE_TRASHED_ENTRY" = "删除被移入废纸篓的项目"; + +/* Empty Trash */ +"DELETE_TRASHED_GROUP" = "删除被移入废纸篓的组"; + +/* Action name for duplicating entries */ +"DUPLICATE_ENTRIES_ACTION_NAME" = "克隆项目"; + +/* Menu item to directly diplicate an entry */ +"DUPLICATE_ENTRY" = "克隆项目"; + +/* Menu item to duplicate an entry with options how to duplicate. Will present a dialog. */ +"DUPLICATE_ENTRY_WITH_OPTIONS" = "克隆项目…"; + +/* Menu item to directly diplicate a group */ +"DUPLICATE_GROUP" = "克隆组"; + +/* Action name for duplicating groups */ +"DUPLICATE_GROUPS_ACTION_NAME" = "克隆组"; + +/* Menu item in the database outline context menu to change the template group + Menu item on the add entry context menu to edit template groups */ +"EDIT_TEMPLATE_GROUP" = "编辑项目模板组"; + +/* Empty Trash + Menu item in the database outline context menu to empyt the trash + Menu item in the database outline to empty the trash + Menu item to empty the trash */ +"EMPTY_TRASH" = "清空废纸篓"; + +/* Informative text for the enforce password change alert */ +"ENFORCE_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "更改密码/密钥文件之前,你将不能保存数据库"; + +/* Message text for the enforce password change alert */ +"ENFORCE_PASSWORD_CHANGE_ALERT_TITLE" = "数据库密码已过期!"; + +/* Keyfile not valid */ +"ERROR_INVALID_KEYFILE" = "密钥文件不正确!"; + +/* Error description given when adding an invalid plugin */ +"ERROR_INVALID_PLUGIN" = "无效插件"; + +/* Error description for missing accessibilty permissions */ +"ERROR_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass 没有权限控制您的计算机(辅助功能)"; + +/* Error description for missing screen recording permissions */ +"ERROR_NO_PERMISSION_TO_RECORD_SCREEN" = "MacPass 没有权限录制您的屏幕"; + +/* Passwords do not match */ +"ERROR_PASSWORD_MISSMATCH" = "密码不正确!"; + +/* Passwords do not match, keyfile is invalid */ +"ERROR_PASSWORD_MISSMATCH_INVALID_KEYFILE" = "密码和密钥文件不正确!"; + +/* Recommend/Enforce key change intervall format */ +"EVERY_%ld_DAYS" = "每 %ld 天"; + +/* Format to returen the date an item expires. Includes %@ placehoder for date */ +"EXPIRES_AT_DATE_%@" = "失效时间: %@"; + +/* The master key was changed by an external program! */ +"EXTERN_CHANGE_OF_MASTERKEY" = "主密钥被其他程序修改"; + +/* External file change strategy option: ask what to do */ +"FILE_CHANGE_STRATEGY_ASK" = "询问"; + +/* External file change strategy option: Keep local file an ignore external changes */ +"FILE_CHANGE_STRATEGY_KEEP_MINE" = "保留我的版本,忽略其他修改"; + +/* Button in dialog to merge changes into file! + External file change strategy option: Merge external changes into local file. */ +"FILE_CHANGE_STRATEGY_MERGE" = "合并修改"; + +/* External file change strategy option: Use the changed file and discard local changes */ +"FILE_CHANGE_STRATEGY_USE_OTHER" = "加载修改的版本,放弃我的版本"; + +/* Informative text displayed when the file was change from another application */ +"FILE_CHANGED_BY_OTHERS_INFO_TEXT" = "加载的文件和磁盘上的文件不同,你想怎么处理?"; + +/* Message displayed when an open file was changed from another application */ +"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "数据库文件被修改!"; + +/* Error while reopening last known documents */ +"FILE_OPEN_ERROR" = "打开文件错误"; + +/* General Settings Label */ +"GENERAL_PREFERENCES" = "通用"; + +/* Group column title */ +"GROUP" = "组"; + +/* History count column title + Menu item to toggle display of history count column in entry table */ +"HISTORY" = "历史"; + +/* Imports a dragged URL for a new entry */ +"IMPORT_URL" = "导入 URL"; + +/* Toolbar item toggle inspector */ +"INSPECTOR" = "检查器"; + +/* Label for the integration settings tab */ "INTEGRATION_SETTINGS" = "集成"; -"UPDATE_SETTINGS" = "更新"; -"WORKFLOW_SETTINGS" = "工作流"; -"DEFAULT_BROWSER" = "缺省浏览器"; -"OTHER_BROWSER" = "选择浏览器…"; -"PLUGIN_SETTINGS" = "插件"; -/* Feature not supported in Version */ +/* Just now */ +"JUST_NOW" = "现在"; + +/* Feature only available in kdbx databases */ "KDBX_ONLY_FEATURE" = "KDB 数据库不支持此特性"; -/* Template */ +/* Button in dialog to ignore the changes to an open file! */ +"KEEP_MINE_DISCARD_OTHER" = "保留我的,丢弃他人的改动"; + +/* Button in dialog to reopen the file! */ +"KEEP_OTHER_DISCARD_MINE" = "保留他人的,丢弃我的改动"; + +/* Do not restart MacPass */ +"KEEP_RUNNING" = "保持运行"; + +/* last week */ +"LAST_WEEK" = "上周"; + +/* Toolbar item to Lock the database */ +"LOCK" = "锁定"; + +/* Message in the open panel to add attachments to an entry */ +"MESSAGE_ADD_ATTACHMENT_OPEN_PANEL" = "选择要添加的附件"; + +/* Message in the add plugin open panel */ +"MESSAGE_ADD_PLUGIN_OPEN_PANEL" = "选择要安装的插件"; + +/* Menu item to toggle display of modified date column in entry table + Modification date column title */ +"MODIFIED" = "修改时间"; + +/* Action name when an entry was moved */ +"MOVE_ENTRY" = "移动项目"; + +/* Name for a newly created Database */ +"NEW_DATABASE" = "数据库"; + +/* Action name for a newly created entry + Menu item to create a new entry + Toolbar item new entry */ +"NEW_ENTRY" = "添加项目"; + +/* Submenu to add an entry via template */ +"NEW_ENTRY_WITH_TEMPLATE_%@" = "从模板 %@ 创建项目"; + +/* Action name for a newly created group + Menu item to create a new group + Toolbar item new group */ +"NEW_GROUP" = "添加组"; + +/* Expiration date format, when item does not expire */ +"NO_EXPIRE_DATE_SET" = "永不失效"; + +/* Menu item to reset the template groups */ "NO_TEMPLATE_GROUP" = "无模板"; + +/* Menu item added to show that no templates are defined */ "NO_TEMPLATES" = "未找到模板"; -/* Kefile */ -"SAVE_KEYFILE" = "保存密钥文件"; +/* Null placeholder for item input field + Placeholder text for input fields if no entry or group is selected */ +"NONE" = "无"; -/* Autoype Dialog */ -/* Candiate dialog */ -"SELECT_AUTOTYPE_CANDIDATE" = "选择候选!"; -"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "请打开一个文件以使用全局自动键入!"; -"AUTOTYPE_OVERLAY_NO_MATCH_FOR_%@" = "没有找到匹配 %@!"; -"AUTOTYPE_OVERLAY_SINGLE_MATCH" = "找到匹配!"; +/* Displayed name when notes or part of notes was copied + Menu item to toggle display of notes column in entry table + Notes column title + Notes reference item */ +"NOTES" = "备注"; -/* Alert Dialogs */ -"WARNING_ON_EMPTY_TRASH_DESCRIPTION" = "清空废纸篓无法撤销"; -"WARNING_ON_EMPTY_TRASH_TITLE" = "清空废纸篓?"; -"WARNING_ON_LOSSY_SAVE" = "保存为 KDB 格式,将会损失数据"; -"WARNING_ON_LOSSY_SAVE_DESCRIPTION" = "KDB 格式无法保存所有信息"; -"CHANGE_FORMAT" = "更改文件格式为 KDBX"; +/* Ok Button to dismiss disabled updates alert */ +"OK" = "好"; -"ENFORCE_PASSWORD_CHANGE_ALERT_TITLE" = "数据库密码已过期!"; -"ENFORCE_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "更改密码/密钥文件之前,你将不能保存数据库"; +/* preset to expire after one montch from now */ +"ONE_MONTH" = "一月之后"; -"RECOMMEND_PASSWORD_CHANGE_ALERT_TITLE" = "请更改数据库密码!"; -"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "建议你更改数据库密码/密钥文件"; -"CHANGE_PASSWORD_WITH_DOTS" = "更改密码…"; +/* preset to expire after one week from now */ +"ONE_WEEK" = "一周之后"; -"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET" = "没有设置密码/密钥文件"; -"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET_SUGGESTION" = "请给这个数据库设置密码/密钥文件,终止操作将会撤销所有更改并锁定数据库。"; +/* one week ago */ +"ONE_WEEK_AGO" = "一周以前"; -/* Message displayed when an open file was changed from another application */ -"FILE_CHANGED_BY_OTHERS_MESSAGE_TEXT" = "数据库文件被修改!"; -/* Informative text displayed when the file was change form another application */ -"FILE_CHANGED_BY_OTHERS_INFO_TEXT" = "加载的文件和磁盘上的文件不同,你想怎么处理?"; -/* Button to ignore the changes */ -"KEEP_MINE" = "不要加载修改过的数据库"; -/* Merge changes into file! */ -"MERGE_CHANGES" = "合并更改"; +/* preset to expire after one year from now */ +"ONE_YEAR" = "一年之后"; -/* Password Input Messagaes, Errors and Warning */ -"PASSWORD_INPUT_NO_PASSWORD" = "无密码"; +/* Open button in the open panel to add attachments to an entry */ +"OPEN_BUTTON_ADD_ATTACHMENT_OPEN_PANEL" = "添加"; + +/* Open button in the add plugin open panel */ +"OPEN_BUTTON_ADD_PLUGIN_OPEN_PANEL" = "安装"; + +/* Open button in the open panel to import an XML file */ +"OPEN_BUTTON_IMPORT_XML_OPEN_PANEL" = "导入"; + +/* Action button in Notification to open a document */ +"OPEN_DOCUMENT" = "打开文档"; + +/* Menu item to open the URL with the default application */ +"OPEN_URL" = "打开 URL"; + +/* Select Browser */ +"OTHER_BROWSER" = "选择浏览器…"; + +/* Menu item to toggle display of password column in entry table + Password column title + Password reference item */ +"PASSWORD" = "密码"; + +/* Window title for the stand-alone password creator window */ +"PASSWORD_CREATOR_WINDOW_TITLE" = "密码生成器"; + +/* Button to reset the password defaults for a single entry */ +"PASSWORD_GENERATOR_RESET_ENTRY_DEFAULTS" = "重置"; + +/* Button to set the defaults of the password generator */ +"PASSWORD_GENERATOR_SET_DEFAULTS" = "设为默认值"; + +/* Placeholder for the password field to aks for password + Placeholder in the unlock-password input field if password is enabled */ "PASSWORD_INPUT_ENTER_PASSWORD" = "输入密码"; + +/* Placeholder for the password input field if passwords are disabled + Placeholder for the repeat password input if passwords are disabled + Placeholder in the unlock-password input field if password is disabled */ +"PASSWORD_INPUT_NO_PASSWORD" = "无密码"; + +/* Placeholder for the repeat password field to aks for the repeated password */ "PASSWORD_INPUT_REPEAT_PASSWORD" = "重复密码"; + +/* Menu item to perform autotype with the selected entry */ +"PERFORM_AUTOTYPE_FOR_ENTRY" = "执行自动键入"; + +/* Label for the button when a download is in progress! */ +"PLUGIN_BROWSER_ACTION_DOWNLOAD_IN_PROGRESS" = "正在下载..."; + +/* Label for the button when a download did not succeed */ +"PLUGIN_BROWSER_ACTION_RETRY_FAILED_DOWNLOAD" = "失败,重试下载"; + +/* Label for the button to show a downloaded file */ +"PLUGIN_BROWSER_ACTION_SHOW_DOWNLOADED_FILE" = "在“访达”中显示..."; + +/* Button to download the Plugin */ +"PLUGIN_BROWSER_DOWNLOAD_PLUGIN_BUTTON" = "下载"; + +/* Status for an up-to-date plugin in the plugin browser */ +"PLUGIN_BROWSER_LATEST_VERSION_INSTALLED" = "已安装最新版本"; + +/* Status for an uninstalled plugin in the plugin browser */ +"PLUGIN_BROWSER_PLUGIN_NOT_INSTALLED" = "未安装"; + +/* Error for a plugin that is disabled. */ +"PLUGIN_ERROR_DISABLED_PLUGIN" = "插件被用户禁用"; + +/* Plugin is not with this version of MacPass */ +"PLUGIN_ERROR_HOST_VERSION_NOT_SUPPORTED" = "插件不支持此版本的 MacPass"; + +/* The plugin could not be initalized */ +"PLUGIN_ERROR_INTILIZATION_FAILED" = "插件不能被初始化"; + +/* Error for a plugin that was not signed properly */ +"PLUGIN_ERROR_UNSECURE_PLUGIN" = "插件签名不合法"; + +/* Label for plugin settings tab */ +"PLUGIN_SETTINGS" = "插件"; + +/* Menu item to preview the selected attached file. */ +"PREVIEW" = "预览"; + +/* Recent searches menu item */ +"RECENT_SEARCHES" = "最近的搜索"; + +/* Informative text for the recommend password change alert */ +"RECOMMEND_PASSWORD_CHANGE_ALERT_DESCRIPTION" = "建议你更改数据库密码/密钥文件"; + +/* Message text for the recommend password change alert */ +"RECOMMEND_PASSWORD_CHANGE_ALERT_TITLE" = "请更改数据库密码!"; + +/* Restart */ +"RESTART" = "重启"; + +/* Menu item to save the selected attached file. + Save file menu item title when save will just save the file */ +"SAVE" = "保存"; + +/* Button title to save the generated key file */ +"SAVE_KEYFILE" = "保存密钥文件"; + +/* Save file menu item title when save will prompt for a location to save or ask for a password/key */ +"SAVE_WITH_DOTS" = "保存…"; + +/* Search input in Toolbar */ +"SEARCH" = "搜索"; + +/* Search option: Find duplicate passwords */ +"SEARCH_DUPLICATE_PASSWORDS" = "重复的密码"; + +/* Search option: Find expired entries */ +"SEARCH_EXPIRED_ENTRIES" = "已过期"; + +/* Inherit search settings menu item */ +"SEARCH_INHERIT" = "继承搜索设置"; + +/* Disable search menu item */ +"SEARCH_NO" = "排除在搜索外"; + +/* Enable search menu item */ +"SEARCH_YES" = "包含在搜索中"; + +/* Menu item title for the expiry preset selection menu in the date picker */ +"SELECT_DATE_PRESET" = "使用预设值…"; + +/* Message on the open panel for selecting which browser to use for opening URLs */ +"SELECT_DEFAULT_BROWSER_OPEN_PANEL_MESSAGE" = "选择要使用的浏览器"; + +/* Label for the select browser button on the open panel for selecting which browser to use for opening URLs */ +"SELECT_DEFAULT_BROWSER_OPEN_PANEL_SELECT_BUTTON" = "选择"; + +/* Message for the dialog to open a file for merge */ +"SELECT_FILE_TO_MERGE" = "选择要合并的文件"; + +/* Menu displayed as popup selection for search options if no filter is selected */ +"SELECT_FILTER_WITH_DOTS" = "筛选…"; + +/* Checkbox in dialog to set the selection as default file change strategy! */ +"SET_AS_DEFAULT_FILE_CHANGE_STRATEGY" = "默认使用这个方法。您可以随时在设置中修改这个配置。"; + +/* Action button in Notification to show the Autotype Doctor */ +"SHOW_AUTOTYPE_DOCTOR" = "打开自动键入诊断"; + +/* Menu item to show the entries group in the outline view */ +"SHOW_GROUP_IN_OUTLINE" = "在大纲视图中显示项目组"; + +/* Menu item to show the history of the selected entry + Toolbar item to toggle history display */ +"SHOW_HISTORY" = "显示历史"; + +/* Displayed name when title field was copied + Menu item to toggle display of title column in entry table + Title column title + Title reference item */ +"TITLE" = "标题"; + +/* preset to expire tomorrow */ +"TOMORROW" = "明天"; + +/* Toolbar item to perform autotype */ +"TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "自动键入"; + +/* Touchbar button label for choosing the keyfile */ +"TOUCHBAR_CHOOSE_KEYFILE" = "选择密钥文件"; + +/* Touchbar button label for copying the password */ +"TOUCHBAR_COPY_PASSWORD" = "复制密码"; + +/* Touchbar button label for copying the username */ +"TOUCHBAR_COPY_USERNAME" = "复制用户名"; + +/* Touchbar button label for deleting elements */ +"TOUCHBAR_DELETE" = "删除"; + +/* Touchbar button label for opening the popover to edit */ +"TOUCHBAR_EDIT" = "编辑"; + +/* Touchbar button label for locking the database */ +"TOUCHBAR_LOCK_DATABASE" = "锁定数据库"; + +/* Touchbar button label for creating a new item */ +"TOUCHBAR_NEW_ENTRY" = "添加项目"; + +/* Touchbar button label for creating a new group */ +"TOUCHBAR_NEW_GROUP" = "添加组"; + +/* Touchbar button label for performing autotype */ +"TOUCHBAR_PERFORM_AUTOTYPE" = "执行自动键入"; + +/* Touchbar button label for searching the database */ +"TOUCHBAR_SEARCH" = "搜索数据库"; + +/* Touchbar button label for showing the password */ +"TOUCHBAR_SHOW_PASSWORD" = "显示密码"; + +/* Touchbar button label for unlocking the database */ +"TOUCHBAR_UNLOCK_DATABASE" = "解锁数据库"; + +/* Move Entry to Trash */ +"TRASH_ENTRY" = "将项目移入废纸篓"; + +/* Move Group to Trash */ +"TRASH_GROUP" = "将组移入废纸篓"; + +/* Uninstall plugin */ +"UNINSTALL" = "卸载"; + +/* No comment provided by engineer. */ +"UNKNOWN_FILE_VERSION" = "未知数据库版本"; + +/* Unknown database format. */ +"UNKNOWN_FORMAT" = "未知文件格式"; + +/* Update Settings Label */ +"UPDATE_PREFERENCES" = "更新"; + +/* Menu item to toggle display of url column in entry table + Submenu with options what to do with the URL of an entry + Url column title + URL reference item */ +"URL" = "URL"; + +/* Menu item to toggle display of username column in entry table + Username column title + Username reference item */ +"USERNAME" = "用户名"; + +/* Displayed name when uuid field was copied + UUID reference item */ +"UUID" = "UUID"; + +/* No Key or Password */ "WARNING_NO_PASSWORD_OR_KEYFILE" = "未提供密码或密钥文件!"; -"ERROR_PASSWORD_MISSMATCH_INVALID_KEYFILE" = "密码和密钥文件不正确!"; -"ERROR_PASSWORD_MISSMATCH" = "密码不正确!"; -"ERROR_INVALID_KEYFILE" = "密钥文件不正确!"; -/* Misc */ -"DOCUMENT_AUTOTYPE_CORRUPTION_WARNING" = "请执行修复自动键入"; -"FILE_OPEN_ERROR" = "打开文件错误"; +/* Informative Text displayed when clearing the Trash */ +"WARNING_ON_DELETE_TRASHED_NODE_DESCRIPTION" = "被移入废纸篓的项目将被彻底删除!"; + +/* Message text for the alert displayed when deleting a node */ +"WARNING_ON_DELETE_TRASHED_NODE_TITLE" = "正在删除被移入废纸篓中的项目"; + +/* Informative Text displayed when clearing the Trash */ +"WARNING_ON_EMPTY_TRASH_DESCRIPTION" = "清空废纸篓无法撤销"; + +/* Message text for the alert displayed when clearing the Trash */ +"WARNING_ON_EMPTY_TRASH_TITLE" = "清空废纸篓?"; + +/* No comment provided by engineer. */ +"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET" = "没有设置密码/密钥文件"; + +/* No comment provided by engineer. */ +"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET_SUGGESTION" = "请给这个数据库设置密码/密钥文件,终止操作将会撤销所有更改并锁定数据库。"; + +/* Label for the workflow settings tab */ +"WORKFLOW_SETTINGS" = "工作流"; + +/* Yesterday */ +"YESTERDAY" = "昨天"; + diff --git a/MacPass/zh-Hans.lproj/Localizable.stringsdict b/MacPass/zh-Hans.lproj/Localizable.stringsdict new file mode 100644 index 000000000..789fe6f10 --- /dev/null +++ b/MacPass/zh-Hans.lproj/Localizable.stringsdict @@ -0,0 +1,100 @@ + + + + + %ld_CHARACTERS_TO_PICK_REMAINING + + NSStringLocalizedFormatKey + %#@characters@ + characters + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + 剩余 %ld 字符 + zero + 已选择全部字符 + + + DUPLICATE_ENTRIES_ACTION_NAME + + NSStringLocalizedFormatKey + %#@entries@ + entries + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + Duplicate Entries + zero + Duplicate Entries + + + DUPLICATE_GROUPS_ACTION_NAME + + NSStringLocalizedFormatKey + %#@groups@ + groups + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + Duplicate Groups + + + EVERY_%ld_DAYS + + NSStringLocalizedFormatKey + %#@days@ + days + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + 每 %ld 天 + zero + 每次解锁后 + + + PICKCHAR_INFO_MESSAGE_PICK_CHARACTERS_%ld + + NSStringLocalizedFormatKey + %#@characters@ + characters + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + 请选择要使用的 %ld 个字符 + zero + 请选择要使用的字符 + + + PICKED_%ld_CHARACTERS + + NSStringLocalizedFormatKey + %#@characters@ + characters + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + 选择了 %ld 个字符 + zero + 未选择任何字符 + + + + diff --git a/MacPass/zh-Hans.lproj/MainMenu.strings b/MacPass/zh-Hans.lproj/MainMenu.strings index b1269892c..fc9542b59 100644 --- a/MacPass/zh-Hans.lproj/MainMenu.strings +++ b/MacPass/zh-Hans.lproj/MainMenu.strings @@ -1,3 +1,8 @@ +/* Class = "NSMenuItem"; title = "Focus Entries"; ObjectID = "2VP-vB-IeX"; */ +"2VP-vB-IeX.title" = "激活项目"; + +/* Class = "NSMenu"; title = "Import"; ObjectID = "4q9-u1-pcm"; */ +"4q9-u1-pcm.title" = "导入"; /* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "5"; */ "5.title" = "前置全部窗口"; @@ -35,7 +40,7 @@ /* Class = "NSMenu"; title = "File"; ObjectID = "81"; */ "81.title" = "文件"; -/* Class = "NSMenuItem"; title = "New"; ObjectID = "82"; */ +/* Class = "NSMenuItem"; title = "New Database"; ObjectID = "82"; */ "82.title" = "新建"; /* Class = "NSMenuItem"; title = "File"; ObjectID = "83"; */ @@ -131,7 +136,7 @@ /* Class = "NSMenuItem"; title = "Toggle Inspector"; ObjectID = "1181"; */ "1181.title" = "切换检查器"; -/* Class = "NSMenuItem"; title = "Show Password Creator"; ObjectID = "1200"; */ +/* Class = "NSMenuItem"; title = "Password Generator"; ObjectID = "1200"; */ "1200.title" = "显示密码生成器"; /* Class = "NSMenuItem"; title = "Change Master Password…"; ObjectID = "1203"; */ @@ -143,29 +148,48 @@ /* Class = "NSMenuItem"; title = "Save As…"; ObjectID = "1243"; */ "1243.title" = "另存为…"; -/* Class = "NSMenuItem"; title = "Export As XML…"; ObjectID = "1259"; */ +/* Class = "NSMenuItem"; title = "XML…"; ObjectID = "1259"; */ "1259.title" = "导出为 XML…"; /* Class = "NSMenuItem"; title = "Lock"; ObjectID = "1261"; */ "1261.title" = "锁定"; -/* Class = "NSMenuItem"; title = "Focus Entries"; ObjectID = "2VP-vB-IeX"; */ -"2VP-vB-IeX.title" = "激活项目"; +/* Class = "NSMenuItem"; title = "Import"; ObjectID = "aTb-sW-nUd"; */ +"aTb-sW-nUd.title" = "导入"; + +/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "aVO-9F-Lwc"; */ +"aVO-9F-Lwc.title" = "快速查看"; /* Class = "NSMenuItem"; title = "Focus Groups"; ObjectID = "HxM-dV-LIH"; */ "HxM-dV-LIH.title" = "激活组"; -/* Class = "NSMenuItem"; title = "Focus Inspector"; ObjectID = "Zje-Me-5c8"; */ -"Zje-Me-5c8.title" = "激活检查器"; - -/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "aVO-9F-Lwc"; */ -"aVO-9F-Lwc.title" = "快速查看"; +/* Class = "NSMenuItem"; title = "Save a Copy…"; ObjectID = "i24-Gn-j9c"; */ +"i24-Gn-j9c.title" = "保存副本..."; /* Class = "NSMenuItem"; title = "Fix Autotype…"; ObjectID = "nx7-Vf-LiD"; */ "nx7-Vf-LiD.title" = "修复自动键入…"; -/* Class = "NSMenuItem"; title = "Import XML…"; ObjectID = "rW0-r1-QYL"; */ +/* Class = "NSMenu"; title = "Export"; ObjectID = "p8h-Fg-h1O"; */ +"p8h-Fg-h1O.title" = "导出"; + +/* Class = "NSMenuItem"; title = "XML…"; ObjectID = "rW0-r1-QYL"; */ "rW0-r1-QYL.title" = "导入 XML…"; +/* Class = "NSMenu"; title = "Item"; ObjectID = "Ttt-tR-emo"; */ +"Ttt-tR-emo.title" = "项目"; + +/* Class = "NSMenuItem"; title = "Export"; ObjectID = "tz9-yK-pOf"; */ +"tz9-yK-pOf.title" = "导出"; + +/* Class = "NSMenuItem"; title = "Focus Inspector"; ObjectID = "Zje-Me-5c8"; */ +"Zje-Me-5c8.title" = "激活检查器"; + /* Class = "NSMenuItem"; title = "Check for Updates…"; ObjectID = "zMO-8r-g5v"; */ "zMO-8r-g5v.title" = "检查更新…"; + +/* Class = "NSMenuItem"; title = "Merge With…"; ObjectID = "zvE-0h-UxI"; */ +"zvE-0h-UxI.title" = "进行合并..."; + +/* Class = "NSMenuItem"; title = "Autotype Doctor"; ObjectID = "zWx-Re-iuJ"; */ +"zWx-Re-iuJ.title" = "自动键入诊断..."; + diff --git a/MacPass/zh-Hans.lproj/PasswordCreatorView.strings b/MacPass/zh-Hans.lproj/PasswordCreatorView.strings index 7662d2448..efc281b30 100644 --- a/MacPass/zh-Hans.lproj/PasswordCreatorView.strings +++ b/MacPass/zh-Hans.lproj/PasswordCreatorView.strings @@ -1,11 +1,10 @@ - /* Class = "NSTextFieldCell"; title = "Password:"; ObjectID = "149"; */ "149.title" = "密码:"; /* Class = "NSTextFieldCell"; title = "Length:"; ObjectID = "179"; */ "179.title" = "长度:"; -/* Class = "NSBox"; title = "Allowed Characters"; ObjectID = "332"; */ +/* Class = "NSBox"; title = "Character options"; ObjectID = "332"; */ "332.title" = "允许使用的字符"; /* Class = "NSButtonCell"; title = "A-Z"; ObjectID = "453"; */ @@ -37,3 +36,10 @@ /* Class = "NSTextFieldCell"; title = "25000 bit"; ObjectID = "653"; */ "653.title" = "25000 bit"; + +/* Class = "NSButtonCell"; title = "Use default only for selected entry"; ObjectID = "cfZ-5F-Nge"; */ +"cfZ-5F-Nge.title" = "只对当前项目使用默认值"; + +/* Class = "NSButtonCell"; title = "Use characters from every group"; ObjectID = "CMc-Uh-Fo5"; */ +"CMc-Uh-Fo5.title" = "使用所有分组中的字符"; + diff --git a/MacPass/zh-Hans.lproj/PasswordEditWindow.strings b/MacPass/zh-Hans.lproj/PasswordEditWindow.strings index 49de02063..579cd9e7b 100644 --- a/MacPass/zh-Hans.lproj/PasswordEditWindow.strings +++ b/MacPass/zh-Hans.lproj/PasswordEditWindow.strings @@ -1,8 +1,7 @@ - -/* Class = "NSWindow"; title = "Window"; ObjectID = "1"; */ +/* Class = "NSWindow"; title = "Change Password"; ObjectID = "1"; */ "1.title" = "Window"; -/* Class = "NSTextFieldCell"; title = "Missmatching Passwords"; ObjectID = "14"; */ +/* Class = "NSTextFieldCell"; title = "Mismatching Passwords"; ObjectID = "14"; */ "14.title" = "密码不匹配"; /* Class = "NSSecureTextFieldCell"; placeholderString = "Repeat Password"; ObjectID = "15"; */ @@ -28,3 +27,4 @@ /* Class = "NSButtonCell"; title = "Password:"; ObjectID = "OQz-DA-SoY"; */ "OQz-DA-SoY.title" = "密码:"; + diff --git a/MacPass/zh-Hans.lproj/PasswordInputView.strings b/MacPass/zh-Hans.lproj/PasswordInputView.strings index a5cfaf7a1..e7cdbb1f2 100644 --- a/MacPass/zh-Hans.lproj/PasswordInputView.strings +++ b/MacPass/zh-Hans.lproj/PasswordInputView.strings @@ -1,4 +1,3 @@ - /* Class = "NSButtonCell"; title = "Unlock"; ObjectID = "3"; */ "3.title" = "解锁"; @@ -11,5 +10,9 @@ /* Class = "NSSecureTextFieldCell"; placeholderString = "Enter Password"; ObjectID = "339"; */ "339.placeholderString" = "请输入密码"; +/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "erj-mR-UyO"; */ +"erj-mR-UyO.title" = "取消"; + /* Class = "NSButtonCell"; title = "Password"; ObjectID = "IU9-5u-jn9"; */ "IU9-5u-jn9.title" = "密码"; + diff --git a/MacPass/zh-Hans.lproj/PluginDataView.strings b/MacPass/zh-Hans.lproj/PluginDataView.strings new file mode 100644 index 000000000..1baf6ca08 --- /dev/null +++ b/MacPass/zh-Hans.lproj/PluginDataView.strings @@ -0,0 +1,6 @@ +/* Class = "NSButtonCell"; title = "Remove All"; ObjectID = "6hH-Hc-gf4"; */ +"6hH-Hc-gf4.title" = "删除全部"; + +/* Class = "NSTextFieldCell"; title = "Plugin data"; ObjectID = "unO-bO-8v0"; */ +"unO-bO-8v0.title" = "插件数据"; + diff --git a/MacPass/zh-Hans.lproj/PluginPreferences.strings b/MacPass/zh-Hans.lproj/PluginPreferences.strings index 9dc55b570..86d3513c4 100644 --- a/MacPass/zh-Hans.lproj/PluginPreferences.strings +++ b/MacPass/zh-Hans.lproj/PluginPreferences.strings @@ -1,15 +1,27 @@ - -/* 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"; */ +/* Class = "NSTextFieldCell"; title = "If enabled, Plugins without proper signatures will be allowed to load. Keep in mind, that Plugins have full access to your data! Changes take affect on restart."; ObjectID = "2bX-8S-9XM"; */ "2bX-8S-9XM.title" = "不勾选将仅加载正确签名过的插件。注意:插件可以完全访问您的数据信息!重新启动程序后生效。"; /* Class = "NSButtonCell"; title = "Load unsecure Plugins"; ObjectID = "C4B-6z-ZqX"; */ "C4B-6z-ZqX.title" = "加载不安全的插件"; +/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "fug-79-n9g"; */ +"fug-79-n9g.title" = "Table View Cell"; + +/* Class = "NSTextFieldCell"; title = "If enabled, a remote connection is established to macpassapp.org"; ObjectID = "i3S-9b-Bpf"; */ +"i3S-9b-Bpf.title" = "如果允许,将建立同 macpassapp.org 的远程连接"; + +/* Class = "NSButtonCell"; title = "Browse Available Plugins…"; ObjectID = "sqO-8H-n1y"; */ +"sqO-8H-n1y.title" = "浏览可用插件..."; + /* 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 = "NSButtonCell"; title = "Download current plugin information"; ObjectID = "uHR-uL-Ddm"; */ +"uHR-uL-Ddm.title" = "下载当前插件信息"; /* Class = "NSBox"; title = "Box"; ObjectID = "vBs-Ga-aq0"; */ "vBs-Ga-aq0.title" = "Box"; + +/* Class = "NSButtonCell"; title = "Force loading of incompatible Plugins"; ObjectID = "yak-fS-jtA"; */ +"yak-fS-jtA.title" = "强制加载不兼容的插件"; + diff --git a/MacPass/zh-Hans.lproj/PluginRepositoryBrowserView.strings b/MacPass/zh-Hans.lproj/PluginRepositoryBrowserView.strings new file mode 100644 index 000000000..4b7c639ba --- /dev/null +++ b/MacPass/zh-Hans.lproj/PluginRepositoryBrowserView.strings @@ -0,0 +1,18 @@ +/* Class = "NSTableColumn"; headerCell.title = "Status"; ObjectID = "g1Q-BS-vCR"; */ +"g1Q-BS-vCR.headerCell.title" = "状态"; + +/* Class = "NSTableColumn"; headerCell.title = "Latest Version"; ObjectID = "hFg-AD-SqD"; */ +"hFg-AD-SqD.headerCell.title" = "最新版本"; + +/* Class = "NSButtonCell"; title = "Done"; ObjectID = "j9a-fn-Pye"; */ +"j9a-fn-Pye.title" = "好"; + +/* Class = "NSTextFieldCell"; title = "Last updated:"; ObjectID = "ntD-sJ-NRw"; */ +"ntD-sJ-NRw.title" = "最后更新:"; + +/* Class = "NSTableColumn"; headerCell.title = "Plugin"; ObjectID = "Nzo-rR-Hfx"; */ +"Nzo-rR-Hfx.headerCell.title" = "插件"; + +/* Class = "NSButtonCell"; title = "Refresh"; ObjectID = "NZw-nO-lZ3"; */ +"NZw-nO-lZ3.title" = "刷新"; + diff --git a/MacPass/zh-Hans.lproj/ReferenceBuilderView.strings b/MacPass/zh-Hans.lproj/ReferenceBuilderView.strings new file mode 100644 index 000000000..b771c6372 --- /dev/null +++ b/MacPass/zh-Hans.lproj/ReferenceBuilderView.strings @@ -0,0 +1,3 @@ +/* Class = "NSTextFieldCell"; placeholderString = "Reference"; ObjectID = "dr9-x8-kKk"; */ +"dr9-x8-kKk.placeholderString" = "引用"; + diff --git a/MacPass/zh-Hans.lproj/SavePanelAccessoryView.strings b/MacPass/zh-Hans.lproj/SavePanelAccessoryView.strings new file mode 100644 index 000000000..ed7b2c79b --- /dev/null +++ b/MacPass/zh-Hans.lproj/SavePanelAccessoryView.strings @@ -0,0 +1,6 @@ +/* Class = "NSTextFieldCell"; title = "Format:"; ObjectID = "12"; */ +"12.title" = "格式:"; + +/* Class = "NSTextFieldCell"; title = "Not all Information inside your current database can be stored with this format."; ObjectID = "52"; */ +"52.title" = "当前数据库的部分信息不能使用该格式存储。"; + diff --git a/MacPass/zh-Hans.lproj/UpdateSettings.strings b/MacPass/zh-Hans.lproj/UpdatePreferences.strings similarity index 100% rename from MacPass/zh-Hans.lproj/UpdateSettings.strings rename to MacPass/zh-Hans.lproj/UpdatePreferences.strings index a4fdf3a31..25c0e7246 100644 --- a/MacPass/zh-Hans.lproj/UpdateSettings.strings +++ b/MacPass/zh-Hans.lproj/UpdatePreferences.strings @@ -1,4 +1,3 @@ - /* Class = "NSMenuItem"; title = "every Week"; ObjectID = "3FR-Va-iau"; */ "3FR-Va-iau.title" = "每周"; @@ -8,6 +7,9 @@ /* Class = "NSMenuItem"; title = "every Hour"; ObjectID = "DjF-1I-6Nq"; */ "DjF-1I-6Nq.title" = "每小时"; +/* Class = "NSMenuItem"; title = "every Day"; ObjectID = "o9E-hk-H1T"; */ +"o9E-hk-H1T.title" = "每天"; + /* Class = "NSButtonCell"; title = "Automatically Check for Updates"; ObjectID = "RFg-q1-AwJ"; */ "RFg-q1-AwJ.title" = "自动检查更新"; @@ -17,5 +19,3 @@ /* Class = "NSMenuItem"; title = "every Month"; ObjectID = "Uo3-kv-1ro"; */ "Uo3-kv-1ro.title" = "每月"; -/* Class = "NSMenuItem"; title = "every Day"; ObjectID = "o9E-hk-H1T"; */ -"o9E-hk-H1T.title" = "每天"; diff --git a/MacPass/zh-Hans.lproj/WelcomeView.strings b/MacPass/zh-Hans.lproj/WelcomeView.strings index c221a5d55..27433a0e4 100644 --- a/MacPass/zh-Hans.lproj/WelcomeView.strings +++ b/MacPass/zh-Hans.lproj/WelcomeView.strings @@ -1,11 +1,9 @@ -/* Class = "NSTextFieldCell"; title = "Welcome to MacPass"; ObjectID = "24"; */ -"24.title" = "欢迎使用 MacPass"; +/* Class = "NSButtonCell"; title = "Open Database…"; ObjectID = "Jj3-zy-gaz"; */ +"Jj3-zy-gaz.title" = "打开数据库..."; -/* Class = "NSButtonCell"; title = "Open Database…"; ObjectID = "44"; */ -"44.title" = "打开数据库…"; +/* Class = "NSButtonCell"; title = "Create new Database"; ObjectID = "Vxx-Ql-eI5"; */ +"Vxx-Ql-eI5.title" = "新建数据库"; -/* Class = "NSButtonCell"; title = "Create new Database"; ObjectID = "48"; */ -"48.title" = "创建数据库"; +/* Class = "NSTextFieldCell"; title = "Welcome to MacPass"; ObjectID = "zdv-z8-khG"; */ +"zdv-z8-khG.title" = "欢迎使用 MacPass"; -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "70"; */ -"70.title" = "取消"; diff --git a/MacPass/zh-Hans.lproj/WorkflowSettings.strings b/MacPass/zh-Hans.lproj/WorkflowPreferences.strings similarity index 82% rename from MacPass/zh-Hans.lproj/WorkflowSettings.strings rename to MacPass/zh-Hans.lproj/WorkflowPreferences.strings index 74116edc7..201df7545 100644 --- a/MacPass/zh-Hans.lproj/WorkflowSettings.strings +++ b/MacPass/zh-Hans.lproj/WorkflowPreferences.strings @@ -1,8 +1,12 @@ - +/* Class = "NSButtonCell"; title = "Hide application after copying to clipboard"; ObjectID = "1Vr-nY-Ogv"; */ +"1Vr-nY-Ogv.title" = "复制到剪贴板之后隐藏应用程序"; /* Class = "NSBox"; title = "Entry Table"; ObjectID = "2"; */ "2.title" = "项目表"; +/* Class = "NSMenuItem"; title = "Default Browser"; ObjectID = "7YX-EA-9KA"; */ +"7YX-EA-9KA.title" = "默认浏览器"; + /* Class = "NSTextFieldCell"; title = "Double-click on URL:"; ObjectID = "10"; */ "10.title" = "双击 URL:"; @@ -27,17 +31,17 @@ /* Class = "NSMenuItem"; title = "Opens Inspector"; ObjectID = "44"; */ "44.title" = "打开检查器"; -/* Class = "NSMenuItem"; title = "Default Browser"; ObjectID = "7YX-EA-9KA"; */ -"7YX-EA-9KA.title" = "缺省浏览器"; +/* Class = "NSBox"; title = "Clipboard"; ObjectID = "Kff-Xp-hAT"; */ +"Kff-Xp-hAT.title" = "剪贴板"; -/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "XgO-Tj-QjO"; */ -"XgO-Tj-QjO.title" = "其他视图"; +/* Class = "NSButtonCell"; title = "Update password for new entries"; ObjectID = "RaM-t2-DVR"; */ +"RaM-t2-DVR.title" = "为新项目更新密码"; /* Class = "NSTextFieldCell"; title = "Open URLs in:"; ObjectID = "soD-wI-YOH"; */ "soD-wI-YOH.title" = "用其他浏览器打开 URL:"; -/* Class = "NSButtonCell"; title = "Update password for new entries"; ObjectID = "RaM-t2-DVR"; */ -"RaM-t2-DVR.title" = "为新项目更新密码"; +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "XgO-Tj-QjO"; */ +"XgO-Tj-QjO.title" = "其他视图"; /* Class = "NSBox"; title = "Templates"; ObjectID = "Xvt-tP-TbR"; */ "Xvt-tP-TbR.title" = "模版"; diff --git a/MacPassTests/MPTestAutotypeDelay.m b/MacPassTests/MPTestAutotypeDelay.m index e2238fd87..1b04b16d5 100644 --- a/MacPassTests/MPTestAutotypeDelay.m +++ b/MacPassTests/MPTestAutotypeDelay.m @@ -31,7 +31,7 @@ - (void)tearDown { [super tearDown]; } -- (void)testValidDelayCommands { +- (void)testLocalDelayCommands { /* Command 1 */ MPAutotypeContext *context = [[MPAutotypeContext alloc] initWithEntry:self.entry andSequence:@"{DELAY 200}"]; NSArray *commands = [MPAutotypeCommand commandsForContext:context]; @@ -41,8 +41,23 @@ - (void)testValidDelayCommands { XCTAssertTrue([commands.firstObject isKindOfClass:[MPAutotypeDelay class]], @"Command is Delay command"); MPAutotypeDelay *delay = commands.firstObject; XCTAssertEqual(delay.delay, 200, @"Delay is 200 ms"); + XCTAssertFalse(delay.isGlobal, @"Delay is no global delay"); } +- (void)testGlobalDelayCommands { + /* Command 1 */ + MPAutotypeContext *context = [[MPAutotypeContext alloc] initWithEntry:self.entry andSequence:@"{DELAY=200}"]; + NSArray *commands = [MPAutotypeCommand commandsForContext:context]; + + XCTAssertEqual(commands.count, 1); + /* {DELAY=200} */ + XCTAssertTrue([commands.firstObject isKindOfClass:MPAutotypeDelay.class], @"Command is Delay command"); + MPAutotypeDelay *delay = commands.firstObject; + XCTAssertEqual(delay.delay, 200, @"Delay is 200 ms"); + XCTAssertTrue(delay.isGlobal, @"Delay is global delay"); +} + + - (void)testDelayExecution { MPAutotypeDelay *delay = [[MPAutotypeDelay alloc] initWithDelay:200]; XCTestExpectation *expectation = [self expectationWithDescription:delay.description]; @@ -58,13 +73,4 @@ - (void)testDelayExecution { }]; } - -- (void)testDelayLimit { - XCTFail(@"Missing Test"); -} - -- (void)testMalformedDelay { - XCTFail(@"Missing Test"); -} - @end diff --git a/MacPassTests/MPTestCustomAttributeGetter.m b/MacPassTests/MPTestCustomAttributeGetter.m index 4ccf20b42..1d938d47a 100644 --- a/MacPassTests/MPTestCustomAttributeGetter.m +++ b/MacPassTests/MPTestCustomAttributeGetter.m @@ -37,15 +37,21 @@ - (void)testValidCustomAttribute { NSString *(*func2)(id, SEL, NSString*) = (void *)imp2; NSString *value2 = func2(entry, selector2, attribute2.key); XCTAssertEqualObjects(value2, attribute2.value); - - SEL selector3 = NSSelectorFromString([MPCustomAttributePropertyPrefix stringByAppendingString:@"novalidkey"]); - IMP imp3 = [entry methodForSelector:selector3]; - NSString *(*func3)(id, SEL, NSString*) = (void *)imp3; - NSString *value3 = func3(entry, selector3, @"novalidkey"); - XCTAssertNil(value3); } - (void)testInvalidCustomAttribute { + KPKEntry *entry = [[KPKEntry alloc] init]; + KPKAttribute *attribute1 = [[KPKAttribute alloc] initWithKey:@"custom1" value:@"value1"]; + KPKAttribute *attribute2 = [[KPKAttribute alloc] initWithKey:@"custom2" value:@"value2"]; + [entry addCustomAttribute:attribute1]; + [entry addCustomAttribute:attribute2]; + + SEL selector = NSSelectorFromString([MPCustomAttributePropertyPrefix stringByAppendingString:@"novalidkey"]); + IMP imp = [entry methodForSelector:selector]; + NSString *(*func)(id, SEL, NSString*) = (void *)imp; + NSString *value = func(entry, selector, @"novalidkey"); + XCTAssertNil(value); + } diff --git a/README.md b/README.md index e4a99b947..84fc653ea 100644 --- a/README.md +++ b/README.md @@ -104,92 +104,88 @@ The following list might not be complete, please refer to [merged Pull Requests] ### Contributors -[ad](github.mnms@mamber.net) -[Alex Borisov](alex@alexborisov.org) -[Alex Seeholzer](seeholzer@gmail.com) -[amd](amd@gurge.com) -[Andrew Schleifer](me@andrewschleifer.name) -[AntoineCa](antoine@carrincazeaux.fr) -[Benjamin Steinwender](b@stbe.at) -[binarious](bieder.martin@googlemail.com) -[Carlos Filipe Simões](ravemir@users.noreply.github.com) -[Chester Liu](skyline75489@outlook.com) -[Chhom Seng](chhom.seng@gmail.com) -[Christoph Leimbrock](christoph.leimbrock@gmx.de) -[Cory Hutchison](cjhutchi@users.noreply.github.com) -[Daniele Polencic](daniele.polencic@gmail.com) -[darnel](vojta.j@gmail.com) -[Deiwin Sarjas](deiwin.sarjas@gmail.com) -[Dennis Bolio](git@bolio.nl) -[Dylan Smith](dylansmith@gmail.com) -[eiermaaaan](37532252+eiermaaaan@users.noreply.github.com) -[Filipe Farinha](filipe@ktorn.com) -[floriangouy](florian.gouy@gmail.com) -[Francesco Servida](info@francescoservida.ch) -[Frank Enderle](frank.enderle@anamica.de) -[Frank Kooij](FrankKooij@users.noreply.github.com) -[Gaétan Ryckeboer](gryckeboer@jouve.com) -[Geigi](git@geigi.de) -[Henri de Jong](henridejong@gmail.com) -[James Hurst](jamesrhurst@outlook.com) -[Jannick Hemelhof](mister.jannick@gmail.com) -[Jefftree](jeffrey.ying86@live.com) -[Jellyfrog](Jellyfrog@users.noreply.github.com) -[Joanna Olsen](jo4flash@gmail.com) -[Josh Halstead](jhalstead85@gmail.com) -[Kurt](kurt@soapbox-software.com) -[Lenucksi](lenucksi@users.noreply.github.com) -[Leonardo Faoro](lfaoro@users.noreply.github.com) -[Liam Anderson](liam.anderson.91@gmail.com) -[Maarten Terpstra](m.l.terpstra@student.rug.nl) -[Mario Sangiorgio](mariosangiorgio@gmail.com) -[MBibal](michel.bibal@gmail.com) -[Michael Belz](mbelz@outlook.de) -[MichaelKo](viacheslav.sychov@gmail.com) -[Michal Jaglewicz](michalj@webii.pl) -[Moises Perez](moises@perez.lt) -[mrdoggy](mrdoggy.all@gmail.com) -[Nathan Landis](nathanlandis@gmail.com) -[Nathaniel Madura](nmadura@umich.edu) -[neuroine](d.dzieduch@gmail.com) -[Patrik Thunström](magebarf@gmail.com) -[rdoering](rdoering.info@gmail.com) -[Ryan Rogers](ryan@timewasted.me) -[Sitsofe Wheeler](sitsofe@yahoo.com) -[Stephen Taylor](schtee.taylor@gmail.com) -[Thom](thomscode@gmail.com) -[Thorsten Jacoby](tjacoby@gmail.com) -[Volcyy](Volcyy@users.noreply.github.com) -[Yonatan Mittlefehldt](yono@toojuice.com) -[Zero King](l2dy@icloud.com) -[Zhao Peng](patchao2000@gmail.com) +[ad](mailto:github.mnms@mamber.net), +[Alex Borisov](mailto:alex@alexborisov.org), +[Alex Seeholzer](mailto:seeholzer@gmail.com), +[amd](mailto:amd@gurge.com), +[Andrew Schleifer](mailto:me@andrewschleifer.name), +[AntoineCa](mailto:antoine@carrincazeaux.fr), +[Benjamin Steinwender](mailto:b@stbe.at), +[binarious](mailto:bieder.martin@googlemail.com), +[Can Rau](mailto:cansrau@gmail.com), +[Carlos Filipe Simões](mailto:ravemir@users.noreply.github.com), +[Chester Liu](mailto:skyline75489@outlook.com), +[Chhom Seng](mailto:chhom.seng@gmail.com), +[Christoph Leimbrock](mailto:christoph.leimbrock@gmx.de), +[Cory Hutchison](mailto:cjhutchi@users.noreply.github.com), +[Daniele Polencic](mailto:daniele.polencic@gmail.com), +[darnel](mailto:vojta.j@gmail.com), +[Deiwin Sarjas](mailto:deiwin.sarjas@gmail.com), +[Dennis Bolio](mailto:git@bolio.nl), +[Dylan Smith](mailto:dylansmith@gmail.com), +[eiermaaaan](mailto:37532252+eiermaaaan@users.noreply.github.com), +[Erwann Mest](mailto:m+github@kud.io), +[Filipe Farinha](mailto:filipe@ktorn.com), +[floriangouy](mailto:florian.gouy@gmail.com), +[Francesco Servida](mailto:info@francescoservida.ch), +[Frank Enderle](mailto:frank.enderle@anamica.de), +[Frank Kooij](https://github.com/FrankKooij), +[Gaétan Ryckeboer](mailto:gryckeboer@jouve.com), +[Geigi](mailto:git@geigi.de), +[Henri de Jong](mailto:henridejong@gmail.com), +[James Hurst](mailto:jamesrhurst@outlook.com), +[Jannick Hemelhof](mailto:mister.jannick@gmail.com), +[Jefftree](mailto:jeffrey.ying86@live.com), +[Jellyfrog](mailto:Jellyfrog@users.noreply.github.com), +[Joanna Olsen](mailto:jo4flash@gmail.com), +[Josh Halstead](mailto:jhalstead85@gmail.com), +[Kurt](mailto:kurt@soapbox-software.com), +[Laurent Cozic](mailto:laurent22@users.noreply.github.com), +[Lenucksi](mailto:lenucksi@users.noreply.github.com), +[Leonardo Faoro](mailto:lfaoro@users.noreply.github.com), +[Liam Anderson](mailto:liam.anderson.91@gmail.com), +[m0yP](mailto:moises@perez.lt), +[Maarten Terpstra](mailto:m.l.terpstra@student.rug.nl), +[Mario Sangiorgio](mailto:mariosangiorgio@gmail.com), +[MBibal](mailto:michel.bibal@gmail.com), +[Michael Belz](mailto:mbelz@outlook.de), +[MichaelKo](mailto:viacheslav.sychov@gmail.com), +[Michal Jaglewicz](mailto:michalj@webii.pl), +[Moises Perez](mailto:moises@perez.lt), +[mrdoggy](mailto:mrdoggy.all@gmail.com), +[Nathan Landis](mailto:nathanlandis@gmail.com), +[Nathaniel Madura](mailto:nmadura@umich.edu), +[neuroine](mailto:d.dzieduch@gmail.com), +[Patrik Thunström](mailto:magebarf@gmail.com), +[rdoering](mailto:rdoering.info@gmail.com), +[remi6397](mailto:remi6397@gmail.com), +[Roman Verchikov](mailto:roman-verchikov@users.noreply.github.com), +[Ryan Rogers](mailto:ryan@timewasted.me), +[Sitsofe Wheeler](mailto:sitsofe@yahoo.com), +[Stephen Taylor](mailto:schtee.taylor@gmail.com), +[thesoundofom](mailto:45923716+thesoundofom@users.noreply.github.com), +[Thom](mailto:thomscode@gmail.com), +[Thorsten Jacoby](mailto:tjacoby@gmail.com), +[Volcyy](mailto:Volcyy@users.noreply.github.com), +[Yonatan Mittlefehldt](mailto:yono@toojuice.com), +[Zero King](mailto:l2dy@icloud.com), +[Zhao Peng](mailto:patchao2000@gmail.com) ## Copyright This Project is based upon the following work: -[KeePassKit](https://github.com/mstarke/KeePassKit) Copyright 2012 HicknHack Software GmbH. All rights reserved. - -[HNHUi](https://github.com/mstarke/HNHUi) Copyright 2012 HicknHack Software GmbH. All rights reserved. - -[MiniKeePass](https://github.com/MiniKeePass/MiniKeePass) Copyright 2011 Jason Rush and John Flanagan. All rights reserved. - -[KeePass Database Library](https://github.com/mpowrie/KeePassLib) Copyright 2010 Qiang Yu. All rights reserved. - -[PXSourceList](https://github.com/Perspx/PXSourceList) Copyright 2011, Alex Rozanski. All rights reserved. - -[KSPasswordField](https://github.com/karelia/SecurityInterface) Copyright 2012 Mike Abdullah, Karelia Software. All rights reserved. - -[DDHotKey](https://github.com/davedelong/DDHotKey) Copyright [Dave DeLong](http://www.davedelong.com). All rights reserved. - -[Sparkle](http://sparkle.andymatuschak.org) Copyright 2006 Andy Matuschak - -[TransformerKit](https://github.com/mattt/TransformerKit) Licensed under MIT license. Copyright 2012 [Mattt Thompson](http://mattt.me/). All rights reserved - -[MJGFoundation](https://github.com/mstarke/MJGFoundation) Licensed under BSD 2-Clause License. Copyright 2011 [Matt Galloway](http://www.galloway.me.uk/). All rights reserved. - -[ShortcutRecorder](http://wafflesoftware.net/shortcut/) Copyright 2006—2013 all [Shortcut Recorder contributors](http://wafflesoftware.net/shortcut/contributors/) - +[KeePassKit](https://github.com/mstarke/KeePassKit) Copyright 2012 HicknHack Software GmbH. All rights reserved. +[HNHUi](https://github.com/mstarke/HNHUi) Copyright 2012 HicknHack Software GmbH. All rights reserved. +[MiniKeePass](https://github.com/MiniKeePass/MiniKeePass) Copyright 2011 Jason Rush and John Flanagan. All rights reserved. +[KeePass Database Library](https://github.com/mpowrie/KeePassLib) Copyright 2010 Qiang Yu. All rights reserved. +[PXSourceList](https://github.com/Perspx/PXSourceList) Copyright 2011, Alex Rozanski. All rights reserved. +[KSPasswordField](https://github.com/karelia/SecurityInterface) Copyright 2012 Mike Abdullah, Karelia Software. All rights reserved. +[DDHotKey](https://github.com/davedelong/DDHotKey) Copyright [Dave DeLong](http://www.davedelong.com). All rights reserved. +[Sparkle](http://sparkle.andymatuschak.org) Copyright 2006 Andy Matuschak +[TransformerKit](https://github.com/mattt/TransformerKit) Licensed under MIT license. Copyright 2012 [Mattt Thompson](http://mattt.me/). All rights reserved +[MJGFoundation](https://github.com/mstarke/MJGFoundation) Licensed under BSD 2-Clause License. Copyright 2011 [Matt Galloway](http://www.galloway.me.uk/). All rights reserved. +[ShortcutRecorder](http://wafflesoftware.net/shortcut/) Copyright 2006—2013 all [Shortcut Recorder contributors](http://wafflesoftware.net/shortcut/contributors/) [NSBundle Codesignature Check](http://jedda.me/2012/03/verifying-plugin-bundles-using-code-signing/) Copyright 2014 [Jedda Wignall](http://jedda.me). All rights reserved. See submodules for additional Licenses diff --git a/scripts/list_of_contributors.sh b/scripts/list_of_contributors.sh index 3476fb658..d1b7b6686 100755 --- a/scripts/list_of_contributors.sh +++ b/scripts/list_of_contributors.sh @@ -1,3 +1,3 @@ #!/bin/bash # prints the list of contributors in markdown format -git log --pretty="[%an](%ae)" | sort | uniq +git log --pretty="[%an](mailto:%ae), " | sort -fu diff --git a/scripts/update_plugin_repository.sh b/scripts/update_plugin_repository.sh new file mode 100755 index 000000000..fcd88737e --- /dev/null +++ b/scripts/update_plugin_repository.sh @@ -0,0 +1,7 @@ +#!/bin/bash +FILE="plugins.json" +URL="https://macpassapp.org/data/${FILE}" +MY_FOLDER="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +DOWNLOAD_FOLDER="${MY_FOLDER}/../MacPass/Resources/" +cd "${DOWNLOAD_FOLDER}" +wget -O "${FILE}" "${URL}"