diff --git a/Authenticator.xcodeproj/project.pbxproj b/Authenticator.xcodeproj/project.pbxproj index 7cb5124e..4cd50e87 100644 --- a/Authenticator.xcodeproj/project.pbxproj +++ b/Authenticator.xcodeproj/project.pbxproj @@ -83,6 +83,7 @@ B452EC1F2A1E4F460045E5D9 /* YubiOtpRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B452EC1E2A1E4F460045E5D9 /* YubiOtpRowView.swift */; }; B452EC3D2A264A620045E5D9 /* ToastView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B452EC3C2A264A620045E5D9 /* ToastView.swift */; }; B452EC442A2A06940045E5D9 /* ToastPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B452EC432A2A06940045E5D9 /* ToastPresenter.swift */; }; + B45E0DA02C0768E0006FE88C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = B45E0D9E2C0768E0006FE88C /* InfoPlist.strings */; }; B46E378729C348F100CA0B67 /* EditAccountWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = B46E378629C348F100CA0B67 /* EditAccountWrapper.swift */; }; B4712B7028DDB5F6009B270D /* AccessKeyCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4712B6F28DDB5F6009B270D /* AccessKeyCache.swift */; }; B4719B17298AA6E7006CDAEA /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4719B16298AA6E7006CDAEA /* MainView.swift */; }; @@ -229,6 +230,8 @@ B452EC1E2A1E4F460045E5D9 /* YubiOtpRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YubiOtpRowView.swift; sourceTree = ""; }; B452EC3C2A264A620045E5D9 /* ToastView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToastView.swift; sourceTree = ""; }; B452EC432A2A06940045E5D9 /* ToastPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToastPresenter.swift; sourceTree = ""; }; + B45A980D2C2AE3D800AAAD78 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; + B45E0D9F2C0768E0006FE88C /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; }; B46E378629C348F100CA0B67 /* EditAccountWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditAccountWrapper.swift; sourceTree = ""; }; B4712B6F28DDB5F6009B270D /* AccessKeyCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessKeyCache.swift; sourceTree = ""; }; B4719B16298AA6E7006CDAEA /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; }; @@ -357,6 +360,7 @@ 515542762656707000B19C59 /* TokenDriver.swift */, 515542782656707000B19C59 /* TokenSession.swift */, 5155427A2656707000B19C59 /* Info.plist */, + B45E0D9E2C0768E0006FE88C /* InfoPlist.strings */, 5156D05A265D0538007A94F8 /* TKTokenAlgorithm+Extensions.swift */, B4901AF32BD7DF960092E7A2 /* Localizable.xcstrings */, ); @@ -681,6 +685,7 @@ buildActionMask = 2147483647; files = ( B4901AF42BD7DF960092E7A2 /* Localizable.xcstrings in Resources */, + B45E0DA02C0768E0006FE88C /* InfoPlist.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -854,6 +859,15 @@ name = LaunchScreen.storyboard; sourceTree = ""; }; + B45E0D9E2C0768E0006FE88C /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + B45E0D9F2C0768E0006FE88C /* ja */, + B45A980D2C2AE3D800AAAD78 /* fr */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; B4901AE82BD7DCC70092E7A2 /* Tutorial.storyboard */ = { isa = PBXVariantGroup; children = ( @@ -1059,7 +1073,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = Authenticator/Authenticator.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 129; DEVELOPMENT_TEAM = LQA3CS5MM7; HEADER_SEARCH_PATHS = "../Submodules/YubiKit/**"; INFOPLIST_FILE = Authenticator/Info.plist; @@ -1069,7 +1083,7 @@ "@executable_path/Frameworks", ); LIBRARY_SEARCH_PATHS = ""; - MARKETING_VERSION = 1.7.9; + MARKETING_VERSION = 1.7.10; OTHER_LDFLAGS = "-ObjC"; PRODUCT_BUNDLE_IDENTIFIER = com.yubico.Authenticator; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1088,7 +1102,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = Authenticator/Authenticator.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 126; + CURRENT_PROJECT_VERSION = 129; DEVELOPMENT_TEAM = LQA3CS5MM7; HEADER_SEARCH_PATHS = "../Submodules/YubiKit/**"; INFOPLIST_FILE = Authenticator/Info.plist; @@ -1098,7 +1112,7 @@ "@executable_path/Frameworks", ); LIBRARY_SEARCH_PATHS = ""; - MARKETING_VERSION = 1.7.9; + MARKETING_VERSION = 1.7.10; OTHER_LDFLAGS = "-ObjC"; PRODUCT_BUNDLE_IDENTIFIER = com.yubico.Authenticator; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/Authenticator/InfoPlist.xcstrings b/Authenticator/InfoPlist.xcstrings index 96bfcff9..6e478714 100644 --- a/Authenticator/InfoPlist.xcstrings +++ b/Authenticator/InfoPlist.xcstrings @@ -44,7 +44,7 @@ "ja" : { "stringUnit" : { "state" : "translated", - "value" : "Yubikeyと通信するには、アプリケーションがNFC読み取りにアクセスできる必要があります。" + "value" : "Yubikeyと通信するには、アプリケーションがNFC読み取りにアクセスできる必要があります." } } } @@ -68,7 +68,7 @@ "ja" : { "stringUnit" : { "state" : "translated", - "value" : "QRコードをスキャンするには、アプリケーションがカメラにアクセスできる必要があります。" + "value" : "QRコードをスキャンするには、アプリケーションがカメラにアクセスできる必要があります." } } } @@ -92,7 +92,7 @@ "ja" : { "stringUnit" : { "state" : "translated", - "value" : "パスワードボールトのロックを解除するには、アプリケーションがFace IDにアクセスできる必要があります。" + "value" : "パスワードボールトのロックを解除するには、アプリケーションがFace IDにアクセスできる必要があります." } } } diff --git a/Authenticator/Localizable.xcstrings b/Authenticator/Localizable.xcstrings index f75ac824..9cd286a9 100644 --- a/Authenticator/Localizable.xcstrings +++ b/Authenticator/Localizable.xcstrings @@ -2,28 +2,138 @@ "sourceLanguage" : "en", "strings" : { " in this version" : { - "comment" : "Substring in \"See what's new in this version\"" + "comment" : "Substring in \"See what's new in this version\"", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : " dans cette version" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : " このバージョンの" + } + } + } }, "*** *** " : { - + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "*** *** " + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "*** *** " + } + } + } }, "888 888" : { - + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "888 888" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "888 888" + } + } + } }, "About" : { - "comment" : "About view navigation title" + "comment" : "About view navigation title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Infos" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "概要" + } + } + } }, "Account deleted" : { - "comment" : "OATH NFC account deleted" + "comment" : "OATH NFC account deleted", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compte supprimé" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アカウントが削除されました" + } + } + } }, "Account name can not be empty" : { - "comment" : "Rename credential alert" + "comment" : "Rename credential alert", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le nom du compte ne peut pas être vide" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アカウント名は空白にできません" + } + } + } }, "Account not set" : { - "comment" : "Rename credential alert" + "comment" : "Rename credential alert", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compte non créé" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アカウントが設定されていません" + } + } + } }, "Account renamed" : { - "comment" : "OATH NFC account renamed" + "comment" : "OATH NFC account renamed", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compte renommé" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アカウントの名前が変更されました" + } + } + } }, "Accounts" : { "comment" : "Navigation title in main view.", @@ -43,25 +153,123 @@ } }, "Activate NFC" : { - "comment" : "Password save type activate NFC" + "comment" : "Password save type activate NFC", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activer NFC" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "NFCを有効化" + } + } + } }, "Add account" : { - "comment" : "Scan QR code add account label" + "comment" : "Scan QR code add account label", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter compte" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アカウントを追加" + } + } + } }, "Add Credential" : { - "comment" : "Add account navigation title" + "comment" : "Add account navigation title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter infos d'identification" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "資格情報を追加" + } + } + } }, "Algorithm" : { - "comment" : "Add account select algorithm" + "comment" : "Add account select algorithm", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Algorithme" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アルゴリズム" + } + } + } }, "and can be used by other applications" : { - "comment" : "PIV extension substring in 'These certificates have been added to this [iPad/iPhone] and can be used by other applications'" + "comment" : "PIV extension substring in 'These certificates have been added to this [iPad/iPhone] and can be used by other applications'", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "et peut être utilisé par d'autres applications" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "他のアプリケーションで使用できます" + } + } + } }, "Authentication required" : { - "comment" : "Password Configuration auth required" + "comment" : "Password Configuration auth required", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentification requise" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "認証が必要です" + } + } + } }, "Calculate" : { - "comment" : "Menu" + "comment" : "Menu", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Calculer" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "計算" + } + } + } }, "Cancel" : { "comment" : "Password alert", @@ -81,78 +289,41 @@ } }, "Certificates on this YubiKey can be used to authenticate and sign requests from other applications if added to this" : { - "comment" : "PIV extension no certs on yubikey message" - }, - "Certificates on YubiKey" : { - "comment" : "PIV extension table cell header" - }, - "Clear" : { - "comment" : "Clear password alert button" - }, - "Clear passwords saved on" : { - "comment" : "Substring from 'Clear passwords saved on [iPad/iPhone]. This will prompt for a passowrd next time a password protected YubiKey is used.'." - }, - "Clear passwords saved on iPhone. This will prompt for a password next time a password protected YubiKey is used." : { - "comment" : "Clear password alert message" - }, - "Clear passwords?" : { - "comment" : "Clear password alert title" - }, - "Close" : { - "comment" : "View close button" - }, - "Code calculated" : { - "comment" : "OATH NFC code calculated" - }, - "Code expired" : { - "comment" : "Accessibility label" - }, - "Code not calculated" : { - "comment" : "Accessibility label" - }, - "Configuration" : { - "comment" : "Configuration navigation title" - }, - "Continue with limited usability" : { + "comment" : "PIV extension no certs on yubikey message", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Continuer avec fonctionnalité limitée" + "value" : "Les certificats sur cette YubiKey peuvent être utilisés pour authentifier et signer des requêtes provenant d'autres applications s'ils sont ajoutés à celle-ci" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "使用制限ありで続行" + "value" : "このYubiKeyの証明書を使用して、他のアプリケーションからのリクエストが追加された場合に認証して署名することができます" } } } }, - "Copied to clipboard" : { - "comment" : "Toast copied to clipboard message" - }, - "Copy" : { - "comment" : "Menu" - }, - "Data to String conversion error" : { + "Certificates on YubiKey" : { + "comment" : "PIV extension table cell header", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Erreur de conversion de données en chaîne" + "value" : "Certificats sur YubiKey" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "データから文字列への変換エラー" + "value" : "YubiKeyの証明書" } } } }, - "Delete" : { - "comment" : "Menu", + "Clear" : { + "comment" : "Clear password alert button", "localizations" : { "fr" : { "stringUnit" : { @@ -163,626 +334,2261 @@ "ja" : { "stringUnit" : { "state" : "translated", - "value" : "削除" + "value" : "消去" } } } }, - "Delete account?" : { + "Clear passwords saved on" : { + "comment" : "Substring from 'Clear passwords saved on [iPad/iPhone]. This will prompt for a passowrd next time a password protected YubiKey is used.'.", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Effacer compte ?" + "value" : "Effacez les mots de passe enregistrés sur" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "アカウントを削除しますか?" + "value" : "に保存されているパスワードを消去します" } } } }, - "Digits" : { - "comment" : "Add account select number of digits" - }, - "Disable Yubico OTP (recommended)" : { + "Clear passwords saved on iPhone. This will prompt for a password next time a password protected YubiKey is used." : { + "comment" : "Clear password alert message", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Désactiver Yubico OTP (recommandé)" + "value" : "Effacez les mots de passe enregistrés sur l'iPhone. Un mot de passe sera requis à la prochaine utilisation d'une YubiKey protégée par mot de passe." } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "Yubico OTPを無効にする(推奨)" + "value" : "iPhoneに保存されているパスワードを消去します。これにより、パスワードで保護されたYubiKeyの次回使用時にパスワードの入力を求められます." } } } }, - "Disabling Yubico OTP will prevent the YubiKey from appearing as a keyboard. If you don’t use Yubico OTP this is the recommended solution. This can be re-enabled from the settings page." : { + "Clear passwords?" : { + "comment" : "Clear password alert title", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Désactiver Yubico OTP empêchera l'affichage de la YubiKey comme clavier. Si vous n'utilisez pas Yubico OTP, c'est la solution recommandée. Cette fonction peut être réactivée via la page des paramètres." + "value" : "Effacer les mots de passe ?" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "Yubico OTPを無効にすると、YubiKeyがキーボードとして表示されなくなります。Yubico OTPを使用しない場合は、これが推奨される解決策です。Yubico OTPは、設定ページから再度有効にできます。" + "value" : "パスワードを消去しますか?" } } } }, - "Dismiss details view" : { - "comment" : "Accessibility hint" - }, - "Duplicate accounts!" : { - "comment" : "OATH add credential duplicate accounts error" - }, - "Enabled" : { - "comment" : "PIV extension enabled message" - }, - "Enter manually" : { - "comment" : "Scan QR code add manually button" - }, - "Enter password" : { - "comment" : "Password alert" - }, - "Enter the PIN to access the certificate." : { - "comment" : "PIV extension enter PIN message" - }, - "Error" : { - - }, - "Error reading YubiKey" : { - "comment" : "PIV extension error title" - }, - "Error writing configuration" : { - "comment" : "OTP settings error alert title" - }, - "Failed storing certificate" : { - "comment" : "PIV extension storing error alert title" - }, - "Failed to cast object to Data error" : { + "Close" : { + "comment" : "View close button", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Impossible de convertir l'objet en données" + "value" : "Fermer" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "データへのオブジェクトのキャスト失敗エラー" + "value" : "閉じる" } } } }, - "Failed to clear passwords" : { - "comment" : "Clear passwords failure alert title" - }, - "Failed to reset YubiKey" : { - "comment" : "Reset YubiKey failure alert title" - }, - "Finished reading certificates" : { - "comment" : "PIV extension NFC finished reading certs" + "Code calculated" : { + "comment" : "OATH NFC code calculated", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Code calculé" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "コードが計算されました" + } + } + } + }, + "Code expired" : { + "comment" : "Accessibility label", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Code expiré" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "コードが期限切れです" + } + } + } + }, + "Code not calculated" : { + "comment" : "Accessibility label", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Code non calculé" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "コードが計算されていません" + } + } + } + }, + "Configuration" : { + "comment" : "Configuration navigation title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Configuration" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "設定" + } + } + } + }, + "Continue with limited usability" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Continuer avec fonctionnalité limitée" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "使用制限ありで続行" + } + } + } + }, + "Copied to clipboard" : { + "comment" : "Toast copied to clipboard message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copié dans presse-papiers" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "クリップボードにコピーされました" + } + } + } + }, + "Copy" : { + "comment" : "Menu", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copier" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "コピー" + } + } + } + }, + "Data to String conversion error" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erreur de conversion de données en chaîne" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "データから文字列への変換エラー" + } + } + } + }, + "Delete" : { + "comment" : "Menu", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Effacer" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "削除" + } + } + } + }, + "Delete account?" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Effacer compte?" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アカウントを削除しますか??" + } + } + } + }, + "Digits" : { + "comment" : "Add account select number of digits", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chiffres" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "桁" + } + } + } + }, + "Disable Yubico OTP (recommended)" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désactiver Yubico OTP (recommandé)" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Yubico OTPを無効にする(推奨)" + } + } + } + }, + "Disabling Yubico OTP will prevent the YubiKey from appearing as a keyboard. If you don’t use Yubico OTP this is the recommended solution. This can be re-enabled from the settings page." : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désactiver Yubico OTP empêchera l'affichage de la YubiKey comme clavier. Si vous n'utilisez pas Yubico, c'est la solution recommandée. Cette fonction peut être réactivée via la page des paramètres." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Yubico OTPを無効にすると、YubiKeyがキーボードとして表示されなくなります。Yubico OTPを使用しない場合は、これが推奨される解決策です。Yubico OTPは、設定ページから再度有効にできます." + } + } + } + }, + "Dismiss details view" : { + "comment" : "Accessibility hint", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fermer la vue détaillée" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "詳細ビューを閉じる" + } + } + } + }, + "Duplicate accounts!" : { + "comment" : "OATH add credential duplicate accounts error", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comptes en double !" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アカウントが重複しています" + } + } + } + }, + "Enabled" : { + "comment" : "PIV extension enabled message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activé" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "有効" + } + } + } + }, + "Enter manually" : { + "comment" : "Scan QR code add manually button", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Saisir manuellement" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "手動で入力" + } + } + } + }, + "Enter password" : { + "comment" : "Password alert", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Saisir le mot de passe" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワードを入力" + } + } + } + }, + "Enter the PIN to access the certificate." : { + "comment" : "PIV extension enter PIN message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Saisir le code PIN pour accéder au certificat." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "証明書にアクセスするにはPINを入力してください。" + } + } + } + }, + "Error" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erreur" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "エラー" + } + } + } + }, + "Error reading YubiKey" : { + "comment" : "PIV extension error title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erreur lors de la lecture de la YubiKey" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKey読み取りエラー" + } + } + } + }, + "Error writing configuration" : { + "comment" : "OTP settings error alert title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erreur lors de l'écriture de la configuration" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "設定書き込みエラー" + } + } + } + }, + "Failed storing certificate" : { + "comment" : "PIV extension storing error alert title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Échec du stockage du certificat" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "証明書の保存に失敗しました" + } + } + } + }, + "Failed to cast object to Data error" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Impossible de convertir l'objet en données" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "データへのオブジェクトのキャスト失敗エラー" + } + } + } + }, + "Failed to clear passwords" : { + "comment" : "Clear passwords failure alert title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Impossible d'effacer le mot de passe" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワードの消去に失敗しました" + } + } + } + }, + "Failed to reset YubiKey" : { + "comment" : "Reset YubiKey failure alert title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Échec de la réinitialisation de la YubiKey" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyのリセットに失敗しました" + } + } + } + }, + "Finished reading certificates" : { + "comment" : "PIV extension NFC finished reading certs", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lecture des certificats terminée" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "証明書の読み取りが終了しました" + } + } + } + }, + "Incorrect password. Re-enter password." : { + "comment" : "OATH password entry retry", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mot de passe incorrect. Saisissez à nouveau le mot de passe." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワードが正しくありません。パスワードを再入力してください。" + } + } + } + }, + "Insert YubiKey" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Insérez YubiKey" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyを挿入" + } + } + } + }, + "Insert YubiKey or pull down to activate NFC" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Insérez la YubiKey ou tirez vers le bas pour activer NFC" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyを挿入してください。またはプルダウンしてNFCを有効にしてください" + } + } + } + }, + "Invalid signature" : { + "comment" : "PIV extension NFC invalid signature", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Signature non valide" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "無効な署名" + } + } + } + }, + "Invalid URI format" : { + "comment" : "Invalid Uri, wrong parameters", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Format URI non valide" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "無効なURIフォーマット" + } + } + } + }, + "Item not found in secure storage" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Élément introuvable dans le stockage sécurisé" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アイテムが安全なストレージで見つかりません" + } + } + } + }, + "Key is password protected" : { + "comment" : "OATH NFC password protected key", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La clé est protégée par mot de passe" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "キーはパスワードで保護されています" + } + } + } + }, + "Licensing" : { + "comment" : "Licensing view navigation title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Licences" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ライセンス" + } + } + } + }, + "Menu" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Menu" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "メニュー" + } + } + } + }, + "Never for this YubiKey" : { + "comment" : "Save password alert.", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jamais pour cette YubiKey" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "このYubiKeyには使用しないでください" + } + } + } + }, + "New OTP configuration saved" : { + "comment" : "Settings OTP configuration saved", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nouvelle configuration OTP enregistrée" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "新しいOTP設定が保存されました" + } + } + } + }, + "No account information found!" : { + "comment" : "Scan QR code no account error message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune information de compte trouvée !" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アカウント情報が見つかりません" + } + } + } + }, + "No accounts on YubiKey" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun compte sur YubiKey" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyにアカウントがありません" + } + } + } + }, + "No camera permissions" : { + "comment" : "Scan QR code camera error title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune autorisation de caméra" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "カメラの権限がありません" + } + } + } + }, + "No certificates on YubiKey" : { + "comment" : "PIV extension no certificates message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun certificat sur YubiKey" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyに証明書がありません" + } + } + } + }, + "No matching accounts on YubiKey" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun compte correspondant sur YubiKey" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyに一致するアカウントがありません" + } + } + } + }, + "No name" : { + "comment" : "PIV extension certificate with no name", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun nom" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "名前がありません" + } + } + } + }, + "No public key certificates in keychain" : { + "comment" : "PIV extension no certs in keychain", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun certificat de clé publique dans le porte-clés" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "キーチェーンに公開鍵の証明書がありません" + } + } + } + }, + "No QR code?" : { + "comment" : "Scan QR code no QR code message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pas de code QR ?" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "QRコードがありませんか?" + } + } + } + }, + "Not Enabled" : { + "comment" : "PIV extension not enabled message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Non activé" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "有効化されていません" + } + } + } + }, + "Not now" : { + "comment" : "Save passsword alert", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pas maintenant" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今はできません" + } + } + } + }, + "Not valid credential information" : { + "comment" : "Add account error message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Informations d'identification non valides" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "有効な資格情報ではありません" + } + } + } + }, + "Notifications disabled" : { + "comment" : "PIV extension notifications alert title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Notifications désactivées" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "通知が無効になっています" + } + } + } + }, + "OATH accounts deleted and OATH application reset to factory defaults." : { + "comment" : "OATH reset confirmation message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comptes OATH supprimés et application OATH réinitialisée aux paramètres par défaut." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "OATHアカウントが削除され、OATHアプリケーションが工場出荷時のデフォルトにリセットされています。" + } + } + } + }, + "Ok" : { + "comment" : "Password alert", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + } + } + }, + "OK" : { + "comment" : "OK button in error alert.", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + } + } + }, + "on this YubiKey" : { + "comment" : "OATH substring in 'There's already an account named [issuer, name] on this YubiKey.", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "sur cette YubiKey" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "このYubiKeyで" + } + } + } + }, + "Open iOS Settings app" : { + "comment" : "Scan QR code settings button", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvrez l'application Réglages iOS" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "iOS設定アプリを開く" + } + } + } + }, + "or pull down to activate NFC" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "ou tirez vers le bas pour activer NFC" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "またはプルダウンしてNFCを有効にします" + } + } + } + }, + "or scan a NFC YubiKey" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "ou scannez une YubiKey NFC" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "またはNFC YubiKeyをスキャンします" + } + } + } + }, + "Other" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Autre" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "その他" + } + } + } + }, + "Other applications can use client certificates on your YubiKey for authentication and signing purposes." : { + "comment" : "PIV extension info alert message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "D'autres applications peuvent utiliser les certificats clients de votre YubiKey à des fins d'authentification et de signature." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "他のアプリケーションが認証および署名の目的でYubiKeyのクライアント証明書を使用できます。" + } + } + } + }, + "Password" : { + "comment" : "Password alert", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mot de passe" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワード" + } + } + } + }, + "Password can not be an empty string" : { + "comment" : "Configuration set password empty password error alert message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le mot de passe ne peut pas être une chaîne vide" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワードの文字列は空白にできません" + } + } + } + }, + "Password has been changed" : { + "comment" : "Password Configuration password changed", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le mot de passe a été modifié" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワードが変更されました" + } + } + } + }, + "Password has been removed" : { + "comment" : "Password Configuration password removed", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le mot de passe a été supprimé" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワードが削除されました" + } + } + } + }, + "Password has been set" : { + "comment" : "Password Configuration password set", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le mot de passe a été créé" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワードが設定されました" + } + } + } + }, + "Period" : { + "comment" : "Add account select period", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Période" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "期間" + } + } + } + }, + "Pin" : { + "comment" : "Menu", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Épingler" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ピン" + } + } + } + }, + "Pinned" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Épinglé" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ピン留め" + } + } + } + }, + "Plug-in your YubiKey for that operation" : { + "comment" : "No service found", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Branchez votre YubiKey pour cette opération" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyをその操作のために接続してください" + } + } + } + }, + "Point your camera at a QR code to scan it" : { + "comment" : "Scan QR code message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pointez votre caméra vers le code QR pour le scanner" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スキャンするにはカメラをQRコードに向けてください" + } + } + } + }, + "Public key certificates on" : { + "comment" : "PIV extension no certs on device message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Certificats de clé publique activés" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "公開鍵証明書の対象" + } + } + } + }, + "Read more..." : { + "comment" : "PIV extension read more alert title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "En savoir plus..." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "詳細を読む..." + } + } + } + }, + "Read YubiKey OTP configuration" : { + "comment" : "Settings OTP configuration read", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lire la configuration OTP de la YubiKey" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKey OTP設定を読み取る" + } + } + } + }, + "Remove and re-insert your YubiKey" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retirez et réinsérez votre YubiKey" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyを取り外して再挿入してください" + } + } + } + }, + "Remove and reinsert your YubiKey" : { + "comment" : "PIV extension error reinsert key", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retirez et réinsérez votre YubiKey" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyを取り外して再挿入してください" + } + } + } + }, + "Remove password" : { + "comment" : "Remove password alert title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer mot de passe" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワードを削除" + } + } + } + }, + "Remove password for this YubiKey?" : { + "comment" : "Remove password alert message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer le mot de passe pour cette YubiKey ?" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "このYubiKeyのパスワードを削除しますか?" + } + } + } + }, + "Rename" : { + "comment" : "Menu", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Renommer" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "名前変更" + } + } + } + }, + "Reset" : { + "comment" : "Reset YubiKey alert button", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialiser" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "リセット" + } + } + } + }, + "Reset complete" : { + "comment" : "Reset YubiKey complete alert title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialisation terminée" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "リセットが完了しました" + } + } + } + }, + "Reset YubiKey?" : { + "comment" : "Reset YubiKey alert title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialiser la YubiKey ?" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyをリセットしますか?" + } + } + } + }, + "Save and protect with" : { + "comment" : "Password entry save substring in 'Save and protect with [save type]'", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer et protéger avec" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "を使用して保存および保護" + } + } + } + }, + "Save and protect with %@" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer et protéger avec %@" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@を使用して保存および保護" + } + } + } + }, + "Save password" : { + "comment" : "Save password alert.", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer mot de passe" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワードを保存" + } + } + } + }, + "Save Password" : { + "comment" : "Password entry save password button", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer mot de passe" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワードを保存" + } + } + } + }, + "Save password?" : { + "comment" : "Save password alert", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer mot de passe ?" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワードを保存しますか?" + } + } + } + }, + "Scan NFC YubiKey" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scanner la YubiKey NFC" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "NFC YubiKeyをスキャン" + } + } + } + }, + "Scan your YubiKey" : { + "comment" : "iOS NFC alert scan", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scannez votre YubiKey" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyをスキャン" + } + } + } + }, + "Search" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rechercher" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "検索" + } + } + } + }, + "See " : { + "comment" : "Substring in \"See what's new in this version\"", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voir " + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "参照 " + } + } + } + }, + "Settings" : { + "comment" : "PIV extension settings alert title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réglages" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "設定" + } + } + } + }, + "Signing failed" : { + "comment" : "PIV extension signing failed error message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Échec de la signature" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "署名に失敗しました" + } + } + } + }, + "Smart card extension" : { + "comment" : "PIV extension info alert title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Extension carte à puce" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スマートカード拡張機能" + } + } + } + }, + "Smart card extension is only available on iOS 14.5 and forward." : { + "comment" : "PIV extension version error", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'extension de carte à puce n'est disponible que sur iOS 14.5 et versions ultérieures." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スマートカード拡張機能は、iOS 14.5以降でのみ使用できます。" + } + } + } + }, + "Something went wrong" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une erreur s'est produite" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "問題が発生しました" + } + } + } + }, + "Something went wrong and key doesn't respond" : { + "comment" : "No response", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erreur : la clé ne répond pas" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "問題が発生し、キーが応答しません" + } + } + } + }, + "Stored passwords have been cleared from this phone." : { + "comment" : "Clear passwords confirmation alert message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les mots de passe enregistrés ont été effacés de ce téléphone." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "保存されたパスワードがこのスマートフォンから消去されました。" + } + } + } + }, + "String to Data conversion error" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erreur de conversion de chaîne en données" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "文字列からデータへの変換エラー" + } + } + } }, - "Incorrect password. Re-enter password." : { - "comment" : "OATH password entry retry" + "Success" : { + "comment" : "Clear passwords confirmation alert title\niOS NFC alert default success message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Succès" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "成功" + } + } + } }, - "Insert YubiKey" : { - + "Success!\nHint: swipe down to dismiss" : { + "comment" : "iOS NFC alert success with hint", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Succès !\nAstuce : faites glisser vers le bas pour fermer" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "成功しました。\nヒント:下にスワイプして閉じます" + } + } + } }, - "Insert YubiKey or pull down to activate NFC" : { - + "Successfully read" : { + "comment" : "iOS NFC alert successfully read", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lecture effectuée" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "読み取りに成功しました" + } + } + } }, - "Invalid signature" : { - "comment" : "PIV extension NFC invalid signature" + "Successfully signed data" : { + "comment" : "PIV extension NFC successfully signed data", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Données signées avec succès" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "データの署名に成功しました" + } + } + } + }, + "The key doesn't respond" : { + "comment" : "Timeout issue", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La clé ne répond pas" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "キーが応答しません" + } + } + } + }, + "The passwords do not match" : { + "comment" : "Configuration set password not matching error alert message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les mots de passe ne correspondent pas" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パスワードが一致しません" + } + } + } + }, + "The private key on the YubiKey does not match the certificate or there is no private key stored on the YubiKey." : { + "comment" : "PIV extension NFC invalid signature no private key", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La clé privée sur la YubiKey ne correspond pas au certificat ou il n'y a pas de clé privée stockée sur la YubiKey." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyの秘密鍵が証明書と一致しないか、YubiKeyに秘密鍵が保存されていません。" + } + } + } + }, + "The private key on the YubiKey does not match the certificate." : { + "comment" : "PIV extension invalid signature message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La clé privée sur la YubiKey ne correspond pas au certificat." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyの秘密鍵が証明書と一致しません。" + } + } + } + }, + "The smart card extension requires notifications to be enabled for Yubico Authenticator. Enable it in the iOS Settings." : { + "comment" : "PIV extensions notifications alert message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'extension de la carte à puce nécessite que les notifications soient activées pour Yubico Authenticator. Activez-les dans les paramètres iOS." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スマートカード拡張機能では、Yubico Authenticatorの通知を有効にする必要があります。iOS設定で有効にしてください。" + } + } + } + }, + "There's already an account named" : { + "comment" : "OATH substring in 'There's already an account named [issuer, name] on this YubiKey.", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il existe déjà un compte portant le nom de" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "という名前のアカウントがすでに存在します" + } + } + } + }, + "These certificates have been added to this" : { + "comment" : "PIV extension substring in 'These certificates have been added to this [iPad/iPhone] and can be used by other applications'", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ces certificats ont été ajoutés à cette clé" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "これらの証明書はこれに追加されています" + } + } + } + }, + "This QR code is not supported" : { + "comment" : "Invalid Uri format, not OATH URL", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Code QR non pris en charge" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "このQRコードはサポートされていません" + } + } + } + }, + "This version of iOS does not support operations with the YubiKey for Lightning nor over NFC" : { + "comment" : "Not supported", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette version d'iOS ne prend pas en charge les opérations avec YubiKey pour Lightning ni via NFC" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "このバージョンのiOSでは、LightningやNFCでのYubiKeyを使用した操作はサポートされていません" + } + } + } + }, + "This will delete all accounts and restore factory defaults of your YubiKey." : { + "comment" : "Reset YubiKey alert message", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette action supprimera tous les comptes et restaurera les paramètres d'usine de votre YubiKey." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "これにより、すべてのアカウントが削除され、YubiKeyの工場出荷時のデフォルトに戻ります。" + } + } + } + }, + "This will permanently delete the account from the YubiKey, and your ability to generate codes for it!" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cela supprimera définitivement le compte de la YubiKey et vous ne pourrez plus générer de codes!" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "これにより、YubiKeyからアカウントが完全に削除され、コードを生成できなくなります!" + } + } + } + }, + "This will prompt for a password next time a password protected YubiKey is used" : { + "comment" : "Substring from 'Clear passwords saved on [iPad/iPhone]. This will prompt for a passowrd next time a password protected YubiKey is used.'.", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Un mot de passe sera requis à la prochaine utilisation d'une YubiKey protégée par mot de passe" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "これにより、パスワードで保護されたYubiKeyの次回使用時にパスワードの入力を求められます" + } + } + } + }, + "This YubiKey has Yubico OTP enabled which makes it appear as an external keyboard to the iPhone. Unfortunately this causes problem with the normal on-screen keyboard." : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Yubico OTP étant activé, cette YubiKey apparaît comme clavier externe pour l'iPhone. Cela pose problème avec le clavier à l'écran normal." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "このYubiKeyはYubico OTPが有効になっているため、iPhoneへの外付けキーボードとして表示されます。これが原因で、標準のオンスクリーンキーボードで問題が発生します." + } + } + } }, - "Invalid URI format" : { - "comment" : "Invalid Uri, wrong parameters", + "To prevent unauthorized access this YubiKey is protected with a password." : { + "comment" : "OATH password entry enter password", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Format URI non valide" + "value" : "Pour empêcher tout accès non autorisé, cette YubiKey est protégée par un mot de passe." } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "無効なURIフォーマット" + "value" : "不正アクセスを防止するため、このYubiKeyはパスワードで保護されます。" } } } }, - "Item not found in secure storage" : { + "To scan a QR code you need to enable camera permissions for the Authenticator app." : { + "comment" : "Scan QR code camera error message", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Élément introuvable dans le stockage sécurisé" + "value" : "Pour scanner un code QR, vous devez activer les autorisations de caméra pour l'application Authenticator." } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "アイテムが安全なストレージで見つかりません" + "value" : "QRコードをスキャンするには、Authenticatorアプリのカメラ権限を有効にする必要があります。" } } } }, - "Key is password protected" : { - "comment" : "OATH NFC password protected key" - }, - "Licensing" : { - "comment" : "Licensing view navigation title" - }, - "Menu" : { - - }, - "Never for this YubiKey" : { - "comment" : "Save password alert." - }, - "New OTP configuration saved" : { - "comment" : "Settings OTP configuration saved" - }, - "No account information found!" : { - "comment" : "Scan QR code no account error message" - }, - "No accounts on YubiKey" : { - - }, - "No camera permissions" : { - "comment" : "Scan QR code camera error title" - }, - "No certificates on YubiKey" : { - "comment" : "PIV extension no certificates message" - }, - "No matching accounts on YubiKey" : { - - }, - "No name" : { - "comment" : "PIV extension certificate with no name" - }, - "No public key certificates in keychain" : { - "comment" : "PIV extension no certs in keychain" - }, - "No QR code?" : { - "comment" : "Scan QR code no QR code message" - }, - "Not Enabled" : { - "comment" : "PIV extension not enabled message" - }, - "Not now" : { - "comment" : "Save passsword alert" - }, - "Not valid credential information" : { - "comment" : "Add account error message" - }, - "Notifications disabled" : { - "comment" : "PIV extension notifications alert title" - }, - "OATH accounts deleted and OATH application reset to factory defaults." : { - "comment" : "OATH reset confirmation message" - }, - "Ok" : { - "comment" : "Password alert" - }, - "OK" : { - "comment" : "OK button in error alert." - }, - "on this YubiKey" : { - "comment" : "OATH substring in 'There's already an account named [issuer, name] on this YubiKey." - }, - "Open iOS Settings app" : { - "comment" : "Scan QR code settings button" - }, - "or pull down to activate NFC" : { - - }, - "or scan a NFC YubiKey" : { - - }, - "Other" : { + "Type" : { + "comment" : "Add account select type", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Autre" + "value" : "Type" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "その他" + "value" : "タイプ" } } } }, - "Other applications can use client certificates on your YubiKey for authentication and signing purposes." : { - "comment" : "PIV extension info alert message" - }, - "Password" : { - "comment" : "Password alert" - }, - "Password can not be an empty string" : { - "comment" : "Configuration set password empty password error alert message" - }, - "Password has been changed" : { - "comment" : "Password Configuration password changed" - }, - "Password has been removed" : { - "comment" : "Password Configuration password removed" - }, - "Password has been set" : { - "comment" : "Password Configuration password set" - }, - "Period" : { - "comment" : "Add account select period" - }, - "Pin" : { - "comment" : "Menu" - }, - "Pinned" : { + "Unhandled Error" : { "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Épinglé" + "value" : "Erreur non gérée" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "ピン留め" + "value" : "未処理エラー" } } } }, - "Plug-in your YubiKey for that operation" : { - "comment" : "No service found", + "Unlock YubiKey" : { + "comment" : "Password entry unlock message", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Branchez votre YubiKey pour cette opération" + "value" : "Débloquer YubiKey" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "YubiKeyをその操作のために接続してください" + "value" : "YubiKeyのロックを解除" } } } }, - "Point your camera at a QR code to scan it" : { - "comment" : "Scan QR code message" - }, - "Public key certificates on" : { - "comment" : "PIV extension no certs on device message" - }, - "Read more..." : { - "comment" : "PIV extension read more alert title" - }, - "Read YubiKey OTP configuration" : { - "comment" : "Settings OTP configuration read" - }, - "Remove and re-insert your YubiKey" : { + "Unpin" : { + "comment" : "Menu", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Retirez et réinsérez votre YubiKey" + "value" : "Détacher" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "YubiKeyを取り外して再挿入してください" + "value" : "ピン解除" } } } }, - "Remove and reinsert your YubiKey" : { - "comment" : "PIV extension error reinsert key" - }, - "Remove password" : { - "comment" : "Remove password alert title" - }, - "Remove password for this YubiKey?" : { - "comment" : "Remove password alert message" - }, - "Rename" : { - "comment" : "Menu" - }, - "Reset" : { - "comment" : "Reset YubiKey alert button" - }, - "Reset complete" : { - "comment" : "Reset YubiKey complete alert title" - }, - "Reset YubiKey?" : { - "comment" : "Reset YubiKey alert title" - }, - "Save and protect with" : { - "comment" : "Password entry save substring in 'Save and protect with [save type]'" - }, - "Save and protect with %@" : { - - }, - "Save password" : { - "comment" : "Save password alert." - }, - "Save Password" : { - "comment" : "Password entry save password button" - }, - "Save password?" : { - "comment" : "Save password alert" - }, - "Scan NFC YubiKey" : { - - }, - "Scan your YubiKey" : { - "comment" : "iOS NFC alert scan" - }, - "Search" : { - - }, - "See " : { - "comment" : "Substring in \"See what's new in this version\"" - }, - "Settings" : { - "comment" : "PIV extension settings alert title" - }, - "Signing failed" : { - "comment" : "PIV extension signing failed error message" - }, - "Smart card extension" : { - "comment" : "PIV extension info alert title" - }, - "Smart card extension is only available on iOS 14.5 and forward." : { - "comment" : "PIV extension version error" - }, - "Something went wrong" : { - - }, - "Something went wrong and key doesn't respond" : { - "comment" : "No response", + "Use your PUK code to reset PIN." : { + "comment" : "PIV extension pin blocked text", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Erreur : la clé ne répond pas" + "value" : "Utilisez votre code PUK pour réinitialiser le code PIN." } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "問題が発生し、キーが応答しません" + "value" : "PUKコードを使用してPINをリセットします。" } } } }, - "Stored passwords have been cleared from this phone." : { - "comment" : "Clear passwords confirmation alert message" - }, - "String to Data conversion error" : { + "Version history" : { + "comment" : "Version history navigation title", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Erreur de conversion de chaîne en données" + "value" : "Historique des versions" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "文字列からデータへの変換エラー" + "value" : "バージョン履歴" } } } }, - "Success" : { - "comment" : "Clear passwords confirmation alert title\niOS NFC alert default success message" - }, - "Success!\nHint: swipe down to dismiss" : { - "comment" : "iOS NFC alert success with hint" - }, - "Successfully read" : { - "comment" : "iOS NFC alert successfully read" - }, - "Successfully signed data" : { - "comment" : "PIV extension NFC successfully signed data" - }, - "The key doesn't respond" : { - "comment" : "Timeout issue", + "what's new" : { + "comment" : "Substring in \"See what's new in this version\"", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "La clé ne répond pas" + "value" : "nouveautés" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "キーが応答しません" + "value" : "新機能" } } } }, - "The passwords do not match" : { - "comment" : "Configuration set password not matching error alert message" - }, - "The private key on the YubiKey does not match the certificate or there is no private key stored on the YubiKey." : { - "comment" : "PIV extension NFC invalid signature no private key" - }, - "The private key on the YubiKey does not match the certificate." : { - "comment" : "PIV extension invalid signature message" - }, - "The smart card extension requires notifications to be enabled for Yubico Authenticator. Enable it in the iOS Settings." : { - "comment" : "PIV extensions notifications alert message" - }, - "There's already an account named" : { - "comment" : "OATH substring in 'There's already an account named [issuer, name] on this YubiKey." - }, - "These certificates have been added to this" : { - "comment" : "PIV extension substring in 'These certificates have been added to this [iPad/iPhone] and can be used by other applications'" - }, - "This QR code is not supported" : { - "comment" : "Invalid Uri format, not OATH URL", + "What's new in\nYubico Authenticator" : { + "comment" : "Version history title", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Code QR non pris en charge" + "value" : "Nouveautés de\nYubico Authenticator" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "このQRコードはサポートされていません" + "value" : "Yubico Authenticator\nの新機能" } } } }, - "This version of iOS does not support operations with the YubiKey for Lightning nor over NFC" : { - "comment" : "Not supported", + "While the YubiKey is inserted the on-screen keyboard will not appear. To show the keyboard you will have to remove the YubiKey and then re-insert it." : { "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Cette version d'iOS ne prend pas en charge les opérations avec YubiKey pour Lightning ni via NFC" + "value" : "Lorsque vous insérez la YubiKey, le clavier à l'écran n'apparaît pas. Pour afficher le clavier, vous devez retirer la YubiKey, puis la réinsérer." } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "このバージョンのiOSでは、LightningやNFCでのYubiKeyを使用した操作はサポートされていません" + "value" : "YubiKeyが挿入されている間は、オンスクリーンキーボードが表示されません。キーボードを表示するにはYubiKeyを取り外し、その後再挿入する必要があります." } } } }, - "This will delete all accounts and restore factory defaults of your YubiKey." : { - "comment" : "Reset YubiKey alert message" - }, - "This will permanently delete the account from the YubiKey, and your ability to generate codes for it!" : { + "Would you like to save this password for YubiKey for next usage in this application?" : { + "comment" : "Password entry save password title", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Cela supprimera définitivement le compte de la YubiKey et vous ne pourrez plus générer de codes !" + "value" : "Souhaitez-vous enregistrer ce mot de passe pour la YubiKey afin de l'utiliser lors de la prochaine utilisation dans cette application ?" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "これにより、YubiKeyからアカウントが完全に削除され、コードを生成できなくなります。" + "value" : "YubiKeyのこのパスワードを保存して、このアプリケーションで次回使用しますか?" } } } }, - "This will prompt for a password next time a password protected YubiKey is used" : { - "comment" : "Substring from 'Clear passwords saved on [iPad/iPhone]. This will prompt for a passowrd next time a password protected YubiKey is used.'." - }, - "This YubiKey has Yubico OTP enabled which makes it appear as an external keyboard to the iPhone. Unfortunately this causes problem with the normal on-screen keyboard." : { + "Wrong password" : { + "comment" : "Password Configuration wrong password", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Yubico OTP étant activé, cette YubiKey apparaît comme clavier externe pour iPhone. Cela pose problème avec le clavier à l'écran normal." + "value" : "Mot de passe incorrect" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "このYubiKeyはYubico OTPが有効になっているため、iPhoneへの外付けキーボードとして表示されます。これが原因で、標準のオンスクリーンキーボードで問題が発生します。" + "value" : "パスワードが正しくありません" } } } }, - "To prevent unauthorized access this YubiKey is protected with a password." : { - "comment" : "OATH password entry enter password" - }, - "To scan a QR code you need to enable camera permissions for the Authenticator app." : { - "comment" : "Scan QR code camera error message" - }, - "Type" : { - "comment" : "Add account select type" - }, - "Unhandled Error" : { + "Wrong PIN code" : { + "comment" : "PIV extension wrong pin", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Erreur non gérée" + "value" : "Code PIN incorrect" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "未処理エラー" + "value" : "PINコードが正しくありません" } } } }, - "Unlock YubiKey" : { - "comment" : "Password entry unlock message" - }, - "Unpin" : { - "comment" : "Menu" - }, - "Use your PUK code to reset PIN." : { - "comment" : "PIV extension pin blocked text" - }, - "Version history" : { - "comment" : "Version history navigation title" - }, - "what's new" : { - "comment" : "Substring in \"See what's new in this version\"" - }, - "What's new in\nYubico Authenticator" : { - "comment" : "Version history title" - }, - "While the YubiKey is inserted the on-screen keyboard will not appear. To show the keyboard you will have to remove the YubiKey and then re-insert it." : { + "You can remove saved password in Settings." : { + "comment" : "Password entry save password message", "localizations" : { "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Lorsque vous insérez la YubiKey, le clavier à l'écran n'apparaît pas. Pour afficher le clavier, vous devez retirer la YubiKey, puis la réinsérer." + "value" : "Vous pouvez supprimer le mot de passe enregistré dans les paramètres." } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "YubiKeyが挿入されている間は、オンスクリーンキーボードが表示されません。キーボードを表示するにはYubiKeyを取り外し、その後再挿入する必要があります。" + "value" : "保存されたパスワードは設定で削除できます。" } } } }, - "Would you like to save this password for YubiKey for next usage in this application?" : { - "comment" : "Password entry save password title" - }, - "Wrong password" : { - "comment" : "Password Configuration wrong password" - }, - "Wrong PIN code" : { - "comment" : "PIV extension wrong pin" - }, - "You can remove saved password in Settings." : { - "comment" : "Password entry save password message" - }, "Your PIN has ben blocked" : { - "comment" : "PIV extension pin blocked title" + "comment" : "PIV extension pin blocked title", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre code PIN a été bloqué" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "PINがブロックされました" + } + } + } }, "Yubico OTP" : { "localizations" : { @@ -834,7 +2640,21 @@ } }, "YubiKey information read" : { - "comment" : "YubiKey info NFC read" + "comment" : "YubiKey info NFC read", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Informations YubiKey lues" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyの情報が読み込まれました" + } + } + } } }, "version" : "1.0" diff --git a/Authenticator/Model/SmartCardViewModel.swift b/Authenticator/Model/SmartCardViewModel.swift index c7d445b1..ca0b7963 100644 --- a/Authenticator/Model/SmartCardViewModel.swift +++ b/Authenticator/Model/SmartCardViewModel.swift @@ -98,7 +98,7 @@ extension YKFPIVSession { completion: @escaping (_ certificate: SecCertificate?) -> Void) { getCertificateIn(slot) { certificate, error in guard let certificate = certificate else { - if (error! as NSError).code == 0x6A82 || (error! as NSError).code == YKFPIVFErrorCode.dataParseError.rawValue { + if (error! as NSError).code == 0x6A82 || (error! as NSError).code == YKFPIVErrorCode.dataParseError.rawValue { completion(nil) } else { callback(.failure(error!)) diff --git a/Authenticator/Model/TokenRequestViewModel.swift b/Authenticator/Model/TokenRequestViewModel.swift index 485205d8..f228b3a1 100644 --- a/Authenticator/Model/TokenRequestViewModel.swift +++ b/Authenticator/Model/TokenRequestViewModel.swift @@ -17,7 +17,7 @@ @available(iOS 14.0, *) extension Error { var tokenError: TokenRequestViewModel.TokenError { - let code = YKFPIVFErrorCode(rawValue: UInt((self as NSError).code)) + let code = YKFPIVErrorCode(rawValue: UInt((self as NSError).code)) switch code { case .pinLocked: return .passwordLocked(TokenRequestViewModel.ErrorMessage(title: String(localized: "Your PIN has ben blocked", comment: "PIV extension pin blocked title"), diff --git a/Authenticator/UI/Authentication/AddCredential/mul.lproj/AddCredential.xcstrings b/Authenticator/UI/Authentication/AddCredential/mul.lproj/AddCredential.xcstrings index b0d9226a..8c23c020 100644 --- a/Authenticator/UI/Authentication/AddCredential/mul.lproj/AddCredential.xcstrings +++ b/Authenticator/UI/Authentication/AddCredential/mul.lproj/AddCredential.xcstrings @@ -10,6 +10,18 @@ "state" : "new", "value" : "Digits" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chiffres" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "桁" + } } } }, @@ -22,6 +34,18 @@ "state" : "new", "value" : "Type" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Type" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タイプ" + } } } }, @@ -34,6 +58,18 @@ "state" : "new", "value" : "Issuer" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Émetteur" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "発行者" + } } } }, @@ -46,6 +82,18 @@ "state" : "new", "value" : "6" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "6" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "6" + } } } }, @@ -58,6 +106,18 @@ "state" : "new", "value" : "Add account" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter compte" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アカウントを追加" + } } } }, @@ -70,6 +130,18 @@ "state" : "new", "value" : "Period" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Période" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "期間" + } } } }, @@ -82,6 +154,18 @@ "state" : "new", "value" : "Require touch" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touche requise" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タッチが必要" + } } } }, @@ -94,6 +178,18 @@ "state" : "new", "value" : "30" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "30" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "30" + } } } }, @@ -106,6 +202,18 @@ "state" : "new", "value" : "Normally these settings should not be changed, doing so may result in the code not working as expected" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "En règle générale, ces paramètres ne devraient pas être modifiés, car cela pourrait entraîner un dysfonctionnement du code" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "通常、これらの設定は変更しないでください。変更すると、コードが想定どおりに動作しなくなる可能性があります" + } } } }, @@ -118,6 +226,18 @@ "state" : "new", "value" : "Advanced settings" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paramètres avancés" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "高度な設定" + } } } }, @@ -130,6 +250,18 @@ "state" : "new", "value" : "TOTP" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "TOTP" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "TOTP" + } } } }, @@ -142,6 +274,18 @@ "state" : "new", "value" : "Secret" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Secret" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "秘密鍵" + } } } }, @@ -154,6 +298,18 @@ "state" : "new", "value" : "john@doe.com" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "john@doe.com" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "john@doe.com" + } } } }, @@ -166,6 +322,18 @@ "state" : "new", "value" : "SHA1" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "SHA1" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "SHA1" + } } } }, @@ -178,6 +346,18 @@ "state" : "new", "value" : "Secret" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Secret" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "秘密鍵" + } } } }, @@ -190,6 +370,18 @@ "state" : "new", "value" : "Account name" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nom du compte" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アカウント名" + } } } }, @@ -202,6 +394,18 @@ "state" : "new", "value" : "Optional" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Optionnel" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "オプション" + } } } }, @@ -214,6 +418,18 @@ "state" : "new", "value" : "Account details" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Détails du compte" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アカウント詳細" + } } } }, @@ -226,6 +442,18 @@ "state" : "new", "value" : "Algorithm" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Algorithme" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アルゴリズム" + } } } } diff --git a/Authenticator/UI/Authentication/EditCredential/mul.lproj/EditCredential.xcstrings b/Authenticator/UI/Authentication/EditCredential/mul.lproj/EditCredential.xcstrings index aa33f1b2..d9404c76 100644 --- a/Authenticator/UI/Authentication/EditCredential/mul.lproj/EditCredential.xcstrings +++ b/Authenticator/UI/Authentication/EditCredential/mul.lproj/EditCredential.xcstrings @@ -10,6 +10,18 @@ "state" : "new", "value" : "jens.utbult@yubico.com" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "jens.utbult@yubico.com" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "jens.utbult@yubico.com" + } } } }, @@ -22,6 +34,18 @@ "state" : "new", "value" : "Rename" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Renommer" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "名前変更" + } } } }, @@ -34,6 +58,18 @@ "state" : "new", "value" : "Cancel" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Annuler" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "キャンセル" + } } } }, @@ -46,6 +82,18 @@ "state" : "new", "value" : "Save" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "保存" + } } } } diff --git a/Authenticator/UI/Tutorial/mul.lproj/Tutorial.xcstrings b/Authenticator/UI/Tutorial/mul.lproj/Tutorial.xcstrings index ffa62997..55e5a2b3 100644 --- a/Authenticator/UI/Tutorial/mul.lproj/Tutorial.xcstrings +++ b/Authenticator/UI/Tutorial/mul.lproj/Tutorial.xcstrings @@ -10,6 +10,18 @@ "state" : "new", "value" : "YubiKey 5 Series NFC authentication" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentification NFC YubiKey 5 Series" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKey 5シリーズのNFC認証" + } } } }, @@ -22,6 +34,18 @@ "state" : "new", "value" : "If you have a YubiKey with NFC, pull down the main view to activate NFC." } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si vous possédez une YubiKey avec NFC, faites glisser la vue principale vers le bas pour activer le NFC." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "NFC対応のYubiKeyをお持ちの場合は、メインビューをプルダウンしてNFCを有効にします。" + } } } }, @@ -34,6 +58,18 @@ "state" : "new", "value" : "You will need a YubiKey 5Ci or a compatible YubiKey with NFC to get started." } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous aurez besoin d'une YubiKey 5Ci ou d'une YubiKey compatible avec NFC pour commencer." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "開始するには、YubiKey 5CiまたはNFC対応のYubiKeyが必要です。" + } } } }, @@ -46,6 +82,18 @@ "state" : "new", "value" : "Touch the center of the key to the edge of the phone." } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuyez le centre de la clé contre le bord du téléphone." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "キーの中央をタッチして、スマートフォンの端に移動します。" + } } } }, @@ -58,6 +106,18 @@ "state" : "new", "value" : "Hold the key horizontally and tilt the iPhone towards the key." } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tenez la clé horizontalement et inclinez l'iPhone vers la clé." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "キーを水平に持ち、iPhoneをキーに向かって傾けます。" + } } } }, @@ -70,6 +130,18 @@ "state" : "new", "value" : "Get a shared secret from any service you wish to secure, store it on the YubiKey and use it to generate your security codes." } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Obtenez un secret partagé du service que vous voulez sécuriser, stockez-le sur la YubiKey et générez vos codes de sécurité." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "保護するサービスの共有秘密鍵を取得し、YubiKeyに保存して、YubiKeyを使用してセキュリティコードを生成します。" + } } } }, @@ -82,6 +154,18 @@ "state" : "new", "value" : "QR codes are available from the services you wish to secure." } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les codes QR sont disponibles auprès des services que vous souhaitez sécuriser." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "QRコードは、保護するサービスから入手できます。" + } } } }, @@ -94,6 +178,18 @@ "state" : "new", "value" : "Skip" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Passer" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スキップ" + } } } }, @@ -106,6 +202,18 @@ "state" : "new", "value" : "Simply scan the QR code when you add your YubiKey and generate your own security codes." } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il vous suffit de scanner le code QR lorsque vous ajoutez votre YubiKey pour générer vos propres codes de sécurité." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyを追加して独自のセキュリティコードを生成する場合は、QRコードをスキャンしてください。" + } } } }, @@ -118,6 +226,18 @@ "state" : "new", "value" : "If you have a YubiKey 5Ci, plug it in." } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si vous avez une YubiKey 5Ci, insérez-la." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKey 5Ciをお持ちの場合は接続します。" + } } } }, @@ -130,6 +250,18 @@ "state" : "new", "value" : "YubiKey 5Ci authentication" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentification YubiKey 5Ci" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKey 5Ci認証" + } } } }, @@ -142,6 +274,18 @@ "state" : "new", "value" : "Next" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suivant" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "次へ" + } } } }, @@ -154,6 +298,18 @@ "state" : "new", "value" : "Touch the contacts on the sides when prompted." } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuyez sur les contacts sur les côtés lorsque vous y êtes invité." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "プロンプトが表示されたら、横にあるお問い合わせをタッチします。" + } } } }, @@ -166,6 +322,18 @@ "state" : "new", "value" : "Where to get QR codes" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Où obtenir les codes QR" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "QRコードの入手先" + } } } }, @@ -178,6 +346,18 @@ "state" : "new", "value" : "How it works" } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment ça marche" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "動作方法" + } } } }, @@ -190,6 +370,18 @@ "state" : "new", "value" : "Read more..." } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "En savoir plus..." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "詳細を読む..." + } } } } diff --git a/Authenticator/VersionHistory.plist b/Authenticator/VersionHistory.plist index fe10859e..c0015a17 100644 --- a/Authenticator/VersionHistory.plist +++ b/Authenticator/VersionHistory.plist @@ -2,6 +2,18 @@ + + version + 1.7.10 + date + 2024-09-01T09:41:00Z + shouldPromptUser + + changes + + Support for French and Japanese added to this version of the Yubico Authenticator. + + version 1.7.9 diff --git a/TokenExtension/Localizable.xcstrings b/TokenExtension/Localizable.xcstrings index bc881272..2c6a5bad 100644 --- a/TokenExtension/Localizable.xcstrings +++ b/TokenExtension/Localizable.xcstrings @@ -2,13 +2,52 @@ "sourceLanguage" : "en", "strings" : { "Launch Yubico Authenticator" : { - + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lancer Yubico Authenticator" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Yubico Authenticatorを起動" + } + } + } }, "Tap here to complete the request using your YubiKey." : { - + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuyez ici pour finaliser la demande avec votre YubiKey." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ここをタップし、YubiKeyを使用してリクエストを完了します。" + } + } + } }, "YubiKey required" : { - + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKey requise" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "YubiKeyが必要です" + } + } + } } }, "version" : "1.0" diff --git a/TokenExtension/fr.lproj/InfoPlist.strings b/TokenExtension/fr.lproj/InfoPlist.strings new file mode 100644 index 00000000..51156d23 --- /dev/null +++ b/TokenExtension/fr.lproj/InfoPlist.strings @@ -0,0 +1,6 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Extension jeton"; + +/* Bundle name */ +"CFBundleName" = "Extension jeton"; + diff --git a/TokenExtension/ja.lproj/InfoPlist.strings b/TokenExtension/ja.lproj/InfoPlist.strings new file mode 100644 index 00000000..3fc77307 --- /dev/null +++ b/TokenExtension/ja.lproj/InfoPlist.strings @@ -0,0 +1,6 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "TokenExtension"; + +/* Bundle name */ +"CFBundleName" = "TokenExtension"; +