diff --git a/client/src/pages/LoginPage.tsx b/client/src/pages/LoginPage.tsx index 8f9a0886f..61703be83 100644 --- a/client/src/pages/LoginPage.tsx +++ b/client/src/pages/LoginPage.tsx @@ -751,6 +751,19 @@ export default function LoginPage(): React.ReactElement { > {t('login.mfaCodeLabel')} + {/* The account the code belongs to, for password managers: they match a + one-time code to a saved login through the username in the same form, + and the email field is gone in this step. */} +
) => setMfaCode(e.target.value.toUpperCase().slice(0, 24)) } - placeholder="000000 or XXXX-XXXX" + placeholder={t('login.mfaPlaceholder')} required autoFocus style={inputBase} diff --git a/shared/src/i18n/ar/login.ts b/shared/src/i18n/ar/login.ts index a80f4380f..2c0beef94 100644 --- a/shared/src/i18n/ar/login.ts +++ b/shared/src/i18n/ar/login.ts @@ -36,6 +36,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'المصادقة الثنائية', 'login.mfaSubtitle': 'أدخل الرمز المكون من 6 أرقام من تطبيق المصادقة.', 'login.mfaCodeLabel': 'رمز التحقق', + 'login.mfaPlaceholder': '000000 أو XXXX-XXXX', 'login.mfaCodeRequired': 'أدخل الرمز من تطبيق المصادقة.', 'login.mfaHint': 'افتح Google Authenticator أو Authy أو أي تطبيق TOTP آخر.', 'login.mfaBack': '← العودة لتسجيل الدخول', diff --git a/shared/src/i18n/az/login.ts b/shared/src/i18n/az/login.ts index 62d401796..e88a5e6d6 100644 --- a/shared/src/i18n/az/login.ts +++ b/shared/src/i18n/az/login.ts @@ -39,6 +39,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'İki faktorlu autentifikasiya', 'login.mfaSubtitle': 'Autentifikator tətbiqinizdəki 6 rəqəmli kodu daxil edin.', 'login.mfaCodeLabel': 'Doğrulama kodu', + 'login.mfaPlaceholder': '000000 və ya XXXX-XXXX', 'login.mfaCodeRequired': 'Autentifikator tətbiqinizdəki kodu daxil edin.', 'login.mfaHint': 'Google Authenticator, Authy və ya başqa TOTP tətbiqini açın.', 'login.mfaBack': '← Girişə qayıt', diff --git a/shared/src/i18n/br/login.ts b/shared/src/i18n/br/login.ts index 46e569b4f..a96966027 100644 --- a/shared/src/i18n/br/login.ts +++ b/shared/src/i18n/br/login.ts @@ -38,6 +38,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Autenticação em duas etapas', 'login.mfaSubtitle': 'Digite o código de 6 dígitos do seu app autenticador.', 'login.mfaCodeLabel': 'Código de verificação', + 'login.mfaPlaceholder': '000000 ou XXXX-XXXX', 'login.mfaCodeRequired': 'Digite o código do app autenticador.', 'login.mfaHint': 'Abra o Google Authenticator, Authy ou outro app TOTP.', 'login.mfaBack': '← Voltar ao login', diff --git a/shared/src/i18n/ca/login.ts b/shared/src/i18n/ca/login.ts index 1750463eb..257e08aec 100644 --- a/shared/src/i18n/ca/login.ts +++ b/shared/src/i18n/ca/login.ts @@ -26,6 +26,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Autenticació de dos factors', 'login.mfaSubtitle': "Introdueix el codi de 6 dígits de la teva app d'autenticació.", 'login.mfaCodeLabel': 'Codi de verificació', + 'login.mfaPlaceholder': '000000 o XXXX-XXXX', 'login.mfaCodeRequired': "Introdueix el codi de la teva app d'autenticació.", 'login.mfaHint': 'Obre Google Authenticator, Authy o una altra app TOTP.', 'login.mfaBack': "← Torna a l'inici de sessió", diff --git a/shared/src/i18n/cs/login.ts b/shared/src/i18n/cs/login.ts index e26f8200c..c7f9ef2e1 100644 --- a/shared/src/i18n/cs/login.ts +++ b/shared/src/i18n/cs/login.ts @@ -38,6 +38,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Dvoufaktorové ověření', 'login.mfaSubtitle': 'Zadejte 6místný kód z vaší autentizační aplikace.', 'login.mfaCodeLabel': 'Ověřovací kód', + 'login.mfaPlaceholder': '000000 nebo XXXX-XXXX', 'login.mfaCodeRequired': 'Zadejte kód z aplikace.', 'login.mfaHint': 'Otevřete Google Authenticator, Authy nebo jinou TOTP aplikaci.', 'login.mfaBack': '← Zpět k přihlášení', diff --git a/shared/src/i18n/de/login.ts b/shared/src/i18n/de/login.ts index 895fd5146..551ea62a4 100644 --- a/shared/src/i18n/de/login.ts +++ b/shared/src/i18n/de/login.ts @@ -38,6 +38,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Zwei-Faktor-Authentifizierung', 'login.mfaSubtitle': 'Gib den 6-stelligen Code aus deiner Authenticator-App ein.', 'login.mfaCodeLabel': 'Bestätigungscode', + 'login.mfaPlaceholder': '000000 oder XXXX-XXXX', 'login.mfaCodeRequired': 'Bitte den Code aus der Authenticator-App eingeben.', 'login.mfaHint': 'Google Authenticator, Authy oder eine andere TOTP-App öffnen.', 'login.mfaBack': '← Zurück zur Anmeldung', diff --git a/shared/src/i18n/en/login.ts b/shared/src/i18n/en/login.ts index bfeb3334b..1ee7b26bd 100644 --- a/shared/src/i18n/en/login.ts +++ b/shared/src/i18n/en/login.ts @@ -38,6 +38,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Two-factor authentication', 'login.mfaSubtitle': 'Enter the 6-digit code from your authenticator app.', 'login.mfaCodeLabel': 'Verification code', + 'login.mfaPlaceholder': '000000 or XXXX-XXXX', 'login.mfaCodeRequired': 'Enter the code from your authenticator app.', 'login.mfaHint': 'Open Google Authenticator, Authy, or another TOTP app.', 'login.mfaBack': '← Back to sign in', diff --git a/shared/src/i18n/es/login.ts b/shared/src/i18n/es/login.ts index 3f6448083..307be27d7 100644 --- a/shared/src/i18n/es/login.ts +++ b/shared/src/i18n/es/login.ts @@ -26,6 +26,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Autenticación de dos factores', 'login.mfaSubtitle': 'Introduce el código de 6 dígitos de tu app de autenticación.', 'login.mfaCodeLabel': 'Código de verificación', + 'login.mfaPlaceholder': '000000 o XXXX-XXXX', 'login.mfaCodeRequired': 'Introduce el código de tu app de autenticación.', 'login.mfaHint': 'Abre Google Authenticator, Authy u otra app TOTP.', 'login.mfaBack': '← Volver al inicio de sesión', diff --git a/shared/src/i18n/et/login.ts b/shared/src/i18n/et/login.ts index 92b5895fc..d4e8397bb 100644 --- a/shared/src/i18n/et/login.ts +++ b/shared/src/i18n/et/login.ts @@ -38,6 +38,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Kaheastmeline autentimine', 'login.mfaSubtitle': 'Sisesta oma autentimisrakenduse 6-kohaline kood.', 'login.mfaCodeLabel': 'Kinnituskood', + 'login.mfaPlaceholder': '000000 või XXXX-XXXX', 'login.mfaCodeRequired': 'Sisesta autentimisrakenduse kood.', 'login.mfaHint': 'Ava Google Authenticator, Authy või muu TOTP-rakendus.', 'login.mfaBack': '← Tagasi sisselogimise juurde', diff --git a/shared/src/i18n/fr/login.ts b/shared/src/i18n/fr/login.ts index 6d7ba31e0..5f8c32149 100644 --- a/shared/src/i18n/fr/login.ts +++ b/shared/src/i18n/fr/login.ts @@ -26,6 +26,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Authentification à deux facteurs', 'login.mfaSubtitle': "Entrez le code à 6 chiffres de votre application d'authentification.", 'login.mfaCodeLabel': 'Code de vérification', + 'login.mfaPlaceholder': '000000 ou XXXX-XXXX', 'login.mfaCodeRequired': "Entrez le code de votre application d'authentification.", 'login.mfaHint': 'Ouvrez Google Authenticator, Authy ou une autre application TOTP.', 'login.mfaBack': '← Retour à la connexion', diff --git a/shared/src/i18n/gr/login.ts b/shared/src/i18n/gr/login.ts index 584ce53af..021c86aac 100644 --- a/shared/src/i18n/gr/login.ts +++ b/shared/src/i18n/gr/login.ts @@ -40,6 +40,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Έλεγχος ταυτότητας δύο παραγόντων', 'login.mfaSubtitle': 'Εισάγετε τον 6ψήφιο κωδικό από την εφαρμογή authenticator σας.', 'login.mfaCodeLabel': 'Κωδικός επαλήθευσης', + 'login.mfaPlaceholder': '000000 ή XXXX-XXXX', 'login.mfaCodeRequired': 'Εισάγετε τον κωδικό από την εφαρμογή authenticator σας.', 'login.mfaHint': 'Ανοίξτε το Google Authenticator, Authy ή άλλη εφαρμογή TOTP.', 'login.mfaBack': '← Πίσω στη σύνδεση', diff --git a/shared/src/i18n/he/login.ts b/shared/src/i18n/he/login.ts index 098a2245f..6261b1651 100644 --- a/shared/src/i18n/he/login.ts +++ b/shared/src/i18n/he/login.ts @@ -37,6 +37,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'אימות דו-שלבי', 'login.mfaSubtitle': 'הזינו את הקוד בן 6 הספרות מאפליקציית האימות.', 'login.mfaCodeLabel': 'קוד אימות', + 'login.mfaPlaceholder': '000000 או XXXX-XXXX', 'login.mfaCodeRequired': 'הזינו את הקוד מאפליקציית האימות.', 'login.mfaHint': 'פתחו את Google Authenticator, Authy או אפליקציית TOTP אחרת.', 'login.mfaBack': '→ חזרה להתחברות', diff --git a/shared/src/i18n/hu/login.ts b/shared/src/i18n/hu/login.ts index 8efda4cff..63ab10f3a 100644 --- a/shared/src/i18n/hu/login.ts +++ b/shared/src/i18n/hu/login.ts @@ -39,6 +39,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Kétfaktoros hitelesítés', 'login.mfaSubtitle': 'Add meg a 6 jegyű kódot a hitelesítő alkalmazásból.', 'login.mfaCodeLabel': 'Ellenőrző kód', + 'login.mfaPlaceholder': '000000 vagy XXXX-XXXX', 'login.mfaCodeRequired': 'Add meg a kódot a hitelesítő alkalmazásból.', 'login.mfaHint': 'Nyisd meg a Google Authenticator, Authy vagy más TOTP alkalmazást.', 'login.mfaBack': '← Vissza a bejelentkezéshez', diff --git a/shared/src/i18n/id/login.ts b/shared/src/i18n/id/login.ts index 48a28c0bf..fb17ee819 100644 --- a/shared/src/i18n/id/login.ts +++ b/shared/src/i18n/id/login.ts @@ -38,6 +38,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Autentikasi dua faktor', 'login.mfaSubtitle': 'Masukkan kode 6 digit dari aplikasi autentikator kamu.', 'login.mfaCodeLabel': 'Kode verifikasi', + 'login.mfaPlaceholder': '000000 atau XXXX-XXXX', 'login.mfaCodeRequired': 'Masukkan kode dari aplikasi autentikator kamu.', 'login.mfaHint': 'Buka Google Authenticator, Authy, atau aplikasi TOTP lainnya.', 'login.mfaBack': '← Kembali ke halaman masuk', diff --git a/shared/src/i18n/it/login.ts b/shared/src/i18n/it/login.ts index 7cb3e2e53..be4cf6cd2 100644 --- a/shared/src/i18n/it/login.ts +++ b/shared/src/i18n/it/login.ts @@ -39,6 +39,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Autenticazione a due fattori', 'login.mfaSubtitle': 'Inserisci il codice a 6 cifre dalla tua app authenticator.', 'login.mfaCodeLabel': 'Codice di verifica', + 'login.mfaPlaceholder': '000000 o XXXX-XXXX', 'login.mfaCodeRequired': 'Inserisci il codice dalla tua app authenticator.', 'login.mfaHint': "Apri Google Authenticator, Authy o un'altra app TOTP.", 'login.mfaBack': "← Torna all'accesso", diff --git a/shared/src/i18n/ja/login.ts b/shared/src/i18n/ja/login.ts index 97ecd5f5c..1c62a3428 100644 --- a/shared/src/i18n/ja/login.ts +++ b/shared/src/i18n/ja/login.ts @@ -38,6 +38,7 @@ const login: TranslationStrings = { 'login.mfaTitle': '二要素認証', 'login.mfaSubtitle': '認証アプリの6桁コードを入力してください。', 'login.mfaCodeLabel': '確認コード', + 'login.mfaPlaceholder': '000000 または XXXX-XXXX', 'login.mfaCodeRequired': '認証アプリのコードを入力してください。', 'login.mfaHint': 'Google Authenticator、Authy などのTOTPアプリを開いてください。', 'login.mfaBack': '← サインインに戻る', diff --git a/shared/src/i18n/ko/login.ts b/shared/src/i18n/ko/login.ts index a22e19c8f..41a3d7747 100644 --- a/shared/src/i18n/ko/login.ts +++ b/shared/src/i18n/ko/login.ts @@ -37,6 +37,7 @@ const login: TranslationStrings = { 'login.mfaTitle': '2단계 인증', 'login.mfaSubtitle': '인증 앱의 6자리 코드를 입력하세요.', 'login.mfaCodeLabel': '인증 코드', + 'login.mfaPlaceholder': '000000 또는 XXXX-XXXX', 'login.mfaCodeRequired': '인증 앱의 코드를 입력하세요.', 'login.mfaHint': 'Google Authenticator, Authy 또는 다른 TOTP 앱을 열어주세요.', 'login.mfaBack': '← 로그인으로 돌아가기', diff --git a/shared/src/i18n/nl/login.ts b/shared/src/i18n/nl/login.ts index d68648b90..f1d41fc55 100644 --- a/shared/src/i18n/nl/login.ts +++ b/shared/src/i18n/nl/login.ts @@ -25,6 +25,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Tweefactorauthenticatie', 'login.mfaSubtitle': 'Voer de 6-cijferige code van je authenticator-app in.', 'login.mfaCodeLabel': 'Verificatiecode', + 'login.mfaPlaceholder': '000000 of XXXX-XXXX', 'login.mfaCodeRequired': 'Voer de code van je authenticator-app in.', 'login.mfaHint': 'Open Google Authenticator, Authy of een andere TOTP-app.', 'login.mfaBack': '← Terug naar inloggen', diff --git a/shared/src/i18n/pl/login.ts b/shared/src/i18n/pl/login.ts index f53cbcd96..dbe685e3a 100644 --- a/shared/src/i18n/pl/login.ts +++ b/shared/src/i18n/pl/login.ts @@ -37,6 +37,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Uwierzytelnianie dwuskładnikowe', 'login.mfaSubtitle': 'Wprowadź 6-cyfrowy kod z aplikacji uwierzytelniającej.', 'login.mfaCodeLabel': 'Kod weryfikacyjny', + 'login.mfaPlaceholder': '000000 lub XXXX-XXXX', 'login.mfaCodeRequired': 'Wprowadź kod z aplikacji uwierzytelniającej.', 'login.mfaHint': 'Otwórz Google Authenticator, Authy lub inną aplikację TOTP.', 'login.mfaBack': '← Powrót do logowania', diff --git a/shared/src/i18n/ru/login.ts b/shared/src/i18n/ru/login.ts index de3d50036..09441f1f9 100644 --- a/shared/src/i18n/ru/login.ts +++ b/shared/src/i18n/ru/login.ts @@ -26,6 +26,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Двухфакторная аутентификация', 'login.mfaSubtitle': 'Введите 6-значный код из приложения-аутентификатора.', 'login.mfaCodeLabel': 'Код подтверждения', + 'login.mfaPlaceholder': '000000 или XXXX-XXXX', 'login.mfaCodeRequired': 'Введите код из приложения-аутентификатора.', 'login.mfaHint': 'Откройте Google Authenticator, Authy или другое TOTP-приложение.', 'login.mfaBack': '← Назад к входу', diff --git a/shared/src/i18n/sk/login.ts b/shared/src/i18n/sk/login.ts index e511b6b35..e7ef2ac9b 100644 --- a/shared/src/i18n/sk/login.ts +++ b/shared/src/i18n/sk/login.ts @@ -38,6 +38,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Dvojfaktorové overenie', 'login.mfaSubtitle': 'Zadajte 6-miestny kód z vašej autentifikačnej aplikácie.', 'login.mfaCodeLabel': 'Overovací kód', + 'login.mfaPlaceholder': '000000 alebo XXXX-XXXX', 'login.mfaCodeRequired': 'Zadajte kód z vašej autentifikačnej aplikácie.', 'login.mfaHint': 'Otvorte Google Authenticator, Authy alebo inú TOTP aplikáciu.', 'login.mfaBack': '← Späť na prihlásenie', diff --git a/shared/src/i18n/sv/login.ts b/shared/src/i18n/sv/login.ts index e1ffd0c2f..34699d0fb 100644 --- a/shared/src/i18n/sv/login.ts +++ b/shared/src/i18n/sv/login.ts @@ -39,6 +39,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Tvåfaktorsautentisering', 'login.mfaSubtitle': 'Ange den 6-siffriga koden från din autentiseringsapp.', 'login.mfaCodeLabel': 'Verifieringskod', + 'login.mfaPlaceholder': '000000 eller XXXX-XXXX', 'login.mfaCodeRequired': 'Ange koden från din autentiseringsapp.', 'login.mfaHint': 'Öppna Google Authenticator, Authy eller någon annan TOTP-app.', 'login.mfaBack': '← Tillbaka till inloggningen', diff --git a/shared/src/i18n/th/login.ts b/shared/src/i18n/th/login.ts index 4891b433a..e2227f472 100644 --- a/shared/src/i18n/th/login.ts +++ b/shared/src/i18n/th/login.ts @@ -38,6 +38,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'การรับรองความถูกต้องด้วยสองปัจจัย', 'login.mfaSubtitle': 'ป้อนรหัส 6 หลักจากแอปยืนยันตัวตนของคุณ', 'login.mfaCodeLabel': 'รหัสยืนยัน', + 'login.mfaPlaceholder': '000000 หรือ XXXX-XXXX', 'login.mfaCodeRequired': 'ป้อนรหัสจากแอปยืนยันตัวตนของคุณ', 'login.mfaHint': 'เปิด Google Authenticator, Authy หรือแอป TOTP อื่น', 'login.mfaBack': '← กลับไปลงชื่อเข้าใช้', diff --git a/shared/src/i18n/tr/login.ts b/shared/src/i18n/tr/login.ts index d29f9407d..3bb37404d 100644 --- a/shared/src/i18n/tr/login.ts +++ b/shared/src/i18n/tr/login.ts @@ -39,6 +39,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'İki faktörlü kimlik doğrulama', 'login.mfaSubtitle': 'Kimlik doğrulayıcı uygulamanızdan 6 haneli kodu girin.', 'login.mfaCodeLabel': 'Doğrulama kodu', + 'login.mfaPlaceholder': '000000 veya XXXX-XXXX', 'login.mfaCodeRequired': 'Kimlik doğrulayıcı uygulamanızdan kodu girin.', 'login.mfaHint': "Google Authenticator'ı, Authy'yi veya başka bir TOTP uygulamasını açın.", 'login.mfaBack': '← Oturum açmaya geri dön', diff --git a/shared/src/i18n/uk/login.ts b/shared/src/i18n/uk/login.ts index ccc70b60a..7f3f1d4a6 100644 --- a/shared/src/i18n/uk/login.ts +++ b/shared/src/i18n/uk/login.ts @@ -25,6 +25,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Двофакторна автентифікація', 'login.mfaSubtitle': 'Введіть 6-значний код з додатка-автентифікатора.', 'login.mfaCodeLabel': 'Код підтвердження', + 'login.mfaPlaceholder': '000000 або XXXX-XXXX', 'login.mfaCodeRequired': 'Введіть код із додатка-автентифікатора.', 'login.mfaHint': 'Відкрийте Google Authenticator, Authy або інший TOTP-додаток.', 'login.mfaBack': '← Назад до входу', diff --git a/shared/src/i18n/vi/login.ts b/shared/src/i18n/vi/login.ts index a1dc0965f..527019af5 100644 --- a/shared/src/i18n/vi/login.ts +++ b/shared/src/i18n/vi/login.ts @@ -38,6 +38,7 @@ const login: TranslationStrings = { 'login.mfaTitle': 'Xác thực hai yếu tố', 'login.mfaSubtitle': 'Nhập mã gồm 6 chữ số từ ứng dụng xác thực của bạn.', 'login.mfaCodeLabel': 'Mã xác minh', + 'login.mfaPlaceholder': '000000 hoặc XXXX-XXXX', 'login.mfaCodeRequired': 'Nhập mã từ ứng dụng xác thực của bạn.', 'login.mfaHint': 'Mở Google Authenticator, Authy hoặc ứng dụng TOTP khác.', 'login.mfaBack': '← Quay lại đăng nhập', diff --git a/shared/src/i18n/zh-TW/login.ts b/shared/src/i18n/zh-TW/login.ts index 8748bfb0f..a9678ce72 100644 --- a/shared/src/i18n/zh-TW/login.ts +++ b/shared/src/i18n/zh-TW/login.ts @@ -25,6 +25,7 @@ const login: TranslationStrings = { 'login.mfaTitle': '雙因素認證', 'login.mfaSubtitle': '請輸入身份驗證器應用中的 6 位驗證碼。', 'login.mfaCodeLabel': '驗證碼', + 'login.mfaPlaceholder': '000000 或 XXXX-XXXX', 'login.mfaCodeRequired': '請輸入身份驗證器應用中的驗證碼。', 'login.mfaHint': '開啟 Google Authenticator、Authy 或其他 TOTP 應用。', 'login.mfaBack': '← 返回登入', diff --git a/shared/src/i18n/zh/login.ts b/shared/src/i18n/zh/login.ts index be6481256..072d01697 100644 --- a/shared/src/i18n/zh/login.ts +++ b/shared/src/i18n/zh/login.ts @@ -25,6 +25,7 @@ const login: TranslationStrings = { 'login.mfaTitle': '双因素认证', 'login.mfaSubtitle': '请输入身份验证器应用中的 6 位验证码。', 'login.mfaCodeLabel': '验证码', + 'login.mfaPlaceholder': '000000 或 XXXX-XXXX', 'login.mfaCodeRequired': '请输入身份验证器应用中的验证码。', 'login.mfaHint': '打开 Google Authenticator、Authy 或其他 TOTP 应用。', 'login.mfaBack': '← 返回登录',