0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-04-14 23:11:31 -05:00

chore(console,phrases): add mfa experience phrases ()

This commit is contained in:
Xiao Yijun 2023-09-22 14:14:47 +08:00 committed by GitHub
parent 202103b71f
commit cff6f4344a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
63 changed files with 934 additions and 15 deletions

View file

@ -2,6 +2,10 @@ import type { LanguageTag } from '@logto/language-kit';
import { languages as uiLanguageNameMapping } from '@logto/language-kit';
import resource, { isBuiltInLanguageTag } from '@logto/phrases-experience';
import en from '@logto/phrases-experience/lib/locales/en';
import {
type LocalePhraseGroupKey,
type LocalePhraseKey,
} from '@logto/phrases-experience/lib/types';
import type { SignInExperience, Translation } from '@logto/schemas';
import cleanDeep from 'clean-deep';
import deepmerge from 'deepmerge';
@ -23,6 +27,10 @@ import { Tooltip } from '@/ds-components/Tip';
import useApi, { RequestError } from '@/hooks/use-api';
import useSwrFetcher from '@/hooks/use-swr-fetcher';
import useUiLanguages from '@/hooks/use-ui-languages';
import {
hiddenLocalePhraseGroups,
hiddenLocalePhrases,
} from '@/pages/SignInExperience/utils/constants';
import {
createEmptyUiTranslation,
flattenTranslation,
@ -47,12 +55,29 @@ function LanguageDetails() {
const fetchApi = useApi({ hideErrorToast: true });
const fetcher = useSwrFetcher<CustomPhraseResponse>(fetchApi);
const translationEntries = useMemo(
const translationData = useMemo(
() =>
Object.entries((isBuiltIn ? resource[selectedLanguage] : en).translation).filter(
// Filter out the demo app phrases in AC
([groupKey]) => groupKey !== 'demo_app'
),
Object.entries((isBuiltIn ? resource[selectedLanguage] : en).translation)
.filter(
// eslint-disable-next-line no-restricted-syntax
([groupKey]) => !hiddenLocalePhraseGroups.includes(groupKey as LocalePhraseGroupKey)
)
.map(([groupKey, value]) => ({
key: groupKey,
label: groupKey,
labelClassName: styles.sectionTitle,
data: Object.entries(flattenTranslation(value))
.filter(
([phraseKey]) =>
// eslint-disable-next-line no-restricted-syntax
!hiddenLocalePhrases.includes(`${groupKey}.${phraseKey}` as LocalePhraseKey)
)
.map(([phraseKey, value]) => ({
phraseKey,
sourceValue: value,
fieldKey: `${groupKey}.${phraseKey}`,
})),
})),
[isBuiltIn, selectedLanguage]
);
@ -196,16 +221,7 @@ function LanguageDetails() {
headerTableClassName={styles.tableWrapper}
bodyTableWrapperClassName={styles.tableWrapper}
rowIndexKey="phraseKey"
rowGroups={translationEntries.map(([groupKey, value]) => ({
key: groupKey,
label: groupKey,
labelClassName: styles.sectionTitle,
data: Object.entries(flattenTranslation(value)).map(([phraseKey, value]) => ({
phraseKey,
sourceValue: value,
fieldKey: `${groupKey}.${phraseKey}`,
})),
}))}
rowGroups={translationData}
columns={[
{
title: t('sign_in_exp.content.manage_language.key'),

View file

@ -0,0 +1,24 @@
import {
type LocalePhraseGroupKey,
type LocalePhraseKey,
} from '@logto/phrases-experience/lib/types';
import { conditionalArray } from '@silverhand/essentials';
import { isDevFeaturesEnabled } from '@/consts/env';
export const hiddenLocalePhraseGroups: readonly LocalePhraseGroupKey[] = [
'demo_app',
...conditionalArray(!isDevFeaturesEnabled && 'mfa'),
];
export const hiddenLocalePhrases: readonly LocalePhraseKey[] = [
...conditionalArray(
!isDevFeaturesEnabled &&
([
'action.copy',
'action.verify_via_passkey',
'action.download',
'input.backup_code',
] satisfies LocalePhraseKey[])
),
];

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: 'Andere Telefonnummer verknüpfen',
link_another_email_or_phone: 'Andere Email oder Telefonnummer verknüpfen',
show_password: 'Passwort anzeigen',
copy: 'Kopieren',
verify_via_passkey: 'Überprüfen über Passkey',
download: 'Herunterladen',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const de = {
@ -17,6 +18,7 @@ const de = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: 'Telefonnummer',
confirm_password: 'Passwort bestätigen',
search_region_code: 'Suche region code',
backup_code: 'Backup-Code',
};
export default Object.freeze(input);

View file

@ -0,0 +1,54 @@
const mfa = {
totp: 'Authenticator-App OTP',
webauthn: 'Passwort-Schlüssel',
backup_code: 'Backup-Code',
link_totp_description: 'Verknüpfen Sie Google Authenticator usw',
link_webauthn_description: 'Verknüpfen Sie Ihr Gerät oder USB-Hardware',
link_backup_code_description: 'Backup-Code generieren',
verify_totp_description: 'Geben Sie den einmaligen Code in der App ein',
verify_webauthn_description: 'Verifizieren Sie Ihr Gerät oder USB-Hardware',
verify_backup_code_description: 'Fügen Sie den gespeicherten Backup-Code ein',
add_mfa_factors: '2-Stufen-Authentifizierung hinzufügen',
add_mfa_description:
'Die Zwei-Faktor-Authentifizierung ist aktiviert. Wählen Sie Ihre zweite Verifizierungsmethode für sichere Anmeldung an.',
verify_mfa_factors: '2-Stufen-Authentifizierung',
verify_mfa_description:
'Für dieses Konto wurde die 2-Stufen-Authentifizierung aktiviert. Bitte wählen Sie die zweite Methode zur Verifizierung Ihrer Identität.',
add_authenticator_app: 'Authenticator-App hinzufügen',
step: 'Schritt {{step, number}}: {{content}}',
scan_qr_code: 'Scannen Sie diesen QR-Code',
scan_qr_code_description:
'Scannen Sie diesen QR-Code mit Ihrer Authenticator-App, wie Google Authenticator, Duo Mobile, Authy, usw.',
qr_code_not_available: 'QR-Code nicht verfügbar?',
copy_and_paste_key: 'Schlüssel kopieren und einfügen',
copy_and_paste_key_description:
'Fügen Sie diesen Schlüssel in Ihre Authenticator-App ein, wie Google Authenticator, Duo Mobile, Authy, usw.',
want_to_scan_qr_code: 'Möchten Sie den QR-Code scannen?',
enter_one_time_code: 'Einmaligen Code eingeben',
enter_one_time_code_link_description:
'Geben Sie den 6-stelligen Verifizierungscode ein, der von der Authenticator-App generiert wurde.',
enter_one_time_code_description:
'Für dieses Konto wurde die 2-Stufen-Authentifizierung aktiviert. Bitte geben Sie den einmaligen Code ein, der in Ihrer verknüpften Authenticator-App angezeigt wird.',
link_another_mfa_factor: 'Weitere 2-Stufen-Authentifizierung verknüpfen',
save_backup_code: 'Backup-Code speichern',
save_backup_code_description:
'Sie können einen dieser Backup-Codes verwenden, um auf Ihr Konto zuzugreifen, wenn Sie Probleme bei der 2-Stufen-Authentifizierung auf andere Weise haben. Jeder Code kann nur einmal verwendet werden.',
backup_code_hint:
'Stellen Sie sicher, dass Sie sie kopieren und an einem sicheren Ort aufbewahren.',
enter_backup_code_description:
'Geben Sie den Backup-Code ein, den Sie gespeichert haben, als die 2-Stufen-Authentifizierung ursprünglich aktiviert wurde.',
create_a_passkey: 'Passwort-Schlüssel erstellen',
create_passkey_description:
'Registrieren Sie einen Passwort-Schlüssel zur Verifizierung über Ihr Gerätepasswort oder Biometrie, scannen Sie den QR-Code oder verwenden Sie eine USB-Sicherheitsschlüssel wie YubiKey.',
name_your_passkey: 'Benennen Sie Ihren Passwort-Schlüssel',
name_passkey_description:
'Sie haben dieses Gerät erfolgreich für die 2-Stufen-Authentifizierung verifiziert. Passen Sie den Namen an, um ihn bei mehreren Schlüsseln zu erkennen.',
try_another_verification_method: 'Versuchen Sie eine andere Verifizierungsmethode',
verify_via_passkey: 'Über Passwort-Schlüssel verifizieren',
verify_via_passkey_description:
'Verwenden Sie den Passwort-Schlüssel zur Verifizierung über Ihr Gerätepasswort oder Biometrie, scannen Sie den QR-Code oder verwenden Sie eine USB-Sicherheitsschlüssel wie YubiKey.',
secret_key_copied: 'Geheimer Schlüssel kopiert.',
backup_code_copied: 'Sicherungscode kopiert.',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: 'Link another phone',
link_another_email_or_phone: 'Link another email or phone',
show_password: 'Show password',
copy: 'Copy',
verify_via_passkey: 'Verify via passkey',
download: 'Download',
};
export default Object.freeze(action);

View file

@ -4,6 +4,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const en = {
@ -15,6 +16,7 @@ const en = {
error,
demo_app,
list,
mfa,
},
};

View file

@ -5,6 +5,7 @@ const input = {
phone_number: 'Phone number',
confirm_password: 'Confirm password',
search_region_code: 'Search region code',
backup_code: 'Backup code',
};
export default Object.freeze(input);

View file

@ -0,0 +1,53 @@
const mfa = {
totp: 'Authenticator app OTP',
webauthn: 'Passkey',
backup_code: 'Backup code',
link_totp_description: 'Link google authenticator, etc.',
link_webauthn_description: 'Link your device or USB hardware',
link_backup_code_description: 'Generate a backup code',
verify_totp_description: 'Enter the one-time code in app',
verify_webauthn_description: 'Verify your device or USB hardware',
verify_backup_code_description: 'Paste the backup code you saved',
add_mfa_factors: 'Add 2-step authentication',
add_mfa_description:
'Two-factor authentication is enabled. Select your second verification method for secure account sign-in.',
verify_mfa_factors: '2-step authentication',
verify_mfa_description:
'2-step authentication has been enabled for this account. Please select the second way to verify your identity.',
add_authenticator_app: 'Add authenticator app',
step: 'Step {{step, number}}: {{content}}',
scan_qr_code: 'Scan this QR code',
scan_qr_code_description:
'Scan using your authenticator app, like Google Authenticator, Duo mobile, Authy, etc.',
qr_code_not_available: 'Cant scan the QR code?',
copy_and_paste_key: 'Copy and paste the key',
copy_and_paste_key_description:
'Paste blow key to your authenticator app, like Google Authenticator, Duo mobile, Authy, etc.',
want_to_scan_qr_code: 'Want to scan QR code?',
enter_one_time_code: 'Enter the one-time code',
enter_one_time_code_link_description:
'Enter the 6-digit verification code generated by the authenticator app.',
enter_one_time_code_description:
'2-step authentication has been enabled for this account. Please enter the one-time code see on your authenticator app linked.',
link_another_mfa_factor: 'Link another 2-step authentication',
save_backup_code: 'Save your backup code',
save_backup_code_description:
'You can use one of these backup code to access your account if you have trouble during 2-step authentication in another ways. Each code may be used only once.',
backup_code_hint: 'Make sure copy them and save in a safe place.',
enter_backup_code_description:
'Enter the backup code you saved when the 2-step authentication was initially enabled.',
create_a_passkey: 'Create a passkey',
create_passkey_description:
'Register a passkey to verify by your device password or biometrics, scanning QR code, or using USB security key like YubiKey.',
name_your_passkey: 'Name your passkey',
name_passkey_description:
'You have successfully verified this device for 2-step authentication. Customize the name to recognize if you have multiple keys.',
try_another_verification_method: 'Try another method to verify',
verify_via_passkey: 'Verify via passkey',
verify_via_passkey_description:
'Use passkey to verify by your device password or biometrics, scanning QR code, or using USB security key like YubiKey.',
secret_key_copied: 'Secret key copied.',
backup_code_copied: 'Backup code copied.',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: 'Vincular otro número de teléfono',
link_another_email_or_phone: 'Vincular otro correo electrónico o número de teléfono',
show_password: 'Mostrar contraseña',
copy: 'Copiar',
verify_via_passkey: 'Verificar mediante clave de acceso',
download: 'Descargar',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const es = {
@ -17,6 +18,7 @@ const es = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: 'Número de teléfono',
confirm_password: 'Confirmar contraseña',
search_region_code: 'Código de región de búsqueda',
backup_code: 'Código de respaldo',
};
export default Object.freeze(input);

View file

@ -0,0 +1,53 @@
const mfa = {
totp: 'OTP de la aplicación autenticadora',
webauthn: 'Clave de acceso',
backup_code: 'Código de respaldo',
link_totp_description: 'Vincular Google Authenticator, etc.',
link_webauthn_description: 'Vincular su dispositivo o hardware USB',
link_backup_code_description: 'Generar un código de respaldo',
verify_totp_description: 'Ingrese el código de un solo uso en la aplicación',
verify_webauthn_description: 'Verifique su dispositivo o hardware USB',
verify_backup_code_description: 'Pegue el código de respaldo que guardó',
add_mfa_factors: 'Agregar autenticación de 2 pasos',
add_mfa_description:
'La autenticación de dos factores está habilitada. Seleccione su segunda forma de verificación para iniciar sesión de forma segura en su cuenta.',
verify_mfa_factors: 'Autenticación de 2 pasos',
verify_mfa_description:
'Se ha habilitado la autenticación de dos pasos para esta cuenta. Seleccione la segunda forma de verificar su identidad.',
add_authenticator_app: 'Agregar aplicación autenticadora',
step: 'Paso {{step, number}}: {{content}}',
scan_qr_code: 'Escanear este código QR',
scan_qr_code_description:
'Escanee este código QR con su aplicación autenticadora, como Google Authenticator, Duo Mobile, Authy, etc.',
qr_code_not_available: '¿No puede escanear el código QR?',
copy_and_paste_key: 'Copiar y pegar la clave',
copy_and_paste_key_description:
'Pegue la clave a continuación en su aplicación autenticadora, como Google Authenticator, Duo Mobile, Authy, etc.',
want_to_scan_qr_code: '¿Desea escanear el código QR?',
enter_one_time_code: 'Ingrese el código de un solo uso',
enter_one_time_code_link_description:
'Ingrese el código de verificación de 6 dígitos generado por la aplicación autenticadora.',
enter_one_time_code_description:
'Se ha habilitado la autenticación de dos pasos para esta cuenta. Ingrese el código de un solo uso que ve en su aplicación autenticadora vinculada.',
link_another_mfa_factor: 'Vincular otro método de autenticación de 2 pasos',
save_backup_code: 'Guardar su código de respaldo',
save_backup_code_description:
'Puede usar uno de estos códigos de respaldo para acceder a su cuenta si tiene problemas durante la autenticación de dos pasos de otras formas. Cada código solo se puede usar una vez.',
backup_code_hint: 'Asegúrese de copiarlos y guardarlos en un lugar seguro.',
enter_backup_code_description:
'Ingrese el código de respaldo que guardó cuando se habilitó inicialmente la autenticación de dos pasos.',
create_a_passkey: 'Crear una clave de acceso',
create_passkey_description:
'Registre una clave de acceso para verificar mediante la contraseña de su dispositivo o biometría, escanee el código QR o use una llave de seguridad USB como YubiKey.',
name_your_passkey: 'Nombre de su clave de acceso',
name_passkey_description:
'Ha verificado con éxito este dispositivo para la autenticación de 2 pasos. Personalice el nombre para reconocerlo si tiene varias claves.',
try_another_verification_method: 'Pruebe otro método de verificación',
verify_via_passkey: 'Verificar mediante clave de acceso',
verify_via_passkey_description:
'Use la clave de acceso para verificar mediante la contraseña de su dispositivo o biometría, escanee el código QR o use una llave de seguridad USB como YubiKey.',
secret_key_copied: 'Clave secreta copiada.',
backup_code_copied: 'Código de respaldo copiado.',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: 'Lier un autre numéro de téléphone',
link_another_email_or_phone: 'Lier une autre adresse e-mail ou un autre numéro de téléphone',
show_password: 'Afficher le mot de passe',
copy: 'Copier',
verify_via_passkey: "Vérifier via la clé d'accès",
download: 'Télécharger',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const fr = {
@ -17,6 +18,7 @@ const fr = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: 'Numéro de téléphone',
confirm_password: 'Confirmer le mot de passe',
search_region_code: 'Rechercher le code de région',
backup_code: 'Code de sauvegarde',
};
export default Object.freeze(input);

View file

@ -0,0 +1,53 @@
const mfa = {
totp: "OTP de l'application d'authentification",
webauthn: "Clé d'accès",
backup_code: 'Code de sauvegarde',
link_totp_description: 'Lier Google Authenticator, etc.',
link_webauthn_description: 'Lier votre appareil ou matériel USB',
link_backup_code_description: 'Générer un code de sauvegarde',
verify_totp_description: "Saisissez le code à usage unique dans l'application",
verify_webauthn_description: 'Vérifiez votre appareil ou matériel USB',
verify_backup_code_description: 'Collez le code de sauvegarde que vous avez enregistré',
add_mfa_factors: "Ajouter l'authentification à deux facteurs",
add_mfa_description:
"L'authentification à deux facteurs est activée. Sélectionnez votre deuxième méthode de vérification pour vous connecter en toute sécurité à votre compte.",
verify_mfa_factors: 'Authentification à deux facteurs',
verify_mfa_description:
"L'authentification à deux facteurs a été activée pour ce compte. Veuillez sélectionner la deuxième méthode pour vérifier votre identité.",
add_authenticator_app: "Ajouter une application d'authentification",
step: 'Étape {{step, number}} : {{content}}',
scan_qr_code: 'Scannez ce code QR',
scan_qr_code_description:
"Scannez ce code QR à l'aide de votre application d'authentification, telle que Google Authenticator, Duo Mobile, Authy, etc.",
qr_code_not_available: 'Impossible de scanner le code QR ?',
copy_and_paste_key: 'Copiez et collez la clé',
copy_and_paste_key_description:
"Collez la clé ci-dessous dans votre application d'authentification, telle que Google Authenticator, Duo Mobile, Authy, etc.",
want_to_scan_qr_code: 'Vous voulez scanner le code QR ?',
enter_one_time_code: 'Saisissez le code à usage unique',
enter_one_time_code_link_description:
"Saisissez le code de vérification à 6 chiffres généré par l'application d'authentification.",
enter_one_time_code_description:
"L'authentification à deux facteurs a été activée pour ce compte. Veuillez saisir le code à usage unique affiché dans votre application d'authentification liée.",
link_another_mfa_factor: "Lier un autre facteur d'authentification à deux facteurs",
save_backup_code: 'Enregistrez votre code de sauvegarde',
save_backup_code_description:
"Vous pouvez utiliser l'un de ces codes de sauvegarde pour accéder à votre compte en cas de problème lors de l'authentification à deux facteurs par d'autres moyens. Chaque code ne peut être utilisé qu'une fois.",
backup_code_hint: 'Assurez-vous de les copier et de les enregistrer dans un endroit sûr.',
enter_backup_code_description:
"Saisissez le code de sauvegarde que vous avez enregistré lors de l'activation initiale de l'authentification à deux facteurs.",
create_a_passkey: "Créez une clé d'accès",
create_passkey_description:
"Enregistrez une clé d'accès pour vérifier votre mot de passe de l'appareil ou la biométrie, numérisez le code QR ou utilisez une clé de sécurité USB telle que YubiKey.",
name_your_passkey: "Nommez votre clé d'accès",
name_passkey_description:
"Vous avez vérifié avec succès cet appareil pour l'authentification à deux facteurs. Personnalisez le nom pour le reconnaître si vous avez plusieurs clés.",
try_another_verification_method: 'Essayez une autre méthode de vérification',
verify_via_passkey: "Vérifiez via la clé d'accès",
verify_via_passkey_description:
"Utilisez la clé d'accès pour vérifier votre mot de passe de l'appareil ou la biométrie, numérisez le code QR ou utilisez une clé de sécurité USB telle que YubiKey.",
secret_key_copied: 'Clé secrète copiée.',
backup_code_copied: 'Code de sauvegarde copié.',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: 'Collega un altro numero di telefono',
link_another_email_or_phone: 'Collega un altro indirizzo email o numero di telefono',
show_password: 'Mostra password',
copy: 'Copia',
verify_via_passkey: 'Verifica tramite passkey',
download: 'Scarica',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const it = {
@ -17,6 +18,7 @@ const it = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: 'Numero di telefono',
confirm_password: 'Conferma password',
search_region_code: 'Codice regione di ricerca',
backup_code: 'Codice di backup',
};
export default Object.freeze(input);

View file

@ -0,0 +1,53 @@
const mfa = {
totp: "OTP dell'applicazione autenticatore",
webauthn: 'Chiave di accesso',
backup_code: 'Codice di backup',
link_totp_description: 'Collega Google Authenticator, ecc.',
link_webauthn_description: 'Collega il tuo dispositivo o hardware USB',
link_backup_code_description: 'Genera un codice di backup',
verify_totp_description: "Inserisci il codice monouso nell'app",
verify_webauthn_description: 'Verifica il tuo dispositivo o hardware USB',
verify_backup_code_description: 'Incolla il codice di backup che hai salvato',
add_mfa_factors: 'Aggiungi autenticazione a due fattori',
add_mfa_description:
"L'autenticazione a due fattori è attiva. Scegli il tuo secondo metodo di verifica per accedere in modo sicuro al tuo account.",
verify_mfa_factors: 'Autenticazione a due fattori',
verify_mfa_description:
"È stata attivata l'autenticazione a due fattori per questo account. Scegli il secondo modo per verificare la tua identità.",
add_authenticator_app: 'Aggiungi app autenticatore',
step: 'Passo {{step, number}}: {{content}}',
scan_qr_code: 'Scansiona questo codice QR',
scan_qr_code_description:
'Scansiona con la tua app autenticatore, come Google Authenticator, Duo Mobile, Authy, ecc.',
qr_code_not_available: 'Non riesci a scansionare il codice QR?',
copy_and_paste_key: 'Copia e incolla la chiave',
copy_and_paste_key_description:
'Incolla la chiave di seguito nella tua app autenticatore, come Google Authenticator, Duo Mobile, Authy, ecc.',
want_to_scan_qr_code: 'Vuoi scansionare il codice QR?',
enter_one_time_code: 'Inserisci il codice monouso',
enter_one_time_code_link_description:
"Inserisci il codice di verifica a 6 cifre generato dall'app autenticatore.",
enter_one_time_code_description:
"È stata attivata l'autenticazione a due fattori per questo account. Inserisci il codice monouso visualizzato nella tua app autenticatore collegata.",
link_another_mfa_factor: 'Collega un altro metodo di autenticazione a due fattori',
save_backup_code: 'Salva il codice di backup',
save_backup_code_description:
"Puoi usare uno di questi codici di backup per accedere al tuo account se incontri problemi durante l'autenticazione a due fattori in altri modi. Ogni codice può essere utilizzato solo una volta.",
backup_code_hint: 'Assicurati di copiarli e salvarli in un luogo sicuro.',
enter_backup_code_description:
"Inserisci il codice di backup che hai salvato quando è stata attivata l'autenticazione a due fattori.",
create_a_passkey: 'Crea una chiave di accesso',
create_passkey_description:
"Registra una chiave di accesso per verificarti tramite la password del dispositivo o la biometria, la scansione del codice QR o l'uso di una chiave di sicurezza USB come YubiKey.",
name_your_passkey: 'Dai un nome alla tua chiave di accesso',
name_passkey_description:
"Hai verificato con successo questo dispositivo per l'autenticazione a due fattori. Personalizza il nome per riconoscerlo se hai più chiavi.",
try_another_verification_method: 'Prova un altro metodo di verifica',
verify_via_passkey: 'Verifica tramite chiave di accesso',
verify_via_passkey_description:
"Usa la chiave di accesso per verificarti tramite la password del dispositivo o la biometria, la scansione del codice QR o l'uso di una chiave di sicurezza USB come YubiKey.",
secret_key_copied: 'Chiave segreta copiata.',
backup_code_copied: 'Codice di backup copiato.',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: '別の電話番号をリンクする',
link_another_email_or_phone: '別のメールアドレスまたは電話番号をリンクする',
show_password: 'パスワードを表示する',
copy: 'コピー',
verify_via_passkey: 'パスキー経由で確認',
download: 'ダウンロード',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const ja = {
@ -17,6 +18,7 @@ const ja = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: '電話番号',
confirm_password: 'パスワード確認',
search_region_code: '地域コード検索',
backup_code: 'バックアップコード',
};
export default Object.freeze(input);

View file

@ -0,0 +1,53 @@
const mfa = {
totp: '認証アプリOTP',
webauthn: 'パスキー',
backup_code: 'バックアップコード',
link_totp_description: 'Google Authenticatorなどをリンク',
link_webauthn_description: 'デバイスまたはUSBハードウェアをリンク',
link_backup_code_description: 'バックアップコードを生成',
verify_totp_description: 'アプリにワンタイムコードを入力',
verify_webauthn_description: 'デバイスまたはUSBハードウェアを確認',
verify_backup_code_description: '保存したバックアップコードを貼り付け',
add_mfa_factors: '2段階認証を追加',
add_mfa_description:
'2段階認証が有効です。セキュアなアカウントサインインのための第二の確認方法を選択してください。',
verify_mfa_factors: '2段階認証',
verify_mfa_description:
'このアカウントでは2段階認証が有効になっています。アイデンティティを確認するための第二の方法を選択してください。',
add_authenticator_app: '認証アプリを追加',
step: 'ステップ{{step, number}}{{content}}',
scan_qr_code: 'このQRコードをスキャン',
scan_qr_code_description:
'Google Authenticator、Duo mobile、Authyなどの認証アプリを使用して、このQRコードをスキャンしてください。',
qr_code_not_available: 'QRコードをスキャンできませんか',
copy_and_paste_key: 'キーをコピーして貼り付け',
copy_and_paste_key_description:
'以下のキーをGoogle Authenticator、Duo mobile、Authyなどの認証アプリに貼り付けてください。',
want_to_scan_qr_code: 'QRコードをスキャンしたいですか',
enter_one_time_code: 'ワンタイムコードを入力',
enter_one_time_code_link_description:
'認証アプリによって生成された6桁の確認コードを入力してください。',
enter_one_time_code_description:
'このアカウントでは2段階認証が有効になっています。リンクされた認証アプリで表示されるワンタイムコードを入力してください。',
link_another_mfa_factor: '別の2段階認証をリンク',
save_backup_code: 'バックアップコードを保存',
save_backup_code_description:
'他の方法で2段階認証中に問題が発生した場合、これらのバックアップコードのいずれかを使用してアカウントにアクセスできます。各コードは1回しか使用できません。',
backup_code_hint: 'コピーして安全な場所に保存してください。',
enter_backup_code_description:
'2段階認証が最初に有効になったときに保存したバックアップコードを入力してください。',
create_a_passkey: 'パスキーを作成',
create_passkey_description:
'デバイスのパスワードまたはバイオメトリック、QRコードのスキャン、YubiKeyなどのUSBセキュリティキーを使用して確認するためのパスキーを登録します。',
name_your_passkey: 'パスキーに名前を付ける',
name_passkey_description:
'このデバイスを2段階認証に成功裏に認証しました。複数のキーを持っている場合に識別するために名前をカスタマイズします。',
try_another_verification_method: '別の確認方法を試す',
verify_via_passkey: 'パスキーを使用して確認',
verify_via_passkey_description:
'デバイスのパスワードまたはバイオメトリック、QRコードのスキャン、YubiKeyなどのUSBセキュリティキーを使用して確認するためにパスキーを使用します。',
secret_key_copied: 'シークレットキーがコピーされました。',
backup_code_copied: 'バックアップコードがコピーされました。',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: '다른 전화번호 연동',
link_another_email_or_phone: '다른 이메일 또는 전화번호 연동',
show_password: '비밀번호 보기',
copy: '복사',
verify_via_passkey: '패스키로 확인',
download: '다운로드',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const ko = {
@ -17,6 +18,7 @@ const ko = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: '휴대전화번호',
confirm_password: '비밀번호 확인',
search_region_code: '지역 코드 검색',
backup_code: '백업 코드',
};
export default Object.freeze(input);

View file

@ -0,0 +1,51 @@
const mfa = {
totp: '인증 앱 OTP',
webauthn: '패스 키',
backup_code: '백업 코드',
link_totp_description: 'Google Authenticator 등 연결',
link_webauthn_description: '기기 또는 USB 하드웨어 연결',
link_backup_code_description: '백업 코드 생성',
verify_totp_description: '앱에 일회용 코드 입력',
verify_webauthn_description: '기기 또는 USB 하드웨어 확인',
verify_backup_code_description: '저장한 백업 코드 붙여넣기',
add_mfa_factors: '2단계 인증 추가',
add_mfa_description:
'2단계 인증이 활성화되었습니다. 안전한 계정 로그인을 위한 두 번째 인증 방법을 선택하세요.',
verify_mfa_factors: '2단계 인증',
verify_mfa_description:
'이 계정에는 2단계 인증이 활성화되었습니다. 신원을 확인할 두 번째 방법을 선택하세요.',
add_authenticator_app: '인증 앱 추가',
step: '단계 {{step, number}}: {{content}}',
scan_qr_code: '이 QR 코드 스캔',
scan_qr_code_description:
'Google Authenticator, Duo Mobile, Authy 등과 같은 인증 앱을 사용하여이 QR 코드를 스캔하세요.',
qr_code_not_available: 'QR 코드를 스캔할 수 없나요?',
copy_and_paste_key: '키 복사 및 붙여넣기',
copy_and_paste_key_description:
'아래의 키를 Google Authenticator, Duo Mobile, Authy 등과 같은 인증 앱에 붙여넣으세요.',
want_to_scan_qr_code: 'QR 코드를 스캔하고 싶나요?',
enter_one_time_code: '일회용 코드 입력',
enter_one_time_code_link_description: '인증 앱에서 생성된 6 자리 확인 코드를 입력하세요.',
enter_one_time_code_description:
'이 계정에는 2단계 인증이 활성화되었습니다. 연결된 인증 앱에서 표시되는 일회용 코드를 입력하세요.',
link_another_mfa_factor: '다른 2단계 인증 연결',
save_backup_code: '백업 코드 저장',
save_backup_code_description:
'다른 방법으로 2단계 인증 중 문제가 발생하는 경우 이러한 백업 코드 중 하나를 사용하여 계정에 액세스할 수 있습니다. 각 코드는 한 번만 사용할 수 있습니다.',
backup_code_hint: '복사하고 안전한 장소에 저장해야 합니다.',
enter_backup_code_description: '2단계 인증이 처음에 활성화될 때 저장한 백업 코드를 입력하세요.',
create_a_passkey: '패스키 생성',
create_passkey_description:
'디바이스 비밀번호 또는 생체 인증, QR 코드 스캔 또는 YubiKey와 같은 USB 보안 키를 사용하여 확인할 패스키를 등록하세요.',
name_your_passkey: '패스키 이름 지정',
name_passkey_description:
'이 디바이스를 2단계 인증을 위해 성공적으로 확인했습니다. 여러 개의 키를 가지고 있는 경우 구분하기 위해 이름을 사용자 정의하세요.',
try_another_verification_method: '다른 확인 방법 시도',
verify_via_passkey: '패스키를 사용하여 확인',
verify_via_passkey_description:
'디바이스 비밀번호 또는 생체 인증, QR 코드 스캔 또는 YubiKey와 같은 USB 보안 키를 사용하여 확인하기 위해 패스키를 사용하세요.',
secret_key_copied: '비밀 키 복사됨.',
backup_code_copied: '백업 코드 복사됨.',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: 'Połącz inne konto telefoniczne',
link_another_email_or_phone: 'Połącz inne konto email lub telefoniczne',
show_password: 'Pokaż hasło',
copy: 'Kopiuj',
verify_via_passkey: 'Weryfikacja za pomocą klucza dostępu',
download: 'Pobierz',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const pl_pl = {
@ -17,6 +18,7 @@ const pl_pl = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: 'Numer telefonu',
confirm_password: 'Potwierdź hasło',
search_region_code: 'Kod regionu wyszukiwania',
backup_code: 'Kod kopii zapasowej',
};
export default Object.freeze(input);

View file

@ -0,0 +1,53 @@
const mfa = {
totp: 'OTP aplikacji autentykacyjnej',
webauthn: 'Klucz dostępu',
backup_code: 'Kod zapasowy',
link_totp_description: 'Połącz Google Authenticator itp',
link_webauthn_description: 'Połącz swoje urządzenie lub sprzęt USB',
link_backup_code_description: 'Wygeneruj kod zapasowy',
verify_totp_description: 'Wprowadź jednorazowy kod w aplikacji',
verify_webauthn_description: 'Zweryfikuj swoje urządzenie lub sprzęt USB',
verify_backup_code_description: 'Wklej kod zapasowy, który zachowałeś',
add_mfa_factors: 'Dodaj autoryzację dwuetapową',
add_mfa_description:
'Autoryzacja dwuetapowa jest włączona. Wybierz swój drugi sposób weryfikacji, aby bezpiecznie zalogować się na swoje konto.',
verify_mfa_factors: 'Autoryzacja dwuetapowa',
verify_mfa_description:
'Dla tego konta włączono autoryzację dwuetapową. Wybierz drugi sposób weryfikacji swojej tożsamości.',
add_authenticator_app: 'Dodaj aplikację autentykacyjną',
step: 'Krok {{step, number}}: {{content}}',
scan_qr_code: 'Zeskanuj ten kod QR',
scan_qr_code_description:
'Zeskanuj ten kod QR za pomocą swojej aplikacji autentykacyjnej, takiej jak Google Authenticator, Duo Mobile, Authy itp.',
qr_code_not_available: 'Nie możesz zeskanować kodu QR?',
copy_and_paste_key: 'Skopiuj i wklej klucz',
copy_and_paste_key_description:
'Wklej poniższy klucz do swojej aplikacji autentykacyjnej, takiej jak Google Authenticator, Duo Mobile, Authy itp.',
want_to_scan_qr_code: 'Chcesz zeskanować kod QR?',
enter_one_time_code: 'Wprowadź jednorazowy kod',
enter_one_time_code_link_description:
'Wprowadź 6-cyfrowy kod weryfikacyjny wygenerowany przez aplikację autentykacyjną.',
enter_one_time_code_description:
'Dla tego konta włączono autoryzację dwuetapową. Wprowadź jednorazowy kod widoczny w połączonej aplikacji autentykacyjnej.',
link_another_mfa_factor: 'Połącz inne urządzenie autentykacyjne dwuetapowe',
save_backup_code: 'Zachowaj swój kod zapasowy',
save_backup_code_description:
'Możesz użyć jednego z tych kodów zapasowych, aby uzyskać dostęp do swojego konta, jeśli wystąpią problemy podczas autoryzacji dwuetapowej innymi sposobami. Każdy kod można użyć tylko raz.',
backup_code_hint: 'Upewnij się, że je skopiujesz i zachowasz w bezpiecznym miejscu.',
enter_backup_code_description:
'Wprowadź kod zapasowy, który zachowałeś, gdy początkowo włączono autoryzację dwuetapową.',
create_a_passkey: 'Utwórz klucz dostępu',
create_passkey_description:
'Zarejestruj klucz dostępu do weryfikacji za pomocą hasła urządzenia lub biometrii, skanowania kodu QR lub użycia klucza bezpieczeństwa USB, takiego jak YubiKey.',
name_your_passkey: 'Nadaj swojemu kluczowi dostępu nazwę',
name_passkey_description:
'Pomyślnie zweryfikowałeś to urządzenie do autoryzacji dwuetapowej. Dostosuj nazwę, aby rozpoznać go, jeśli masz wiele kluczy.',
try_another_verification_method: 'Wypróbuj inny sposób weryfikacji',
verify_via_passkey: 'Weryfikacja za pomocą klucza dostępu',
verify_via_passkey_description:
'Użyj klucza dostępu do weryfikacji za pomocą hasła urządzenia lub biometrii, skanowania kodu QR lub użycia klucza bezpieczeństwa USB, takiego jak YubiKey.',
secret_key_copied: 'Skopiowano klucz prywatny.',
backup_code_copied: 'Skopiowano kod zapasowy.',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: 'Vincular outro telefone',
link_another_email_or_phone: 'Vincular outro e-mail ou telefone',
show_password: 'Mostrar senha',
copy: 'Copiar',
verify_via_passkey: 'Verificar via chave de acesso',
download: 'Baixar',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const pt_br = {
@ -17,6 +18,7 @@ const pt_br = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: 'Número de telefone',
confirm_password: 'Confirme a senha',
search_region_code: 'Pesquisar código de região',
backup_code: 'Código de backup',
};
export default Object.freeze(input);

View file

@ -0,0 +1,53 @@
const mfa = {
totp: 'OTP do aplicativo autenticador',
webauthn: 'Chave de acesso',
backup_code: 'Código de backup',
link_totp_description: 'Vincule o Google Authenticator, etc.',
link_webauthn_description: 'Vincule seu dispositivo ou hardware USB',
link_backup_code_description: 'Gere um código de backup',
verify_totp_description: 'Digite o código de uso único no aplicativo',
verify_webauthn_description: 'Verifique seu dispositivo ou hardware USB',
verify_backup_code_description: 'Cole o código de backup que você salvou',
add_mfa_factors: 'Adicionar autenticação em duas etapas',
add_mfa_description:
'A autenticação em duas etapas está ativada. Selecione seu segundo método de verificação para acessar sua conta com segurança.',
verify_mfa_factors: 'Autenticação em duas etapas',
verify_mfa_description:
'A autenticação em duas etapas foi ativada para esta conta. Selecione a segunda forma de verificar sua identidade.',
add_authenticator_app: 'Adicionar aplicativo autenticador',
step: 'Etapa {{step, number}}: {{content}}',
scan_qr_code: 'Escanear este código QR',
scan_qr_code_description:
'Escaneie este código QR usando seu aplicativo autenticador, como o Google Authenticator, Duo Mobile, Authy, etc.',
qr_code_not_available: 'Não consegue escanear o código QR?',
copy_and_paste_key: 'Copiar e colar a chave',
copy_and_paste_key_description:
'Cole a chave abaixo no seu aplicativo autenticador, como o Google Authenticator, Duo Mobile, Authy, etc.',
want_to_scan_qr_code: 'Quer escanear o código QR?',
enter_one_time_code: 'Digite o código de uso único',
enter_one_time_code_link_description:
'Digite o código de verificação de 6 dígitos gerado pelo aplicativo autenticador.',
enter_one_time_code_description:
'A autenticação em duas etapas foi ativada para esta conta. Por favor, insira o código de uso único exibido no seu aplicativo autenticador vinculado.',
link_another_mfa_factor: 'Vincular outro método de autenticação em duas etapas',
save_backup_code: 'Salve seu código de backup',
save_backup_code_description:
'Você pode usar um desses códigos de backup para acessar sua conta se tiver problemas durante a autenticação em duas etapas de outras maneiras. Cada código só pode ser usado uma vez.',
backup_code_hint: 'Certifique-se de copiá-los e salvá-los em um local seguro.',
enter_backup_code_description:
'Digite o código de backup que você salvou quando a autenticação em duas etapas foi ativada pela primeira vez.',
create_a_passkey: 'Criar uma chave de acesso',
create_passkey_description:
'Registre uma chave de acesso para verificar por meio da senha do seu dispositivo ou biometria, escaneando o código QR ou usando uma chave de segurança USB como a YubiKey.',
name_your_passkey: 'Nomeie sua chave de acesso',
name_passkey_description:
'Você verificou com sucesso este dispositivo para autenticação em duas etapas. Personalize o nome para reconhecê-lo se tiver várias chaves.',
try_another_verification_method: 'Tente outro método de verificação',
verify_via_passkey: 'Verificar via chave de acesso',
verify_via_passkey_description:
'Use a chave de acesso para verificar por meio da senha do seu dispositivo ou biometria, escaneando o código QR ou usando uma chave de segurança USB como a YubiKey.',
secret_key_copied: 'Chave secreta copiada.',
backup_code_copied: 'Código de backup copiado.',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: 'Vincular outro telefone',
link_another_email_or_phone: 'Vincular outro email ou telefone',
show_password: 'Mostrar palavra-passe',
copy: 'Copiar',
verify_via_passkey: 'Verificar através de chave de acesso',
download: 'Transferir',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const pt_pt = {
@ -17,6 +18,7 @@ const pt_pt = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: 'Telefone',
confirm_password: 'Confirmar palavra-passe',
search_region_code: 'Procurar código de região',
backup_code: 'Código de backup',
};
export default Object.freeze(input);

View file

@ -0,0 +1,53 @@
const mfa = {
totp: 'OTP da aplicação autenticadora',
webauthn: 'Chave de acesso',
backup_code: 'Código de backup',
link_totp_description: 'Ligar o Google Authenticator, etc.',
link_webauthn_description: 'Ligar o seu dispositivo ou hardware USB',
link_backup_code_description: 'Gerar um código de backup',
verify_totp_description: 'Introduza o código de utilização única na aplicação',
verify_webauthn_description: 'Verifique o seu dispositivo ou hardware USB',
verify_backup_code_description: 'Cole o código de backup que guardou',
add_mfa_factors: 'Adicionar autenticação de dois fatores',
add_mfa_description:
'A autenticação de dois fatores está ativada. Selecione o seu segundo método de verificação para fazer login na sua conta com segurança.',
verify_mfa_factors: 'Autenticação de dois fatores',
verify_mfa_description:
'A autenticação de dois fatores foi ativada para esta conta. Por favor, selecione a segunda forma de verificar a sua identidade.',
add_authenticator_app: 'Adicionar aplicação autenticadora',
step: 'Passo {{step, number}}: {{content}}',
scan_qr_code: 'Digitalize este código QR',
scan_qr_code_description:
'Digitalize este código QR usando a sua aplicação autenticadora, como o Google Authenticator, Duo Mobile, Authy, etc.',
qr_code_not_available: 'Não consegue digitalizar o código QR?',
copy_and_paste_key: 'Copiar e colar a chave',
copy_and_paste_key_description:
'Cole a chave abaixo na sua aplicação autenticadora, como o Google Authenticator, Duo Mobile, Authy, etc.',
want_to_scan_qr_code: 'Quer digitalizar o código QR?',
enter_one_time_code: 'Introduza o código de utilização única',
enter_one_time_code_link_description:
'Introduza o código de verificação de 6 dígitos gerado pela aplicação autenticadora.',
enter_one_time_code_description:
'A autenticação de dois fatores foi ativada para esta conta. Por favor, introduza o código de utilização única exibido na sua aplicação autenticadora vinculada.',
link_another_mfa_factor: 'Ligar outro método de autenticação de dois fatores',
save_backup_code: 'Guarde o seu código de backup',
save_backup_code_description:
'Pode usar um destes códigos de backup para aceder à sua conta se tiver problemas durante a autenticação de dois fatores de outras formas. Cada código só pode ser usado uma vez.',
backup_code_hint: 'Certifique-se de os copiar e guardar num local seguro.',
enter_backup_code_description:
'Introduza o código de backup que guardou quando a autenticação de dois fatores foi ativada pela primeira vez.',
create_a_passkey: 'Criar uma chave de acesso',
create_passkey_description:
'Registe uma chave de acesso para verificar através da senha do seu dispositivo ou biometria, digitalizando o código QR ou utilizando uma chave de segurança USB como a YubiKey.',
name_your_passkey: 'Dê um nome à sua chave de acesso',
name_passkey_description:
'Verificou com sucesso este dispositivo para autenticação de dois fatores. Personalize o nome para o reconhecer se tiver várias chaves.',
try_another_verification_method: 'Experimente outro método de verificação',
verify_via_passkey: 'Verificar através da chave de acesso',
verify_via_passkey_description:
'Utilize a chave de acesso para verificar através da senha do seu dispositivo ou biometria, digitalizando o código QR ou utilizando uma chave de segurança USB como a YubiKey.',
secret_key_copied: 'Chave secreta copiada.',
backup_code_copied: 'Código de backup copiado.',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: 'Привязать другой номер',
link_another_email_or_phone: 'Привязать другую почту или номер',
show_password: 'Показать пароль',
copy: 'Копировать',
verify_via_passkey: 'Проверить с помощью ключа доступа',
download: 'Скачать',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const ru = {
@ -17,6 +18,7 @@ const ru = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: 'Номер телефона',
confirm_password: 'Подтверждение пароля',
search_region_code: 'Поиск кода региона',
backup_code: 'Резервный код',
};
export default Object.freeze(input);

View file

@ -0,0 +1,53 @@
const mfa = {
totp: 'OTP приложения аутентификации',
webauthn: 'Ключ доступа',
backup_code: 'Резервный код',
link_totp_description: 'Свяжите Google Authenticator и другие приложения',
link_webauthn_description: 'Свяжите ваше устройство или USB-устройство.',
link_backup_code_description: 'Сгенерируйте резервный код',
verify_totp_description: 'Введите одноразовый код в приложении',
verify_webauthn_description: 'Подтвердите ваше устройство или USB-устройство',
verify_backup_code_description: 'Вставьте резервный код, который вы сохранили',
add_mfa_factors: 'Добавьте двухфакторную аутентификацию',
add_mfa_description:
'Двухфакторная аутентификация включена. Выберите ваш второй метод верификации для безопасного входа в учетную запись.',
verify_mfa_factors: 'Двухфакторная аутентификация',
verify_mfa_description:
'Для этой учетной записи включена двухфакторная аутентификация. Пожалуйста, выберите второй способ подтверждения вашей личности.',
add_authenticator_app: 'Добавить приложение аутентификации',
step: 'Шаг {{step, number}}: {{content}}',
scan_qr_code: 'Отсканируйте этот QR-код',
scan_qr_code_description:
'Отсканируйте этот QR-код с помощью вашего приложения аутентификации, такого как Google Authenticator, Duo Mobile, Authy и т. д.',
qr_code_not_available: 'Не удается отсканировать QR-код?',
copy_and_paste_key: 'Скопируйте и вставьте ключ',
copy_and_paste_key_description:
'Вставьте следующий ключ в ваше приложение аутентификации, такое как Google Authenticator, Duo Mobile, Authy и т. д.',
want_to_scan_qr_code: 'Хотите отсканировать QR-код?',
enter_one_time_code: 'Введите одноразовый код',
enter_one_time_code_link_description:
'Введите 6-значный код верификации, сгенерированный приложением аутентификации.',
enter_one_time_code_description:
'Для этой учетной записи включена двухфакторная аутентификация. Пожалуйста, введите одноразовый код, отображаемый в вашем подключенном приложении аутентификации.',
link_another_mfa_factor: 'Свяжите другой метод двухфакторной аутентификации',
save_backup_code: 'Сохраните резервный код',
save_backup_code_description:
'Вы можете использовать один из этих резервных кодов для доступа к своей учетной записи в случае проблем при двухфакторной аутентификации другими способами. Каждый код можно использовать только один раз.',
backup_code_hint: 'Убедитесь, что вы их скопировали и сохранили в безопасном месте.',
enter_backup_code_description:
'Введите резервный код, который вы сохранили, когда двухфакторная аутентификация была включена впервые.',
create_a_passkey: 'Создайте ключ доступа',
create_passkey_description:
'Зарегистрируйте ключ доступа для верификации с помощью пароля вашего устройства или биометрии, сканирования QR-кода или использования USB-ключа безопасности, такого как YubiKey.',
name_your_passkey: 'Дайте имя вашему ключу доступа',
name_passkey_description:
'Вы успешно верифицировали это устройство для двухфакторной аутентификации. Настройте имя для его распознавания, если у вас есть несколько ключей.',
try_another_verification_method: 'Попробуйте другой метод верификации',
verify_via_passkey: 'Подтвердить через ключ доступа',
verify_via_passkey_description:
'Используйте ключ доступа для верификации с помощью пароля вашего устройства или биометрии, сканирования QR-кода или использования USB-ключа безопасности, такого как YubiKey.',
secret_key_copied: 'Секретный ключ скопирован.',
backup_code_copied: 'Резервный код скопирован.',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: 'Başka bir telefon bağla',
link_another_email_or_phone: 'Başka bir e-posta veya telefon bağlayın',
show_password: 'Şifreyi göster',
copy: 'Kopyala',
verify_via_passkey: 'Parola ile doğrula',
download: 'İndir',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const tr_tr = {
@ -17,6 +18,7 @@ const tr_tr = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: 'Telefon Numarası',
confirm_password: 'Şifreyi Doğrula',
search_region_code: 'Bölge kodunu ara',
backup_code: 'Yedek kod',
};
export default Object.freeze(input);

View file

@ -0,0 +1,53 @@
const mfa = {
totp: 'Kimlik doğrulama uygulaması OTP',
webauthn: 'Anahtar kodu',
backup_code: 'Yedek kodu',
link_totp_description: 'Google Authenticator vb. Bağlayın',
link_webauthn_description: 'Cihazınızı veya USB donanımınızı bağlayın',
link_backup_code_description: 'Yedek kodu oluşturun',
verify_totp_description: 'Uygulamadaki tek kullanımlık kodu girin',
verify_webauthn_description: 'Cihazınızı veya USB donanımınızı doğrulayın',
verify_backup_code_description: 'Kaydettiğiniz yedek kodu yapıştırın',
add_mfa_factors: '2 adımlı kimlik doğrulama ekleyin',
add_mfa_description:
'İki faktörlü kimlik doğrulama etkinleştirildi. Güvenli hesap oturumu açma için ikinci doğrulama yönteminizi seçin.',
verify_mfa_factors: '2 adımlı kimlik doğrulama',
verify_mfa_description:
'Bu hesap için iki faktörlü kimlik doğrulama etkinleştirildi. Lütfen kimliğinizi doğrulamanın ikinci yolunu seçin.',
add_authenticator_app: 'Kimlik doğrulama uygulaması ekleyin',
step: 'Adım {{step, number}}: {{content}}',
scan_qr_code: 'Bu QR kodunu tarayın',
scan_qr_code_description:
'Google Authenticator, Duo Mobile, Authy vb. gibi kimlik doğrulama uygulamanızı kullanarak bu QR kodunu tarayın.',
qr_code_not_available: 'QR kodunu tarayamıyor musunuz?',
copy_and_paste_key: 'Anahtarı kopyala ve yapıştır',
copy_and_paste_key_description:
'Aşağıdaki anahtarı Google Authenticator, Duo Mobile, Authy vb. gibi kimlik doğrulama uygulamanıza yapıştırın.',
want_to_scan_qr_code: 'QR kodunu tarımak istiyor musunuz?',
enter_one_time_code: 'Tek kullanımlık kodu girin',
enter_one_time_code_link_description:
'Kimlik doğrulama uygulaması tarafından oluşturulan 6 haneli doğrulama kodunu girin.',
enter_one_time_code_description:
'Bu hesap için iki faktörlü kimlik doğrulama etkinleştirildi. Lütfen bağlı kimlik doğrulama uygulamanızda gördüğünüz tek kullanımlık kodu girin.',
link_another_mfa_factor: 'Başka bir 2 adımlı kimlik doğrulama bağlayın',
save_backup_code: 'Yedek kodunuzu kaydedin',
save_backup_code_description:
'Başka bir şekilde iki faktörlü kimlik doğrulama sırasında sorun yaşarsanız bu yedek kodlardan birini kullanabilirsiniz. Her kod yalnızca bir kez kullanılabilir.',
backup_code_hint: 'Onları kopyalayıp güvenli bir yerde sakladığınızdan emin olun.',
enter_backup_code_description:
'İki faktörlü kimlik doğrulama ilk etkinleştirildiğinde kaydettiğiniz yedek kodu girin.',
create_a_passkey: 'Bir anahtar kodu oluşturun',
create_passkey_description:
'Cihazınızın şifresi veya biyometrisi, QR kodunu tarayarak veya YubiKey gibi bir USB güvenlik anahtarı kullanarak doğrulamak için bir anahtar kodu kaydedin.',
name_your_passkey: 'Anahtar kodunuza bir ad verin',
name_passkey_description:
'Bu cihazı başarıyla iki faktörlü kimlik doğrulama için doğruladınız. Birden fazla anahtarınız varsa tanımak için bir ad özelleştirin.',
try_another_verification_method: 'Başka bir doğrulama yöntemi deneyin',
verify_via_passkey: 'Anahtar kodu ile doğrulama',
verify_via_passkey_description:
'Cihazınızın şifresi veya biyometrisi, QR kodunu tarayarak veya YubiKey gibi bir USB güvenlik anahtarı kullanarak doğrulama için anahtar kodunu kullanın.',
secret_key_copied: 'Gizli anahtar kopyalandı.',
backup_code_copied: 'Yedek kodu kopyalandı.',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: '绑定其它手机',
link_another_email_or_phone: '绑定邮箱或手机号',
show_password: '显示密码',
copy: '复制',
verify_via_passkey: '通过 Passkey 验证',
download: '下载',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const zh_cn = {
@ -17,6 +18,7 @@ const zh_cn = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: '手机号',
confirm_password: '确认密码',
search_region_code: '搜索区域码',
backup_code: '备用码',
};
export default Object.freeze(input);

View file

@ -0,0 +1,48 @@
const mfa = {
totp: '身份验证器应用程序 OTP',
webauthn: 'Passkey',
backup_code: '备用码',
link_totp_description: '关联 Google Authenticator 等',
link_webauthn_description: '关联您的设备或 USB 硬件',
link_backup_code_description: '生成备用码',
verify_totp_description: '在应用中输入一次性代码',
verify_webauthn_description: '验证您的设备或 USB 硬件',
verify_backup_code_description: '粘贴您保存的备用码',
add_mfa_factors: '添加两步验证',
add_mfa_description: '已启用两步验证。选择第二种验证方式以安全登录您的帐户。',
verify_mfa_factors: '两步验证',
verify_mfa_description: '此帐户已启用两步验证。请选择第二种方式验证您的身份。',
add_authenticator_app: '添加身份验证器应用',
step: '步骤 {{step, number}}{{content}}',
scan_qr_code: '扫描此 QR 码',
scan_qr_code_description:
'使用身份验证器应用(如 Google Authenticator、Duo Mobile、Authy 等)扫描此 QR 码。',
qr_code_not_available: '无法扫描 QR 码?',
copy_and_paste_key: '复制并粘贴密钥',
copy_and_paste_key_description:
'将下面的密钥粘贴到您的身份验证器应用中,如 Google Authenticator、Duo Mobile、Authy 等。',
want_to_scan_qr_code: '想要扫描 QR 码吗?',
enter_one_time_code: '输入一次性代码',
enter_one_time_code_link_description: '输入身份验证器应用生成的 6 位验证码。',
enter_one_time_code_description:
'此帐户已启用两步验证。请输入您连接的身份验证器应用中显示的一次性代码。',
link_another_mfa_factor: '关联另一种两步验证方式',
save_backup_code: '保存备用码',
save_backup_code_description:
'如果您在其他方式的两步验证期间遇到问题,您可以使用这些备用码之一来访问您的帐户。每个代码只能使用一次。',
backup_code_hint: '确保复制并保存在安全的地方。',
enter_backup_code_description: '在首次启用两步验证时保存的备用码。',
create_a_passkey: '创建 Passkey',
create_passkey_description:
'注册一个 Passkey以通过设备密码或生物识别、扫描 QR 码或使用类似 YubiKey 的 USB 安全密钥进行验证。',
name_your_passkey: '为您的 Passkey 命名',
name_passkey_description: '您已成功验证此设备用于两步验证。自定义名称以识别多个密钥。',
try_another_verification_method: '尝试其他验证方法',
verify_via_passkey: '通过 Passkey 验证',
verify_via_passkey_description:
'使用 Passkey 通过设备密码或生物识别、扫描 QR 码或使用类似 YubiKey 的 USB 安全密钥进行验证。',
secret_key_copied: '已复制秘钥。',
backup_code_copied: '已复制备用码。',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: '綁定其他手機',
link_another_email_or_phone: '綁定電子郵件或手機號碼',
show_password: '顯示密碼',
copy: '複製',
verify_via_passkey: '透過 Passkey 驗證',
download: '下載',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const zh_hk = {
@ -17,6 +18,7 @@ const zh_hk = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: '手機號碼',
confirm_password: '確認密碼',
search_region_code: '搜索區域碼',
backup_code: '備用碼',
};
export default Object.freeze(input);

View file

@ -0,0 +1,48 @@
const mfa = {
totp: '身份驗證器應用程式 OTP',
webauthn: 'Passkey',
backup_code: '備用碼',
link_totp_description: '關聯 Google Authenticator 等',
link_webauthn_description: '關聯您的設備或 USB 硬件',
link_backup_code_description: '生成備用碼',
verify_totp_description: '在應用中輸入一次性代碼',
verify_webauthn_description: '驗證您的設備或 USB 硬件',
verify_backup_code_description: '粘貼您保存的備用碼',
add_mfa_factors: '添加兩步驗證',
add_mfa_description: '已啟用兩步驗證。選擇第二種驗證方式以安全登錄您的帳戶。',
verify_mfa_factors: '兩步驗證',
verify_mfa_description: '此帳戶已啟用兩步驗證。請選擇第二種方式驗證您的身份。',
add_authenticator_app: '添加身份驗證器應用程式',
step: '步驟 {{step, number}}{{content}}',
scan_qr_code: '掃描此 QR 碼',
scan_qr_code_description:
'使用身份驗證器應用程式(如 Google Authenticator、Duo Mobile、Authy 等)掃描此 QR 碼。',
qr_code_not_available: '無法掃描 QR 碼?',
copy_and_paste_key: '複製並貼上金鑰',
copy_and_paste_key_description:
'將下面的金鑰貼入您的身份驗證器應用程式,如 Google Authenticator、Duo Mobile、Authy 等。',
want_to_scan_qr_code: '想要掃描 QR 碼嗎?',
enter_one_time_code: '輸入一次性代碼',
enter_one_time_code_link_description: '輸入身份驗證器應用程式生成的 6 位數驗證碼。',
enter_one_time_code_description:
'此帳戶已啟用兩步驗證。請輸入您連接的身份驗證器應用程式中顯示的一次性代碼。',
link_another_mfa_factor: '關聯另一種兩步驗證方式',
save_backup_code: '儲存備用碼',
save_backup_code_description:
'如果您在其他方式的兩步驗證期間遇到問題,您可以使用這些備用碼之一來訪問您的帳戶。每個代碼只能使用一次。',
backup_code_hint: '確保複製並儲存在安全的地方。',
enter_backup_code_description: '在首次啟用兩步驗證時儲存的備用碼。',
create_a_passkey: '建立 Passkey',
create_passkey_description:
'註冊一個 Passkey以通過設備密碼或生物識別、掃描 QR 碼或使用類似 YubiKey 的 USB 安全金鑰進行驗證。',
name_your_passkey: '為您的 Passkey 命名',
name_passkey_description: '您已成功驗證此設備用於兩步驗證。自訂名稱以識別多個金鑰。',
try_another_verification_method: '嘗試其他驗證方法',
verify_via_passkey: '通過 Passkey 驗證',
verify_via_passkey_description:
'使用 Passkey 通過設備密碼或生物識別、掃描 QR 碼或使用類似 YubiKey 的 USB 安全金鑰進行驗證。',
secret_key_copied: '已複製秘密金鑰。',
backup_code_copied: '已複製備用碼。',
};
export default Object.freeze(mfa);

View file

@ -24,6 +24,9 @@ const action = {
link_another_phone: '綁定其他手機',
link_another_email_or_phone: '綁定郵箱或手機號',
show_password: '顯示密碼',
copy: '複製',
verify_via_passkey: '透過 Passkey 驗證',
download: '下載',
};
export default Object.freeze(action);

View file

@ -6,6 +6,7 @@ import description from './description.js';
import error from './error/index.js';
import input from './input.js';
import list from './list.js';
import mfa from './mfa.js';
import secondary from './secondary.js';
const zh_tw = {
@ -17,6 +18,7 @@ const zh_tw = {
error,
demo_app,
list,
mfa,
},
} satisfies LocalePhrase;

View file

@ -5,6 +5,7 @@ const input = {
phone_number: '手機號碼',
confirm_password: '確認密碼',
search_region_code: '搜尋區域碼',
backup_code: '備用碼',
};
export default Object.freeze(input);

View file

@ -0,0 +1,48 @@
const mfa = {
totp: '身份驗證器應用程式 OTP',
webauthn: 'Passkey',
backup_code: '備用碼',
link_totp_description: '連結 Google Authenticator 等',
link_webauthn_description: '連結您的設備或 USB 硬體',
link_backup_code_description: '產生備用碼',
verify_totp_description: '在應用程式中輸入一次性代碼',
verify_webauthn_description: '驗證您的設備或 USB 硬體',
verify_backup_code_description: '貼上您儲存的備用碼',
add_mfa_factors: '新增雙因素驗證',
add_mfa_description: '已啟用雙因素驗證。選擇第二種驗證方式以安全登錄您的帳戶。',
verify_mfa_factors: '雙因素驗證',
verify_mfa_description: '此帳戶已啟用雙因素驗證。請選擇第二種方式驗證您的身份。',
add_authenticator_app: '新增身份驗證應用程式',
step: '步驟 {{step, number}}{{content}}',
scan_qr_code: '掃描此 QR 碼',
scan_qr_code_description:
'使用身份驗證應用程式(例如 Google Authenticator、Duo Mobile、Authy 等)掃描此 QR 碼。',
qr_code_not_available: '無法掃描 QR 碼?',
copy_and_paste_key: '複製並貼上金鑰',
copy_and_paste_key_description:
'將以下金鑰貼入您的身份驗證應用程式,例如 Google Authenticator、Duo Mobile、Authy 等。',
want_to_scan_qr_code: '想要掃描 QR 碼嗎?',
enter_one_time_code: '輸入一次性代碼',
enter_one_time_code_link_description: '輸入身份驗證應用程式生成的 6 位數字驗證碼。',
enter_one_time_code_description:
'此帳戶已啟用雙因素驗證。請輸入您連接的身份驗證應用程式上顯示的一次性代碼。',
link_another_mfa_factor: '連結其他雙因素驗證方式',
save_backup_code: '儲存您的備用碼',
save_backup_code_description:
'如果您在其他方式的雙因素驗證期間遇到問題,您可以使用其中一個備用碼來訪問您的帳戶。每個代碼只能使用一次。',
backup_code_hint: '請確保將其複製並儲存在安全的地方。',
enter_backup_code_description: '輸入您首次啟用雙因素驗證時儲存的備用碼。',
create_a_passkey: '建立 Passkey',
create_passkey_description:
'註冊 Passkey 以通過您的設備密碼或生物辨識、掃描 QR 碼或使用 USB 安全金鑰(例如 YubiKey進行驗證。',
name_your_passkey: '為您的 Passkey 命名',
name_passkey_description: '您已成功驗證此設備用於雙因素驗證。自訂名稱以識別多個 Passkey。',
try_another_verification_method: '嘗試其他驗證方法',
verify_via_passkey: '通過 Passkey 驗證',
verify_via_passkey_description:
'使用 Passkey 進行驗證,以通過您的設備密碼或生物辨識、掃描 QR 碼或使用 USB 安全金鑰(例如 YubiKey進行驗證。',
secret_key_copied: '已複製秘密金鑰。',
backup_code_copied: '已複製備用碼。',
};
export default Object.freeze(mfa);

View file

@ -1,3 +1,13 @@
import type en from './locales/en/index.js';
type FlattenKeys<T, Prefix extends string = ''> = {
[K in keyof T]: T[K] extends Record<string, unknown>
? `${Prefix}${string & K}.${FlattenKeys<T[K]>}`
: `${Prefix}${string & K}`;
}[keyof T];
export type LocalePhrase = typeof en;
export type LocalePhraseGroupKey = keyof LocalePhrase['translation'];
export type LocalePhraseKey = FlattenKeys<LocalePhrase['translation']>;