diff --git a/Sources/Packages/Localizable.xcstrings b/Sources/Packages/Localizable.xcstrings index e7f74bd..07e3026 100644 --- a/Sources/Packages/Localizable.xcstrings +++ b/Sources/Packages/Localizable.xcstrings @@ -1,9 +1,6 @@ { "sourceLanguage" : "en", "strings" : { - "Advanced" : { - - }, "agent_not_running_notice_title" : { "extractionState" : "manual", "localizations" : { @@ -1328,6 +1325,28 @@ } } }, + "create_secret_advanced_label" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Advanced" + } + } + } + }, + "create_secret_biometry_current_warning" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If you change your biometric settings in _any way_, including adding a new fingerprint, this key will no longer be accessible." + } + } + } + }, "create_secret_cancel_button" : { "extractionState" : "manual", "localizations" : { @@ -1482,6 +1501,39 @@ } } }, + "create_secret_key_attribution_description" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This shows at the end of your public key." + } + } + } + }, + "create_secret_key_attribution_label" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Key Attribution" + } + } + } + }, + "create_secret_key_type_label" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Key Type" + } + } + } + }, "create_secret_name_label" : { "extractionState" : "manual", "localizations" : { @@ -1790,6 +1842,28 @@ } } }, + "create_secret_require_authentication_biometric_current_description" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Require authentication with current set of biometrics." + } + } + } + }, + "create_secret_require_authentication_biometric_current_title" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Current Biometrics" + } + } + } + }, "create_secret_require_authentication_description" : { "extractionState" : "manual", "localizations" : { @@ -2020,9 +2094,6 @@ } } } - }, - "Current Biometrics" : { - }, "delete_confirmation_cancel_button" : { "extractionState" : "manual", @@ -2409,6 +2480,148 @@ } } }, + "edit_cancel_button" : { + "extractionState" : "manual", + "localizations" : { + "ca" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancel·la" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abbrechen" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancel" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Annuler" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Annulla" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "キャンセル" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "취소" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Anuluj" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancelar" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Отменить" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "返回" + } + } + } + }, + "edit_save_button" : { + "extractionState" : "manual", + "localizations" : { + "ca" : { + "stringUnit" : { + "state" : "translated", + "value" : "Canvia el nom" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Umbenennen" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rename" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Renommer" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rinomina" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "名前の変更" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이름 변경" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zmień nazwę" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Renomear" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Переименовать" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "重命名" + } + } + } + }, "empty_store_modifiable_click_here_description" : { "extractionState" : "manual", "localizations" : { @@ -2793,15 +3006,6 @@ } } } - }, - "If you change your biometric settings in _any way_, including adding a new fingerprint, this key will no longer be accessible." : { - - }, - "Key Attribution" : { - - }, - "Key Type" : { - }, "no_secure_storage_description" : { "extractionState" : "manual", @@ -3189,222 +3393,6 @@ } } } - }, - "rename_cancel_button" : { - "extractionState" : "manual", - "localizations" : { - "ca" : { - "stringUnit" : { - "state" : "translated", - "value" : "Cancel·la" - } - }, - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Abbrechen" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Cancel" - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Annuler" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Annulla" - } - }, - "ja" : { - "stringUnit" : { - "state" : "translated", - "value" : "キャンセル" - } - }, - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "취소" - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Anuluj" - } - }, - "pt-BR" : { - "stringUnit" : { - "state" : "translated", - "value" : "Cancelar" - } - }, - "ru" : { - "stringUnit" : { - "state" : "translated", - "value" : "Отменить" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "返回" - } - } - } - }, - "rename_rename_button" : { - "extractionState" : "manual", - "localizations" : { - "ca" : { - "stringUnit" : { - "state" : "translated", - "value" : "Canvia el nom" - } - }, - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Umbenennen" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Rename" - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Renommer" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Rinomina" - } - }, - "ja" : { - "stringUnit" : { - "state" : "translated", - "value" : "名前の変更" - } - }, - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이름 변경" - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Zmień nazwę" - } - }, - "pt-BR" : { - "stringUnit" : { - "state" : "translated", - "value" : "Renomear" - } - }, - "ru" : { - "stringUnit" : { - "state" : "translated", - "value" : "Переименовать" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "重命名" - } - } - } - }, - "rename_title" : { - "extractionState" : "manual", - "localizations" : { - "ca" : { - "stringUnit" : { - "state" : "translated", - "value" : "Escriu el nou nom per a %1$(secretName)@ baix." - } - }, - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Gib einen neuen Namen für %1$(secretName)@ ein." - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Type your new name for %1$(secretName)@ below." - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Saisissez votre nouveau nom pour %1$(secretName)@ ci-dessous." - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Digita qui sotto il nuovo nome per %1$(secretName)@." - } - }, - "ja" : { - "stringUnit" : { - "state" : "translated", - "value" : "%1$(secretName)@の新しい名前を入力してください。" - } - }, - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "아래에 %1$(secretName)@의 새 이름을 입력하세요." - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Wprowadź nową nazwę dla %1$(secretName)@ poniżej." - } - }, - "pt-BR" : { - "stringUnit" : { - "state" : "translated", - "value" : "Digite o novo nome para %1$(secretName)@ abaixo." - } - }, - "ru" : { - "stringUnit" : { - "state" : "translated", - "value" : "Введите новое название для \"%1$(secretName)@\" ниже." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "在此输入密钥串 %1$(secretName)@ 的新名字。" - } - } - } - }, - "Require authentication with current set of biometrics." : { - }, "secret_detail_md5_fingerprint_label" : { "extractionState" : "manual", @@ -5200,12 +5188,6 @@ } } } - }, - "test@example.com" : { - - }, - "This shows at the end of your public key." : { - }, "unnamed_secret" : { "extractionState" : "manual", diff --git a/Sources/Secretive/Views/CreateSecretView.swift b/Sources/Secretive/Views/CreateSecretView.swift index 918301c..573e44d 100644 --- a/Sources/Secretive/Views/CreateSecretView.swift +++ b/Sources/Secretive/Views/CreateSecretView.swift @@ -38,7 +38,7 @@ struct CreateSecretView: View { Text(.createSecretRequireAuthenticationTitle) case .biometryCurrent: Image(systemName: "lock.trianglebadge.exclamationmark.fill") - Text("Current Biometrics") + Text(.createSecretRequireAuthenticationBiometricCurrentTitle) case .unknown: EmptyView() } @@ -53,7 +53,7 @@ struct CreateSecretView: View { case .presenceRequired: Text(.createSecretRequireAuthenticationDescription) case .biometryCurrent: - Text("Require authentication with current set of biometrics.") + Text(.createSecretRequireAuthenticationBiometricCurrentDescription) case .unknown: EmptyView() } @@ -61,7 +61,7 @@ struct CreateSecretView: View { .font(.subheadline) .foregroundStyle(.secondary) if authenticationRequirement == .biometryCurrent { - Text("If you change your biometric settings in _any way_, including adding a new fingerprint, this key will no longer be accessible.") + Text(.createSecretBiometryCurrentWarning) .padding(.horizontal, 10) .padding(.vertical, 3) .background(.red.opacity(0.5), in: RoundedRectangle(cornerRadius: 5)) @@ -72,7 +72,7 @@ struct CreateSecretView: View { if advanced { Section { VStack { - Picker("Key Type", selection: $keyType) { + Picker(.createSecretKeyTypeLabel, selection: $keyType) { ForEach(store.supportedKeyTypes, id: \.self) { option in Text(String(describing: option)) .tag(option) @@ -81,8 +81,8 @@ struct CreateSecretView: View { } } VStack(alignment: .leading) { - TextField("Key Attribution", text: $keyAttribution, prompt: Text("test@example.com")) - Text("This shows at the end of your public key.") + TextField(.createSecretKeyAttributionLabel, text: $keyAttribution, prompt: Text(verbatim: "test@example.com")) + Text(.createSecretKeyAttributionDescription) .font(.subheadline) .foregroundStyle(.secondary) } @@ -90,7 +90,7 @@ struct CreateSecretView: View { } } HStack { - Toggle("Advanced", isOn: $advanced) + Toggle(.createSecretAdvancedLabel, isOn: $advanced) .toggleStyle(.button) Spacer() Button(.createSecretCancelButton, role: .cancel) { diff --git a/Sources/Secretive/Views/EditSecretView.swift b/Sources/Secretive/Views/EditSecretView.swift index ab9f8b4..a4a7cba 100644 --- a/Sources/Secretive/Views/EditSecretView.swift +++ b/Sources/Secretive/Views/EditSecretView.swift @@ -24,18 +24,18 @@ struct EditSecretView: View { Section { TextField(String(localized: .createSecretNameLabel), text: $name, prompt: Text(.createSecretNamePlaceholder)) VStack(alignment: .leading) { - TextField("Key Attribution", text: $publicKeyAttribution, prompt: Text("test@example.com")) - Text("This shows at the end of your public key.") + TextField(.createSecretKeyAttributionLabel, text: $publicKeyAttribution, prompt: Text(verbatim: "test@example.com")) + Text(.createSecretKeyAttributionDescription) .font(.subheadline) .foregroundStyle(.secondary) } } } HStack { - Button(.renameRenameButton, action: rename) + Button(.editSaveButton, action: rename) .disabled(name.isEmpty) .keyboardShortcut(.return) - Button(.renameCancelButton) { + Button(.editCancelButton) { dismissalBlock(false) }.keyboardShortcut(.cancelAction) }